Skip to content

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 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üsselungs-Schlü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 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 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 Pico-Net gemeinsam genutzter Link Key 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 Key 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 Key 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 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-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 Key. 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.

Carsten Eilers

>
        </div>
                
        <footer class= Kategorien: Grundlagen

Trackbacks

Keine Trackbacks