Siła hasła

Systemy używające haseł do uwierzytelniania muszą mieć możliwość sprawdzenia hasła wprowadzonego w celu uzyskania dostępu. Jeśli prawidłowe hasła są po prostu przechowywane w pliku systemowym lub bazie danych, osoba atakująca, która uzyska wystarczający dostęp do systemu, uzyska wszystkie hasła użytkowników, dając atakującemu dostęp do wszystkich kont w zaatakowanym systemie i prawdopodobnie innych systemach, w których użytkownicy korzystają z tych samych lub podobne hasła. Jednym ze sposobów zmniejszenia tego ryzyka jest przechowywanie tylko kryptograficznego skrótu każdego hasła zamiast samego hasła. Standardowe skróty kryptograficzne, takie jak seria Secure Hash Algorithm (SHA), są bardzo trudne do odwrócenia, więc osoba atakująca, która uzyska wartość skrótu, nie może bezpośrednio odzyskać hasła. Jednak znajomość wartości skrótu pozwala atakującemu szybko przetestować domysły w trybie offline. Szeroko dostępne są programy do łamania haseł, które będą testować dużą liczbę próbnych haseł pod kątem skradzionego kryptograficznego skrótu.

Ulepszenia technologii komputerowej zwiększają szybkość, z jaką można testować odgadnięte hasła. Na przykład w 2010 roku Georgia Tech Research Institute opracował metodę wykorzystania GPGPU do znacznie szybszego łamania haseł. Elcomsoft wynalazł użycie popularnych kart graficznych do szybszego odzyskiwania hasła w sierpniu 2007 roku i wkrótce złożył odpowiedni patent w USA. Do 2011 roku dostępne były komercyjne produkty, które zapewniały możliwość testowania do 112 000 haseł na sekundę na standardowym komputerze stacjonarnym, używając w tym czasie wysokiej klasy procesora graficznego. Takie urządzenie złamie 6-literowe hasło składające się z pojedynczych liter w ciągu jednego dnia. Zauważ, że praca może być rozłożona na wiele komputerów w celu dodatkowego przyspieszenia proporcjonalnego do liczby dostępnych komputerów z porównywalnymi GPU. Dostępne są specjalne skróty do rozciągania klucza, których obliczenie zajmuje stosunkowo dużo czasu, co zmniejsza szybkość zgadywania. Chociaż rozciąganie klucza jest uważane za najlepszą praktykę, wiele popularnych systemów tego nie robi.

Inną sytuacją, w której możliwe jest szybkie odgadnięcie, jest użycie hasła do utworzenia klucza kryptograficznego. W takich przypadkach osoba atakująca może szybko sprawdzić, czy odgadnięte hasło pomyślnie odszyfrowuje zaszyfrowane dane. Na przykład jeden produkt komercyjny twierdzi, że testuje 103 000 haseł WPA PSK na sekundę.

Jeśli system haseł przechowuje tylko skrót hasła, osoba atakująca może wstępnie obliczyć wartości skrótu dla popularnych wariantów haseł i dla wszystkich hasła krótsze niż określona długość, co umożliwia bardzo szybkie odzyskanie hasła po uzyskaniu jego skrótu. Bardzo długie listy wstępnie obliczonych skrótów haseł można efektywnie przechowywać za pomocą tęczowych tabel. Tę metodę ataku można udaremnić, przechowując losową wartość, zwaną solą kryptograficzną, wraz z hashem. Sól jest łączona z hasłem podczas obliczania skrótu, więc osoba atakująca obliczająca wstępnie tęczową tablicę musiałaby przechowywać dla każdego hasła jego skrót z każdą możliwą wartością soli. Staje się to niewykonalne, jeśli sól ma wystarczająco duży zakres, powiedzmy 32-bitową liczbę. Niestety, wiele powszechnie używanych systemów uwierzytelniania nie wykorzystuje soli, a tablice tęczowe są dostępne w Internecie dla kilku takich systemów.

Entropia jako miara siły hasłaEdytuj

Jest to typowe dla przemysł komputerowy do określenia siły hasła w kategoriach entropii informacyjnej mierzonej w bitach i będącej pojęciem z teorii informacji. Zamiast liczby zgadnięć potrzebnych do znalezienia hasła z pewnością podaje się logarytm o podstawie 2 tej liczby, który jest powszechnie nazywany liczbą „bitów entropii” w haśle, chociaż nie jest to dokładnie ta sama liczba jako entropia informacyjna. Hasło z 42-bitową entropią obliczoną w ten sposób byłoby tak silne, jak ciąg 42-bitowy wybrany losowo, na przykład w wyniku sprawiedliwego rzutu monetą. Innymi słowy, hasło o entropii 42-bitowej wymagałoby 242 (4 398 046 511 104) prób wyczerpania wszystkich możliwości podczas przeszukiwania siłą. Tak więc, zwiększając entropię hasła o jeden bit, liczba wymaganych domysłów podwaja się, co sprawia, że zadanie napastnika jest dwukrotnie trudniejsze. Przeciętnie osoba atakująca będzie musiała wypróbować połowę możliwej liczby haseł, zanim znajdzie właściwe.

Losowe hasłaEdytuj

Główny artykuł: Generator losowych haseł

Losowe hasła składają się z ciągu symboli o określonej długości pobranych z pewnego zestawu symboli przy użyciu losowego wyboru proces, w którym każdy symbol z równym prawdopodobieństwem zostanie wybrany. Symbole mogą być pojedynczymi znakami z zestawu znaków (np. zestawu znaków ASCII), sylabami zaprojektowanymi do tworzenia wymawianych haseł, a nawet słowami z listy słów (tworząc w ten sposób hasło ).

Siła losowych haseł zależy od rzeczywistej entropii bazowego generatora liczb; jednak często nie są one naprawdę losowe, ale pseudolosowe.Wiele publicznie dostępnych generatorów haseł wykorzystuje generatory liczb losowych, które można znaleźć w bibliotekach programowania, które oferują ograniczoną entropię. Jednak większość nowoczesnych systemów operacyjnych oferuje silne kryptograficznie generatory liczb losowych, które są odpowiednie do generowania haseł. Możliwe jest również użycie zwykłych kostek do generowania losowych haseł. Zobacz silniejsze metody. Programy do haseł losowych często mają możliwość zapewnienia, że otrzymane hasło jest zgodne z lokalnymi zasadami dotyczącymi haseł; na przykład, zawsze tworząc kombinację liter, cyfr i znaków specjalnych.

W przypadku haseł generowanych przez proces, który losowo wybiera ciąg symboli o długości L z zestawu N możliwych symboli, liczbę możliwych haseł można znaleźć podnosząc liczbę symboli do potęgi L, czyli NL. Zwiększenie wartości L lub N wzmocni wygenerowane hasło. Siła losowego hasła mierzona entropią informacyjną to po prostu logarytm o podstawie 2 lub log2 liczby możliwych haseł, przy założeniu, że każdy symbol w haśle jest tworzony niezależnie. Zatem entropia informacyjna losowego hasła, H, jest określona wzorem:

H = log 2 ⁡ NL = L log 2 ⁡ N = L log ⁡ N log ⁡ 2 {\ Displaystyle H = \ log _ {2} N ^ {L} = L \ log _ {2} N = L {\ log N \ ponad \ log 2}}

gdzie N to liczba możliwych symboli, a L to liczba symboli w haśle. H jest mierzone w bitach. W ostatnim wyrażeniu log może mieć dowolną podstawę.

Entropia na symbol dla różnych zestawów symboli
Zestaw symboli Symbol liczba N Entropia na symbol H
Cyfry arabskie (0–9) (np. PIN) 10 3,322 bitów
cyfry szesnastkowe (0–9, A – F) (np. klucze WEP) 16 4.000 bitów
Alfabet łaciński bez rozróżniania wielkości liter (a – z lub A – Z) 26 4.700 bitów
Alfanumeryczne bez rozróżniania wielkości liter (a – z lub A – Z, 0–9) 36 5,170 bitów
Rozróżniana wielkość liter alfabetu łacińskiego (a – z, A – Z) 52 5,700 bitów
Wielkość liter wrażliwe alfanumeryczne (a – z, A – Z, 0–9) 62 5,954 bitów
Wszystkie drukowalne znaki ASCII z wyjątkiem spacji 94 6,555 bitów
Wszystkie znaki dodatku Latin-1 94 6,555 bitów
Wszystkie drukowalne znaki ASCII 95 6,570 bitów
Wszystkie rozszerzone drukowalne znaki ASCII 218 7,768 bitów
Binarne (0–255 lub 8 bitów lub 1 bajt) 256 8.000 bitów
Lista słów Diceware 7776 12,925 bitów na słowo

Binarny bajt jest zwykle wyrażany za pomocą dwóch liczb szesnastkowych znaków.

Aby znaleźć długość L, potrzebną do uzyskania pożądanej siły H, z hasłem losowanym z zestawu N symboli, należy obliczyć:

L = H log 2 ⁡ N {\ displaystyle L = {H \ over \ log _ {2} N}}

zaokrąglone do kolejnej największej liczby całkowitej.

Poniższa tabela używa tego wzoru, aby pokazać wymagane długości prawdziwie losowo generowanych haseł w celu uzyskania żądanych entropii haseł dla typowych zestawów symboli:

Długości L prawdziwie losowo generowanych haseł wymaganych do osiągnięcia pożądanej entropii haseł H dla zestawów symboli zawierających N symboli
Żądane hasło
entropia H
cyfry arabskie szesnastkowy Wielkość liter niewrażliwe Z uwzględnieniem wielkości liter Wszystkie ASCII Wszystkie rozszerzone
ASCII
Diceware
lista słów
alfabet łaciński alfa-
numeryczny
alfabet łaciński alpha-
numeric
znaki drukowalne
8 bitów (1 bajt) 3 2 2 2 2 2 2 2 1 słowo
32 bity (4 bajty) 10 8 7 7 6 6 5 5 3 słowa
40 bitów (5 bajtów ) 13 10 9 8 8 7 7 6 4 słowa
64 bity (8 bajtów) 20 16 14 13 12 11 10 9 5 słów
80 bitów (10 bajtów) 25 20 18 16 15 14 13 11 7 słów
96 bitów (12 bajtów) 29 24 21 19 17 17 15 13 8 słów
128 bitów (16 bajtów) 39 32 28 25 23 22 20 17 10 słów
160 bitów (20 bajtów) 49 40 35 31 29 27 25 21 13 słów
192 bity (24 bajty) 58 48 41 38 34 33 30 25 15 słów
224 bity (28 bajtów) 68 56 48 44 40 38 35 29 18 słów
256 bitów (32 bajty) 78 64 55 50 45 43 39 33 20 słów

Hasła generowane przez ludziEdytuj

Ludzie notorycznie nie radzą sobie z osiąganiem entropia wystarczająca do wytworzenia zadowalających haseł. Według jednego badania obejmującego pół miliona użytkowników, średnią entropię hasła oszacowano na 40,54 bitów. Niektórzy magicy sceniczni wykorzystują tę niezdolność do rozrywki w niewielkim stopniu, rozróżniając przypuszczalne przypadkowe wybory (powiedzmy liczb) dokonywane przez członków widowni.

Zatem w jednej analizie ponad 3 milionów ośmioznakowych haseł litera „e” została użyta ponad 1,5 miliona razy, a litera „f” tylko 250 000 razy. Jednolita dystrybucja wymagałaby użycia każdego znaku około 900 000 razy. Najczęściej używaną liczbą jest „1”, natomiast najczęściej używanymi literami są a, e, o i r.

Użytkownicy rzadko w pełni wykorzystują większe zestawy znaków podczas tworzenia haseł. Na przykład wyniki hakowania uzyskane ze schematu phishingu MySpace w 2006 roku ujawniły 34 000 haseł, z których tylko 8,3% wykorzystywało mieszane wielkości liter, cyfr i symboli.

Pełna siła związana z użyciem całego zestawu znaków ASCII ( cyfry, małe i duże litery oraz znaki specjalne) uzyskuje się tylko wtedy, gdy każde możliwe hasło jest równie prawdopodobne. Wydaje się to sugerować, że wszystkie hasła muszą zawierać znaki z każdej z kilku klas znaków, być może duże i małe litery, cyfry i znaki inne niż alfanumeryczne. W rzeczywistości taki wymóg jest wzorcem przy wyborze hasła i można oczekiwać, że zmniejszy „współczynnik pracy” atakującego (w terminologii Claude’a Shannona). Jest to zmniejszenie „siły” hasła. Lepszym wymogiem byłoby wymaganie, aby hasło NIE zawierało żadnego słowa ze słownika internetowego, listy nazwisk ani żadnego wzoru tablicy rejestracyjnej z dowolnego stanu (w USA) lub kraju (jak w UE). Jeśli wymagane są wzorzyste wybory, ludzie prawdopodobnie będą ich używać w przewidywalny sposób, na przykład składając wielką literę, dodając jedną lub dwie cyfry i znak specjalny. Ta przewidywalność oznacza, że wzrost siły hasła jest niewielki w porównaniu z hasłami losowymi.

Specjalna publikacja NIST 800-63-2Edit

Specjalna publikacja NIST 800-63 z czerwca 2004 r. (wersja 2) zaproponowała schemat przybliżenia entropii haseł generowanych przez człowieka:

Przy użyciu tego schematu szacuje się, że 8-znakowe hasło wybrane przez człowieka bez wielkich liter i znaków innych niż alfabetyczne LUB z jednym z dwóch zestawów znaków, ale ma 18 bitów entropii. Publikacja NIST przyznaje, że w czasie opracowywania dostępnych było niewiele informacji na temat wyboru haseł w świecie rzeczywistym. Późniejsze badania nad entropią haseł wybranych przez człowieka przy użyciu nowo dostępnych danych ze świata rzeczywistego wykazały, że schemat NIST nie zapewnia prawidłowej miary szacowania entropii haseł wybranych przez człowieka. Wersja SP 800-63 z czerwca 2017 r. (Wersja 3) porzuca to podejście.

Uwagi dotyczące użyteczności i implementacji Edytuj

Ponieważ krajowe implementacje klawiatury są różne, nie można użyć wszystkich 94 drukowalnych znaków ASCII wszędzie. Może to stanowić problem dla podróżnika zagranicznego, który chciałby zalogować się do zdalnego systemu za pomocą klawiatury na lokalnym komputerze. Zobacz układ klawiatury. Wiele urządzeń przenośnych, takich jak tablety i smartfony, wymaga złożonych sekwencji przesunięć lub zamiany aplikacji klawiatury w celu wprowadzenia znaków specjalnych.

Programy uwierzytelniające różnią się, jakie znaki dopuszczają w hasłach. Niektórzy nie rozpoznają różnic w wielkości liter (np. Duża litera „E” jest uważana za odpowiednik małej litery „e”), inni zabraniają niektórych innych symboli. W ciągu ostatnich kilku dekad systemy dopuszczały więcej znaków w hasłach, ale nadal istnieją ograniczenia. Systemy różnią się także pod względem maksymalnej dozwolonej długości haseł.

W praktyce hasła muszą być zarówno rozsądne, jak i funkcjonalne dla użytkownika końcowego, a także wystarczająco mocne do zamierzonego celu. Hasła, które są zbyt trudne do zapamiętania, mogą zostać zapomniane i dlatego częściej zostaną zapisane na papierze, co niektórzy uważają za zagrożenie bezpieczeństwa. Z drugiej strony inni twierdzą, że zmuszanie użytkowników do zapamiętywania haseł bez pomocy może uwzględniać tylko słabe hasła, a tym samym stwarza większe zagrożenie bezpieczeństwa. Według Bruce’a Schneiera większość ludzi dobrze zabezpiecza portfele lub torebki, co jest „świetnym miejscem” do przechowywania zapisanego hasła.

Leave a Reply

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *