Dlaczego hasło do sieci WPA/WPA2 musi mieć przynajmniej 8 znaków

Przez JulianBezpieczeństwo, Sieci WiFi, , , With 7 comments

Pozwolę sobie zacytować TQM’a, moderatora forum hack.pl:

Pytanie, które dostałem kiedyś od totalnego laika: dlaczego hasło do sieci w WPA-PSK musi mieć minimum 8 znaków? (…) Do dzisiaj śmieję się, ze laik potrafi zagiąć każdą technicznie przygotowaną osobę zadając najprostsze możliwe pytanie.

Trudno się tu nie zgodzić, przynajmniej w moim wypadku – pomimo że ostatnio napisałem tekst o działaniu WPA/WPA2, więc spędziłem nieco czasu nad różnymi publikacjami o tych szyfrowaniach, to nie miałem pojęcia jaka jest odpowiedź na to pytanie.

Postanowiłem jednak za wszelką cenę się dowiedzieć. :)

Poszukiwania

Dolne ograniczenie na długość hasła może być albo techniczne albo… zdroworozsądkowe. Ta druga opcja wydała mi się dość mało prawdopodobna, więc rozpatrzyłem kwestie techniczne.

Zastanowiłem się, co dzieje się z hasłem, które wpisujemy przy podłączaniu się do sieci.

Ląduje ono w algorytmie haszującym PBKDF2, który generuje nam z hasła klucz – lecz funkcje haszujące z założenia nie posiadają ograniczeń dla danych wejściowych, więc zahaszować możemy równie dobrze jednoliterowe hasło, jak i dziewięcioliterowe. Pudło.

Klucz, który uzyskujemy dzięki PBKDF2, ma już zawsze odpowiednią długość w bitach, więc nie ma sensu iść dalej tym tokiem rozumowania.

Poszukałem również co nieco w polskim Internecie, lecz nie znalazłem tutaj zbyt wielu tropów. Pomógł mi trochę angielski Google – lecz głównie dowiedziałem się, że to raczej na pewno nie chodzi o ograniczenie techniczne, bowiem routery niektórych ludzi akceptują hasła krótsze niż 8 znaków (najczęściej 7).

Postanowiłem pójść gdzie indziej – chyba najtrafniejszym miejscem na znalezienie konkretnej odpowiedzi był standard z grupy IEEE 802.11 (którą opisywałem [tutaj]) o sieciach WiFi  - mianowicie IEEE 802.11i poświęcony szyfrowaniu WPA2. Nie zacząłem od niego od razu, no bo komu by się chciało czytać dokumentację… :)

Plik z omawianym standardem znajdziecie [tutaj].

Na stronach 165-166, w sekcji H.4.1, znalazłem opis dotyczący bezpieczeństwa hasła do sieci i tego, co się z nim potem dokładnie dzieje. Coraz bliżej, coraz bliżej…

A pass-phrase is a sequence of between 8 and 63 ASCII-encoded characters. The limit of 63 comes from the desire to distinguish between a pass-phrase and a PSK displayed as 64 hexadecimal characters.

Kolejne pudło. Autorzy wyjaśniają tylko górne ograniczenie na hasło – 63 znaki, a o dolnym – 8, milczą.

Rozwiązanie

Niestety ograniczenie dolne na długość hasła nie wynika z… niczego. Jest 8, bo tak ktoś kiedyś napisał i zostało.

Można by pomyśleć, że prawdopodobna jest opcja druga – podejście zdroworozsądkowe (krótsze hasło byłoby zbyt łatwe do złamania). Z tym również można się sprzeczać. Na stronie 165 znajdziemy informację, że ogólnie każde hasło krótsze niż 20 znaków nie jest zbyt bezpieczne:

A key generated from a pass-phrase of less than about 20 characters is unlikely to deter attacks.

#BONUS

Postanowiłem zadać Wam tę zagadkę na Facebooku. Większość powiedziała, że chodzi tutaj o to, „żeby nikt nie mógł tak łatwo rozkodować hasła za pomocą metody brute-force”, Paweł Janusiak nawet częściowo zgadł: „tak sobie to wymyślili” - choć i tak najbardziej spodobała mi się odpowiedź:

karol_dadas_komentarz_facebook

 

Pozdrawiam! :)