Pokazujemy, jak stworzyć hasło, którego nie da się złamać

7 minut czytania
Komentarze

Hasła są jedną z najpopularniejszych metod uwierzytelniania — są powszechnie używane i każdy wie, jak to działa. Nie wymaga to też żadnych dodatkowych urządzeń ani poświadczeń. Prostota idzie tu w parze z wygodą — hasło można zmienić w dowolnym momencie, w przeciwieństwie do metod wykorzystujących biometrię. Trudno bowiem zmienić swój odcisk palca, kształt twarzy czy siatkówkę oka.

Ale hasła wiążą się też z pewnymi niedogodnościami — przede wszystkim bezpieczeństwo zależy od długości i jakości hasła — im bardziej złożone, tym lepiej, ale przez to są one trudniejsze do zapamiętania. Co więcej, nie jest wykluczone, że inne osoby odgadną stosowane hasło lub będą dążyć do jego złamania.

fot. Gerd Altmann / Pixabay

Jakie hasła są słabe?

Generalne im prostsze, tym słabsze. Do takich należą hasła o niskiej złożoności — takie, które mają mniej niż 12 znaków i obejmują tylko jedną grupę znaków (np. wyłącznie cyfry lub wyłącznie litery). Kolejną grupą są hasła, które można odgadnąć z kontekstu — dotyczy to przede wszystkim informacji, do których ma dostęp osoba znająca ofiarę (bezpośrednio lub poprzez social media). Chodzi tutaj o stosowanie jako hasła imienia lub nazwiska, imienia partnera lub dziecka, daty urodzin, ewentualnie nazwy lub nazwiska ulubionych zespołów, aktorów itp.

fot. John Schnobrich / Unsplash

Łatwe do rozszyfrowania są też hasła, które wykorzystują popularne ciągi znaków: qwerty, 123123, 123456, 11111, qwe123 albo nieśmiertelne „password”, a także hasła, które można znaleźć w słownikach.

Słabym hasłem jest też takie, które wykorzystywane jest w takiej samej postaci w różnych serwisach albo gdy użytkownik stosuje taką samą strukturę tworzenia haseł dla poszczególnych usług (typu gmail123, adobe123 lub D7$4?gadobe, D7$4?gmail). W ten sposób atakujący, gdy pozna strukturę i jedno hasło, może dostać się do innych kont i usług ofiary.

Jak ujawniane są hasła?

Hasła należą do metod wykorzystujących coś, co wiesz (something you know), czyli informację będącą w wyłącznym posiadaniu uprawnionego podmiotu. A przynajmniej w teorii. Jest bowiem wiele metod, aby je poznać.

fot. Gerd Altmann / Pixabay

Odgadywanie haseł

To zaskakująco skuteczna metoda w sytuacji, gdy użytkownik korzysta z domyślnie ustawionego loginu (np. admin, guest, test) i hasła (które czasami brzmi tak samo jak login), łatwej do odgadnięcia nazwy (prawdziwe imię lub nazwisko) oraz ze słabych, prostych haseł. Według badań około 10% użytkowników ustawia swoje imię jako hasło. Co więcej, wielu nie zmienia domyślnie ustawionych loginów i haseł w wykorzystywanych urządzeniach, np. routerach.

Łamanie haseł

Realizowane jest poprzez systematyczne testowanie kolejnych kombinacji znaków i porównywanie ich z dostępnymi źródłami (np. z dostępnymi słownikami, wykazami typowych haseł i in) oraz poprzez atak typu brute-force. W tym przypadku kolejno testowane są wszystkie możliwe kombinacje wszystkich znaków, a współczesne komputery potrafią przeprowadzić miliardy tego typu operacji na sekundę, wykorzystując do tego zarówno moc obliczeniową procesora, jak i karty graficznej. Tego typu ataki są w zasadzie w 100% skuteczne, ale jeśli hasło jest wystarczająco długie, proces ten może trwać naprawdę długo – od niemal natychmiastowego rezultatu do stuleci…

Teraz przyda się trochę matematyki. Jak w prosty sposób policzyć liczbę możliwych wariantów haseł na podstawie długości oraz liczby użytych znaków.

Do wykorzystania mamy:

  • Wielkie litery: od A do Z (26 znaków)
  • Małe litery: od a do z (26 znaków)
  • Cyfry: od 0 do 9 (10 znaków)
  • Symbole (33 znaki): (spacja) ! ” # $ % & ’ ( ) * + , – . / : ; < = > ? @ [ \ ] ^ _` { | }

Liczbę możliwych kombinacji można policzyć z równania:

Liczba haseł = (liczba znaków)długość hasła

Załóżmy, że mamy hasło o długości 5 znaków, które wykorzystuje w swojej budowie 36 znaków (np. zestaw małych liter oraz zestaw cyfr).

W ten sposób: 365 = 60 466 176 kombinacji

Jak to wygląda w przypadku haseł różnej długości z wykorzystaniem różnych zestawów znaków:

Mimo milionów możliwych kombinacji komputer jest w stanie rozszyfrować je w niecałą sekundę – zakładając, że można wygenerować 100 miliardów haseł na sekundę. Dlatego im dłuższe hasło, które wykorzystuje zróżnicowany zestaw znaków (małe i duże litery, cyfry i znaki specjalne), tym dłuższy będzie czas, tym dłuższy czas będzie potrzebny na jego złamanie.

Łamanie hasła metodą brute force

Wybory haseł użytkowników są zazwyczaj przewidywalne, więc najpierw testuje się hasła stosowane w przeszłości, tj. słowa ze słownika i hasła uzyskane z różnych wycieków, włamań i baz danych. Na stronie https://haveibeenpwned.com/Passwords można sprawdzić, czy stosowane przez was hasło zostało już kiedykolwiek ujawnione, stając się słabszym zabezpieczeniem.

Przechwytywanie haseł

To kolejna metoda, która może wykorzystywać oprogramowanie do sniffingu – atakujący przechwytuje pakiety sieciowe i przeszukuje je pod kątem nazw użytkowników i haseł. Jest to tez realizowane poprzez keyloggery oraz oprogramowanie typu malware (np. trojany).

login i hasło - obydwa powinny być unikalne
fot. Thomas Breher / Pixabay

Do uzyskiwania haseł wykorzystać można wiele metod socjotechnicznych (social engineering). Są one wyjątkowo skuteczne, a ofiary zupełnie nieświadomie ujawniają wrażliwe dane. Dodajmy do tego phishing, opierający się na fałszywych mailach, zachęcających do zalogowania się, otworzenia pliku lub zainstalowania aplikacji (wykorzystujące też spoofing, czyli podstawione dane wiarygodnego nadawcy).

Dostęp do danych może nastąpić przez próbę zresetowania hasła przez atakującego, o ile użytkownik zastosował wyjątkowo słabe zabezpieczenie — na przykład nazwisko panieńskie matki, które można „wydobyć” poprzez poszperanie w mediach społecznościowych ofiary.

Jakie hasła są silne?

Długie, niesłownikowe i unikatowe. Silne hasła są skomplikowane i trudne do odgadnięcia, ale najczęściej niemożliwe do zapamiętania przez użytkownika.

Aby jak najbardziej utrudnić odgadnięcie lub złamanie hasła, warto stosować w nim małe i wielkie litery, a także cyfry i znaki specjalne ($% &:; -_? §! …) i ustalać minimalną długość na 12 znaków. Zresztą wiele serwisów ma określone wytyczne dotyczące budowy hasła i wymusza ich stosowanie na użytkownikach. Można też stosować, zamiast typowego hasła (password), bardziej rozbudowane frazy (passphrase), czyli kombinacje kilku słów.

Przykład hasła, którego złamanie jest praktycznie niemożliwe dla maszyny (bo przy obecnej technologii zajęłoby to kilkaset trylionów lat) to chociażby:

123@ndrO!d4568Dz1eW!ęć

fot. Markus Spiske / Unsplash

Pewnie znacie kilka rekomendacji co do tworzenia haseł — ale warto dodać, że obecnie od wielu z nich się odchodzi, gdyż wcale nie przekładały się na zwiększenie bezpieczeństwa. Taką zakorzenioną w środowisku praktyką było na przykład okresowe wygasanie haseł, czyli przymuszanie użytkowników do zmiany haseł co kilka tygodni/miesięcy. Owocowało to stosowaniem prostych haseł i przewidywalnych algorytmów podczas ich zmiany. Niekoniecznie sprawdzi się też narzucanie zestawu znaków, bo gdy serwis odrzuci hasło, gdyż nie ma w nim znaku specjalnego, to niemal pewne jest, że użytkownik doda na jego końcu wykrzyknik.

Oczywiście nawet najsilniejsze hasło nie pomoże, gdy doszło do włamania do serwerów i kradzieży bazy danych z danymi użytkowników. Jeśli przechowywane przez poszczególne aplikacje czy firmy loginy i hasła nie są odpowiednio zabezpieczone, naraża to wszystkich – niezależnie od siły ustawionych zabezpieczeń.

Przeczytaj także: Jak oszczędzać pieniądze z aplikacjami na telefon? Oto co warto zainstalować

zdjęcie główne: fot. Canva Photo/Getty Images/designer491

Motyw