Unabhängig davon, wie sicher die Nutzer ihre Geräte und Systeme in den persönlichen Einstellungen gestalten, kann es im Einsatz vor Ort immer wieder zu Fehlern kommen. Grundsätzlich sollte die Firmware immer auf dem aktuellen Stand sein. Der Download des Upgrades erfolgt idealerweise über verschlüsselte Datenpakete.
Etablierte Sicherheitsprotokolle verwenden
Angesichts knapper Geräteressourcen und des Zeitdrucks bei der Entwicklung ist die Versuchung groß, ein eigenes Sicherheitsprotokoll zu erstellen. Das Problem bei diesem Ansatz ist, dass es für eine Einzelperson oder ein Team unrealistisch ist, jede mögliche Schwachstelle im Design zu identifizieren (und damit zu mindern) – unabhängig davon, für wie sicher der Entwickler das System hält.
Besser ist es, etablierte oder empfohlene Sicherheitstechniken zu verwenden, die mit dem Kommunikationsprotokoll verknüpft sind. So haben sich Bluetooth, Zigbee, Z-Wave und Thread etabliert, um sichere, vertrauliche Transportkanäle zur Verfügung zu stellen (Bild 1) .
Es empfiehlt sich, diese zu nutzen und gegebenenfalls zusätzliche Sicherheit auf dem Transport-Layer hinzuzufügen, zum Beispiel Authentifizierungssupport oder Verschlüsselung auf Anwendungsebene.
Die richtige Verschlüsselungsbibliothek
Eine Studie des MIT untersuchte die Ursache der häufigsten Schwachstellen, die die Common-Vulnerabilities-and-Exposures-Datenbank zwischen 2011 und 2014 erfasst hat. 83 Prozent des Ergebnisses waren Anwendungen, die Verschlüsselungsbibliotheken falsch verwendeten, wovon nur 17 Prozent auf die Bibliotheken selbst zurückgingen.
EckDaten
Es gibt bereits über eine Milliarde IoT-Anwendungen in Wirtschaft und Gesellschaft weltweit, wobei ein Ende noch lange nicht in Sicht ist. Dieses stetige Wachstum bietet Hackern jedoch gleichzeitig Möglichkeiten, vermehrt auf sensible Daten zuzugreifen, sofern die Anwendungen nicht richtig abgesichert sind. Für Entwickler und Anwender ist es daher wichtig, die Schwachstellen im System rechtzeitig zu erkennen und jederzeit aktuelle Verschlüsselungsmethoden und Sicherheitstools zu verwenden, um einem Datenmissbrauch durch Black Hats vorzubeugen.
Dies zeigt, warum die Wahl der richtigen Verschlüsselungsbibliothek ein guter erster Schritt zur Sicherung ist. Es gibt zwar keine Garantie, dass eine Bibliothek frei von Sicherheitslücken ist, aber die Wahl einer Open-Source-Bibliothek, die gemäß Best Practices zur Offenlegung von Schwachstellen dient, ist ein guter Startpunkt. Ein Beispiel dafür ist die mbed-TLS-Bibliothek (Transport Layer Security), die für Geräte mit begrenzten Ressourcen optimiert ist.
Daten sind anfällig für Klartextinformationen, sofern Nutzer vertrauliche Informationen unverschlüsselt übertragen oder speichern. Zu den Transportschwachstellen zählen Daten wie Anmeldeinformationen, deren Übermittlung über einen unverschlüsselten Kanal erfolgt. Speicherschwachstellen gefährden vertrauliche Benutzerdaten und Schlüssel. Letztere betreffen insbesondere IoT-Einweggeräte.
Man in the Middle
Man-in-the-Middle-Angriffe (MITM) sind Angriffe, bei denen jemand die Kommunikation zwischen zwei Parteien heimlich abfängt (und möglicherweise ändert). In der Regel sind solche Angriffe das Ergebnis einer Authentifizierungsschwäche und lassen sich häufig ausführen, wenn der Nutzer ein Gerät zum Netzwerk hinzufügt.
MITM-Angriffe können auftreten, wenn die Verantwortlichen keine Authentifizierung verwenden oder wenn keine ordnungsgemäße Überprüfung der Authentifizierungsdaten durch eine Zertifizierungsstelle oder einen anderen vertrauenswürdigen Dritten erfolgt.
Der Rechenaufwand, der erforderlich ist, um ein korrekt implementiertes Verschlüsselungssystem durch Brute-Force-Angriffe zu knacken, lässt sich nicht einfach abschätzen. Der beste Schutz vor dieser Art von Angriffen liegt darin, den erforderlichen Aufwand für den Angreifer so hoch zu machen, dass er über die Grenzen des Machbaren hinausgeht. Weist das Verschlüsselungssystem jedoch eine Schwachstelle auf, kann etwas Unmögliches am Ende doch möglich sein.
Schwache Verschlüsselung, die falsche Verwendung von Verschlüsselungsfunktionen, fest programmierte Schlüssel und unzureichende Entropie in zufällig generierten Zahlen sind vier solche Schwachstellen.
Schwachstellen erkennen
Die Zunahme der Rechenleistung hat die Wirksamkeit früherer Verschlüsselungssysteme beeinträchtigt. So erfordert eine Brute-Force-Attacke auf eine Verschlüsselung mit einem 40-Bit-Schlüssel etwa 1,1 Billionen Versuche. Dies reichte früher zum Schutz vor Brute-Force-Angriffen aus – ist heute jedoch aufgrund der aktuellen Rechenleistung nicht mehr stark genug.
Um dieser Art von Angriff vorzubeugen, sollten keine schwachen Codes zum Einsatz kommen. Nutzer sollten außerdem die Verwendung von SSL oder anderen schwachen Protokollen oder schwachen Chiffresammlungen vermeiden, wenn sie eine TLS-Verbindung verwenden.
Der beliebte Advanced Encryption Standard (AES) ist eine Blockverschlüsselung, die mit einem 128-Bit-Datenelement (16 Byte) fester Größe arbeitet. Wenn Nutzer einen Datenstrom mit mehr als 16 Byte verschlüsseln oder entschlüsseln, müssen sie mehrere AES-Operationen ausführen. Ist jeder Block einzeln verarbeitet (AES_ECB), besteht die Gefahr, dass das Muster in den Verschlüsselungstextdaten erkennbar ist.
Zur Prävention sollten Anwender stattdessen einen vom National Institute of Standards and Technology (NIST) genehmigten verketteten Verschlüsselungsmodus wie AES_CBC oder AES_CTR verwenden. Noch besser ist ein authentifizierter Verschlüsselungsmodus wie AES_CCM oder AES_GCM. Die beiden letzteren gewährleisten Integrität und Authentizität sowie die Vertraulichkeit der Daten.
Zu beachten ist, dass viele dieser AES-Modi einen Initialisierungsvektor (IV) erfordern, um die Einzigartigkeit jeder Verschlüsselungsoperation zu gewährleisten. So erzeugt die Operation auch bei zweimaliger Verschlüsselung derselben Nachricht eine andere Verschlüsselungstextnachricht, um die Vertraulichkeit zu gewährleisten. Fest kodierte Schlüssel, die in den Quellcode integriert sind, gilt es ebenfalls zu vermeiden. Sie sind nur schwer zu ändern und Black Hats können sie zudem relativ leicht stehlen.
Eine wichtige Grundlage für eine gute Verschlüsselung ist eine Quelle von Zufallszahlen mit hoher Entropie (das nächste Bit in der Sequenz ist schwer vorherzusagen, da die erzeugten Zahlen kein erkennbares Muster aufweisen). Anstatt die native Funktion rand() des Compilers zu verwenden, sollten Nutzer einen stärkeren Pseudozufallszahlengenerator mit einem guten Start-/Seed-Wert nutzen (keine Zeitreferenz oder einen konstanten Wert).
Bild 2 beschreibt den Unterschied zwischen Bitmaps, die eine rand()-Funktion und solchen die ein echter Zufallszahlengenerator erzeugt hat. Das Vorhandensein eines Musters im ersteren zeigt, dass die Zahlen nicht wirklich zufällig sind. Dies verringert möglicherweise die Anzahl der Optionen, die ein Brute-Force-Angreifer testen müsste, um Zugriff auf das System zu erhalten.
Seitenkanal- und physische Angriffe
Seitenkanalangriffe überwachen die physikalischen Eigenschaften eines Systems während der Ausführung einer Verschlüsselungsaufgabe, zum Beispiel die Stromaufnahme oder elektromagnetische Störaussendungen. Dies kann Rückschlüsse auf den Wert eines Kodierungsschlüssels liefern. Die Differential Power Analysis (DPA) ist eine solche Technik, die äußerst effektiv sein kann und für Angreifer nicht besonders teuer ist. Zum Glück kommen immer mehr Verschlüsselungs-Hardwarebeschleuniger auf den Markt, die darauf ausgelegt sind, DPA-Angriffe zu bekämpfen, indem sie die Datenabhängigkeiten bei Verschlüsselungsaufgaben maskieren.
Die letzte Art des Angriffs, die es in Betracht zu ziehen gilt, ist oft die am schwersten zu verhindernde. IoT-Geräte befinden sich häufig an Orten, an denen Personen physisch auf sie zugreifen können, was sie anfällig für eine Vielzahl von Angriffen macht.
Manipulationsangriffe versuchen, den Sicherheitsschutz zu deaktivieren oder den Zugriff auf das Gerät oder dessen Daten zu ermöglichen. Sie sind schwer zu verhindern, lassen sich aber im Allgemeinen erkennen und somit vereiteln, entweder durch das Senden von Warnmeldungen oder das Löschen sensibler Informationen, um zu verhindern, dass diese in die falschen Hände gelangen.
Auch andere, invasivere physische Angriffe sind möglich. Beispiele sind das Auslesen von Flash-Inhalten und der Netzliste oder das Deprocessing eines ICs. Diese erfordern einen ziemlich großen Aufwand für Angreifer. Wenn aber jemand bereit ist, diesen Weg zu gehen, wird es schwierig, jedes einzelne Datenstück zu schützen. Die Verwendung der PUF-Technik (Physically Unclonable Function) hilft dabei, indem sie vertrauliche Daten vor dem Speichern verschlüsselt – und zwar mit einem Schlüssel, der den oben genannten physischen Datenextraktionsverfahren widersteht.
Der vielleicht beste Weg sich gegen physische Angriffe zu verteidigen, besteht darin, die Belohnung für Angreifer (oder die Folgen für die Opfer) so gering wie möglich zu halten. Erhält ein Angreifer zum Beispiel Zugang zu einer intelligenten Türklingel, kann er auch auf das intelligente Schloss an der Tür nebenan zugreifen und dieses öffnen. Dies ist ein weitaus attraktiveres Ziel als eine isolierte Türklingel.
Brent Wilson
(aok)