Hasła użytkowników zazwyczaj przechowujemy w bazie. Co robimy aby zminimalizować skutki wycieku?
Opublikowano 22.12.2022 14:12
Czasami przy pomocy ataku SQL Injection można wykraść hasła z bazy danych. Firmy chcą minimalizować skutki takiego wycieku dlatego zapisują je w formie hasha. Funkcja skrótu zamienia hasło na hash.
Można to porównać do miksera, który robi smoothie.
Jedyna pewna metoda na odnalezienie hasła to sprawdzanie wszystkich możliwości po kolei. Czyli sprawdzamy hasło:
Może to trwać bardzo długo. Najpierw używa się więc szybszych metod. Najprostsza to atak słownikowy.
Mamy plik tekstowy z hasłami – każde w nowej linii. Program wylicza na ich podstawie hashe i porównuje z tym, co chcemy znaleźć. Można tak generować nowe słowa – łącząc frazy z dwóch różnych słowników. Program pozwala również na dodawanie znaków na początek/koniec hasła.
Minusy? Hasła nie ma w słowniku – to go nie znajdziemy.
Niektórzy tworzą hasła używając "algorytmu". Na przykład zamieniają każdą literę „s” na znak „$”.
Reguły to specjalny mini język programowania. Pokazuje on jak należy zmienić hasło. Zapisuje się je w postaci kilku liter:
Jeśli w słowniku mamy hasło „kacper” to reguła „uk$9” zamieni je na „AKCPER9”.
Inną opcją są maski. Próbujemy przewidzieć jakie znaki użyto w konkretnym miejscu hasła. Strona prosi o dużą literę? Pewno użytkownik poda ją na początku. Wymagana jest cyfra? Może zostanie dodana na koniec.
To są nasze przypuszczenia. Jeśli są słuszne? Przyspieszą atak. Maska ?l?d?s oznacza:
Taką maską sprawdzimy więc hasła w stylu: a4! i b2%.
Więcej opowiadam w filmie: jak wygląda łamanie haseł.