Poniższy dokument skierowany jest do administratorów, twórców i projektantów systemów informatycznych wymagających kontroli dostępu użytkowników i pozwalających na uwierzytelnienie z użyciem hasła.
CERT Polska rekomenduje następujące zasady dla systemu uwierzytelniającego użytkownika:
- POWINIEN stosować bezpieczny algorytm hashujący do przechowywania haseł1
- NIE POWINIEN wymuszać okresowej zmiany haseł użytkowników2
- NIE POWINIEN pozwalać na ustawienie hasła znajdującego się na liście słabych/często używanych haseł3
- NIE POWINIEN pozwalać na ustawienie hasła zawierającego przewidywalne człony (np. nazwa firmy, usługi)
- POWINIEN ustalać minimalną długość hasła na co najmniej 12 znaków
- POWINIEN pozwalać na ustawienie hasła o długości co najmniej do 64 znaków
- NIE POWINIEN wymagać dodatkowych kryteriów złożoności, np. znaków specjalnych, cyfr czy dużych liter
- POWINIEN wymuszać zmianę hasła jeżeli potwierdzono, bądź zachodzi podejrzenie, iż aktualne hasło zostało przejęte lub upublicznione
- POWINIEN podawać dokładny powód w przypadku odrzucenia nowego hasła
- NIE POWINIEN blokować wykorzystania funkcji “wklej” na polu hasła
- ZALECA SIĘ wsparcie dla uwierzytelniania dwuskładnikowego
- ZALECA SIĘ wyświetlanie użytkownikowi wskaźnika szacującego siłę nowego hasła
Ad. 1: Do zalecanych funkcji skrótu zabezpieczających hasło należą: Argon2, Bcrypt, PBKDF2 oraz Scrypt. Pozwalają one na ustawienie parametru definiującego kosztowność przetworzenia hasła (a co za tym idzie siłę), co zwiększa ich użyteczność w długim okresie czasu. Więcej informacji oraz rekomendacje nt. zalecanych wartości parametrów: https://tools.ietf.org/id/draft-whited-kitten-password-storage-00.html#name-kdf-recommendations
Ad. 2: 6 lutego 2019 uchylone zostało Rozporządzenie Ministra Spraw Wewnętrznych i Administracji z dnia 29 kwietnia 2004 r. w sprawie dokumentacji przetwarzania danych osobowych oraz warunków technicznych i organizacyjnych, jakim powinny odpowiadać urządzenia i systemy informatyczne służące do przetwarzania danych osobowych wymagające okresowej zmiany haseł w systemach przetwarzających dane osobowe. Więcej informacji na stronie: https://isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=wdu20041001024
Ad. 3: CERT Polska publikuje polską wersję słownika haseł będącą wynikiem analizy danych upublicznionych w wyciekach. Zawiera on zestaw około miliona najpopularniejszych haseł, posortowanych malejąco od haseł najbardziej popularnych. Może on posłużyć administratorom systemów przy wdrożeniu polityki haseł zgodnej z zaleceniami.
Powyższe rekomendacje zostały opracowane w oparciu o własne badania i obserwacje CERT Polska (więcej pod adresem cert.pl/hasla), oraz następujące źródła:
- NIST Special Publication 800-63B - Digital Identity Guidelines: https://pages.nist.gov/800-63-3/sp800-63b.html#memsecretver
- NCSC Guidance - Password administration for system owners: https://www.ncsc.gov.uk/collection/passwords/updating-your-approach
- FBI Protected Voices: https://www.fbi.gov/investigate/counterintelligence/foreign-influence/protected-voices
- Microsoft Password Guidance: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/06/Microsoft_Password_Guidance-1.pdf
- Microsoft Password policy recommendations: https://docs.microsoft.com/en-us/microsoft-365/admin/misc/password-policy-recommendations?view=o365-worldwide
- The Security of Modern Password Expiration: An Algorithmic Framework and Empirical Analysis: https://www.cs.unc.edu/~fabian/papers/PasswordExpire.pdf
- Quantifying the Security Advantage of Password Expiration Policies: http://people.scs.carleton.ca/~paulv/papers/expiration-authorcopy.pdf