Bluetooth - Low Energy und leicht sichtbar

Bluetooth

Low Energy und leicht sichtbar

Eleanore Young
von Eleanore Young
Lesezeit: 5 Minuten

Seit der Einführung der Bluetooth Spezifikation 4 im Jahr 2010, ist der Unterstandart Bluetooth Low Energy (BTLE) zu beinahe universeller Präsenz in elektronischen Geräten von Smart Phones bis Medizinalgeräten herangewachsen. Der hauptsächliche Vorteil von BTLE im Vergleich zu klassischem Bluetooth oder anderen Kommunikationsmethoden ist der geringe Energieverbrauch für darüber kommunizierende Geräte. Für einige Geräte reicht bereits eine Knopfzellenbatterie, um sie für mehrere Jahre zu betreiben. Dies führte dazu, dass BTLE besonders in der Welt des Internet of Things Beliebtheit erlangte. Tatsächlich ist einer der Hauptgründe für die Einführung des Standards, die Kommunikation zwischen Geräten diverser Art wie Kopfhörer, Pulsmessgeräten und dem weit bekannten “intelligenten” Kühlschrank zu ermöglichen.

Das Netzwerk

Im BTLE Netzwerk wurden zwei Hauptrollen, Central und Peripheral, definiert. Es gibt zwei weitere, diese lassen wir hier jedoch aus. Die Central Rolle wird üblicherweise von Geräten mit grösseren Batterien und mehr Rechenleistung übernommen (z.B. Smartphones), während die Peripheral Rolle eher von kleineren Geräten wie Kopfhörer, Orts- oder Zeitdiensten und Sensoren ausgeführt wird. Peripheral Geräte besitzen meist einen limitierten Funktionsumfang und sie können selbst keine Verbindungen zu anderen Geräten erstellen.

Peripheral Geräte verhalten sich so, dass sie in regelmässigen Abständen sehr kurze Nachrichten, sogenannte Advertisements, versenden. Diese Advertisements werden ca. alle 120 ms verschickt und können maximal 31 Bytes an Daten enthalten. Advertisements enthalten Informationen über das Peripheral Gerät, wie es zu erreichen ist und welche Dienste es anbietet. Ein Advertisement besitzt folgende Struktur:

<Connectability indicator><Address type><Bluetooth address>[<Advertisement type><Advertisement data>, . . . ]

Jedes Advertisement enthält mindestens einen Datenblock. Diese Datenblöcke enthalten wiederum eine Liste der angebotenen Dienste, Dienstdaten, den Namen des Geräts oder Hersteller-spezifische Daten.

Tracking von Geräten

Aufgrund der Tatsache, dass Advertisements unverschlüsselt übermittelt werden, entschied das Bluetooth Konsortium eine zufällige Geräteadresse einzuführen, die in definierten Intervallen neu generiert werden kann. Dies soll sicherstellen, dass BTLE Geräte nur für eine beschränkte Zeit eindeutig identifizierbar sind. Dieses Erneuerungsintervall wird jedoch von den Herstellern selbst definiert und einige entscheiden sich dafür, die Adresse nie zu erneuern. Somit enthält ein Advertisement zwar den Address type Klassifizierer Random Device Address, dafür bleibt das Gerät trotzdem eindeutig identifizierbar, weil sich die Adresse nie ändert.

Apple erneuert bekannterweise deren Geräteadressen ca. alle 15 Minuten, Fitbit als gegensätzliches Beispiel erneuerte früher ihre Geräteadressen weniger als einmal pro Tag oder gar nie. Doch auch ein Erneuerungsintervall von 15 Minuten bedeutet, dass das Gerät ca. 7500 Advertisements versendet, bevor die Adresse erneuert wird. Das ist eine grosse Datenmenge!

Auf diese Weise ist es trotzdem vorstellbar, dass BTLE Geräte getrackt werden können. Länger noch, wenn die Advertisement Daten verwendet werden, um einen Fingerprint zu errechnen.

Die Advertisement Daten können aber auch dazu verwendet werden, Informationen über ein Gerät zu sammeln. So enthalten die Daten gewöhnlich eine Referenz zum Hersteller (z.B. Apple Inc.) und akzeptieren Verbindungen ohne vorheriges Pairing. Aktive Verbindungen liefern zusätzliche Informationen über das Gerät, wie zum Beispiel dessen Namen (iPhone) und Versionsinformationen (iPhone8.1).

Was BTLE von anderen Kommunikationsmethoden wie WiFi abhebt, ist die minimal erforderliche Investition, um Geräte zu verfolgen. Unter aktuellen Linuxversionen stellen der Kernel und angehängte Bibliotheken diverse Zugriffsmethoden auf Bluetooth Hardware zur Verfügung. Zudem eignen sich sehr günstige Geräte wie z.B. das Raspberry Pi bereits für den vorliegenden Zweck. Beispielsweise sucht unsere Utility auf unserer Git Repository passiv nach BTLE Geräten und versucht diese zu tracken.

# python3 main.py
0130855d15f06f, [Flags:06][AppleInc:ManufacturerSpecificData:10020b00] – -85 dBa, ConnectableDirectedAdvertising
010c0554a664c2, [Flags:04][IncompleteListOf128BitServiceClassUUIDs:ba5689a6fabfa2bd01467d6e00fbabad][ServiceData16BitUUID:0a181204a5850000] – -86 dBa, ConnectableDirectedAdvertising
011c890c768857, [Flags:1a][CompleteListOf16BitServiceClassUUIDs:[‘Next DST Change Service’, ‘Current Time Service’, ‘Reference Time Update Service’]][CompleteLocalName:54696d65] – -63 dBa, ConnectableDirectedAdvertising

Im Dezember 2016 veröffentlichte das Bluetooth Konsortium die neue Bluetooth Spezifikation 5, in welcher sie den Anspruch nach verbesserter Sicherheit gegenüber der vorangehenden Spezifikation stellen. Wir werden wohl in den nächsten Jahren sehen, wie sich diese neue Version auf die Welt des Internet of Things auswirkt.

Über die Autorin

Eleanore Young

Eleanore Young hat ihren Master in Elektrotechnik und Informationstechnologie im Jahr 2014 an der ETH Zürich abgeschlossen. Zu ihren Fachgebieten gehören Rechnerarchitekturen, Betriebssysteme sowie angewandte Forschung.

Links

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

×
Dynamische Analyse von Android Apps

Dynamische Analyse von Android Apps

Ralph Meier

Security Testing

Security Testing

Tomaso Vasella

Active Directory-Zertifikatsdienste

Active Directory-Zertifikatsdienste

Eric Maurer

Fremde Workloadidentitäten

Fremde Workloadidentitäten

Marius Elmiger

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv