Kamil ADAMCZYK - student V roku Wojskowa Akademia Techniczna, Wydział Elektroniki, Instytut Telekomunikacji, ul. Gen. S. Kaliskiego 2, 00-908 Warszawa BEZPIECZEŃSTWO W SYSTEMIE BLUETOOTH Wstęp Bluetooth jest technologią umożliwiającą bezprzewodowe połączenie ze sobą urządzeń elektronicznych, obsługujących ten standard. Jest to bezprzewodowy protokół komunikacyjny, niestety o krótkim zasięgu i niedużej przepływności. Te dwie wady równoważone są przez małe rozmiary urządzeń, mały pobór mocy i ich mobilność. Obecnie na rynku istnieje kilka wersji standardu Bluetooth z czego najnowsza to 2.0, lecz większość urządzeń wyposażona jest w 1.1 lub 1.0. Protokół Bluetooth został opisany w standardzie IEEE 802.15.1 Najczęściej w Bluetooth są wyposażane małe urządzenia takie jak aparaty fotograficzne i telefony komórkowe, drukarki, laptopy oraz ostatnio wykorzystywany jest również w instalacjach alarmowych do przesyłania sygnalizacji i odczytów z czujników. 1 Technologia sieci Bluetooth Bluetooth jest bezprzewodowym protokołem transmisji danych pracującym w bezpłatnym paśmie 2,4GHz. Począwszy od wersji 1.2 posiada on możliwość nadawania w systemie FH. Wprowadzono to w celu uniknięcia nakładania się transmisji urządzeń pracujących na tych samych zakresach i pozbycia się szkodliwych interferencji. Wykorzystywane zasoby częstotliwościowe przedstawia tabela 1.1
Tabela 1.1 Zakres częstotliwości [GHz] Kanały [MHz] 2,4 2,485 f = 2402 + k, k = 0, 1,..., 78 Na podstawie wzoru określającego liczbę dostępnych kanałów widać, że możemy pracować na 79 różnych kanałach, wykonując do 1600 skoków/s. Taki rodzaj transmisji już stanowi pewnego rodzaju zabezpieczenie przed osobami które chcą przychwycić naszą transmisje, gdyż nie pracujemy cały czas na jednej częstotliwości ale z drugiej strony mała liczba możliwych kanałów powoduje ze przechwycenie transmisji nie jest niemożliwe. Urządzenia typu Bluetooth posiadają rożne zasięgi w zależności od mocy z jaką nadają i co ważne większość popularnych urządzeń ma możliwość regulacji jej poziomu. Parametry techniczne urządzeń Bluetooth przedstawia tabela 1.2. Tabela 1.2 klasa mocy min Pwy [mw] max Pwy [mw] Zasięg 1 1 100 do 100 m 2 0,25 2,5 do 10 m 3 1 1 Do 1 m Maksymalna oferowana przepływność dla BT 1.0 równa jest 1Mb/s ale rzeczywista nie przekracza 720 kb/s, natomiast dla BT 2.0 maksymalna przepływność to 2Mb/s. Wszystkie urządzenia typu Bluetooth otrzymują unikalny adres zwany Bluetooth Device Adress (BDA). Jest to 48 bitowy liczba przypisana w czasie procesu produkcyjnego. Jest bardzo podobna do adresu MAC nadawanym kartom sieciowym. BDA ma strukturę podobną do MAC, zbiór 6 liczb w systemie szesnastkowym oddzielone od siebie krokami. 2 Procedury bezpieczeństwa w systemie Bluetooth W systemie Bluetooth możemy wykorzystywać istniejące protokoły bezpieczeństwa takie jak TLS lub IPsec implementując je w warstwie transportowej, jednakże sam standard posiada pewne wbudowane mechanizmy zabezpieczające. Są to: rozpoznawanie urządzenia, autoryzacja użytkownika, szyfrowanie przesyłanych danych. Mechanizmy te operują na warstwie zarządzania łącza, która należy do protokółów warstwy transportowej takich jak L2CAP i RFCOMM. L2CAP jest protokołem wysokiego poziomu, który odpowiada za zorientowanie połączenia oraz bezpołączeniową sygnalizacje do niższych protokołów. Ponadto odpowiada za kontrole połączenia, detekcje błędów oraz dzielenie i rozprowadzanie pakietów. Może pracować w jednym z 3 trybów: podstawowym, kontroli przepływu, w trybie retransmisji. Struktury pakietów L2CAP i ramki informacyjnej w przedstawia rys. 3.1. 1
Rys.3.1. Struktury pakietów L2CAP i ramki informacyjnej standardu Bluetooth RFCOMM jest oparty na L2CAP i oferuje emulacje na połączenie kablowe, czyli umożliwiał prace ze standardem Bluetooth dla aplikacji przystosowanych dla transmisji szeregowej na RS232. Planowano wykorzystać go jako bezprzewodowa alternatywę dla w/w interfejsu przewodowego. Oferuje do 20 kanałów połączeniowych. Protokół ten był często stosowany zanim pojawił się tryb retransmisyjny w L2CAP. 3 Komunikacja urządzeń w systemie Bluetooth Połączenie urządzeń pod względem bezpieczeństwa może odbyć się na 3 możliwe sposoby: tryb niezabezpieczony tryb niezabezpieczony do momentu ustalenia połączenia kanałów pełne zabezpieczenia zarówno w procesie ustanawiania połączenia jak i wymiany danych Tryby zabezpieczeń komunikacyjnych między elementami systemu Bluetooth przedstawia rys. 4.1. Rys. 4.1. Tryby zabezpieczeń komunikacyjnych między elementami systemu Bluetooth 2
Rozpoznanie jest to pytanie co robisz i kim jesteś?, proces w którym urządzenia wzajemnie się weryfikują i wyrażają zgodę na połączenie. Polega on na wiedzy o wspólnym tajnym kluczu PIN i znajomości swoich adresów. Można powiedzieć ze w procesie rozpoznania ustalane są również warunki połączenia. Tajny kod PIN nie jest transmitowany do urządzeń. Często tworzone są tablice znanych urządzeń, przez co możemy ponownie łącząc się z nimi uniknąć w/w procedury i podawanie kodu PIN. Proces rozpoznania poprzedzany jest procesem parowania urządzeń, który przedstawia rys. 4.2, natomiast algorytm rozpoznania ukazany jest na rys 4.3. Rys. 4.2..Algorytm parowania w systemie Bluetooth Generacja klucza inicjujacego IN_RAND ACCEPT Generacja klucza inicjującego Generacja klucza rozpoznania CA CB Generacja klucza rozpoznania Rozpoznanie pary V_RAND V_SRES C_RAND C_SRES Rozpoznanie pary Rys. 4.3..Algorytm rozpoznania w systemie Bluetooth Poufność jest kolejnym sposobem na zabezpieczenia transmisji. Może uchronić przed atakiem pasywnym. Urządzenie rozsyła że tylko użytkownicy z uprawnieniami mają dostęp do jego zasobów. Autoryzacja umożliwia korzystanie z zasobów tylko urządzeniom wcześniej zarejestrowanym, które otrzymały dostęp do zasobów. 3
4 Tworzenie klucza połączenia Klucz ten jest tworzony podczas fazy ustanawiania połączenia. Powstaje na podstawie kodów PIN jakie użytkownicy wpisują do urządzeń. Kody te muszą być identyczne. Po inicjacji urządzenia są automatycznie rozpoznawane i wykorzystują szyfrowane łącza. Wspomniany kod PIN może mieć długość od 1 do 16 bajtów. Najczęściej spotykany jest kod 4 cyfrowy czyli 2 bajtowy. Algorytm generowania klucza połączeniowego przedstawia rys. 5.1. Rys. 5.1. Algorytm generowania klucza połączeniowego w systemie Bluetooth 5 Autoryzacja w systemie Bluetooth Jak już wcześniej wspomniałem rozpoznanie (poznanie) towarzyszy pierwszorazowemu połączeniu. Procedura rozpoznawania opiera się na interakcji 2 urządzeń i wysyłaniu do siebie wzajemnych zapytań i odpowiedzi. Wymiana zapytań i odpowiedzi zatwierdza urządzenia w oparciu o weryfikacje tajnego klucza Bluetooth Link Key (klucz łącza). Algorytm procesu autoryzacji w Bluetooth przedstawia rys. 6.1. 4
Rys. 6.1. Algorytm procesu autoryzacji w Bluetooth Proces autoryzacji przebiega według następującego algorytmu: aplikant transmituje 48 bitowy adres BD_ADDR do urządzenia weryfikującego, weryfikator wysyła 128 bitowa, losową liczbę do aplikanta, weryfikator używa algorytmu E1 do wytworzenia odpowiedzi (authentication response), wykorzystując adres sieciowy aplikanta, klucz łącza i 128 bitową losową liczbę. Aplikant postępuje wg tego samego schematu: aplikant zwraca wygenerowaną odpowiedź SRES do weryfikatora, weryfikator porównuje wygenerowane odpowiedzi SRES, jeżeli 32 bitowe odpowiedzi są zgodne następuje połączenie a w przypadku niezgodności rozłączenie. Jeżeli proces rozpoznawania nie powiedzie się, urządzenia odczekują pewien przedział czasu i ponownie nawiązują próbę połączenia. Za każdym nieudanym połączeniem przedział czasu oczekiwania rośnie ekspotencjalnie. Typowe parametry procesu autoryzacji w Bluetooth zawiera tabela 6.1 Tabela 6.1 parametr Długość [bit] tajność adres urządzenia 48 publiczny liczba losowa 128 publiczny nieprzewidywalny odpowiedź SRES 32 publiczny klucz łącza 128 tajny 5
6 Zabezpieczenie poufności danych w Bluetooth Poza procesami rozpoznawania i autoryzacji, Bluetooth dostarcza nam usługę poufności. Pakiety wymieniane pomiędzy 2 urządzeniami są szyfrowane. Ciąg danych wyjściowych jest tworzone poprzez funkcje Ex-OR bitów danych użytkowych i klucza strumieniowego. Klucz strumieniowy jest tworzony na podstawie algorytmu kryptograficznego bazującego na rejestrze przesuwnym z liniowym sprzężeniem zwrotnym (Linear Feedback Shift Register). Funkcja szyfrowania opiera się na: identyfikacji aplikanta (BD_ADDR), generacji liczby losowej (EN_RAND), numerze slotu, kluczu szyfrowania, który inicjuje LFSR przed transmisja każdego pakietu, jeżeli szyfrowanie jest włączone. Algorytm procesu szyfrowania i deszyfrowania w Bluetooth przedstawia rys. 7.1. Rys. 7.1. Algorytm procesu szyfrowania i deszyfrowania w Bluetooth Klucz szyfrujący dostarczany do algorytmu szyfrującego jest wytwarzany w oparciu o wewnętrzny generator klucza KG i może mieć długość od 8 do 128 bitów w zależności od parametrów połączenia. Wytwarza on ciągi kluczy bazując na kluczu łącza (link key)., liczbie losowej i wartości ACO. Parametr ACO to 96 bitowy, nadmiarowy szyfr wytwarzany w procesie rozpoznawania poprzez algorytm E1. 7 Ocena mechanizmów bezpieczeństwa w Bluetooth Podstawowe mechanizmy bezpieczeństwa w Bluetooth zawiera tabela 8.1 Procedura bezpieczeństwa 1 Znane są sposoby generacji liczb losowych przez RNG Atrybut Tabela 8.1 Generowanie liczb w sposób statyczny lub okresowy zmniejsza efektywność procesu rozpoznawania 6
2 Krótki kod PIN Krótki PIN może być łatwo odgadnięty, co prowadzi do odtworzenia klucza szyfrującego i łącza 3 Znajomość kodu PIN przez wielu użytkowników, szczególnie w dużych sieciach (słaba dystrybucja) 4 Długość klucza kodującego jest zmienna i negocjowana 5 Klucz Mastera jest dzielony pomiędzy użytkowników Kod PIN może zostać przejęty przez nieuprawnione osoby Klucz ten powinien mieć określoną długość i możliwie największą Należy wprowadzić lepszy sposób na rozsyłanie klucza 6 Próby rozpoznawania są ponawiane Poza rosnącym opóźnieniem pomiędzy kolejnymi próbami należy wprowadzić pewien ich limit 7 Adres aplikanta BD_ADDR może zostać przechwycony 8 Proces rozpoznawanie oparty jest o szereg zapytań i odpowiedzi z wykorzystaniem prostego klucza dzielonego pomiędzy urządzenia Jeżeli adres BD_ADDR zostanie skojarzony z jednym użytkownikiem to intruz może uzyskać dostęp do zasobów podszywając się pod niego Tego typy transmisja jest narażona na atak typu Man in the Middle. Dodatkowo jest to transmisja w jedna stronę. Transmisja w dwie strony czyli każde z urządzeń rozpoznaje drugie zmniejsza możliwość tego typu ataku 8 Rodzaje ataków na Bluetooth BlueSnarf publicznie dostępne pliki na OBEX Atakujący wykorzystuje OBEX Push Profile (OPP), zaprojektowany w celu wymiany wizytówek i innych obiektów. Najczęściej usługa ta nie wymaga uwierzytelniania. Atak BlueSnarf polega na wysłaniu żądania OBEX GET dla znanych powszechnych plików, takich jak 'telecom/pb.vcf' (książka telefoniczna) lub 'telecom/cal.vcs' (kalendarz). Jeżeli oprogramowanie urządzenia nie zostało zaimplementowane poprawnie, agresor może uzyskać dostęp do wszystkich plików zapisanych na atakowanym urządzeniu. BlueBug ukryte kanały RFCOMM udostępniające komendy AT Luka ta pozwala na wykonanie nieautoryzowanych czynności na urządzeniu z włączonym Bluetoothem. W sprzyjających okolicznościach atak BlueBug trwa zaledwie kilka sekund. Odległość od atakowanego urządzenia do 10-15 metrów. W celu zwiększenia zasięgu można użyć anteny kierunkowej. Niektóre telefony pozwalają na wydanie poleceń AT przez co agresor może wykonać połączenie telefoniczne, wysłać SMS-y na dowolny numer, czytać i zmieniać dane w książce telefonicznej, itd. BlueSmack - atak typu DoS Można go przeprowadzić przy użyciu BlueZ (standardowe narzędzie Linuxa). BlueSmack przypomina atak na wczesne wersje Microsoft Windows 95 - ICMP. Polega on na tym, iż na poziomie L2CAP możliwe jest zażądanie odpowiedzi innego urządzenia Bluetooth. Podobnie jak w przypadku komunikatu ping dla ICMP, jego zadaniem dla L2CAP jest 7
zbadanie dostępności oraz prędkości nawiązywania połączenia. Z pomocą narzędzia l2ping (systemu BlueZ), użytkownik może zdefiniować długość wysyłanych pakietów testowych. Wystarczy użyć opcji -s i określić rozmiar wysyłanych pakietów na około 600 bajtów by przeprowadzić atak. Blueprinting fingerprinting urządzenia Wykorzystywany do uzyskania informacji o urządzeniach z włączonym Bluetoothem. Każde urządzenie z Bluetoothem posiada unikatowy adres składający się z 6 bajtów i zazwyczaj ma formę podobną do adresów MAC: MM:MM:MM:XX:XX:XX. Pierwsze trzy bajty adresu (lit. M), zawierają informacje o producencie chipsetu. Pozostałe trzy trudniej zdefiniować, więc nie można w 100% określić modelu urządzenia. Listę usług oferowanych przez urządzenia z włączonym Bluetooth em można uzyskać poprzez SDP (Service Discovery Protocol). Znając ich rodzaje można ustalić model urządzenia. BlueSnarf++ Przypomina atak typu BlueSnarf, od którego różni się głównie metodą zdobywania dostępu do systemu plików urządzenia ofiary. Pozwala agresorowi na uzyskanie pełnych uprawnień odczytu i zapisu poprzez usługę OBEX Push Profile. Jeżeli na urządzeniu uruchomiony jest serwer OBEX FTP, możliwe jest nawiązanie połączenia poprzez OBEX Push bez konieczności parowania urządzeń. Agresor może przeglądać wszystkie obiekty w systemie plików (za pomocą polecenia ls), a nawet je usuwać (polecenie rm). Możliwe jest przeprowadzenie operacji na każdej zainstalowanej w urządzeniu pamięci, łącznie z kartami rozszerzającymi pamięci, takimi jak Memory Stick, SD czy Compact Flash. HelloMoto - połączenie ataków BlueSnarf i BlueBug Atak wykorzystuje nieprawidłowe przetwarzanie 'zaufanych urządzeń' w niektórych modelach telefonów firmy Morotola. Agresor nawiązuje połączenie przy pomocy OBEX Push Profile symulując wysłanie wizytówki vcard. Proces wysyłania zostaje przerwany, ale urządzenie agresora pozostaje na liście urządzeń godnych zaufania w telefonie ofiary. Dzięki temu agresor może łączyć się z telefonem bez uwierzytelniania. Po nawiązaniu połączenia agresor może przy użyciu poleceń AT przejąć kontrolę nad urządzeniem. BlueBump - utrzymanie otwartego połączenia bez autoryzacji Ten rodzaj ataku wykorzystuje socjotechnikę i polega na nawiązaniu z urządzeniem ofiary zaufanego połączenia. Osiąga się to wysyłając cyfrową wizytówkę w celu nakłonienia odbiorcy do przeprowadzenia uwierzytelniania. Agresor utrzymuje połączenie w stanie otwartym lecz prosi ofiarę o usunięcie klucza Link Key dla atakującego urządzenia. Ofiara nie wie o tym, że połączenie jest w dalszym ciągu aktywne. Następnie agresor wysyła żądanie ponownego wygenerowania klucza Link Key. W rezultacie urządzenie agresora otrzymuje prawo do nawiązywania połączenia bez potrzeby uwierzytelniania. Agresor ma więc dostęp do urządzenia ofiary, aż do momentu usunięcia przez nią klucza Link Key. BlueDump kasowanie istniejącego parowania po udanym spoofingu Agresor musi znać BD_ADDR zestawu sparowanych urządzeń. Fałszuje adres jednego z nich i łączy się z innym. Ze względu na to, że agresor nie posiada klucza Link Key, gdy urządzenie ofiary zażąda uwierzytelniania, urządzenie agresora odpowie komunikatem 'HCI_Link_Key_Request_Negative_Reply'. W pewnych okolicznościach może to spowodować usunięcie klucza Link Key na urządzeniu ofiary i w efekcie - przejście w tryb parowania. BlueChop Celem tego ataku jest zakłócenie ustanowionej podsieci piconet poprzez wykorzystanie urządzenia, które nie jest jej składnikiem. Atak bazuje na tym, że jednostka nadrzędna obsługuje wielokrotne połączenia, które mogą posłużyć do utworzenia 8
rozszerzonej sieci (scatternet). Agresor podszywa się pod adres losowego urządzenia będącego składnikiem sieci piconet i łączy się z jednostką nadrzędną, co prowadzi do zakłócenia funkcjonowania sieci. Car Whisperer Umożliwia korzystanie z bezprzewodowego samochodowego zestawu głośnomówiącego ofiary (odbieranie danych dźwiękowych z mikrofonów, wysyłanie dźwięku do głośników). Bazuje na standardowych kodach PIN ( 0000 ) i zestawach, które nie są sparowane. Eksperymenty prowadzone na niemieckich autostradach pokazały, że w praktyce wykonalna i możliwa jest komunikacja Bluetooth pomiędzy dwoma samochodami. W testowanym scenariuszu zespół jadący kilkaset metrów za ofiarą był w stanie bez problemu podsłuchiwać rozmowy w śledzonym samochodzie za pomocą zainstalowanego fabrycznie zestawu głośnomówiącego Bluetooth. 9. Podsumowanie Analizując mechanizmy zabezpieczenia danych w standardzie Bluetooth nasuwa się pytanie. Czy są one skuteczne? Czy można włamać się do sieci Bluetooth? Odpowiadając na te pytania trudno znaleźć jednoznaczną odpowiedź przynajmniej jeśli chodzi o skuteczność mechanizmów bezpieczeństwa bo zawsze znajdą się ludzie którzy odkryją luki w standardach i złamią zabezpieczenia ale to właśnie jest motorem napędowym nad pracami w celu polepszenia zabezpieczeń. Istnieją aplikacje takie jak HID attack lub BTexploit umożliwiające włamanie do sieci Bluetooth. W 2004 roku pokazano,że korzystając z tzw. sniffera Bluetooth i odpowiedniego oprogramowania można przechwycić 128 bitowy klucz i przeprowadzić procesy identyfikacyjne poprzez zapętlenie procedury wpisywania PINu. Atak ten można było przeprowadzić tylko podczas pierwszorazowego parowania się urządzeń, kiedy użytkownik wyraża zgodę na połączenie. Sposobem na uniknięcie części w/w problemów jest przestrzeganie kilku podstawowych zasad jak możliwie długie kody PIN i nie korzystanie ze standardowych ustawień interfejsu. Pyzatym warto zaimplementować wcześniej wspomniane mechanizmy zabezpieczeń danych, stosowane typowo w sieciach komputerowych. Jeśli nie musimy to nie utrzymujmy cały czas interfejsy włączonego tylko uruchamiajmy go w czasie jego realnego wykorzystania i dotyczy to szczególnie telefonów komórkowych do których przez aktywny interfejs można się włamać i sczytywać dane oraz zmieniać wpisy. Wspominając o podstawowych zasadach bezpiecznego wykorzystania standardu Bluetooth, pamiętajmy ze ma on krótki zasięg wiec potencjalny napastnik musi być w naszym pobliżu wiec jeśli możemy to utrudniajmy mu to jak najbardziej. Bibliografia: 1. http://members.hellug.gr/nmav/papers/other/bluetooth%20security.pdf 2. Karygianis T., Owens L., Wireless Network, Gaithersburg 2002 3. Miller B., Bisdikian C., Uwolnij się od kabli Bluetooth, Wydawnictwo Helion, Gliwice 2003 9