Sieci bezprzewodowe WLAN (Wireless LAN) Na wykładzie zostaną omówione radiowe sieci bezprzewodowe, wykorzystujące standardy z grupy IEEE 802.11. Zalety WLAN Łatwy montaż. Brak kabli połączeniowych (mniejsze koszty instalacji, istotne np. w zabytkowych budynkach). Łatwość przemieszczania komputerów. Łatwość włączania nowych komputerów do sieci. Przy użyciu anten kierunkowych można pokryć siecią znaczny obszar. Wady Podatność na osłabianie sygnału i zakłócenia. Często stosunkowo słabe zabezpieczenia (jeśli nie włączone, źle skonfigurowane lub nieobecne w starszych standardach). Starsze standardy 802.11a, 802.11b, 802.11g mają mniejszą szerokość pasma (i przepustowość) w porównaniu z nowymi technologiami Ethernet (Gigabit Ethernet, 10Gb Ethernet). Jednak technologia 802.11n daje przepustowość rzędu 300Mbit/s a nowy standard 802.11ac (zatwierdzony w styczniu 2014r.) daje w zależności od konfiguracji przepustowość rzędu 1Gbit/s i więcej (nawet 6-7GBit/s). Standardy grupy 802.11 Pierwszy ważny standard to Standard IEEE 802.11 Wireless LAN (WLAN), określany też jako Wi- Fi, lub bezprzewodowy Ethernet. Ta ostatnia nazwa jest niepoprawna i myląca, gdyż WLAN jest zupełnie inną technologią niż Ethernet, używa innych ramek, innego mechanizmu dostępu do nośnika i innego mechanizmu zapobiegania kolizjom. W ramach projektu 802.11 powstały tzw. Task Groups oznaczane literami alfabetu. Z pracami tych grup wiążą się różne standardy WLAN. Najważniejsze standardy to IEEE 802.11, 802.11b, 802.11a, 802.11g, 802.11i, 802.11n, 802.11ac. IEEE 802.11 Częstotliwość 2,4 GHz. Maksymalna przepustowość 2Mb/s, przy większych odległościach 1Mb/s. Odległości między urządzeniami łączącymi się ok. 30-60 m. w pomieszczeniach zamkniętych, do kilkuset metrów na otwartej przestrzeni (zależne od producenta). Przy użyciu punktów dostępowych (koncentratorów Access Point AP) maksymalna odległość zwiększa się dwukrotnie. 1
IEEE 802.11b Częstotliwość 2,4 GHz (kompatybilny wstecz z 802.11). Ze względu na to, że dużo różnych urządzeń bezprzewodowych (np. bezprzewodowe telefony stacjonarne, domowe nadajniki wideo) pracuje z wykorzystaniem częstotliwości 2,4 GHz, jest tu stosunkowo duża podatność na zakłócenia. Maksymalna przepustowość do 11Mb/s, odległość do 25 m. w pomieszczeniach zamknię- tych. Dla odległości powyżej 35 m. przepustowość spada do 5Mb/s i mniejszej (2-1 Mb/s). Na otwartych przestrzeniach zasięg 150-250 m. IEEE 802.11g Częstotliwość działania 2,4 GHz (kompatybilny wstecz z 802.11b). Do niedawna był to bardzo popularny popularny standard, ale wypiera go 802.11n. Maksymalna przepustowość wynosi 54 Mb/s. IEEE 802.11a Częstotliwość 5 GHz. Niekompatybilny z 802.11, 802.11b. Mniej podatny na zakłócenia. Przepustowość 6-54Mb/s. Przez długi czas nie był popularny, ale stanowi podstawę dla najnowszych, opracowywanych teraz wersji, 802.11ac i 802.11ad. IEEE 802.11f Dotyczy komunikacji między punktami dostępowymi. IEEE 802.11i Dotyczy zabezpieczeń i uwierzytelniania. IEEE 802.11n Obecnie bardzo popularny. Zatwierdzony oficjalnie we wrześniu 2009. Standard obejmuje prędkości, do 300, a nawet 600 Mb/s. Do tego celu wykorzystana jest technologia Multiple Input Multiple Output (MIMO) wykorzystująca wiele anten do nadawania/odbioru sygnału, czyli sygnał jest nadawany z kilku źródeł i odbierany przez kilka odbiorników (standardowo 2x2). IEEE 802.11ac Nowy standard, zatwierdzony w styczniu 2014. ~ 1GBit/s do prawie 7GBit/s. Opis np. w M.S.Gast 802.11ac: A Survival Guide. Książkę można czytać za darmo on- line (lub kupić kopię) tutaj: http://chimera.labs.oreilly.com/books/1234000001739/index.html. 2
Dostęp do nośnika Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA) unikanie kolizji (nasłuchiwanie przed nadawaniem). Technika CSMA/CD (taka jak w Ethernecie) nie jest używana m.in. ze względu na duże różnice mocy sygnału nadawanego i odbieranego. W celu zredukowania prawdopodobieństwa kolizji może być stosowany opcjonalny mechanizm RTS/CTS. RTS/CTS A B C Okręgi na rysunku obrazują zakresy działania punktów dostępowych (Access Point AP). Komputer z miejsca A może komunikować się z B, ale nie może bezpośrednio z C. C może komunikować się z B i taka komunikacja może być niewidoczna dla A. Zatem C może nadawać do B w tym samym czasie co A do B i nastąpi kolizja ramek. W celu wyeliminowania wyżej opisanego efektu niewidocznego węzła (A nie widzi C i na odwrót) w sieci może być stosowana technika RTS/CTS. Przed wysłaniem ramki danych nadawana jest krótka ramka RTS (request to send), zawiera ona m.in. informację o długości danych, które będą wysyłane. Węzeł odbierający (może to być pośredniczący w transmisji koncentrator AP) po usłyszeniu RTS wysyła o ile jest wolny pakiet CTS (clear to send). Po poprawnym zakończeniu transmisji (tzn. zgadza się CRC), odbiorca przesyła ramkę potwierdzenia ACK. Zaleta takiego rozwiązania to odporność na błędy; wada: powoduje zmniejszenie wykorzystania szerokości pasma dla przesyłanych danych, ze względu na przesyłanie ramek RTS, CTS, ACK. Problem związany z niewidocznymi węzłami może występować również między komputerami dołączonymi do jednego AP, ale wykorzystującymi inne standardy 802.11b oraz 802.11g (inny standard sygnału). W komunikacji między komputerami a koncentratorami AP (punktami dostępowymi) spotyka się pojęcia: Up- Link od komputera do urządzenia typu punkt dostępowy oraz Down- Link od punktu dostępowego do komputera hosta. Struktury WLAN IBSS (Independent Basic Service Set), Ad- Hoc or Peer- to Peer Networking. Każdy komputer wyposażony jest w radiową kartę sieciową. Wszystkie stacje robocze są równorzędne, nie ma dodatkowych urządzeń pośredniczących w transmisji. 3
BSS (Basic Service Set). Sieć z koncentratorem AP punktem dostępowym (Hub AP Access Point). Komputery nie komunikują się bezpośrednio, tylko za pośrednictwem AP. Komputer nadający wysyła ramkę do koncentratora, następnie koncentrator przesyła ją do komputera docelowego. Koncentrator może być połączony z siecią przewodową np. Fast Ethernet. Na ogół AP są specjalizowanymi urządzeniami, jednak można też spotkać programowe AP są to komputery z odpowiednią kartą sieciową i uruchomionym odpowiednim oprogramowaniem. ESS (Extended Service Set), Multiple Access Points, Extended Access Points. Sieć z połączonymi koncentratorami AP (kilka połączonych sieci BSS). Połączenie koncentratorów może być realizowane technologiami kablowymi lub może być radiowe. W przypadku połączeń radiowych odległość między koncentratorami może wynosić kilkadziesiąt kilometrów przy użyciu specjalnych anten. Możliwe jest przemieszczanie komputerów między różnymi segmentami ESS obsługiwanymi przez różne koncentratory (roaming), obszary pokrycia segmentów powinny częściowo zachodzić na siebie. Po wyjściu ze strefy zarządzanej przez jeden koncentrator AP komputer przemieszczający się jest automatycznie przekazywany kolejnemu koncentratorowi. Przy użyciu technologii radiowych można również łączyć dwie kablowe sieci LAN (są to połączenia LAN- LAN) lub dwa komputery. Specjalizowane urządzenia służące do łączenia mają zasięg do kilkudziesięciu kilometrów przy użyciu specjalnych zewnętrznych anten. Często urządzenia te zawierają w sobie filtr pakietów, umożliwiają zdalny monitoring i konfigurowanie z wykorzystaniem protokołu SNMP, zawierają ruter, serwer DHCP i serwer NAT. Bezpieczeństwo sieci WLAN Standardy i protokoły bezpieczeństwa: WEP, WPA, IEEE 802.11i. Wykorzystywane protokoły szyfrowania: symetryczny strumieniowy RC4 symetryczny blokowy AES asymetryczny RSA Faza uwierzytelniania WEP IEEE 802.11 definiuje dwa podtypy uwierzytelniania: Open System oraz Shared Key często zwanym także WEP- based authentication. Podtypy te określone są przez wartość pola Podtyp, ramek zarządzających o typie uwierzytelnianie. Ponadto ramki te muszą być przesyłane w trybie unicast (ramka wysyłana jest tylko do jednego odbiorcy), ponieważ faza uwierzytelniania odbywa się tylko pomiędzy dwoma urządzeniami (multicast jest niedozwolony). 4
Open System Authentication Każdy klient żądający uwierzytelniania przy użyciu tego właśnie mechanizmu może otrzymać dostęp, o ile urządzenie obsługujące żądanie działa w trybie Open System Authentication. Algorytm ten jest domyślnym algorytmem uwierzytelniającym. Proces składa się z dwóch kroków sekwencji wymiany ramek. Pierwszy krok, to potwierdzenie tożsamości i prośba o uwierzytelnianie. Krok drugi, to rezultat procesu jeśli pomyślny, to urządzenie powinno otrzymać dostęp. Wymieniane są następujące ramki: Ramka I o Typ: Zarządzająca o Podtyp: Uwierzytelnianie o Atrybuty: Identyfikacja Algorytmu Uwierzytelniania = Open System Tożsamość Stacji Żądającej (adres urządzenia w polu SA) Numer Sekwencji Transakcji Uwierzytelniania = 1 Dane Zależne Od Algorytmu Szyfrowania (Brak Danych) o Kierunek wiadomości: Od urządzenia żądającego do urządzenia obsługującego Ramka II (Końcowa) o Typ: Zarządzająca o Podtyp: Uwierzytelnianie o Atrybuty: Identyfikacja Algorytmu Uwierzytelniania = Open System Numer Sekwencji Transakcji Uwierzytelniania = 2 Dane Zależne Od Algorytmu Szyfrowania (Brak Danych) Rezultat uwierzytelniania o Kierunek wiadomości: Od urządzenia obsługującego do urządzenia żądającego Shared Key Authentication Zamierzeniem uwierzytelniania WEP jest udowodnienie punktowi dostępowemu, że urządzenie mobilne ubiegające się o dostęp posiada sekretny klucz. Klucz ten nazywa się kluczem dzielonym, gdyż jego identyczna kopia znajduje się w AP. Zakłada się, iż ów klucz dostarczany jest do urządzeń mobilnych bezpiecznym kanałem, całkowicie niezależnym od 802.11 (np. przeniesiony na pendrivie). Podczas procesu uwierzytelniania z kluczem, tzw. challenge text zarówno w postaci jawnej jak i potem zaszyfrowanej jest przesyłany pomiędzy urządzeniem mobilnym a punktem dostępowym. To ułatwia nieautoryzowane odkrycie pseudolosowego strumienia bajtów, generowanego przez RC4, dla pary klucz/wektor inicjacji (patrz dalsza część opisu) odpowiadającej za szyfrowanie ramek. Dlatego zaleca się, aby implementacja WEP unikała użycia tej samej pary klucz/wektor inicjacji dla kolejnych ramek. Proces uwierzytelniania z kluczem dzielonym można opisać jako sekwencję wymiany czterech ramek. Początkowo urządzenie mobilne żąda procesu uwierzytelniającego od 5
punktu dostępowego. Następnie AP wysyła losową liczbę zwaną wyzwaniem (ang. challenge text), która jest liczbą binarną długości 128 bajtów. W kolejnym kroku, urządzenie mobilne szyfruje tę liczbę posiadanym kluczem przy użyciu WEP RC4 i odsyła zaszyfrowaną ramkę z powrotem do nadawcy. Ponieważ AP pamięta wcześniej wysłaną liczbę, może sprawdzić czy przysłany rezultat został zaszyfrowany poprawnym kluczem, poprzez odszyfrowanie jej i porównanie obu tekstów jawnych. Zgodność oznacza, że para urządzeń dzieli ten sam klucz i faza uwierzytelniania kończy się sukcesem. W omawianej sekwencji wymieniane są następujące ramki: Ramka I o Typ: Zarządzająca o Podtyp: Uwierzytelnianie o Atrybuty: Tożsamość Stacji Żądającej Identyfikacja Algorytmu Uwierzytelniania = Shared Key Numer Sekwencji Transakcji Uwierzytelniania = 1 Dane Zależne Od Algorytmu Szyfrowania (Brak Danych) o Kierunek wiadomości: Od urządzenia żądającego do urządzenia obsługującego Przed wysłaniem drugiej ramki, urządzenie obsługujące powinno wygenerować challenge text. Ramka II o Typ: Zarządzająca o Podtyp: Uwierzytelnianie o Atrybuty: Identyfikacja Algorytmu Uwierzytelniania = Shared Key Numer Sekwencji Transakcji Uwierzytelniania = 2 Dane Zależne Od Algorytmu Szyfrowania = challenge text Rezultat uwierzytelniania o Kierunek wiadomości: Od urządzenia obsługującego do urządzenia żądającego W przypadku, gdy rezultat uwierzytelniania nie jest sukcesem, powyższa ramka powinna być ostatnią ramką w sekwencji uwierzytelniania, a pole zawierające wyzwanie nie jest wtedy określone. Ramka III o Typ: Zarządzająca o Podtyp: Uwierzytelnianie o Atrybuty: Identyfikacja Algorytmu Uwierzytelniania = Shared Key Numer Sekwencji Transakcji Uwierzytelniania = 3 Dane Zależne Od Algorytmu Szyfrowania = zaszyfrowany challenge text pochodzący z Ramki II o Kierunek wiadomości: Od urządzenia żądającego do urządzenia obsługującego W tym momencie, urządzenie obsługujące proces uwierzytelniania próbuje odszyfrować zawartość Ramki III. Jeżeli suma kontrolna WEP ICV (patrz niżej) jest poprawna, urządzenie powinno porównać wartość odszyfrowaną z wartością wysłaną. Jeśli wartości się zgadzają, 6
powinna zostać wysłana Ramka IV z rezultatem uwierzytelniania pomyślny, w przeciwnym wypadku, pole to powinno zawierać kod statusu niepomyślny. Ramka IV (Końcowa) o Typ: Zarządzająca o Podtyp: Uwierzytelnianie o Atrybuty: Identyfikacja Algorytmu Uwierzytelniania = Shared Key Numer Sekwencji Transakcji Uwierzytelniania = 4 Dane Zależne Od Algorytmu Szyfrowania = rezultat uwierzytelniania (jest to pole o stałej długości zawierające wartości pomyślny lub niepomyślny ) o Kierunek wiadomości: Od urządzenia obsługującego do urządzenia żądającego Klucze WEP Istnieje dużo zamieszania wynikającego z nieścisłości w nazewnictwie kluczy występujących w standardzie. Często ten sam rodzaj klucza występuje pod wieloma nazwami, co wprowadza wiele nieporozumień, zwłaszcza jeżeli standard został zmodyfikowany i opublikowany w dokumentacji przez producenta urządzenia. W oryginalnym 802.11 istnieją tylko dwa rodzaje kluczy WEP: Default keys oraz Key mapping keys charakteryzujących się następującymi cechami: Ustalona długość: zazwyczaj 40 lub 104 bity. Statyczne: brak zmian w wartości klucza za wyjątkiem rekonfiguracji. Dzielone: access points i urządzenia mobilne posiadają kopie tego samego klucza. Symetryczne: Ten sam klucz służy do szyfrowania i deszyfrowania. Wyróżnia się dwa podejścia w sposobie użycia kluczy WEP. W pierwszym przypadku, wszystkie urządzenia mobilne oraz punkt dostępowy używają jednego zestawu kluczy. Wtedy klucze te nazywane są Default keys. W drugim przypadku, każde urządzenie mobilne posiada klucz, który jest unikatowy. Oznacza to, że klucz używany pomiędzy każdym urządzeniem mobilnym i AP, jest przypisany do konkretnego połączenia i nie jest znany innym urządzeniom. Klucze te nazywane są Key mapping keys. Default Keys IEEE 802.11 określa, że w każdym urządzeniu mobilnym powinny być zdefiniowane cztery klucze default. Oczywiście, urządzenia mogą działać poprawnie mając wprowadzony tylko jeden klucz, ale zaleca się, aby miały zdefiniowane wszystkie cztery. Dzięki temu mogą pracować w trybie, który nazywa się kierunkowym użyciem klucza. Posiadając więcej niż jeden zdefiniowany klucz, należy określić tzw. klucz aktywny, który używany jest do szyfrowania ramek wychodzących. Identyfikowany jest on odpowiednio przez 0, 1,2 lub 3. Przykładowo AP może transmitować używając default key 0. Nie istnieje jednak żaden przymus, aby urządzenie mobilne transmitowało swoje dane również przy użyciu klucza 0. 7
Aktywnym kluczem przypisanym do urządzenia mobilnego może być przykładowo klucz o numerze 2. Klucze szyfrujący i deszyfrujący muszą być takie same (co do wartości) w obu urządzeniach, aby proces szyfrowania i deszyfrowania przebiegał pomyślnie. Zatem AP odszyfruje ramkę przysłaną przez urządzenie mobilne również używając klucza 2. Uważa się, że kierunkowe użycie klucza jest bezpieczniejsze, ponieważ utrudnia nie tyle podsłuchiwanie ruchu, co preparowanie i podsyłanie fałszywych wiadomości. Nie wystarczy złamać już tylko jeden klucz. Przykładowo można zadecydować, aby punkt dostępowy zawsze wysyłał dane używając kluczy 0 i 1, a urządzenia mobilne kluczy 2 i 3. Daje to w sumie cztery różne klucze, potrzebne do udanej transmisji. Należy jeszcze zaznaczyć, iż odbiorca musi zostać powiadomiony o numerze klucza, który został użyty do zakodowania wiadomości. Informacja ta umieszczana jest w polu KeyID bits dla każdej szyfrowanej ramki. Key Mapping Keys Podstawowym zadaniem tego rodzaju kluczy jest wyposażenie każdego urządzenia mobilnego we własny klucz. Tego typu rozwiązanie sprawdza się w dużych sieciach WLAN, zarówno przy kontroli bezpieczeństwa, jak i przy administracji siecią. W przypadku, kiedy istnieje podejrzenie, że klucz został złamany, po prostu zdejmuje się go z listy kluczy obsługiwanych na konkretnym punkcie dostępowym. To bardzo ułatwia pielęgnowanie sieci. Istnieje jednak kilka utrudnień w tym rozwiązaniu, które uczyniły WEP Key mapping keys mało popularnym. Po pierwsze, każde urządzenie używające unikalnego klucza potrzebuje mieć także klucz typu default. Chodzi o transmisję multicast czyli wysyłanie wiadomości z AP do wszystkich, którzy słuchają. Skoro każde urządzenie miałoby inny klucz, nie byłoby możliwe wysłanie multicast. Dlatego wiadomości rozgłaszane w trybie multicast szyfrowane są poprzez default key. Każde urządzenie mobilne oprócz aktywnego klucza, którym koduje transmisje musi także mieć default key pasujący do klucza, który znajduje się w AP. Zarządzanie i konfiguracja punktem dostępowym jest o wiele bardziej złożona przy użyciu Key mappings keys, ponieważ musi on posiadać listę kluczy wszystkich urządzeń, które obsługuje. To czasami oznacza bardzo długą listę i potencjalnie dużą pamięć, którą trzeba przeznaczyć na zapamiętanie tego wszystkiego. Dodatkowo, kiedy AP otrzymuje ramkę, musi najpierw odnaleźć odpowiedni klucz w tablicy, bądź na liście kluczy (w WEP dzieje się to poprzez skojarzenie MAC adresu nadawcy), aby móc odszyfrować wiadomość. Ten sam algorytm przeprowadzany jest w drugą stronę, kiedy AP chce wysyłać ramki do poszczególnych urządzeń. W WEP proces ten jest dosyć niewygodny i mało wydajny. Zarządzanie kluczami w WPA (WPA będzie opisany później) jest o wiele bardziej efektywne. Faza szyfrowania i deszyfrowania WEP Każda porcja danych, która ma zostać wysłana przez WLAN musi być odpowiednio przygotowana. Zanim zostanie przesłana pod adres docelowy, zostanie podzielona na mniejsze porcje (ramki) danych, jeśli jej pierwotny rozmiar był zbyt duży. Ramki w sieciach bezprzewodowych WLAN mają maksymalny rozmiar równy 2346 bajtom, z czego 2312 bajtów jest dostępnych jako nośnik danych. Jednak większość sieci WLAN połączona jest z sieciami LAN opartymi o Ethernet. Z tego właśnie powodu, praktycznie 8
wszystkie implementacje punktów dostępowych nie przepuszczają (poddają fragmentacji) ramek większych niż 1518 bajtów. Po procesie podziału każda ramka poddawana jest procesowi przygotowania i szyfrowania WEP. Pierwszym krokiem w fazie szyfrowania jest dodanie na koniec ramki danych, kilku bajtów zwanych Integrity Check Value (ICV). Integrity Check Value (ICV) Celem ICV jest ochrona przed nieautoryzowaną modyfikacją danych przesyłanych pomiędzy urządzeniami. Zarówno w szyfrowanych jak i nie szyfrowanych wiadomościach kontrola jest konieczna, także do wykrywania błędów podczas transmisji. Cztero- bajtowa wartość CRC dodawana jest do każdej ramki, tuż przed jej wysłaniem. Nawet jeśli pojedynczy bit wiadomości został zmieniony, urządzenie odbierające zauważy, że suma kontrolna nie pasuje i odrzuci wiadomość. Trzeba jednak zaznaczyć, że nie stanowi to żadnej ochrony przed zmianami celowymi, dokonywanymi zazwyczaj przez osoby nieautoryzowane, atakujące sieć. ICV jest bardzo podobny do CRC poza faktem, że wartość ICV obliczana jest i dodawana jeszcze przed zaszyfrowaniem ramki. Po zaszyfrowaniu do ramki wstawiana jest konwencjonalna wartość CRC. Pomysł wziął się stąd, że uważano, iż skoro wartość ICV jest zakodowana, to żaden atakujący nie będzie w stanie ponownie jej przeliczyć, podczas próby podmienienia wiadomości (niestety, to założenie nie sprawdziło się, ponieważ znaleziono sposoby na podmienianie ICV). Kiedy ICV zostanie już dodane, ramka staje się gotowa do zaszyfrowania. Najpierw jednak, system musi wybrać tzw. Initialization Vector (IV) i uczynić go prefiksem sekretnego klucza WEP. Initialization Vector (IV) oraz Szyfr Strumieniowy WEP używa szyfru strumieniowego RC4 do szyfrowania ramek. Na razie niech stanowi czarną skrzynkę, która na wejście otrzymuje jeden bajt ze strumienia danych i produkuje jeden bajt na wyjściu w taki sposób, że strumień wyjściowy danych wygląda na losową sekwencję bajtów. Wyróżnia się dwie podstawowe fazy: inicjacji, w której szyfr inicjowany jest sekretnym kluczem wykorzystywanym do przygotowania drugiej fazy szyfrującej, kiedy dane są kodowane. W protokole WEP, obie fazy są uruchamiane dla każdej pojedynczej ramki. Każda ramka traktowana jest jako osobne źródło danych, co zapewnia, że jeżeli jedna ramka została utracona, to kolejne mogą wciąż zostać zdekodowane. Odszyfrowanie danych przebiega w ten sam sposób co szyfrowanie. Po co IV? W tym miejscu należy ponownie rozważyć klucz szyfrujący WEP. Jak zostało wcześniej wspomniane, oryginalnie długości klucza wynoszą 40 lub 104 bity. Często jednak, zwłaszcza w dokumentacji producenta, można się spotkać z odniesieniem do 64 lub 128 bitów. Te brakujące 24 bity, to właśnie wektor inicjacji. Został on stworzony, ponieważ istnieje problem z kluczami niezmiennymi co do wartości. Inicjując RC4 kluczem A i na wejście podając tekst jawny B, otrzyma się tekst zaszyfrowany C. Jednak, kiedy następnym razem zainicjować RC4 tym samym kluczem A, to dla tego samego tekstu jawnego B, otrzyma się ten sam tekst zaszyfrowany C! To jest bardzo złe, gdyż jeśli atakujący dostrzeże taką sytuację, to wie, że oryginalne dane właśnie się powtórzyły. Np. adresy IP występują 9
zawsze w tym samym miejscu wiadomości, więc domyślając się do kogo jest ona skierowana, w łatwy sposób odzyskać można przynajmniej fragment strumienia szyfrującego, wygenerowanego przez RC4. Rozwiązaniem jest IV. Zamiast używać tylko stałego klucza WEP do inicjacji RC4, używa się jego połączenia wraz z 24- bitowym kluczem inicjującym, który zmienia się dla każdej kolejnej ramki. Bity IV są losowe dla każdej ramki, zatem klucz inicjujący algorytm RC4 również się zmienia za każdym razem. Dzięki temu, te same dane szyfrowane są na wiele sposobów. Warto zaznaczyć, że IV nie jest tajny. Wysyłany jest w sposób otwarty tak, aby odbiorca wiedział, którego IV ma użyć do odszyfrowania przekazu. Panował pogląd, że znajomość samego wektora inicjacji nie stanowi zagrożenia. Zaznacza się jednak, iż chcąc, aby cały proces był bezpieczny, ten sam IV nigdy nie powinien się powtórzyć i być ponownie użyty z tym samym sekretnym kluczem WEP. Niestety IV jest tylko długości 24 bitów. 24 bity oznaczają liczbę z zakresu od 0 do 16 777 216, co daje niecałe 17 milionów możliwych wartości wektora inicjacji. Jeśli założymy, że pracowity punkt dostępowy przy prędkości 11Mbps otrzymuje oraz wysyła w sumie około 700 ramek średniej wielkości (500 bajtów) na sekundę. Skoro każda ramka dostaje inny IV, to wszystkie możliwe kombinacje zostaną wyczerpane w kilka godzin. Oznacza to, że aby pozostać bezpiecznym w tym przypadku, należałoby zmieniać klucz szyfrujący w punkcie lub punktach dostępowych codziennie, co na ogół jest niewykonalne. Proces szyfrowania i deszyfrowania Mając wyznaczony IV, można zainicjować algorytm szyfrujący RC4 oraz zaszyfrować dane. Z przodu ramki dodaje się dane zawierające IV oraz identyfikator sekretnego klucza WEP 0, 1, 2 lub 3, którym wiadomość została zaszyfrowana. Przed wysłaniem pozostaje dołączyć z przodu ramki MAC header, w którym bit WEP ustawiony jest na 1 oraz CRC na jej końcu. Sekretny klucz WEP jest konkatenowany z IV, a rezultat wysyłany jako wejście (seed) dla WEP RC4. RC4 dostarcza strumień k (Key Stream) o długości równej liczbie bajtów danych, które mają zostać wysłane plus 4 bajty (ICV jest dołączane do danych i także szyfrowane stąd dodatkowe 4 bajty). Dla tekstu jawnego (tak określa się nie zaszyfrowane dane) przeprowadzane są dwa procesy. Pierwszy, to wyliczenie ICV, drugi, to jego konkatenacja ze świeżo wyliczonym ICV. Ostatni krok, to połączenie strumienia k z uprzednio spreparowanym tekstem jawnym poprzez operację XOR. WEP RC4 jest krytycznym elementem całego procesu. Przetwarza on relatywnie krótki sekretny klucz WEP, w pseudolosowy strumień k o arbitralnie ustalonej długości. Potrzebuje do tego IV, którego wartość determinuje wartość strumienia k. Każdy nowy wektor inicjacji, to nowy zalążek (seed) i nowy strumień k. Seed to 64- bitowa (lub 128- bitowa) sekwencja, w której bity od 0 23 to odpowiadają bitom wektora inicjacji, natomiast bity od 24 63 (lub 24 127), to sekretny klucz WEP. Proces deszyfrowania wiadomości przebiega według tej samej reguły. Zaczyna się od momentu przybycia wiadomości zaszyfrowanej. Następnie IV, odczytany z wiadomości, oraz odpowiedni klucz powinien zostać użyty do wygenerowania pseudolosowej sekwencji k, koniecznej do odszyfrowania wiadomości. Poddanie tekstu 10
zaszyfrowanego operacji XOR ze strumieniem k, prowadzi do otrzymania tekstu jawnego oraz ICV. W kolejnym kroku proces odszyfrowywania powinien zostać zweryfikowany, poprzez uruchomienie algorytmu wyliczania ICV na otrzymanym tekście jawnym oraz porównaniu wyniku z wartością ICV, dołączoną przez nadawcę. Jeśli wartości się zgadzają, oznacza to, że faza deszyfrowania zakończyła się pomyślnie. Jeśli wartości się różnią, warstwa zarządzająca powinna zostać o tym powiadomiona. Wi-Fi Protected Access (WPA, WPA-2) WPA został stworzony, aby załatać luki w protokole WEP. Usprawnieniu uległo kilka krytycznych miejsc. Po pierwsze WPA został zaprojektowany do pracy z IEEE 802.1x definiującym bezpieczny i wydajny serwer uwierzytelniania, który rozpowszechnia różne klucze, do każdego z użytkowników. Dane szyfrowane są nadal przy użyciu RC4 i szyfru strumieniowego, ale wymagany jest klucz 128 bitowy, a wektor inicjacji (IV) jest dwukrotnie większy, czyli długości 48 bitów. Kolejnym ważnym usprawnieniem jest TKIP, czyli Protokół Tymczasowej Integralności Klucza, który dynamicznie zmienia klucze podczas pracy systemu. Połączenie TKIP z dwukrotnie większym IV likwiduje stosunkowo prostą możliwość odgadnięcia klucza (key recovery attack), jaką dawał WEP. Ponadto zrezygnowano z CRC na korzyść tzw. MIC, czyli Message Integrity Code, który dodatkowo zawiera licznik ramek, co z kolei uodparnia go na klasę ataków zwanych replay attacks. Podsumowując, poprzez zwiększenie rozmiaru kluczy, liczby kluczy będących w użyciu, dodanie systemu bezpiecznej weryfikacji wiadomości oraz usprawnienie procesu uwierzytelniania, protokół WPA uczynił włamanie do sieci WLAN o wiele trudniejszym. Najnowszy standard bezpieczeństwa IEEE 802.11i zawiera w sobie WPA jako integralną część. IEEE 802.11i, WPA-2 Od odkrycia rażących luk w bezpieczeństwie WEP, do powstania IEEE 802.11i minęło wiele czasu. Gdy ukończono prace nad standardem bezpieczeństwa i, definiował on nowy typ sieci WLAN o nazwie Robust Security Network (RSN), czyli Sieć o Solidnym Bezpieczeństwie. Jest to zwyczajna sieć WLAN, ale różnice w stosunku do sieci opartych o WEP rozpoczynają się w momencie, kiedy klient chce uzyskać dostęp i stać się autoryzowanym użytkownikiem sieci. Zarówno access point, jak i klient mobilny muszą spełniać rygorystyczne wymogi bezpieczeństwa. Ponieważ wielu użytkowników z czasem będzie chciało używać tego typu sieci i zmodyfikować swój sprzęt, IEEE 802.11i zdefiniowało Transitional Security Network (TSN), wewnątrz których systemy RSN i WEP mogą razem współpracować. Kiedy protokół WEP przestał się sprawdzać, a Task Group i rozpoczęła prace nad IEEE 802.11i, stało się oczywistym, że należy jak najszybciej załatać WEP. Większość producentów zdała sobie sprawę, że klienci po prostu nie wyrzucą swojego sprzętu Wi- Fi opartego o WEP, aby przestawić się na RSN. Trzeba było znaleźć rozwiązanie umożliwiające uaktualnienie produktów poprzez oprogramowanie. Doprowadziło to do opracowania TKIP, który także jest dozwolony (jako opcja) w RSN. Czekając na ratyfikacje IEEE 802.11i, Wi- Fi Alliance 11
zaadoptował nowe podejście do bezpieczeństwa, oparte na RSN, które specyfikowało jednak tylko TKIP. Ten podzbiór RSN, nazwany został właśnie WPA. IEEE 802.11i RSN (a więc pełna wersja) bywa czasem nazywana WPA2. W tej wersji wymagane jest użycie algorytmu szyfrującego AES. Ponadto zmieniona została metoda zmiany kluczy z TKIP na CCMP. W roku 2008 pokazano słabe strony TKIP, CCMP uważany jest w dalszym ciągu za bezpieczny. Uwaga na WPS! Wi- Fi Protected Setup został pomyślany jako mechanizm uproszczonej konfiguracji urządzenia dołączającego się do AP na podstawie ośmiocyfrowego kodu. Mechanizm ten nie jest bezpieczny i należy go wyłączyć w AP. Ramki WLAN (według: Marcin Grabowski, praca magisterska nt. Bezpieczeństwo sieci WLAN) Podstawowy format ramek w IEEE 802.11 to tzw. ramki MAC. Pola Address od 1 do 4 reprezentują odpowiednio Adres Celu (ang. Destination Address), Adres Źródła (ang. Source Address), Adres Odbiorcy (ang. Receiver Address) oraz Adres Nadawcy (ang. Transmitter Address). Poszczególne typy ramek nie muszą używać wszystkich czterech pól adresowych. W zależności od wartości pola Typ i Podtyp wewnątrz pola Frame Control ramki MAC, rozróżnia się trzy typy takich ramek: Kontrolne (ang. Control) są to krótkie wiadomości asystujące przy przesyłaniu danych, a także mówiące urządzeniom, kiedy mają zacząć lub przestać nadawać oraz informujące, kiedy transmisja się nie powiodła. Zarządzające (ang. Management) są to wiadomości używane przez klientów i AP do negocjowania i ustalenia statusu. Przykładowo, klient używa ramek zarządzających prosząc o dostęp do AP. Danych (ang. Data) służą do przesyłania danych kiedy połączenie zostało ustanowione. Ramki typu Control 12
Ramka typu Control, definiowana jest poprzez odpowiednie wartości wewnątrz pola Frame Control. Pole to, występuje w każdej ramce i decyduje o jej właściwościach. Składa się z następujących części: Protocol Version, Type, Subtype, To DS, From DS, More Fragments, Retry, Power Management, More Data, Wired Equivalent Privacy (WEP), oraz Order. Wersja Protokołu to dwubitowe pole jest niezmienne co do swojej długości dla wszystkich odmian IEEE 802.11. Dla omawianego standardu wartość pola wynosi 0. Wszystkie pozostałe wartości są zarezerwowane i trzymane w zapasie. Wartość pola ma być zwiększona tylko wtedy, gdy pojawi się zasadnicza niekompatybilność pomiędzy nową odmianą a wcześniejszą edycją standardu. Urządzenie, które otrzyma ramkę z wersją protokołu wyższą od tej, którą obsługuje, automatycznie ma ją zignorować bez powiadamiania o tym nadawcy. Typ i Podtyp to pola o długości odpowiednio dwóch i czterech bitów. Oba pola wspólnie identyfikują typ ramki. Każdy z trzech typów ramek posiada dodatkowo kilka zdefiniowanych podtypów. Istnieje specjalne zestawienie dozwolonych kombinacji typów i podtypów, informujące urządzenie z jakim rodzajem i właściwościami ramki ma do czynienia. Do Systemu Rozpowszechniania (To Distribution System DS) to jednobitowe pole ustawione jest na 1 dla wszystkich ramek typu Dane przeznaczonych dla DS (obejmuje ramki wysyłane pomiędzy klientem a punktem dostępowym). We wszystkich pozostałych ramkach, pole to ma wartość 0. System Rozpowszechniania to zbiór zasobów, dzięki którym punkt dostępowy komunikuje się z innymi punktami dostępowymi, rozsyła ramki do urządzeń mobilnych w danej sieci, które skojarzyły się z innym AP (ang. frame forward) oraz zajmuje się wymianą ramek z siecią przewodową. Od Systemu Rozpowszechniania wartość tego jednobitowego pola ustawiana jest na 1 w momencie gdy ramka typu Dane została wygenerowana przez DS. Dla pozostałych ramek, wartość tego pola jest zawsze 0. Więcej Fragmentów to jednobitowe pole przyjmuje wartość 1 dla wszystkich ramek Danych lub Zarządzających, które stanowią ułamek większej informacji (wymienianej w warstwie MAC lub fizycznej). Oznacza, że następne ramki dostarczać będą kolejne porcje informacji, składającej się na pewną logiczną całość. Ponowienie Próby pole o długości 1 bitu, ustawiane jest na 1, gdy nastąpiła retransmisja tej samej ramki Danych lub Zarządzającej. Zarządzanie Mocą pole o długości jednego bitu, używane do oznajmiania stanu zarządzania poborem mocy, w jakim znajduje się karta sieciowa. Wartość pola pozostaje stała dla każdej ramki pochodzącej z danej stacji nadawczej, podczas sekwencji wymiany ramek i oznacza stan, w jakim znajdzie się urządzenie po udanym zakończeniu sekwencji. Wartość 1 oznacza, że stacja nadawcza przejdzie do trybu oszczędzania mocy (power- save mode), natomiast 0, że pozostanie aktywna. W ramkach wysyłanych z AP, pole to ma zawsze wartość 0. Więcej Danych to jednobitowe pole ustawione na 1, informuje stacje nadawczą, będącą w trybie oszczędzania mocy, że w punkcie dostępowym znajduje się co najmniej jedna 13
zakolejkowana ramka czekająca na wysłanie. W ten sposób AP informuje, że urządzenie, dla którego posiada ramkę lub ramki powinno przejść do stanu aktywnego 0, aby móc rozpocząć sekwencje przesyłania. WEP pole to przyjmuje wartość 1, jeśli ciało ramki (Frame Body) zawiera informacje, które zostały przetworzone przez algorytm WEP. Pole to ustawiane jest na 1 tylko wewnątrz ramek typu Dane oraz ramek Zarządzających o podtypie Uwierzytelnianie (Authentication). Kolejność to jednobitowe pole, przyjmuje wartość 1 dla ramek typu Dane, które zawierają informacje dla warstwy MAC, lub fragment tego, co wymaga przesyłania w ścisłej kolejności. We wszystkich innych przypadkach pole to przyjmuje wartość 0. Przykładowo, pole Frame Control dla ramki typu Control może być zainicjowane w następujący sposób: W zależności od pola Podtyp wyróżnia się trzy najbardziej powszechne podtypy ramek kontrolnych w 802.11: Request to Send (RTS) urządzenie wysyła ramkę RTS do innego urządzenia podczas pierwszej fazy dwustronnego handshake, zanim wyśle ramkę danych. Clear to Send (CTS) urządzenie odpowiada na RTS przy użyciu ramki CTS, jednocześnie zapewniając stacji żądającej zielone światło do rozpoczęcia wysyłania ramki danych. CTS zawiera znacznik czasu co powoduje, że wszystkie inne stacje nadawcze muszą poczekać z transmisją swoich ramek, na czas potrzebny do przesłania ramki przez stację, która otrzymała CTS. Acknowledgement (ACK) po otrzymaniu ramki danych, stacja odbiorcza używa procesu sprawdzania błędów w celu detekcji ewentualnych nieprawidłowości, zaistniałych podczas transmisji. Ramka ACK zostanie wysłana do stacji nadawczej, jeśli żadne błędy nie zostały wykryte. Jeśli stacja nadawcza nie otrzyma ACK po upływie określonego czasu, to nastąpi retransmisja ramki danych. Ramki typu Management Ramka zarządzająca służy do ustanawiania i podtrzymywania komunikacji pomiędzy urządzeniami. Składa się z następujących części: Frame Control, Duration, Destination Address, Source Address, Basic Service Set Identification, Sequence Control, Frame Body oraz Frame Check Sequence. 14
Kontrola Ramki pole to zostało omówione powyżej. Czas Trwania to 16 bitowe pole zawiera wartość czasu potrzebnego na przesłanie odpowiedniego typu ramki. Służy także do modyfikacji i uaktualniania czasów potrzebnych do przesyłania ramek, przez konkretne urządzenia współpracujące ze sobą wewnątrz sieci. Adres Celu (DA, Destination Address) to 48 bitowe pole zawierające adres ostatecznego odbiorcy ramki. Adres Źródła (SA, Source Address) to 48 bitowe pole zawierające adres źródła, które zainicjowało (utworzyło) ramkę. Podstawowa Identyfikacja Zbioru Usług BSSID to numer identyfikacyjny nadawany wszystkim stacjom należącym do tego samego BSS. Służy on do identyfikacji różnych sieci bezprzewodowych obejmujących ten sam teren. Kontrola Kolejności jest 16 bitowym polem złożonym z dwóch podpól: Numer Kolejności (Sequence Number) i Numer Fragmentu (Fragment Number). Numer Kolejności, to 12 bitowe pole wskazujące numer ramki. Numer ten przypisywany jest na podstawie licznika modulo 4096, począwszy od 0 i jest inkrementowany o 1 dla każdej ramki zawierającej kontrolę kolejności. W przypadku retransmisji ramki, numer pozostaje niezmieniony. Numer Fragmentu, to pozostałe 4 bity określające numer każdej ramki, będącej częścią większej informacji. Numer ten ustawiony na 0 oznacza, że ramka jest pierwszym i jedynym fragmentem przesyłanej informacji. Tak jak w przypadku Numeru Kolejności, pole to zwiększane jest o 1 i pozostaje niezmienione w przypadku retransmisji fragmentu. Ciało Ramki jest polem o zmiennej długości zawierającym informację specyficzną dla każdego typu i podtypu ramki. Minimalna długość tego pola to 0 bajtów, a maksymalna jest nie dłuższa niż 2312 bajtów. Sekwencja Kontrolna Ramki jest 32 bitowym polem zawierającym 32 bitową sumę kontrolną CRC, wyliczaną na podstawie długości pól wchodzących w skład MAC header oraz pola Frame Body. Wyróżnia się kilka podtypów ramek zarządzających w 802.11 (pole Podtyp wewnątrz pola Frame Control). Do najbardziej powszechnych zaliczyć można: Authentication inicjuje proces uwierzytelniania. Urządzenie wysyła ramkę do punktu dostępowego zawierającą swoją tożsamość, po czym następuje akceptacja albo odrzucenie. W zależności od rodzaju uwierzytelniania, AP odpowiada ramką uwierzytelniającą, akceptującą bądź odrzucającą, lub zawierającą tak zwane wyzwanie (ang. challenge text). Deauthentication urządzenie wysyła ramkę do innego urządzenia w momencie, gdy chce przerwać bezpieczną komunikację. Association request sygnalizuje punktowi dostępowemu potrzebę zaalokowania zasobów dla nowego urządzenia oraz synchronizację z urządzeniem. Urządzenie ubiegające się o zasób wysyła do AP ramkę zawierającą informacje o sobie, takie jak obsługiwane prędkości transmisji, czy identyfikator sieci, z którą chce być skojarzony. Po otrzymaniu takiej ramki, AP rozważa czy skojarzyć ze sobą urządzenie. W przypadku akceptacji żądania, zostaje zarezerwowana przestrzeń adresowa oraz przydzielony numer identyfikacyjny. Association response to odpowiedź wysyłana przez AP, zawierająca informacje o akceptacji bądź odrzuceniu żądania skojarzenia. W przypadku akceptacji, ramka niesie ze sobą m.in. obsługiwane prędkości transmisji oraz identyfikator skojarzenia. 15
Reassociation request jeśli urządzenie oddala się od skojarzonego ze sobą punktu dostępowego i znajduje inny AP o mocniejszym sygnale, może wysłać ten rodzaj żądania, aby ponownie się skojarzyć z nowym AP. Dzięki temu nowy punkt dostępowy zajmie się także przekierowaniem ramek danych, zakolejkowanych w starym AP i czekających na wysłanie do urządzenia. Reassociation response to ramka analogiczna do Association response, używana przez AP jako odpowiedź na żądanie ponownego skojarzenia. Disassociation wysyłana przez urządzenie, które chce przerwać skojarzenie z innym urządzeniem. Np. jeśli karta sieciowa otrzymuje sygnał do zakończenia pracy, może wtedy wysłać taką właśnie ramkę do punktu dostępowego. Dzięki temu AP wie, że może już zwolnić przydzieloną pamięć i usunąć identyfikator skojarzenia z tablicy identyfikatorów skojarzeń. Beacon to typ ramki wysyłany okresowo przez punkty dostępowe, mające na celu oznajmianie ich obecności i parametrów. Urządzenia takie jak karty sieciowe, nieustannie nasłuchują na wszystkich kanałach w poszukiwaniu właśnie ramek typu Beacon. Dzięki temu mogą wybierać, który AP jest najlepszy, aby się z nim skojarzyć. Probe request urządzenie wysyła ten typ ramki, kiedy potrzebuje uzyskać informacje od innego urządzenia. Przykładowo, karta sieciowa wyśle ten typ ramki, aby ustalić jakie punkty dostępowe są w jej zasięgu. Probe response kiedy urządzenie odbiera ramkę typu Probe request odpowiada na nią ramką typu Probe response, zawierającą informacje na temat jego możliwości, wspieranych prędkości transmisji, itp. Ramki typu Data IEEE 802.11 definiuje ramki danych, które przenoszą dane z wyższych warstw, zawierające np. strony internetowe czy pliki zapisane na dysku. Wszystkie pola występujące w ramce, za wyjątkiem dwóch pól adresowych zostały omówione wcześniej. Zawartość pól adresowych dla ramek danych zależy od wartości pól To DS i From DS., wchodzących w skład pola kontrolnego ramki. Wszystkie możliwe kombinacje przedstawia poniższa tabelka. 16
Adresy DA, SA oraz BSSID zostały opisane przy okazji omawiania ramek typu Management. Na wyjaśnienie zasługują Receiver Address (RA, Adres Odbiorcy) oraz Transmitter Address (TA, Adres Nadawcy). Adres Odbiorcy (Receiver Address RA)- to adres, kolejnego urządzenia pośredniego, które ma odebrać ramkę i przesłać ją dalej w kierunku urządzenia końcowego. Adres Nadawcy (Transmitter Address TA) to adres urządzenia, które wysłało ramkę, ale które nie było jej inicjatorem. Przykładowo, kombinacja bitów 1 i 1 w polach To DS oraz From DS oznacza ramkę danych przesyłaną pomiędzy punktami dostępowymi. Kiedy urządzenie mobilne wysyła ramkę do AP, wtedy zawiera ona adresy: SA = TA adres urządzenia, RA adres AP oraz DA adres ewentualnego odbiorcy. W przeciwnym kierunku będą to: SA adres oryginalnego źródła wiadomości, TA adres AP oraz RA adres urządzenia mobilnego. 17