Hesla v Solarisu a Linuxu

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.