Hasła



Rozpoczynając pracę przy komputerze, odwiedzając portale lub uruchamiając różnego rodzaju programy, jesteśmy często proszeni o podanie nazwy użytkownika oraz hasła. Jest to najpopularniejszy mechanizm uwierzytelniania, pozwalający udowodnić, że to właśnie my jesteśmy osobą, za którą się podajemy.

Nazwa użytkownika identyfikuje nas w danym systemie komputerowym i mogą być do niej przypisane określone prawa dostępu. Głównym wymogiem, jaki powinniśmy spełnić wybierając nazwę użytkownika, którą będziemy się posługiwać, jest jej unikalność. Poza tym istnieje dość duża dowolność, jeśli chodzi o jej tworzenie. W przypadku hasła powinno nam zależeć by było ono możliwie jak najbezpieczniejsze.

Zacznijmy jednak od początku, czyli od tego w jaki sposób hasła są przechowywane na serwerach. Mylne jest przekonanie, że hasła są wprost zapisane w bazach danych serwerów, do których się logujemy i podczas autoryzacji następuje po prostu ich porównanie. Gdyby hasła, rzeczywiście, były przechowywane w taki sposób, to administratorzy systemów mogliby bez najmniejszego problemu uzyskać dostęp do konta dowolnego klienta, a w przypadku, gdy taka lista dostałaby się w niepowołane ręce, skutki mogłyby okazać się katastrofalne.

Zwykle podczas tworzenia nowego hasła, jesteśmy proszeni o dwukrotne jego podanie. Ma to na celu wykluczenie pomyłki przy wpisywaniu (zwłaszcza, że z reguły hasło podajemy w "wygwiazdkowanym" polu i nie mamy możliwości zweryfikowania wzrokowo jego poprawności). Jeśli zawartość pól będzie się od siebie różnić hasło nie zostanie zaakceptowane. Gdy hasło zostanie przyjęte, zostaje ono wysłane do systemu wraz z towarzyszącą mu nazwą użytkownika. W tym momencie zostaje ono zaszyfrowane i w takiej formie zapisane w odpowiednim miejscu na serwerze. Na etapie uwierzytelniania hasło również jest szyfrowane i dopiero wtedy następuje porównanie z zapisanym wzorcem. Funkcje służące do szyfrowania działają w taki sposób, że dla danego ciągu znaków wyliczają tzw. hash, czyli ciąg znaków o ustalonej długości (zawsze taki sam dla tego samego hasła). Na podstawie samego hash-a nie da się natomiast wyliczyć prawdziwego hasła, dlatego przechowywanie hash-ów, w miejscu haseł jest znacznie bezpieczniejsze. Stąd też wynika, częsty brak możliwości, aby pracownik infolinii lub administrator przypomniał nam zapomniane przez nas hasło i dał możliwość zastąpienia go nowym.

Aby złamać hasło, najprościej mówiąc, należy hash-ować różne wyrażenia, aż trafi się na takie, którego hash będzie identyczny z hash-em odpowiadającym hasłu, którego szukamy. Istnieją różne metody służące do łamania haseł. Podstawową jest tzw. metoda brutalna (Brute Force), polegająca na sprawdzaniu wszystkich możliwych kombinacji znaków o różnych długościach, aż hasło okaże się prawidłowe. Jej rozwinięciem jest metoda słownikowa. Różni się ona tym, że korzysta ze słowników różnych języków wraz z odmianami w celu pominięcia absurdalnych ciągów znaków i skupieniu się na istniejących słowach i ich różnych kombinacjach. Do tego dochodzi coraz większa moc obliczeniowa komputerów. I tak dla przykładu w 2010 r. Marc Bevand stworzył oprogramowanie Whitepixel, które umożliwiało wyliczenie 33,1 mld hash-y w ciągu sekundy, zaś dwa lata później projekt Erebus v2.5 umożliwiał już wyliczenie 74,2 mld hash-y w ciągu sekundy.

Wspomniane wyżej liczby robią wrażenie, a są one z roku na rok coraz większe, dlatego warto zastanowić się czy hasła, którymi się posługujemy, nie są zbyt proste do odgadnięcia.

Zakładając konto często spotykamy się z pojęciem siły hasła, które wpisujemy. Jest to bardzo istotny aspekt i nie powinniśmy go ignorować (w końcu chodzi tu o bezpieczeństwo naszych danych). Dla przykładu hasło: "mama" będzie o wiele łatwiejsze do odgadnięcia, niż np.: "!M4m#!", ponieważ w tym drugim przypadku nie zadziałają typowe metody słownikowe i hasło składa się z większej ilości różnorodnych znaków.

Na koniec kilka zasad, które warto mieć na uwadze, chcąc stworzyć dobre hasło:

  • Nie używaj nazwy użytkownika (loginu) jako hasła (nawet ze zmianą wielkości liter.
  • Nie używaj swojego imienia i nazwiska, imion rodziny oraz nazw własnych.
  • Nie używaj informacji związanych z własną osobą (pesel, nr dowodu osobistego, itd.).
  • Nie używaj samych cyfr lub samych liter.
  • Używaj dużych i małych liter ("A" i "a" to dwa zupelnie rózne znaki).
  • Używaj znaków niealfabetycznych i cyfr (=+-*&%$ itp.).
  • Hasło powinno składać się z co najmniej 8 a najlepiej więcej niż 10 znaków.
  • Nie używaj tych samych haseł w wielu miejscach.
  • Pamiętaj o okresowej zmianie haseł.