Lehký popis formátů hesel používaných v Solarisu a Linuxu.
Solaris 8
Heslo je uloženo v /etc/shadow a je zašifrováno pomocí šifry DES. V hesle je platných prvních 8 znaků, zbytek může být jakýkoliv.
Solaris 9, 10
Heslo je uloženo v souboru /etc/shadow. Pro jeho zabezpečení je použita šifra DES přípaně MD5 crypt nebo Blowfish. Obecně se doporučuje využívat Blowfish, protože je bezpečnější než MD5 crypt. MD5 crypt ani Blowfih netrpí omezením na 8 platných znaků v hesle, měly by brát minimálně 255 znaků.
Relativně jednoduše lze rozeznat v jakém formátu je heslo uloženo podle jeho zápisu. Šifra DES se ukládá jako 13 znakový řetězec (XFWKPqalVraU2
). MD5 crypt se ukládá jako řetězec začínající $1$ ($1$COA52Z9a$tuEVG6vSXUz8rlZizosqA
). Blowfish hash začíná $2a$ ($2a$04$/dlXUpiyQTHSyB1.iG97t.Tpwjlmn4QaTvpQzFZUNDX.MREFFljp2
)
Výběr použité šifry (hashe) se provádí v souboru /etc/security/policy.conf
CRYPT_ALGORITHMS_ALLOW=1,2a,md5 CRYPT_DEFAULT=__unix__
V /etc/security/crypt.conf
je výpis dostupných šifer (hashu), kromě __unix__.
Linux
V Linuxu se hesla ukládají do souborů /etc/passwd nebo /etc/shadow. Ukládání hesla do souboru /etc/passwd je chyba v zabezpečení počítače, protože tento soubor je čitelný všem uživatelům systému. Někteří lidé řeknou “no a co? je to přece šifrované”, ale proč dávat útočníkovi kompletní seznam hesel a uživatelů systému? Existují nástroje, pomocí kterých je relativně snadné pro každého uživatele zkusit štěstí zda neuhádnou jeho heslo.
V dnešních distribucích se hesla ukládají do souboru /etc/shadow, ke kterému má přístup pouze uživatel root. Samozřejmě tam není uloženo heslo v čistě textové podobě, ale je tam umístěn ve zkryplené podobě nejčastěji ve formátu md5 crypt.
Jak v Solarisu tak i v Linuxu můžeme využívat nějaká centrální systém pro ukládání informací o uživatelích, takže hesla na uživatelském stroji nenajdete. Například lze využít NIS, NIS+, LDAP nebo třeba i MySQL. Vše se musí nastavit přes NSS v souboru /etc/nsswitch.conf případně ještě poladit v konfiguraci PAM knihovny.
Generování hesel
DES
[tsunami@vodik]$ openssl passwd -crypt heslicko YbuthdjKiXD46
[tsunami@vodik]$ mkpasswd -H des heslicko JH3jPJv2hv9vg
MD5
[tsunami@vodik]$ openssl passwd -1 heslicko $1$QahWEPoO$Y83bfcffHq4pPW/9e5iBk.
[tsunami@vodik]$ mkpasswd -H md5 heslicko $1$KFIMS3kO$7dNyqrlONblCPs24nMkBK0
Verze použitého SW
[tsunami@vodik]$ mkpasswd --version GNU mkpasswd 4.7.11 Copyright (C) 2001-2004 Marco d'Itri This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.