Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Bezpieczeństwo sieci Wi-Fi – część 7. (WPA/WPA2-Enterprise: 802.1X i EAP)
Wstęp do WPA/WPA2-Enterprise
Jest nim wprowadzenie czytelników w tę tematykę, omówienie podstawowych zagadnień i dostarczenie wiedzy stanowiącej bazę do dalszej lektury. Tylko na temat konfiguracji serwerów RADIUS napisano wiele książek i nie zamierzam tu zajmować się ich streszczeniem.
Omówiłem już mechanizmy bezpieczeństwa standardu 802.11i – WPA/WPA2. Standard 802.11i realizuje uwierzytelnianie przy pomocy standardu 802.1X i protokołu EAP, ale dopiero WPA/WPA2-Enterprise pokazuje spektrum możliwości, jakie udostępnia nam ta technologia:
- kontrola dostępu,
- zaawansowane mechanizmy uwierzytelniania,
- zarządzanie użytkownikami czy rozliczalność
są najważniejszymi cechami WPA/WPA2-Enterprise.
WPA/WPA2-Personal wykorzystywał 802.1X i EAP w jednym z najprostszych wariantów, używając współdzielonego klucza (metody EAP-PSK). W obu wariantach stosowane są te same algorytmy szyfrowania transmisji, takie jak TKIP czy CCMP oraz mechanizmy zarządzania kluczami, taki jak 4-way handshake.
1. Standard 802.1X
Kilka podstawowych informacji dotyczących 802.1X zostało już wstępnie przedstawionych w poprzedniej części cyklu, dotyczącej standardu 802.11i. W tej sekcji przyjrzymy się szczegółom. Chociaż standard 802.1X jest obecny w obu wersjach WPA/WPA2 (Personal oraz Enterprise), to dopiero wersja Enterpriste pozwala na użycie go w pełnym zakresie. Najważniejsze cechy, które nie są dostępne w wersji Personal, to:
- zastosowanie jednej z wielu metod uwierzytelniania oferowanych w ramach protokołu EAP;
- stosowanie indywidualnych danych dostępowych do sieci dla każdego użytkownika/urządzenia;
- zastosowanie indywidualnych dynamicznych kluczy szyfrujących dla każdej sesji, każdego użytkownika; uwierzytelnianie infrastruktury, do której następuje podłączenie użytkownika, co pozwala uniknąć ataków z podstawionym AP;
- łatwe odłączenie danego użytkownika od sieci: nie jest wymagana zmiana klucza dostępowego dla wszystkich pozostałych użytkowników, ponieważ unieważniamy dane dostępowe tylko pojedynczego użytkownika, co nie ma wpływu na pozostałych;
- uwierzytelnienie dokonywane przed podłączeniem użytkownika do sieci;
- zastosowanie otwartej architektury bezpieczeństwa, możliwość dodawania nowych metod uwierzytelniania bez potrzeby aktualizacji urządzeń sieciowych;
- korzystanie z serwerów uwierzytelniania opartych na standardzie RADIUS, co pozwala na:
- zarządzanie użytkownikiem w sieci, np. podłączenie go do wybranego VLAN-u, kontrola czasu, godzin dostępu itp.,
- realizację księgowania (zliczania czasu połączenia, przesłanych danych itp.) w przypadku stosowania limitów.
Standard 802.1X określa mechanizm uwierzytelniania, metody kryptograficznej obsługi kluczy szyfrujących i zarządzania użytkownikami w ramach danej sieci. 802.1X bazuje na protokole EAP (Extensible Authentication Protocol) zdefiniowanym w RFC 3748. Jak już wspomniałem w poprzedniej części cyklu, EAP stanowi tylko „framework”, a jego implementacja wymaga wybrania i użycia konkretnej metody uwierzytelniania. Zastosowanie 802.1X nie jest ograniczone tylko do sieci bezprzewodowych – protokół ten może być także stosowany do autoryzacji dostępu do sieci przewodowych czy usług sieciowych. Jest to możliwe ponieważ 802.1X definiuje metody opakowania komunikacji EAP w sposób odpowiedni dla danego środowiska. Zastosowanie EAP w środowisku Ethernet LAN określane jest jako EAPOL (EAP over LAN) i tym wariantem będziemy zajmować się w kontekście WPA/WPA2-Enterprise.
W ramach infrastruktury działającej z wykorzystaniem 802.1X można zdefiniować następujące urządzenia:
- supplicant – urządzenie, które chce zostać uwierzytelnione i podłączone do sieci (stosowanie pojęcia klient w tym przypadku może być mylące, co zostanie wyjaśnione poniżej);
- urządzenie dostępowe (authenticator, AP lub network access server (NAS)) – urządzenie realizujące kontrolę dostępu w ramach 802.1X (często określane jako klient, ponieważ to urządzenie jest klientem dla serwera uwierzytelniającego);
- serwer uwierzytelniający – urządzenie/oprogramowanie dokonujące sprawdzenia poprawności danych uwierzytelniających i decydujący o podłączeniu do sieci oraz nadaniu odpowiednich atrybutów; EAP wspiera różne serwery uwierzytelniające, lecz najczęściej stosowany jest RADIUS.
W dużym uproszczeniu przepływ danych jest następujący:
- Supplicant wysyła prośbę o przyznanie dostępu do urządzenia dostępowego wraz z odpowiednimi danymi uwierzytelniającymi.
- Urządzenie dostępowe nawiązuje połączenie z serwerem uwierzytelniającym w celu weryfikacji otrzymanych danych i transparentnie przekazuje komunikację 802.1X pomiędzy suplikantem a serwerem uwierzytelniającym.
- Serwer uwierzytelniający zwraca do urządzenia dostępowego swoją decyzję, która, jeśli jest pozytywna, zawiera wszystkie niezbędne dane konfiguracyjne.
- Jeśli decyzja była pozytywna, urządzenie dostępowe dopuszcza nowe urządzenie do sieci. Jeśli decyzja była negatywna, prośba o podłączenie jest odrzucana.
W praktyce w przypadku rozbudowanych sieci duża liczba AP jest podłączana do tzw. kontrolerów, które pełnią wówczas rolę urządzenia dostępowego, a AP są tylko interfejsami. W tym wypadku rolę urządzenia dostępowego pełni kontroler obsługujący jednocześnie wiele AP.
2. EAP
Protokół EAP został szczegółowo zdefiniowany w dokumencie RFC 3748 jako mechanizm uwierzytelniania o ogólnym charakterze. Zatem definiuje oraz wspiera różne metody uwierzytelniania, bez konieczności wstępnej negocjacji stosowanej metody. EAP definiuje jak mają być wymieniane komunikaty pomiędzy zaangażowanymi stronami. Standardowo działa w warstwie łącza danych, w związku z czym nie wymaga adresacji IP. Bardzo często EAP jest też stosowany w sieciach bazujących na DHCP i w tym przypadku urządzenie nie ma możliwości pobrania adresu, dopóki nie zostanie uwierzytelnione.
EAP nie definiuje szczegółowych zasad bezpieczeństwa oraz sposobu realizacji procesów uwierzytelnienia – ich bezpieczeństwo jest bezpośrednio zależne od wybranej metody uwierzytelniania. Serwer uwierzytelniający decyduje o akceptowanych metodach, a urządzenie dostępowe zajmuje się tylko ich opakowywaniem.
Protokół EAP posiada wbudowane mechanizmy pozwalające na eliminację pojawiających się duplikatów pakietów i ponowną retransmisję zagubionych pakietów. Za retransmisję pakietów odpowiedzialny jest serwer uwierzytelniający, natomiast suplikant musi zajmować się eliminacją duplikatów pakietów.
Metody EAP
Aktualnie istnieje ok. 40 różnych metod uwierzytelniania wraz z wieloma własnościowymi metodami producentów.
Do podstawowych i najpopularniejszych (za wyjątkiem MD5) metod uwierzytelniania, które wspiera EAP, należą:
- EAP-MD5 (Message-Digest 5),
- EAP-TLS (Transport Level Security),
- EAP-TTLS (Tunneled TLS),
- EAP-PEAP (Protected EAP).
Nowszymi i jeszcze stosunkowo mało rozpowszechnionymi metodami są:
- EAP-FAST (Flexible Authentication via Secure Tunneling),
- EAP-PWD (EAP Using only Password).
Omówimy teraz krótko cechy charakterystyczne powyższych metod.
1. EAP-MD5
Wprowadzona jako pierwsza, najprostsza i najszybsza metoda EAP, dająca minimalny poziom zabezpieczenia. Uwierzytelnianie następuje z wykorzystaniem nazwy użytkownika oraz hasła. Klient jest uwierzytelniany przez przesłanie niezaszyfrowanego loginu oraz hashu md5 z hasła oraz tzw. „challenge” otrzymanego od serwera.
Rozwiązanie to jest podatne na przechwycenie transmisji oraz wykonanie ataku siłowego na hasło zaszyfrowane md5. Dodatkowo brak jest mechanizmów uwierzytelniania infrastruktury, do której następuje połączenie, czyli nie ma ochrony przed atakami „man in the middle”.Ta metoda jest uznawana za powszechnie „złamaną” i nie należy jej stosować.2. EAP-TLS
EAP-TLS, uznawane za jedną z najbezpieczniejszych metod EAP, jest wspierane przez wszystkich dostawców sprzętu. Do 2005 roku była to jedyna metoda wymagana do uzyskania certyfikacji WPA przyznawanej przez Wi-Fi Aliance. EAP-TLS realizuje obustronnie uwierzytelnienie tożsamości: zarówno suplikanta, jak i serwera, wykorzystując infrastrukturę klucza publicznego (PKI, Public Key Infrastructure). Obie strony muszą posiadać poprawne certyfikaty X.509, a użytkownik nie stosuje hasła.
Bezpieczeństwo transmisji zapewniane jest przez zastosowanie szyfrowania TLS. Ze względu na zastosowanie PKI implementacja tej metody jest stosunkowo skomplikowana.3. EAP-TTLS
Metoda EAP-TTLS jest oparta na EAP-TLS i oferuje podobny poziom bezpieczeństwa, lecz nie wymaga od użytkownika posiadania certyfikatu X.509. Infrastruktura PKI jest używana tylko do uwierzytelnienia serwera, a klienta uwierzytelnia się tradycyjną metodą, podając login i hasło. Takie rozwiązanie znacząco zmniejsza poziom skomplikowania przy implementacji. Po uwierzytelnieniu serwera, pomiędzy suplikantem, a serwerem zestawiany jest bezpieczny tunel TLS, w którym dopiero przekazywane są dane uwierzytelniające, takie jak login i hasło. W tunelu nie ma potrzeby stosowanie dodatkowych metod ochrony danych użytkownika. Uwierzytelnianie odbywa się otwartym tekstem, ponieważ ochronę przed posłuchaniem zapewnia tunel TLS.
Niestety nie wszystkie systemy operacyjne wspierają natywnie tę metodę, np. w przypadku systemu Windows dla wersji poniżej 8. konieczne było doinstalowanie dodatkowego oprogramowania.4. EAP-PEAP
Ta metoda jest bardzo podobna w działaniu do EAP-TTLS i została zaproponowana jako jej alternatywa. Jest często stosowania w środowiskach opartych na infrastrukturze Microsoftu. Analogicznie jak w EAP-TTLS dane uwierzytelniające chronione są przez zastosowanie tunelu TLS. Metoda jest dość rozpowszechniona i szeroko implementowana, będąc drugą najpopularniejszą po EAP-TLS.
Możliwe są dwa podtypy PEAP:
- PEAPv0/EAP-MSCHAPv2
- PEAPv1/EAP-GTC.
PEAPv0/EAP-MSCHAPv2, popularnie zwana PEAP-em (większość użytkowników
nie zdaje sobie sprawy, że istnieją dwie odmiany PEAP-a). Określenie PEAPv0 dotyczy metody związanej z tożsamością zewnętrzną, natomiast metoda EAP-MSCHAPv2 wiąże się z tożsamością wewnętrzną (obie tożsamości zostaną szczegółowo omówione w części poświęconej protokołowi RADIUS). Niektórzy producenci sprzętu dopuszczają zamiast MSCHAPv2 metodę EAP-SIM (EAP for GSM Subscriber Identity).
PEAPv1/EAP-GTC (Generic Token Card) to standard zdefiniowany przez CISCO. Protokół ten przenosi tzw. wezwanie w postaci tekstu wygenerowanego przez serwer uwierzytelniania oraz odpowiedź powstającą na podstawie tzw. tokenu bezpieczeństwa.EAP-GTC nie chroni danych uwierzytelniania, a PEAPv1 nie ma wsparcia w systemach Microsoft Windows.5. EAP-FAST
Ta metoda została zaprojektowana jako zastępstwo dla EAP-LEAP, której bezpieczeństwo okazało się niewystarczające. Jest bardzo podobna do EAP-TTLS z tą różnicą, że pozwala na zapisanie stanu bezpieczeństwa tunelu TLS w celu późniejszego odtworzenia. Przygotowaniem do odtworzenia stanu jest dystrybucja plików PAC (Protected Access Credentials). Takie pliki muszą być przygotowane indywidualnie dla użytkownika i ich dystrybucja jest jednym z głównych problemów EAP-FAST.
Jedną z metod rozwiązania tego problemu, jest dystrybucja automatyczna odbywająca się w ramach pierwszego połączenia, kiedy klient bezprzewodowy nawiązuje połączenie z użyciem identyfikatora i hasła (podobnie jak w TTLS czy PEAP). Po zweryfikowaniu tożsamości klient otrzymuje plik PAC i od tego momentu może już pracować, bazując na nim. Pozwala na to skrócenie czasu oraz zmniejszenie liczby przesyłanych danych do uwierzytelnienia.Brak systemowej implementacji w systemach Microsoft oraz brak darmowego klienta, którego można by doinstalować, powoduje, że popularność tej metody jest stosunkowo niewielka.6. EAP-PWD
Wszystkie opisane powyżej metody (za wyjątkiem MD5) wymagają zastosowania technik kryptografii wykorzystujących PKI oraz wymagają zestawienia bezpiecznego tunelu. Bezpieczeństwo tunelu jest najważniejszym elementem zapewniającym poufność transmisji.
W EAP-PWD nie ma tunelu, lecz w zamian za to stosuje się złożone metody kryptograficzne i komunikację hasło–odzew. Obie strony muszą mieć dostęp do identycznego tokena uwierzytelniającego (np. hasła w postaci niezaszyfrowanej lub zaszyfrowanej jakąś typową metodą skrótu).
W czasie komunikacji żadna ze stron nie ujawnia informacji pozwalającej na odtworzenie tokena, ale to, co przekazuje, wystarcza na potwierdzenie, że dysponuje tym samym tokenem, co strona przeciwna.
W EAP-PWD nie ma potrzeby wstępnej weryfikacji serwera, ponieważ sam proces uwierzytelnienia klienta jest bezpieczny. Ogromną zaletą tej metody jest prostota konfiguracji, ponieważ użytkownik musi podać tylko login i hasło.Klucze szyfrujące
Standard 802.11i implementuje tzw. 4-way-handshake, w ramach którego wymieniane są odpowiednie dane kryptograficzne niezbędne, wraz z kluczem PMK, do zapewnienia silnej ochrony przed podsłuchaniem transmisji. Jak już wspominałem w poprzedniej części, w przypadku WPA/WPA2-Personal, klucz PMK jest tworzony z wykorzystaniem PSK. Niezmienność i współdzielenie PSK stanowią właśnie największą wadę WPA/WPA2-Personal. W przypadku wersji Enterprise klucz PMK jest ustawiany dynamicznie przez serwer Radius w ramach sesji EAP i przesyłany do suplikanta oraz AP. Dzięki temu za każdym razem stosowany jest inny, odpowiednio silny klucz oraz istnieje możliwość zmiany klucza w czasie trwania sesji. Klucz jest także przesyłany do klienta w bezpieczny sposób, uniemożliwiając podsłuchiwanie.
Bezpieczeństwo
Przedstawiony powyżej opis jednoznacznie pokazuje, że standard 802.1X daje możliwość wyeliminowania wielu zagrożeń w sieciach komputerowych. Dużo zależy od wyboru odpowiednich metod uwierzytelniania EAP.
Potencjalne zagrożenia, na które może być narażona infrastruktura WPA/WPA2-Enterprise, to:
- ataki słownikowe na dane uwierzytelniające użytkownika – jeśli nie zostanie wybrana jedna z „niezalecanych metod” (takich jak MD5), dane użytkownika są transmitowane w tunelach TLS i jeśli tylko użytkownik nie akceptuje nieznanych certyfikatów, nie ma możliwości wydobycia danych użytkownika z podsłuchanej sesji TLS;
- ataki na klucze szyfrujące transmisji bezprzewodowej – dzięki zastosowaniu unikatowych, silnych i dynamicznych kluczy szyfrujących sesji, wraz z CCMP, dziś należy przyjąć, że przeprowadzenie takiego ataku jest praktycznie niemożliwe;
- ataki „man-in-the-middle” na dane dostępowe i klucze szyfrujące – dzięki zastosowaniu mechanizmów uwierzytelniania infrastruktury, do której następuje podłączenie, nie ma możliwości przeprowadzenia takiego ataku bez kompromitacji fragmentów infrastruktury PKI. Dodatkowo serwery uwierzytelniające użytkowników są skonfigurowane tak, aby także uwierzytelniać urządzenia dostępowe, zabezpieczając przed podstawieniem fałszywego AP, który będzie tylko pośredniczył w przekazywaniu ruchu pomiędzy serwerem a suplikantem. Podobnie tunele TLS zapewniają ochronę przed podsłuchaniem transmisji.
Należy pamiętać, że EAP-MD5 czy EAP-LEAP są uznawane za złamane i że należy ich unikać, gdyż stwarzają zagrożenie dla całej infrastruktury.Metody takie jak EAP-TLS, EAP-TTLS czy EAP-PEAP są odpowiednio rozpowszechnione i bezpieczne dzięki zastosowaniu tuneli TLS.
Podsumowanie
Różnorodność metod EAP wynika z potrzeby wsparcia dla wielu systemów realizujących zadanie uwierzytelniania w różny sposób oraz z wykorzystaniem przeróżnych bazy danych. Okazuje się, że nie ma możliwości zastosowania niektórych metod z pewnymi systemami, np. ze względu na niezgodność formatów baz danych.
Na szczęście dla większości rozwiązań można dobrać odpowiednio bezpieczną metodę EAP.
Bibliografia
- FreeRadius – Beginner’s Guide, Dirk van der Walt, Packt Publishing Ltd, 2011
- Dokumentacja projektu Eduroam (PL)
- Standard 802.1X-2004
- Extensible Authentication Protocol, RFC 3748
–Adam Smutnicki
Bezpieczeństwo sieci Wi-Fi – część 1 (wstęp)
Bezpieczeństwo sieci Wi-Fi – część 2. (wprowadzenie do nasłuchiwania ruchu)
Bezpieczeństwo sieci Wi-Fi – część 3. (WEP)
Bezpieczeństwo sieci Wi-Fi – część 4. (Standard 802.11i czyli WPA i WPA2)
Bezpieczeństwo sieci Wi-Fi – część 5. (testowanie WPA i WPA2)
Bezpieczeństwo sieci Wi-Fi – część 6. (bezpieczeństwo WPS)
Bezpieczeństwo sieci Wi-Fi – część 8. (WPA/WPA2-Enterprise: RADIUS)
Świetny wpis dla kogoś kto nie miał wcześniej do czynienia z WPA-Enterprise, przystępnie napisane różnice między LEAP, TLS, TTLS, MD5 itd. Wielkie dzięki!
Popieram.
Genialny autor. Jasność przyjazność tekstu. Nawet dla laika jak ja.
Serdecznie pozdrawiam,
X.
świetny artykuł. Bardzo rzeczowy i treściwy . Dla osoby która dopiero zaczyna konfigurację lub lekturę tych metod jest to bardzo dobre kompendium wiedzy w pigułce, które w prostych słowach wyjaśnia najważniejsze różnice w funkcjonowaniu uwierzytelniania wpa enterprise
Dawno nie widziałem tak dobrego tekstu!
Świetny artykuł! Dzięki waszym artykułom zabezpieczyłem swoją sieć WiFi za pomocą WPA2 Enterprise z wykorzystaniem serwera RADIUS! Chociaż fajnie napisane wszystko wytłumaczone, i tak udało mi się zabezpieczyć swoją sieć :)