Sonntag, 12. Februar 2012 |
Schlüsselerzeugung und -austausch bei der Kommunikation über Bluetooth sind das Thema dieser Folge. Den Anfang macht die Authentisierung. Im Sicherheitsmodus 3 (siehe About Security #118) ist beim Verbindungsaufbau eine gegenseitige Authentisierung der Geräte zwingend erforderlich. Diese wird auf Verbindungsebene (Link Level) durch ein Challenge-Response-Verfahren realisiert und läuft in zwei Schritten ab: Zuerst wird in der Initialisierungsphase der Link Key ausgehandelt, danach damit das Challenge-Response-Verfahren durchgeführt.
Die Initialisierungsphase besteht aus drei Schritten:
Der Master (hier auch als Verifier bezeichnet) leitet die Generierung des Init Keys ein und erzeugt dazu den Zufallswert IN_RAND, der dann an den Slave (hier auch als Claiment bezeichnet) gesendet wird. Beide können danach mit dem Algorithmus E22 aus IN_RAND, der Geräteadresse BD_ADDR des Slave, der PIN und der PIN-Länge den Init Key berechnen.
N E U ! Security
aktuell
Täglich aktuelle Security-Infos!
Entsprechend den Fähigkeiten der beteiligten Geräte wird danach ein Unit Key, Combination Key oder Master Key als Link Key bestimmt und, geschützt durch den Init Key, ausgetauscht.
Der gewählte Link Key wird danach als Authentisierungsschlüssel verwendet. Nach erfolgreicher Authentisierung kann der Link Key jederzeit geändert werden, wobei der aktuelle Link Key als Initialisierungsschlüssel dient.
Die Authentisierung erfolgt durch ein Challenge-Response-Verfahren mit dem Link Key als symmetrischem Schlüssel. Der Master sendet die von ihm erzeugte Zufallszahl AU_RAND als Challenge an den Client. Der Client berechnet mit dem Algorithmus E1 aus AU_RAND, seiner Geräteadresse BD_ADDR und dem Link Key die 32 Bit lange Signed Response SRES, die dann an den Master gesendet wird. Der Master vergleich den empfangenen Wert mit dem Ergebnis seiner eigenen Berechnung. Stimmen beide Werte überein, ist der Client authentisiert. Danach wird das Protokoll ggf. vom Slave gestartet, um den Master zu authentisieren.
Der Rest des 128 Bit langen Ergebnisses von E1 wird als Authenticated Ciphering Offset (ACO) bezeichnet und geht später als Ciphering Offset Number (COF) in die Berechnung des Encryption Keys ein.
Um Brute-Force- und Denial-of-Service-Angriffe zu erschweren, kann die Authentisierung nach einem Fehlschlag erst nach einer Wartezeit erneut gestartet werden, die mit jedem weiteren Fehlschlag exponentiell vergrößert wird.
Zum Schutz der Vertraulichkeit der Datenübertragung steht im Sicherheitsmodus 2 und 3 eine Verschlüsselung auf der Verbindungsebene zur Verfügung. Die Verschlüsselung setzt eine erfolgreiche Authentifizierung voraus und wird vom Master eingeleitet. Der Slave muss den Wunsch nach Verschlüsselung bestätigen, anschließend wird die Länge des Encryption Keys ausgehandelt, die zwischen 1 und 16 Bytes liegt. Jede Anwendung legt eine Mindestschlüssellänge Lmin fest, jedes Bluetooth-Gerät besitzt eine fest vorgegebene maximale Schlüssellänge Lmax. Als gemeinsame Schlüssellänge wird das Maximum der Schnittmenge von {Lmin, .., 16} und {1, .., Lmax} verwendet.
Für die Auswahl sendet der Master die maximale Schlüssellänge an den Slave. Akzeptiert der Slave diese Schlüssellänge nicht, wird so lange die jeweils nächstkleinere Schlüssellänge gesendet, bis der Slave sie akzeptiert oder die Mindestschlüssellänge erreicht ist. Akzeptiert der Slave auch die Mindestschlüssellänge nicht, wird keine Verbindung aufgebaut. Dadurch wird verhindert, dass eine unsicherere Verbindung als von der Anwendung gefordert aufgebaut wird.
Nach der Festlegung der Schlüssellänge wird der Encryption Key berechnet. Dazu erzeugt der Master die Zufallszahl EN_RAND. Der 128 Bit lange Encryption Key wird mit dem Algorithmus E3 aus EN_RAND, dem Link Key und der 96 Bit langen Ciphering Offset Number COF berechnet und ggf. auf die ausgehandelte Länge gekürzt.
In der nächsten Folge wird die Sicherheit der Schutzfunktionen betrachtet.
Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!
About Security – Übersicht zum aktuellen Thema "Mobile Security – Bluetooth"