Rozmiar ma znaczenie

… czyli powracamy do tematu bezpieczeństwa w sieci.

Jeżeli trafiłeś do tego wpisu mając nadzieje przeczytać artykuł na temat niezwiązany z IT to cię rozczaruję, bo ten wpis będzie dotyczył wyłącznie haseł i trudności ich łamania w najbardziej prozaiczny i naiwny sposób tzw. metodą słownikową.

Nie chcę tutaj w żadnym sposób uchodzić za eksperta w dziedzinie bezpieczeństwa, a jedynie chciałbym spojrzeć razem z Wami na kilka obliczeń, które wykażą, że niewielkie ulepszenie naszych haseł sprawia że odkrycie go metodą słownikową staje się bezsensowne.

 

Przedstawienie problemu


Jeszcze kilka lat temu minimalne wymagania dotyczące zakładanych haseł były dużo niższe (a jeszcze wcześniej ich nie było wcale) więc wielu z nas z przyzwyczajenia zakłada nieskomplikowane hasła, bardzo często krótkie i jednorodne tzn składające się np z wyłącznie małych liter lub cyfr.

Nie da się ukryć, że dzisiaj gdy zostały w większości serwisów podniesione standardy zabezpieczeń to przeszkadza, przeszkadza nam fakt że musimy dodawać do naszych haseł duże litery, cyfry, czy znaki specjalne.

W tym artykule chciałbym Wam przedstawić dlaczego dążenie do maksymalnej prostoty w tym akurat przypadku jest szkodliwe.

 

Liczymy…


Dzisiejszy artykuł będzie pełny (niespecjalnie skomplikowanych) obliczeń, ale zanim do nich dojdziemy zastanówmy się czym jest słownik dla osoby, która chce złamać hasło.

Def.

Słownik jest to zbiór słów nad określonym alfabetem.

Hah, logiczne. Uściślijmy że słowniki zazwyczaj są generowane pod ściśle określone osoby, czy przedsiębiorstwa tzn występują w nich słowa najbardziej prawdopodobne, że są hasłem.

Jednakże, czym jest słowo?

Def.

Słowem nazywamy DOWOLNY ciąg znaków, skończonej długości nie zawierający znaków białych.

Najsłabsze zabezpieczenie jeżeli chodzi o hasła, jakie udało mi się znaleźć to hasło złożone z 4 znaków (max 255), w poniższych paragrafach przedstawię ilość możliwość haseł składających się z 4, 8 i 10 znaków przy różnych kombinacjach znaków.

 

Użycie wyłącznie cyfr

Najgorszym możliwym wyborem jest zbudowanie hasła wyłącznie z cyfr, jest ich mało (raptem 10), więc nietrudno policzyć, że:

  • 4 znakowe hasło to: 4^10 = 1 048 576 haseł
  • 8 znakowe hasło to: 8^10 = 1 073 741 824 haseł
  • 10 znakowe hasło to: 10^10 = 10 000 000 000 haseł

Jeżeli myślisz, że to sporo to niestety, ale się mylisz, pierwszy podpunkt mój (już 3-letni) laptop jest w stanie złamać w najgorszym wypadku w ciągu godziny.

Drugi podpunkt sprawiłby już większe problemy, jedynie dodajemy 4 kolejne cyfry a już to jest kwestia kilku godzin na moim sprzęcie, jednakże wciąż co to za hasło, które można złamać w najbardziej naiwny sposów w ciągu kilku godzin?

Wyłącznie alfabet

Sam alfabet zdaje się nam dostarczać sporej ochrony, ponieważ dostarcza nam 26 znaków, dodatkowo całość musimy przemnożyć jeszcze przez dwa bo możliwe są duże i małe litery, czyli do dyspozycji mamy 26 * 2 = 52 znaków.

  • 4 znaki: 4 ^ 52 = 20282409603651670423947251286016 haseł
  • 8 znaków: 8 ^ 52 = 91343852333181432387730302044767688728495783936 haseł
  • 10 znaków: 10 ^ 52 = 10000000000000000000000000000000000000000000000000000 haseł.

Wydawałoby się, że stworzenie haseł wyłącznie z dużych i małych liter jest w zupełności wystarczające i faktycznie takie coś powstrzyma zwykły komputer. Jednakże my wyliczyliśmy ilość przy założeniu, że słowo to dowolne występujące obok siebie znaki, np. „nPsUdbeXbd” podczas gdy ludzie uwielbiają w hasłach używać słów.

Tutaj mamy olbrzymi spadek, niestety nikt nie policzył wszystkich słów w języku polskim, ale nietrudno się domyślić że jest ich dużo mniej (można zrobić ciekawe obliczenia przy założeniu, że słowo musi się składać z samogłosek i spółgłosek na przemian, ale to sobie daruję).

 

Alfabet + cyfry

Idąc dalej natrafiamy chyba na najbardziej standardowe minimum jeżeli chodzi o hasła, czyli połączenie liter z cyframi. Jak nietrudno obliczyć mamy teraz do dyspozycji 62 znaki i to jest taki najbardziej standardowy zestaw znaków w hasłach.

Daruję sobie obliczenia (za długo się to rozpisuje na kartce :P), ponieważ są niemalże identyczne, a w tym artykule nie chodzi nam o poznanie dokładnych obliczeń.

Alfabet + cyfry + znaki specjalne

Te znaki są różnie dostępne zależnie od serwisu, one oferują stosunkowo największe bezpieczeństwo ponieważ nie są często używane przez ludzi, więc w słownikach zazwyczaj są sprawdzane najpóźniej (jak wszystko inne zawiedzie).

 

Zanim najdzie cię poczucie bezpieczeństwa…


To chcę cię uświadomić, że słowników nie generuje się na wszystkie słowa, bo pomijając ilość zajętych przez nie miejsca (tutaj już liczymy całość w PB, nawet nie TB), to jak wspomniałem ludzie używają zwyczajnych słów, więc takie się też dodaje do słowników z ewentualnymi wariacjami niektórych znaków, np zamiast A, używa się 4, S-$, etc.

Dodatkowo słowa występują też w zakresie zainteresowań danego celu, czy też wiedzy o nim, więc całkowita ilość słów zamyka się w dużo mniejszych wartościach, przy nieskomplikowanych i krótkich hasłach złamanie go jest możliwe we względnie krótkim czasie, ale przy dłuższych szkoda robić sobie kłopotu są dużo wydajniejsze sposoby.

Podsumowując całość jednym krótkim wyrażeniem:

Rozmiar ma znaczenie.

 

Code ON!