1 Podstawy bezpieczeństwa w sieciach bezprzewodowych Protokół WEP - sposób działania, możliwe ataki, możliwe usprawnienia, następcy Filip Piękniewski, Wydział Matematyki i Informatyki UMK, członek IEEE
2 Sieci bezprzewodowe X X X X
2 Sieci bezprzewodowe X X X X ) ( ha ha!
2 Sieci bezprzewodowe X X X X ) ( ha ha!
3 WEP - historia
3 WEP - historia WEP - Wired Equivalent Privacy - jest częścią standardu IEEE 802.11
3 WEP - historia WEP - Wired Equivalent Privacy - jest częścią standardu IEEE 802.11 Został ratyfikowany w 1999 roku
3 WEP - historia WEP - Wired Equivalent Privacy - jest częścią standardu IEEE 802.11 Został ratyfikowany w 1999 roku W 2001 roku wykazano słabości algorytmu RC4 używanego przez WEP [Scott R. Fluhrer, Itsik Mantin, Adi Shamir, "Weaknesses in the Key Scheduling Algorithm of RC4". Selected Areas in Cryptography 2001: pp1 24.]
3 WEP - historia WEP - Wired Equivalent Privacy - jest częścią standardu IEEE 802.11 Został ratyfikowany w 1999 roku W 2001 roku wykazano słabości algorytmu RC4 używanego przez WEP [Scott R. Fluhrer, Itsik Mantin, Adi Shamir, "Weaknesses in the Key Scheduling Algorithm of RC4". Selected Areas in Cryptography 2001: pp1 24.] W 2003 wskazano na liczne słabości samego WEP [Nancy Cam- Winget, Russell Housley, David Wagner, Jesse Walker: Security flaws in 802.11 data link protocols. Communications of the ACM 46(5): 35-39 (2003)]
3 WEP - historia WEP - Wired Equivalent Privacy - jest częścią standardu IEEE 802.11 Został ratyfikowany w 1999 roku W 2001 roku wykazano słabości algorytmu RC4 używanego przez WEP [Scott R. Fluhrer, Itsik Mantin, Adi Shamir, "Weaknesses in the Key Scheduling Algorithm of RC4". Selected Areas in Cryptography 2001: pp1 24.] W 2003 wskazano na liczne słabości samego WEP [Nancy Cam- Winget, Russell Housley, David Wagner, Jesse Walker: Security flaws in 802.11 data link protocols. Communications of the ACM 46(5): 35-39 (2003)] W 2005 zademonstrowano złamanie klucza WEP publicznie dostępnymi narzędziami
4 Schemat WEP - szyfrowanie Initialization Vector (24 bit) Key (40 or 104 bit) DATA + CRC32 IV + Key (64 or 128 bit) XOR Encrypted DATA Key Scheduling Algorithm RC4 Cipher Pseudo Random Number Genrator Initialization Vector Encrypted DATA Output
4 Schemat WEP - szyfrowanie Initialization Vector (24 bit) Key (40 or 104 bit) DATA + CRC32 IV + Key (64 or 128 bit) XOR Encrypted DATA Key Scheduling Algorithm RC4 Cipher Pseudo Random Number Genrator Initialization Vector Encrypted DATA Output
4 Schemat WEP - szyfrowanie Initialization Vector (24 bit) Key (40 or 104 bit) DATA + CRC32 IV + Key (64 or 128 bit) XOR Encrypted DATA Key Scheduling Algorithm RC4 Cipher Pseudo Random Number Genrator Initialization Vector Encrypted DATA Output
4 Schemat WEP - szyfrowanie Initialization Vector (24 bit) Key (40 or 104 bit) DATA + CRC32 IV + Key (64 or 128 bit) XOR Encrypted DATA Key Scheduling Algorithm RC4 Cipher Pseudo Random Number Genrator Initialization Vector Encrypted DATA Output
4 Schemat WEP - szyfrowanie Initialization Vector (24 bit) Key (40 or 104 bit) DATA + CRC32 IV + Key (64 or 128 bit) XOR Encrypted DATA Key Scheduling Algorithm RC4 Cipher Pseudo Random Number Genrator Initialization Vector Encrypted DATA Output
4 Schemat WEP - szyfrowanie Initialization Vector (24 bit) Key (40 or 104 bit) DATA + CRC32 IV + Key (64 or 128 bit) XOR Encrypted DATA Key Scheduling Algorithm RC4 Cipher Pseudo Random Number Genrator Initialization Vector Encrypted DATA Output
4 Schemat WEP - szyfrowanie Initialization Vector (24 bit) Key (40 or 104 bit) DATA + CRC32 IV + Key (64 or 128 bit) XOR Encrypted DATA Key Scheduling Algorithm RC4 Cipher Pseudo Random Number Genrator Initialization Vector Encrypted DATA Output
4 Schemat WEP - szyfrowanie Initialization Vector (24 bit) Key (40 or 104 bit) DATA + CRC32 IV + Key (64 or 128 bit) XOR Encrypted DATA Key Scheduling Algorithm RC4 Cipher Pseudo Random Number Genrator Initialization Vector Encrypted DATA Output
5 Schemat WEP - deszyfrowanie Initialization Vector Encrypted DATA Input Encrypted DATA Initialization Vector Key IV + Key (64 or 128 bit) XOR DATA + CRC32 Key Scheduling Algorithm Pseudo Random Number Genrator GOOD DATA CRC OK? BAD DATA RC4 Cipher
5 Schemat WEP - deszyfrowanie Initialization Vector Encrypted DATA Input Encrypted DATA Initialization Vector Key IV + Key (64 or 128 bit) XOR DATA + CRC32 Key Scheduling Algorithm Pseudo Random Number Genrator GOOD DATA CRC OK? BAD DATA RC4 Cipher
5 Schemat WEP - deszyfrowanie Initialization Vector Encrypted DATA Input Encrypted DATA Initialization Vector Key IV + Key (64 or 128 bit) XOR DATA + CRC32 Key Scheduling Algorithm Pseudo Random Number Genrator GOOD DATA CRC OK? BAD DATA RC4 Cipher
5 Schemat WEP - deszyfrowanie Initialization Vector Encrypted DATA Input Encrypted DATA Initialization Vector Key IV + Key (64 or 128 bit) XOR DATA + CRC32 Key Scheduling Algorithm Pseudo Random Number Genrator GOOD DATA CRC OK? BAD DATA RC4 Cipher
5 Schemat WEP - deszyfrowanie Initialization Vector Encrypted DATA Input Encrypted DATA Initialization Vector Key IV + Key (64 or 128 bit) XOR DATA + CRC32 Key Scheduling Algorithm Pseudo Random Number Genrator GOOD DATA CRC OK? BAD DATA RC4 Cipher
5 Schemat WEP - deszyfrowanie Initialization Vector Encrypted DATA Input Encrypted DATA Initialization Vector Key IV + Key (64 or 128 bit) XOR DATA + CRC32 Key Scheduling Algorithm Pseudo Random Number Genrator GOOD DATA CRC OK? BAD DATA RC4 Cipher
5 Schemat WEP - deszyfrowanie Initialization Vector Encrypted DATA Input Encrypted DATA Initialization Vector Key IV + Key (64 or 128 bit) XOR DATA + CRC32 Key Scheduling Algorithm Pseudo Random Number Genrator GOOD DATA CRC OK? BAD DATA RC4 Cipher
6 Algorytm RC4 KSA for i from 0 to 255 S[i] := i j := 0 for i from 0 to 255 j := (j + S[i] + key[i mod keylength]) mod 256 swap(s[i],s[j]) PRNG i := 0 j := 0 while GeneratingOutput: i := (i + 1) mod 256 j := (j + S[i]) mod 256 swap(s[i],s[j]) output S[(S[i] + S[j]) mod 256]
7 Algorytm RC4 i := (i + 1) mod 256 j := (j + S[i]) mod 256 0 1 2 S[i]+S[j] i j S output=s[s[i]+s[j] mod 256]
8 Problemy z WEPem
8 Problemy z WEPem Klucz jest jednakowy dla wszystkich użytkowników
Problemy z WEPem Klucz jest jednakowy dla wszystkich użytkowników Wektor inicjujący powinien być inny dla każdego pakietu, powinien mieć w miarę losowe bity. Wiele urządzeń te zalecenia ignoruje, karty sieciowe często inkrementują wartości wektora zaczynając od zera po każdym zresetowaniu karty Filip Piękniewski 2006 8
Problemy z WEPem Klucz jest jednakowy dla wszystkich użytkowników Wektor inicjujący powinien być inny dla każdego pakietu, powinien mieć w miarę losowe bity. Wiele urządzeń te zalecenia ignoruje, karty sieciowe często inkrementują wartości wektora zaczynając od zera po każdym zresetowaniu karty Nawet gdyby wektor inicjujący był wyznaczany losowo dla każdego pakietu, to średnio po 5000 pakietów powinien się powtórzyć (paradoks dnia narodzin) Filip Piękniewski 2006 8
Problemy z WEPem Klucz jest jednakowy dla wszystkich użytkowników Wektor inicjujący powinien być inny dla każdego pakietu, powinien mieć w miarę losowe bity. Wiele urządzeń te zalecenia ignoruje, karty sieciowe często inkrementują wartości wektora zaczynając od zera po każdym zresetowaniu karty Nawet gdyby wektor inicjujący był wyznaczany losowo dla każdego pakietu, to średnio po 5000 pakietów powinien się powtórzyć (paradoks dnia narodzin) Posiadanie dwóch pakietów zakodowanych tą samą sekwencją kluczową pozwala poznać ich różnicę symetryczną. Mając kolekcję takich pakietów, można je poddać analizie statystycznej Filip Piękniewski 2006 8
Problemy z WEPem Klucz jest jednakowy dla wszystkich użytkowników Wektor inicjujący powinien być inny dla każdego pakietu, powinien mieć w miarę losowe bity. Wiele urządzeń te zalecenia ignoruje, karty sieciowe często inkrementują wartości wektora zaczynając od zera po każdym zresetowaniu karty Nawet gdyby wektor inicjujący był wyznaczany losowo dla każdego pakietu, to średnio po 5000 pakietów powinien się powtórzyć (paradoks dnia narodzin) Posiadanie dwóch pakietów zakodowanych tą samą sekwencją kluczową pozwala poznać ich różnicę symetryczną. Mając kolekcję takich pakietów, można je poddać analizie statystycznej CRC32 jest kodem liniowym. Atakujący może negować bity w zaszyfrowanym tekście, jednocześnie odpowiednio modyfikować zaszyfrowaną sumę kontrolną Filip Piękniewski 2006 8
9 Pasywny atak na WEP
9 Pasywny atak na WEP KSA w algorytmie RC4 posiada wiele słabości
9 Pasywny atak na WEP KSA w algorytmie RC4 posiada wiele słabości Znając początkowy fragment sekwencji kluczowej można wiele wywnioskować na temat początkowej permutacji
9 Pasywny atak na WEP KSA w algorytmie RC4 posiada wiele słabości Znając początkowy fragment sekwencji kluczowej można wiele wywnioskować na temat początkowej permutacji Odkrycie początkowej permutacji jest jeszcze łatwiejsze gdy znamy fragment klucza (wektor inicjujący)
9 Pasywny atak na WEP KSA w algorytmie RC4 posiada wiele słabości Znając początkowy fragment sekwencji kluczowej można wiele wywnioskować na temat początkowej permutacji Odkrycie początkowej permutacji jest jeszcze łatwiejsze gdy znamy fragment klucza (wektor inicjujący) Mając zestaw informacji o początkowej permutacji dla kilku znanych fragmentów klucza pozwala wydobyć informację o kolejnych bajtach klucza
9 Pasywny atak na WEP KSA w algorytmie RC4 posiada wiele słabości Znając początkowy fragment sekwencji kluczowej można wiele wywnioskować na temat początkowej permutacji Odkrycie początkowej permutacji jest jeszcze łatwiejsze gdy znamy fragment klucza (wektor inicjujący) Mając zestaw informacji o początkowej permutacji dla kilku znanych fragmentów klucza pozwala wydobyć informację o kolejnych bajtach klucza Im więcej bajtów klucza znamy, tym łatwiej wydobyć następne!!!
10 Pasywny atak na WEP
10 Pasywny atak na WEP Zbieramy dużą ilość pakietów (szczególnie interesujące są kolizje wektorów IV)
10 Pasywny atak na WEP Zbieramy dużą ilość pakietów (szczególnie interesujące są kolizje wektorów IV) Poddajemy zebrany materiał analizie statystycznej, wydobywamy początkowe fragmenty strumienia szyfrującego dla różnych IV
10 Pasywny atak na WEP Zbieramy dużą ilość pakietów (szczególnie interesujące są kolizje wektorów IV) Poddajemy zebrany materiał analizie statystycznej, wydobywamy początkowe fragmenty strumienia szyfrującego dla różnych IV Odtwarzamy kolejne fragmenty klucza WEP na podstawie wczesnych stanów permutacji
10 Pasywny atak na WEP Zbieramy dużą ilość pakietów (szczególnie interesujące są kolizje wektorów IV) BANALNE Poddajemy zebrany materiał analizie statystycznej, wydobywamy początkowe fragmenty strumienia szyfrującego dla różnych IV Odtwarzamy kolejne fragmenty klucza WEP na podstawie wczesnych stanów permutacji
10 Pasywny atak na WEP Zbieramy dużą ilość pakietów (szczególnie interesujące są kolizje wektorów IV) BANALNE Poddajemy zebrany materiał analizie statystycznej, wydobywamy początkowe fragmenty strumienia szyfrującego dla różnych IV PROSTE Odtwarzamy kolejne fragmenty klucza WEP na podstawie wczesnych stanów permutacji
10 Pasywny atak na WEP Zbieramy dużą ilość pakietów (szczególnie interesujące są kolizje wektorów IV) BANALNE Poddajemy zebrany materiał analizie statystycznej, wydobywamy początkowe fragmenty strumienia szyfrującego dla różnych IV PROSTE Odtwarzamy kolejne fragmenty klucza WEP na podstawie wczesnych stanów permutacji ELEMENTARNE
11 Pasywny atak na WEP
Pasywny atak na WEP Wymaga zdobycia średnio rzędu kilku milionów pakietów (co odpowiada zaledwie parunastu minutom nasłuchiwania obciążonego AP) Filip Piękniewski 2006 11
Pasywny atak na WEP Wymaga zdobycia średnio rzędu kilku milionów pakietów (co odpowiada zaledwie parunastu minutom nasłuchiwania obciążonego AP) Często klucz można odkryć znacznie wcześniej jeśli jest on jednym ze słabych kluczy, które inicjują zbyt prostą permutację początkową Filip Piękniewski 2006 11
Pasywny atak na WEP Wymaga zdobycia średnio rzędu kilku milionów pakietów (co odpowiada zaledwie parunastu minutom nasłuchiwania obciążonego AP) Często klucz można odkryć znacznie wcześniej jeśli jest on jednym ze słabych kluczy, które inicjują zbyt prostą permutację początkową Złożoność algorytmu odtwarzania klucza jest liniowa ze względu na jego długość, zatem zwiększanie długości klucza nie wpływa jakościowo na bezpieczeństwo Filip Piękniewski 2006 11
12 Aktywny atak na WEP Atakujący 1 Internet Atakujący 2
12 Aktywny atak na WEP Atakujący 1 Internet Atakujący 2
12 Aktywny atak na WEP Atakujący 1 Internet Atakujący zna całe sekwencje kodujące, może pominąć analizę statystyczną! Atakujący 2
12 Aktywny atak na WEP Atakujący 1 Internet Atakujący zna całe sekwencje kodujące, może pominąć analizę statystyczną! Atakujący 2
Aktywny atak na WEP Atakujący 1 Internet Atakujący zna całe sekwencje kodujące, może pominąć analizę statystyczną! Sieci radiowe muszą być za firewallem!!! Atakujący 2 Filip Piękniewski 2006 12
13 Atak na WEP
13 Atak na WEP I jeszcze jeden sposób ataku...
13 Atak na WEP I jeszcze jeden sposób ataku... Słownikowy...
Atak na WEP I jeszcze jeden sposób ataku... Słownikowy... Zaskakująco często klucz WEP=SSID, lub proste i krótkie słowo... Filip Piękniewski 2006 13
Atak na WEP I jeszcze jeden sposób ataku... Słownikowy... Zaskakująco często klucz WEP=SSID, lub proste i krótkie słowo... Filip Piękniewski 2006 13
14 Praktyka?
14 Praktyka?
Praktyka? 45-;10"5)<+3%/;05")/",#3+)51 8##.=>>1('3+/%?'%*?.9>!"#$%"&'($)*'"(+,#-.)/"01,#"&12.3214+(+4/",516"1('3+/% 7)"#85,"&'59(5):"$+'";/)"/;;1,,"#81"1('3+/%"453191,,")1#4+3* 45-;10"5)<+3%/;05")/",#3+)51 8##.=>>1('3+/%?'%*?.9> Filip Piękniewski 2006 14
Praktyka? 45-;10"5)<+3%/;05")/",#3+)51 8##.=>>1('3+/%?'%*?.9>!"#$%"&'($)*'"(+,#-.)/"01,#"&12.3214+(+4/",516"1('3+/% 7)"#85,"&'59(5):"$+'";/)"/;;1,,"#81"1('3+/%"453191,,")1#4+3* 45-;10"5)<+3%/;05")/",#3+)51 8##.=>>1('3+/%?'%*?.9> Filip Piękniewski 2006 14
Praktyka? 45-;10"5)<+3%/;05")/",#3+)51 8##.=>>1('3+/%?'%*?.9>!"#$%"&'($)*'"(+,#-.)/"01,#"&12.3214+(+4/",516"1('3+/% 7)"#85,"&'59(5):"$+'";/)"/;;1,,"#81"1('3+/%"453191,,")1#4+3* 45-;10"5)<+3%/;05")/",#3+)51 8##.=>>1('3+/%?'%*?.9> Jeśli zobaczysz na chodniku przed swoją firmą znak ) ( znaczy, że jest źle! Filip Piękniewski 2006 14
15 IEEE 802.1X - EAPol
15 IEEE 802.1X - EAPol Bezpieczna sieć musi mieć mechanizm uwierzytelniania użytkownika Użytkownik powinien móc zweryfikować autentyczność sieci Cały proces musi przebiec w sposób bezpieczny w kanale który może być podsłuchiwany Autentykacja powinna przebiec w jak najniższej warstwie modelu OSI, szyfrowanie musi być szybkie
15 IEEE 802.1X - EAPol Bezpieczna sieć musi mieć mechanizm uwierzytelniania użytkownika Użytkownik powinien móc zweryfikować autentyczność sieci Cały proces musi przebiec w sposób bezpieczny w kanale który może być podsłuchiwany Autentykacja powinna przebiec w jak najniższej warstwie modelu OSI, szyfrowanie musi być szybkie EAP over LAN (EAPol) EAP over RADIUS Supplicant Access Point/ Switch RADIUS
16 IEEE 802.1X - EAPol EAP over LAN (EAPol) EAP over RADIUS Supplicant Access Point/ Switch RADIUS
16 IEEE 802.1X - EAPol EAP - Extensible Authentication Protocol - protokół transportowy na potrzeby uwierzytelniania EAP nie jest konkretnym protokołem autentykacji ale raczej ogólnym schematem w którym, mogą być implementowane na różne sposoby np: EAP-SIM, EAP-TLS, EAP-TTLS, EAP-MD5 EAPol - EAP over LAN EAP over LAN (EAPol) EAP over RADIUS Supplicant Access Point/ Switch RADIUS
17 IEEE 802.1X schemat
17 IEEE 802.1X schemat Zapoznanie Uwierzytelnienie Dystrybucja kluczy Bezpieczna Transmisja Dystrybucja kluczy CZAS CZAS CZAS CZAS Supplicant EAP Access Point / Switch RADIUS RADIUS
18 Dynamiczny WEP
18 Dynamiczny WEP EAP-TLS lub EAP-TTLS pozwala na bezpieczne uwierzytelnienie i przesłanie do klienta oraz do AP materiału kryptograficznego (klucza) AP co pewien krótki czas (parę minut) generuje nowy klucz WEP i przesyła go do klienta szyfrując starym Mechanizm taki w oparciu o WEP nosi nazwę dynamiczny WEP Czy to rozwiązuje problemy?
19 Dynamiczny WEP
19 Dynamiczny WEP Częsta zmiana klucza praktycznie uniemożliwia analizę statystyczną. Kolizje IV zdarzają się zbyt rzadko...
19 Dynamiczny WEP Częsta zmiana klucza praktycznie uniemożliwia analizę statystyczną. Kolizje IV zdarzają się zbyt rzadko... Ale system pozostaje podatny na atak aktywny!
19 Dynamiczny WEP Częsta zmiana klucza praktycznie uniemożliwia analizę statystyczną. Kolizje IV zdarzają się zbyt rzadko... Ale system pozostaje podatny na atak aktywny! Tym niemniej atakujący praktycznie nie ma szans poznać zawartości transmisji przed kolejną zmianą klucza...
19 Dynamiczny WEP Częsta zmiana klucza praktycznie uniemożliwia analizę statystyczną. Kolizje IV zdarzają się zbyt rzadko... Ale system pozostaje podatny na atak aktywny! Tym niemniej atakujący praktycznie nie ma szans poznać zawartości transmisji przed kolejną zmianą klucza... Ale nadal możliwe są zamiany bitów uzupełniające CRC32 (fałszowanie pakietów)!!
19 Dynamiczny WEP Częsta zmiana klucza praktycznie uniemożliwia analizę statystyczną. Kolizje IV zdarzają się zbyt rzadko... Ale system pozostaje podatny na atak aktywny! Tym niemniej atakujący praktycznie nie ma szans poznać zawartości transmisji przed kolejną zmianą klucza... Ale nadal możliwe są zamiany bitów uzupełniające CRC32 (fałszowanie pakietów)!! W praktyce zamiany bitów są trudne do wykonania technicznie a bez znajomości treści transmisji dość bezużyteczne...
19 Dynamiczny WEP Częsta zmiana klucza praktycznie uniemożliwia analizę statystyczną. Kolizje IV zdarzają się zbyt rzadko... Ale system pozostaje podatny na atak aktywny! Tym niemniej atakujący praktycznie nie ma szans poznać zawartości transmisji przed kolejną zmianą klucza... Ale nadal możliwe są zamiany bitów uzupełniające CRC32 (fałszowanie pakietów)!! W praktyce zamiany bitów są trudne do wykonania technicznie a bez znajomości treści transmisji dość bezużyteczne... Ale rejestrując transmisję i realizując atak aktywny można poznać treść transmisji post-factum!!!
Dynamiczny WEP Częsta zmiana klucza praktycznie uniemożliwia analizę statystyczną. Kolizje IV zdarzają się zbyt rzadko... Ale system pozostaje podatny na atak aktywny! Tym niemniej atakujący praktycznie nie ma szans poznać zawartości transmisji przed kolejną zmianą klucza... Ale nadal możliwe są zamiany bitów uzupełniające CRC32 (fałszowanie pakietów)!! W praktyce zamiany bitów są trudne do wykonania technicznie a bez znajomości treści transmisji dość bezużyteczne... Ale rejestrując transmisję i realizując atak aktywny można poznać treść transmisji post-factum!!! Ale atak aktywny jest łatwo wykrywalny (zatem ryzykowny)... Przez krótki okres między zamianami klucza trzeba przepchnąć sporo danych... Filip Piękniewski 2006 19
Dynamiczny WEP Częsta zmiana klucza praktycznie uniemożliwia analizę statystyczną. Kolizje IV zdarzają się zbyt rzadko... Ale system pozostaje podatny na atak aktywny! Dynamiczny WEP na dzień dzisiejszy Tym zapewnia niemniej atakujący rozsądny praktycznie poziom nie ma bezpieczeństwa szans poznać zawartości transmisji przed kolejną zmianą klucza... dla znacznej większości normalnych zastosowań. Należy jednak uważać ten mechanizm za przejściowy. Ale nadal możliwe są zamiany bitów uzupełniające CRC32 (fałszowanie pakietów)!! W praktyce zamiany bitów są trudne do wykonania technicznie a bez znajomości treści transmisji dość bezużyteczne... Mechanizm ten jest zdecydowanie Ale niewystarczający rejestrując transmisję i realizując dla systemów atak aktywny w można których poznać treść transmisji post-factum!!! bezpieczeństwo jest czynnikiem krytycznym. Ale atak aktywny jest łatwo wykrywalny (zatem ryzykowny)... Przez krótki okres między zamianami klucza trzeba przepchnąć sporo danych... Filip Piękniewski 2006 19
20 WPA
WPA WPA - Wi Fi Protected Access - część standardu 802.1i wprowadzona (listopad 2003) jako odpowiedź na wykryte ułomności systemu WEP, do czasu opracowania pełnej specyfikacji 802.1i. Filip Piękniewski 2006 20
WPA WPA - Wi Fi Protected Access - część standardu 802.1i wprowadzona (listopad 2003) jako odpowiedź na wykryte ułomności systemu WEP, do czasu opracowania pełnej specyfikacji 802.1i. WPA to zespół mechanizmów zwiększających bezpieczeństwo sieci, bez potrzeby nagłej wymiany całego sprzętu. Filip Piękniewski 2006 20
WPA WPA - Wi Fi Protected Access - część standardu 802.1i wprowadzona (listopad 2003) jako odpowiedź na wykryte ułomności systemu WEP, do czasu opracowania pełnej specyfikacji 802.1i. WPA to zespół mechanizmów zwiększających bezpieczeństwo sieci, bez potrzeby nagłej wymiany całego sprzętu. Standard IEEE 802.1i został ratyfikowany w czerwcu 2004 roku, dzisiaj implementacje tego standardu spotyka się pod nazwą WPA2. Filip Piękniewski 2006 20
21 WPA - szczegóły WPA
21 WPA - szczegóły WPA WPA Personal WPA Enterprise
WPA - szczegóły WPA WPA Personal WPA Enterprise WPA -PSK Pre Shared Key Filip Piękniewski 2006 21
WPA - szczegóły WPA WPA Personal WPA Enterprise WPA -PSK Pre Shared Key Zastosowanie w domach i małych firmach, mniejsze bezpieczeństwo Filip Piękniewski 2006 21
WPA - szczegóły WPA WPA Personal WPA Enterprise WPA -PSK Pre Shared Key RADIUS + EAP Zastosowanie w domach i małych firmach, mniejsze bezpieczeństwo Filip Piękniewski 2006 21
WPA - szczegóły WPA WPA Personal WPA Enterprise WPA -PSK Pre Shared Key Zastosowanie w domach i małych firmach, mniejsze bezpieczeństwo RADIUS + EAP Dystrybucja kluczy Filip Piękniewski 2006 21
WPA - szczegóły WPA WPA Personal WPA Enterprise WPA -PSK Pre Shared Key Zastosowanie w domach i małych firmach, mniejsze bezpieczeństwo RADIUS + EAP Dystrybucja kluczy Zastosowanie tam gdzie dostępna jest infrastruktura RADIUS Filip Piękniewski 2006 21
22 Usprawnienia w WPA
22 Usprawnienia w WPA TKIP - Temporal Key Integrity Protocol - protokół dynamicznego zarządzania kluczami w oparciu o mechanizmy WEP (algorytm RC4) AES - Advanced Encryption Standard - blokowy algorytm szyfrowania oparty na algorytmie Rijndael CCMP - Counter Mode with Cipher Block Chaining Message Authentication Code Protocol - mechanizm dostępny w WPA2, oparty o AES pozwalający jednocześnie stwierdzić integralność wiadomości
23 TKIP
23 TKIP Temporal Key Integrity Protocol
23 TKIP Temporal Key Integrity Protocol Podstawowa metoda szyfrowania informacji w WPA, wypierana obecnie przez AES i CCMP (WPA2)
23 TKIP Temporal Key Integrity Protocol Podstawowa metoda szyfrowania informacji w WPA, wypierana obecnie przez AES i CCMP (WPA2) Zaprojektowany tak aby był szybki, dzięki temu może być wspierany na istniejącym sprzęcie
23 TKIP Temporal Key Integrity Protocol Podstawowa metoda szyfrowania informacji w WPA, wypierana obecnie przez AES i CCMP (WPA2) Zaprojektowany tak aby był szybki, dzięki temu może być wspierany na istniejącym sprzęcie Wykorzystuje WEP, starając się jednocześnie załatać jego słabości
24 TKIP - Szyfrowanie
24 TKIP - Szyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing Intermediate Key Phase2 Key mixing WEP IV WEP RC4 KEY Data integrity Key (64 bit) TKIP sequence counters DATA + MIC Fragments WEP encapsulation Message Integrity Code (Michael) DATA + MIC Fragmentation DATA + MIC Fragments Encrypted Data DATA
24 TKIP - Szyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing Intermediate Key Phase2 Key mixing WEP IV WEP RC4 KEY Data integrity Key (64 bit) TKIP sequence counters DATA + MIC Fragments WEP encapsulation Message Integrity Code (Michael) DATA + MIC Fragmentation DATA + MIC Fragments Encrypted Data DATA
24 TKIP - Szyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing Intermediate Key Phase2 Key mixing WEP IV WEP RC4 KEY Data integrity Key (64 bit) TKIP sequence counters DATA + MIC Fragments WEP encapsulation Message Integrity Code (Michael) DATA + MIC Fragmentation DATA + MIC Fragments Encrypted Data DATA
24 TKIP - Szyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing Intermediate Key Phase2 Key mixing WEP IV WEP RC4 KEY Data integrity Key (64 bit) TKIP sequence counters DATA + MIC Fragments WEP encapsulation Message Integrity Code (Michael) DATA + MIC Fragmentation DATA + MIC Fragments Encrypted Data DATA
24 TKIP - Szyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing Intermediate Key Phase2 Key mixing WEP IV WEP RC4 KEY Data integrity Key (64 bit) TKIP sequence counters DATA + MIC Fragments WEP encapsulation Message Integrity Code (Michael) DATA + MIC Fragmentation DATA + MIC Fragments Encrypted Data DATA
24 TKIP - Szyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing Intermediate Key Phase2 Key mixing WEP IV WEP RC4 KEY Data integrity Key (64 bit) TKIP sequence counters DATA + MIC Fragments WEP encapsulation Message Integrity Code (Michael) DATA + MIC Fragmentation DATA + MIC Fragments Encrypted Data DATA
24 TKIP - Szyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing Intermediate Key Phase2 Key mixing WEP IV WEP RC4 KEY Data integrity Key (64 bit) TKIP sequence counters DATA + MIC Fragments WEP encapsulation Message Integrity Code (Michael) DATA + MIC Fragmentation DATA + MIC Fragments Encrypted Data DATA
25 TKIP - deszyfrowanie
25 TKIP - deszyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing TKIP sequence counters Intermediate Key TKIP Countermeasures Phase2 Key mixing Possibly under attack! MIC=MIC' Good DATA MIC OK? WEP RC4 KEY MIC WEP IV MIC' WEP IV Encrypted Data In seq? In sequence WEP decapsulation DATA + MIC Fragments Reassemble Out of Sequence BAD CRC DATA Message Integrity Code (Michael) Data integrity Key (64 bit)
25 TKIP - deszyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing TKIP sequence counters Intermediate Key TKIP Countermeasures Phase2 Key mixing Possibly under attack! MIC=MIC' Good DATA MIC OK? WEP RC4 KEY MIC WEP IV MIC' WEP IV Encrypted Data In seq? In sequence WEP decapsulation DATA + MIC Fragments Reassemble Out of Sequence BAD CRC DATA Message Integrity Code (Michael) Data integrity Key (64 bit)
25 TKIP - deszyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing TKIP sequence counters Intermediate Key TKIP Countermeasures Phase2 Key mixing Possibly under attack! MIC=MIC' Good DATA MIC OK? WEP RC4 KEY MIC WEP IV MIC' WEP IV Encrypted Data In seq? In sequence WEP decapsulation DATA + MIC Fragments Reassemble Out of Sequence BAD CRC DATA Message Integrity Code (Michael) Data integrity Key (64 bit)
25 TKIP - deszyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing TKIP sequence counters Intermediate Key TKIP Countermeasures Phase2 Key mixing Possibly under attack! MIC=MIC' Good DATA MIC OK? WEP RC4 KEY MIC WEP IV MIC' WEP IV Encrypted Data In seq? In sequence WEP decapsulation DATA + MIC Fragments Reassemble Out of Sequence BAD CRC DATA Message Integrity Code (Michael) Data integrity Key (64 bit)
25 TKIP - deszyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing TKIP sequence counters Intermediate Key TKIP Countermeasures Phase2 Key mixing Possibly under attack! MIC=MIC' Good DATA MIC OK? WEP RC4 KEY MIC WEP IV MIC' WEP IV Encrypted Data In seq? In sequence WEP decapsulation DATA + MIC Fragments Reassemble Out of Sequence BAD CRC DATA Message Integrity Code (Michael) Data integrity Key (64 bit)
25 TKIP - deszyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing TKIP sequence counters Intermediate Key TKIP Countermeasures Phase2 Key mixing Possibly under attack! MIC=MIC' Good DATA MIC OK? WEP RC4 KEY MIC WEP IV MIC' WEP IV Encrypted Data In seq? In sequence WEP decapsulation DATA + MIC Fragments Reassemble Out of Sequence BAD CRC DATA Message Integrity Code (Michael) Data integrity Key (64 bit)
25 TKIP - deszyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing TKIP sequence counters Intermediate Key TKIP Countermeasures Phase2 Key mixing Possibly under attack! MIC=MIC' Good DATA MIC OK? WEP RC4 KEY MIC WEP IV MIC' WEP IV Encrypted Data In seq? In sequence WEP decapsulation DATA + MIC Fragments Reassemble Out of Sequence BAD CRC DATA Message Integrity Code (Michael) Data integrity Key (64 bit)
25 TKIP - deszyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing TKIP sequence counters Intermediate Key TKIP Countermeasures Phase2 Key mixing Possibly under attack! MIC=MIC' Good DATA MIC OK? WEP RC4 KEY MIC WEP IV MIC' WEP IV Encrypted Data In seq? In sequence WEP decapsulation DATA + MIC Fragments Reassemble Out of Sequence BAD CRC DATA Message Integrity Code (Michael) Data integrity Key (64 bit)
25 TKIP - deszyfrowanie Temporal Key (128 bit) Station MAC Phase1 Key mixing TKIP sequence counters Intermediate Key TKIP Countermeasures Phase2 Key mixing Possibly under attack! MIC=MIC' Good DATA MIC OK? WEP RC4 KEY MIC WEP IV MIC' WEP IV Encrypted Data In seq? In sequence WEP decapsulation DATA + MIC Fragments Reassemble Out of Sequence BAD CRC DATA Message Integrity Code (Michael) Data integrity Key (64 bit)
26 Cechy TKIP
26 Cechy TKIP Do każdej transmisji używane są 4 klucze, po dwa dla każdego kierunku
26 Cechy TKIP Do każdej transmisji używane są 4 klucze, po dwa dla każdego kierunku Klucze temporalne są zmieniane co ściśle określoną ilość pakietów
Cechy TKIP Do każdej transmisji używane są 4 klucze, po dwa dla każdego kierunku Klucze temporalne są zmieniane co ściśle określoną ilość pakietów TKIP wykrywa potencjalne ataki, gdy ilość błędów MIC przekroczy pewien próg następuje minutowa deasocjacja Filip Piękniewski 2006 26
Cechy TKIP Do każdej transmisji używane są 4 klucze, po dwa dla każdego kierunku Klucze temporalne są zmieniane co ściśle określoną ilość pakietów TKIP wykrywa potencjalne ataki, gdy ilość błędów MIC przekroczy pewien próg następuje minutowa deasocjacja Mechanizm miksujący (2 faza) dekoreluje klucz RC4 z wektorem inicjalizującym (który jednocześnie numeruje pakiet) Filip Piękniewski 2006 26
27 AES
27 AES AES - Advanced Encryption Standard - wersja algorytmu Rijndael Skonstruowany przez dwóch belgijskich kryptologów (Joan Daemen, Vincent Rijmen), został uznany przez rząd USA jako standardowy algorytm szyfrowania używany w administracji AES wykorzystuje operacje na macierzy 8 x 8 bajtów, nad ciałem Galois GF (2 8 ) wielomianów nad ciałem Z 2 modulo wielomian x 8 + x 4 + x 3 + x + 1
28 Cechy AES
Cechy AES Jest znacznie bardziej skomplikowany niż RC4 Wygląda na znacznie bezpieczniejszy (najlepsze znane ataki na AES są praktycznie niemożliwe do zrealizowania przy obecnych środkach) Wymaga znacznie większej mocy obliczeniowej AP i karty (wymiana sprzętu) Filip Piękniewski 2006 28
29 802.11i
29 802.11i Poprawione zarządzanie kluczami Obligatoryjne stosowanie mechanizmów szyfrowania TKIP/AES/CCMP 802.11i nareszcie spełnia oczekiwania w sprawie bezpieczeństwa sieci bezprzewodowych!
30 802.11i - klucze
30 802.11i - klucze Master Key Key Confirmation Key Pairwise Master Key Key Ecryption Key Pairwise Transient Key Temporal Key Group Transient Key
30 802.11i - klucze Reprezentuje udane uwierzytelnienie, posiada go klient i serwer uwierzytelniający Master Key Key Confirmation Key Pairwise Master Key Key Ecryption Key Pairwise Transient Key Temporal Key Group Transient Key
30 802.11i - klucze Master Key Pairwise Master Key Tworzony na podstawie MK. Serwer uwierzytelniający dostarcza go do AP. Key Confirmation Key Key Ecryption Key Pairwise Transient Key Temporal Key Group Transient Key
30 802.11i - klucze Master Key Key Confirmation Key Pairwise Master Key Pairwise Transient Key Tworzony na podstawie PMK oraz informacji wymienianych przez ramki EAPol Key Key Ecryption Key Temporal Key Group Transient Key
30 802.11i - klucze Master Key Zaraz po utworzeniu PTK, klient udowadnia AP, że jest w posiadaniu PMK używając KCK do zaszyfrowania sumy kontrolnej. Key Confirmation Key Pairwise Master Key Key Ecryption Key Pairwise Transient Key Temporal Key Group Transient Key
30 802.11i - klucze Master Key Pairwise Master Key Ten klucz jest używany do szyfrowania przy dostarczaniu klucza grupowego (GTK) do klienta Key Confirmation Key Key Ecryption Key Pairwise Transient Key Temporal Key Group Transient Key
30 802.11i - klucze Master Key Pairwise Master Key Pairwise Transient Key Key Confirmation Key Ten klucz jest używany do szyfrowania faktycznego ruchu między klientem a AP. Key Ecryption Key Temporal Key Group Transient Key
30 802.11i - klucze Master Key Key Confirmation Key Pairwise Master Key Key Ecryption Key Pairwise Transient Key Ten klucz jest używany do szyfrowania ruchu rozgłaszanego w obrębie AP Temporal Key Group Transient Key
30 802.11i - klucze Master Key Key Confirmation Key Pairwise Master Key Key Ecryption Key Pairwise Transient Key Temporal Key Group Transient Key
31 802.11i - wymiana kluczy PMK PMK SNonce PTK=EAPoL-PRF(PMK, ANonce SNonce AP MACAddr STA MACAddr) EAPol-Key(Reply-Required Unicast, ANonce) ANonce PTK EAPoL-Key(Unicast, SNonce, MIC, STA RSN IE) PTK EAPoL-Key(Reply Required, Install PTK, Unicast,ANonce, MIC, AP RSN IE) Install TK EAPoL-Key(Unicast, MIC) Install TK
31 802.11i - wymiana kluczy PMK PMK AP generuje losowy ciąg bitów (ANonce) i wysyła go do klienta SNonce PTK=EAPoL-PRF(PMK, ANonce SNonce AP MACAddr STA MACAddr) EAPol-Key(Reply-Required Unicast, ANonce) ANonce PTK EAPoL-Key(Unicast, SNonce, MIC, STA RSN IE) PTK EAPoL-Key(Reply Required, Install PTK, Unicast,ANonce, MIC, AP RSN IE) Install TK EAPoL-Key(Unicast, MIC) Install TK
31 802.11i - wymiana kluczy PMK SNonce Klient generuje własny losowy ciąg bitów (SNonce) i używa go wraz z PMK do wytworzenia PTK EAPol-Key(Reply-Required Unicast, ANonce) ANonce PMK PTK=EAPoL-PRF(PMK, ANonce SNonce AP MACAddr STA MACAddr) PTK EAPoL-Key(Unicast, SNonce, MIC, STA RSN IE) PTK EAPoL-Key(Reply Required, Install PTK, Unicast,ANonce, MIC, AP RSN IE) EAPoL-Key(Unicast, MIC) Install TK Install TK
31 802.11i - wymiana kluczy PMK PMK SNonce PTK=EAPoL-PRF(PMK, ANonce SNonce AP MACAddr STA MACAddr) PTK EAPol-Key(Reply-Required Unicast, ANonce) EAPoL-Key(Unicast, SNonce, MIC, STA RSN IE) ANonce Klient wysyła SNonce do AP wraz z sumą kontrolną zaszyfrowaną za pomocą nowo wytworzonego PTK (KCK) PTK EAPoL-Key(Reply Required, Install PTK, Unicast,ANonce, MIC, AP RSN IE) Install TK EAPoL-Key(Unicast, MIC) Install TK
31 802.11i - wymiana kluczy PMK PMK SNonce PTK=EAPoL-PRF(PMK, ANonce SNonce AP MACAddr STA MACAddr) PTK EAPol-Key(Reply-Required Unicast, ANonce) EAPoL-Key(Unicast, SNonce, MIC, STA RSN IE) ANonce AP tworzy PTK i weryfikuje autentyczność ramki otrzymanej od klienta PTK EAPoL-Key(Reply Required, Install PTK, Unicast,ANonce, MIC, AP RSN IE) Install TK EAPoL-Key(Unicast, MIC) Install TK
31 802.11i - wymiana kluczy PMK PMK SNonce PTK=EAPoL-PRF(PMK, ANonce SNonce AP MACAddr STA MACAddr) EAPol-Key(Reply-Required Unicast, ANonce) ANonce PTK EAPoL-Key(Unicast, SNonce, MIC, STA RSN IE) Jeśli wszystko przebiegło dobrze, AP odsyła wiadomość o możliwości zainstalowania TK. Wiadomość ta posiada zaszyfrowaną za pomocą KCK sumę PTK kontrolną EAPoL-Key(Reply Required, Install PTK, Unicast,ANonce, MIC, AP RSN IE) EAPoL-Key(Unicast, MIC) Install TK Install TK
31 802.11i - wymiana kluczy PMK PMK SNonce PTK=EAPoL-PRF(PMK, ANonce SNonce AP MACAddr STA MACAddr) EAPol-Key(Reply-Required Unicast, ANonce) ANonce PTK EAPoL-Key(Unicast, SNonce, MIC, STA RSN IE) Klient odsyła podpisane KCK potwierdzenie i instaluje klucz temporalny EAPoL-Key(Reply Required, Install PTK, Unicast,ANonce, MIC, AP RSN IE) EAPoL-Key(Unicast, MIC) PTK Install TK Install TK
31 802.11i - wymiana kluczy PMK PMK SNonce PTK=EAPoL-PRF(PMK, ANonce SNonce AP MACAddr STA MACAddr) EAPol-Key(Reply-Required Unicast, ANonce) ANonce PTK EAPoL-Key(Unicast, SNonce, MIC, STA RSN IE) PTK EAPoL-Key(Reply Required, Install PTK, Unicast,ANonce, MIC, AP RSN IE) Install TK EAPoL-Key(Unicast, MIC) Install TK
32 Podsumowanie Niebezpiecznie Bezpiecznie
32 Podsumowanie Niebezpiecznie Brak szyfrowania Bezpiecznie
32 Podsumowanie Niebezpiecznie Brak szyfrowania Statyczny WEP Bezpiecznie
32 Podsumowanie Niebezpiecznie Brak szyfrowania Statyczny WEP WPA - PSK Bezpiecznie
32 Podsumowanie Niebezpiecznie Brak szyfrowania Statyczny WEP WPA - PSK 802.1x + dynamiczny WEP Bezpiecznie
32 Podsumowanie Niebezpiecznie Brak szyfrowania Statyczny WEP WPA - PSK 802.1x + dynamiczny WEP 802.11i (TKIP) Bezpiecznie
32 Podsumowanie Niebezpiecznie Brak szyfrowania Statyczny WEP WPA - PSK 802.1x + dynamiczny WEP 802.11i (TKIP) 802.11i (AES) Bezpiecznie
32 Podsumowanie Niebezpiecznie Brak szyfrowania Statyczny WEP WPA - PSK 802.1x + dynamiczny WEP 802.11i (TKIP) Bezpiecznie 802.11i (AES) 802.11i ( CCMP )
32 Podsumowanie Niebezpiecznie Brak szyfrowania Statyczny WEP WPA - PSK 802.1x + dynamiczny WEP 802.11i (TKIP) Bezpiecznie 802.11i (AES) 802.11i ( CCMP )
33 Koniec
33 Koniec Pytania?