Bluetooth Low Energy = Die freiwillige elektronische Fußfessel?

Kennt ihr das? Ihr kommt nach Hause und ruft laut durch Wände und Decken: „Sebastian ist hier“ „Sebastian ist hier“ „Sebastian ist hier“. Okay, ihr heißt vielleicht nicht Sebastian, aber keiner würde auf die absurde Idee kommen. Doch das was ihr unter Umständen am Körper tragt könnte es für euch übernehmen.

Da nun Bluetooth Low Energy (Bluetooth LE, BLE) in fast jedem neuen Gadget steckt, wollte ich die grundlegende Funktion kurz erklären und Möglichkeiten aufzeigen, um nach BLE Devices zu scannen.

Fangen wir mit den verwirrenden Begrifflichkeiten an.

Die Bluetooth SIG bringt ihre Spezifikation heraus und gibt dieser eine aufsteigende Seriennummer. Das Aktuellste ist „Bluetooth® 4.2“. Ab der Bluetooth 4.0 gab es auch die „Unterkategorie“ Bluetooth Low Energy, vorher gab es nur Bluetooth Classic (obwohl es da noch nicht so hieß).

Da sich beide Bluetoothvarianten im Sendeverfahren und der Kanalaufteilung stark unterscheiden, muss die Hardware entweder für das Eine, das Andere oder Beides ausgelegt sein. Nur mit Software kann hier keine Kompatibilität hergestellt werden. Das verwirrt natürlich die Verbraucher. Nur weil ich einen Bluetooth 4.0 Adapter kaufe, muss der noch lange nicht beide Sendeverfahren beherrschen.

Um den Verbraucher zu entwirren wurden weitere Begriff eingeführt *ironischer Unterton*.

Bluetooth Smart: Das Gerät kann nur Bluetooth Low Energy

Bluetooth Smart Ready: Das Gerät beherrscht Bluetooth Classic und Bluetooth Low Energy

Alles klar? Nö? Hier ein paar Beispiele:

Bluetooth 4.0-4.2 USB Dongle: Diese sind fast alle fähig mit beiden Varianten zu kommunizieren. Oft wird das Smart Ready auf der Verpackung nicht angegeben.

Die meisten Wearables: Bluetooth Smart, um Strom zu sparen

Handys: Bluetooth Smart Ready

ältere Geräte: Bevor BLE bekannt wurde war Bluetooth häufig mit 2.1 oder 3.0 angegeben.

Was Bluetooth Low Energy so sparsam macht, kann man sicher auf anderen Seiten anlesen. Der Hauptgrund des schnellen Verbindungsaufbaus sollte aber für diesen Artikel klar sein.

Das Gerät, welches am meisten Strom sparen muss, muss sich in regelmäßigen Intervallen bemerkbar machen. Die Gegenstelle lauscht und verbraucht damit einen nicht unerheblichen „Ruhestrom“. Glücklicherweise finden sich die Kommunikationspartner schneller, da es nur drei Kanäle gibt, auf dem sich ein Gerät bemerkbar machen kann (Advertising-Kanäle).

Zum Beispiel wacht ein Fitnessband jede Sekunde auf und schickt ein „Hallo hier bin ich“ auf den Advertisekanal eins. Anschließend lauscht es kurz auf demselben Kanal, ob jemand antwortet. Wenn keine Antwort kommt, wird auf den anderen beiden Kanälen dasselbe versucht und der Prozessor mit RF-Einheit geht wieder schlafen.

Anders funktioniert es, wenn zwei Geräte bereits eine Verbindung aufgebaut haben. Dann verabreden sich beide auf einem anderen Kanal zu einer bestimmten Zeit und setzen die spezifizierten BLE Hopp-Intervalle um (Adaptive Frequency Hopping). Das Fitnessband ist dann für andere Geräte nicht mehr zu sehen. Da es nur eine Verbindung gleichzeitig aufbauen kann, ist auch ein Advertising nicht mehr sinnvoll.

BLE Geräte kennen also vereinfacht gesagt nur drei Zustände: Aus, Advertising und Verbunden.

Einige Geräte, die ich bisher beobachten konnte, hatten ein permanentes Advertising aktiviert und konnten nicht ausgestellt werden. Das hat für den Benutzer den Vorteil, dass am Gadget nichts mehr gedrückt werden muss, um eine Verbindung mit dem Handy herzustellen oder eine verlorene Verbindung wieder aufzunehmen. Wären nur noch zwei Zustände übrig. Da beide Zustände stromsparend arbeiten, ist es aus energetischer Sicht egal welcher Zustand eingenommen wird.

BLE Verbindungen gehen mehrfach am Tag verloren, einfach aus dem Grund, dass man nicht permanent sein Handy mitführt. Es bleibt auch mal auf dem Wohnzimmertisch liegen, während man sich ein Glas Wasser in der Küche holt. Da das Fitnessband natürlich direkt am Körper ist und das Handy in der Hand, muss auch kein Strom für große Sendeleistungen geopfert werden. Demzufolge ist die Verbindung schon bei einfachen Entfernungen gekappt. Weiterhin schalten viele Benutzer ihr Bluetooth am Handy aus, wenn sie es nicht benutzen, um Strom zu sparen oder gehen in über Nacht in den Flugmodus.

Ist die Verbindung zum Handy gekappt, kann das Gerät geortet werden. Da einige BLE-Nachrichten eine Sendestärke mitschicken und die Empfangsstärke gemessen wird, ist auch eine recht genaue Ortung möglich. Das macht eine Indoornavigation, wie es z.B. Apples iBeacon bereitstellt, möglich oder macht uns mehr zum gläsernen Menschen…

Die Sicherheitsmaßnahmen, die die Bluetooth SIG auch wieder mit der 4.2 geupdatet hat, sind meinen Stichproben nach sehr unzureichend bei den Geräten umgesetzt.

Zufällige (Random) MAC-Adresse: Das Gadget wechselt regelmäßig die MAC-Adresse/Advertising-Adresse, nur durch Bildung einer verhandelten Prüfsumme kann die korrekt gepairte Gegenstelle das Gerät identifizieren.

Direct Advertising: Das Gadget (übrigens fast immer der Slave und gleichzeitig der Server) schickt die MAC-Adresse der gewünschten Gegenstelle im Advertising-Paket mit. Das kann auch mit der zufälligen Adresse kombiniert werden. Vorteil ist, dass die Hardware des Handys (der Master und gleichzeitig der Client) im Hintergrund lauschen kann und die passende APP einen Interrupt bekommt, wenn das Gerät wieder gesehen wird. Das funktioniert aber auch ohne direktes Advertising. Weiterhin können andere Geräte das Gerät schneller in ihrem Suchlauf ignorieren.

Asymmetrisches Kryptosystem: In Bluetooth 4.0 gibt es einige Schwachstellen beim Pairing. So das es ein leichtes ist, bei einem Pairing-Prozess mitzulauschen und alle folgenden Verbindungen zu entschlüsseln. Da asymmetrische Schlüssel für einen stromsparenden Prozessor nicht ganz so einfach zu berechnen sind, dachte die SIG wahrscheinlich sie kommt ohne aus. In der Bluetooth Spec 4.2 gibt es nun eine Diffie-Hellman Schlüsselberechnung, da genug Seiten im Netz zeigen wie man mit der Hardware „Ubertooth“ und dem Tool crackle BLE-Verbindungen knackt.

Wie kann man nun trotzdem Bluetoothgeräte in der Umgebung orten?

Da Handys auch keine Batterielaufzeit zu verschenken haben, wird das Scannen, je nach APP-Vorgabe, zyklisch unterbrochen. Für einen zweiten Scanner ist es kein Problem einen kurzeitig getrennten Slave in dieser Zeit zu detektieren oder gar zu kontaktieren.

Recht einfach zu bedienen sind diverse Handyapps. Die Bluetooth Sensortag APP für iOS gefällt mir gut. Hier kann man auch Geräten ohne Namen einen Nickname verpassen. Außerdem kann man alle Daten einsehen und auch verändern, falls es das Device für ungpairte Verbindungen zulässt.

Mit dem Pally BLE Scanner für iOS hat man immer den aktuellen Empfangslevel, der im Ether liegenden Advertisepakete, im Blick.

BLE scanner          sensortag_app

Mit dem Linuxtool „hcitool“  kann man noch sehr viel mehr tun. In Kombination mit Wireshark oder hcidump lässt sich der Datenverkehr auch sehr genau beobachten und analysieren. So funktioniert das hcitool (Bluez v5.32) auf dem Raspberry anders als das meines Ubunto PCs (Bluez v4.101). Das Raspberry scannt auch Advertising-Pakete mit „Directe Advertising“ ein, da an den Dongle andere Suchparameter durch hcitool übergeben werden. So habe ich beispielsweise zwei Apple TV mit Bluez Version 5.32 mehr auf der Liste.

Ble_scan_parameter

Ble_scan_parameter_raspberry

Der Aufruf für ein Scan unter Linux ist folgender:

sudo hcitool lescan --duplicates

Fazit:

BLE Geräte sind am Advertising zu erkennen. Das ist ähnlich einfach, wie dem Nachbarn seinen WLAN-Router zu sehen. Nur trägt man einen Router nicht am Körper. Sollte es nicht sichtbar sein, ist es aus oder bereits mit einem anderen Gerät verbunden. Diese Verbindung löst sich immer mal wieder, man könnte natürlich auch mit einem 2,4 GHz Jammer nachhelfen, aber das wäre abseits des legalen Bereichs.

Sollte ein Gerät mit einer zufälligen MAC-Adresse auftauchen, gibt es evtl. doch Dinge die es identifizieren. Eine Zeitanalyse könnte beispielsweise das Device einfach am Advertising-Intervall erkennen. Da der Payload einer Advertise-Nachricht sehr flexibel gestaltet werden kann, könnten auch die Länge und der restliche Inhalt dazu Beitragen das Gerät aus wenigstens fünf anderen heraus zufiltern. Für Filialen die ihre Kundenbindung tracken wollen sicher nicht ausreichend, aber die Anwesenheit des Nachbarn zu tracken reicht es allemal.

Es wäre möglich in der Wohnung drei Raspberry Pis zu verteilen und aus den Empfangspegeln der Advertisenachrichten ein Anwesenheits- und Bewegungsprofil der Mieter über oder unter euch zu erstellen.

Warum nicht mal in die Handy-App schauen ob der Nachbar überhaupt anwesend ist, bevor man sich auf den Weg macht, um sich Zucker zu leihen? Von Bluetooth LE Hacking oder Hacken ist man mit der Methode noch weit entfernt.

Natürlich kann man auch die Träger der Fitnessbänder in den Wahnsinn treiben. Da auch ungepairte Gegenstellen sich in vielen Fällen verbinden können, kann das Gerät durch einen fremden Verbindungsaufbau für die eigentliche Funktion blockiert werden. Durch eine aufgezwungene und sehr kurze Connection-Intervall in dieser neuen Verbindung, verkürzt sich die Akkulaufzeit des Gerätes dramatisch. Wenn der sinnvolle Intervall von einer Sekunde auf das Minimum von 7,5 ms herabgesetzt wird, ist der Akku 133 mal schneller leer. Aus geplanten 2 Wochen werden so 2,5 Stunden Akkulaufzeit.

In diesem Sinne ist BLE und die daraus kreierten Gadgets, die aus wirtschaftlicher Sicht in Tagen herunterprogrammiert werden müssen, doch nur eine elektronische Fußfessel, mit dem Unterschied, dass diese freiwillig angelegt wird.

Ich würde mich freuen, wenn ihr ein paar Erfahrungen und Beobachtungen zu eurem BLE-Umfeld in den Kommentaren lasst.

Advertisements
Dieser Beitrag wurde unter Allgemein abgelegt und mit , , , , , , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

4 Antworten zu Bluetooth Low Energy = Die freiwillige elektronische Fußfessel?

  1. Dirk schreibt:

    Hallo Sebastian, ich finde Dein Beitrag sehr informativ und gut gelungen.

    Interessante Erfahrungen habe ich gemacht in Sachen Bluetooth Classic, und oder BLE.

    1. Mein Bluetooth ist immer auf sichtbar. Also Kennung habe ich immer wieder ein anderen Text, weil ich es irgendwie praktisch finde es als Informationsträger zu nutzen für andere die gerne suchen. Nun habe ich öfters mal festgestellt, das ein anderes Gerät meine Textkennung übernommen hat. Genau herausgefunden habe ich es deshalb weil ich täglich meine Kennung ändere, und eine genommen die auch kein anderer hat. Dabei waren es Geräte der verschiedensten Kategorien (Smartphone, Handy, Netzwerk) die meine Kennung (Bluetooth Namen) übernommen haben. Ein HCI Log für Android auf dem 2. Handy konnte mir kein Aufschluss über eine Verbindung geben. Zum suchen habe ich eine Android App genutzt die Pausenlos sucht. Doch woran liegt es das ein anderes Gerät meine Kennung übernimmt?

    2. Etwas was mir schon lange für Kopfzerbrechen sorgt ist, weshalb ein mit App pausenlos suchendes Smartphone zum Teil sehr oft aufhört zu suchen? . Dabei muss es irgendein Bug in der Bluetooth Funktionalität geben den ich nicht herausfinden kann, denn eine App die pausenlos sucht würde ohne dem Bug auch pausenlos das tun. Dann kann ich weder per App oder im Bluetooth Menü des Smartphones suchen. Oftmals hilft es nicht Bluetooth aus und wieder einzuschalten, was dann ein Neustart des Smartphones bedeutet. Habe das Problem schon bei vielen Systemen und Bluetooth Versionen erlebt, wobei es bei BLE am häufigsten ist. Es muss irgendein Störfaktor geben der das unterbricht? oder ein Jammer? Doch was zwingt das suchen auf solche unsanfte Art zu unterbrechen?

    Gruß Dirk

    • Hallo Dirk,
      schön das dir mein Beitrag gefallen hat.

      Zu deinen Fragen:
      1. Ich denke nicht das unterschiedliche Geräte deinen Gerätenamen kopieren. Wie hast du herausgefunden welche Geräte es gewesen sein sollen? Anhand der MAC-Adressen?

      2. Android Bluetooth basiert auf dem Linux BlueZ Stack. Nur bei Low Energie soll es größere Unterschiede geben, da BlueZ hier zu langsam war und viele Hersteller ihre eigene Erweiterung geschrieben haben. Der BlueZ Stack ist meiner Meinung nach eher anfällig für diverse Fehler und funktioniert mehr oder weniger schlecht. Ich denke das erklärt auch Beobachtung eins. Es wird wohl durch einen Fehler deine eigene Gerätekennung beim Scannen gelesen haben.
      Was der BlueZ-Stack (und vielleicht auch andere) besonders schlecht kann, ist mehrere unterschiedliche Anwendungen darauf zugreifen zu lassen. Es ist wohl eher kein Jammer, sondern einfach eine weitere Applikation die gerade mit Bluetooth was tun will. Bei Mobiltelefonen kommt noch hinzu, dass dort Funkmodule mutwillig aus Stromspargründen abgeschalten werden! Könnte ja auch immerhin eine fehlerhafte APP sein, die die ganze Zeit scannen will.

      Ich empfehle kein Android für weitere Tests zu verwenden.

      VG

      Basti

  2. Dirk schreibt:

    Hallo Sebastian,

    Also ich nutze die App „Wigle Bluetooth“ auf einem Samsung Note 3. Da es Bluetooth 4.0 hat kann ich BLE und klassische Geräte sehen. Als 2. Handy habe ich ein normales älteres Samsung Handy genutzt wo ich die Bluetooth Kennung in ein Text umbenannt habe. So habe ich schonmal sicher gestelllt das meine Kennung einmalig ist. Laut suche ist mir öfters aufgefallen das ein anderes Gerät meine Kennung übernommen hat. Beim ersten mal dachte ich das jemand es aus spass gemacht hat. Die App zeigt an und speichert die MAC Adresse, Kennung, die Gerätedefinition. Anhand der Log Datei konnte ich sicher feststellen das einmal ein iPhone (BLE), ein Galaxy S6 sich automatisch umbenannt haben. Weil unter der gleichen MAC einmal „iPhone“ stand und danach mein Text so wie ich das Handy nannte.

    Was das Problem mit dem Stehenbleiben betrifft, das habe ich schon bei vielen verschiedenen Systemen festgestellt. Auch Windows Mobile und Symbian. Wobei es bei BLE häufiger passiert als beim klassischen Bluetooth. Testweise habe ich es mal in einem Raum den ganzen Tag suchen lassen, und es ist nicht stehen geblieben, und hat schön brav die Geräte angezeigt die gefunden wurden. Mache ich das an Orten wo viele Leute sind bleibt es öfters stehen, besonders mit BLE.

    Gruß Dirk

  3. Gustl König schreibt:

    Hey. Bei mir in der Stadt gibt es einen neuen rollerverleih. Der funktioniert nur mit deiner fusfessel, so wie du das erklärt hast. dort macht das System auch sinn. Nur leider hab ich das falsche Handy. S3neo. Auch das sollte mann wenn man was „böses“ macht zu hause lassen. Weil es auch eine fussfessel darstellt. Trotzdem danke für deinen ausführlichen Bericht. Thx und Good wishes from B-Neukölln

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s