Serveur Apache HTTP Version 2.4
Notes � propos des formats de chiffrement des mots de passe g�n�r�s et compris par Apache.
Voici les cinq formats de mots de passe qu'Apache reconna�t pour l'authentification de base. Notez que tous les formats ne sont pas support�s par toutes les plates-formes :
crypt(3)
avec une source d'entropie sur 32 bits
(seuls 12 bits sont utilis�s), et seulement les 8 premiers
caract�res du mot de passe. Non s�r.
$ htpasswd -nbB monNom monMot-de-passe
monNom:$2y$05$c4WoMPo3SXsafkva.HHa6uXQZWr7oboPiC2bT/r7q1BB8I2s0BRqC
$ htpasswd -nbm monNom monMot-de-passe
monNom:$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/
$ htpasswd -nbs monNom monMot-de-passe
monNom:{SHA}VBPuJHI7uixaa6LQGWx4s+5GKNE=
$ htpasswd -nbd monNom monMot-de-passe
monNom:rqXexS6ZhobKA
OpenSSL conna�t l'algorithme MD5 sp�cifique � Apache.
$ openssl passwd -apr1 monMot-de-passe
$apr1$qHDFfhPC$nITSVHgYbDAK1Y0acGRnY0
openssl passwd -crypt monMot-de-passe
qQ5vTYO3c8dsU
La source d'entropie pour un mot de passe CRYPT est constitu�e
des deux premiers caract�res (convertis en valeur binaire). Pour
valider monMot-de-passe
par rapport �
rqXexS6ZhobKA
$ openssl passwd -crypt -salt rq monMot-de-passe
Warning: truncating password to 8 characters
rqXexS6ZhobKA
Notez que sp�cifier monMot-d
au lieu de
monMot-de-passe
produira le m�me r�sultat car seuls
les 8 premiers caract�res des mots de passe CRYPT sont pris en
compte.
La source d'entropie pour un mot de passe MD5 se situe entre
$apr1$
et le caract�re $
suivant (sous
la forme d'une valeur binaire cod�e en Base64 - au maximum 8
caract�res). Pour valider monMot-de-passe
par rapport
� $apr1$r31.....$HqJZimcKQFAMYayBlzkrA/
$ openssl passwd -apr1 -salt r31..... monMot-de-passe
$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/
La variante SHA1 constitue probablement le format le mieux appropri� pour l'authentification DBD. Comme les fonctions SHA1 et Base64 sont en g�n�ral disponibles, d'autres logiciels peuvent renseigner une base de donn�es avec des mots de passe chiffr�s utilisables par l'authentification basique d'Apache.
Pour cr�er des mots de passe au format SHA1 pour l'authentification de base d'Apache dans divers langages :
'{SHA}' . base64_encode(sha1($password, TRUE))
"{SHA}" + new sun.misc.BASE64Encoder().encode(java.security.MessageDigest.getInstance("SHA1").digest(password.getBytes()))
"{SHA}" & ToBase64(BinaryDecode(Hash(password, "SHA1"), "Hex"))
require 'digest/sha1'
require 'base64'
'{SHA}' + Base64.encode64(Digest::SHA1.digest(password))
Utilisez la fonction APR : apr_sha1_base64
'{SHA}'||encode(digest(password,'sha1'),'base64')
Apache ne reconna�t qu'un format pour les mots de passe
d'authentification � base de condens�s - le condens� MD5 de la
cha�ne utilisateur:domaine-de-protection:mot-de-passe
sous la forme d'une cha�ne de 32 caract�res au format hexad�cimal.
domaine-de-protection
est l'identifiant du domaine de
protection de l'autorisation pass� en argument � la directive
AuthName
dans
apache2.conf.
Comme la fonction MD5 est en g�n�ral disponible, d'autres logiciels peuvent renseigner une base de donn�es avec des mots de passe chiffr�s utilisables par l'authentification � base de condens�s d'Apache.
Pour cr�er des mots de passe pour l'authentification � base de condens�s d'Apache dans divers langages :
md5($user . ':' . $realm . ':' .$password)
byte b[] = java.security.MessageDigest.getInstance("MD5").digest( (user + ":" + realm + ":" + password ).getBytes());
java.math.BigInteger bi = new java.math.BigInteger(1, b);
String s = bi.toString(16);
while (s.length() < 32)
s = "0" + s;
// La cha�ne s contient le mot de passe chiffr�
LCase(Hash( (user & ":" & realm & ":" & password) , "MD5"))
require 'digest/md5'
Digest::MD5.hexdigest(user + ':' + realm + ':' + password)
encode(digest( user || ':' || realm || ':' || password , 'md5'), 'hex')