1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1745060 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <modulesynopsis metafile="mod_auth_digest.xml.meta">
27 <name>mod_auth_digest</name>
28 <description>Authentification utilisateur utilisant les condensés
30 <status>Extension</status>
31 <sourcefile>mod_auth_digest.c</sourcefile>
32 <identifier>auth_digest_module</identifier>
35 <p>Ce module implémente l'authentification HTTP basée sur les
37 href="http://www.faqs.org/rfcs/rfc2617.html">RFC2617</a>), et
38 fournit une alternative à <module>mod_auth_basic</module> en
39 ne transmettant plus le mot de passe en clair. Cependant, cela ne
40 suffit pas pour améliorer la sécurité de manière significative par
41 rapport à l'authentification basique. En outre, le stockage du mot
42 de passe sur le serveur est encore moins sûr dans le cas
43 d'une authentification à base de condensé que dans le cas d'une
44 authentification basique. C'est pourquoi l'utilisation de
45 l'authentification basique associée à un chiffrement de la connexion
46 via <module>mod_ssl</module> constitue une bien meilleure
50 <seealso><directive module="mod_authn_core">AuthName</directive></seealso>
51 <seealso><directive module="mod_authn_core">AuthType</directive></seealso>
52 <seealso><directive module="mod_authz_core">Require</directive></seealso>
53 <seealso><a href="../howto/auth.html">Mode d'emploi de
54 l'authentification</a></seealso>
56 <section id="using"><title>Utilisation de l'authentification à base de
59 <p>Pour utiliser l'authentification à base de condensés MD5, configurez la
60 protection de la section Location comme dans l'exemple ci-dessous :</p>
62 <example><title>Exemple :</title>
63 <highlight language="config">
64 <Location "/private/">
66 AuthName "private area"
67 AuthDigestDomain "/private/" "http://mirror.my.dom/private2/"
69 AuthDigestProvider file
70 AuthUserFile "/web/auth/.digest_pw"
76 <p>La directive <directive
77 module="mod_auth_digest">AuthDigestDomain</directive> permet de fournir la
78 liste des URIs protégés par cette configuration.</p>
80 <p>Le fichier de mots de passe référencé par la directive <directive
81 module="mod_auth_digest">AuthUserFile</directive> peut être créé et maintenu
82 via l'utilitaire <program>htdigest</program>.</p>
84 <note><title>Note</title>
85 <p>L'authentification à base de condensé a été conçue pour améliorer
86 la sécurité par rapport à l'authentification basique, mais il
87 s'avère que ce but n'a pas été atteint. Un attaquant de type
88 "man-in-the-middle" peut facilement forcer le navigateur à revenir à
89 une authentification basique. Même une oreille indiscrète passive
90 peut retrouver le mot de passe par force brute avec les moyens
91 modernes, car l'algorithme de hashage utilisé par l'authentification
92 à base de condensé est trop rapide. Autre problème, le stockage des
93 mots de passe sur le serveur n'est pas sûr. Le contenu d'un fichier
94 htdigest volé peut être utilisé directement pour l'authentification
95 à base de condensé. Il est donc fortement recommandé d'utiliser
96 <module>mod_ssl</module> pour chiffrer la connexion.</p>
97 <p><module>mod_auth_digest</module> ne fonctionne correctement que
98 sur les plates-formes où APR supporte la mémoire partagée.</p>
103 <name>AuthDigestProvider</name>
104 <description>Définit le(s) fournisseurs(s) d'authentification pour la
105 zone du site web concernée</description>
106 <syntax>AuthDigestProvider <var>nom fournisseur</var>
107 [<var>nom fournisseur</var>] ...</syntax>
108 <default>AuthDigestProvider file</default>
109 <contextlist><context>directory</context><context>.htaccess</context>
111 <override>AuthConfig</override>
114 <p>La directive <directive>AuthDigestProvider</directive> permet de
115 définir quel fournisseur d'authentification sera utilisé pour
116 authentifier les utilisateurs pour la zone du site web concernée.
117 Assurez-vous que le module implémentant le fournisseur
118 d'authentification choisi soit bien présent dans le serveur. Le
119 fournisseur par défaut <code>file</code> est implémenté par le
120 module <module>mod_authn_file</module>.</p>
122 <p>Voir <module>mod_authn_dbm</module>,
123 <module>mod_authn_file</module>, <module>mod_authn_dbd</module> et
124 <module>mod_authn_socache</module>
125 pour la liste des fournisseurs disponibles.</p>
130 <name>AuthDigestQop</name>
131 <description>Détermine le niveau de protection fourni par
132 l'authentification à base de condensé</description>
133 <syntax>AuthDigestQop none|auth|auth-int [auth|auth-int]</syntax>
134 <default>AuthDigestQop auth</default>
135 <contextlist><context>directory</context><context>.htaccess</context>
137 <override>AuthConfig</override>
140 <p>La directive <directive>AuthDigestQop</directive> permet de
141 définir le <dfn>niveau de protection</dfn> fourni. <code>auth</code>
142 ne fournit que l'authentification (nom utilisateur/mot de passe) ;
143 <code>auth-int</code> fournit l'authentification plus un contrôle
144 d'intégrité (un condensé MD5 de l'entité est aussi calculé et
145 vérifié) ; avec <code>none</code>, le module va utiliser l'ancien
146 algorithme de condensés RFC-2069 (qui n'effectue pas de contrôle
147 d'intégrité). On peut spécifier à la fois <code>auth</code> et
148 <code>auth-int</code>, auquel cas c'est le navigateur qui va choisir
149 lequel des deux utiliser. <code>none</code> ne doit être utilisé que
150 dans le cas où le navigateur ne serait pas à même (pour une raison
151 ou pour une autre) de relever le défit qu'il recevrait si un autre
152 niveau de protection était défini.</p>
155 <code>auth-int</code> n'est pas encore implémenté.
161 <name>AuthDigestNonceLifetime</name>
162 <description>Durée de validité du nombre à valeur unique du
163 serveur (nonce)</description>
164 <syntax>AuthDigestNonceLifetime <var>secondes</var></syntax>
165 <default>AuthDigestNonceLifetime 300</default>
166 <contextlist><context>directory</context><context>.htaccess</context>
168 <override>AuthConfig</override>
171 <p>La directive <directive>AuthDigestNonceLifetime</directive>
172 permet de contrôler la durée de validité du nombre à valeur unique
173 du serveur (nonce). Lorsque le client contacte le serveur en
174 utilisant un nonce dont la validité a expiré, le serveur renvoie un
175 code d'erreur 401 avec <code>stale=true</code>. Si
176 <var>secondes</var> est supérieur à 0, il spécifie la durée de
177 validité du nonce ; il est en général déconseillé d'affecter à cet
178 argument une valeur inférieure à 10 secondes. Si
179 <var>secondes</var> est inférieur à 0, le nonce n'expire jamais.
180 <!-- Pas encore implémenté : si <var>secondes</var> est égal à 0, le
181 client ne doit utiliser le nonce qu'une seule fois. Notez que si les
182 nonces à usage unique assurent une sécurité accrue contre les
183 attaques à base de rejeu, il ont aussi d'importantes implications en
184 matière de performances, car le navigateur ne peut plus alors
185 effectuer de requêtes en paralléle (pipelining) ou utiliser
186 plusieurs connexions pour une même requête. Comme il n'est pas aisé
187 pour les navigateurs de détecter l'utilisation de nonces à usage
188 unique, on peut aboutir à la situation où le navigateur va tenter
189 d'effectuer des requêtes en parallèle et recevoir des codes d'erreur
190 401 pour toutes les requêtes sauf la première, ce qui aura pour
191 effet de lui faire renvoyer les requêtes. Notez aussi que la
192 protection contre les attaques à base de rejeu n'a de sens que dans
193 le cas de contenus générés dynamiquement ou de requêtes de type
194 POST ; dans le cas des contenus statiques, l'attaquant possède déjà
195 probablement la réponse complète, et les nonces à usage unique sont
202 <name>AuthDigestNonceFormat</name>
203 <description>Détermine la manière dont le nombre à valeur unique du
204 serveur (nonce) est généré</description>
205 <syntax>AuthDigestNonceFormat <var>format</var></syntax>
206 <contextlist><context>directory</context><context>.htaccess</context>
208 <override>AuthConfig</override>
211 <note>Non encore implémenté.</note>
212 <!-- La directive AuthDigestNonceFormat permet de déterminer la
213 manière dont le nombre à valeur unique du serveur (nonce) est
219 <name>AuthDigestNcCheck</name>
220 <description>Active ou désactive la vérification du nombre d'envois du
221 nombre à valeur unique (nonce) par le serveur</description>
222 <syntax>AuthDigestNcCheck On|Off</syntax>
223 <default>AuthDigestNcCheck Off</default>
224 <contextlist><context>server config</context></contextlist>
228 Non encore implémenté.
231 <p>La directive AuthDigestNcCheck permet d'activer ou de désactiver
232 la vérification du nombre d'envois du nombre à valeur unique (nonce)
235 <p>Bien que la définition de cette directive à On soit recommandée
236 du point de vue de la sécurité, elle a des conséquences importantes sur
237 les performances du serveur. Pour vérifier le nombre d'envois du nonce,
238 *toutes* les requêtes (du moins toutes celles qui possèdent un
239 en-tête d'autorisation, qu'elles requièrent ou non une
240 authentification à base de condensé) doivent être sérialisées au
241 travers d'une section critique. Si le serveur traite un grand nombre
242 de requêtes qui possèdent un en-tête d'autorisation, l'impact sur
243 les performances pourra se montrer sensible.</p>
249 <name>AuthDigestAlgorithm</name>
250 <description>Sélectionne l'algorithme utilisé pour calculer les
251 condensés du défit et de sa réponse</description>
252 <syntax>AuthDigestAlgorithm MD5|MD5-sess</syntax>
253 <default>AuthDigestAlgorithm MD5</default>
254 <contextlist><context>directory</context><context>.htaccess</context>
256 <override>AuthConfig</override>
259 <p>La directive <directive>AuthDigestAlgorithm</directive> permet de
260 sélectionner l'algorithme utilisé pour calculer les condensés du
261 défit et de sa réponse.</p>
264 <code>MD5-sess</code> n'est pas encore correctement implémenté.
267 <p>Pour pouvoir utiliser <code>MD5-sess</code>, vous devez tout
268 d'abord éditer le code de la fonction <code>get_userpw_hash()</code>
269 dans <code>mod_auth_digest.c</code>.</p>
275 <name>AuthDigestDomain</name>
276 <description>Les URIs qui se trouvent dans le même espace de protection
277 concernant l'authentification à base de condensés</description>
278 <syntax>AuthDigestDomain <var>URI</var> [<var>URI</var>] ...</syntax>
279 <contextlist><context>directory</context><context>.htaccess</context>
281 <override>AuthConfig</override>
284 <p>La directive <directive>AuthDigestDomain</directive> vous permet
285 de spécifier un ou plusieurs URIs se trouvant dans le même
286 espace de protection (c'est à dire utilisant le même utilisateur/mot
287 de passe et se trouvant dans le même domaine). Les URIs spécifiés
288 sont des préfixes ; le client doit savoir que tous les URIs situés
289 sous ces préfixes seront protégés par le même utilisateur/mot de
290 passe. Les URIs peuvent être soit des URIs absolus (c'est à dire
291 avec protocole, nom serveur, port, etc...), soit des URIs
294 <p>Cette directive doit toujours être présente et contenir au moins
295 le(s) URI(s) racine(s) pour cet espace. Dans le cas contraire, le
296 client va envoyer un en-tête d'autorisation avec <em>chaque
297 requête</em> à destination de ce serveur. Outre une augmentation de
298 la taille de la requête, les performances vont s'en trouver
299 affectées si la directive <directive
300 module="mod_auth_digest">AuthDigestNcCheck</directive> est définie à
303 <p>Les URIs spécifiés peuvent aussi référencer différents serveurs,
304 auquel cas les clients (qui sont à même de le comprendre) vont
305 partager l'utilisateur/mot de passe entre plusieurs serveurs sans le
306 demander à l'utilisateur à chaque fois.</p>
311 <name>AuthDigestShmemSize</name>
312 <description>La quantité de mémoire partagée à allouer afin de conserver
313 les informations à propos des clients</description>
314 <syntax>AuthDigestShmemSize <var>taille</var></syntax>
315 <default>AuthDigestShmemSize 1000</default>
316 <contextlist><context>server config</context></contextlist>
319 <p>La directive <directive>AuthDigestShmemSize</directive> permet de
320 définir la quantité de mémoire partagée à allouer au démarrage du
321 serveur afin de conserver les informations à propos des clients.
322 Notez que le segment de mémoire partagée ne peut pas être défini à
323 une taille inférieure à l'espace nécessaire pour conserver les
324 informations à propos d'<em>un</em> client. Cette valeur dépend de
325 votre système. Si vous voulez en déterminer la valeur exacte, vous
326 pouvez simplement définir <directive>AuthDigestShmemSize</directive>
327 à <code>0</code> et consulter le message d'erreur que renverra le
328 serveur lorsqu'on essaiera de le démarrer.</p>
330 <p>L'argument <var>size</var> s'exprime par défaut en octets, mais
331 vous pouvez suffixer le nombre par un <code>K</code> ou un
332 <code>M</code> pour spécifier respectivement des KiloOctets ou des
333 MégaOctets. Par exemple, les directives qui suivent sont toutes
336 <highlight language="config">
337 AuthDigestShmemSize 1048576
338 AuthDigestShmemSize 1024K
339 AuthDigestShmemSize 1M