Die Entwicklung der Bluetooth-Sicherheit, Teil 2: Sicherheitsparameter und Schlüssel
In der ersten Folge wurden die Sicherheitsmodi und Sicherheitsstufen vorgestellt. Nun kommen wir zu den Sicherheitsparameten und Bluetooth-Schlüsseln.
Die Sicherheitsparameter
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 Authentisierungs-Schlüssel, der aus derBD_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üsselungs-Schlüssel, der während der Authentisierung für jede Sitzung neu aus demLink 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 Arten von Link Keys
:
- Der zu einem bestimmten Gerät gehörende
Unit Key
wird bei der Installation erzeugt und normalerweise nie geändert. Er sollte nur in Ausnahmefällen alsLink 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 jeweiligenBD_ADDR
-Werte und Zufallszahlen ein. - Der
Master Key
ist ein in einem Pico-Net gemeinsam genutzterLink Key
undEncrpytion Key
. Er vereinfacht die 1-n-Kommunikation (Broadcast), da die Daten nicht mit mehreren verschiedenenLink Keys
verschlüsselt werden müssen. Alle vom Master kontaktierten Slaves verwenden dann statt ihres jeweiligen aktuellenLink Key
den vom Master verschlüsselt verteiltenMaster Key
. - Der
Init Key
ist ein 128-Bit-langer, aus einer beiden Geräten bekannten Zufallszahl, den jeweiligenBD_ADDR
-Werten und einer geheimen PIN gebildeter geheimer Schlüssel. Er wird vor dem Austausch vonUnit Key
oderCombination 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 ZufallszahlEN_RAND
, die 48-Bit-lange GeräteadresseBD_ADDR
, denEncryption 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 ZufallszahlRAND
und dem 128-Bit-langenLink Key
einen 128-Bit-langenMessage Authentication Code
zu erzeugen, der als sog.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-langenLink Key
für die Authentisierung zu erzeugen. Dafür stehen zwei Algorithmen zur Verfügung:-
E21
dient der Erzeugung vonUnit Key
oderCombination Key
Eingabeparameter sind eine 128 Bit lange ZufallszahlRAND
und die 48-Bit-langeBD_ADDR
. -
E22
dient der Erzeugung vonInit Key
oderMaster Key
Eingabeparameter sind eine 128-Bit-lange ZufallszahlRAND
, die bis zu 16 Oktett lange PIN, die Länge der PIN und die 48 Bit langeBD_ADDR
. Ist die PIN länger, werden entsprechend weniger Bits von derBD_ADDR
verwendet.
-
- Der Schlüsselerzeugungsalgorithmus
E3
dient zur Erzeugung desEncryption Key
. Eingabeparameter sind die 128-Bit-lange ZufallszahlEN_RAND
, die 96-Bit-langeCiphering Offset Number
COF
und der aktuelle, 128-Bit-langeLink 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.
Kategorien: Grundlagen
Trackbacks