Bezpieczeństwo w 802.11 WEP (Wired Equivalent Privacy) W standardzie WEP stosuje się algorytm szyfrujący RC4, który jest symetrycznym szyfrem strumieniowym (z kluczem poufnym). Szyfr strumieniowy korzysta z pewnego ciągu bitów zwanego strumieniem klucza (key-stream). Długość strumienia równa jest długości szyfrowanej wiadomości (rys.1). Rys.1 Szyfrowanie (odszyfrowanie) przy użyciu szyfru strumieniowego Większość szyfrów strumieniowych korzysta z względnie krótkiego klucza poufnego. Algorytm RC4 zamienia klucz przy pomocy generatora liczb pseudolosowych (PRNG) na strumień klucza (rys.2). Rys.2. Proces powstawania szyfrogramu. Bezpieczeństwo szyfru strumieniowego zależy całkowicie od losowości strumienia klucza całkowicie bezpieczny jest szyfr z kluczem jednorazowym. Bezpieczeństwo to spełnienie trzech podstawowych założeń: Poufność zapewnia szyfrowanie treści ramki (nagłówek nie jest szyfrowany)
Integralność (przesyłane dane nie są zamienione przez kogoś niepowołanego) zapewnia stosowanie sekwencji kontrolnych ICV (Integrity Check Value) Wiarygodność (autentyczność źródła danych) zapewnia proces uwierzytelnienia stacji przez sieć (niestety nie ma czynności odwrotnej, tzn. uwierzytelnienia sieci przez stację). WEP zapewnia jednocześnie poufność i integralność danych (rys.3). Rys.3 Działanie WEP Przed zaszyfrowaniem treść ramki poddana jest kontroli integralności, w wyniku czego powstaje suma kontrolna ICV. Działanie to przypomina powstanie FCS celem wykrycia błędu. Nie jest to działanie bezpieczne, należałoby użyć tzw. funkcji mieszających (hash function), w wyniku których zamiana treści przez napastnika daje wynik kontroli integtalności niemożliwy do przewidzenia. Ponieważ WEP powstał w czasie, gdy zabroniony był eksport z USA aplikacji, w których wykorzystywano klucze o długości większej od 40, część poufna klucza ma długość 40, co jest słabością rozwiązania. Niektórzy producenci stosują dłuższe klucze, nawet 128- bitowe. Nowa długość klucza jest przedmiotem prac standaryzacyjnych. 40-bitowy klucz prywatny WEP oraz 24-bitowy wektor inicjalizujący IV tworzy 64- bitowy klucz RC4. Algorytm RC4 przetwarza klucz w strumień klucza o długości treści ramki i 24-bitowego sygnalizatora Integrity Value (ICV). Wektor inicjalizujący IV umożliwia szyfrowanie kolejnych ramek innymi kluczami RC4, co podnosi poziom bezpieczeństwa. Klucz poufny też powinien być często zmieniany, co jest dużym problemem dystrybucji tych kluczy. W praktyce administratorzy sieci zmieniają je ręcznie, przez co stają się dostępne dla lokalnych użytkowników. Aby zwiększyć liczbę zmian kluczy poufnych, w WEP mamy zestaw 4 kluczy domyślnych (default keys), a dla transmisji P2P można stosować parę kluczy odwzorowywanych (mapped keys). Informacja o tym zawarta jest w polu Key ID nagłówka IV (rys.4). W przypadku stosowania kluczy odwzorowywanych pole Pad i Key ID zawierają same zera.
Rys.4 Ramka WEP Reasumując protokół WEP nie zapewnia należytego bezpieczeństwa poprzez trudności w częstej zmianie kluczy, krótkość klucza poufnego, zbyt prosty mechanizm integralności i zawodny mechanizm uwierzytelniania.. Dane muszą być zabezpieczane w warstwach wyższych (VPN oraz IPsec działają na obrzeżach sieci, a problem dotyczy środka sieci, w naszym przypadku bezprzewodowej). Rozwiązaniem są intensywne prace standaryzacyjne nad zastosowaniem specyfikacji 802.1x w środowisku bezprzewodowym, niestety również bez możliwości uwierzytelnienia sieci przez użytkownika. Protokół EAP (Extensible Authentication Protocol) 802.1x opiera się na rozszerzonym protokole uwierzytelniania EAP, wyspecyfikowanym do współdziałania z protokołem internetowym PPP. EAP jest to proste kapsułkowanie działające dla dowolnego mechanizmu uwierzytelnienia na każdej warstwie łącza danych (rys.5). Rys.5 Architektura EAP Rys.6 Format ramki EAP
Wymiana danych w protokole EAP to sekwencja pytań (Reuest) i odpowiedzi. (Response) o formacie przedstawionym na rys.7. Jednostka uwierzytelniająca wysyła żądanie do systemu oczekującego na przyznanie dostępu i w zależności od otrzymanej odpowiedzi przydziela dostęp do zasobów lub nie. Rys.7 Ramki Request i Response w protokole EAP Dane interpretowane są odpowiednio do znaczenia pola Type. Wartości 4 lub większe pola Type wskazują metodę uwierzytelnienia: Kod Type=1: Identity Sprawdzenie tożsamości jest żądaniem wstępnym pytanie-odpowiedź, może być wysyłana wielokrotnie, aby użytkownik mógł poprawić ew. literówki. Kod Type=2: Notification Np. informacja o tym, że wkrótce wygaśnie ważność hasła (pojawia się na ekranie u użytkownika), wysyłana przez stronę uwierzytelniającą. Użytkownik po prostu potwierdza. Kod Type=3: NAK Odpowiedź od użytkownika na ramkę z polem Type 4 lub większym, sugerującą metodę uwierzytelnienia, gdy użytkownik nie obsługuje tej metody. Kod Type=4: MD-5 Challenge Wezwanie do ujawnienia tożsamości (Challenge) (protokół CHAP, specyfikacja RFC 1994). Informacja w polu danych musi być poprawnie zaszyfrowana przy użyciu wspólnego klucza poufnego. Wszystkie implementacje EAP muszą ten typ
obsługiwać, jednak zawsze przy pomocy ramki typu NAK systemy mogą wybrać inną metodę uwierzytelnienia. Kod Type=5: One-time password (OTP) System haseł jednorazowych opisany jest w RFC 1938. Wymiana danych w pytaniu i odpowiedzi przeprowadzana jest przy pomocy słownika OTP. Kod Type=6: Generic Token Card Uproszczony OTP: w polu danych w pytaniu umieszczony jest token, który w odpowiedzi jest skopiowany. Kod Type=13: TLS) Protokół Transport Layer Security, opisany w RFC 2716, umożliwia wzajemne uwierzytelnienie. Sekwencja pytań i odpowiedzi zakończona jest ramką Success lub Failure (rys.8). Rys.8. Ramki Success i Failure w protokole EAP W implementacjach EAP wymiana ramek (rys.9) może być stosowana wielokrotnie, co pozwala na poprawę błędów przez użytkowników. Rys.9 Przykładowa wymiana ramek podczas uwierzytelniania przy użyciu EAP
802.1X Do sieci LAN został przez IEEE przystosowany protokół uwierzytelniania stosowany w internetowym protokole PPP (Point to Point Protocol). Powstała specyfikacja (jeszcze nie standard) określana symbolem 802.1X i nazwana Kontrola dostępu do sieci na podstawie uwierzytelniania portów (rys.10). Rys.10 Architektura 802.1X PAE Port Authentication Entities Jednostka uwierzytelniająca pełni taką samą rolę jak serwer dostępowy w zwykłych sieciach typu dial-up.
Ramka EAPOL Rys.11 Format ramki EAPOL
Przykładowa wymiana danych 802.1X Rys.12 przedstawia najczęstszy przypadek poprawnego uwierzytelnienia (różnica z EAPużytkownik może rozpocząć wymianę ramek). W przykładzie używa się serwera Radius (przypadek ten opisuje RFC 2869). Jest to mechanizm uwierzytelnienia z translacją EAP (po stronie użytkownika frond end) na RADIUS po stronie serwera (back end).
Rys.12 Typowa wymiana ramek EAPOL Microsoft wbudował funkcje 802.1X do systemu operacyjnego Windows XP, żądania podania tożsamości wymagają reakcji użytkownika. Metoda uwierzytelnienia EAP-TLS (obustronne uwierzytelnienie) jest bardzo atrakcyjna w sieciach bezprzewodowych, eliminuje bowiem pojawienie się fałszywego AP, wymaga jednak obecności serwera RADIUS.
802.1X w bezprzewodowych sieciach LAN Zgodnie z 802.11i logicznym portem jest skojarzenie (powiązanie) stacji i AP. Zakończona powodzeniem wymiana ramek Association Request i Association Response jest sygnalizowana modułowi obsługującemu 802.1X. Przed udanym uwierzytelnieniem moduł ten odrzuca cały ruch niezgodny z 802.1X. Rys.13 Wymiana EAPOL w sieciach 802.11 Ramka EAPOL-Key może być użyta do dynamicznej dystrybucji kluczy WEP, co zwiększy częstotliwość zmian kluczy i co odbywa się pewnym łączem po pozytywnym procesie uwierzytelnienia. Ulepszenia 801.11 możliwe dzięki 802.1X W sieciach korporacyjnych możliwa jest rezygnacja z Mobile IP na rzecz dynamicznie przydzielanym (dzięki serwerowi RADIUS) VLAN. Dzięki zastosowaniu 802.1X możliwe jest wprowadzenie tzw. punktów wielodostępowych (multiprovider AP). Fizyczna (droga) struktura sieci bezprzewodowej dzielona jest dla różnych dostawców usług (różne SSID i rozliczne VLAN), tworząc logicznie różne sieci z różnymi kryteriami uwierzytelnienia.