| <?xml version="1.0"?> |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> |
| <!-- English Revision: 1745061 --> |
| <!-- French translation : Lucien GENTIS --> |
| <!-- Reviewed by : Vincent Deffontaines --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <modulesynopsis metafile="mod_auth_digest.xml.meta"> |
| |
| <name>mod_auth_digest</name> |
| <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 |
| href="http://www.faqs.org/rfcs/rfc2617.html">RFC2617</a>), et |
| 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 |
| authentification basique. C'est pourquoi l'utilisation de |
| l'authentification basique associée à un chiffrement de la connexion |
| via <module>mod_ssl</module> constitue une bien meilleure |
| alternative.</p> |
| </summary> |
| |
| <seealso><directive module="mod_authn_core">AuthName</directive></seealso> |
| <seealso><directive module="mod_authn_core">AuthType</directive></seealso> |
| <seealso><directive module="mod_authz_core">Require</directive></seealso> |
| <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> |
| |
| <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> |
| |
| <example><title>Exemple :</title> |
| <highlight language="config"> |
| <Location "/private/"> |
| AuthType Digest |
| AuthName "private area" |
| AuthDigestDomain "/private/" "http://mirror.my.dom/private2/" |
| |
| AuthDigestProvider file |
| AuthUserFile "/web/auth/.digest_pw" |
| Require valid-user |
| </Location> |
| </highlight> |
| </example> |
| |
| <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 |
| 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 |
| <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> |
| </note> |
| </section> |
| |
| <directivesynopsis> |
| <name>AuthDigestProvider</name> |
| <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> |
| <contextlist><context>directory</context><context>.htaccess</context> |
| </contextlist> |
| <override>AuthConfig</override> |
| |
| <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 |
| module <module>mod_authn_file</module>.</p> |
| |
| <p>Voir <module>mod_authn_dbm</module>, |
| <module>mod_authn_file</module>, <module>mod_authn_dbd</module> et |
| <module>mod_authn_socache</module> |
| pour la liste des fournisseurs disponibles.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>AuthDigestQop</name> |
| <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> |
| </contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| <p>La directive <directive>AuthDigestQop</directive> permet de |
| 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>, 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> |
| |
| <note> |
| <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 |
| serveur (nonce)</description> |
| <syntax>AuthDigestNonceLifetime <var>secondes</var></syntax> |
| <default>AuthDigestNonceLifetime 300</default> |
| <contextlist><context>directory</context><context>.htaccess</context> |
| </contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| <p>La directive <directive>AuthDigestNonceLifetime</directive> |
| 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 |
| 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 |
| 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 |
| ici sans objet. --> |
| </p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>AuthDigestAlgorithm</name> |
| <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> |
| </contextlist> |
| <override>AuthConfig</override> |
| |
| <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> |
| |
| <note> |
| <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> |
| dans <code>mod_auth_digest.c</code>.</p> |
| --> |
| </usage> |
| </directivesynopsis> |
| |
| <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> |
| <syntax>AuthDigestDomain <var>URI</var> [<var>URI</var>] ...</syntax> |
| <contextlist><context>directory</context><context>.htaccess</context> |
| </contextlist> |
| <override>AuthConfig</override> |
| |
| <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 |
| avec protocole, nom serveur, port, etc...), soit des URIs |
| relatifs.</p> |
| |
| <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.</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 |
| partager l'utilisateur/mot de passe entre plusieurs serveurs sans le |
| 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> |
| <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 |
| 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> |
| |
| <highlight language="config"> |
| AuthDigestShmemSize 1048576 |
| AuthDigestShmemSize 1024K |
| AuthDigestShmemSize 1M |
| </highlight> |
| </usage> |
| </directivesynopsis> |
| |
| </modulesynopsis> |