Nie do złamania?

Bezpieczeństwo danych w dużej mierze zależy od wymyślonego przez nas hasła dostępu. Utworzenie trudnej do złamania frazy nie jest jednak zadaniem łatwym - powinna być ona odpowiednio długa i nieregularna

Najlepszą metodą zabezpieczenia cyfrowych danych przed nieuprawnionym do nich dostępem jest szyfrowanie. Okazuje się jednak, że nie wystarczy użyć sprawdzonego algorytmu i odpowiednio długiego klucza szyfrującego, by nasze zbiory były właściwie chronione. Jeśli do zakodowania poufnych informacji użyjemy prostych (krótkich lub regularnych) haseł, na nic się zdadzą nawet najbardziej wyrafinowane metody kryptograficzne.

W mgnieniu oka

Spójrzmy na prosty przykład. Użytkownik trzymający pliki na zaszyfrowanej partycji, zakodowanej bezpiecznym algorytmem szyfrującym AES i 128-bitowym kluczem, zastosował jednocześnie praktyczne i łatwe do zapamiętania hasło „asd”. Czy atakujący, który chce wykraść jego zbiory, musi złamać chroniący je algorytm? Nie! Może pójść na skróty i odgadnąć chroniącą je frazę. Wszystkich liter w alfabecie angielskim jest 26. Trójliterowe wyrażenie może mieć zatem 26*26*26, a więc 17 576 możliwych postaci. Wystarczy, że intruz sprawdzi je wszystkie po kolei (tj. spróbuje otworzyć szyfrowaną partycję, używając każdego z nich), a za którymś razem na pewno trafi na to prawidłowe – o ile system ochrony pozwoli na taką liczbę prób dostępu (np. wiele serwisów WWW blokuje możliwość logowania po trzeciej nieudanej próbie).

Opisana metoda nosi nazwę ataku brutalnej siły (ang. brute-force attack) i jest jednym z najpopularniejszych sposobów łamania zabezpieczeń. Zauważmy, że jeśli włamywacz do znalezienia prawidłowego trójliterowego hasła użyje programu komputerowego i nowoczesnego, domowego peceta, to zajmie mu to dosłownie ułamek sekundy.

Dobrym pomysłem, utrudniającym szybkie złamanie zabezpieczeń, jest rozszerzenie zestawu znaków i stosowanie nie tylko małych, ale i wielkich liter, a także cyfr oraz znaków specjalnych (tzw. krzaczków, np. #$%&@). Już tylko poszerzenie „abecadła” o wielkie litery spowoduje, że czas potrzebny na złamanie ochrony wzrośnie 2

n

-krotnie (gdzie „n” jest długością hasła). Znalezienie czteroznakowej frazy zajmie więc nie ok. 3 sekund, ale 3×2

4

, a więc mniej więcej 48 sekund. Trzeba jednak pamiętać, że nie jest to rozwiązanie problemu, a tylko zmniejszenie jego skali.

O autorze
Bartosz Żółtak jest absolwentem Wydziału Informaty­ki i Zarządzania Politechniki Wrocławskiej oraz autorem jednokierunkowej funkcji szyfrującej VMPC. Była ona prezentowana m.in. na międzynarodowej konferencji kryptograficznej FSE 2004 w Indiach, gdzie spotkała się z uznaniem specjalistów. Na funkcji VMPC bazuje także stworzona przez autora aplikacja VMPC Data Security. Więcej informacji o Bartoszu Żółtaku i VMPC można znaleźć pod adresem www.szyfrowanie.com.

Długość bezpiecznego hasła

Zadajmy więc sobie pytanie: ile znaków powinno mieć stosowane przez nas hasło do logowania, dostępu do zakodowanej partycji czy szyfrowanego archiwum plików?

Obecnie standardowa długość symetrycznego klucza kryptograficznego wynosi 128 bitów. Zwróćmy uwagę, że gdybyśmy chcieli uzyskać taki sam poziom bezpieczeństwa za pomocą hasła, musiałoby ono mieć – przy założeniu, że składa się z dużych i małych liter oraz cyfr – 22 znaki, ponieważ (26+26+10)

22

>>2

128

. Co więcej, hasło takie nie powinno zawierać ułatwiających zapamiętanie regularności, gdyż atakujący mógłby rozpatrzyć wyrażenia regularne przed innymi. Przykładowo mógłby ciąg znaków: „abcabcabcabcabcabcabca” sprawdzić przed „bexmdndrdavthfvevmxnbk”.

Pomocny generator

Należy zatem stosować hasła wygenerowane przez komputer, a nie wymyślone przez człowieka, który z natury szuka regularności. Możemy do tego celu użyć zarówno prostych aplikacji, umieszczonych na stronach WWW (patrz: ramka „Więcej informacji”), lub zaawansowanych narzędzi do tworzenia bezpiecznych haseł (piszemy o nich w dalszej części artykułu).

Fraz utworzonych przez najprostsze narzędzia nie powinniśmy jednak stosować do zabezpieczania bardzo poufnych danych. „Wymyślone” przez nie wyrażenia są stosunkowo łatwe do złamania, ponieważ zostały utworzone za pomocą generatora liczb pseudolosowych. Oprogramowanie to odczytuje pewne zmienne systemowe (np. godzinę) i na tej podstawie tworzy hasła o pożądanej przez użytkownika długości. Zastosowanie tego typu algorytmu oznacza, że potencjalnych fraz może być tyle, ile jest możliwych wartości początkowych licznika czasu. W praktyce będzie to ok. 4 miliardów (2

32

), bez względu na wybraną długość hasła. Jeśli zatem w ten sposób wygenerujemy nawet 20-znakowe wyrażenie, to i tak czas jego złamania będzie taki sam jak dla hasła 32-bitowego (czyli mniej więcej siedmioznakowego, złożonego z małych liter).