Hasło i Entropia: Nauka kryjąca się za twoim bezpieczeństwem

Zapomnij o przestarzałych zasadach dotyczących haseł. Odkryj teorię entropii Shannona, kwantowe zagrożenie Grovera i prawdziwe wskazówki OPSEC, aby zabezpieczyć swoje dostępy.

|

Czas czytania: 8 minut(y)

Hasło i Entropia: Nauka kryjąca się za twoim bezpieczeństwem

« Twoje hasło musi zawierać 8 znaków, wielką literę, małą literę, cyfrę i znak specjalny. »

Wszyscy znamy tę zasadę. A jednak w cyberbezpieczeństwie nazywa się to “teatrem bezpieczeństwa”. Hasło takie jak P@ssw0rd1! spełnia wszystkie te zasady. Ale to popularne słowo z przewidywalnymi podstawieniami, czyli dokładnie to, co narzędzia do łamania haseł sprawdzają najpierw.

Prawdziwe bezpieczeństwo nie opiera się na arbitralnych zasadach wizualnych, ale na bezlitosnej rzeczywistości matematycznej: entropii.

Entropia według Claude’a Shannona

Aby zrozumieć siłę hasła, musimy zwrócić się do Claude’a Shannona, ojca teorii informacji. Entropia mierzy stopień niepewności lub nieprzewidywalności informacji.

W zastosowaniu do haseł, entropia jest obliczana w bitach. Im wyższa liczba bitów, tym bardziej nieprzewidywalne jest hasło dla komputera. Uproszczony wzór na entropię (E) losowo wygenerowanego hasła to:

E = L × log2(R)

  • L to długość hasła.
  • R to rozmiar puli znaków (26 dla małych liter, 62 z wielkimi literami i cyframi, 94 ze wszystkimi drukowalnymi symbolami). Cztery zestawy znaków naszego generatora dają 91, ponieważ jego zestaw symboli ma 29 znaków.

Zwiększenie rozmiaru puli (dodanie symboli) zwiększa entropię, ale zwiększenie długości (dodanie znaków) zwiększa ją znacznie drastyczniej. Jednakże, długość pokonuje złożoność tylko pod jednym warunkiem: hasło musi zostać wygenerowane całkowicie losowo.

Brute Force vs. Atak Słownikowy

Jeśli używasz słów lub przewidywalnych struktur, zasada samej długości upada.

Oprogramowanie hakerskie nie sprawdza wszystkich kombinacji liter jedna po drugiej (nazywa się to Brute Force). Używają ogromnych list prawdziwych haseł z wcześniejszych wycieków danych, a także popularnych słów i wyrażeń. To jest Atak Słownikowy (Dictionary Attack).

Jeśli twoje hasło jest długie, ale składa się ze słów ze słownika lub przewidywalnych podstawień, jego rzeczywista entropia jest dramatycznie niższa niż jego teoretyczna entropia matematyczna.

Poniższa tabela stosuje jedną zasadę: 100 miliardów prób na sekundę, czyli tempo, które strona naszego generatora zakłada dla ataku offline na szybki hash. Czasy są przeciętne (połowa wszystkich możliwości) i zaokrąglone w dół tym samym wzorem co na tamtej stronie. Najszybsza droga dla każdego hasła jest pogrubiona:

HasłoEntropia, gdyby każdy znak był losowyBrute Force (przeciętnie)Atak słownikowy (nasz szacunek)
password12356 bitów (11 znaków, małe litery i cyfry)7 dniMniej niż sekunda
S3cr3t!9958 bitów (9 znaków, wszystkie cztery zestawy)24 dniMniej niż sekunda
correct horse battery staple133 bity (28 znaków, małe litery i spacja)Więcej niż 1 bilion lat1 minuta
gL7!pQ9z#vX278 bitów (12 znaków, wszystkie cztery zestawy)51 tysięcy latBrak skrótu

Kolumna słownikowa to szacunek. Zakłada, że próby atakującego podążają za strukturą każdego hasła i że każde słowo bazowe należy do 1000 najpopularniejszych:

  • password123: jedno popularne słowo i trzy cyfry. To 1000 × 1000, czyli około miliona prób.
  • S3cr3t!99: jedno popularne słowo, z wielką literą lub bez, z każdym “e” zamienionym na “3” lub nie, a potem dowolny trzyznakowy przyrostek. To około 7 miliardów prób.
  • correct horse battery staple: cztery popularne słowa. Komiks xkcd, który je rozsławił, liczy 44 bity dla czterech słów z listy 2048 słów. Przy tym samym tempie to przeciętnie 88 sekund, po zaokrągleniu w dół 1 minuta.
  • gL7!pQ9z#vX2: brak słowa i wzoru, więc najszybszą drogą jest brute force.

Te szacunki traktują każde hasło tak, jakby atakujący go nie znał. Każde hasło w tym artykule jest teraz publiczne, więc każde trafia do słownika. Opublikowane hasło to spalone hasło.

Iluzja Leetspeak i Zasady Mutacji

Weźmy na przykład S3cr3t!99. Wizualnie wydaje się skomplikowane i solidne. A jednak jest to po prostu słownikowe słowo “secret”, w którym ’e’ zostały zastąpione przez ‘3’, do którego dodano bardzo powszechny przyrostek (!99). To się nazywa leetspeak.

Przeciwko atakowi słownikowemu to hasło wytrzymuje mniej niż sekundę, a nie 24 dni, które sugerowałaby jego długość. Nowoczesne oprogramowanie do łamania (takie jak Hashcat) nie zadowala się testowaniem statycznych list słów; automatycznie stosują zasady mutacji. Wezmą każde słowo ze swojego słownika, przetestują wszystkie możliwe kombinacje leetspeak, zamienią wielkie litery i dodadzą lata lub symbole. Leetspeak daje fałszywe poczucie bezpieczeństwa.

Sztuczka ze Zmianą Klawiatury (Keyboard Shift)

Aby skomplikować łatwą do zapamiętania frazę, niektórzy używają sztuczki polegającej na zmianie układu klawiatury. Na przykład zapamiętujesz frazę taką jak my-cat. Ale w momencie jej wpisywania umieszczasz palce na fizycznej klawiaturze QWERTY, podczas gdy twój system operacyjny jest skonfigurowany na AZERTY (francuski).

  • Pomyślane słowo: my-cat
  • Wpisany rezultat: ,y)cqt (Klawisz ’m’ staje się ‘,’; ‘-’ staje się ‘)’; ‘a’ staje się ‘q’).

Czy to dobry pomysł w OPSEC? Nie, ta metoda nie jest wystarczająca, jeśli jest używana samodzielnie. Podobnie jak leetspeak, zmiana układu klawiatury to stałe podstawienie: atakujący, który ją podejrzewa, stosuje to samo odwzorowanie do każdej próby. W OPSEC jest to bezpieczeństwo przez niejasność (security by obscurity): opóźnia amatorskiego atakującego, ale nie powstrzyma ukierunkowanego i wyposażonego ataku.

W połączeniu z hasłem, które już jest silne (jak długa losowa fraza hasłowa), daje niewiele. Nawet jeśli atakujący wypróbuje tysiąc par układów, dodaje to mniej niż 10 bitów, bo log2(1000) ≈ 9,97. Siła nadal pochodzi z frazy hasłowej pod spodem.

Budowa hasła głównego (~250 bitów)

Jeśli listy słów, leetspeak i sztuczki z pisaniem mają swoje ograniczenia, jak zbudować hasło główne, które przetrwa lata? Nasz generator już ocenia 80 bitów jako “Silne”, a 100 bitów jako “Bardzo Silne”. Dla hasła głównego, które ma służyć przez dziesięciolecia, ten artykuł mierzy znacznie wyżej: w około 250 bitów entropii. Sekcja kwantowa poniżej wyjaśnia dlaczego i czego ten zapas nie zapewnia.

Istnieją dwa sposoby osiągnięcia tego celu w zależności od potrzeb:

1. Losowe znaki (dla menedżera haseł)

Ciąg znaków wygenerowany całkowicie losowo, bez wzoru, który maszyna mogłaby wykorzystać: 8}8,_$-p)M&n,XvUCT0o+.5hDE6P^w6b@U-evS0 39 znaków wylosowanych z 91 znaków naszego generatora: generator pokazuje “Liczba bitów: ≈ 253”. To hasło wylosowano na potrzeby tego artykułu, więc jest teraz publiczne. Nigdy go nie używaj.

2. Losowa fraza hasłowa (dla hasła, które zapamiętujesz)

Losowe słowa łatwiej zapamiętać niż losowe znaki. Każde słowo wylosowane z listy EFF liczącej 7776 słów dodaje około 12,9 bitu, więc to liczba słów wyznacza entropię. Dwanaście słów daje “Liczba bitów: ≈ 155”, daleko powyżej progu “Bardzo Silne” naszego generatora. Same słowa przekraczają 250 bitów dopiero przy 20 słowach.

Nasz generator kończy na 12 słowach. Aby przekroczyć 250 bitów mniejszą liczbą słów, zaznacz “Losowa cyfra po każdym słowie” i wybierz “Cyfra + Symbol” jako separator. 11 słów daje wtedy “Liczba bitów: ≈ 260”: depletion78$sporting14~overlap11>macaw86>paced95,paramedic41}blot41$flagstone07;uncanny92/broadways77#say2 Wylosowane na potrzeby tego artykułu, dokładnie z tymi ustawieniami. Opublikowane hasło to spalone hasło: nigdy nie używaj tego ani żadnego przykładu, który czytasz. Liczy się tylko to, co zostało wylosowane. Wielka litera na początku każdego słowa nic nie dodaje, a słowa wybrane samodzielnie są dużo słabsze od losowych.

Kwantowe Zagrożenie: Algorytm Grovera

Dlaczego dążyć do 250 bitów, skoro 128 bitów już dziś blokuje superkomputery? Odpowiedź leży w perspektywie dużych komputerów kwantowych.

W kryptografii algorytm Grovera pozwala komputerowi kwantowemu przeszukiwać nieposortowaną bazę danych znacznie szybciej niż klasyczny komputer. Konkretnie, Grover skutecznie zmniejsza o połowę poziom bezpieczeństwa klucza symetrycznego lub hasła.

W starciu z komputerem kwantowym z uruchomionym algorytmem Grovera hasło o entropii 128 bitów dawałoby teoretycznie odporność równoważną zaledwie 64 bitom. To znacznie cieńszy zapas.

Podwojenie entropii zachowuje zapas: około 256 bitów nadal zostawiłoby około 128 bitów wobec algorytmu Grovera. Stąd bierze się cel 250 bitów w tym artykule. To środek ostrożności wybrany przez ten artykuł, a nie liczba zaczerpnięta z jakiegoś standardu.

Ten zapas ma swoje granice. Przyspieszenie Grovera jest kwadratowe, a nie nieograniczone. Każdy jego krok nadal musi obliczyć hash hasła danej strony, i to na komputerze kwantowym wystarczająco dużym, by go wykonać. Dla porównania: przy 100 miliardach prób na sekundę, które zakłada strona naszego generatora, przeciętne przeszukanie 100 bitów trwa już co najmniej 200 miliardów lat.

Ta logika przypomina Harvest Now, Decrypt Later (HNDL): skradzioną bazę hashów haseł można dziś przechować i zaatakować później, lepszymi maszynami. Większy zapas podnosi poprzeczkę wobec takiego ataku. Nie jest to trwała gwarancja.

Arpokrat Password Generator: Stwórz własne

Nie pozostawiaj bezpieczeństwa swoich dostępów przypadkowi. Nasz darmowy generator tworzy losowe hasła i frazy-hasła. Dla każdego pokazuje entropię w bitach i średni czas, jaki zajęłoby przeszukiwanie.

Tylko generuje: nie ocenia hasła, którego już używasz. Dla opisanego wyżej celu 250 bitów wybierz hasło o długości 39 znaków ze wszystkimi czterema zestawami znaków. Generator pokaże je jako “Liczba bitów: ≈ 253”.

👉 Arpokrat Password Generator

Działa w twojej przeglądarce. To, co wygeneruje, nigdy nie jest wysyłane ani zapisywane.

Ostatnie Słabe Ogniwo: Recykling i Zarządzanie Dostępami

Matematyczna entropia nie chroni przed błędem ludzkim. Hasło 250-bitowe traci swoją wartość, gdy wycieknie, jeśli jest używane wielokrotnie na wielu stronach (atak zwany Credential Stuffing) lub jeśli nie jest chronione drugim składnikiem uwierzytelniania (2FA).

Złotą zasadą higieny cyfrowej jest pamiętanie tylko jednego hasła: twojego 250-bitowego hasła głównego (losowej frazy hasłowej, jak wyżej). Wszystkie inne twoje dostępy (bank, sieci społecznościowe, serwery) muszą wykorzystywać unikalne losowe hasła, wygenerowane specjalnie dla nich.

Aby przechowywać wszystkie te hasła, których nie da się zapamiętać, używaj menedżera haseł. Wybierz taki, który szyfruje twój skarbiec na twoim urządzeniu przed synchronizacją (często mówi się o zero-knowledge), najlepiej taki, który jest open source i poddawany niezależnym audytom.