Hasła trudne do odgadnięcia

Hasła trudne do odgadnięcia

  • Comments 4
  • Likes

Jakie hasło jest bezpieczne? Takie, które trudno jest odgadnąć. Istnieją tutaj dwa aspekty: pierwszy, dotyczący haseł łatwych do powiązania z kolegą z pracy (numer rejestracyjny, imię kota czy data urodzin żony) i drugi – bazujący na wyjątkowej popularności haseł takich jak qwerty, blahblah czy hello123. W polskich realiach dużą popularność mają też wulgaryzmy, ale przytaczanie ich tutaj wydaje się zbędne ;)

Pierwszy przypadek dotyczy "przyjacielskich" ataków i jeżeli ktoś używa hasła prostego to powiązania ze swoim życiem codziennym – sam się o zaatakowanie prosi.

Drugi przypadek jest trudniejszy. Skąd biedny użytkownik ma wiedzieć, ze jego super tajne hasło "volcom1" jest jednym z najczęściej używanych? Jakimś podejściem są słowniki zabronionych haseł, ale to rozwiązuje tylko część problemu.

Z dobrym pomysłem przychodzi tutaj niezawodna jak zawsze ekipa Microsoft Research. W jednym z dokumentów, zaproponowali, aby sztywne reguły polityki haseł zastąpić elastycznym wymogiem, aby nowe hasło nie było takie samo jak któreś z najpopularniejszych haseł w danym środowisku. Idea jest naprawdę ciekawa: system broni się sam, ponieważ każde nowe hasło jest sprawdzane pod kątem popularności. Jaki to ma efekt w praktyce, łatwo sobie wyobrazić, wiedząc na przykład, że na forach bazujących na phpBB ponad 8% haseł udaje się odgadnąć w pięciu próbach (123456, password, phpbb, qwerty, 12345).

Implementacja polityki bazującej na popularności haseł jest w przypadku serwisów WWW dość prosta i nie trzeba jej chyba tutaj omawiać. Warto natomiast zastanowić się przez parę chwil jak to zrobić w środowisku bazującym na Active Directory. Wbrew pozorom nie jest to trudne. System Windows przy każdej zmianie hasła wywołuje z zarejestrowanych bibliotek DLL funkcję PasswordFilter() i przekazuje jej hasło z pytaniem, czy jest ono dozwolone. Tak więc, wystarczy napisać kawałek kodu, zapamiętujący na przykład MD5 dla każdego nowego hasła i sprawdzający jak często dana suma kontrolna występuje na liście.

Poza samą ideą, oczywiście warto skupić się na naprawdę istotnych detalach takich jak:

  • Konieczność bezpiecznego przetwarzania haseł przez PasswordFilter() i bezpiecznego przechowywania skrótów
  • Konieczność podłączenia biblioteki DLL na każdym kontrolerze domeny
  • Mądre wyliczanie funkcji skrótu (na przykład od drugiego do ósmego znaku hasła) tak, aby samym faktem odrzucenia hasła jako zbyt popularne nie dać zbyt oczywistej podpowiedzi atakującemu, że ktoś takiego hasła już używa.

Na liście najpopularniejszych haseł warto również umieścić hasła historyczne. Dzięki temu, poza większą bazą sprawdzanych ciągów znaków zyskamy również zabezpieczenie przed "recyclingiem" haseł oraz budowaniem haseł na bazie tego samego trzonu, ze zmieniającą się końcówką odpowiadającą na przykład numerowi miesiąca.

Oczywiście, całe wszystkie te dywagacje mają sens wtedy, gdy hasła są "same z siebie" bezpieczne, czyli gdy do ich odgadnięcia jest potrzebna odpowiednio duża ilość prób. Ale to już zupełnie inny temat, omawiany już wcześniej na tym blogu.

Autor: Grzegorz Tworek [MVP]

Comments
  • Grzesiek, tak z ciekawosci: ile znasz osob, ktore napisza dlla z PasswordFilter() i skorzystaja z niego w AD?

  • No mi się zdarzało... I nie zawsze celem było tylko filtrowanie ;)

    Tak poważniej, to wydaje mi się, że ta funkcjonalność trochę została zapomniana i jej przypomnienie nie zaszkodzi. Napisanie takiej DLLki jest stosunkowo proste nawet dla nie-programisty. A nuż ktoś spróbuje?

  • hehe, ale się uśmiałam :D to już poradniki na onecie są sensowniejsze i bardziej merytoryczne.

  • Każdy czyta poradniki mniej więcej na swoim poziomie. Nikogo nie przekonuję, że blog technet jest bardziej właściwy niż onet. Dla jednych jest, dla innych nie i na szczęście zasobów w Internecie nie brakuje.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment