Rechnernetze
Home Nach oben

Schlüsselverwaltung

Ein Linkkey wird zur Authentisierung zwischen zwei oder mehr Stationen benutzt. Ein semi-permanenter Linkkey kann über mehrere Sitzungen (d.h. in mehreren Piconetzen) gleich bleiben und wird daher in einem nicht-flüchtigen Speicher gehalten. Ein temporärer Linkkey kann nur in einer Sitzung existieren. Er wird häufig benutzt, wenn mehr als zwei Stationen (Punkt-zu-Mehrpunkt) untereinander Daten austauschen.

Es werden vier Linkkeys unterschieden:

Der Kombinationsschlüssel KAB
Wird aus den Linkkeys zweier Einheiten A und B berechnet; gleiche Funktionalität wie Einheitenschlüssel.

Der Einheitenschlüssel KA
Wird nur aus dem Linkkey der Einheiten A berechnet; gleiche Funktionalität wie Kombinationsschlüssel.

Der temporäre Schlüssel Kmaster
Wird nur kurzzeitig als temporärer Linkkey verwendet, z.B. bei Punkt-zu-Mehrpunkt-Verbindungen.

Der Initialisierungsschlüssel Kinit
Wird nur bei der Initialisierung des Linkkeys benutzt. 

Bei der Initialisierung werden eine Zufallszahl, ein PIN-Code sowie der Initialisierungsschlüssel Kinit verwendet. Der PIN-Code kann von Benutzern eingegeben werden oder fest in einer Bluetooth-Einheit eingebaut sein. 

Die Initialisierung des Linkkeys geschieht durch die folgenden Schritte:

  1. Erzeugung eines Initialisierungsschlüssel Kinit
    Der Initialisierungsschlüssel wird mit dem Algorithmus E22(BD_ADDR, PIN, |PIN|, IN_RAND) berechnet. Dabei muss die PIN frei gewählt sein (kann also nicht eine fest installierte sein). Die Vertraulichkeit hängt also nur von der PIN ab.

  2. Erzeugung eines Linkkeys Klink
    KA (Linkkey für Station A) wird aus einer Zufallszahl RAND und der Adresse BD_ADDRA nach dem Algorithmus E21 berechnet.

  3. Austausch des Linkkeys
    Der Linkkey KA wird an Station B übersandt, indem er zunächst mit Kinit xoder verknüpft wird. B kann, da er  Kinit kennt, wieder KA daraus berechnen.
    Wird ein Kombinationsschlüssel KAB verwendet, so erzeugt jede Station eine eigene Zufallszahl und erhält die der Gegenstelle; dann verknüpft nach E21 jede Station ihre Zufallszahl mit ihrer Adresse und die der anderen mit deren Adresse und verknüpft die Ergebnisse mit xor. (siehe Bild 14.2)

  4. Authentifizierung
    Zur Authentifizierung wird ein Challenge-Response-Verfahren verwendet. A sendet an B eine Zufallszahl RAND (Challenge), B berechnet SRES=E1(RAND, BD_ADDRB,Linkkey) und sendet dieses an A zurück.

  5. Optionale Erzeugung eines Verschlüsselungsschlüssel KC
    Ein Verschlüsselungsschlüssel wird nach Algorithmus E3 aus dem Linkkey, dem Ciphering Offset (COF, 96 Bits) und einer Zufallszahl berechnet. Der Ciphering Offset ist entweder die zweimal konkatenierte Stationsadresse BD_ADDR oder eine Zahl (ACO), die bei der Authentisierung angefallen ist.