In der industriellen Prozessautomatisierung sind die Konsequenzen einer Attacke schwerwiegender als der Verlust eines Kunden. Ein Angreifer kann physische Schäden anrichten, wenn er falsche Steuerbefehle einbringt. So kann ein falsches Sensorsignal, das beispielsweise von einem Antrieb kommt oder den Tankfüllstand auswertet, zu schweren Fehlern führen, wie es zum Beispiel bei der »Stuxnet«-Attacke auf Zentrifugen passierte. Doch es gibt Tools, mit denen sich sichere und robuste drahtlosen Kommunikationsnetzwerke erstellen lassen. Es bedarf allerdings einiger Sorgfalt und Aufmerksamkeit im Detail.
AES-128 ist ziemlich sicher
Das einfachste kryptografische Werkzeug ist der Blockcode (Block Cipher). Ein besonderer Blockcode heißt AES-128 (Advanced Encryption Standard) und generiert eine verschlüsselte Version einer 16-Byte-Nachricht. Jeder, der über denselben 128-Bit-Schlüssel verfügt, kann den codierten Text in Klartext umwandeln. Der AES-Code ist einfach zu implementieren und in vielen Funkchips und Mikroprozessoren bereits integriert. Soweit bekannt, ist AES-128 nicht zu knacken. Tatsächlich verwendet die NSA dieses Tool, um geheime Dokumente zu verschlüsseln. In allen Berichten über Angriffe auf die WSN-Sicherheit gibt es keine Hinweise, dass AES eine Schwachstelle wäre.
Eine bekannte Attacke auf AES-128 ist die so genannte Brute-Force-Attacke. Dabei probiert der Angreifer alle möglichen Schlüssel aus, um an den Klartext zu kommen. Alle möglichen 128-Bit-Schlüssel zu probieren, ist eine große Herausforderung. Hätte man eine Milliarde Computer und jeder könnte eine Milliarde Schlüssel pro Sekunde prüfen und diese Computer würden eine Milliarde Jahre laufen, dann würde man gerade mal 0,1% aller möglichen 128-Bit-Schlüssel erfasse, denn es gibt 300 ∙ 1036 mögliche solcher Schlüssel.
Prüfsumme erhöht Sicherheit
Ein Blockcode verschlüsselt die Nachricht so, dass nur der Empfänger, der über den Schlüssel verfügt, die Nachricht entschlüsseln kann (Bild 1). Ist die Nachricht etwas Einfaches wie »Licht an« oder »Licht aus«, wird nach Verschlüsselung eine scheinbar bedeutungslosen Bitfolgen entstehen, und jeder, der sie empfängt, wird schnell herausfinden, dass es sich um zwei verschiedene Nachrichten handelt. Eine Lösung für dieses Problem ist die Verwendung eines Nachrichtenzählers und einer Nummer für jede gesendete Nachricht.
Wegen der Natur der Chiffre wird jede Änderung im Klartext zu einem unterschiedlichen verschlüsselten Text führen, und zwei Nachrichten, die zu unterschiedlichen Zeiten gesendet werden, etwa wie »Msg 1:Licht an« und »Msg 53: Licht an«, werden dann für jeden, der nicht über den Schlüssel verfügt, völlig verschieden aussehen. Solange sich der Nachrichtenzähler nicht wiederholt, wird sich der chiffrierte Text auch nicht wiederholen. Dieses Konzept eines Nachrichtenzählers, der sich niemals wiederholt, wird »Nonce« (number used once) genannt.
Der Nachrichten-Integritäts-Check oder MIC (auch Message-Authentication-Code, MAC genannt) ist eine kryptografische Prüfsumme der Nachricht. Durch sequenziellen Ablauf aller Teile einer Nachricht durch einen Blockcode mit einem speziellen Schlüssel, generiert der Nachrichtenabsender eine kurze verschlüsselte Zusammenfassung der gesamten Nachricht, genannt Message-Integritäts-Check. Dieser MIC wird an die Nachricht angehängt und zusammen mit ihr versendet. Der Empfänger, der denselben Schlüssel verwendet, kann dieselbe Funktion mit der Nachricht ausführen, berechnet seine eigene MIC und verifiziert, dass die Ergebnisse mit dem empfangenen MIC übereinstimmen. Jede Veränderung einer Nachricht, und sei es nur ein einziges Bit, erzwingt einen Veränderung des MIC und als Folge die Ablehnung der Nachricht durch den Empfänger.