Best Practices für sichere Over-the-Air-Updates [geschlossen]

8

Was sind die besten Sicherheitsmethoden, die bei der Veröffentlichung eines OTA-Updates für eine Flotte von IoT-Geräten zu beachten sind? Was sind die Hauptgründe zur Besorgnis?

Zum Beispiel,

  • Verhindern, dass ein Update abgefangen wird
  • nach festgelegten Standards
  • Plattformen für die Softwareverteilung
  • automatische Updates gegen optionale Updates
Noam Hacker
quelle
5
Diese Frage ist zu weit gefasst, um für Fragen und Antworten geeignet zu sein.
Sean Houlihane
1
@ SeanHoulihane, ich habe den Fokus auf die Sicherheit von OTA eingegrenzt. Wie sieht es jetzt aus?
Noam Hacker
2
Es ist immer noch ziemlich weit gefasst, da jeder Aufzählungspunkt eine eigenständige Frage sein kann. Selbst für den letzten Punkt, an dem die Erfolge getestet wurden, konnte man ein ganzes Buch darüber schreiben.
Dom
1
Ich würde Dom zustimmen. Es ist besser, einen Aspekt der OTA zu berücksichtigen (z. B. ein zuverlässiges Ergebnis sicherzustellen). Selbst dann gibt es viele Antworten. Im Idealfall sollte eine Frage nur ein oder zwei qualitativ hochwertige Antworten benötigen, damit Sie akzeptieren können, dass sie beantwortet wurde.
Sean Houlihane
1
Titel auch bearbeiten?
Sean Houlihane

Antworten:

10

Diese Frage ist zu weit gefasst, aber da Sie das Wichtigste ausgelassen haben, muss ich mich melden.

Authentifizieren Sie das Update .

Wenn Sie sicherstellen möchten, dass auf Ihren Geräten Ihr Code ausgeführt wird, benötigen Sie eine Authentifizierung und keine Verschlüsselung. Durch die Verschlüsselung wird sichergestellt, dass andere Personen nicht wissen können, was in Ihrem Code enthalten ist. Dies ist schwer zu erreichen und selten nützlich. (Sie können verschlüsseln, aber wenn sich der Entschlüsselungsschlüssel auf dem Gerät befindet, haben Sie nichts gewonnen, es sei denn, Sie haben eine Möglichkeit, den Entschlüsselungsschlüssel zu schützen, mit der Sie den Code nicht direkt schützen können.) Authentizität ist die Eigenschaft anderer Personen kann kein gefälschtes Update erstellen, und diese Eigenschaft ist normalerweise wünschenswert.

Beachten Sie, dass die Verschlüsselung nicht zur Authentizität beiträgt. Dies ist eine falsche Überzeugung, die Menschen, die Sicherheit nicht wirklich verstehen, manchmal haben, aber es ist einfach nicht wahr.

Bei einigen Geräten ist es in Ordnung, Firmware auszuführen, wenn der Eigentümer dies wünscht. In diesem Fall benötigen Sie noch einen Mechanismus, um sicherzustellen, dass nur der Besitzer des Geräts Firmware installieren kann und nicht ein zufälliger Passant. Im Allgemeinen bedeutet dies, dass das Gerät das Update als vom registrierten Eigentümer stammend authentifizieren muss.

Gilles 'SO - hör auf böse zu sein'
quelle
Das ist nicht wirklich richtig. Die Verschlüsselung ist weder sehr schwer zu erreichen noch nur "selten nützlich". Darüber hinaus ist diese Verschlüsselung "hilft nicht bei der Authentizität" nur halb wahr. Die meisten modernen Verschlüsselungsmodi wie GCM sind sogenannte "authentifizierte Verschlüsselungsschemata", die Authentizität und Vertraulichkeit kombinieren.
Matte
@mat Ich habe diesen Satz geändert, um formal korrekt zu sein. Die Verschlüsselung ist nicht schwer, aber ich habe mich auf die Vertraulichkeit bezogen, was schwierig ist. Durch die Verschlüsselung erhalten Sie keine Vertraulichkeit, wenn Sie den Schlüssel nicht vertraulich behandeln können. Die Verschlüsselung hilft überhaupt nicht bei der Authentizität. Wenn Sie eine authentifizierte Verschlüsselung verwenden, erhalten Sie beide, aber die Tatsache, dass sie eine Verschlüsselung enthält, trägt nicht zur Authentifizierung bei.
Gilles 'SO - hör auf böse zu sein'
Wenn Ihr Schlüssel durchgesickert ist, verliert jede Krypto ihre Nützlichkeit, sei es zur Vertraulichkeit oder zur Authentifizierung. Wenn es sinnvoll , die Verschlüsselung mit einem ungeschützten Taste auf dem Gerät zu bedienen ist, hängt von Ihrem Bedrohungsmodell (accesibility der Vorrichtung, Fähigkeiten des Gegners)
mat
@mat Nein. Ich hätte tatsächlich auf diese GCM-Bemerkung in meinem vorherigen Kommentar reagieren sollen. GCM ist keine gute Möglichkeit, Aktualisierungen zu senden, da die Authentizität mit einem Klassenschlüssel überprüft wird. Wenn Sie keine stark gehärtete Plattform (z. B. Smartcard) erstellen, ist ein Klassenschlüssel so gut wie öffentlich. Updates sollten asymmetrische Kryptographie verwenden. Um ein gefälschtes Update auf einem Gerät bereitzustellen, muss dieses bestimmte Gerät verletzt werden: Um ein gefälschtes Update zu erstellen, das überall funktioniert, muss der Angreifer den Server oder das Protokoll beschädigen, und diese sind normalerweise besser geschützt als Geräte im Feld.
Gilles 'SO - hör auf böse zu sein'