TIPS: Prosty sposób na hasła

W tym krótkim wpisie chcę polecić wam pewien sprytny sposób na bezpieczniejsze obchodzenie się z hasłami.

Żeby lepiej zrozumieć sens tego, o czym chcę napisać, zacznę od powiedzenia kilku słów o dwóch zasadniczych sposobach przechowywania haseł na stronach internetowych. Najprostszym sposobem jest po prostu zapisanie hasła bezpośrednio do bazy danych:

Baza danych z pięcioma użytkownikami. Hasło zapisane jest bezpośrednio w bazie danych

Logując się na taką stronę internetową, system sprawdza, czy w bazie danych istnieje użytkownik o podanym adresie email i sprawdza, czy podane hasło jest takie samo jak hasło zapisane w bazie danych. Jeżeli tak, to użytkownik zostaje zalogowany.

Takie rozwiązanie jest proste, jednak ma pewną zasadniczą lukę bezpieczeństwa. Jeżeli kiedyś jakiś złośliwy haker wykradnie dane z bazy danych, od razu pozna nasze hasło. Co jeżeli to samo hasło używane jest również do innej strony? Być może mamy to samo hasło do konta bankowego, poczty oraz konta do gry komputerowej?

Z tego właśnie powodu wprowadzono szyfrowanie haseł. Celem szyfrowania jest zmiana dowolnego ciągu znaków na inny, tajny ciąg znaków. Przykładem algorytmu szyfrującego może być algorytm md5. Hasło użytkownika już przy rejestracji zostaje zaszyfrowane, a w bazie danych zachowany jest tylko szyfr hasła, nie samo hasło. Na poniższym zdjęciu te same hasła, które przedtem były jawne, zostały zaszyfrowane, a do bazy danych wprowadzone został jedynie ich szyfry.

Baza danych z tymi samymi hasłami, ale korzystająca z szyfru md5

Przy logowaniu na taką stronę internetową, system najpierw zamienia podane przez użytkownika hasło na jego szyfr, a następnie sprawdza, czy w bazie danych istnieje użytkownik o podanym adresie email oraz porównuje szyfry hasła. Jeżeli są zgodne, to następuje zalogowanie użytkownika.

Zauważ, że hasła mają zawsze tę samą długość (w przypadku algorytmu md5), a szyfrowanie działa tylko w jedną stronę. Pisząc w jedną stronę, chodzi mi o to, że z hasła jawnego łatwo utworzyć jego szyfr, jednak z szyfru nie da się wytworzyć hasła (nie da się, lub zajęło by to zbyt wiele lat). Dzięki temu, nawet jeżeli baza danych wpadnie w niepowołane ręce, to haker i tak nie będzie w stanie wykorzystać tych informacji do zalogowania się na nasze konto, choćbyśmy wszędzie mieli to samo hasło. Haker będzie miał jedynie dostęp do szyfru hasła, a w polach logowania należy wprowadzić hasło jawne.

Problem leży jednak w tym, że jeżeli na jakiejkolwiek stronie hasła były przechowywane w postaci nie zaszyfrowanej i haker włamie się do takiej bazy, to pozna nasze hasło do wszystkich pozostałych witryn. W takim razie powinno się stosować inne hasła dla każdej strony. To jednak wiąże się z tym, że trzeba wszystkie te hasła pamiętać lub spisywać je w jakimś miejscu.

Dzisiaj mam jednak dla was małą propozycję. Osobiście od kilku lat tworzę hasła do stron na podstawie ich adresu URL. To znaczy – moje hasło jest inne dla każdej strony, ale nie muszę ich nigdzie zapisywać, ani pamiętać, bo wystarczy, że spojrzę na adres URL strony i już wiem jakie na tej stronie mam hasło. Żeby lepiej wyjaśnić o co mi chodzi, posłużę się konkretnym przykładem. Wybierzmy sobie najpierw jakiś schemat tworzenia hasła. Najlepiej, żeby schemat zawsze generował hasła o długości między 8, a 12 znaków. Wtedy nasze hasło będzie miało odpowiednią długość dla większości popularnych stron. Ze względu na chronienie się przed brutalnym zdemaskowaniem hasła (czyli próbą odgadnięcia hasła poprzez wpisanie wszystkich możliwych kombinacji liter), dobrze byłoby, żeby schemat generował hasła zawierające duże i małe litery oraz przynajmniej jedną cyfrę i znak specjalny.

Posłużmy się prostym schematem wymyślonym wyłącznie na potrzeby tego wpisu. Poniżej wypiszę zasady powstawania hasła:

  1. pierwsza litera hasła będzie taka sama jak pierwsza litera domeny strony internetowej (np. dla strony onet.pl, będzie to literka o),
  2. następnie doklejony będzie następujący ciąg znaków: G0Gr##n jeżeli jest to polska strona (końcówka .pl)
  3. a dla każdej nie polskiej strony doklejany będzie następujący ciąg znaków: 4m3r!ka

Spójrzmy na kilka przykładów haseł generowanych tym sposobem:

  • Witryna onet.pl – oGoGoGr##n
  • Witryna wp.pl – wGoGoGr##n
  • Witryna google.com – g4m3r!ka
  • Witryna rocksoft.pl – rGoGoGr##n

Hasło jest proste do zapamiętania oraz inne dla każdej witryny. Można ewentualnie pokusić się o bardziej zaawansowany schemat, dzięki któremu hasła nie będą aż tak podobne. Na szczęście każda mała różnica w haśle całkiem zmienia jego szyfr, więc już taka mała zmiana mocno utrudni hakerowi życie, nawet jeżeli pozna nasz szyfr w bazie danych innej strony.

Bardzo chętnie usłyszę, co myślicie o takim podejściu do haseł 🙂 Jakie wy macie metody na bezpieczne logowanie się? Używacie specjalnych programów?

źródło obrazka wyróżniającego: Top 19 Worst Passwords

Aksel N

Aksel Nooitedagt

Wierzę, że dzięki narzędziom i technologii możemy łatwiej osiągać nasze cele 🙂 Interesuje się tworzeniem aplikacji webowych i zarządzaniem projektami (nie tylko informatycznymi).

Like
Like Love Haha Wow Sad Angry
1311

Dodaj komentarz