MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Ochrana přenosu dat v přenosovém kanále systému Bluetooth Bakalářská práce
Michal Krč
Brno 2012
Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. V Brně dne 21. května 2012 Michal Krč
Poděkování Na tomto místě bych chtěl poděkovat prof. Ing. Václavu Přenosilovi, CSc. za poskytnutou pomoc a vedení při zpracování bakalářské práce
Shrnutí Bakalářská práce se zabývá bezpečností přenosu dat v přenosovém kanále systému Bluetooth. První část se zabývá popisem vybraných bezdrátových technologií. Druhá část se již zabývá pouze technologií Bluetooth. Přesněji se zabývá použitými bezpečnostními mechanizmy. V třetí části jsou popsány nalezené zranitelnosti. Čtvrtá kapitola pak popisuje návrhy, jak zabránit zneužití zranitelností nalezených v předchozí kapitole.
Klíčová slova: Bluetooth, bezpečnost, přenos dat, bezdrátové sítě, secure simple pairing
Obsah Úvod .........................................................................................................................................................1 1. Bezdrátové sítě .....................................................................................................................................2 1.1. Osobní bezdrátové sítě (WPAN) ...................................................................................................2 1.1.1. Wireless USB (WUSB) .........................................................................................................2 1.1.2. ZigBee ...................................................................................................................................2 1.1.3. Infrared Data Association (IrDA) .........................................................................................3 1.1.4. Bluetooth ...............................................................................................................................4 1.2.Lokální bezdrátová síť (WLAN) ...............................................................................................4 1.3. Metropolitní bezdrátová síť (WMAN) ..........................................................................................6 1.4. Rozlehlé bezdrátové sítě (WWAN)...............................................................................................6 2. Bezpečnost Bluetooth ...........................................................................................................................7 2.1. Párování zařízení a management klíčů ..........................................................................................8 2.1.1. Typy linkových klíčů ............................................................................................................8 2.1.2. Legacy Pairing.......................................................................................................................9 2.1.3. Secure Simple Pairing .........................................................................................................12 2.2. Autentizace ..................................................................................................................................17 2.3. Šifrování vysílání ........................................................................................................................17 3. Analýza zranitelnosti Bluetooth .........................................................................................................18 3.1. Použité technické vybavení .........................................................................................................18 3.2. Použité softwarové vybavení ......................................................................................................19 3.3. Útoky na SAFER+ ......................................................................................................................19 3.4. Útoky na
................................................................................................................................19
3.5. Man in the middle útok ...............................................................................................................19 3.6. Denial of Service (DoS) útok ......................................................................................................20 3.7. Útoky pomocí skriptů ..................................................................................................................20 3.8. Implementace v operačních systémech .......................................................................................24 4. Návrhy na řešení nalezených zranitelností .........................................................................................24 4.1. SAFER+,
...............................................................................................................................24
4.2. Man in the middle (MITM) .........................................................................................................24 4.3. Denial of Service (DoS) útok ......................................................................................................24 4.4. Útoky pomocí skriptů ..................................................................................................................25 4.5. Implementace v operačních systémech .......................................................................................25 5. Závěr ...................................................................................................................................................26 Literatura: ...............................................................................................................................................27 Příloha A ................................................................................................................................................29 A.1 Instalace.......................................................................................................................................29 A.2 install.sh ......................................................................................................................................29 A.3 LKcrypt.sh...................................................................................................................................29
Úvod S rostoucím počtem mobilních zařízení vyvstala potřeba nalézt náhradu kabelového propojení zařízení. Kabelové propojení je pro uživatele nepohodlné. Proto roku 1994 představila firma Ericsson první návrh své vlastní technologie pro bezdrátový přenos dat na krátké vzdálenosti, Bluetooth. První oficiální verze byla uvolněna až v roce 1998. Díky nízké spotřebě energie, nenáročné implementaci a nízké výrobní ceně čipů rychle překonala stávající technologie IrDA a Wi-Fi. S velkým rozšířením se ale Bluetooth stala lákavým cílem pro útočníky. Proto se klade velký důraz na vývoj bezpečnostních mechanizmů. Z tohoto důvodu byla roku 1998 ustanovena Bluetooth Special Interest Group (SIG), skupina sdružující více než 14 000 firem po celém světě, jejímž úkolem je dohlížet na další vývoj technologie a její propagaci. Nejvýznamnější je použití technologie Bluetooth v mobilních zařízeních, jako jsou notebook, PDA (Personal Digital Assistant) a mobilní telefon. Nemusí sloužit pouze k přenosu souborů, ale i k přenosu zvuku a připojení k internetu. Odposlechem takové komunikace může útočník zjistit o uživateli některá citlivá data. Proto je důležité, aby byly dobře implementovány bezpečnostní mechanizmy autentizace a šifrování. Jako motivace k výběru tohoto tématu posloužila velká rozšířenost technologie Bluetooth. Jelikož jsem sám vlastníkem několika zařízení pracujících s Bluetooth, tak jsem se chtěl přesvědčit o funkčnosti bezpečnostních mechanizmů. Cílem práce je porozumět bezpečnostním mechanizmům Bluetooth, následně provést analýzu zranitelnosti a navrhnout úpravy bezpečnostních mechanizmů pro zvýšení bezpečnosti. I když roku 2009 vyšla verze Bluetooth 3.0, tak momentálně je světově nejrozšířenější verzí Bluetooth 2.1 + EDR (Enhanced Data Rate), a proto je práce zaměřena především na ni. První část práce se zabývá porovnáním dostupných bezdrátových technologií, popisuje jejich výhody i nevýhody a úroveň jejich zabezpečení. Druhá část se již zabývá pouze technologií Bluetooth a jejími bezpečnostními mechanizmy. Tyto mechanizmy jsou pak ve třetí kapitole podrobeny analýze a jsou na nich vyzkoušeny volně přístupné programy, které mohou být potenciálně použity k útoku. Poslední kapitola popisuje návrhy, jak zmiňované bezpečnostní mechanizmy upravit, aby byly odolnější vůči hrozbám nalezeným v třetí části.
1
1. Bezdrátové sítě Sítě lze obecně rozdělit do čtyř základních skupin podle jejich dosahu. Jednotlivé skupiny pokrývají oblasti od malých lokálních sítí pro přímé propojení blízkých zařízení, přes lokální sítě pokrývající budovy, vesnice, až po sítě sloužící k propojení dvou a více lokálních sítí. Práce se zabývá bezdrátovými sítěmi, proto se omezím jen na bezdrátové varianty již zmíněných sítí.
1.1.Osobní bezdrátové sítě (WPAN) Sítě určené především pro propojení osobních elektronických zařízení typu laptop, PDA, mobilní telefon. Typické jsou svým krátkým dosahem v rámci několika metrů. Výrazným rysem je pokus o energetickou nenáročnost síťových prvků instalovaných především v mobilních zařízeních. Mezi nejpoužívanější technologie patří ZigBee, IrDA, Bluetooth a nově se prosazující Wireless USB.
1.1.1. Wireless USB (WUSB) Universal Serial Bus (USB) se stalo velice populárním médiem pro propojení PC a jeho periferií. USB Implementers Forum představilo roku 2004 bezdrátovou verzi Wireless USB. Cílem vývoje WUSB bylo, aby jej koncoví uživatelé mohli používat stejně jako běžné drátové USB, ale bez drátu. WUSB pracuje v ultra širokém pásmu (UWB) na frekvencích od 3,1 GHz do 10,6 GHz. Přenosové rychlosti jsou výrazně ovlivněny vzdáleností. Při vzdálenosti do 3 metrů je přenosová rychlost shodná s USB 2.0 (tj. 480 Mbit/s), ve vzdálenosti 10 metrů za ideálních podmínek klesá přenosová rychlost na 110 Mbit/s. Topologie WUSB je master and slave. Veškerou komunikaci řídí master a připojená zařízení pouze odpovídají na dotazy. Stejně jako u standartního USB je master schopen obsloužit až 127 připojených zařízení. Komunikace je standardně šifrována pomocí AES-128/CCM. Tento symetrický šifrovací algoritmus používá AES blokovou šifru k vytvoření robustní proudové šifry. Může být použit k zajištění integrity, šifrování nebo obojího. WUSB podporuje také šifrování veřejným klíčem, ale jen pro autentizaci. [1] WUSB bylo navrženo pro použití u herních ovladačů, tiskáren skenerů, digitálních kamer a fotoaparátu, pevných disků a flash disků.
1.1.2. ZigBee ZigBee je bezdrátová komunikační technologie vystavěná na standartu IEEE 802.15.4. Podobně jako Bluetooth je určena pro spojení nízko výkonových zařízení na malé vzdálenosti do 75 metrů. Díky použití multiskokového ad-hoc směrování umožňuje komunikaci i na větší vzdálenosti bez přímé radiové viditelnosti. V porovnání s technologií Bluetooth nabízí nižší přenosové rychlosti, jen 20 - 250 kb/s. Nižší přenosové rychlosti ale zase nabízí vyšší odolnost vůči rušení, což ZigBee předurčuje k použití v průmyslu. Technologie je určena hlavně pro použití v průmyslu a pro senzorové sítě.
2
Standart IEEE 802.15.4 definuje fyzickou a linkovou vrstvu standardu ZigBee. Fyzická vrstva určuje konkrétní způsob komunikace, jíž byly přiděleny tři radiová pásma 2,4 GHz, 915 MHz, 868 MHz. Datový signál je modulován metodou O-QPSK a vzduchem přenášený prostřednictvím DSSS. Samotná komunikace mezi jednotlivými zařízeními je definovaná na linkové vrstvě. Definuje čtyři typy komunikačních rámců. Data Frame slouží k přenosu uživatelských dat, Acknowledgement Frame slouží pro přenos potvrzovací informace při potvrzované komunikaci, MAC Command Frame umožňující centralizované konfigurování a řízení klientských zařízení v síti, Beacon Frame určený k synchronizaci zařízení v síti. Pro adresaci jednotlivých zařízení jsou použity adresy dlouhé 64 bitů, popřípadě zkrácené adresy o délce 16 bitů. Navíc je každá síť identifikovaná svým 16 bitovým identifikátorem. Z hlediska topologie jsou definovány tři typy sítí hvězdicová, stromová a mesh. Jako základ zabezpečení je v síťové vrstvě implementováno šifrování pomocí AES s klíčem o délce 128 bitů. Pokud je potřeba zajistit zabezpečení i řídících rámců, tak je možné provést šifrování pomocí AES i na linkové vrstvě. Díky tomu lze nejen zajistit důvěrnost rámce, ale i jeho autenticitu a integritu. Při požadavku na ověření integrity je vytvořen MIC (Message Integrity Code) o délce 4, 8 či 16 oktetů a je vyslán společně s rámcem. Pokud je nutné zajistit důvěrnost, tak se ke každému rámci přidá informace o jeho pořadí a klíči. Vysílač i přijímač si udržují aktuální informaci o čísle rámce. Pokud přijímač obdrží rámec s jiným, než požadovaným číslem, tak je detekováno narušení bezpečnosti [2].
1.1.3. Infrared Data Association (IrDA) První specifikace IrDA byla vydána roku 1994. IrDA je standart, který definuje bezdrátový přenos dat pomocí infračerveného světla. Byl vyvinut, aby nahradil kabelové připojení mobilních zařízení. Standard definuje jak vlastnosti fyzických zařízení, tak protokoly pomocí nichž zařízení komunikují. Přenosové rychlosti jsou pro IrDA 1.0 v rozmezí od 2400 – 115200 b/s, rychlost byla v dalších revizích navýšena až na 4 Mb/s. Ke kódování se používá pulsní modulace, doba vyzařování energie odpovídá 3/16 délky původní doby trvání bitu a pulsy odpovídají bitům s nulovou hodnotou. IrDA definuje dva druhy protokolů, povinné a volitelné. Na nejnižší úrovni leží vrstva IrPHY (Infrared Physical Layer). Stanovuje standart pro infračervený vysílač, modulaci, metody kódování / dekódování a další fyzické parametry. Pro přenos používá infračervené světlo o vlnové délce 875 nm s maximální odchylkou 30 nm. Při přenosu na vzdálenost menší, než 1 m zajišťuje chybovost nižší než
bitu.
Nad ní leží IrLAP (Infrared Acces Protocol) zajišťující přístup k přenosovému médiu. Nejvýše z povinných protokolů stojí IrLMP (Infrared Link Management Protocol) a skládá se ze dvou částí. První je LM-IAS (Link Management Information Access Service) starající se o udržení informační báze, ze které ostatní stanice mohou zjistit, jaká služba je nabízena.
3
A druhá LM-MUX (Link Management Multiplexer) umožňující vícenásobné spojení nad jednoduchým spojením, zprostředkovaným vrstvou IrLAP.[3] IrDA neposkytuje žádné zabezpečení na úrovni linkové vrstvy, neposkytuje žádné prostředky autentizace, autorizace a všechny informace jsou zasílány nešifrovaně. Pokud je některá z těchto vlastností žádaná, tak musí být implementována na úrovni software. Z povahy systému není vyšší zabezpečení nutné. Komunikující zařízení musí být ve vzdálenosti do 1 m a musí mít přímou viditelnost mezi přijímačem a vysílačem. Z toho důvodu je nepozorované odposlechnutí komunikace, nebo případná její manipulace téměř nemožná.
1.1.4. Bluetooth Počátky Bluetooth sahají již do roku 1994 kdy firma Ericsson, hledala možnosti levného bezdrátového energeticky nenáročného propojení mobilních telefonů s jejich příslušenstvím. Bluetooth používá k přenosu dat radiové vlny v nelicencovaném pásmu 2,4 GHz. Pro svou nenáročnost se rychle rozšířil především do mobilních zařízení. Podle odhadů se od roku 1999, kdy se dostalo Bluetooth na trh, do roku 2009 prodalo přes 1,5 miliardy čipů Bluetooth. V současnosti je nejrozšířenější verzí 2.1 + EDR s maximální přenosovou rychlostí až 2,2 Mb/s. Bluetooth zařízení se dělí do tří tříd, podle dosahu. Třída 1 jsou zařízení s dosahem až 100 m, třída 2 s dosahem 10 m a třída 3 s dosahem 1 m. Součinností několika zařízení Bluetooth vznikají tzv. pikosítě, které může tvořit až osm stanic ve vzdálenosti maximálně 10 m. Aby mohlo existovat více takových pikosítí na jednom místě, používá se technologie přeskakování frekvencí v rozprostřeném spektru (FHSS). FHSS provádí 1600 skoků za sekundu mezi 79 frekvencemi. Pikosítě podporují topologii master and slave. Pro podporu obousměrného provozu používá Time Division Duplex (TDD), při němž smí master zahájit přenos pouze na začátku sudé prodlevy a zařízení slave pouze na začátku liché prodlevy. Na úrovni linkové vrstvy se především popisuje základní topologie sítě, přístupové mechanismy a adresování. V protokolu Bluetooth jsou všechny tyto součástí dvou podvrstev. Link Management Protocol (LMP) provádí všechny operace týkajících se správy sítě. Jedná se zejména o navázání spojení mezi stanicemi, ověření, šifrování a také nastavení úsporného režimu a stavu zařízení v pikosíti. Logical Link Control and Adaptation Protocol (L2CAP) přebírá přenos dat. L2CAP poskytuje také služby pro spojované a nespojované přenosy. [4] Bluetooth poskytuje tři základní bezpečnostní služby: autentizaci, autorizaci, důvěrnost. Bezpečnost bude Bluetooth bude rozebrána podrobně níže.
1.2. Lokální bezdrátová síť (WLAN) Lokální bezdrátové sítě se nejčastěji rozléhají v jediné budově, případně v několika sousedních budovách. Typicky mají dosah v řádech jednotek až desítek metrů. Levná síť, jejímž zřizovatelem
4
je obvykle vlastník, nikoliv poskytovatel síťových služeb. Většinu stanic v síti tvoří koncová zařízení: počítače, tiskárny skenery a další. LAN nabízí vytvoření dvou druhů sítě. Prvním je režim infrastruktury (infrastructure mode), kdy síť tvoří koncové stanice a přístupový bod. Veškerá komunikace je vedena přes přístupový bod, koncové stanice nesmí nikdy komunikovat přímo mezi sebou. Tento druh sítě je typický, při připojení sítě k Internetu. Druhým způsobem je ad-hoc síť. Komunikace se neúčastní žádné přístupové body. Jednotlivé stanice mají při spojení rovnocennou pozici (peer-to-peer), mimo tuto síť nelze žádná data posílat, ani přijímat. Obě strany spojení musí být v přímém rádiovém kontaktu a pracovat na stejné frekvenci. Tento způsob je typický pro příležitostné spojení, kdy jsou počítače ve vzdálenosti několika málo metrů. Nejpoužívanějším standardem je Wi-Fi (IEE 802.11), definuje WLAN pomocí radiových frekvencí. Stejně jako většina technologií založených na radiových vlnách používá nelicencované pásmo 2,4 GHz. Původní standard z roku 1997 povoloval maximální přenosovou rychlost 1 nebo 2 Mb/s. Nejnovější standart IEEE 802.11n používá pro přenos nejen pásmo 2,4 GHz, ale nově i 5 GHz a zvýšil maximální přenosovou rychlost až na 300 Mb/s s teoretickou hranicí až 600 Mb/s (4 nezávislé kanály, 64-QAM 5/6, 40 MHz na kanál, krátký bezpečnostní interval). Stejně jako Bluetooth používá při přenosu techniky rozprostřeného spektra. Konkrétně techniku přímo rozprostřeného spektra (Direct Sequence Spread Spectrum, DSSS) a techniku rozprostřeného spektra s přeskakováním kmitočtů (Frequency Hopping Spread Spectrum, FHSS). Tyto techniky slouží hlavně ke zvýšení odolnosti vůči rušícím vlivům, ale také minimalizují možnost odposlechu komunikace [5]. Bezpečnost:
Zablokování vysílání SSID – je nejjednodušším zabezpečením sítě prostým zákazem vysílání identifikačního klíče sítě
Kontrola MAC adres – přístupový bod sítě má k dispozici seznam MAC adres klientů, kterým povolí přístup do sítě.
WEP – šifrování komunikace pomocí statických WEP klíčů symetrické šifry, které jsou ručně nastaveny na obou stranách bezdrátového spojení.
WPA – využívá WEP klíče, které jsou dynamicky měněny.
WPA2 – přináší kvalitnější šifrování šifrou AES, která ale potřebuje vyšší výpočetní výkon, proto není použitelná na starších zařízeních.
802.1X – přístupový bod vyžaduje identifikaci pomocí protokolu IEEE 802.1X. Na straně klienta existuje program, kterému přístupový bod zprostředkuje komunikaci se třetí stranou, kde je identita klienta ověřena [6].
5
1.3.Metropolitní bezdrátová síť (WMAN) Kategorie sítí navržená pro bezdrátový přenos v rámci metropolitní oblasti. Nejrozšířenější technologií je WiMAX (Worldwide Interoperability for Microwave Access) standardizovaná jako IEEE 802.16. WiMAX je principiálně podobný WI-Fi, ale na rozdíl od něj není orientován na vysokou mobilitu stanic. WiMAX byl navržen především pro propojení nepohyblivých objektů, budov. Při propojení více budov jsou potřeba vyšší přenosové rychlosti tudíž i širší přenosové pásmo. Nelicencované pásmo 2,4 GHz je nedostačující, proto WiMAX operuje ve vyšších frekvenčních pásmech 10 - 66 GHz. Dosah v otevřeném terénu je až 50 km, v metropolitní oblasti se snižuje na 5 km. Kapacita přenosu na fyzické vrstvě je 255 Mb/s, přičemž reálná propustnost je 70 Mb/s. Síť WiMAX tvoří dva prvky, základny (Base Station) a klientské stanice (Subscriber Station). Základny jsou obvykle zapojeny do veřejných sítí a mohou ovládat až tisíce klientských stanic. Klientské stanice obsluhují například jednotlivé budovy. Možnosti připojení jsou buď point-to-point nebo point-to-multipoint. Bezpečnost zajišťuje u WiMAX podvrstva privacy ležící nad fyzickou vrstvou. Základna se brání před neautorizovaným přístupem k přenosovým službám prostřednictvím šifrování toků v síti. Používá se protokol pro management klíčů (PKM) mezi autentizovaným klientem a serverem, v rámci něhož základnová stanice, server, řídí distribuci klíčů klientským stanicím. Základní bezpečnostní mechanizmy zesiluje použití autentizace klienta na základě digitálních certifikátů. Šifrování veřejným klíčem je používáno pro nastavení autorizačního klíče mezi základnou a klientskou stanicí, který PKM využívá pro zabezpečení výměny klíčů nutných pro šifrování následujícího provozu na síti. Kvůli tomu, že WiMAX slouží k přístupu do veřejné sítě, je všechna komunikace povinně šifrována pomocí 168 bitového 3DES (Triple Digital Encryption Standard), popřípadě lze využít také AES. Základnová stanice autentizuje klientskou stanici na základě digitálního certifikátu X.509, kterým se klientská stanice identifikuje. Certifikát, obsahující veřejný klíč a MAC adresu klientské stanice, musí klientská stanice předložit základnové stanici. Ta po úspěšné autentizaci odešle zpět autorizační klíč zašifrovaný veřejným klíčem klientské stanice. Základnová stanice tak současně provede i autorizaci klienta [7].
1.4.Rozlehlé bezdrátové sítě (WWAN) Bezdrátové sítě pokrývající rozsáhlá geografická území. Tato kategorie je odlišná od předchozích nejen vyšším dosahem bezdrátového přenosu dat, ale v současné době také tím, že využívá pouze technologií síťové infrastruktury mobilních operátorů. Na našem území převládají technologie GSM (Global System for Mobile Communications) a UMTS (Universal Mobile Telecommunications System). Telekomunikační sítě jsou postaveny na buňkovém systému, kdy geografické území pokryté signálem je rozděleno do dílčích prostorů tzv. buněk. Základny jednotlivých buněk jsou propojeny pomocí podpůrných služebních sítí s ústřednami, které zprostředkovávají komunikační spojení mezi jednotlivými buňkami. Buňky nemají pevně danou velikost, ta je v hustě obydlených
6
oblastech v rámci stovek metrů, naopak v řídce osídlených oblastech může mít až 35 km. Ústředna pravidelně měří úroveň signálu z mobilních stanic, jakmile hodnota klesne pod stanovenou mez, nalezne pro mobilní stanici vysílač s lepším signálem. Tento systém umožňuje přecházení z jedné buňky do druhé, aniž by byla probíhající komunikace přerušena. GSM (Groupe Spécial Mobile) je standard digitální buňkově orientované komunikace v pásmech 900 MHz a 1800 MHz. Frekvenční pásmo se skládá ze 124 dvojic simplexových radiových kanálů. Každý takový simplexní radiový kanál má šířku 200MHz. V každém simplexním radiovém kanálu se pomocí TDM udržuje 8 fyzických kanálů. Každému fyzickému kanálu se opakovaně přiděluje jeden časový díl, pro duplexní spojení se pro jednotlivé směry používají fyzické kanály realizované v různých časech. V jedné buňce může být aktivních až 992 (124 x 8) fyzických kanálů. Teoretická přenosová rychlost kanálu GSM je 270,8 kb/s. Každý multirámec obsahuje 24 datových rámců. U GSM lze kvůli opakovacímu faktoru využít 1/3 kapacity. V jedné buňce lze tak udržovat až 7936 (124 x 8 x 24 / 3) současných volání [8]. O autentizaci se stará SIM (Subscriber Identity Module). Nejdříve se uživatel autentizuje SIM pomocí tajného PIN (personal identification number), poté se SIM autentizuje síti kryptografickou metodou výzva-odpověď (challenge-response). Po úspěšné autentizaci se na bezdrátovém spoji hlas a řídící informace šifrují pomocí šifry A5/1 nebo A5/2. Pro zajištění anonymity požívá GSM dočasnou identitu (Temporary Mobile Subscriber Identity), která je přidělována při každé nové aktualizaci místa.
2. Bezpečnost Bluetooth Pro zařízení Bluetooth a jeho nejrozšířenější verzi 2.1 + EDR byly definovány čtyři bezpečnostní módy. Jednotlivé módy definují, jak se bude jednotka chovat při ustanovování spojení. Bezpečnostní módy ale definují pouze úroveň zabezpečení dané jednotky, nikoliv celé komunikace. V pikosíti můžeme mít zařízení pracující v bezpečnostním módu 3, ale stačí jediná jednotka pracující v nižším módu a bezpečnost celé komunikace je snížena na úroveň této jednotky.
Bezpečnostní mód 1 – Je to nezabezpečený mód. Jednotka, která nabízí své služby všem připojeným jednotkám, pracuje v bezpečnostním módu 1. To znamená, že jednotka nevyžaduje autentizaci nebo šifrování při ustanovení spojení. Podpora pro autentizaci je povinná, ale jednotka pracující v bezpečnostním módu 1 nebude nikdy odesílat výzvu k autentizaci a autentizace se nikdy neprovede. Jednotka bude také zamítat všechny požadavky na šifrování komunikace.
Bezpečnostní mód 2 – byl zaveden, kvůli zvýšení flexibility využití zabezpečení poskytované linkovou vrstvou Bluetooth. Autentizace nebo šifrování se povinně zapíná jen tehdy, když o to aplikace nebo služba požádá.
7
Bezpečnostní mód 3 – Bezpečnostní procedury jako autentizace a šifrování jsou prosazovány již při ustanovení komunikace. Bezpečnostní prvky jsou vždy zapnuté. Implementace je snadná a proto je redukována možnost narušení bezpečnosti vinou implementační chyby. Nevýhodou je nedostatek flexibility. Jednotka bude přístupná pouze po autentizaci.
Bezpečnostní mód 4 – Podobný bezpečnostnímu módu 2. Zaveden až od verze Bluetooth 2.1 + EDR. Bezpečnost je zajištěna pomocí Secure Simple Pairing. Může pracovat ve třech režimech podle úrovně požadované bezpečnosti a to: s autentizovaným linkovým klíčem, neautentizovaným linkovým klíčem a bez potřeby zabezpečení.
2.1.Párování zařízení a management klíčů Management klíčů zajišťuje generování, distribuci, uchovávání a zacházení s kryptografickými klíči. V Bluetooth máme dva základní typy klíčů, linkové a šifrovací. Linkový klíč vzniká při spárování dvou zařízení. Následná identifikace těchto zařízení pak bude probíhat pomocí tohoto klíče a slouží také při vytváření šifrovacího klíče. Párování Bluetooth zařízení je základním krokem pro navázání bezpečného spojení mezi dvěma zařízeními. Operace začíná ustanovením ACL připojením. Poté mohou jednotky posílat zprávy pomocí radiového signálu. Před přenosem uživatelských dat se musí zařízení ověřit svou identitu. Zařízení musí ustanovit sdílené tajemství, které je výsledkem spárování. Kvůli pohodlí musí být Bluetooth zařízení schopno toto tajemství uchovat v databázi spárovaných zařízení. Následně, když se tyto dvě spárovaná zařízení potkají v budoucnu, mohou přeskočit proces párování.
2.1.1. Typy linkových klíčů Linkový klíč je náhodné 128 bitové číslo, které je sdíleno dvěma a více stranami a je základem pro všechny bezpečnostní přenosy mezi nimi. Linkový klíč je použit také při autentizaci a je použit jako jeden z parametrů při odvozování šifrovacího klíče. V závislosti na požadavcích různých aplikací vznikly čtyři druhy linkových klíčů:
Kombinační klíč (the combination key)
– je odvozován z účasti dvou zařízení a je na
obou závislý. Pro každou novou dvojici zařízení se odvozuje nový klíč.
Privátní klíč zařízení (the unit key) – klíč je generován jen v jednom zařízení a je tedy na něm zcela závislý. Klíč je generován jednou při instalaci jednotky a měněn je jen výjimečně.
Dočasný klíč (the temporary key) – může být použit jen během již probíhajícího spojení. Pouze dočasně nahrazuje linkový klíč. Dočasný klíč, se používá v případě, že vysílající stanice potřebuje komunikovat s více, než jedním zařízením zároveň.
Inicializační klíč (the initialization key) – se používá v případě, kdy kombinační klíč nebo klíč jednotky ještě nebyl ustanoven. Inicializační klíč chrání inicializační parametry
8
spojení. Inicializační klíč je odvozen od n-oktetového PIN kódu a adresy zařízení BD_ADDR. PIN kód může být pevný nebo, u zařízení s klávesnicí a displejem, volitelný uživatelem.
2.1.2. Legacy Pairing Linkový klíč musí být přenesen mezi zařízeními za účelem jejich autentizace. Klíče jsou tajné a nesmí být jednoduše zjistitelné, stejně jako adresy zařízení. Výměna klíčů se uskuteční během inicializace, která se provádí zvlášť pro každá dvě zařízení, která používají autentizaci a šifrování. Inicializační procedura se skládá z pěti kroků [9].
Generování inicializačního klíče
Generování linkového klíče
Výměny linkových klíčů
Autentizace
Generování šifrovacího klíče (nepovinný)
2.1.2.1. Generování inicializačního klíče Klíč je odvozován pomocí algoritmu
z adresy zařízení ( BD_ADDR ), PIN kódu, délky PIN
kódu v oktetech a náhodného čísla IN_RAND. 128bit výstup z je použit k výměně linkových klíčů během jejich generování. Po úspěšné výměně linkových klíčů je inicializační klíč zničen. je jedním ze dvou možných módů algoritmu
Algoritmus
.
je funkce [10]:
Nechť L je počet oktetů v uživatelském kódu PIN. PIN´ je definován jako [ ] [ { }] { [ ] Pak: {
}
{
}
{
(
}
)
(
{
}
)
kde:
[ a
{
[(
⋃
{
]
(
)] [
]
)
} je počet oktetů v PIN´
2.1.2.2. Generování linkového klíče – Privátní klíč zařízení Privátní klíč zařízení se generuje, když je zařízení poprvé v provozu. Klíč je vytvořen a následně uložen v energeticky nezávislé paměti, měněn je jen velmi zřídka. Pokud je po inicializaci klíč změněn, tak všechna zařízení s ním spárovaná budou mít špatný linkový klíč. Při inicializaci se musí zařízení dohodnout, která strana poskytne svůj privátní klíč zařízení jako
9
linkový klíč. Většinou to je zařízení s omezenou pamětí. Privátní klíč zařízení je přenesen k druhé straně a tam uložen jako linkový klíč, pro komunikaci s tímto konkrétním zařízením. Například privátní klíč zařízení A,
je použit jako linkový klíč pro komunikaci A-B. Zařízení A pošle klíč
zařízení B. Zařízení B uloží pomocí algoritmu
jako linkový klíč
. Výpočet privátního klíče zařízení probíhá
[10]. {
}
{
(
}
{
)
(
} )
kde: [ {
]
[
( [(
⋃
]
)
)]
2.1.2.3. Generování linkového klíče – Kombinační klíč Kombinační klíč je poprvé generován během inicializačního procesu a je kombinací dvou čísel vygenerovaných zařízeními A a B. Nejdříve každé zařízení vygeneruje vlastní náhodné číslo . Poté s využitím algoritmu
a
, popsaného v kapitole o privátním klíči
zařízení, vygenerovaného náhodného čísla a adresy zařízení BD_ADDR vygeneruje čísla respektive
. (
)
(
)
Tato čísla přispívají k vytvoření kombinačního klíče. Na číslo klíč K, se aplikuje funkce XOR. Následně se provede to samé s číslem inicializace, tak zařízení B odešle a
. Poté může zařízení A poslat
a současný linkový . Pokud probíhá zařízení B, zatímco
zařízení A. Takto si zařízení vymění znalost náhodných čísel . Po výměně každé zařízení přepočítá příspěvek ke kombinačnímu klíči.
Zařízení znají svoje adresy navzájem, a proto si může zařízení A spočítat B počítá
,
, zatímco zařízení
. Po tomto kroku již můžou obě zařízení tyto dvě čísla zkombinovat pomocí funkce
XOR. Výsledkem je 128bit linkový klíč vytvoření linkového klíče.
. Následně proběhne autentizace pro ověření úspěchu
10
2.1.2.4. Autentizace Vzájemné autentizace zařízení dosáhnou tím, že nejdříve se autentizuje zařízení A zařízení B a následně se provede autentizace i v opačném směru. Vedlejším efektem autentizace je prvek Authenticated Ciphering Offset (ACO), který může být použit při generování šifrovacích klíčů. Autentizací se zabývá kapitola 2.2. Zařízení A 𝐿𝐾 𝐾𝐴
𝐶𝐴
Zařízení B 𝐿𝐾 𝐾𝐵
𝐸 (𝐿𝐾 𝑅𝐴𝑁𝐷𝐴 𝐵𝐷 𝐴𝐷𝐷𝑅𝐴 )
𝐾
𝐿𝐾 𝑅𝐴𝑁𝐷𝐴
𝐶𝐵
𝐶𝐴
𝐸 (𝐿𝐾 𝑅𝐴𝑁𝐷𝐵 𝐵𝐷 𝐴𝐷𝐷𝑅𝐵 )
𝐾
𝐿𝐾 𝑅𝐴𝑁𝐷𝐵
𝐶𝐵 𝐿𝐾 𝑅𝐴𝑁𝐷𝐵
𝐶𝐵
K
𝐿𝐾 𝑅𝐴𝑁𝐷𝐴
𝐿𝐾 𝐾𝐵
K
𝐿𝐾 𝐾𝐴
𝐸 (𝐿𝐾 𝑅𝐴𝑁𝐷𝐵 𝐵𝐷 𝐴𝐷𝐷𝑅𝐵 ) 𝐾𝐴𝐵
𝐶𝐴
𝐿𝐾 𝐾𝐴
𝐸 (𝐿𝐾 𝑅𝐴𝑁𝐷𝐴 𝐵𝐷 𝐴𝐷𝐷𝑅𝐴 ) 𝐾𝐵𝐴
𝐿𝐾 𝐾𝐵
𝐿𝐾 𝐾𝐵
𝐿𝐾𝐾 𝐴
𝐾𝐴𝐵
Autentizace
Obrázek 1: Průběh generování kombinovaného klíče.[10, str. 864] 2.1.2.5. Generování šifrovacího klíče Šifrovací klíč je odvozen algoritmem ze současného linkového klíče, 96 bitů dlouhého Ciphering Ofset number (COF), a 128 bitového náhodného čísla. COF nabývá hodnot, podle typu probíhající komunikace. V případě, že linkový klíč je dočasným klíčem , tak se COF odvodí z adresy master zařízení. Jinak je hodnota COF nastavena na hodnotu ACO, která byla spočítána při autentizaci. {
2.1.2.6. Generování dočasného klíče V případě, že zařízení chce komunikovat s více zařízeními najednou, musí vygenerovat dočasný klíč. Zařízení, které komunikaci inicializuje je master. Master nejdříve vytvoří nový linkový klíč z dvou 128 bitových čísel RAND1 a RAND2. Klíč vytvoří funkcí (
následovně: )
11
Vznikne tak náhodné 128 bitové číslo, které se stane klíčem. Vynechání
a přímé
vygenerování náhodného čísla by mohlo vést ke snížení bezpečnosti. Použitím se má předejít případným problémům s degradací náhodnosti čísel u špatně implementovaných generátorů náhodných čísel. Následně master vygeneruje třetí náhodné číslo RAND. Odešle slave zařízení číslo, které získá po spuštění funkce a jako parametry zadá linkový klíč a RAND. Z něj slave zařízení spočítá 128 bitový překryv. Master odešle XOR bitového překryvu a nový linkový klíč. Sleve nyní může pomocí překryvu spočítat . Pro ověření úspěšného přenosu linkového klíče se slave zařízení autentizuje pomocí nového linkového klíče. V případě potřeby šifrovat komunikaci se také musí vypočítat nový šifrovací klíč. ( ) Kde EN_RAND je náhodné číslo, které musí master doručit všem slave zařízením a COF je hodnota odvozená z adresy zařízení.
Master
Slave
𝐾𝑚𝑎𝑠𝑡𝑒𝑟 𝐸 (𝑅𝐴𝑁𝐷 𝑅𝐴𝑁𝐷 𝑂𝑉𝐿 𝐸 (𝐾 𝑅𝐴𝑁𝐷 𝐶
𝑂𝑉𝐿
RAND
) )
𝑂𝑉𝐿
𝐾𝑚𝑎𝑠𝑡𝑒𝑟
𝐸 (𝐾 𝑅𝐴𝑁𝐷
)
C 𝐾𝑚𝑎𝑠𝑡𝑒𝑟
𝑂𝑉𝐿
𝐶
Autentizace
Obrázek 2: Distribuce dočasného linkového klíče. [10, s.867]
2.1.3. Secure Simple Pairing Bezpečnostní mechanismus vyvinutý Bluetooth Special Interest Group pro zvýšení bezpečnosti při párování zařízení. Povinný od standartu Bluetooth 2.1 + EDR. Měl zjednodušit párování zařízení tím, že uživatelé si již nebudou muset pamatovat PIN kód. Má 5 fází:
Fáze 1: Výměna veřejných klíčů
Fáze 2: Autentizační fáze 1
Fáze 3: Autentizační fáze 2
Fáze 4: Výpočet linkového klíče
Fáze 5: LMP autentizace a šifrování
12
Fáze 1,3,4 a 5 jsou stejné pro všechny protokoly, jen podoba 2. Fáze závisí na zvoleném typu protokolu.
2.1.3.1. Výměna veřejných klíčů Při fázi 1 si každé zařízení vygeneruje svůj pár veřejného a privátního klíče pro Diffie-Hellman protokol s využitím eliptických křivek. Tento pár je generován pro každé zařízení jen jednou, ale v případě zájmu uživatele je možné vygenerovat nový pár, ale obvykle to není potřeba. Samotné párování začíná tím, že inicializační zařízení pošle svůj veřejný klíč přijímajícímu zařízení. Jako odpověď odešle přijímající zařízení svůj veřejný klíč. Tyto veřejné klíče nejsou považovány za tajné.
2.1.3.2. Autentizační fáze 1 Fáze 2 používá různé protokoly, podle toho, jakými možnostmi jsou jednotlivá zařízení vybavena.
2.1.3.2.1. Just Works Vytvořen pro případy, kdy jedno nebo obě zařízení nemají klávesnici, ani displej pro vložení ověřovacích údajů. Uživatel musí spojení akceptovat bez kontroly vypočítaných hodnot na obou zařízeních, proto neposkytuje žádnou ochranu proti útokům Man in the Middle.
2.1.3.2.2. Numeric Comparsion Určen pro zařízení, která nabízí možnost na displeji zobrazit 6 cifer ověřovacího kódu. Poskytuje do jisté míry ochranu proti útokům typu Man in the Middle. Pravděpodobnost úspěchu útoku je 0,000001 na každou iteraci protokolu. Po výměně veřejných klíčů si zařízení vygenerují pseudonáhodné číslo. Zařízení, které neinicializovalo výměnu klíčů, vypočítá číslo označované jako závazek. Toto číslo pošle inicializačnímu zařízení. Následně dojde k výměně již dříve vygenerovaných pseudonáhodných čísel. Inicializační zařízení spočítá z obdržených dat závazek a zkontroluje, jestli se shoduje s přijatým. V případě selhání musí začít fáze od začátku. Veřejný klíč může zůstat nezměněn, ale musí se vygenerovat nová náhodná čísla. V případě úspěšného ověření obě zařízení spočítají 6ciferné číslo, které zobrazí na displeji. Uživatel porovná, jestli se zobrazená čísla shodují. Při zobrazení stejných číslic uživatel potvrdí spojení, v opačném případě je protokol přerušen.
13
Obrázek č.3: Autentizační fáze 1 pomocí protokolu Numeric Comparsion [11, s. 891] 2.1.3.2.3. Out-of-Band Pokud obě zařízení jsou schopna přijímat i vysílat data jinými kanály, pak je autentizace založena na výměně veřejných klíčů po tomto kanále. Pokud je komunikace možná jen v jednom směru, tak je autentizace založena na tom, že zařízení schopné jen přijímat obdrží přes jiný kanál náhodné číslo r, toto číslo musí být tajné. Velikost použitých autentizačních parametrů musí být uzpůsobena kanálu, po kterém jsou přenášena. Pro uživatele nesmí být těžké tyto parametry přečíst, či přepsat.
14
Obrázek č.4: Autentizační fáze 1 pomocí protokolu Out of Band. [11, s. 893] 2.1.3.2.4. Passkey Entry Protocol U tohoto protokolu uživatel zadá při autentizaci do obou zařízení stejný soukromý klíč. Popřípadě může sloužit jedno zařízení jako generátor klíče, ten se zobrazí na displeji a uživatel jej zadá do druhého zařízení. Autentizace začíná vložením klíče. Následující kroky se opakují pro každý bit klíče. Každá strana vygeneruje náhodné číslo a přidá k jednomu bitu klíče, vytvoří jeho hash a odešle spolu s bitem klíče, a oběma veřejnými klíči. Tímto způsobem si obě strany vymění klíč.
15
Obrázek č. 5: Autentizační fáze 1 pomocí protokolu Passkey Entry [11, s. 895] 2.1.3.3. Autentizační fáze 2 Autentizační fáze 2 slouží k tomu, aby si obě zařízení ověřila, že výměna klíčů proběhla úspěšně. Každé zařízení spočítá z dříve přijatých hodnot a sdíleného klíče potvrzovací hodnotu. Zařízení inicializující komunikaci odešle potvrzovací hodnotu druhému zařízení, které zkontroluje, jestli se hodnoty shodují. Pokud ano tak odešle svou potvrzovací hodnotu. V opačném případě je protokol přerušen a párování se nezdaří.
2.1.3.4. Výpočet linkového klíče Po úspěšném potvrzení párování proběhne výpočet linkového klíče. Linkový klíč je vypočítán ze sdíleného klíče a veřejně vyměněných dat.
2.1.3.5. LMP autentizace a šifrování Poslední fází je generování šifrovacího klíče, které je stejné jako v kapitole 2.1.2.5.
16
2.2.Autentizace Pro provedení autentizace se používá schéma výzva-odpověď, při kterém je žadatelova znalost tajného klíče ověřena pomocí dvoukrokového protokolu používajícího symetrický tajný klíč. To znamená, že na konci autentizace sdílí žadatel s ověřující stranou stejný tajný klíč strana vyzve žadatele k autentizování náhodného čísla Žadatel ověřující straně odešle číslo nejen náhodné číslo
. Ověřující
autentizačním kódem
, které vypočítá pomocí
. Při výpočtu
.
je použito
, ale také adresa zařízení žadatele a linkový klíč. Aplikace
požadující autentizaci sama rozhodne, jestli požaduje jednostrannou autentizaci nebo, v případě některých peer-to-peer komunikací, oboustrannou autentizaci. V takovém případě proběhnou dvě autentizační procedury, během nichž si zařízení vymění role. V případě, že vyprší limit stanovený pro přijetí odpovědi na požadavek nebo přijaté číslo nemá požadovanou hodnotu, proběhne po určité době dalšímu pokus o autentizaci. Tato doba se s přibývajícími pokusy prodlužuje, dokud nedosáhne maximální nastavené délky. Tento mechanismus má zabránit útokům, při kterých útočník zkouší provést autentizaci s velkým počtem různých klíčů. Autentizace je šifrována pomocí proudové šifry SAFER+.
Žadatel (zařízení B)
Ověřující strana (zařízení A) 𝐴𝑈 𝑅𝐴𝑁𝐷𝐴
𝐴𝑈 𝑅𝐴𝑁𝐷𝐴 𝐵𝐷 𝐴𝐷𝐷𝑅𝐵
𝐸
𝐴𝑈 𝑅𝐴𝑁𝐷𝐴 𝐸
𝐵𝐷 𝐴𝐷𝐷𝑅𝐵 𝐿𝑖𝑛𝑘𝑜𝑣 𝑘𝑙
𝐿𝑖𝑛𝑘𝑜𝑣 𝑘𝑙 𝑆𝑅𝐸𝑆 𝐴𝐶𝑂 𝑆𝑅𝐸𝑆 ? = 𝑆𝑅𝐸𝑆
𝑆𝑅𝐸𝑆 𝐴𝐶𝑂
Obrázek č. 6:Výzva-odpověď v Bluetooth [11, s.878]
2.3.Šifrování vysílání Část datového paketu nesoucí uživatelská data lze pro zajištění bezpečnosti zašifrovat. Zašifrovat je možné jen tu část paketu nesoucí data, hlavička paketu zašifrovat nelze. Šifrování je prováděno šifrou nazvanou . Proudová šifra se skládá ze tří komponent. První část se stará o inicializaci, druhá o generování klíče a třetí o samotné šifrování a dešifrování.
17
Před začátkem šifrování je potřeba dohodnout se na délce šifrovacího klíče. Každé zařízení má určenou svou maximální délku šifrovacího klíče
, přičemž číslo určuje
, kde
délku klíče v oktetech. Každá aplikace používající šifrování má definovanou minimální délku klíče . Při domlouvání délky klíče odešle master navrhovanou délku klíče na
. Pokud
, obvykle nastavenou
a slave zařízení podporuje danou délku klíče je dohadování
ukončeno a délka šifrovacího klíče je nastavena na
. V případě, že nejsou obě podmínky
splněny najednou, odešle slave nový návrh na délku klíče
, kde
. Hodnota
bude nastavena na nejvyšší možnou, ale stále menší než předchozí navrhovaná hodnota. Takto dohadování pokračuje dále, dokud se zařízení neshodnou na určité délce klíče, nebo dokud nedojde k přerušení. Přerušení nastane v případě, že neexistuje žádná délka klíče, na které by se zařízení shodla. V takovém případě data nemohou být šifrována. Šifrovací algoritmus proud (keystream),
produkuje klíčový
,který po přičtení modulo 2 k datům způsobí zašifrování. Výsledná šifra
je symetrická, takže dešifrování probíhá pomocí stejného klíče jako šifrování. šifrovacího algoritmu
Jako vstup
slouží adresa master zařízení (BD_ADDR), 26 bitů hodin reálného času
(real-time clock) master zařízení, a šifrovacího klíče
.
Šifra je založena na posuvných registrech s lineární zpětnou vazbou (LFSR). Výstup z LFSR je kombinován s konečným automatem, tzv. sumačním kombinátorem, se 16 stavy. Výstupem je buď zašifrovaný proud, nebo v případě inicializace náhodná inicializační hodnota. LFSR se skládá ze 4 registrů ( ) se zpětnou polynomickou vazbou a různou délkou. Celková délka registrů je 128. Polynomy jsou primitivní s Hammingovou váhou 5, což je kompromis mezi nutným počtem XOR bran v hardware a dobrými statistickými hodnotami sekvencí.
3. Analýza zranitelnosti Bluetooth Bluetooth se díky své velké rozšířenosti stává častým cílem různých útoků. Útočník může buďto sledovat komunikaci mezi dvěma zařízeními anebo může získat přímý přístup k datovému úložišti napadeného zařízení. Velkým nebezpečím je také to, že útok lze provést pomocí směrové antény na velkou vzdálenost.
3.1.Použité technické vybavení Při výběru zařízení Bluetooth hrála hlavní roli verze Bluetooth 2.1 + EDR z roku 2007. Protože software použitý při testování vyžadoval ke svému provozu více než jedno Bluetooth zařízení, byla vybrána dvě zařízení. Prvním z nich bylo Belkin Bluetooth Adapter F8T017, pracující s verzí Bluetooth 2.1 + EDR. Zařízení je zpětně plně kompatibilní s předchozí verzí Bluetooth 2.0, má udávaný dosah 100m a výrobcem udávanou přenosovou rychlost až 3 Mb/s. Druhým bylo zařízení Intel(R) Centrino(R) Wireless Bluetooth(R) 3.0 + High Speed Adapter, které je standardně integrováno do notebooku Lenovo Thinkpad Edge e520.
18
3.2.Použité softwarové vybavení K testování byl použit operační systém Backtrack 5 R2 [11]. Backtrack je operační systém vycházející z operačního systému Ubuntu a určený především pro penetrační testy sítí. K tomuto účelu nabízí velké množství nástrojů. Při testování zranitelností byly použity především nástroje Btscanner pro monitoring sítě a testovací utilita Bluediving 0.9. K obsluze Bluetooth zařízení používá sadu protokolů Bluez. Při testování byl rovněž použit operační systém Windows 7, ve kterém se o chod zařízení stará sada protokolů Microsoft Windows Stack.
3.3.Útoky na SAFER+ SAFER+ je proudová šifra, používaná při autentizaci. Zranitelnější jsou šifry s delšími klíči 192 bitů a 256 bitů. Zranitelnost spočívá v tom, že samotné šifrování probíhá v kolech. U 128bit verze je jedno kolo šifrování ovlivněno každým bitem klíče. Při použití 192bit verze je celý klíč zapojen až po pěti kolech a u 256bit verze až po devíti kolech. Postupem času byly nalezeny dva útoky využívající tuto slabinu. Prvním je upravený meet-in-th-middle útok, ke kterému je potřeba znát 2 nezašifrované texty a jejich zašifrované podoby, bajtů paměti a práci odpovídající šifrováním SAFER+. Druhým útokem je related-key, který potřebuje 256 nešifrovaných zpráv a jejich zašifrované podoby dvěma podobnými klíči a práci ekvivalentní operacím SAFER+. Oba útoky jsou podrobněji rozepsané v práci Johna Kelseyho, Bruce Schneiera a Davida Wagnera [12]. Možnou ochranou proti těmto útokům je úprava SAFER+ tak, aby každé kolo šifrování bylo ovlivněno každým bitem klíče.
3.4.Útoky na je proudová šifra používaná při šifrování přenášených dat. Po mnoha pokusech byly nalezeny tři typy útoků na tuto šifru. Algebraický útok je založen na tom, že tajný klíč může být odhalen vyřešením systému rovnic o T neznámých. Při použití Strassenova algoritmu [13] je k tomu zapotřebí
operací, což činí u
operací. Toto číslo se podařilo Arknechtovi
s Krausem snížit pomocí jejich útoku na [14]. Druhým typem útoků jsou korelační útoky, kdy se hledají závislosti vstupu na výstupu. Jsou méně časově náročné než algebraické útoky, ale potřebují větší množství dat. Nejúspěšnější korelační útok navrhli Yi Lu a Serge Vaudenay, který má časovou náročnost , datovou a paměťovou [15]. Posledním typem útoku je Guess & determine. Útočník odhaduje část vstupní sekvence a snaží se vyloučit některé z těchto odhadů. Poté se útočník pokusí pomocí analýzy výstupu generátoru odhadnout další část vstupních dat, a pak provést útok hrubou silou na chybějící části dat. Útok tohoto typu prezentován R. Fluhrerem měl časovou složitost
[16].
3.5.Man in the middle útok Při útoku na Bluetooth se používá varianta známá jako Bluetooth – No Input, No Output – Man in The Middle. Útočník využívá první fázi SSP, kdy jsou zprávy odesílány po neověřeném kanálu. To dovoluje útočníkovi komunikaci zachytit a podvrhnout vlastní data. Typicky při výběru módu
19
fungování Bluetooth vybere nejméně bezpečnou možnost Just Works, která neposkytuje žádnou ochranu proti útokům typu Man in the middle. K provedení útoku potřebuje útočník zařízení s modifikovatelnou BD_ADDR. Nejdříve si zjistí BD_ADDR zařízení oběti, pak vyruší veškerou komunikaci v pásmu 2,4GHz, aby donutil si uživatele napadeného zařízení myslet, že jeho zařízení nefunguje korektně, a tím ho přimět ke zrušení spárování zařízení a pokusu o nové spárování. V tom okamžiku zasahuje do komunikace útočník a odesílá svá podvrhnutá data. Další hrozbou je odposlech komunikace. Útok je použitelný jen u SSP, když zařízení v Autentizační fázi 1 pracují podle protokolu Passkey Entry. Klíč lze při odposlechu párování získat během pár sekund. Útok je založen na tom, že při výměně klíče je použit hash kód, který se získá z veřejných klíčů obou zařízení, náhodných hodnot a jednoho bitu klíče. Pro každý bit klíče zařízení odesílá
(
), kde
je HMAC-SHA256. Útočníkovi pak stačí
vypočítat pomocí stejné funkce ( ), pokud se výsledek rovná , pak i-tý bit klíče je 0, jinak 1. Tímto způsobem může útočník získat celý klíč. Pro provedení tohoto útoku je ideální použití programu Frontline. Ten zaznamenává celou komunikaci mezi zařízeními a útočníkovi dovoluje zjistit potřebné hodnoty. Frontline potřebuje ke své činnosti Bluetooth zařízení pracující v tzv. RAW módu. Tato zařízení vyrábí firma Frontline, ale jejich cena je vysoká (Frontline Comprobe BPA 500 stojí přibližně 10000 dolarů). Ale společnost Frontline poskytuje svůj firmware zdarma. Firmware je možné nahrát do některých levnějších Bluetooth zařízení a tak získat zařízení se stejnou funkcionalitou mnohokrát levněji [17].
3.6.Denial of Service (DoS) útok Existují dva druhy DoS útoku na Bluetooth. Prvním je útok na úrovni fyzické vrstvy a druhým druhem jsou útoky na vyšší vrstvy protokolu Bluetooth. Útok na úrovni fyzické vrstvy se provádí tak, že útočníkovo zařízení přeskakuje mezi jednotlivými kanály a v každém časovém slotu vysílá náhodná data. Tím znemožní ostatním zařízením vzájemnou komunikaci. V případě, že útočník používá Bluetooth vysílač s anténou se ziskem 20 dBi, může vyrušit veškerou komunikaci v okruhu 46m [18]. Útoky na vyšší vrstvy protokolu mají jiný průběh, ale stejný cíl, znemožnit napadenému zařízení komunikovat. Buď se může pokusit cílové zařízení zahltit velkým počtem příkazů, nebo může odesílat příkazy v pravidelných intervalech, a tak postupně dosáhnout vybití baterie cílového zařízení.
3.7.Útoky pomocí skriptů Patří mezi nejrozšířenější útoky. Jsou dostupné ve formě skriptů pro operační systém Linux. Většina skriptů nachází uplatnění jen u Bluetooth ve verzi 2.0 + EDR, protože ta měla jisté návrhové a implementační nedostatky. První skupinu tvoří skripty získávající informace o viditelných zařízeních v dosahu. Získanými údaji mohou být adresa zařízení, jméno zařízení, jeho třída, povolené služby nebo aktivní porty. Mezi takové programy patří BlueScanner, ale stejně dobře poslouží linuxový nástroj hcitool .
20
K podobnému účelu slouží i program RedFang, ten dokáže najít i zařízení, která jsou zapnutá, ale nejsou ve viditelném módu. Program se hrubou silou dotazuje na každou možnou adresu adresního prostoru. Pokud mu nějaké zařízení odpoví, tak je možné na ně aplikovat některý z dalších útoků. Při testování trvalo vyzkoušení jedné adresy zařízení v průměru 4,8 sekund. Program RedFang umožňuje při znalosti výrobce zařízení zkrátit dobu vyhledávání díky tomu, že část adresy je pevně přidělená podle výrobce zařízení.
Obrázek č.7: Průběh vyhledávání skrytých zařízení pomocí RedFang Další kategorií jsou útoky, které již ovlivňují napadené zařízení. Bluesnarfing je nebezpečný útok, pomocí něhož může útočník poškozenému ukrást některá citlivá data z mobilního telefonu. Pro provedení útoku je potřebné nainstalovat nástroj Bluesnarfer, mít nainstalované všechny potřebné závislosti a znát BD_ADDR cílového zařízení. BD_ADDR zjistíme prostým použitím linuxového nástroje hcitool, popřípadě, když není zařízení ve viditelném módu, použijeme RedFang. Po zjištění adresy může útočník přistoupit k samotnému útoku. Nejdříve spuštěním s parametrem –l si zjistíme všechny dostupné paměti napadeného zařízení. Při útoku jsem zjišťoval telefonní čísla uložená na SIM kartě v telefonu, proto byla vybrána paměť označená SM. Následně spustím útok znovu s parametry –s pro výběr paměti, -r A-Z pro čtení kontaktů od A až po Z.
21
Obrázek č.8 :Průběh útoku Bluesnarfing Celý útok proběhl během necelých patnácti sekund, přičemž polovinu doby probíhá vyhledávání aktivních zařízení. Při Bluesnarfingu se využívá zranitelnosti v protokolu RFCOMM. RFCOMM je protokol ležící na vrcholu L2CAP vrstvy a emuluje virtuální sériové spojení mezi dvěma koncovými body. Pro jedno zařízení může být ustanoveno až 60 RFCOMM kanálů. Pro úspěšný útok musí útočník znát BD_ADDR zranitelného zařízení. Poté se připojí na RFCOMM kanál číslo 17, kde zranitelná zařízení mají zadní vrátka v podobě AT parseru, který nepožaduje autentizaci. Pomocí příkazů tohoto parseru lze převzít kontrolu nad napadeným zařízením. Útočník pak může stahovat obsahy pamětí telefonu, odesílat SMS, nebo volat na draze placené linky. Bluesnarfingu je velice podobný Bluebugging. Rozdíl spočívá v tom, že při Bluesnarfingu útočník odešle některá citlivá data do svého zařízení. Odeslání mu umožňují elektronické vizitky vCard. Pro Bluesnarfing jsou volně dostupné programy Bluesnarfer nebo Bloover. Dalším z řady útoků je Bluejacking, který není zaměřen na krádež citlivých dat, či způsobení škody. Cílem Bluejackingu je odeslat cílovému zařízení nevyžádanou zprávu nebo obrázek, oznamující, že zařízení bylo napadeno. K tomu využívá u mobilních telefonů možnost odesílání virtuální vizitky vCard. Přijímající zařízení nemůže zjistit, od koho mu daná zpráva přišla. Pokud máte zapnuté handsfree, tak se může stát obětí útoku Carwhispering. Ten útočníkovi dovoluje připojit se k handsfree a uživatele odposlouchávat. Nejdříve útočník zjistí pod jakou třídou jeho vlastní zařízení Bluetooth vystupuje. Následně změní třídu na hodnotu 0x500204, identifikující handsfree.
22
Obrázek č.9: Výpis informací o Bluetooth zařízení ukazující, že vystupuje jako třída 0x580100 a následný příkaz pro změnu třídy zařízení Dalším krokem je změna přednastaveného PIN kódu. Přednastavený PIN kód můžeme změnit v /etc/Bluetooth/hcid.conf. Jako PIN použijeme nejčastěji používané kombinace 0000,1234. Pak přistoupíme k samotnému útoku. Při Carwhisperingu bude vygenerován soubor s příponou .raw, který obsahuje nahrávku zvuku zachyceného pomocí handsfree. Vygenerovanou nahrávku pomocí nástroje sox zkonvertujeme do poslouchatelné podoby.
Obrázek č.10: Provedení carwhisperingu a následná konverze výstupu
23
3.8.Implementace v operačních systémech Největším problémem zkoumaných operačních systémů je ochrana sdílených linkových klíčů zařízení. V operačním systému Windows a Linux je ochrana zajišťována pouze přístupovými právy k souboru. Například v operačním systému Windows 7 jsou linkové klíče dostupné v registrech ve složce HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\ Keys\[BD_ADDR], v operačním systému Linux jsou linkové klíče uloženy v souboru /var/lib/Bluetooth/[BD_ADDR]/linkkeys.
4. Návrhy na řešení nalezených zranitelností 4.1.SAFER+, I když je dešifrování posílaných dat velmi nebezpečné, tak všechny popsané útoky byly zatím provedeny v laboratorních podmínkách. Jen málokdy se útočníkovi poštěstí získat dostatečné množství zašifrovaného i nezašifrovaného textu, které je k úspěšnému útoku potřebné. Navíc klíč, pomocí kterého se data šifrují, se pravidelně mění. A tato perioda je kratší, než časová náročnost všech popsaných útoků. Z toho důvodu jsou prozatím tyto šifry, při použití vhodné délky klíče, z hlediska prolomení bezpečné.
4.2.Man in the middle (MITM) Jedním z nejsnazších opatření proti No Imput, No Output MITM útoku, je vypsání upozornění. V případě, že zařízení požaduje spárování v režimu Just Works, na displeji zařízení se zobrazí varovná zpráva, např.: „Má zařízení, které se snažíte připojit klávesnici a displej?“. Uživatel zvolí „Ano“ nebo „Ne“, podle toho s jak vybaveným zařízením se snaží spárovat. V případě volby „Ano“ se komunikace přeruší s oznámením, že to má uživatel zkusit později. Další možností je nahrazení protokolu Just Works některým jiným, který poskytuje ochranu proti Man in the middle útokům, např. Out of Band. Náprava problému týkajícího se protokolu Passkey Entry by vyžadovala změnu ve specifikaci Bluetooth. Po první fázi párování zařízení (výměně veřejných klíčů) znají zařízení své veřejné klíče navzájem. Kdyby komunikace následující po výměně veřejných klíčů byla šifrovaná pomocí těchto klíčů, nebezpečí odposlechu klíče by odpadla. Útočník bez znalosti soukromého klíče příslušícího k danému veřejnému klíči nemá možnost komunikaci rozšifrovat. Úprava by s sebou nesla navýšení potřebného výpočetního výkonu, kvůli šifrování celé komunikace, a tím pádem by vzrostla cena zařízení.
4.3.Denial of Service (DoS) útok V případě, že útok probíhá z jediného zařízení způsobem, že útočník stále posílá požadavky na spárování zařízení, pak jako nejjednodušší řešení se jeví vytvoření databáze. Do databáze by se
24
ukládaly adresy zařízení, která odeslala určitý počet požadavků na spárování. Pokud by pak zařízení, jehož adresa je v databázi, odeslalo požadavek na spárování, tak by byl požadavek rovnou zamítnut. Existují Bluetooth zařízení, která dovolují měnit svou adresu. Tak by se do databáze mohlo dostat zařízení, které má pevně danou adresu a útočník tuto adresu využil. Proto by zařízení v databázi bylo umístěno jen po určitou dobu a po jejím uplynutí by se mohlo pokusit o spárování. V případě, že je útok prováděn z více zařízení najednou, tak zařízení by mělo evidovat počet pokusů o spárování. Když počet pokusů překročí určitou hranici za stanovený časový úsek, měly by být všechna zařízení, která se v daném časovém úseku pokoušela o spárování zařazena do databáze najednou.
4.4.Útoky pomocí skriptů Některé hrozby měly být eliminovány v Bluetooth v 2.1 + EDR. Odolnost proti těmto útokům měla zajistit viditelnost zařízení. Ta měla za účel zastavení vysílání adresy zařízení, v případě, že zařízení není používáno. Tento mechanizmus se ale podařilo obejít pomocí programu RedFang. Pro uživatele je nejsnazší obranou proti těmto útokům úplné vypnutí Bluetooth v případě, že jej nutně nepotřebují. Výrobci jednotlivých Bluetooth zařízení by měli zakázat připojení k RFCOMM portů a používání AT parseru bez autentizace.
4.5.Implementace v operačních systémech Linkové klíče spárovaných zařízení jsou ve všech zkoumaných systémech jen velice slabě chráněny. Pro jejich bezpečné uchování je potřebné soubory obsahující tyto linkové klíče šifrovat. U operačního systému Windows 7, i starších, se o šifrování musí postarat výrobce, protože systémy jsou uzavřené a mají striktně omezená přístupová práva. Pro operační systém Linux byl jako součást práce napsaný skript, který slouží k zašifrování souboru obsahujícího linkové klíče. Skript používá k šifrování/dešifrování souborů linuxový balíček openssl, který umožňuje kódování velkým počtem různých šifer. Ve skriptu je použita šifra AES s délkou klíče 128 bitů.
25
Závěr Při snaze o co nejvyšší bezpečnost se dopustili vývojáři několika chyb. Při práci jsem objevil zranitelnosti, z nichž některé by se daly označit za kritické. Velice zvláštní je přístup vývojářů k zařízením bez klávesnice a displeje. Na jednu stranu se snaží dosáhnout nejvyšší možné bezpečnosti a na druhou navrhnou protokol Just Works, který neposkytuje ochranu vůbec. Proto by měli zakázat jeho použití a nahradit jej bezpečnějším protokolem Out of Band. Další závažná chyba se nachází v protokolu Passkey Entry. Slabinou tohoto protokolu je posílání PIN kódu mezi zařízeními. Ten je posílán po jednom bitu, a to v podobě, která útočníkovi dovoluje pomocí maximálně dvou pokusů posílaný bit zjistit. Zde jsem navrhl řešení pomocí šifrování. V předchozí fázi párování si zařízení již vyměnila své veřejné klíče. Proto by mohla být následná výměna PIN kódu šifrována. Proti útokům typu DoS jsem navrhl řešení pomocí databáze zařízení, která překročila nastavenou mez počtu pokusů o spárování. Toto řešení, stejně jako předcházející nemohlo být otestováno, protože jeho implementace by vyžadovala zásah do firmware zařízení. Bohužel firmware není veřejně dostupný, a proto nebylo možné jej upravit. Zásadní problém jsem nalezl také v implementaci Bluetooth v operačních systémech Linux a Windows. Oba operační systémy ukládají linkové klíče v otevřené formě, chráněné jen přístupovými právy. To dovoluje útočníkovi klíče zcizit a následně se vydávat za jedno ze spárovaných zařízení. Obejít přístupová práva lze jednoduše pomocí některé live distribuce operačních systémů. Z toho důvodu jsem jako součást své práce vytvořil skript pro operační systém Linux, pomocí kterého může uživatel zašifrovat své linkové klíče. Jako poměrně nízké se jeví ohrožení zařízení pomocí skriptů. Nejrozšířenější verze Bluetooth 2.1 + EDR napravila zranitelnosti starších verzí. Útoky typu Bluesnarfing a Bluebugging byly zaměřeny na předchozí verze a nyní již nejsou použitelné. Z útoků jsou možné jen ty neinvazivní, jako je získání adresy skrytého zařízení.
26
Literatura: [1] USB.org: Documents. USB.com [online]. USB Implementers Forum, Inc. [vid. 19. únor 2012]. Dostupné z: http://www.usb.org/developers/wusb/docs. [2] BRADÁČ, Zdeněk. Bezdrátový komunikační standard ZigBee. Automatizace. Praha: Automatizace s. r. o., Duben 2005, 48(4), 261-263. ISSN 0005-125X. [3] MYSLÍK, Vladimír. IrDa: Kompletní popis. In: HW.cz: Vše o elektronice a programování [online]. HW server s.r.o.: HW server, 1997 - 2012 [vid. 12. březen 2012]. Dostupné z: http://www.hw.cz/teorie-a-praxe/dokumentace/irda-kompletni-popis.html. [4] STAUDEK, Jan. WPAN: Wireless Personal Area Networks[prezentace online], 2011 [vid. 21. březen 2011]. Dostupné z: http://www.fi.muni.cz/usr/staudek/vyuka/PA151/_wpan_bt.pdf. [5] STAUDEK, Jan. WLAN: Wireless Local Area Networks, Wi-Fi, 802.11. Brno, 2012 [vid. 12. únor 2012]. Dostupné z: http://www.fi.muni.cz/usr/staudek/vyuka/PA151/_wlan.pdf. [6] PUŽMANOVÁ, Rita. Bezpečnost bezdrátové komunikace: jak zabezpečit wi-fi, bluetooth, GPRS či 3G. Vyd. 1. Brno: Computer Press, 2005, 179 s. ISBN 80-251-0791-4. [7] STAUDEK, Jan. Wireless MAN: WiMax, IEEE 802.16. Brno, 2012 [vid. 28. únor 2012]. Dostupné z: http://www.fi.muni.cz/usr/staudek/vyuka/PA151/_wman.pdf [8] STAUDEK, Jan. Mobilní sítě: GSM, GPRS, EDGE, UMTS. Brno, 2012 [vid. 11. únor 2012]. Dostupné z: http://www.fi.muni.cz/usr/staudek/vyuka/PA151/_cellural.pdf [9] TRÄSKBÄCK, Marjaana. Security of Bluetooth: An overview of Bluetooth Security. [online]. [vid. 03. březen 2012]. Dostupné z: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.25.6480 [10] GEHRMANN, Christian, Joakim PERSSON a Ben SMEETS. Bluetooth security. Boston: Artech House, 2004, 204 s. ISBN 15-805-3504-6. [11] BackTrack Linux: Penetration Testing Distribution. BackTrack Linux: Penetration Testing Distribution [online]. BackTrack Linux, 2011 [vid. 5. březen 2011]. Dostupné z: http://www.backtrack-linux.org/
27
[12] KELSEY, John, Bruce SCHNEIER a David WAGNER. Key Schedule Weaknesses in SAFER+. In: Second Advanced Encryption Standard Candidate Conference. Dostupné z: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.6991 [13] CORMEN, Thomas H. Introduction to algorithms. 2nd ed. Cambridge: MIT Press, 2001, 1180 s. ISBN 02-620-3293-7. [14] ARMKNECHT, Frederik a Matthias KRAUSE. Algebraic Attacks on Combiners with Memory. In: Advances in cryptology - CRYPTO 2003: 23rd Annual International Cryptology Conference : Santa Barbara, California, USA, August 17-21, 2003 : proceedings. Berlin: Springer, 2003, s. 162-175. Lecture notes in computer science, 2729. ISBN 3-540-40674-3. [15] LU, Yi a Serge VAUDENAY. Faster Correlation Attack on Bluetooth Keystream Generator E0. In: Advances in cryptology - CRYPTO 2004: 24th Annual International Cryptology Conference : Santa Barbara, California, USA, August 15-19, 2004 : proceedings. Berlin: Springer, c2004, s. 35-49. Lecture notes in computer science, 3152. ISBN 3-540-22668-0. [16] FLUHRER, Scott. Improved key recovery of level 1 of the Bluetooth Encryption System. Cryptology ePrint Archive [online]. 2002, roč. 2002, č. 68 [vid. 19.4.2012]. Dostupné z: http://eprint.iacr.org/2002/068 [17] Bluetooth RAW Mode sniffing firmware upgrade. AMP SECURITY. Airdump.cz: security wifi hacking cracking exploity [online]. AMP Security, 2007 [vid. 15. duben 2012]. Dostupné z: http://airdump.cz/bluetooth-rawmode-sniffing-firmware-upgrade/ [18] HAATAJA, Keijo. Security threats and countermeasures in Bluetooth-enabled systems [online]. Kuopio: University of Kuopio, 2009 [vid. 20. květen 2012]. ISBN 978-951-7819-923. Dostupné z: http://epublications.uef.fi/pub/urn_isbn_978-951-27-0111-7/urn_isbn_978-951-270111-7.pdf. Disertační. University of Kuopio.
28
Příloha A A.1 Instalace V terminálu se přesuneme do složky se skriptem install.sh. Následně příkazem sudo ./install.sh dojde k nainstalování skriptu LKcrypt.
A.2 install.sh #!/bin/sh if [ $USER != "root" ]; then echo "Please run as \"root\"" exit 0 fi CURPATH=`pwd` cp $CURPATH/LKcrypt.sh /usr/local/bin/LKcrypt chmod +x /usr/local/bin/LKcrypt
A.3 LKcrypt.sh #!/bin/sh if [ $USER != "root" ]; then echo "Access denied. Please run program as \"root\"" exit 0 fi BTPATH=/var/lib/bluetooth ENCRYPTORDECRYPT=100 ANSW="no" #testuje, jestli existuje nějaké Bluetooth zařízení if [ "$(ls -A $BTPATH)" ] ; then echo "Paired device found" else echo "Can't find paired device" exit 0 fi #testuje, jestli jsou linkové klíče zašifrované cd $BTPATH NUMB=`find -name linkkeys | wc -l` if [ $NUMB -eq 0 ] ; then
29
echo "Link keys are encrypted" echo "Decrypt? yes/no" read ANSW ENCRYPTORDECRYPT=1 else
fi
echo "Link keys aren't encrypted" echo "Encrypt? yes/no" read ANSW ENCRYPTORDECRYPT=0
#ukončení v případě, že nechceme šifrovat/dešifrovat if [ $ANSW != "yes" ] then if [ $ANSW != "no" ] then echo "Invalid command, program will be terminated!" exit 1 fi exit 0 fi case $ENCRYPTORDECRYPT in 0) #šifrování a smazání klíče echo "Enter password:" stty -echo read PASS stty echo echo "Confirm your password:" stty -echo read PASSCONF stty echo if [ $PASS != $PASSCONF ]; then echo "Password wasn't confirmed" exit 0 fi for file in /var/lib/bluetooth/*/linkkeys do PATH2=`dirname $file` openssl aes-128-ecb -salt -in $file -out $PATH2/encraes -k $PASS 2>> /dev/null if [ $? -eq "0" ];
30
then rm $file else echo "Something is wrong, try again" fi done ;; 1) #dešifrování echo "Enter password:" stty -echo read PASS stty echo for file2 in /var/lib/bluetooth/*/encraes do PATH2=`dirname $file2` openssl aes-128-ecb -d -salt -in $file2 -out $PATH2/linkkeys -k $PASS 2>> /dev/null
if [ $? -eq "1" ]; then echo "$PATH2/encraes - Wrong password" rm $PATH2/linkkeys else rm $file2 chmod 600 $PATH2/linkkeys fi done
;; esac
31