Donnerstag, 9. Dezember 2010


Topthema

Donnerstag, 23. August 2007 | Topthema

About Security #119: Mobile Security — Bluetooth-Schlüssel

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/037684)

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.

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

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.

About Security: Die komplette Serie

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"

Kommentare

Folgende Links könnten Sie auch interessieren

  • IT-Sicherheit  [19.04.2007]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,616,.html]
  • PHP-Sicherheit  [27.01.2009]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,779,.html]
  • .NET ohne ASP.NET  [09.09.2005]
    [http://entwickler.de/zonen/portale/psecom,id,101,online,763,.html]
  • AJAX im Handy  [28.09.2006]
    [http://entwickler.de/zonen/portale/psecom,id,101,online,1181,.html]
  • Bunte Spielereien  [24.09.2003]
    [http://entwickler.de/zonen/portale/psecom,id,101,online,430,.html]