Skip to content

Mobile Security - Bluetooth-Sicherheit, aktuell - Teil 2

Nachdem in der vorherigen Folge die aktuellen Sicherheitsmodi und -stufen sowie das Pairing erklärt wurden folgen nun die Schlüssel der aktuellen Bluetooth-Versionen und ihre Verwendung.

Erzeugung des Link Key

Am symmetrischen Link Key hängt die gesamte Sicherheit der Bluetooth-Kommunikation. Wie bereits in der vorherigen Folge erwähnt wird der Link Key beim PIN- bzw. Legacy-Pairing von der eingegebenen PIN abgeleitet. Ist sie kürzer als 16 Bytes, wird sie mit der Bluetooth-Adresse des initialisierenden Geräts aufgefüllt.

Die Erzeugung des Link Key erfolgt dann in mehreren Schritten:

  1. Erzeugen des Initialization Key
    Das initialisierende Gerät erzeugt eine Zufallszahl IN_RAND, die unverschlüsselt (da es noch keinen gemeinsamen Schlüssel gibt) an das zweite Gerät gesendet wird.
    Danach erzeugen beide Geräte mit dem Algorithmus E22 aus der PIN und IN_RAND den Initialization Key KINT.
  2. Austausch verschlüsselter Zufallszahlen
    Das initialisierende Gerät erzeugt eine Zufallszahl LK_RAND1, die mit dem Initialization Key KINT XOR-verknüpft und so verschlüsselt an das zweite Gerät gesendet wird.
    Parallel erzeugt das zweite Gerät eine Zufallszahl LK_RAND2, die ebenfalls mit dem Initialization Key KINT verschlüsselt an das initialisierende Gerät gesendet wird.
    Danach kennt das initialisierende Gerät den verschlüsselten Zufallswert COMB_KEY2 und das zweite Gerät den verschlüsselten Zufallswert COMB_KEY1.
  3. Berechnen geheimer Schlüssel
    Beide Geräte verwenden nun den Algorithmus E21 zum Berechnen von jeweils 2 geheimen Schlüsseln:
    Das initialisierende Gerät berechnet
    • aus LK_RAND1 und seiner Bluetooth-Adresse BD_ADDR1 den Schlüssel K1 sowie
    • aus (COMB_KEY2 XOR KINT = LK_RAND2) und der Bluetooth-Adresse des zweiten Geräts BD_ADDR2 den Schlüssel K2
    Das zweite Gerät berechnet
    • aus LK_RAND2 und seiner Bluetooth-Adresse BD_ADDR2 den Schlüssel K2 sowie
    • aus (COMB_KEY1 XOR KINT = LK_RAND1) und der Bluetooth-Adresse des initialisierende Geräts BD_ADDR1 den Schlüssel K1
  4. Erzeugen des Link Key
    Beide Geräte berechnen den Link Key aus K1 XOR K2

Die Verschlüsselungsalgorithmen Ex sind im Bluetooth-Standard definiert.

Beim Secure Simple Pairing (SSP) wird der Diffie-Hellman-Schlüsselaustausch auf Grundlage einer von zwei elliptischen Kurven sowohl für das Pairing als auch für die Berechnung des Link Key verwendet (sofern nicht auf die Sicherheit explizit verzichtet wird). Dabei erzeugen beide Geräte ihr eigenes authentifiziertes Schlüsselpaar aus öffentlichen und privaten Schlüssel und teilen dem jeweils anderen Gerät ihren öffentlichen Schlüssel mit.

Danach wird je nach Sicherheitsmodi und -stufe ggf. eine gegenseitige Authentifizierung durchgeführt, bei der die Geräte beweisen, dass sie den privaten Schlüssel zum übertragenen öffentlichen Schlüssel besitzen. Danach wird aus verschiedenen dabei berechneten bzw. ausgetauschten Werten der gemeinsame Link Key berechnet.

Authentifizierung

Nachdem beide Geräte den Link Key kennen können sie sich gegenseitig über ein Challenge-Response-Verfahren authentifizieren, bei dem die Kenntnis des Link Key geprüft wird. Dabei kommen zwei Verfahren zum Einsatz:

  • Legacy Authentication (wenn mindestens eines der Geräte keine Secure Connections beherrscht) mit einem einzelnen Zufallswert, der von dem Gerät gesendet wird, dass die Identität des anderen Geräts prüfen will, und
  • Secure Authentication (wenn beide Geräte Secure Connections beherrschen), bei der beide Geräte Zufallswerte senden und sich so gleichzeitig gegenseitig authentifizieren.

Schlägt die Authentifizierung fehlt, warten die Geräte einige Zeit bis ein weiterer Versuch möglich ist. Dadurch wird verhindert, dass ein Angreifer einen Brute-Force-Angriff durchführt und über Trial&Error den Link Key errät.

Vertraulichkeit

Zusätzlich zu Pairing und Authentifizierung gibt es einen separaten Vertraulichkeits-Dienst, um das Belauschen der ausgetauschten Daten zu verhindern. Dafür gibt es drei Modi:

  • Encryption Mode 1 - Es findet gar keine Verschlüsselung statt.
  • Encryption Mode 2 - Individuell adressierter Traffic wird mit auf den individuellen Link Keys basierenden Encryption Keys verschlüsselt. Broadcast-Traffic wird nicht verschlüsselt.
  • Encryption Mode 3 — Der gesamte Traffic wird mit einem auf dem Master Link Key basierenden Encryption Key verschlüsselt.

Die Verschlüsselung erfolgt entweder mit der im Bluetooth-Standard beschriebenen Stromchiffre E0 oder dem FIPS-zertifizierten "Advanced Encryption Standard - Counter with Cipher Block Chaining-Message Authentication Code" (AES-CCM, RFC 3610, siehe auch in der Beschreibung von WPA2).

Vertrauensstufen und mehr

Außer den 4 Sicherheitsmodi erlaubt Bluetooth noch die Wahl zwischen verschiedenen Vertrauens- und Dienst-Sicherheitsstufen (Service Security Levels).

Die Vertrauensstufen sind:

  • "Trusted" - Ein vertrautes Gerät hat eine feste Verbindung mit einem anderen Gerät aufgebaut und vollen Zugriff auf dessen gesamte Dienste.
  • "Untrusted" - Ein nicht vertrautes Gerät hat keine Beziehung mit einem anderen Gerät aufgebaut und dadurch nur eingeschränkten Zugriff auf dessen Dienste.

Die Dienst-Sicherheitsstufen hängen vom verwendeten Sicherheitsmodus ab. Für die Modi 1 und 3 sind keine Dienst-Sicherheitsstufen definiert. Für den Security Mode 2 können die folgenden Anforderungen erzwungen werden, auch in beliebigen Kombinationen miteinander:

  • Authentifizierung erforderlich
  • Verschlüsselung erforderlich
  • Autorisierung erforderlich

Für den Security Mode 4 gibt es bei der Nutzung des SSP 5 Stufen für die Sicherheit der Dienste:

  • Service Level 4 erfordert einen Schutz vor MitM-Angriffen und eine Verschlüsselung, die äquivalent zu 128-Bit Link Key und Encryption Key ist. Eine Benutzer-Interaktion ist erlaubt.
  • Service Level 3 erfordert einen Schutz vor MitM-Angriffen und allgemein eine Verschlüsselung, eine Benutzer-Interaktion ist erlaubt.
  • Service Level 2 erfordert eine Verschlüsselung, der Schutz vor einem MitM ist nicht notwendig.
  • Service Level 1 erfordert weder Verschlüsselung noch MitM-Schutz und die Benutzer-Interaktion muss minimal sein.
  • Service Level 0 erfordert weder Verschlüsselung noch MitM-Schutz noch eine Benutzer-Interaktion.

Die Bluetooth-Spezifikation erlaubt das Festlegen von Security Policies, die Beziehungen so definieren, dass auch vertraute Geräte nur Zugriff auf bestimmte Dienste haben. Die Bluetooth-Core-Protokolle erlauben zwar nur die Authentifizierung von Geräten und nicht von Benutzern, eine Benutzer-basierte Authentifizierung ist aber auf Anwendungsebene möglich. Das gleiche gilt für alle anderen Schutzmaßnahmen, die Implementierung auf der Verbindungsebene erfolgt transparent und kann um Maßnahmen auf der Anwendungsebene erweitert werden.

Bluetooth Low Energy (LE)

Alles bisher Beschriebene gilt für Bluetooth BR/EDR/HS. Bluetooth Low Energy wurde entwickelt, um Geräte mit eingeschränkter Rechenleistung und beschränktem Speicherplatz zu unterstützen. Daher unterscheiden sich auch die Schutzmaßnahmen von denen der "großen" Bluetooth-Versionen. Aber auf die werde ich in einer späteren Folge eingehen.

Ab der nächsten Folge werden aktuelle Angriffe auf Bluetooth vorgestellt.

Carsten Eilers

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

Trackbacks

Keine Trackbacks