Wydano nową wersję passwdqc — zestawu narzędzi do kontrolowania złożoności haseł i fraz hasłowych, obejmującego moduł pam_passwdqc, programy pwqcheck, pwqfilter (dodany w tej wersji) oraz pwqgen do użytku ręcznego lub z skryptów, a także bibliotekę libpasswdqc. Obsługiwane są zarówno systemy z PAM (większość Linuxa, FreeBSD, DragonFly BSD, Solaris, HP-UX), jak i bez PAM (obsługiwany interfejs passwordcheck w OpenBSD, dołączono obudowę do użycia pwqcheck z PHP, istnieje płatna wersja dla systemu Windows, a programy i biblioteka mogą być również używane na innych systemach).
W porównaniu do poprzednich wersji dodano obsługę zewnętrznych plików filtracji haseł, w tym binarnych, które w tej chwili są realizacją ulepszonego filtru kukułkowego. Taki filtr gwarantuje, że żadne z zabronionych haseł nie przejdzie, choć może czasami prowadzić do fałszywych alarmów, których prawdopodobieństwo w przypadku używanych w passwdqc ustawieniach i algorytmie jest zaniedbywalnie małe. Sprawdzenie hasła pod kątem obecności w filtrze wymaga nie więcej niż dwóch dostępczy losowego odczytu z dysku, co jest bardzo szybkie i zazwyczaj nie powoduje nadmiernego obciążenia. serwera.
Do tworzenia i pracy z binarnymi filtrami w passwdqc dodano program pwqfilter. Może on stworzyć filtr zarówno z listy samych haseł, jak i z ich haszy MD4 lub NTLM. Obsługa haszy NTLM pozwala na importowanie haseł z listy HIBP (Pwned Passwords), dystrybuowanej w takiej formie. Włożono wiele pracy w optymalizację pwqfilter pod względem szybkości działania, kompaktowości uzyskiwanych filtrów oraz poziomu fałszywych alarmów. Na przykład stworzenie filtru kukułkowego z wskaźnikiem obciążenia 98% z pliku pwned-passwords-ntlm-ordered-by-hash-v7.txt o rozmiarze 21 GiB (22 GB) i zawierającego ponad 613 milionów wierszy zajmuje około 8 minut na procesorze Core i7-4770K. Otrzymany filtr zajmuje 2,3 GiB (2,5 GB) i ma poziom fałszywych alarmów wynoszący około 1 na 1,15 miliarda. Przy mniejszym docelowym wskaźniku obciążenia filtr może być tworzony znacznie szybciej i będzie miał poziom fałszywych alarmów jeszcze niższy, ale jego rozmiar będzie większy.
passwdqc doskonale radzi sobie z zapobieganiem słabym hasłom bez użycia zewnętrznych plików. Ich wykorzystanie może znacznie zwiększyć efektywność passwdqc, niemal nie powodując dodatkowych niedogodności dla użytkowników, lub może pozwolić na złagodzenie innych ograniczeń. Weryfikacja wybieranych przez użytkowników haseł pod kątem znanych wycieków jest zalecana przez NIST. Dla projektu Openwall to potencjalna możliwość finansowania rozwoju passwdqc (i nie tylko) poprzez sprzedaż gotowych filtrów, nie ograniczając użytkowników w możliwości samodzielnego tworzenia filtrów przy użyciu programu pwqfilter wydanego na licencji open source.
pwqfilter działa z dowolnymi ciągami i może być stosowany zamiast grep w wielu celach, nawet niezwiązanych z hasłami i bezpieczeństwem. W związku z tym, pwqfilter ma kilka opcji podobnych do tych w grep, unika używania nazw opcji, które byłyby sprzeczne z istniejącymi w grep, i stosuje te same kody zwrotu co w grep.
W zadaniach, w których fałszywe alarmy są niezwykle niepożądane, ich poziom może być obniżony, na przykład do jednego na kwintylion (miliard miliardów) przy współczynniku obciążenia do 44%. (Klasyczny filtr kukułkowy nie zapewnia tak znaczącego obniżenia poziomu fałszywych alarmów przy zmniejszaniu współczynnika obciążenia. W passwdqc osiąga się to dzięki poprawkom algorytmu.)
Źródło: opennet.ru
