V tomto článku navazujeme na článek Základy technologie Bluetooth: původ a rozsah funkcí, který jsme publikovali nedávno. Budeme se zde zabývat funkcemi, které technologie Bluetooth nabízí a ukážeme vám, jak spolu navzájem jednotlivá zařízení komunikují. Věnovat se budeme i problematice bezpečnosti při používání Bluetooth.
Technologie Bluetooth se poprvé objevila v roce 1999 a prakticky okamžitě našla oblibu nejen u běžných uživatelů, ale i v mnoha průmyslově nasazovaných aplikacích. Podle odhadů se během deseti let vyrobilo více než 1,5 miliardy čipů Bluetooth. V současnosti se skupina Bluetooth Special Interest Group (Bluetooth SIG nebo také BSIG) snaží prostřednictvím četných aktualizací a rozšíření standardu zajistit této technologii slušné umístění při prosazování se mezi všemi možnými bezdrátovými technologiemi.
V tomto článku vám ukážeme, jak komunikace mezi jednotlivými zařízeními vlastně probíhá. Dále se budeme věnovat mechanismům pro zabezpečení dat při přenosu přes Bluetooth a poukážeme na možné slabiny této technologie.
Rozhraní HCI a stavba aplikačního protokolu
Rozhraní HCI (Host Controller Interface) představuje příkazové rozhraní pro řadič vrstvy Baseband (Baseband Controller) a správce linkové vrstvy (Link Manager). Umožňuje přistupovat k parametrům připojení. Rozhraní HCI bychom mohli přirovnat třeba k rozhraní Socket protokolu TCP. S rozhraním HCI přecházíme do kontaktu i s generátorem Host, neboť příkazy připravené v HCI se na hostiteli Bluetooth provádějí pomocí ovladače HCI. To je ostatně znázorněno na následujícím obrázku.
Schéma komunikace mezi dvěma zařízeními včetně zobrazení jednotlivých softwarových vrstev.
Vrstva Host Control Transport Layer, která je přístupná díky fyzickému připojení, spojuje obě instance HCI s oběma navzájem komunikujícími řadiči Bluetooth. Obě zařízení jsou informovány prostřednictvím asynchronně posílajících zpráv a odpovídají za zpracování případných událostí a provedení požadovaných operací.
Příkazová struktura HCI
Rozsáhlou paletu příkazů HCI můžeme rozdělit do následujících skupin: Generic Events, Device Setup, Controller Flow Control, Controller Information, Controller Configuration, Device Discovery, Connection Setup, Remote Information, Synchronous Connections, Connection State, Piconet Structure, Quality of Service, Physical Links, Host Flow Control, Link Information, Authentication and Encryption a Testing.
Rozsah příkazů a operací HCI můžeme demonstrovat třeba na skupině pro vyhledávání zařízení (Device Discovery). Sem patří kupříkladu příkazy: Inquiry Command, Inquiry Result Event, Inquiry Result with RSSI Event, Inquiry Cancel Command , Periodic Inquiry Mode Command, Exit Periodic Inquiry Mode Command, Read Inquiry Scan Activity Command, Write Inquiry Scan Activity Command, Read Inquiry Scan Type Command, Write Inquiry Scan Type Command, Read Inquiry Mode Command a Write Inquiry Mode Command.
Service Discovery Protocol
Při komunikaci pomocí technologie Bluetooth hraje významnou roli protokol SDP (Service Discovery Protocol). Ten totiž zajišťuje rozpoznání různých zařízení Bluetooth včetně informací o poskytovaných službách a charakteristiku partnera, s nímž zařízení komunikuje. Tento systém totiž všem ušetří nezanedbatelné náklady, protože díky SDP nemusí výrobci zařízení do svých výrobků integrovat kompletní sadu Bluetooth, ale mohou svá zařízení stavět modulárně.
Struktura standardu Bluetooth
RF-Spezifikation –> Specifikace RF
Protokollstapel –> Soubor protokolů
Übernommene Protokolle –> Převzaté protokoly
Protokoll von der BSIG … –> Protokol vyvinutý skupinou BSIG na základě existujících standardů ETSI a ITU
Pokud se chtějí k sobě připojit nějaká dvě zařízení, mohou si navzájem zjistit, které služby poskytují a na jejich základě připojení vytvořit. SDP představuje nezbytný základ, jenž podporuje vytváření spontánních (ad-hoc) sítí.
RFCOMM – základ každého připojení
Standard RFCOMM představuje jeden z nejdůležitějších aplikačních protokolů. Emuluje sériové rozhraní RS-232 a přizpůsobuje standardu Bluetooth část specifikace ETSI s označením TS 07.10. Tato specifikace popisuje připojení bod-bod mezi dvěma zařízeními prostřednictvím sériového rozhraní typu „vzduch“. Ze stejného důvodu budou kupříkladu implementována i připojení místní sítě LAN přes TCP/IP za použití sériového protokolu PPP (Point to Point Protocol) přes RFCOMM.
RFCOMM mí klíčový význam podobně jako drátově připojené rozhraní RS232. V tomto případě to znamená, že se protokol RFCOMM vyskytuje prakticky ve všech implementacích zásobníku Bluetooth a že řada vlastních aplikací se bude vyvíjet právě přes něj.
Nejčastější scénář u aplikací: spřažené služby
K nejčastěji používaným případům použití technologie Bluetooth u aplikací patří spřažení různých zařízení. V praxi se takové spřažení často vyskytuje mezi sadou hands free a mobilním telefonem, třeba v autech. Navázání a ukončení hovoru zde signalizuje Telephony Control Service Binary (TCS Binary), a to na základě doporučení Q.931 mezinárodní telekomunikační unie ITU-T. Navíc má Bluetooth SIG k dispozici sadu tzv. příkazů AT, kterou převzala z příslušných specifikací ITU a ETSI, aby zajistila ovládání modemů a mobilních telefonů.
Díky tomu jsou k dispozici i faxové služby. Je nutno upozornit na to, že přes protokol TCSBIN a vrstvu L2CAP se hovor pouze navazuje. Přenos dat probíhá přes protokol audia, který přistupuje přímo na SCO ve vrstvě Baseband.
Další aplikační protokoly
Ve standardu Bluetooth můžeme najít celou řadu ještě dalších téměř aplikačních protokolů. Patří sem kupříkladu protokol OBEX (Object Exchange), který byl převzat ze standardu IrDA pro připojení přes infračervený port a který modeluje reprezentaci objektů a strukturu dialogů mezi jednotlivými objekty.
Díky protokolu OBEX se mohl vyvinout i protokol vCard, jenž umožňuje výměnu virtuálních vizitek. Ve standardu Bluetooth je k dispozici i WAP (Wireless Application Protocol), který byl vyvinut pro přenos prostředků WML (Wireless Markup Language) na mobilní telefony a který je realizován přes vrstvy protokolu TCP/IP.
Zabezpečení v technologii Bluetooth
Otázka zabezpečení má u bezdrátových systémů stále vzrůstající význam. Pro slušnou úroveň zabezpečení je nutno použít silnou autorizaci a navíc musí být mezi zařízeními navázán a zaručen vztah důvěry. K tomu účelu nabízí technologie Bluetooth prostředky zabezpečení jak na linkové, tak na aplikační vrstvě (Bluetooth Security Paper). Tyto mechanismy jsou spouštěny symetricky, takže každé zařízení stejného druhu může provádět ověření a šifrování stejným způsobem.
Klíčový materiál pro linkovou vrstvu se vytváří ze čtyř částí: jedná se o adresu zařízení Bluetooth, dva tajné klíče a pseudonáhodné číslo, které se pro každý přenos generuje znovu (a to podle specifikace pro systémy Bluetooth). Pro standard Bluetooth byla vyvinuta sada šifrovacích algoritmů tzv. rodiny E autorů Masseyho a Rueppela.
Při ověřování zařízení se používá symetrický dvojstranný systém Challenge/Response – tzv. algoritmus E1. Pro šifrování dat se používá algoritmus E0, což je symetrická metoda proudového šifrování. Správa a používání klíče v sobě zahrnují různé prvky. Pro vytvoření klíče se používají šifrovací prvky algoritmů E2 a E3.
Nedostatky v zabezpečení
Standardně se dají systémy, které jsou zabezpečeny šifrováním, prolomit dvěma způsoby – buď se nalezne nějaká slabina v samotném šifrovacím algoritmu, nebo se využije chyby v implementaci protokolu.
Algoritmus E0 byl velmi podrobně analyzován komunitou, takže jsou k dispozici výsledky týkající se síly tohoto algoritmu. Jednu slabinu vykazuje prvek s generátorem sum, jenž by mohl být zneužit při korelačních útocích. Vzhledem k vysoké frekvenci resynchronizace však takový typ zneužití nevypadá příliš reálně.
Jsou známy i přímé útoky na samotný algoritmus E0, jenže ty jsou velmi složité. Dva z takových útoků můžete najít ve zprávě na internetové stránce http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/8900/28134/01258472.pdf?arnumber=1258472. I výzkum pánů Scotta R. Fluhrera a Stefana Luckse na internetové stránce http://portal.acm.org/citation.cfm?id=646557.694748&coll=GUIDE&dl=GUIDE&CFID=24725003&CFTOKEN=47454829 ukazuje jeden útok, který potvrzuje, že se maximální efektivní délka klíče 84 bitů sníží, když útočník zná 132bitů šifrovaného proudu dat. A pokud je známo 243 bitů šifrovaného proudu dat, může se maximální účinná délka klíče snížit až na 73 bitů.
Pokud odhlédneme od těchto složitých a teoretických nedostatků, objevíme i několik obecných slabin. Tak například v minulosti, konkrétně v roce 2006 u firmy Toshiba se vyskytl chybně implementován zásobník Bluetooth. Další slabinou jsou standardní PINy. Není tomu až zas tak dávno, co o sobě dala vědět skupina Trifinity se svým Car Whisperer (viz internetová stránka http://trifinite.org/trifinite_stuff_carwhisperer.html).
Známá bezpečnostní rizika
V oblasti implementace protokolu jsou již známy následující slabiny – jedná se v podstatě o ty, jež vedou ke známým typům útokům:
Délka klíče se při komunikaci mezi dvěma zařízeními dohaduje podle pravidla, že se vybere největší společná délka. Pokud tedy poskytují stanice pouze krátké klíče, může být celá komunikace šifrována velmi slabě.
Výběr kódu PIN pro ověření představuje další bezpečnostní riziko. V některých zařízeních je dokonce kód PIN nastaven napevno. Vzájemné ověřování není založeno na certifikátech, čímž v podstatě umožňuje provádění útoků typu Man in the middle.
Většina aplikačních protokolů dokonce žádné zabezpečení neposkytuje. Vzhledem k tomu, že některé protokoly umožňují přistupovat až na systém souborů, otevírají se zde případnému útočníkovi další slabiny v zabezpečení. Protokol SDP (Service Discovery Protocol) umožňuje aktivní sbírání informací o stanicích, jejich adresách a poskytovaných službách.
Závěr a výhled do budoucnosti
I přes všechny zmiňované možnosti útoků nesmíme zapomenout zmínit, že specifikace bezpečnostních mechanismů technologie Bluetooth při správné implementaci vývojářů systémů a jejich správném používání uživateli případným útočníkům příliš mnoho šancí nedává.
Vývoj technologie Bluetooth neustále pokračuje, a to i když už je Bluetooth na světě deset let, i když na druhé straně zde hrozí nebezpečí jiné, a to, že si skupina SIG dá do budoucna až příliš mnoho cílů. Je zřejmé, že i jiné technologie si zkouší na úspěchu Bluetooth přihřát polívčičku. Jedním z nejznámějších příkladů je Wireless USB. Tato technologie je natolik schopná být výrazným konkurentem technologii Bluetooth, neboť řada uživatelů rozhraní USB zná a zábrany vůči jejímu používání prakticky neexistují.
Ale i přes to všechno Bluetooth v příštích několika letech ze světa mobilních zařízení jen tak nevymizí. V tom svém, čili v oblasti spojování mobilních telefonů s jinými zařízeními, má tato technologie stále co předvést.