Bonding (Kopplung) in Bluetooth Low Energy ist der Prozess der Erstellung einer dauerhaften sicheren Verbindung zwischen zwei Geräten durch Speicherung kryptografischer Schlüssel in nichtflüchtigem Speicher. Nach dem Bonding können Geräte bei erneuter Verbindung automatisch eine verschlüsselte Verbindung wiederherstellen, ohne dass eine PIN-Eingabe oder Benutzerbestätigung erforderlich ist. Laut Bluetooth SIG Core Specification v5.4 (2025) ist der Bonding-Mechanismus für Geräte obligatorisch, die eine automatische Wiederverbindung benötigen — Kopfhörer, Fitness-Tracker, medizinische Sensoren und IoT-Zubehör.
Wichtige Punkte
Bonding ist eine Erweiterung des Pairing-Prozesses in Bluetooth Low Energy, bei dem Geräte Verschlüsselungsschlüssel für nachfolgende Verbindungen speichern. Der BLE-Standard definiert drei Sicherheitsmodi: Security Mode 1 (Verschlüsselung ohne Authentifizierung), Security Mode 2 (Datensignierung ohne Verschlüsselung) und Security Mode 3 (Verschlüsselung mit Authentifizierung). Bonding ist für Modi mit Verschlüsselung relevant, bei denen wiederholte Verbindungen ohne Schlüsselerneuerung erforderlich sind.
Der Hauptzweck des Bondings ist die automatische Wiederherstellung verschlüsselter Verbindungen beim erneuten Verbinden von Geräten. Wenn ein Benutzer Ohrhörer aus dem Case nimmt und aufsetzt, sorgt Bonding für eine sofortige Verbindung zum Smartphone, ohne dass das Gerät erneut im Bluetooth-Menü ausgewählt werden muss. Laut den Apple Bluetooth Design Guidelines (2025) sollten gebondete Geräte innerhalb von maximal 2 Sekunden nach Erkennung verbinden.
Während des Bondings speichert jedes Gerät einen Satz von kryptografischem Material: Long Term Key (LTK) für die Verbindungsverschlüsselung, Identity Resolving Key (IRK) zum Auflösen zufälliger Adressen und Connection Signature Resolving Key (CSRK) zur Überprüfung von Datensignaturen. Der LTK ist der primäre 128-Bit-Schlüssel, der während des Pairings generiert und für alle nachfolgenden verschlüsselten Sitzungen verwendet wird.
| Schlüssel | Länge | Zweck |
|---|---|---|
| LTK | 128 Bit | Datenverschlüsselung nach Wiederverbindung |
| IRK | 128 Bit | Auflösen zufälliger privater Adressen (RPA) |
| CSRK | 128 Bit | Datensignierung und Authentizitätsprüfung |
Pairing ist die temporäre Aushandlung von Schlüsseln zur Verschlüsselung der aktuellen Kommunikationssitzung. Wenn die Verbindung endet, werden die Verschlüsselungsschlüssel gelöscht, und die nächste Verbindung erfordert einen erneuten vollständigen Pairing-Prozess. Bonding umfasst alle Pairing-Phasen, speichert jedoch zusätzlich die Schlüssel für zukünftige Sitzungen. Praktisch alle Bluetooth-Verbrauchergeräte (Kopfhörer, Lautsprecher, Uhren) verwenden Bonding, da ohne es jede Verbindung eine erneute PIN-Eingabe erfordern würde.
Der Pairing-Prozess gemäß BLE-Spezifikation besteht aus drei Phasen. Phase 1 — Austausch von Gerätefähigkeiten (IO-Fähigkeiten, Authentifizierungsunterstützung). Phase 2 — Generierung und Austausch von Short Term Key (STK) oder LTK, abhängig von der Pairing-Methode. Phase 3 — Schlüsseltransport: Austausch von LTK, IRK, CSRK zwischen Geräten. Wenn die Geräte die Schlüssel nach Phase 3 gespeichert haben — ist dies Bonding. Wenn nicht — ist es lediglich Pairing.
| Parameter | Pairing | Bonding |
|---|---|---|
| Schlüsselspeicherung | Nicht gespeichert | In NVRAM gespeichert |
| Automatische Wiederverbindung | Nein | Ja |
| Erneute PIN-Eingabe | Erforderlich | Nicht erforderlich |
| Verwendung | Gelegentliche Verbindungen | Dauerhafte Geräte |
Der Bonding-Prozess wird nach erfolgreichem Abschluss des Pairings initiiert, wenn ein Gerät eine Anfrage zum Speichern von Schlüsseln sendet. In BLE tauschen der Central (normalerweise ein Smartphone) und das Peripheral (tragbares Gerät) Schlüssel über den in Phase 2 eingerichteten sicheren Kanal aus. Nach erfolgreichem Schlüsselaustausch speichert jedes Gerät diese zusammen mit der MAC-Adresse oder Identity Address des Partners im nichtflüchtigen Speicher.
Auf der Central-Seite (iOS/Android) werden die Schlüssel im systemeigenen Bluetooth-Speicher abgelegt. iOS verwendet den Core Bluetooth-Systemstack mit automatischer Bonding-Verwaltung: Beim ersten Pairing werden die Schlüssel im NVRAM des Geräts gespeichert, und nachfolgende Verbindungen zum selben Peripheral erfolgen automatisch. Der Entwickler verwaltet Schlüssel nicht direkt — der Core Bluetooth-Systemstack behandelt Bonding automatisch beim Verbinden mit einem Gerät, das die Schlüsselspeicherung unterstützt.
Bei erneuter Verbindung sendet das Peripheral Werbepakete, die entweder seine öffentliche Adresse oder eine Resolvable Private Address (RPA) enthalten. Der Central empfängt das Paket, gleicht die Adresse mit gespeicherten gebondeten Geräten ab und initiiert bei Übereinstimmung die Sitzungswiederherstellung mit dem gespeicherten LTK. Stimmt der LTK überein, wird die verschlüsselte Verbindung ohne erneutes Pairing hergestellt.
Die BLE-Spezifikation definiert mehrere Authentifizierungsmethoden, die die Sicherheitsstufe des Bondings beeinflussen. Die Wahl der Methode hängt von den IO-Fähigkeiten der Geräte ab — ob sie ein Display, eine Tastatur oder die Möglichkeit zur Bestätigung des numerischen Vergleichs haben. Sicheres Bonding erfordert mindestens Just Works für nicht kritische Anwendungen und Numeric Comparison oder Passkey Entry für Aufgaben, die Schutz vor Man-in-the-Middle-Angriffen benötigen.
Just Works ist eine authentifizierungsfreie Methode, die verwendet wird, wenn eines der Geräte kein Display oder keine Tastatur hat. Verschlüsselungsschlüssel werden ohne Überprüfung der Identität des zweiten Geräts übertragen — Temperatursensoren, Herzfrequenzmesser. Just Works ist anfällig für MITM-Angriffe und wird daher nur für Geräte verwendet, bei denen eine Datenkompromittierung keine Gefahr darstellt.
Numeric Comparison ist eine Authentifizierungsmethode, bei der beide Geräte eine sechsstellige Zahl anzeigen und der Benutzer die Übereinstimmung bestätigen muss. Diese Methode bietet Schutz vor MITM-Angriffen und wird für Geräte mit Display empfohlen — Smartwatches, Fitness-Tracker, Fernbedienungen. Nach Bestätigung wird das Bonding mit der höchsten Vertrauensstufe gespeichert.
Passkey Entry erfordert die Eingabe einer sechsstelligen PIN auf einem der Geräte. In der Regel wird der Code von einem Gerät generiert und darauf angezeigt, während der Benutzer ihn auf dem zweiten Gerät eingibt. Diese Methode wird für medizinische Geräte und IoT-Schlösser verwendet, bei denen ein hohes Sicherheitsniveau erforderlich ist, aber eines der Geräte kein Display für den Numeric Comparison besitzt.
Bonding-Verwaltung ist der Prozess des Anzeigens, Löschens und Verwalterns gespeicherter Schlüssel gekoppelter Geräte. In der mobilen Entwicklung ist es wichtig, die Zustände gebondeter Geräte korrekt zu behandeln, insbesondere wenn ein Peripheriegerät zurückgesetzt oder seine Firmware ersetzt wird. Wenn sich die Bonding-Schlüssel auf dem Peripheral ändern, müssen die alten Schlüssel auf dem Central entfernt und eine neue Paarung durchgeführt werden.
iOS verwaltet gebondete Geräte automatisch über den systemeigenen Core Bluetooth-Stack. Der Entwickler hat keine direkte API zum Anzeigen oder Löschen einzelner gebondeter Geräte — die Verwaltung erfolgt über die Systemeinstellungen (Einstellungen > Bluetooth > Gerät > Forget). Wenn Bonding programmatisch gelöscht werden muss, kann die App den Benutzer mit UIApplication.openSettingsURLString zu den Bluetooth-Systemeinstellungen führen.
Android bietet eine direkte API für die Arbeit mit gebondeten Geräten über die Klasse BluetoothAdapter. Die Methode getBondedDevices() gibt ein Set<BluetoothDevice> aller gekoppelten Geräte zurück. Zum Entfernen des Bondings wird die Methode removeBond() über Reflexion oder unter Android 12+ die offizielle API BluetoothDevice.removeBond() verwendet.
val adapter = BluetoothAdapter.getDefaultAdapter()
val bondedDevices: Set<BluetoothDevice> = adapter.getBondedDevices()
bondedDevices.forEach { device ->
Log.d("Bonding", "Bonded device: ${device.name}, ${device.address}")
}
Die Bonding-Implementierung auf Android erfordert die korrekte Behandlung des BroadcastReceiver für BluetoothDevice.ACTION_BOND_STATE_CHANGED-Ereignisse. Bei der ersten Verbindung zu einem Gerät initiiert das Android-System automatisch das Bonding, wenn das Gerät diese Fähigkeit unterstützt. Der Entwickler muss drei Zustände behandeln: BOND_NONE (nicht gekoppelt), BOND_BONDING (Kopplung läuft), BOND_BONDED (gekoppelt).
val bondReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)
val bondState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, -1)
when (bondState) {
BluetoothDevice.BOND_BONDED -> Log.d("Bonding", "Bonded: ${device.name}")
BluetoothDevice.BOND_NONE -> Log.d("Bonding", "Bindung entfernt")
}
}
}
Um Bonding auf Android zu initiieren, muss die Methode createBond() auf dem BluetoothDevice-Objekt aufgerufen werden. Die Methode gibt einen booleschen Wert zurück — true, wenn der Pairing-Prozess erfolgreich gestartet wurde. Ab Android 12 erfordert createBond() die Berechtigung BLUETOOTH_CONNECT und kann vom System abgelehnt werden, wenn die App keinen Hintergrund-Bluetooth-Zugriff hat.
fun initiateBonding(device: BluetoothDevice) {
if (device.bondState == BluetoothDevice.BOND_NONE) {
val success = device.createBond()
if (success) {
Toast.makeText(context, "Bonding gestartet", Toast.LENGTH_SHORT)
}
}
}
Mobile App-Entwickler stoßen bei der Arbeit mit BLE-Geräte-Bonding häufig auf typische Fehler. Eine falsche Behandlung von Bonding-Zuständen kann zu Verbindungsfehlern, Unmöglichkeit der erneuten Kopplung oder Datenverlust führen. Betrachten wir die häufigsten Probleme und ihre Lösungen.
Nach einem BLE-Geräte-Firmware-Update können die Bonding-Schlüssel zurückgesetzt werden, aber das Smartphone speichert weiterhin die veralteten Schlüssel (stale Bonding). Beim Verbindungsversuch versucht der Central, die Sitzung mit dem alten LTK wiederherzustellen, das Peripheral lehnt den Schlüssel ab, und die Verbindung scheitert. Die Lösung ist, das Bonding auf dem Smartphone über Einstellungen > Bluetooth > Gerät ignorieren zu entfernen und eine neue Kopplung durchzuführen.
BLE-Chips haben ein Limit für die Anzahl speicherbarer Bonding-Einträge. Für die beliebten Nordic nRF5x-Chips beträgt das Limit je nach Konfiguration 8-20 Einträge. Bei Überschreitung des Limits akzeptiert das Gerät keine neuen Kopplungen mehr. Die Lösung ist die Entfernung ungenutzter Bonding-Einträge oder die Verwendung eines prioritätsbasierten Schlüsselrings mit Bereinigung.
Bei Verwendung der Privacy-Funktion (zufällige MAC-Adressen) ändert das Gerät periodisch seine Adresse. Wenn der Central den IRK nicht gespeichert hat, kann er die neue zufällige Adresse keinem bekannten Gerät zuordnen. Die Lösung ist die korrekte Implementierung der IRK-Speicherung und deren Verwendung zur Auflösung von RPA bei jeder Geräteerkennung.
Häufig gestellte Fragen
Bonding in Bluetooth Low Energy ist der Prozess der Speicherung von Verschlüsselungsschlüsseln (LTK, IRK, CSRK) nach Beendigung einer Pairing-Sitzung, um bei nachfolgenden Wiederverbindungen automatisch eine sichere Verbindung ohne PIN-Eingabe oder Bestätigung wiederherzustellen.
Pairing ist die temporäre Aushandlung von Schlüsseln für die aktuelle Sitzung, die bei Verbindungsabbruch gelöscht werden. Bonding umfasst den vollständigen Pairing-Prozess zuzüglich der Schlüsselspeicherung für zukünftige Verbindungen. Bonding wird für Geräte benötigt, die automatisch wiederverbinden — Kopfhörer, Uhren, Fitness-Tracker.
Auf einem iPhone erfolgt die Entfernung des Bondings über die Systemeinstellungen: Einstellungen > Bluetooth > tippen Sie auf das Informationssymbol (i) neben dem Gerät > wählen Sie Forget This Device. Danach werden die Verschlüsselungsschlüssel gelöscht und die nächste Verbindung erfordert eine neue Kopplung.
Die Anzahl gebondeter Geräte hängt von der Kapazität des nichtflüchtigen Speichers des BLE-Chips ab. Smartphones können Hunderte von Einträgen speichern, während kostengünstige BLE-Peripheriegeräte auf 8-20 Einträge beschränkt sind. Bei Überschreitung des Limits werden alte Einträge überschrieben oder das Gerät akzeptiert keine neuen Kopplungen mehr.
Stale Bonding ist eine Situation, in der die Verschlüsselungsschlüssel auf einem Gerät (normalerweise dem Peripheral) zurückgesetzt wurden (z.B. nach einem Firmware-Update), während der Central noch die alten Schlüssel speichert. Infolgedessen kann keine Verbindung hergestellt werden, bis der Benutzer das stale Bonding über die Bluetooth-Einstellungen entfernt und eine neue Kopplung durchführt.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch