
Artykuł jest częścią serii opracowań zagadnień obowiązujących na egzaminie CompTIA Security+ SY0-701. Zapisz się na newsletter, jeżeli nie chcesz przegapić kolejnych publikacji.
Hasła nigdy nie powinny być przechowywane w jawnej postaci (ang. plain text), więc przeważnie zapisuje się je w formie skrótów (ang. hashing) obliczonych dzięki kryptograficznych funkcji skrótu.
Obliczenie takiego skrótu jest operacją, która zajmuje trochę czasu. Z perspektywy użytkownika są dzieje się to przeważnie w mgnieniu oka, jednakże dla procesora czynność, która trwa choćby kilka milisekund jest już uznawana za czasochłonną. Może się wydawać, iż pożądane jest błyskawiczne obliczanie skrótów, jednakże należy mieć na uwadze, iż szybkie funkcje hashujące to także skuteczniejsze ataki siłowe (można sprawdzić więcej skrótów w krótszym czasie).
Aby utrudnić ataki typu brute-force, oprócz dodawania soli (ang. salting) do haseł, stosuje się również technikę o nazwie key stretching. Jest to celowe wydłużenie czasu obliczeń wykonywanych przez funkcję skrótu. Implementacja tej techniki polega zwykle na kilkukrotnym wywołaniu funkcji hashującej odpornej na kolizje – czyli z hasła jest liczony skrót, potem z tego skrótu liczony jest kolejny skrót i tak dalej. Okazuje się bowiem, iż w przypadku funkcji silnie odpornych na kolizje, wielokrotne wyliczanie skrótu nie zwiększa prawdopodobieństwa znalezienia kolizji.
Użytkownikowi logującemu się do systemu nie robi tak naprawdę różnicy, czy weryfikacja jego danych potrwa 5 czy 200 milisekund, ale dla atakującego, który jest zmuszony sprawdzić miliony kombinacji, jest to już bardzo znaczące utrudnienie, bo całkowity czas potrzebny na złamanie hasła mocno się wydłuża.
W związku z powyższym, aktualnie zaleca się stosowanie funkcji z rodziny PBKDF (Password-Based Key Derivation Function). Są to specjalne funkcje, dedykowane dla systemów kryptograficznych, które łączą w sobie zalety funkcji skrótu wraz z dodatkowymi technikami zabezpieczeń, takimi jak np. key stretching czy wspomniane wcześniej solenie haseł.
Materiały źródłowe
- SY0-601: Metody łamania haseł – opracowanie dotyczy starszej edycji egzaminu CompTIA Security+ SY0-601, ale zawiera dodatkowe informacje o różnych technikach ochrony haseł.