Hasła jednowyrazowe kontra hasła wielowyrazowe cz. I     Bezpieczenstwo     Hasła jednowyrazowe kontra hasła wielowyrazowe cz. IIII

Hasła jednowyrazowe kontra hasła wielowyrazowe cz. II Udostępnij na: Facebook

Security Management (listopad 2004)

Autor: Dr Jesper M. Johansson

Opublikowano: 1 lutego 2005

Jest to już drugi artykuł z serii artykułów o wyższości haseł wielowyrazowych nad hasłami jednowyrazowymi. W pierwszej części opisałem podstawowe zasady, rządzące hasłami jedno- i wielowyrazowymi, jak są przechowywane itd. W tym artykule chciałbym omówić relatywną wyższość każdego rodzaju haseł i zilustrować podchodząc do sprawy matematycznie. W części ostatniej umieszczę podsumowanie moich artykułów i doradzę, jak wybierać hasła i jak je konfigurować.

Argumenty za i przeciw  Argumenty za i przeciw
Założenie 1: Użytkownicy są w stanie zapamiętać hasła wielowyrazowe  Założenie 1: Użytkownicy są w stanie zapamiętać hasła wielowyrazowe
Założenie 2: dłuższe jest silniejsze  Założenie 2: dłuższe jest silniejsze
Założenie 3: Hasła wielowyrazowe mają w sobie więcej przypadkowości  Założenie 3: Hasła wielowyrazowe mają w sobie więcej przypadkowości
Wnioski końcowe  Wnioski końcowe
Security Management

 

Argumenty za i przeciw

Hasła wielowyrazowe wchodzą do użytku z różnych powodów, a jednym z nich jest rozwój narzędzi mogących złamać wiele haseł jednowyrazowych w krótkim czasie. Narzędzia te nie są nowe. Program Quakenbush Password Appraiser potrafił to zrobić już w 1998 roku. Nowością są teoria i praktyka "kompromisu czasu i przestrzeni", wprowadzone przez dr Phillippe’a Oechslina. Kompromis czasu i przestrzenia oznacza, że wszystkie możliwe wartości funkcji mieszających nie są zapisywane – nie starczyłoby na to miejsca w całym wszechświecie (w przypadku funkcji NT). Zachowywanie wszystkich wartości funkcji NT, zawierających do 14 znaków, przy korzystaniu z zestawu 76 znaków wymagałoby 5 652 897 009 eksabajtów wolnego miejsca, co przekracza możliwości każdego współczesnego systemu. Zachowanie wszystkich wartości LM zajęłoby tylko 310 terabajtów, co jednak również jest praktycznie niewykonalne. Aby rozwiązać ten problem, dr Oechslin zaproponował taki kompromis czasu i przestrzeni, przy którym zachowuje się tylko część wartości funkcji mieszającej i przyporządkowane im hasła. To drastycznie zmniejsza miejsce potrzebne do przechowywania danych, a przy 17 wolnych gigabajtach miejsca można przechowywać wartości LM dla takiego samego zestawu znaków. Jak będziemy mogli zobaczyć, jednym z zasadniczych argumentów przemawiających za używaniem haseł wielowyrazowych jest to, że zwiększają one obszar potrzebny do zachowywania danych i blokują zaprogramowane próby złamania wartości funkcji.

 Do początku strony Do początku strony

Założenie 1: Użytkownicy są w stanie zapamiętać hasła wielowyrazowe

Pierwszym argumentem zwolenników haseł wielowyrazowych jest stwierdzenie, że użytkownikom łatwiej zapamiętać hasło wielowyrazowe niż długie (powyżej 10 znaków) hasło jednowyrazowe. To może być zgodne z prawdą, ale skoro niewielu użytkowników korzysta z haseł jednowyrazowych składających się z więcej niż 10 znaków, trudno jest dać jednoznaczną odpowiedź. Aby udzielić odpowiedzi na to pytanie, przeprowadziłem całkowicie nienaukowe badanie czy użytkownicy są w stanie zapamiętać tak długie hasła. O odpowiedź poprosiłem administratorów: 99 procent stwierdziło, że użytkownicy nie tylko zapominają 10-znakowe hasła, ale buntują się, kiedy są zmuszeni do używania ich. A czy użytkownicy są w stanie zapamiętać hasło wielowyrazowe, składające się z 10 znaków? Prawdopodobnie tak, gdyż składa się ono tylko z kilku elementów (w tym przypadku słów). Uwielbiam cytować słynną, napisaną w 1956 roku pracę George’a Millera pt: "Magiczna liczba 7, plus lub minus 2: niektóre ograniczenia naszej umiejętności przetwarzania informacji." Tematem tej pracy, która należy do tych wielkich prac, gdzie wystarczy tylko przeczytać tytuł, jest stwierdzenie, że ludzie mają ograniczoną zdolność przetwarzania danych. Jesteśmy w stanie zapamiętać naraz 7 elementów informacji (plus/minus dwa). Podana tutaj liczba 7 jest w rzeczywistości nieistotna, liczy się fakt, że nasza zdolność przetwarzania informacji jest ograniczona. Niektórzy ludzie twierdzą, że liczba ta wynosi 5 +/- 2. Poznałem też kilku takich, którzy twierdzą, że wynosi ona 3, ale wydaje mi się, że chyba mają frustrującą pracę. Tak czy inaczej, nasza zdolność przetwarzania informacji jest poważnie ograniczona.

Definicja słowa "element" również może różnić się od siebie w zależności od tego, co próbujemy zrobić. W przypadkowym 10-znakowym haśle jednowyrazowym element jest jednym symbolem, a zgodnie ze stwierdzeniem Millera większość ludzi nie jest w stanie zapamiętać dziesięciu przypadkowych symboli. Użytkownik jest raczej w stanie zapamiętać 10-znakowe hasło wielowyrazowe, składające się z dwu lub trzech słów lub elementów.

Jeżeli założymy, że użytkownicy są w stanie zapamiętać 7 elementów, słów lub symboli, to najdłuższe hasło, jakie mogliby zapamiętać, ograniczałoby się do 9 znaków. Stanowisko to zostało umocnione przy pomocy testów empirycznych. Aby zrozumieć siłę haseł jednowyrazowych, złamałem 28 tysięcy haseł w pewnej dużej domenie. Z tych haseł udało mi się złamać 23 311 (83 procent) całkowicie, a pozostałe 13,16 procent częściowo. Chociaż przykład ten nie jest całkowicie reprezentatywny dla wszystkich haseł jednowyrazowych, w swoich statystykach będę bazował na analizie tych 23 311 złamanych haseł jednowyrazowych. Analiza ta dodaje wiarygodności ograniczeniu do 9 znaków: 64 procent złamanych haseł jednowyrazowych dających dostęp do tej domeny (która wymagała haseł co najmniej siedmioznakowych), miało 9 lub mniej znaków. Przynajmniej 90,37 procent wszystkich haseł jednowyrazowych miało mniej niż 15 znaków. (Dopóki nie zobaczy się tych haseł napisanych otwartym tekstem, niemożliwością jest stwierdzenie, ile z nich miało mniej niż 15 znaków. Tak więc zakłada się, że hasła jednowyrazowe bez wartości LM miały 15 lub więcej znaków, chociaż pozbawione tej wartości były również z innych powodów.)

W haśle wielowyrazowym jeden element to jedno słowo. W języku angielskim przeciętna długość słowa wynosi 5 znaków [słowa w języku polskim są nieco dłuższe i liczą sobie średnio ok. 6 znaków - przyp. tłum.]. 5 znaków na słowo jest również standardem używanym przy liczeniu prędkości w pisaniu na minutę. Tak więc, w ankiecie, przeprowadzonej w roku 1995 wśród 45 użytkowników PGP, Arnold Reinhold odkrył, że przeciętne hasło wielowyrazowe PGP zawierało słowa o długości 5.3 znaków. Ciekawostką jest, że Reinhold również zauważył, że 5/8 wszystkich słów w jego pracy było słowami z angielskiego słownika. Próbka ta jest zbyt mała, aby traktować ją za poważne odkrycie naukowe, ale to wszystko, co można było znaleźć w niewielkiej literaturze dotyczącej tego tematu.

Wracając do pracy Millera, użytkownik, będący w stanie zapamiętać zdanie 7-wyrazowe może posiadać 41-znakowe hasło jednowyrazowe. Ten tok rozumowania ma jednak kilka zastrzeżeń. Po pierwsze, rzadkością jest, aby prawdziwe hasło wielowyrazowe było tak długie. I tak na przykład, moje aktualne hasło wielowyrazowe (tak, ja również ich używam) ma tylko 35 znaków, a ja już uważam, że jest kłopotliwe. Reinhold zauważył również, że mediana liczby słów w hasłach wielowyrazowych wynosi jedynie 4.

 Do początku strony Do początku strony

Założenie 2: dłuższe jest silniejsze

Drugim argumentem, przemawiającym na korzyść haseł wielowyrazowych jest fakt, że są one dłuższe, a co za tym idzie – silniejsze. Jednak nie można porównywać długości hasła wielowyrazowego i jednowyrazowego. Dłuższe hasła jednowyrazowe uważane są za lepsze z prostej przyczyny – złamanie ich zajmuje więcej czasu. Na przykład, jak widzieliśmy wcześniej, złamanie hasła 8-znakowego zajęłoby 5 lat i 11 miesięcy dłużej, niż złamanie hasła 7-znakowego. Stwierdzenie to jednak jest adekwatne tylko wtedy, gdy hasło jednowyrazowe składa się z przypadkowych znaków i prawdopodobieństwo wystąpienia każdego symbolu jest jednakowe. Jeżeli hasło nie składa się z przypadkowych znaków, te wyliczenia nie mają racji bytu.

Jako dodatkowy argument na rzecz długich haseł często przytacza się twierdzenie, że takie, które są dłuższe niż 14 znaków nie generują kodu LM. Biorąc pod uwagę fakt, że możemy usunąć kod LM na różne sposoby, sam brak kodu LM nie jest zaletą haseł wielowyrazowych. Tak więc, czy dłuższe oznacza lepsze? Niekoniecznie. Współczesne programy do łamania haseł zaprojektowane są tak, aby łamać symbole, ale nie jest powiedziane, że coraz nowsze wersje nie będą traktować słów jak symboli. Rzeczywiście, niektórzy z nas uważają to za prawdopodobne. Dłuższe hasła jednowyrazowe wcale nie są lepsze na dłuższą metę; są w stanie jedynie obronić się przed dostępnymi dzisiaj narzędziami do łamania.

 Do początku strony Do początku strony

Założenie 3: Hasła wielowyrazowe mają w sobie więacej przypadkowości

Jedną z ważniejszych zalet haseł wielowyrazowych jest większa entropia. Entropia jest typowym miernikiem przypadkowości. Składa się ona z trzech elementów: liczba elementów, rozmiar zbioru z którego pochodzą elementy i prawdopodobieństwo wybrania pojedynczego elementu. Skoro hasła wielowyrazowe są dłuższe niż jednowyrazowe, to mają one potencjalnie większą entropię niż hasła jednowyrazowe, nawet, jeżeli zostały stworzone przy pomocy tego samego zestawu znaków. Jest to godne uwagi, ponieważ programy do łamania haseł działają na zasadzie probabilistycznej. Zamiast tworzenia kombinacji liter w haśle jednowyrazowym, programy te zwykle zaczynają od wybierania kombinacji, dostępnych w słowniku, a następnie przechodzą do permutacji tych słów, opartych na częstotliwości używanych liter. I tak, nasze wcześniej podane wyliczenie (złamanie 7-znakowego hasła w 28 dni) może być niedokładne. Można złamać wiele haseł w przeciągu sekundy jeśli są one korzystnie napisane. Z tego powodu entropia jest lepszym sposobem mierzenia siły hasła jednowyrazowego niż tylko długość i zestaw możliwych znaków.

Przyjrzyjmy się kilku przykładom. Testy pokazują, że ponad 83 procent ze sprawdzanych przez nas haseł jednowyrazowych składało się tylko i wyłącznie z liter, cyfr i symboli !@#$%^&*()-_+=. W języku angielskim ten zestaw ma 26+26+10+14=76 symboli, w innych językach jest ich po kilka więcej. Na dodatek, 80 procent z symboli, użytych w tych hasłach wybrano tylko spośród 32 symboli z dostępnych 76. Te 32 symbole, ustawione w kolejności występowania, to: ea1oirn0st2lud!m3hcyg94kSbpM758B. Co ciekawsze, 10% z tych haseł zostało stworzonych tylko przy pomocy tych 32 symboli.

Naturalna entropia, lub też wskaźnik bezwzględny 76-znakowego zestawu wynosi R=Log2L = 6,25 bitów na 1 symbol. Wskaźnik bezwzględny jest przeważnie uważany za górną granicę entropii, zakładając, że każdy ze znaków ma jednakowe prawdopodobieństwo zostania wybranym. Jednak C.E. Shannon wyliczył entropię każdej litery 8-literowego elementu w języku angielskim na 2,3 bity na literę (Shannon, C.E., "Predication and Entropy in Printed English," Bell System Technical Journal, l. 30, n. 1, 1951, ss. 50-64). Należy pamiętać o tym, że w pracy Shannona wzięto pod uwagę angielskie słowa, utworzone z zestawu 26-znakowego, a nie 76-znakowego, jak w naszym przykładzie. Widzieliśmy jednak, że większość użytkowników korzysta tylko z 32 symboli. W każdym z tych przypadków, entropia rzeczywista dla każdego symbolu w haśle jednowyrazowym jest prawdopodobnie wyższa niż 2,3, wyliczone przez Shannona, ale mniejsza niż wskaźnik absolutny 6.25. Wartość Log2 32 = 5 jest według mnie nieco wyższa niż rzeczywisty wskaźnik entropii, powinna jednak dobrze się spisać jako górna granica szacunkowa entropii każdego symbolu w haśle jednowyrazowym. Skoro przeciętne hasło jednowyrazowe ma 9,16 znaków, po zaokrągleniu do 9 da nam to nie więcej niż 9*5=45 bitów entropii.

Argumentem przemawiającym na korzyść haseł wielowyrazowych jest to, że ludzie przeważnie znają więcej niż 76 słów. Hasło wielowyrazowe może również być traktowane jako stworzone z języka – ze słów dostępnych w języku służącym do stworzenia danego hasła. Słownik języka angielskiego Oxford English Dictionary zawiera 616 500 słów, chociaż jedynie uczestnicy konkursów ortograficznych i studenci przygotowujący się do egzaminów wstępnych na wyższe uczelnie korzystają z 614 000 z tych słów. W rzeczywistości, przeciętny zasób słownictwa Amerykanina (chciałbym uniknąć tu określeń, używanych przez Europejczyków) waha się od 10,000-20,000 (wg językoznawcy Richarda Lederera) do 50,000-70,000 (wg językoznawcy Jamesa L. Fidelholtza). Obydwaj naukowcy zgadzają się z tym, że większość słów znajduje się w słowniku biernym – tzn. gdy człowiek rozumie usłyszane słowo, ale sam go nie używa. Przeciętna osoba używa zaledwie ułamka tego słownictwa.

Załóżmy, że hasła wielowyrazowe bazują jedynie na zestawie 300 słów. Z pewnością jest to bardzo ostrożny szacunek, ale z drugiej strony, większość tych słów ma sens dopiero wtedy, gdy zostaną zestawione w określony sposób, co znacząco zmniejsza przypadkowość hasła wielowyrazowego.

Aby obliczyć rzeczywistą entropię hasła wielowyrazowego musimy wiedzieć, ile słów jest wykorzystywanych. Według wspomnianego powyżej badania PGP mediana liczby słów wynosiła 4, ale wartość średnia była wyższa. Czyniąc zadość postulatom Millera, określmy średnią słów w haśle wielowyrazowym na 5.

Jeżeli na słowo przypada 5 znaków, to liczba znaków w haśle wielowyrazowym wyniesie 25+4=29, wliczając w to 4 spacje. Łączną wartość entropii takiego hasła wielowyrazowego można wyliczyć stosując różne przybliżenia. Korzystając z danych Shannona, przy 2,3 bitach na literę w ośmioliterowym słowie entropia całkowita będzie się równać 29*2,3=66,7 bity. Wyliczone 66,7 bity są prawdopodobnie rozsądną górną granicą entropii hasła wielowyrazowego, a wartość ta jest znacząco wyższa od 45-bitowej entropii 9-znakowego hasła jednowyrazowego. Aby uzyskać niższą granicę, możemy skorzystać z wyliczenia Bruce’a Schneiera, opartego na pracy Thomasa Covera (B. Schneier, "Applied Cryptography", wyd. 2, Wiley, 1996), które każdej literze daje 1,3 bity. Shannon założył wysokość 1,3 bita na literę dla słów 16-literowych, tak więc nie możemy tego całkowicie odnieść do naszych 5-znakowych słów. Używanie liczby 1,3 jako wartości entropii daje nam wynik 29*1.3= 37.7, czyli gorzej niż w przypadku 9-znakowego hasła jednowyrazowego. Według tych danych, aby osiągnąć entropię 9-znakowego hasła jednowyrazowego potrzebowalibyśmy hasła wielowyrazowego, składającego się z 6 słów.

Jednakże nasze wyliczenia entropii hasła wielowyrazowego nie uwzględniają zakresu słownictwa. Możemy założyć, że jeżeli hasła wielowyrazowe staną się powszechne, intruzi zaczną używać takich programów do łamania haseł, które jako jednostkę traktują słowo, a nie symbol. Sytuacja ta znacząco zmieniłaby obliczanie przypadkowości haseł jednowyrazowych. Używanie słów jako jednostek mogłoby być bardziej adekwatne niż używanie liter, tworzących słowa. Jeżeli przy układaniu haseł wielowyrazowych będziemy używać 300 słów z naszego słownictwa i założymy przy tym, że mogą być dowolnie zestawiane, wskaźnik bezwzględny każdego słowa wyniesie Log2300 = 8.23 bitów na słowo. Przy haśle wielowyrazowym, składającym się z 5 słów otrzymamy wynik 8,23*5= 41.2 bitów entropii, a przy haśle, składającym się z 6 słów – 49,4 bity entropii.

Jeśli jako jednostek użyć słów, hasła wielowyrazowe zaczynają wyglądać o wiele mniej atrakcyjne niż hasła jednowyrazowe. I rzeczywiście, hasło wielowyrazowe, składające się z 5 do 6 słów jest w przybliżeniu tak samo silne jak 9-znakowe hasło jednowyrazowe. Chciałbym jednaj podkreślić, że nie jest to udowodnione naukowo. Aby dowieść prawdziwości wyliczonej entropii, konieczne są dalsze badania.

 Do początku strony Do początku strony

Wnioski końcowe

W tej części artykułu o hasłach przeprowadziliśmy wstępną analizę haseł jedno- i wielowyrazowych. Jak jednak mogliście zauważyć, nie posiadamy zbyt rozległej wiedzy na temat rzeczywistego stosowania haseł wielowyrazowych. Dlatego też chcielibyśmy prosić Was o przysługę. Jeżeli chcecie nam pomóc, podajcie nam przykładowe hasło wielowyrazowe, którego moglibyście używać (tylko nie to, z którego korzystacie obecnie!) i przyślijcie je na adres passstud@microsoft.com*. Mamy nadzieję, że przysłane próbki pozwolą nam na przeprowadzenie analizy haseł wielowyrazowych i zrozumienie, jak w rzeczywistości powstają.

Oczywiście, ta rubryka należy również do Was. Jeżeli chcielibyście poruszyć jakąś kwestię lub potrzebujecie naszej pomocy przy lepszym zabezpieczeniu Waszego systemu, wystarczy wcisnąć znajdujący się poniżej przycisk "Komentarze" i wysłać do nas wiadomość.

*Przesłane do nas hasło wielowyrazowe zostanie zachowane jedynie w celu przeprowadzenia analizy. Wasz adres e-mail i inne dane nie zostaną zachowane. Przesłane przez Was hasło wielowyrazowe zostanie dołączone do pozostałych, otrzymanych przez nas i w żaden sposób nie zostanie dołączone do danych osobowych, przesłanych wraz z Waszą wiadomością.

 Do początku strony Do początku strony

Hasła jednowyrazowe kontra hasła wielowyrazowe cz. I     Bezpieczenstwo     Hasła jednowyrazowe kontra hasła wielowyrazowe cz. IIII