{"id":14983,"date":"2020-06-19T17:43:21","date_gmt":"2020-06-19T15:43:21","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=14983"},"modified":"2020-06-27T12:55:30","modified_gmt":"2020-06-27T10:55:30","slug":"zum-10-millionsten-download-der-corona-warn-app-mal-ein-bluetooth-scann-mit-dem-raspberry-pi-und-wireshark","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=14983","title":{"rendered":"Zum 10-millionsten Download der Corona-Warn-App mal ein Bluetooth Scann mit dem Raspberry Pi und Wireshark"},"content":{"rendered":"<p>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 <a href=\"https:\/\/github.com\/corona-warn-app\" rel=\"noopener noreferrer\" target=\"_blank\">github<\/a> zu finden ist. Also erst mal eine Mindmap zum Thema <strong>Bluetooth<\/strong>:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/Bluetooth.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/Bluetooth.png\" alt=\"\" width=\"4222\" height=\"3304\" class=\"aligncenter size-full wp-image-14984\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/Bluetooth.png 4222w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/Bluetooth-300x235.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/Bluetooth-1024x801.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/Bluetooth-768x601.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/Bluetooth-1536x1202.png 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/Bluetooth-2048x1603.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a> Danke <a href=\"http:\/\/kleinhirn.eu\/\" rel=\"noopener noreferrer\" target=\"_blank\">Dr.Kleinhirn.eu<\/a> f\u00fcr die Erlaubnis zur Ver\u00f6ffentlichung der Mindmap<\/p>\n<p>Dann fangen wir mal ganz einfach an mit ein Bluetooth-Scann mit dem Raspberry Pi und Auswertung der Daten mit <a href=\"https:\/\/www.wireshark.org\/\" rel=\"noopener noreferrer\" target=\"_blank\">Wireshark<\/a>. 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:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/usb-stick-e1592579057461.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/usb-stick-e1592579057461.png\" alt=\"\" width=\"2721\" height=\"1169\" class=\"aligncenter size-full wp-image-14985\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/usb-stick-e1592579057461.png 2721w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/usb-stick-e1592579057461-300x129.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/usb-stick-e1592579057461-1024x440.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/usb-stick-e1592579057461-768x330.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/usb-stick-e1592579057461-1536x660.png 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/usb-stick-e1592579057461-2048x880.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Erst mal das Rasbian-Linux-System updaten und ein paar Programme installieren, wenn sie nicht schon vorhanden sind: <!--more--><\/p>\n<pre class=\"lang:default decode:true \" >\r\nsudo apt-get update\r\nsudo apt-get upgrade\r\nsudo apt-get autoremove\r\nsudo apt-get install bluetooth bluez-utils blueman bluez libbluetooth-dev libudev-dev\r\n<\/pre>\n<p>Erst schauen wir mal, ob der USB-Bluetooth Stick erkannt wird mit lsusb:<\/p>\n<p><strong>lsusb<\/strong><\/p>\n<p>Das Ergebnis:<\/p>\n<pre class=\"lang:default decode:true \" >\r\nBus 001 Device 004: ID 050d:0012 Belkin Components F8T012 Bluetooth Adapter\r\nBus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512\/9514 Fast Ethernet Adapter\r\nBus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub\r\nBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub\r\n<\/pre>\n<p>Ok, der Adapter wird erkannt als Belkin F8T012.<br \/>\n<strong>Bus 001 Device 004: ID 050d:0012 Belkin Components F8T012 Bluetooth Adapter<\/strong><\/p>\n<p>Hier mal ein paar Daten aus der <a href=\"https:\/\/cache-www.belkin.com\/support\/dl\/p75264_f8t01xman.pdf?_ga=2.213054164.195519488.1592418054-965315261.1592418054\" rel=\"noopener noreferrer\" target=\"_blank\">Betriebsanleitung<\/a> zu diesem \u201ealten\u201c Stick, besser w\u00e4hre ein neuerer, aber der tut es erstmal auch:<\/p>\n<pre class=\"lang:default decode:true \" >\r\nUSB Adapter SpecificationsBluetooth\u00ae Technology Compliance: Version 2.0\r\nPhysical Interface: USB UHCI\/OHCI 2.0-compliant\r\nOperating Frequency: 2.4 to 2.4835GHz\r\nOutput Power: (F8T012) 4~20 dBm, Class I(F8T013) -6~4 dBm, Class II Sensitivity: &lt;0.1% BER @ -80 dBm\r\nData Rate: 3Mbps (effective throughput of 2.2 Mbps)\r\nTypical PowerConsumption: (F8T012) Tx: 150mA, Rx 80mA(F8T013) Tx: 65mA, Rx 45mA\r\nOperating Range: (F8T012) 100-meter radius indoors(F8T013) 10-meter radius indoors\r\nNetwork Topology: Point-to-MultipointPacket \r\nSupport: 1\/3\/5 Slots Packet\r\nOperation: Master\/Slave\r\nFrequency Stability: +\/- 10PPM\r\nSupply Voltage: 5.0V DC\r\nNominal Current: 100mA\r\nSpread Spectrum: FHSS (Frequency Hopping Spread Spectrum)\r\nModulation: GFSK (Gussian Frequency Shift Keying)\r\nCertifications: FCC, CE, ICES, C-Tick, BQB, WHQL for XP\r\n<\/pre>\n<p>Als n\u00e4chstes checken wir, ob der Bluetooth Service l\u00e4uft:<br \/>\n<strong><br \/>\nsystemctl status bluetooth<\/strong><\/p>\n<p>Ok, der ist Aktiv:<\/p>\n<pre class=\"lang:default decode:true \" >\r\nbluetooth.service - Bluetooth service\r\n   Loaded: loaded (\/lib\/systemd\/system\/bluetooth.service; enabled; vendor preset: enabled)\r\n   Active: active (running) since Thu 2021-09-18 22:30:01 CEST; 14h ago\r\n     Docs: man:bluetoothd(8)\r\n Main PID: 309 (bluetoothd)\r\n   Status: \"Running\"\r\n   Memory: 3.0M\r\n   CGroup: \/system.slice\/bluetooth.service\r\n           \u2514\u2500309 \/usr\/lib\/bluetooth\/bluetoothd\r\n\r\nJun 18 22:30:00 pi-bplus systemd[1]: Starting Bluetooth service...\r\nJun 18 22:30:01 pi-bplus bluetoothd[309]: Bluetooth daemon 5.50\r\nJun 18 22:30:01 pi-bplus systemd[1]: Started Bluetooth service.\r\nJun 18 22:30:01 pi-bplus bluetoothd[309]: Starting SDP server\r\nJun 18 22:30:01 pi-bplus bluetoothd[309]: Bluetooth management interface 1.14 initialized\r\nJun 18 22:30:01 pi-bplus bluetoothd[309]: Sap driver initialization failed.\r\nJun 18 22:30:01 pi-bplus bluetoothd[309]: sap-server: Operation not permitted (1)\r\n<\/pre>\n<p>Jetzt lassen wir uns mal die lokalen Ger\u00e4te mit <strong>hcitool<\/strong> ausgeben:<br \/>\n<strong><br \/>\nhcitool dev<\/strong><\/p>\n<pre class=\"lang:default decode:true \" >\r\nDevices:\r\n\thci0\t00:00:xx:xx:11:7D\r\n<\/pre>\n<p>Jetzt k\u00f6nnen wir nach Ger\u00e4ten in Reichweite suchen mit hcitool scan.<\/p>\n<p><strong>hcitool scan<\/strong><\/p>\n<pre class=\"lang:default decode:true \" >\r\nScanning ...\r\n\t37:00:00:00:xx:xx\tBT-SPEAKER\r\n<\/pre>\n<p>Ok, er hat ein Ger\u00e4t gefunden. Mein Bluetooth Lautsprecher. Super. Nun k\u00f6nnen wir ihn auch mal f\u00fcnf mal anpingen:<\/p>\n<p><strong>sudo l2ping -c 5 -v 37:00:00:00:xx:xx<\/strong><\/p>\n<p>Das Ergebnis, er ist erreichbar:<\/p>\n<pre class=\"lang:default decode:true \" >\r\nPing: 37:00:00:00:xx:xx from 00:00:3A:69:xx:xx (data size 44) ...\r\n44 bytes from 37:00:00:00:8E:C4 id 0 time 13.09ms\r\n44 bytes from 37:00:00:00:8E:C4 id 1 time 12.32ms\r\n44 bytes from 37:00:00:00:8E:C4 id 2 time 11.16ms\r\n44 bytes from 37:00:00:00:8E:C4 id 3 time 12.23ms\r\n44 bytes from 37:00:00:00:8E:C4 id 4 time 12.43ms\r\n5 sent, 5 received, 0% loss\r\n<\/pre>\n<p>Ist das Ger\u00e4t nicht erreichbar, bzw. ausgeschaltet dann kommt:<\/p>\n<p><strong>Can&#8217;t connect: Host is down<\/strong><\/p>\n<p>Ok, dann starten wir mal ein Scann im Hintergrund mit btmon:<\/p>\n<p><strong>sudo btmon &#038;<\/strong><\/p>\n<p>So der Monitor l\u00e4uft &#8230;<\/p>\n<pre class=\"lang:default decode:true \" >\r\n[1] 1889\r\npi@pi-bplus:~$ Bluetooth monitor ver 5.50\r\n= Note: Linux version 4.19.118+ (armv6l)                                                                                                                                    0.938716\r\n= Note: Bluetooth subsystem version 2.22                                                                                                                                    0.938736\r\n= New Index: 00:00:3A:69:xx:xx (Primary,USB,hci0)                                                                                                                    [hci0] 0.938741\r\n= Open Index: 00:00:3A:69:xx:xx                                                                                                                                      [hci0] 0.938745\r\n= Index Info: 00:00:3A:69:xx:xx (Broadcom Corporation)                                                                                                               [hci0] 0.938750\r\n@ MGMT Open: bluetoothd (privileged) version 1.14                                                                                                                  {0x0001} 0.938763\r\n@ MGMT Open: btmon (privileged) version 1.14\r\n<\/pre>\n<p>In einer neuen Konsole starten wir<\/p>\n<p><strong>sudo bluetoothctl<\/strong><\/p>\n<p>Auf der Konsolen starten wir den Scann dann mit:<\/p>\n<p><strong>scan on<\/strong><\/p>\n<p>Und schon l\u00e4uft im anderen Fenster der Scann durch:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-1.png\" alt=\"\" width=\"3352\" height=\"1354\" class=\"aligncenter size-full wp-image-14994\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-1.png 3352w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-1-300x121.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-1-1024x414.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-1-768x310.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-1-1536x620.png 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-1-2048x827.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Wir unterbrechen den Task mit (sudo ps -all  und dann sudo kill nr (oder Control +c, wenn nicht im Hintergrund) um die Daten f\u00fcr die weitere Auswertung in eine Datei (btmon-scann.btmon) zu schreiben. Wir starten mit<\/p>\n<p><strong>sudo btmon -w btmon-scan.btmon &#038;<\/strong><\/p>\n<p>Nach ein paar Minuten Laufzeit unterbrechen wir denn Scann und laden die Datei in <a href=\"https:\/\/www.wireshark.org\/\" rel=\"noopener noreferrer\" target=\"_blank\">Wireshark<\/a>. F\u00fcr Bluetooth gibt es ein eigenes Profil, welches unten rechts ausgew\u00e4hlt werden kann:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-2.png\" alt=\"\" width=\"760\" height=\"378\" class=\"aligncenter size-full wp-image-14987\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-2.png 760w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-2-300x149.png 300w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/a><\/p>\n<p>Wenn die Datei geladen wird, kann sie mit <a href=\"https:\/\/www.wireshark.org\/\" rel=\"noopener noreferrer\" target=\"_blank\">Wireshark<\/a> ausgewertet werden:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-3.png\" alt=\"\" width=\"4512\" height=\"2186\" class=\"aligncenter size-full wp-image-14988\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-3.png 4512w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-3-300x145.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-3-1024x496.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-3-768x372.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-3-1536x744.png 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-3-2048x992.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Wie man sehen kann, hatte ich mein Handy kurz an, das wurde dann gleich vom Bluetooth-Scanner erfasst.<\/p>\n<p>Oben im Men\u00fc Wireless gibt es auch noch weitere Statistiken zu der erfassten Datei, die in diesem Fall nur ein paar Minuten lief:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-4.png\" alt=\"\" width=\"2630\" height=\"1898\" class=\"aligncenter size-full wp-image-14989\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-4.png 2630w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-4-300x217.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-4-1024x739.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-4-768x554.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-4-1536x1108.png 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/06\/bluetooth-scann-4-2048x1478.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>So einfach kann mal Bluetooth Daten mitschneiden. Sp\u00e4ter mal ein paar weitere Details. F\u00fcr heute <strong>&#8222;Freut euch immer!&#8220;<\/strong> und haltet Abstand, sonst &#8230;<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/05\/2.-Covid-19_Welle_-2-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/05\/2.-Covid-19_Welle_-2-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1919\" class=\"aligncenter size-full wp-image-14946\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/05\/2.-Covid-19_Welle_-2-scaled.jpg 2560w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/05\/2.-Covid-19_Welle_-2-300x225.jpg 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/05\/2.-Covid-19_Welle_-2-1024x768.jpg 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/05\/2.-Covid-19_Welle_-2-768x576.jpg 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/05\/2.-Covid-19_Welle_-2-1536x1151.jpg 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2020\/05\/2.-Covid-19_Welle_-2-2048x1535.jpg 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u00fcr die Erlaubnis zur Ver\u00f6ffentlichung der Mindmap Dann fangen wir mal ganz einfach an mit ein Bluetooth-Scann mit &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=14983\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eZum 10-millionsten Download der Corona-Warn-App mal ein Bluetooth Scann mit dem Raspberry Pi und Wireshark\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[220,1023,1319,7],"tags":[3713,721,4006,4005,511,512,1115],"class_list":["post-14983","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-raspberry-pi","category-sicherheit-2","category-tools","tag-die-liebe-versagt-nie","tag-bluetooth","tag-corona-warn-app","tag-scan","tag-scann","tag-scanner","tag-wireshark"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/14983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14983"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/14983\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14983"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}