NFsec Logo

Przejście z MD5 na SHA512 w systemach RedHat/CentOS 5.x (Fedora 9)

16/03/2013 w Bezpieczeństwo Brak komentarzy.  (artykuł nr 401, ilość słów: 217)

S

ystemy z rodziny RHEL w wersji 5‘tej korzystają z kryptograficznej funkcji skrótu MD5 do przechowywania haseł systemowych. Nie jest to zły algorytm, ale nie na tyle dobry i trudny do złamania – aby obecnie korzystać z jego możliwości. W celu zmiany metody szyfrowania z MD5 na SHA512, która jest o wiele bezpieczniejsza (i używana standardowo w wersji 6.x) wystarczy wydać polecenie:

authconfig --passalgo=sha512 --update

Spowoduje to wprowadzenie zmian w plikach: /etc/login.defs oraz /etc/pam.d/system-auth:

--- /etc/login.defs ---
# Use MD5 or DES to encrypt password? Red Hat use MD5 by default.
MD5_CRYPT_ENAB no
ENCRYPT_METHOD SHA512

--- /etc/pam.d/system-auth ---
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

Od tego momentu wszystkie hasła zaszyfrowane w MD5 w pliku /etc/shadow z postaci:

root:$1$emxykVlN$wjTIYL1ZAAI.qj6PSOEYT.:15780:0:99999:7:::

zostaną zamienione na:

root:$6$rounds=95000$Il6J8/w3$f5uUXoyBIOtEoy3Y3dsA53f6FYccKXJVfsFFx
aiFBNb94GhbvPx.ggTxcydbXYDLaJZxq7Ng9NovtHa.RhzTf1:15780:0:99999:7:::

Ciekawą opcją przy używaniu SHA512 jest opcja rounds – określa ona ilość “przebiegów” szyfrowania (standardowo 5000), czyli od strony technicznej wygląda to następująco:

klucz = szyfruj(hasło)
dla od 1 do 5000 wykonaj
klucz = szyfruj(klucz)

Jeśli chcemy zaimplementować większą liczbę rund szyfrowania (co znacznie utrudnia złamanie hasła) wystarczy w pliku /etc/pam.d/system-auth do w/w linii dodać kolejny parametr rounds=95000. W wersji 6.x możemy dodać zakres rund do pliku /etc/login.defs:

SHA_CRYPT_MIN_ROUNDS 95000
SHA_CRYPT_MAX_ROUNDS 105000

Więcej informacji: Support for SHA-256 and SHA-512 passwords

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , , , , , , , , ,

Komentowanie tego wpisu jest zablokowane.