-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1673947:1745060 (outdated) -->
+<!-- English Revision : 1745060 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<modulesynopsis metafile="mod_auth_digest.xml.meta">
<name>mod_auth_digest</name>
-<description>Authentification utilisateur utilisant les condensés
+<description>Authentification utilisateur utilisant les condensés
MD5</description>
<status>Extension</status>
<sourcefile>mod_auth_digest.c</sourcefile>
<identifier>auth_digest_module</identifier>
<summary>
- <p>Ce module implémente l'authentification HTTP basée sur les
- condensés MD5 (<a
+ <p>Ce module implémente l'authentification HTTP basée sur les
+ condensés MD5 (<a
href="http://www.faqs.org/rfcs/rfc2617.html">RFC2617</a>), et
- fournit une alternative à <module>mod_auth_basic</module> en
+ fournit une alternative à <module>mod_auth_basic</module> en
ne transmettant plus le mot de passe en clair. Cependant, cela ne
- suffit pas pour améliorer la sécurité de manière significative par
- rapport à l'authentification basique. En outre, le stockage du mot
- de passe sur le serveur est encore moins sûr dans le cas
- d'une authentification à base de condensé que dans le cas d'une
+ suffit pas pour améliorer la sécurité de manière significative par
+ rapport à l'authentification basique. En outre, le stockage du mot
+ de passe sur le serveur est encore moins sûr dans le cas
+ d'une authentification à base de condensé que dans le cas d'une
authentification basique. C'est pourquoi l'utilisation de
- l'authentification basique associée à un chiffrement de la connexion
+ l'authentification basique associée à un chiffrement de la connexion
via <module>mod_ssl</module> constitue une bien meilleure
alternative.</p>
</summary>
<seealso><a href="../howto/auth.html">Mode d'emploi de
l'authentification</a></seealso>
-<section id="using"><title>Utilisation de l'authentification à base de
-condensés</title>
+<section id="using"><title>Utilisation de l'authentification à base de
+condensés</title>
- <p>Pour utiliser l'authentification à base de condensés MD5, vous
- devez simplement remplacer <code>AuthType Basic</code> et <directive
- module="mod_auth_basic">AuthBasicProvider</directive> respectivement
- par <code>AuthType Digest</code> et <directive
- module="mod_auth_digest">AuthDigestProvider</directive> lorsque vous
- configurez l'authentification, puis ajouter une directive <directive
- module="mod_auth_digest">AuthDigestDomain</directive> contenant au
- moins la(les) URI(s) racine(s) de la zone à protéger.</p>
-
- <p>On peut créer les fichiers utilisateur appropriés (au format
- texte) à l'aide de l'outil <program>htdigest</program>.</p>
+ <p>Pour utiliser l'authentification à base de condensés MD5, configurez la
+ protection de la section Location comme dans l'exemple ci-dessous :</p>
<example><title>Exemple :</title>
<highlight language="config">
</highlight>
</example>
+ <p>La directive <directive
+ module="mod_auth_digest">AuthDigestDomain</directive> permet de fournir la
+ liste des URIs protégés par cette configuration.</p>
+
+ <p>Le fichier de mots de passe référencé par la directive <directive
+ module="mod_auth_digest">AuthUserFile</directive> peut être créé et maintenu
+ via l'utilitaire <program>htdigest</program>.</p>
+
<note><title>Note</title>
- <p>L'authentification à base de condensé a été conçue pour améliorer
- la sécurité par rapport à l'authentification basique, mais il
- s'avère que ce but n'a pas été atteint. Un attaquant de type
- "man-in-the-middle" peut facilement forcer le navigateur à revenir à
- une authentification basique. Même une oreille indiscrète passive
+ <p>L'authentification à base de condensé a été conçue pour améliorer
+ la sécurité par rapport à l'authentification basique, mais il
+ s'avère que ce but n'a pas été atteint. Un attaquant de type
+ "man-in-the-middle" peut facilement forcer le navigateur à revenir à
+ une authentification basique. Même une oreille indiscrète passive
peut retrouver le mot de passe par force brute avec les moyens
- modernes, car l'algorithme de hashage utilisé par l'authentification
- à base de condensé est trop rapide. Autre problème, le stockage des
- mots de passe sur le serveur n'est pas sûr. Le contenu d'un fichier
- htdigest volé peut être utilisé directement pour l'authentification
- à base de condensé. Il est donc fortement recommandé d'utiliser
+ modernes, car l'algorithme de hashage utilisé par l'authentification
+ à base de condensé est trop rapide. Autre problème, le stockage des
+ mots de passe sur le serveur n'est pas sûr. Le contenu d'un fichier
+ htdigest volé peut être utilisé directement pour l'authentification
+ à base de condensé. Il est donc fortement recommandé d'utiliser
<module>mod_ssl</module> pour chiffrer la connexion.</p>
<p><module>mod_auth_digest</module> ne fonctionne correctement que
- sur les plates-formes où APR supporte la mémoire partagée.</p>
+ sur les plates-formes où APR supporte la mémoire partagée.</p>
</note>
</section>
<directivesynopsis>
<name>AuthDigestProvider</name>
-<description>Définit le(s) fournisseurs(s) d'authentification pour la
-zone du site web concernée</description>
+<description>Définit le(s) fournisseurs(s) d'authentification pour la
+zone du site web concernée</description>
<syntax>AuthDigestProvider <var>nom fournisseur</var>
[<var>nom fournisseur</var>] ...</syntax>
<default>AuthDigestProvider file</default>
<usage>
<p>La directive <directive>AuthDigestProvider</directive> permet de
- définir quel fournisseur d'authentification sera utilisé pour
- authentifier les utilisateurs pour la zone du site web concernée.
- Assurez-vous que le module implémentant le fournisseur
- d'authentification choisi soit bien présent dans le serveur. Le
- fournisseur par défaut <code>file</code> est implémenté par le
+ définir quel fournisseur d'authentification sera utilisé pour
+ authentifier les utilisateurs pour la zone du site web concernée.
+ Assurez-vous que le module implémentant le fournisseur
+ d'authentification choisi soit bien présent dans le serveur. Le
+ fournisseur par défaut <code>file</code> est implémenté par le
module <module>mod_authn_file</module>.</p>
<p>Voir <module>mod_authn_dbm</module>,
<directivesynopsis>
<name>AuthDigestQop</name>
-<description>Détermine le niveau de protection fourni par
-l'authentification à base de condensé</description>
+<description>Détermine le niveau de protection fourni par
+l'authentification à base de condensé</description>
<syntax>AuthDigestQop none|auth|auth-int [auth|auth-int]</syntax>
<default>AuthDigestQop auth</default>
<contextlist><context>directory</context><context>.htaccess</context>
<usage>
<p>La directive <directive>AuthDigestQop</directive> permet de
- définir le <dfn>niveau de protection</dfn> fourni. <code>auth</code>
+ définir le <dfn>niveau de protection</dfn> fourni. <code>auth</code>
ne fournit que l'authentification (nom utilisateur/mot de passe) ;
- <code>auth-int</code> fournit l'authentification plus un contrôle
- d'intégrité (un condensé MD5 de l'entité est aussi calculé et
- vérifié) ; avec <code>none</code>, le module va utiliser l'ancien
- algorithme de condensés RFC-2069 (qui n'effectue pas de contrôle
- d'intégrité). On peut spécifier à la fois <code>auth</code> et
+ <code>auth-int</code> fournit l'authentification plus un contrôle
+ d'intégrité (un condensé MD5 de l'entité est aussi calculé et
+ vérifié) ; avec <code>none</code>, le module va utiliser l'ancien
+ algorithme de condensés RFC-2069 (qui n'effectue pas de contrôle
+ d'intégrité). On peut spécifier à la fois <code>auth</code> et
<code>auth-int</code>, auquel cas c'est le navigateur qui va choisir
- lequel des deux utiliser. <code>none</code> ne doit être utilisé que
- dans le cas où le navigateur ne serait pas à même (pour une raison
- ou pour une autre) de relever le défit qu'il recevrait si un autre
- niveau de protection était défini.</p>
+ lequel des deux utiliser. <code>none</code> ne doit être utilisé que
+ dans le cas où le navigateur ne serait pas à même (pour une raison
+ ou pour une autre) de relever le défit qu'il recevrait si un autre
+ niveau de protection était défini.</p>
<note>
- <code>auth-int</code> n'est pas encore implémenté.
+ <code>auth-int</code> n'est pas encore implémenté.
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthDigestNonceLifetime</name>
-<description>Durée de validité du nombre à valeur unique du
+<description>Durée de validité du nombre à valeur unique du
serveur (nonce)</description>
<syntax>AuthDigestNonceLifetime <var>secondes</var></syntax>
<default>AuthDigestNonceLifetime 300</default>
<usage>
<p>La directive <directive>AuthDigestNonceLifetime</directive>
- permet de contrôler la durée de validité du nombre à valeur unique
+ permet de contrôler la durée de validité du nombre à valeur unique
du serveur (nonce). Lorsque le client contacte le serveur en
- utilisant un nonce dont la validité a expiré, le serveur renvoie un
+ utilisant un nonce dont la validité a expiré, le serveur renvoie un
code d'erreur 401 avec <code>stale=true</code>. Si
- <var>secondes</var> est supérieur à 0, il spécifie la durée de
- validité du nonce ; il est en général déconseillé d'affecter à cet
- argument une valeur inférieure à 10 secondes. Si
- <var>secondes</var> est inférieur à 0, le nonce n'expire jamais.
- <!-- Pas encore implémenté : si <var>secondes</var> est égal à 0, le
+ <var>secondes</var> est supérieur à 0, il spécifie la durée de
+ validité du nonce ; il est en général déconseillé d'affecter à cet
+ argument une valeur inférieure à 10 secondes. Si
+ <var>secondes</var> est inférieur à 0, le nonce n'expire jamais.
+ <!-- Pas encore implémenté : si <var>secondes</var> est égal à 0, le
client ne doit utiliser le nonce qu'une seule fois. Notez que si les
- nonces à usage unique assurent une sécurité accrue contre les
- attaques à base de rejeu, il ont aussi d'importantes implications en
- matière de performances, car le navigateur ne peut plus alors
- effectuer de requêtes en paralléle (pipelining) ou utiliser
- plusieurs connexions pour une même requête. Comme il n'est pas aisé
- pour les navigateurs de détecter l'utilisation de nonces à usage
- unique, on peut aboutir à la situation où le navigateur va tenter
- d'effectuer des requêtes en parallèle et recevoir des codes d'erreur
- 401 pour toutes les requêtes sauf la première, ce qui aura pour
- effet de lui faire renvoyer les requêtes. Notez aussi que la
- protection contre les attaques à base de rejeu n'a de sens que dans
- le cas de contenus générés dynamiquement ou de requêtes de type
- POST ; dans le cas des contenus statiques, l'attaquant possède déjà
- probablement la réponse complète, et les nonces à usage unique sont
+ nonces à usage unique assurent une sécurité accrue contre les
+ attaques à base de rejeu, il ont aussi d'importantes implications en
+ matière de performances, car le navigateur ne peut plus alors
+ effectuer de requêtes en paralléle (pipelining) ou utiliser
+ plusieurs connexions pour une même requête. Comme il n'est pas aisé
+ pour les navigateurs de détecter l'utilisation de nonces à usage
+ unique, on peut aboutir à la situation où le navigateur va tenter
+ d'effectuer des requêtes en parallèle et recevoir des codes d'erreur
+ 401 pour toutes les requêtes sauf la première, ce qui aura pour
+ effet de lui faire renvoyer les requêtes. Notez aussi que la
+ protection contre les attaques à base de rejeu n'a de sens que dans
+ le cas de contenus générés dynamiquement ou de requêtes de type
+ POST ; dans le cas des contenus statiques, l'attaquant possède déjà
+ probablement la réponse complète, et les nonces à usage unique sont
ici sans objet. -->
</p>
</usage>
<directivesynopsis>
<name>AuthDigestNonceFormat</name>
-<description>Détermine la manière dont le nombre à valeur unique du
-serveur (nonce) est généré</description>
+<description>Détermine la manière dont le nombre à valeur unique du
+serveur (nonce) est généré</description>
<syntax>AuthDigestNonceFormat <var>format</var></syntax>
<contextlist><context>directory</context><context>.htaccess</context>
</contextlist>
<override>AuthConfig</override>
<usage>
- <note>Non encore implémenté.</note>
- <!-- La directive AuthDigestNonceFormat permet de déterminer la
- manière dont le nombre à valeur unique du serveur (nonce) est
- généré. -->
+ <note>Non encore implémenté.</note>
+ <!-- La directive AuthDigestNonceFormat permet de déterminer la
+ manière dont le nombre à valeur unique du serveur (nonce) est
+ généré. -->
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthDigestNcCheck</name>
-<description>Active ou désactive la vérification du nombre d'envois du
-nombre à valeur unique (nonce) par le serveur</description>
+<description>Active ou désactive la vérification du nombre d'envois du
+nombre à valeur unique (nonce) par le serveur</description>
<syntax>AuthDigestNcCheck On|Off</syntax>
<default>AuthDigestNcCheck Off</default>
<contextlist><context>server config</context></contextlist>
<usage>
<note>
- Non encore implémenté.
+ Non encore implémenté.
</note>
<!--
- <p>La directive AuthDigestNcCheck permet d'activer ou de désactiver
- la vérification du nombre d'envois du nombre à valeur unique (nonce)
+ <p>La directive AuthDigestNcCheck permet d'activer ou de désactiver
+ la vérification du nombre d'envois du nombre à valeur unique (nonce)
par le serveur.</p>
- <p>Bien que la définition de cette directive à On soit recommandée
- du point de vue de la sécurité, elle a des conséquences importantes sur
- les performances du serveur. Pour vérifier le nombre d'envois du nonce,
- *toutes* les requêtes (du moins toutes celles qui possèdent un
- en-tête d'autorisation, qu'elles requièrent ou non une
- authentification à base de condensé) doivent être sérialisées au
+ <p>Bien que la définition de cette directive à On soit recommandée
+ du point de vue de la sécurité, elle a des conséquences importantes sur
+ les performances du serveur. Pour vérifier le nombre d'envois du nonce,
+ *toutes* les requêtes (du moins toutes celles qui possèdent un
+ en-tête d'autorisation, qu'elles requièrent ou non une
+ authentification à base de condensé) doivent être sérialisées au
travers d'une section critique. Si le serveur traite un grand nombre
- de requêtes qui possèdent un en-tête d'autorisation, l'impact sur
+ de requêtes qui possèdent un en-tête d'autorisation, l'impact sur
les performances pourra se montrer sensible.</p>
-->
</usage>
<directivesynopsis>
<name>AuthDigestAlgorithm</name>
-<description>Sélectionne l'algorithme utilisé pour calculer les
-condensés du défit et de sa réponse</description>
+<description>Sélectionne l'algorithme utilisé pour calculer les
+condensés du défit et de sa réponse</description>
<syntax>AuthDigestAlgorithm MD5|MD5-sess</syntax>
<default>AuthDigestAlgorithm MD5</default>
<contextlist><context>directory</context><context>.htaccess</context>
<usage>
<p>La directive <directive>AuthDigestAlgorithm</directive> permet de
- sélectionner l'algorithme utilisé pour calculer les condensés du
- défit et de sa réponse.</p>
+ sélectionner l'algorithme utilisé pour calculer les condensés du
+ défit et de sa réponse.</p>
<note>
- <code>MD5-sess</code> n'est pas encore correctement implémenté.
+ <code>MD5-sess</code> n'est pas encore correctement implémenté.
</note>
<!--
<p>Pour pouvoir utiliser <code>MD5-sess</code>, vous devez tout
- d'abord éditer le code de la fonction <code>get_userpw_hash()</code>
+ d'abord éditer le code de la fonction <code>get_userpw_hash()</code>
dans <code>mod_auth_digest.c</code>.</p>
-->
</usage>
<directivesynopsis>
<name>AuthDigestDomain</name>
-<description>Les URIs qui se trouvent dans le même espace de protection
-concernant l'authentification à base de condensés</description>
+<description>Les URIs qui se trouvent dans le même espace de protection
+concernant l'authentification à base de condensés</description>
<syntax>AuthDigestDomain <var>URI</var> [<var>URI</var>] ...</syntax>
<contextlist><context>directory</context><context>.htaccess</context>
</contextlist>
<usage>
<p>La directive <directive>AuthDigestDomain</directive> vous permet
- de spécifier un ou plusieurs URIs se trouvant dans le même
- espace de protection (c'est à dire utilisant le même utilisateur/mot
- de passe et se trouvant dans le même domaine). Les URIs spécifiés
- sont des préfixes ; le client doit savoir que tous les URIs situés
- sous ces préfixes seront protégés par le même utilisateur/mot de
- passe. Les URIs peuvent être soit des URIs absolus (c'est à dire
+ de spécifier un ou plusieurs URIs se trouvant dans le même
+ espace de protection (c'est à dire utilisant le même utilisateur/mot
+ de passe et se trouvant dans le même domaine). Les URIs spécifiés
+ sont des préfixes ; le client doit savoir que tous les URIs situés
+ sous ces préfixes seront protégés par le même utilisateur/mot de
+ passe. Les URIs peuvent être soit des URIs absolus (c'est à dire
avec protocole, nom serveur, port, etc...), soit des URIs
relatifs.</p>
- <p>Cette directive doit toujours être présente et contenir au moins
+ <p>Cette directive doit toujours être présente et contenir au moins
le(s) URI(s) racine(s) pour cet espace. Dans le cas contraire, le
- client va envoyer un en-tête d'autorisation avec <em>chaque
- requête</em> à destination de ce serveur. Outre une augmentation de
- la taille de la requête, les performances vont s'en trouver
- affectées si la directive <directive
- module="mod_auth_digest">AuthDigestNcCheck</directive> est définie à
+ client va envoyer un en-tête d'autorisation avec <em>chaque
+ requête</em> à destination de ce serveur. Outre une augmentation de
+ la taille de la requête, les performances vont s'en trouver
+ affectées si la directive <directive
+ module="mod_auth_digest">AuthDigestNcCheck</directive> est définie à
On.</p>
- <p>Les URIs spécifiés peuvent aussi référencer différents serveurs,
- auquel cas les clients (qui sont à même de le comprendre) vont
+ <p>Les URIs spécifiés peuvent aussi référencer différents serveurs,
+ auquel cas les clients (qui sont à même de le comprendre) vont
partager l'utilisateur/mot de passe entre plusieurs serveurs sans le
- demander à l'utilisateur à chaque fois.</p>
+ demander à l'utilisateur à chaque fois.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthDigestShmemSize</name>
-<description>La quantité de mémoire partagée à allouer afin de conserver
-les informations à propos des clients</description>
+<description>La quantité de mémoire partagée à allouer afin de conserver
+les informations à propos des clients</description>
<syntax>AuthDigestShmemSize <var>taille</var></syntax>
<default>AuthDigestShmemSize 1000</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>La directive <directive>AuthDigestShmemSize</directive> permet de
- définir la quantité de mémoire partagée à allouer au démarrage du
- serveur afin de conserver les informations à propos des clients.
- Notez que le segment de mémoire partagée ne peut pas être défini à
- une taille inférieure à l'espace nécessaire pour conserver les
- informations à propos d'<em>un</em> client. Cette valeur dépend de
- votre système. Si vous voulez en déterminer la valeur exacte, vous
- pouvez simplement définir <directive>AuthDigestShmemSize</directive>
- à <code>0</code> et consulter le message d'erreur que renverra le
- serveur lorsqu'on essaiera de le démarrer.</p>
-
- <p>L'argument <var>size</var> s'exprime par défaut en octets, mais
+ définir la quantité de mémoire partagée à allouer au démarrage du
+ serveur afin de conserver les informations à propos des clients.
+ Notez que le segment de mémoire partagée ne peut pas être défini à
+ une taille inférieure à l'espace nécessaire pour conserver les
+ informations à propos d'<em>un</em> client. Cette valeur dépend de
+ votre système. Si vous voulez en déterminer la valeur exacte, vous
+ pouvez simplement définir <directive>AuthDigestShmemSize</directive>
+ à <code>0</code> et consulter le message d'erreur que renverra le
+ serveur lorsqu'on essaiera de le démarrer.</p>
+
+ <p>L'argument <var>size</var> s'exprime par défaut en octets, mais
vous pouvez suffixer le nombre par un <code>K</code> ou un
- <code>M</code> pour spécifier respectivement des KiloOctets ou des
- MégaOctets. Par exemple, les directives qui suivent sont toutes
- équivalentes :</p>
+ <code>M</code> pour spécifier respectivement des KiloOctets ou des
+ MégaOctets. Par exemple, les directives qui suivent sont toutes
+ équivalentes :</p>
<highlight language="config">
AuthDigestShmemSize 1048576