szyfrowanie wep wpa














Zielonaszkolka.pl | wardriving | sieci bezprzewodowe













 











POLISH WARDRIVING GAMES



















aktualności
uwaga




artykuły
prezentacje
download




redakcja
statystyka
linki
KONKURS!












online:3











SPOSOBY SZYFROWANIA DANYCH W SIECIACH Wi-Fi

autor: Dada Dadowski
kontakt: dadowski (na) poczta.fm

Bezpieczeństwo sieci działających w standardzie WiFi

Wielokrotnie miałem okazje czytać artykuły, w których autorzy pisali
o lekkomyślności administratorów sieci bezprzewodowych. Wytyka im się
często, że poziom zabezpieczeń w ich sieciach jest bardzo niski, czym
stwarzają możliwość podsłuchania ruchu w sieci lub nawet uzyskania
nieautoryzowanego dostępu. Są to poważne zarzuty, ale jeszcze
poważniejsze mogą być konsekwencje działań potencjalnych "włamywaczy".
Różnorodność usług, jakie możemy już dziś wykonywać za pośrednictwem
Internetu jest ogromna: zakupy, transakcje bankowe, wymiana informacji.
Chyba każdy zadrży na myśl, że ktoś mógłby uzyskać dostęp do jego
rachunku bankowego i wykonać kilka przelewów. Przy obecnym standardzie
zabezpieczeń sieci radiowych jest to bardzo prawdopodobny scenariusz.
Czy taka sytuacja jest tylko winą administratorów? Może to sam standard
nie zapewnia należytego bezpieczeństwa jego użytkownikom? Na to pytanie
jak i na wiele innych spróbuję dać jednoznaczną odpowiedz.

Prawie jak zabezpieczenia.

Przegląd zabezpieczeń sieci bezprzewodowych zacznę może od dwóch
mniej istotnych z punktu widzenia bezpieczeństwa, ale często
stosowanych ze względu na swoją prostotę.
Pierwszym z nich jest wyłączenie rozgłaszania nazwy sieci przez
punkt dostępowy (ang. Access Point). Każdy Access Point (AP - o tej
pory będę posługiwał się tym skrótem) pracujący w normalnej
konfiguracji niejako przedstawia się swoim potencjalnym klientom
rozgłaszając wszem i wobec swoją nazwę. Wyłączenie rozgłaszania
powoduje, że klient, mimo że zaobserwuje fakt dostępności sieci nie
pozna jej nazwy, co z kolei nie pozwoli mu na uzyskanie połączenia.
Można powiedzieć, że nazwa sieci służy jako hasło - kto jej nie zna ten
się nie podłączy.

Drugim "zabezpieczeniem", bardzo lubianym przez administratorów, jest wprowadzenie filtracji adresów MAC1.
Administrator sieci podłączając nowego klienta wpisuje adres MAC karty
sieciowej klienta do pamięci AP. Przy próbie połączenia klienta z
punktem dostępowym, AP sprawdza adres MAC klienta i porównuje go z
adresami zapisanymi w pamięci. Jeśli adresu nie ma na liście klient nie
uzyskuje połączenia.

Oba te "zabezpieczenia" nie stwarzają większej trudności
potencjalnemu intruzowi. Do poznania, skrzętnie ukrytej przez
administratora, nazwy sieci perfekcyjnie nadaje się narzędzie o nazwie
Aircrack. Jest to jedno z najlepszych narzędzi służących do
podsłuchiwania i przeprowadzenia ataku na sieci bezprzewodowe, jakie do
tej pory powstało. Opis pakietu Aircrack jak również jego użycia
znacznie wybiega poza zakres tego artykułu. Zainteresowanych odsyłam do
strony domowej pakietu http://www.aircrack-ng.org/. Dodam tylko, że
złamanie tego zabezpieczenia zajmuje kilka sekund. W celu przełamania
drugiego zabezpieczenia musimy zarezerwować sobie nieco więcej czasu -
kilku minut. Schemat ataku jest prosty. Musimy poznać adres MAC jednego
z legalnych użytkowników sieci a następnie zamaskować prawdziwy adres
naszej karty sieciowej adresem klienta. Wyłapanie adresów MAC z sieci
jest możliwe dzięki programom takim jak wspomniany wyżej Aircrack,
Kismet (http://www.kismetwireless.net) oraz CommView for WiFi (http://www.tamos.com/products/commwifi/).
Jeśli znamy już adresy to wystarczy tylko mała zamiana adresu naszej
sieciówki. W zależności od systemu operacyjnego możemy to zrobić na
kilka sposobów. W systemie Windows wystarczy zastąpić jeden z kluczy w
rejestrze systemowym "nowym" adresem MAC. Jest to operacja dość
czasochłonna, ale z pomocą przychodzi program SMAC (http://www.klcconsulting.net/smac/).
Spotkałem się również z sytuacją, że sterowniki kart radiowych
posiadają opcję zmiany adresu MAC. Co do systemu Linux to sprawa zamyka
się w wykonaniu trzech komend z poziomy powłoki, korzystając z programu
ifconfig. Po tych kilku operacjach można swobodnie korzystać z
Internetu. Technika podszywania staje się ostatnio coraz bardziej
popularna a walka z nią, ze względu na specyfikę sieci bezprzewodowych
(brak kabla), niezmiernie trudna.

Pierwsze danie.

Tym, co miało zapewnić należyte bezpieczeństwo sieciom w standardzie
802.11 jest protokół łącza danych WEP (Wired Equivalent Privacy). Ma on
zapewnić sieci bezprzewodowej bezpieczeństwo nieodbiegające poziomem od
standardowego bezpieczeństwa przewodowej sieci LAN. Trafnie ujął ten
zamysł Andrew S. Tanenbaum w swojej książce "Sieci komputerowe":

"Wspaniele powiedziane: standardowym poziomem bezpieczeństwa w
przewodowej sieci LAN jest brak jakichkolwiek mechanizmów
zabezpieczających, więc zadanie postawione prze protokołem WEP nie jest
specjalnie wygórowane (�) protokól ten radzi sobie z nim całkiem
nieźle."

Czym jest więc WEP? Czy naprawdę jest aż tak słaby, czy może to
tylko docinki złośliwych, którzy zawsze mają coś do powiedzenia?
WEP został wprowadzony w roku 1999 wraz z pierwszym standardzem IEEE2
802.11. Protokół ten działa w oparciu o algorytm szyfrujący RC4. Sądzę,
że dla pełniejszego zrozumienia działania (słabości) WEP konieczne
staje się omówienie RC4, który przecież jest jego fundamentem.
RC4 jest algorytmem opracowanym przez Ronalda Rivesta już w roku
1987. Jednak światło dzienne ujrzał on dopiero w roku, 1994 kiedy to w
Intranecie pojawiła się jego implementacja w języku C. Jest to prosty
algorytm strumieniowy generujący liczby pseudolosowe.

Długość klucza dla RC4 to 40 lub 104 bitów. W zależności od długości
generowany jest strumień bajtów (key-stream), który jest wykorzystywany
do zaszyfrowania pojedynczej wiadomości. Szyfrowanie odbywa się poprzez
połączenie tekstu wiadomości z wygenerowanym kluczem za pomocą operacji
logicznej XOR1 (różnica symetryczna). W efekcie otrzymujemy
zaszyfrowaną wiadomość. Aby rozszyfrować tekst należy wygenerować ten
sam klucz-strumień i używając go wykonać operację XOR na zaszyfrowanej
wiadomości.




Rysunek 1. Działanie RC4




Dzięki swojej prostocie i łatwej implementacji algorytm RC4 zyskał
ogromną popularność. Jednak prostota działa także na jego niekorzyść.
Operacja XOR jest operacją zamienną, co oznacza, że porównanie tekstu
oryginalnego i zaszyfrowanego daje nam możliwość poznania klucza.




Rysunek 2. Zamienność operacji XOR




Jak można przypuszczać siła RC4 zależy głównie od generatora liczb
pseudolosowych. Musi on produkować ciąg w dużym przybliżeniu losowy,
który nie zdradzi wykorzystywanego klucza i o możliwie jak największej
liczbie iteracji, po której ciąg zaczyna się powtarzać.
Niestety WEP przejął wszystkie słabości algorytmu RC4, które zostały
ujawnione już w roku 1995 przez Wagnera. Do tego pojawiły się również
dodatkowe luki w samej implementacji standardu.
WEP korzysta z 40- lub 104-bitowych kluczy oraz 24-bitowego wektora
inicjującego IV (Initialization Vector). W efekcie klucz kodujący ma
długość 64 lub 128 bitów. Klucz WEP jest rozwijany przez algorytm RC4
na nieskończony pseudolosowy strumień kluczy. Aby zapobiec szyfrowaniu
pakietów tym samym kluczem RC4, generowanym "losowo" na podstawie tego
samego klucza, używane są różne wektory inicjalizacji. Przed wysłaniem
pakietu obliczana jest jeszcze suma kontrolna ICV (Integrity Check
Value) oryginalnej wiadomości M. Ostatecznie zaszyfrowany pakiet danych
P ma postać wyrażoną wzorem:




P = [M+IVC(M)] XOR [RC4(IV+WEP)]




Widać tu wyraźnie, że ogromne znaczenie w procesie szyfrowanie na
wektor IV. Im większa jego losowość i niepowtarzalność w czasie tym
pewniejsze zabezpieczenie.




Rysunek 3. Zasada działania protokołu WEP




Niestety dla standardu ilość niepowtarzających się wektorów IV jest skończona.
Problem "zużywania" IV-sów opisał bardzo dokładnie Walker (2000) w
dokumencie "Unsafe at any key size; An analisis of the WEP
encapsulation". Możemy w nim przeczytać, że przy stosowaniu 40 bitowego
klucza WEP prawdopodobieństwo kolizji, czyli powtórzenia IV wynosi 50%
przy zgromadzeniu około 4826 ramek a 99% przy zgromadzeniu 12430 ramek.
Tak, więc na kolizję IV nie trzeba długo czekać. Jedynym sposobem
zapobiegnięcia kolizjom jest bardzo częsta zmiana klucza WEP. Jest to
jednak rozwiązanie niewygodne
i czasochłonne. Co gorsza problem przybiera poważniejszą formę jeśli
dodamy do tego brak zdefiniowanego przez standard sposobu generowania
IV-sów. Często zdarza się, że karty sieciowe restartują (zerują)
licznik inkrementujący IV-sy i wtedy kolizje występują dużo częściej. W
swoim dokumencie Walker nie omieszkał wspomnieć również o słabości
algorytmu szyfrującego RC4.
Po tej publikacji ruszyła lawina innych opracowań, w których wykazano,
że WEP nie spełnia dobrze swojej roli. W roku 2001 Nikita Borisov, Ian
Goldberg i Dawid Wagner opisali szereg zależności, które pozwalają na
"oszukanie" sumy kontrolnej CRC-32 stojącej na straży autentyczności
przesyłanych danych. W swojej pracy "Intercepting Mobile
Communications: The Insecurity of 802.11" wskazują możliwość zmiany
zawartości zaszyfrowanego pakietu oraz wstrzyknięcia dodatkowych
informacji. To z kolei pozwala na fałszywą autoryzację jak też na
przekierowanie adresu IP.
Kolejną publikacją, która ukazała się również tego samego roku była
praca �Weaknesses In Key Sheduling Algorithm of RC4�. Scott Fluhrer,
Itsik Mantin, Adi Shamir wykazują kolejne słabości algorytmu RC4. Po
takiej �papierowej� burzy nadeszła pora na sprawdzenie tych wszystkich
zarzutów pod względem WEP w praktyce.

W sierpniu 2001 roku pojawił się program AirSnort (http://airsnort.shmoo.com/),
który na podstawie zebranych pakietów potrafi odtworzyć klucz WEP. Po
tych wydarzeniach przyjęto że WEP nadaje się jedynie do zastosowań
domowych, ponieważ jego poziom bezpieczeństwa dyskwalifikuje go w
zastosowaniach komercyjnych. Przez następne 3 lata metody ataków były
dopracowywane a efektem tych prac było pojawienie się dwóch nowych
programów umożliwiających poznanie klucza WEP na podstawie analizy
zebranych pakietów: Aircrack autorstwa Christophera Devine oraz WepLab
autorstwa Jose Sancheza (http://weplab.sourceforge.net).

Dzięki tym programom możliwe stało się złamanie 128 bitowego klucza
WEP w kilka minut. Dodanie opcji wstrzykiwania pakietów pozwoliło
znacznie skrócić czas łamania zabezpieczeń WEP. Dzięki temu nie
potrzeba już było milionów przechwyconych pakietów, ale około 150000
dla klucza 64 bitowego i 500000 dla klucza 128 bitowego.

Drugie danie.
Już na początku roku 2001 powstała w ramach IEEE grupa projektowa,
mająca na celu udoskonalenie zabezpieczeń protokołu 802.11. W kwietniu
2003 roku oficjalnie rozpoczęły się prace mające na celu certyfikację i
implementację nowego standardu bezpieczeństwa. Pełny standard oznaczony
jako 802.11i został przyjęty w czerwcu 2004 roku a jego wersja
komercyjna otrzymała nazwę WPA2 (WiFi Alliance4).
Nowy standard wprowadził wiele zmian, jak chociaż by całkowite
oddzielenie uwierzytelniania użytkownika od zapewnienia integralności i
poufności danych. Był to krok w kierunku stworzenia niezawodnej i
łatwej w rozbudowie architektury bezpieczeństwa. Dzięki temu sieci
bezprzewodowe mogły znowu wypłynąć na szerokie wody. Nowa architektura
sieci powstałych w oparciu o 802.11i została nazwana Robust Security
Network (RSN). Wykorzystano w niej uwierzytelnianie z protokołem 802.1X
(Port Based Network Access Control). Postaram się nieco przybliżyć ten
protokół. Domyślnie powstał on dla sieci przewodowych. Gwarantuje on
mechanizmy uwierzytelniania, autoryzacji, dystrybucji klucza i kontroli
dostępu użytkowników dołączających do sieci. Architektura 802.1X wymaga
obecności trzech elementów: klienta sieci, punktu dostępowego oraz
serwera uwierzytelniania. Każdy port wirtualny sieci bezprzewodowej
jest rozdzielony na dwa porty logiczne. Porty logiczne tworzą obiekt
dostępu do portu o nazwie PAE (Port Access Entity). Port PAE, który
odpowiada za uwierzytelnianie jest zawsze otwarty i przepuszcza ramki
uwierzytelniania natomiast port usług dostępny jest dopiero po udanym
uwierzytelnieniu. Decyzję o dopuszczeniu klienta do portu usług na ogół
podejmuje trzeci element architektury, czyli serwer uwierzytelniający.
Taką rolę może spełniać serwer Radius jak również odpowiednio
przygotowany proces działający na zasobach AP (zastosowania domowe).




Rysunek 4. Model architektury 802.11i




Na potrzeby sieci bezprzewodowych wprowadzono drobne zmiany w IEEE
802.1X. Wprowadzono dodatkowe uwierzytelnianie wiadomości, które daje
pewność, że klient i AP znają tajne klucze oraz że włączyli szyfrowanie
przed rozpoczęciem transmisji. Komunikacja między klientem a AP odbywa
się z wykorzystaniem protokołu EAP, który określa jedynie ogólne zasady
transportu różnego rodzaju metod uwierzytelniania. Sam EAP dopuszcza
jedynie jedynie cztery komunikaty Request, Response, Success i
Failture. Pozostałe komunikaty są uzależnione od wybranego sposobu
uwierzytelniania: EAP-SIM, Kerberos itp. Po zakończeniu tego procesu
klient jak i serwer uwierzytelniający mają już własny, tajny klucz
nadrzędny. Komunikacja pomiędzy AP a serwerem uwierzytelniającym odbywa
się poprzez protokół EAPOL (EAP over LAN).

Nawiązanie komunikacji w standardzie 802.11i wymaga wykonania czterech etapów:




Rysunek 5. Etapy protokołu 802.11i




Pierwszym z nich jest uzgodnienie polityki bezpieczeństwa miedzy
klientem a AP. Punkt dostępowy rozgłasza obsługiwane polityki jako
parametr Beacon lub odsyła ją do klienta w komunikacie Probe Response
(odpowiedz na Probe Request wysłany przez klienta). Potem następuje
standardowe uwierzytelnianie. Odpowiedz klienta jest dołączona do
żądania skojarzenia (Association Request) i zatwierdzana za pomocą
odpowiedzi odsyłanej przez AP (Association Response). Polityka
bezpieczeństwa jest przesyłana w polu IE (Information Element) ramki
RSN. Pole IE zawiera informacje określające obsługiwane metody
uwierzytelniania (PSK, 802.1X), protokoły bezpieczeństwa dla transmisji
pojedynczej i grupowej (CCMP, TKIP) oraz obsługę wstępnego
uwierzytelniania (możliwość płynnej zmiany AP przez klienta w tej samej
sieci).





Rysunek 6. Uzgodnienie polityki bezpieczeństwa










Rysunek 7. Uwierzytelnianie 802.1X




Trzeci etap to ustalenie hierarchii kluczy oraz ich dystrybucja.
Klucze w architekturze RSN posiadają swój okres ważności. Ta faza ma na
celu wygenerowanie i wymianę kluczy. Do wygenerowania kluczy
wykorzystywane są dwie metody negocjacji: czteroetapowa (4 way
hanshake), której celem jest ustalenie pojedynczych (PTK) i grupowych
(GTK) kluczy tymczasowych; negocjacja klucza grupowego dla odnowienia
GTK.

Proces generowania pojedynczego klucza głównego PMK (Pairwise Master
Key) jest zależny od zastosowanej metody uwierzytelniania. Jeśli
używany jest PSK (Pre-Shared Key) to PMK jest wtedy równe PSK5.
Jeśli natomiast sieć posiada serwer uwierzytelniający (Radius) to PMK
jest wyliczane na podstawie klucza głównego MK (802.1X). Na podstawie
PMK generowany jest tymczasowy klucz szyfrujący. Dla transmisji
pojedynczej będzie to PTK. Jego długość jest uzależniona od protokołu
szyfrującego i wynosi odpowiednio: dla TKIP 512 bitów, dla CCMP 384
bity.

PTK składa się z kilku tymczasowych kluczy o różnych zastosowaniach.
KCK (Key Confirmation Key) jest kluczem 128 bitowym i służy do
generowania kodu uwierzytelniającego wiadomości (MIC). KEK (Key
Encryption Key) ma również 128 bitów i służy do zapewnienia poufności
danych w czasie negocjacji czteroetapowej i negocjacji klucza
grupowego. TK (Temporary Key) o długości 128 bitów służy do szyfrowania
danych (używany przez TKIP i CCMP). TMK (Temporary MIC Key) ma długość
2*64 bity i służy do uwierzytelniania danych. Jest używany wyłącznie
przez algorytm Michael. Każda z komunikujących się stron posiada swój
własny klucz.

Podczas negocjacji czteroetapowej klient i AP wymieniają cztery
komunikaty EAPOL-Key. Klucz PTK wyliczany jest na podstawie klucza PMK,
stałego ciągu znaków, adresów MAC klienta i AP i dwóch losowych
wartości generowanych przez klienta i serwer Radius. Cały proces
inicjowany jest przez AP, który wysyła do klienta losową wartość
ANonce. Wysyłana wartość nie jest w żaden sposób zabezpieczona. Klient
generuje własną wartość SNonce i znając ANonce wylicza PTK oraz
tymczasowe klucze pochodne. Następnie odsyła SNonce oraz kod MIC
uzyskany z klucza KCK drugiej wiadomości. Radius odbiera SNonce i
wylicza PTK oraz klucze tymczasowe oraz sprawdza poprawność kodu MIC w
drugiej wiadomości. Jeśli Radius otrzymał poprawne MIC to oznacza, że
klient zna klucz i poprawnie wyliczył poprawną wartość klucza PTK oraz
kluczy pochodnych. W trzecim komunikacie, jaki jest wysyłane do klienta
znajduje się klucz GTK i jest on zaszyfrowany kluczem KEK. GTK
wyliczony jest na podstawie losowego GMK i wartości GNonce. Wysyłany
jest również kod MIC dla trzeciego komunikatu uzyskany za pomocą klucza
KCK. Klient sprawdza MIC trzeciej wiadomości, aby upewnić się, że AP
zna PTK oraz poprawnie wyliczył klucze pochodne tymczasowe. W ostatnim
komunikacie klient przesyła do AP wiadomość, że instaluje klucze
szyfrujące, których będzie używał. AP sprawdza kod MIC i jeśli jest on
poprawny instaluje uzgodnione klucze i przechodzi w tryb szyfrowania.
Do ochrony transmisji grupowych stosowany jest klucz tymczasowy GTK
(Group Transient Key). Jest on generowany na podstawie GMK (Group
Master Key), stałego ciągu znaków, adresu MAC punktu dostępowego oraz
losowej wartości GNonce. Długość GTK jest zależna od protokołu
szyfrującego i dla TKIP wynosi 256 bitów a dla CCMP 128 bitów. Z GTK
możemy wydzielić dwa specjalizowane klucze tymczasowe: GEK (Group
Encryption Key) służy do szyfrowania danych i jest używany przez TKIP
lub CCMP; GIK (Group Integrity Key) służy do uwierzytelniania danych i
jest używany przez algorytm Michael w TKIP.

Podczas negocjacji klucza grupowego między AP i klientem wymieniane
są dwa komunikaty EAPOL-Key. W tym czasie wykorzystywane są dwa klucze
tymczasowe KCK i KEK wygenerowane podczas 4-way handshake. Celem, dla
którego przeprowadzana jest negocjacja klucza grupowego jest anulowanie
połączenia klienta i odnowienie klucz GTK. Serwer Radius wybiera losową
liczbę GNonce i ponownie generuje klucz GTK. Następnie klucz GTK jest
szyfrowany kluczem KEK i wraz z wyliczonym numerem sekwencyjnym GTK
oraz kodem MIC wiadomości wyliczonym za pomocą KCK wysyłany do klienta.
Po otrzymaniu wiadomości klient sprawdza kod MIC po czym odszyfrowuje
klucz GTK. Wówczas klient odsyła komunikat zawierający potwierdzenie
negocjacji klucza grupowego. Wraz z potwierdzeniem wysyłany jest
jeszcze numer sekwencyjny klucza GTK oraz kod MIC dla wiadomości.
Serwer uwierzytelniający po sprawdzeniu MIC instaluje nowy klucz GTK.




Rysunek 8. Generowanie i dystrybucja kluczy







Rysunek 9. Negocjacja czteroetapowa








Rysunek 10. Negocjacja klucza grupowego




Czwarty etap ma na celu zapewnienie poufności i integralności
danych. Wszystkie klucze wygenerowane w poprzednich etapach będą teraz
wykorzystywane do zapewnienia poufności i integralności danych (TKIP,
CCMP, WRAP). Konieczne teraz staje się opisane poszczególnych
protokołów, które były już wcześniej wspomniane a na tym etapie będą
podstawą działania.

Protokół TKIP (wymagany do uzyskania certyfikacji WPA) jest bardzo
zbliżony do WEP, ponieważ również wykorzystuje algorytm RC4. TKIP
otrzymał nowe mechanizmy, które chronią go przed atakami, na jakie
narażony był WEP. CRC-32 został tu zastąpiony przez nowy kod
integralności (MIC) o nazwie Michael. Opracowano dokładne reguły
generacji wektora IV, co zapobiega jego powtórzeniom i uodparnia cały
standard przed atakami z wykorzystaniem kolizji wektora inicjalizacji.
Wprowadzono także mieszanie klucza dla pojedynczych pakietów oraz nowy
mechanizm zarządzania kluczami i ich wymianą. Na proces mieszania
klucza TKIP składają się dwie fazy. W pierwszej fazie wykorzystywane
są: tajny klucz sesji TEK, adres MAC nadawcy oraz starsze 32 bity IV.
Druga faza opiera się na wynikach otrzymanych z fazy poprzedzającej
oraz na młodszych 16 bitach IV, zmieniając wszystkie bity klucza dla
pojedynczych pakietów. Wartość IV zaczyna się od 0 i jest
inkrementowana dla każdego kolejnego pakietu. Na tym etapie odrzucane
są wszystkie pakiety, których wartość licznika powtórzeń IV jest
mniejsza od wartości poprzedniego pakietu. Wynik drugiej fazy mieszania
oraz dodatkowy bit są danymi wejściowymi dla algorytmu RC4.
Wygenerowany w ten sposób strumień klucza jest poddany operacji XOR z
MPDU6 tekstu jawnego, kodem MIC wyliczonym dla MPDU oraz
starym ICV protokołu WEP. Do wyliczania kodu MIC wykorzystywany jest
algorytm Michael autorstwa Nielsa Fergusona. Zabezpieczeniem przed
fałszowaniem kodu MIC jest zawieszenie komunikacji na 60 sekund oraz
konieczność powtórnego wyliczenia GTK i PTK w przypadku dwóch lub
więcej błędów weryfikacji kodu.





Rysunek 11. Mieszanie i szyfrowanie TKIP





Algorytm Michael wylicza ośmiooktetową wartość kontrolną, która jest dołączona do każdego MSDU7 przed jego wysłaniem. MIC wyliczany jest na podstawie adresu nadawcy, adresu odbiorcy, nieszyfrowanego MSDU i klucz TMK.





Rysunek 12. Obliczanie MIC




Protokół CCMP oparty jest na szyfrowaniu blokowym AES8
(Advanced Encryption Standard) z kluczem i blokami o długości 128
bitów. CCMP jako zupełnie nowy protokół wprowadził wiele innowacji jak
na przykład wykorzystanie samego IV do szyfrowania i uwierzytelniania
czy też objęcie uwierzytelnianiem danych niezaszyfrowanych. CCMP
rozszerza MDPU o dodatkowych 16 bajtów (po osiem bajtów na nagłówek
CCMP i kod MIC). Nagłówek CCMP w postaci nieszyfrowanej jest
umieszczany między nagłówkiem MAC a danymi szyfrowanymi. Zawiera on 48
bitowy numer pakietu oraz pole klucz grupowego KeyId. Numer pakietu
jest inkrementowany dla każdego kolejnego MPDU. Obliczanie MIC odbywa
się z wykorzystaniem algorytmu CBC-MAC9. Wyliczony MIC jest
dołączany do tekstu jawnego a całość zostaje zaszyfrowana AES w trybie
licznikowym. Protokół WRAP oparty jest na AES, ale stosuje szyfrowanie
uwierzytelniania w trybie OCB (Offset Codebook Mode), które pozwala
jednocześnie szyfrować i uwierzytelniać.




Rysunek 13. Szyfrowanie CCMP




Podsumowanie.

Od czasu pojawienia się standardu 802.11i wykryto już kilka jego
słabości. Największe zagrożenie pojawia się w momencie stosowania
klucza PSK. W tym przypadku siła zabezpieczenia zależy bezpośrednio od
siły zastosowanego hasła. Istnieje możliwość poddania drugiej
wiadomości, wysyłanej podczas negocjacji czteroetapowej, atakowi
słownikowemu i siłowemu. Do wykorzystania tej słabości stworzono
narzędzie o nazwie Cowpatty (http://sourceforge.net/projects/cowpatty),
którego ulepszoną wersję zaimplementował autor pakietu Aircrack. Jednak
przy stosowaniu haseł powyżej 20 znaków atak taki staje się bardzo
czasochłonny a czasem wręcz niemożliwy. Przeprowadzenie ataku wymaga
przechwycenia przez napastnika pakietów podczas przeprowadzania
negocjacji czteroetapowej. Dokładnie potrzebne są pierwsze dwa pakiety,
z których napastnik może poznać wartość ANonce oraz wartość SNonce.
Znając te wartości można rozpocząć zgadywanie klucza PSK, którego
prawidłowe odgadnięci pozwoli wyliczyć PTK i tymczasowe klucze
pochodne.

Drugą słabością WPA jest podatność na atak typy DOS (Denial of
Service). Pierwszy komunikat negocjacji czteroetapowej nie jest
uwierzytelniany, więc klient musi składować każdy pierwszy komunikat aż
do moment otrzymania poprawnego komunikatu trzeciego. W tym przypadku
bardzo możliwe jest wyczerpanie zasobów klienta. Napastnik może
fałszować pierwszy komunikat AP do momentu zapchania klienta.

Również w implementacji kodu Michael wykryto kilka słabości.
Algorytm ten przez swoją odwracalność podatny jest na ataki ze znanym
tekstem jawnym. Do wyliczenia tajnego klucza MIC potrzebna jest jedynie
jedna oryginalna wiadomość oraz jej kod MIC. Widzimy, że kluczowe
znaczenie ma utrzymanie kodu MIC w tajemnicy.

Czas pokaże na ile skuteczne okażą się zabezpieczenia standardu
802.11i. Jak się przekonaliśmy WEP, który miał wystarczyć do
zabezpieczenia transmisji bezprzewodowej nie wystarczył. Czy podobny
los czeka WPA i WPA2? Aktualnie coraz więcej administratorów wdraża
zabezpieczenie pośrednie, czyli WPA-PSK. Jest ono o tyle wygodne,
ponieważ nie wymaga zmian sprzętu a co za tym idzie nie niesie za sobą
dodatkowych kosztów. Jednak zapewne już niedługo standardem w sieciach
o znaczeniu krytycznym stanie się WPA2.

Mimo starań krypylogów i analityków sieci bezprzewodowe od samego
początku podatne są na ataki niskopoziomowe takie jak zagłuszanie
częstotliwości. Wydaje się, więc uzasadnione dla sieci o znaczeniu
krytycznym jest posiadanie innego, bardziej niezawodnego łącza
zapasowego (np. łącze kablowe).





1
Adres MAC (Media Access Control) jest unikalnym numerem każdej karty
sieciowej. Adres na 48 bitów i zapisywany jest heksadecymalnie
(szesnastkowo). Pierwsze 24 bity oznaczają producenta karty sieciowej,
pozostałe 24 bity są identyfikatorem danego egzemplarza karty.
2
IEEE (Institute of Electrical and Electronics Engineers - Instytut
Inżynierów Elektryków i Elektroników). Jest to organizacja typu
non-profit skupiająca profesjonalistów. Jednym z podstawowych jej zadań
jest ustalanie standardów konstrukcji, pomiarów itp. dla urządzeń
elektronicznych, w tym standardów dla urządzeń i formatów
komputerowych. Standardy, które publikuje IEEE oznaczane są często
dodatkowo literkami - np. 802.11X, 802.1D czy 802.11a. Wielka litera
oznacza standard ratyfikowany, mała - jeszcze nie ratyfikowany. Strona
domowa organizacji: http://www.ieee.org/
3 Operacja logiczna XOR wygląda następująco: 0 XOR 0 = 0 1 XOR 1 = 0 0 XOR 1 = 1 1 XOR 0 = 1
4
Jest to przemysłowe stowarzyszenie liczące ponad 250 osób, w tym
producentów sprzętu i oprogramowania. Jego rolą jest promowanie sprzętu
802.11 oraz dbanie o wzajemną zgodność urządzeń.
Strona domowa stowarzyszenia: http://www.wi-fi.org/
5 PSK jest generowane na podstawie hasła (8-63 znaków) lub ciągu 256 bitowego.
6 Jest to część pierwotnego pakietu danych po fragmentacji.
7 Jest to pakiet danych przed fragmentacją.
8 Jest to symetryczny szyfr blokowy. Dokładny opis można znaleźć na http://e-handel.mm.com.pl/crypto/aes.htm.
9
Algorytm CBC-MAC szyfruje początkową wartość jednorazową, po czym ta
wartość jest poddawana operacji XOR z kolejnymi blokami aż do momentu
uzyskania ostatecznego 64 bitowego kodu MIC.





UWAGI LUB PYTANIA DO ARTYKUŁÓW:

BBCODE:

[b] pogrubiony tekst [/b]
[u] podkreślony tekst [/u]
[i] pochylony tekst [/i]
[img] http://adres.do.obrazka/obrazek.jpg [/img]
[code] kod [/code]
[quote] cytat [/quote]




Autor:
Treść:





Autor: blackno wkońcu można coś ciekawego poczytać :) wielki +
proponuję zalożenie tematu o słownikach generatorach słowników itp.



Copyright © zielonaszkolka.pl 2005 - 2006. Wszelkie prawa zastrzeżone.

























Wyszukiwarka