Donnerstag, 23. August 2007 |
Topthema
Jedes Bluetooth-Gerät enthält vier Sicherheitsparameter, die
für den Schutz der Verbindungen verwendet werden. Aus ihnen werden die
für Authentisierung und Verschlüsselung benötigten
Schlüssel abgeleitet.
- BD_ADDR (Bluetooth Device Address) ist die 48 Bit lange,
weltweit eindeutige Bluetooth-Geräteadresse. Wird ein Gerät als Master
betrieben, wird daraus auch das Frequenzsprungmuster berechnet.
- RAND ist eine 128 Bit lange Zufallszahl, die vom
Zufallszahlengenerator des Geräts in bestimmten Zeitintervallen neu
gebildet wird.
- Link Key ist ein 128 Bit langer geheimer
Authentisierungsschlüssel, der aus der BD_ADDR, RAND und einer fest
vorgegebenen oder durch den Anwender gewählten PIN berechnet wird.
- Encryption Key ist ein zwischen 8 und 128 Bit
langer
geheimer Verschlüsselungsschlüssel, der während der Authentisierung
für jede Sitzung neu aus dem Link Key abgeleitet wird.
Schlüsselarten
Der wichtigste Schlüssel ist der Link Key, mit dem sich die
Geräte gegenseitig authentisieren. Ein semipermanenter Link Key wird
für eine spätere erneute Nutzung im Gerät gespeichert, ein
temporärer nach Beendigung der aktuellen Sitzung verworfen.
Es gibt 4 verschiedene Arte von Link Keys:
- Der zu einem bestimten Gerät gehörende Unit Key wird bei
der Installation erzeugt und normalerweise nie geändert. Er sollte nur
in Ausnahmefällen als Link Key verwendet werden, z.B. wenn ein Gerät
keine weitere Schlüssel speichern kann.
- Der Combination Key wird in Abhängigkeit von den beiden an
der jeweiligen Sitzung beteiligten Geräten für jede Sitzung neu
erzeugt. In die Berechnung gehen die jeweiligen BD_ADDR-Werte und
Zufallszahlen ein.
- Der Master Key ist ein in einem Piconet gemeinsam
genutzter Link- und Encrpytion Key. Er vereinfacht die
1-n-Kommunikation (Broadcast), da die Daten nicht mit mehreren
verschiedenen Link Keys verschlüsselt werden müssen. Alle vom Master
kontaktierten Slaves verwenden dann statt ihres jeweiligen aktuellen
Link Keys den vom Master verschlüsselt verteilten Master Key.
- Der Init Key ist ein 128 Bit langer, aus einer beiden
Geräten bekannten Zufallszahl, den jeweiligen BD_ADDR-Werten und einer
geheimen PIN gebildeter geheimer Schlüssel. Er wird vor dem Austausch
von Unit- oder Combination Keys für die Initialisierung der Verbindung
verwendet und danach verworfen.
Aus dem Link Key wird nach der Authentisierung der temporär oder
semipermanent genutzte Encryption Key berechnet.
Sicherheitsmechanismen
Bei der Entwicklung von Bluetooth wurden kryptographische Verfahren zum
Schutz vor dem Abhören von und dem Eindringen in
Bluetooth-Verbindungen festgelegt. Die Verschlüsselungs- und
Authentisierungsalgorithmen werden auf Chip-Ebene implementiert und
stehen
auf der Verbindungsebene zur Verfügung. Alle Sicherheitsmechanismen
basieren auf symmetrischen Algorithmen, für die die beim Pairing
bestimmten Link Keys verwendet werden. Zusätzlich können auf
Anwendungsebene weitere, im Bluetooth-Standard nicht vorgesehene
Sicherheitsmechanismen, wie z.B. der Einsatz digitaler Signaturen oder
die
Implementierung von Nicht-Abstreitbarkeit, hinzugefügt werden.
Folgende fünf kryptographische Sicherheitsmechanismen werden
spezifiziert:
- Der Verschlüsselungsalgorithmus E0 erhält als
Eingabeparameter eine 128 Bit lange Zufallszahl EN_RAND, die
48 Bit lange Geräteadresse BD_ADDR, den Encryption Key und 26 Bit der
Masterclock. Der daraus erzeugte Schlüsselstrom wird mit den Nutzdaten
und den daran angehängten CRC-Bits für die Fehlererkennung
XOR-verknüpft.
- Der Authentisierungsalgorithmus E1 verwendet die
Blockchiffre SAFER+, um aus der 128 Bit langen
Zufallszahl RAND und dem 128 Bit langen Link Key einen 128 Bit langen
Message Authentication Code zu erzeugen, der als so genannte Signed
Response
SRES im Rahmen der Challenge-Response-Authentisierung vom Master an den
Slave geschickt wird.
- Der Schlüsselerzeugungsalgorithmus E2 dient dazu, einen
128 Bit langen Link Key für die Authentisierung zu erzeugen. Dafür
stehen zwei Algorithmen zur Verfügung:
- E21 dient der Erzeugung von Unit Key oder Combination
Key
Eingabeparameter sind eine 128 Bit lange Zufallszahl RAND und die
48 Bit lange BD_ADDR.
- E22 dient der Erzeugung von Init Key oder Master Key
Eingabeparameter sind eine 128 Bit lange Zufallszahl RAND, die bis zu
16 Oktett lange PIN, die Länge der PIN und die 48 Bit lange BD_ADDR.
Ist die PIN länger, werden entsprechend weniger Bits von der BD_ADDR
verwendet.
- Der Schlüsselerzeugungsalgorithmus E3 dient zur Erzeugung
des Encryption Keys. Eingabeparameter sind die 128 Bit lange
Zufallszahl
EN_RAND, die 96 Bit lange Ciphering Offset Number COF und der aktuelle,
128 Bit lange Link Key. Ergebnis ist ein 128 Bit langer Schlüssel, der
ggf. nur teilweise genutzt wird.
- Der Zufallszahlengenerator.
In der nächsten
Folge
wird der Ablauf von Schlüsselerzeugung und -austausch beschrieben.
Wenn
Sie Fragen oder Themenvorschläge haben, können Sie
diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum
einbringen!
Carsten
Eilers
About Security – Übersicht zum aktuellen Thema "Mobile
Security – Bluetooth"