password_encryptions.xml.fr revision e8014e9d44b389ea524dba7c7fc0d57c072e7e56
842ae4bd224140319ae7feec1872b93dfd491143fielding<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
842ae4bd224140319ae7feec1872b93dfd491143fielding<?xml-stylesheet type="text/xsl" href="/style/manual.fr.xsl"?>
842ae4bd224140319ae7feec1872b93dfd491143fielding<!-- English Revision : 1420686 -->
842ae4bd224140319ae7feec1872b93dfd491143fielding<!-- French translation : Lucien GENTIS -->
842ae4bd224140319ae7feec1872b93dfd491143fielding<!-- Reviewed by : Vincent Deffontaines -->
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Licensed to the Apache Software Foundation (ASF) under one or more
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd contributor license agreements. See the NOTICE file distributed with
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd this work for additional information regarding copyright ownership.
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd The ASF licenses this file to You under the Apache License, Version 2.0
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd (the "License"); you may not use this file except in compliance with
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd the License. You may obtain a copy of the License at
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd Unless required by applicable law or agreed to in writing, software
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd distributed under the License is distributed on an "AS IS" BASIS,
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd See the License for the specific language governing permissions and
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd limitations under the License.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <parentdocument href="./">Documentations diverses</parentdocument>
e18e68b42830409bf48de0df9eed3fe363664aa7aaron <p>Notes à propos des formats de chiffrement des mots de passe
70535d6421eb979ac79d8f49d31cd94d75dd8b2fjorton générés et reconnus par Apache.</p>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <section id="basic"><title>Authentification de base</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>Voici les cinq formats de mots de passe qu'Apache reconnaît
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse pour l'authentification de base. Notez que tous les formats ne sont
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse pas supportés par toutes les plates-formes :</p>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dd>"$2y$" + résultat de l'algorithme de chiffrement crypt_blowfish. Voir le fichier
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse source APR <a
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse href="http://svn.apache.org/viewvc/apr/apr/trunk/crypto/crypt_blowfish.c?view=markup">crypt_blowfish.c</a>
05413593151a238718198cc04ca849b2426be106rse pour plus de détails à propos de cet algorithme.</dd>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dd>"$apr1$" + le résultat d'un algorithme spécifique à Apache
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse utilisant un condensé MD5 réitéré (1000 fois) de combinaisons
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse variées du mot de passe et d'une source d'entropie sur 32 bits.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Voir le fichier source APR <a
434ad3e8e769a6a7a78c15f3ae2f7ae3adbfbb49wrowe href="http://svn.apache.org/viewvc/apr/apr/trunk/crypto/apr_md5.c?view=markup">apr_md5.c</a>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse pour les détails de l'algorithme.</dd>
05413593151a238718198cc04ca849b2426be106rse <dd>"{SHA}" + un condensé SHA-1 du mot de passe codé en
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Base64. Non sécurisé.</dd>
87a1c79b7b37702a254920ca5214fb282a4fb085dougm <dd>Unix seulement. Utilise la fonction Unix traditionnelle
87a1c79b7b37702a254920ca5214fb282a4fb085dougm <code>crypt(3)</code> avec une source d'entropie sur 32 bits
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse (seuls 12 bits sont utilisés), et seulement les 8 premiers
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse caractères du mot de passe. Non sécurisé.</dd>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dt>PLAIN TEXT (autrement dit <em>non chiffré</em>)</dt>
e8f95a682820a599fe41b22977010636be5c2717jim <dd>Windows & Netware seulement. Non sécurisé.</dd>
e8f95a682820a599fe41b22977010636be5c2717jim <section><title>Générer des mots de passe avec htpasswd</title>
e8f95a682820a599fe41b22977010636be5c2717jim $ htpasswd -nbB monNom Mon-Mot-de-passe<br />
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse monNom:$2y$05$c4WoMPo3SXsafkva.HHa6uXQZWr7oboPiC2bT/r7q1BB8I2s0BRqC
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse </example>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse $ htpasswd -nbm monNom Mon-Mot-de-passe<br />
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse monNom:$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $ htpasswd -nbs monNom Mon-Mot-de-passe<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse monNom:{SHA}VBPuJHI7uixaa6LQGWx4s+5GKNE=
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $ htpasswd -nbd monNom Mon-Mot-de-passe<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse monNom:rqXexS6ZhobKA
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </section>
87a1c79b7b37702a254920ca5214fb282a4fb085dougm <title>Générer des mots de passe CRYPT et MD5 avec le programme
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse OpenSSL en ligne de commande</title>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse <p>OpenSSL connaît l'algorithme MD5 spécifique à Apache.</p>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $ openssl passwd -apr1 Mon-Mot-de-passe<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $apr1$qHDFfhPC$nITSVHgYbDAK1Y0acGRnY0
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse openssl passwd -crypt Mon-Mot-de-passe<br />
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse qQ5vTYO3c8dsU
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <title>Valider des mots de passe CRYPT et MD5 avec le programme
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse OpenSSL en ligne de commande</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>La source d'entropie pour un mot de passe CRYPT est constituée
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse des deux premiers caractères (convertis en valeur binaire). Pour
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse valider <code>Mon-Mot-de-passe</code> par rapport à
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse $ openssl passwd -crypt -salt rq Mon-Mot-de-passe<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Warning: truncating password to 8 characters<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse rqXexS6ZhobKA
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse <p>Notez que spécifier <code>Mon-Mot-</code> au lieu de
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <code>Mon-Mot-de-passe</code> produira le même résultat car seuls
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse les 8 premiers caractères des mots de passe CRYPT sont pris en
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse compte.</p>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>La source d'entropie pour un mot de passe MD5 se situe entre
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse <code>$apr1$</code> et le caractère <code>$</code> suivant (sous
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse la forme d'une valeur binaire codée en Base64 - au maximum 8
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse caractères). Pour valider <code>Mon-Mot-de-passe</code> par rapport
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse à <code>$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/</code></p>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $ openssl passwd -apr1 -salt r31..... Mon-Mot-de-passe<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $apr1$r31.....$HqJZimcKQFAMYayBlzkrA/
e8f95a682820a599fe41b22977010636be5c2717jim </section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <section><title>Champs mot de passe de base de données pour
14099c5540ce39114b5501a71ff96e40f48efc4bmartin mod_dbd</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>La variante SHA1 constitue probablement le format le mieux
7f683bb300df767164724ebc664f339ac396b434dougm approprié pour l'authentification DBD. Comme les fonctions SHA1 et
e8f95a682820a599fe41b22977010636be5c2717jim Base64 sont en général disponibles, d'autres logiciels peuvent
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse renseigner une base de données avec des mots de passe chiffrés
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse utilisables par l'authentification basique d'Apache.</p>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>Pour créer des mots de passe au format SHA1 pour
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse l'authentification de base d'Apache dans divers langages :</p>
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme '{SHA}' . base64_encode(sha1($password, TRUE))
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse "{SHA}" + new sun.misc.BASE64Encoder().encode(java.security.MessageDigest.getInstance("SHA1").digest(password.getBytes()))
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
14099c5540ce39114b5501a71ff96e40f48efc4bmartin "{SHA}" & ToBase64(BinaryDecode(Hash(password, "SHA1"), "Hex"))
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse require 'base64'<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse '{SHA}' + Base64.encode64(Digest::SHA1.digest(password))
e8f95a682820a599fe41b22977010636be5c2717jim </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Utilisez la fonction APR : apr_sha1_base64
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse installées)</title>
e8f95a682820a599fe41b22977010636be5c2717jim '{SHA}'||encode(digest(password,'sha1'),'base64')
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </section>
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme <section id="digest"><title>Authentification à base de condensés - (digest)</title>
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme <p>Apache ne reconnaît qu'un format pour les mots de passe
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse d'authentification à base de condensés - le condensé MD5 de la
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse chaîne <code>utilisateur:domaine-de-protection:mot-de-passe</code>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse sous la forme d'une chaîne de 32 caractères au format hexadécimal.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <code>domaine-de-protection</code> est l'identifiant du domaine de
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse protection de l'autorisation passé en argument à la directive
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <directive module="mod_authn_core">AuthName</directive> dans
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <section><title>Champs de mot de passe de base de données pour
a0e0d20b666cfc453ac76506079eb50e03997eefdougm mod_dbd</title>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <p>Comme la fonction MD5 est en général disponible, d'autres
a0e0d20b666cfc453ac76506079eb50e03997eefdougm logiciels peuvent renseigner une base de données avec des mots de
a0e0d20b666cfc453ac76506079eb50e03997eefdougm passe chiffrés utilisables par l'authentification à base de
a0e0d20b666cfc453ac76506079eb50e03997eefdougm condensés d'Apache.</p>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <p>Pour créer des mots de passe pour l'authentification à base de
a0e0d20b666cfc453ac76506079eb50e03997eefdougm condensés d'Apache dans divers langages :</p>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm md5($user . ':' . $realm . ':' .$password)
a0e0d20b666cfc453ac76506079eb50e03997eefdougm byte b[] = java.security.MessageDigest.getInstance("MD5").digest( (user + ":" + realm + ":" + password ).getBytes());<br />
a0e0d20b666cfc453ac76506079eb50e03997eefdougm java.math.BigInteger bi = new java.math.BigInteger(1, b);<br />
a0e0d20b666cfc453ac76506079eb50e03997eefdougm s = "0" + s;
a0e0d20b666cfc453ac76506079eb50e03997eefdougm // La chaîne s contient le mot de passe chiffré
a0e0d20b666cfc453ac76506079eb50e03997eefdougm LCase(Hash( (user & ":" & realm & ":" & password) , "MD5"))
a0e0d20b666cfc453ac76506079eb50e03997eefdougm Digest::MD5.hexdigest(user + ':' + realm + ':' + password)
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <title>PostgreSQL (avec les fonctions contrib/pgcrypto
a0e0d20b666cfc453ac76506079eb50e03997eefdougm installées)</title>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm encode(digest( user || ':' || realm || ':' || password , 'md5'), 'hex')
a0e0d20b666cfc453ac76506079eb50e03997eefdougm</manualpage>