Jakie hasła są bezpieczne?
- Patryk Królikowski,
- 05.10.2010, godz. 10:13
Eksperci od lat wieszczą koniec haseł statycznych jako metody uwierzytelniania. Jak jednak pokazuje praktyka, są to bardziej pobożne życzenia niż stan faktyczny. A skoro - jak wiele wskazuje - hasła raczej pozostaną w użyciu, spróbujmy podsumować to, co pozwala na korzystanie z nich w miarę bezpiecznie i wygodnie.
Za przykład potwierdzający utrzymywanie się haseł statycznych jako jednej z głównych metod uwierzytelniania, niech posłuży historia znana autorowi niniejszego artykułu. Jakiś czas temu wdrażano system uwierzytelniania dwuelementowego, opartego na tokenach znanego producenta, w jednej z instytucji finansowych. Wdrożeniem były objęte systemy Windows i Unix/Linux. Po pół roku od zakończenia wdrożenia już połowa administratorów systemów Unix wróciła do haseł statycznych. Po kolejnych 6 miesiącach tokenów używało już tylko 25% administratorów. Obecnie, gdy minęły ponad dwa lata od wdrożenia (okres działania tokenów wynosi w tym projekcie 3 lata), tylko jeden administrator systemów Unix pozostał wierny tokenom i stosuje je do uwierzytelniania w kluczowym z biznesowego punktu widzenia systemie finansowym - jednym systemie. Tokeny pozostały w użytku w niezmienionej liczbie jedynie do uwierzytelniania VPN.
Silne czy słabe?
Hasła statyczne należą do grupy mechanizmów uwierzytelniania jednoelementowego (obok uwierzytelniania wieloelementowego). Możemy wyróżnić przynajmniej kilka ich kategorii. Czasami korzysta się z haseł numerycznych przyjmujących postać PIN-ów. Z reguły nie są one długie (do 6 znaków), a ich zastosowanie ogranicza się w korporacjach do urządzeń fizycznej kontroli dostępu. Wykorzystuje się je również jako mechanizm zabezpieczania dostępu do wieloelementowych urządzeń uwierzytelniania (np. tokenów). Najpopularniejsze są jednak wieloznakowe hasła alfanumeryczne.Zobacz również:
- Dzisiaj mamy Światowy Dzień Hasła
- Użytkownicy dalej konfigurują łatwe do odgadnięcia hasła
- Menedżer haseł open source - czy warto się nimi interesować?
Siłę hasła zwykło się określać terminem entropia (stopień losowości i nieuporządkowania), który zawdzięczamy nieżyjącemu już matematykowi Claude Shannonowi. Jednostką entropii jest zwyczajowo bit. Im wyższą ma wartość, tym hasło bezpieczniejsze. Ponieważ - jak wiadomo - "matematyka jest wszędzie," także w naszym przypadku powstało równanie, które może posłużyć do obliczenia entropii hasła:
h=log2(b), a potem h*l
- gdzie "b" to zbiór znaków, z którego można stworzyć hasło, a "l" to liczba znaków w haśle.
Jeżeli przyjmiemy, że na klawiaturze komputera mamy do dyspozycji 94 znaki [h=log2(94)], to entropia jednego znaku wyniesie 6.555. Jeżeli pomnożymy tą wartość przez długość hasła uzyskamy entropię hasła w bitach.
Przyjmuje się, że bezpieczne hasło powinno składać się co najmniej z 8 znaków i zawierać cyfry, duże i małe litery oraz znaki specjalne (np. #,$). Okazuje się przy tym, że nie bez znaczenia jest "mechanizm" generowania haseł. Hasła tworzone przez użytkowników mają znacznie niższy poziom entropii niż hasła generowane losowo. Szacuje się, że np. 8-znakowe hasło tworzone przez użytkownika może sięgnąć 30 bitów, podczas gdy hasło generowane losowo - 52 bitów, przy założeniu, że wykorzystywany jest alfabet 94-znakowy (klawiatura komputera). Dzieje się tak głównie dlatego, że użytkownicy podświadomie stosują pewne wzorce, np. częściej używają "@" niż "/". Nie mówimy tutaj o królowej haseł wśród administratorów: "dupa1" lub jego bardziej finezyjnej "DuP@1". Proponujemy wyliczenie entropii takiego hasła.