Zum 10-millionsten Download der Corona-Warn-App mal ein Bluetooth Scann mit dem Raspberry Pi und Wireshark

Zum 10-millionsten Download der Corona-Warn-App hatte ich mal Interesse an Bluetooth. Da die Corona-Warn-App mit Bluetooth arbeitet und der Quellcode und Doku auf github zu finden ist. Also erst mal eine Mindmap zum Thema Bluetooth:

Danke Dr.Kleinhirn.eu für die Erlaubnis zur Veröffentlichung der Mindmap

Dann fangen wir mal ganz einfach an mit ein Bluetooth-Scann mit dem Raspberry Pi und Auswertung der Daten mit Wireshark. Wir brauchen nicht viel. Einen Raspberry Pi und eine Bluetooth USB Stick und 1-2 Stunden Zeit. Ich habe z.B. diesen Bluethooth-USB-Adapter verwendet:

Erst mal das Rasbian-Linux-System updaten und ein paar Programme installieren, wenn sie nicht schon vorhanden sind:

Erst schauen wir mal, ob der USB-Bluetooth Stick erkannt wird mit lsusb:

lsusb

Das Ergebnis:

Ok, der Adapter wird erkannt als Belkin F8T012.
Bus 001 Device 004: ID 050d:0012 Belkin Components F8T012 Bluetooth Adapter

Hier mal ein paar Daten aus der Betriebsanleitung zu diesem „alten“ Stick, besser währe ein neuerer, aber der tut es erstmal auch:

Als nächstes checken wir, ob der Bluetooth Service läuft:

systemctl status bluetooth

Ok, der ist Aktiv:

Jetzt lassen wir uns mal die lokalen Geräte mit hcitool ausgeben:

hcitool dev

Jetzt können wir nach Geräten in Reichweite suchen mit hcitool scan.

hcitool scan

Ok, er hat ein Gerät gefunden. Mein Bluetooth Lautsprecher. Super. Nun können wir ihn auch mal fünf mal anpingen:

sudo l2ping -c 5 -v 37:00:00:00:xx:xx

Das Ergebnis, er ist erreichbar:

Ist das Gerät nicht erreichbar, bzw. ausgeschaltet dann kommt:

Can’t connect: Host is down

Ok, dann starten wir mal ein Scann im Hintergrund mit btmon:

sudo btmon &

So der Monitor läuft …

In einer neuen Konsole starten wir

sudo bluetoothctl

Auf der Konsolen starten wir den Scann dann mit:

scan on

Und schon läuft im anderen Fenster der Scann durch:

Wir unterbrechen den Task mit (sudo ps -all und dann sudo kill nr (oder Control +c, wenn nicht im Hintergrund) um die Daten für die weitere Auswertung in eine Datei (btmon-scann.btmon) zu schreiben. Wir starten mit

sudo btmon -w btmon-scan.btmon &

Nach ein paar Minuten Laufzeit unterbrechen wir denn Scann und laden die Datei in Wireshark. Für Bluetooth gibt es ein eigenes Profil, welches unten rechts ausgewählt werden kann:

Wenn die Datei geladen wird, kann sie mit Wireshark ausgewertet werden:

Wie man sehen kann, hatte ich mein Handy kurz an, das wurde dann gleich vom Bluetooth-Scanner erfasst.

Oben im Menü Wireless gibt es auch noch weitere Statistiken zu der erfassten Datei, die in diesem Fall nur ein paar Minuten lief:

So einfach kann mal Bluetooth Daten mitschneiden. Später mal ein paar weitere Details. Für heute „Freut euch immer!“ und haltet Abstand, sonst …