Każdy użytkownik systemu uniksowego, ma ze swoim kontem skojarzone hasło. Wydaje się oczywiste, że hasło powinno być znane tylko użytkownikowi i systemowi operacyjnemu. Aby przechowywać hasła w bezpiecznej postaci, szyfrowane są one techniką zwaną ``jednostronnym skrótem'' ( ang. ``one-way hash'' ), czyli mogą być bardzo łatwo zaszyfrowane ale odwrócenie tego procesu jest praktycznie niemożliwe. Innymi słowy to co przed chwilą powiedzieliśmy nie jest do końca prawdą - system operacyjny nie zna tak naprawdę haseł - zna tylko zaszyfrowaną postać hasła. Jedynym sposobem sprawdzenia uzyskania hasła w ``czystym tekście'' jest przeszukanie całej przestrzeni możliwych kombinacji i sprawdzenie, która postać jawna daje w wyniku dokładnie ten sam skrót.
Na nieszczęście, jedyny sposób szyfrowania haseł który pojawił się z Uniksem bazował na DES, Standardzie Szyfrowania Danych ( ang. Data Encryption Standard ). Nie jest to problem dla użytkowników mieszkających na stałe w Stanach Zjednoczonych, ale ponieważ kod źródłowy DES nie mógł być eksportowany poza USA, FreeBSD musiało znaleźć sposób aby dopasować się zarówno do prawa Stanów Zjednoczonych jak i kompatybilności z wersjami Unixa używającymi szyfrowania DES.
Rozwiązaniem okazało się podzielenie bibliotek szyfrujących tak, by użytkownicy w Stanach Zjednoczonych mogli zainstalować ich wersje DES, a użytkownicy międzynarodowi nadal mieli dostęp do jakiejś metody szyfrowania. W ten sposób doszło do zastosowania we FreeBSD jako domyślnego algorytmu szyfrowania MD5. MD5 jest uważany za bezpieczniejszy niż DES, więc opcja instalacji tego standardu została zachowana z uwagi na zagadnienia kompatybilności.
Przed FreeBSD 4.4 libcrypt.a był linkiem symbolicznym wskazującym na bibliotekę wykonującą faktyczne szyfrowanie. Pojawienie się wersji FreeBSD 4.4 zmieniło libcrypt.a udostępniając konfigurowalną bibliotekę uwierzytelniania za pomocą skrótów kryptograficznych. Obecnie dostępne są funkcje oparte o DES, MD5 i Blowfish. Domyślnie, FreeBSD używa MD5 do szyfrowania haseł.
Identyfikacja metody, której FreeBSD używa do szyfrowania haseł jest stosunkowo prosta. Sprawdzenie haseł zebranych w pliku /etc/master.passwd jest jednym ze sposobów. Hasła zaszyfrowane algorytmem MD5 są dłuższe niż te zaszyfrowane przez DES i zaczynają się znakiem $1$. Hasła zaczynające się od $2$ zaszyfrowane są mechanizmem Blowfish. Algorytm DES nie daje łatwo rozróżnialnych cech, ale hasła są krótsze niż te szyfrowane MD5 i kodowane 64-znakowych alfabetem, który nie zawiera znaku $. Zatem relatywnie krótki ciąg znaków, nie zaczynający się od dolara jest z dużym prawdopodobieństwem hasłem DES.
Format haseł używany dla nowo ustawianych haseł kontrolowany jest przez właściwość ``passwd_format'' w pliku /etc/login.conf. Można ją ustawić na ``des'', ``md5'' lub ``blf''. Zajrzyj do strony podręcznika login.conf(5) po więcej informacji o możliwościach zmiany szczegółów logowania.
| Poprzedni | Spis treści | Następny |
| Zabezpieczanie FreeBSD | Początek rozdziału | S/Key |
This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
For questions about FreeBSD, read the
documentation
before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.