die datenschleuder. - Chaosradio - CCC
die datenschleuder. - Chaosradio - CCC
die datenschleuder. - Chaosradio - CCC
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
TRY THIS AT HOME KIDS!<br />
Bluetooth for fun and profit<br />
Bluetooth ist eine drahtlose Sprach- und Datenübertragungstechnik, <strong>die</strong> mittlerweile<br />
in den verschiedensten Geräten wie Handy, PDA, USB Stick, PCMCIA Karte,<br />
Tastatur, Maus, Headset, Drucker usw. zu finden ist. Im Gegensatz zu Infrarot ist<br />
Bluetooth nicht auf Sichtkontakt der zu verbindenden Geräte angewiesen und funktioniert<br />
mit guter Hardware auch durch Wände hindurch, ist also mit WLAN zu vergleichen<br />
und funkt ebenfalls im 2,4 GHz Bereich.<br />
von crazydj<br />
Beim Design von Bluetooth wurde speziell auf eine<br />
sichere Implementierung geachtet, so läßt sich <strong>die</strong> Verbindung<br />
verschlüsseln und authentifizieren und <strong>die</strong><br />
Bluetooth Adresse wird von der Firmware des Bluetooth<br />
Geräts und nicht durch den Kernel gesetzt, was<br />
das Spoofen <strong>die</strong>ser Adresse nahezu unmöglich macht.<br />
Dennoch tauchten in der Vergangenheit immer wieder<br />
Meldung über Sicherheitslücken in den verschiedensten<br />
Bluetooth Implementationen von Herstellern<br />
wie Nokia und Siemens auf und man liest ständig über<br />
Bluejacking. Grund genug sich mal eingehend mit <strong>die</strong>ser<br />
Technologie auseinander zu setzen.<br />
Here we are! :) Dieser Artikel beschreibt sowohl den<br />
Bluetooth Protokoll Stack und <strong>die</strong> Einrichtung von<br />
Bluetooth Hardware unter Linux 2.4 / 2.6 als auch<br />
typische Anwendungen wie Datenaustausch, Aufbau<br />
eines Netzwerks, Scannen nach Devices und Diensten<br />
und <strong>die</strong> Programmierung einfacher Anwendungen<br />
unter Verwendung der BlueZ Libraries.<br />
Die Theorie<br />
Ein Überblick über den Bluetooth Protokollstack:<br />
Funk (Bluetooth Radio):<br />
• 2,4 GHz Ism Band (2400 - 2483,5 MHz)<br />
• 79 verfügbare Kanäle<br />
• Sendestärke: 1 mW - 100 mW<br />
12 12<br />
#83 / 2004<br />
• Reichweite: 1 - 100m<br />
• Frequenzwechsel nach jedem Paket<br />
SCO / ACL (Bluetooth Baseband):<br />
• SCO (Synchonous Connection Oriented) baut eine<br />
synchrone verbindungsorientierte Punkt-zu-Punkt<br />
Verbindung auf und <strong>die</strong>nt zur Sprachübertragung.<br />
• ACL (Asynchonous Connection Less) baut<br />
wahlweise eine synchrone oder asynchrone<br />
verbindungslose Punkt-zu-Punkt Verbindung auf<br />
und <strong>die</strong>nt zur Datenübertragung.<br />
• Sowohl SCO als auch ACL werden durch <strong>die</strong><br />
Firmware des Bluetooth Geräts implementiert.<br />
LMP (Link Manager Protocol)<br />
• LMP kann man mit Ethernet vergleichen. Es<br />
implementiert <strong>die</strong> 48 Bit lange Bluetooth Adresse<br />
und ist für den Link Setup, <strong>die</strong> Authentifizierung<br />
sowie <strong>die</strong> Verschlüsselung zuständig. LMP wird<br />
durch <strong>die</strong> Firmware der Bluetooth Hardware<br />
implementiert. Einen guten Einblick in <strong>die</strong><br />
Funktionsweise von LMP gibt es auf Palowireless.<br />
com [1] .<br />
HCI (Host Control Interface)<br />
• HCI bietet eine einheitliche Schnittstelle zur<br />
Bluetooth Firmware und gehört eigentlich nicht<br />
direkt zum Bluetooth Protokoll Stack, aber es<br />
wird unter anderem dazu verwendet L2CAP<br />
Pakete an den Link Manager der Firmware zu<br />
senden und ist somit der unterste Layer, der im<br />
Kernel implementiert ist. HCI <strong>die</strong>nt außerdem<br />
dazu <strong>die</strong> aktuelle Config und Features sowie<br />
den Status des Geräts auszulesen und zu<br />
setzen. Die Kommunikation ist paket- und<br />
verbindungsorientiert.<br />
L2CAP (Logical Link Control and Adaptation Protocol)<br />
• L2CAP kann man mit IP vergleichen. Die<br />
Hauptaufgabe <strong>die</strong>ses Protokolls ist <strong>die</strong><br />
Fragmentierung, das Groupmanagement und<br />
<strong>die</strong> Implementierung höherer Protokolle wie<br />
RFCOMM, SDP oder BNEP. L2CAP baut über ACL<br />
eine Verbindung auf, über <strong>die</strong> dann <strong>die</strong> Pakete<br />
der anderen Protokolle geschleust werden. Auf<br />
Palowireless.com [2] findest du mehr über L2CAP.<br />
RFCOMM / SDP / BNEP<br />
• RFCOMM simuliert eine serielle Schnittstelle und<br />
<strong>die</strong> <strong>datenschleuder</strong>