Serveur Apache HTTP Version 2.2
Ce document concerne une version ancienne (2.2) du serveur HTTP Apache. La version actuelle est documentée ici. Si vous n'avez pas encore effectué la mise è jour, veuillez suivre ce lien pour plus d'informations.
Pour consulter la version actuelle de ce document, vous pouvez suivre ce lien.
Description: | Authentification utilisateur utilisant les condensés MD5. |
---|---|
Statut: | Extension |
Identificateur de Module: | auth_digest_module |
Fichier Source: | mod_auth_digest.c |
Ce module implémente l'authentification HTTP basée sur les
condensés MD5 (RFC2617), et
fournit une alternative à mod_auth_basic
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 mod_ssl
constitue une bien meilleure
alternative.
L'utilisation de l'authentification à base de condensés MD5 est
très simple. Configurez l'authentification normalement, en utilisant
AuthType Digest
et AuthDigestProvider
à la place
de AuthType Basic
et AuthBasicProvider
. Ajoutez
ensuite une directive AuthDigestDomain
contenant au
moins la(les) URI(s) racine(s) de la zone à protéger.
On peut créer les fichiers utilisateur appropriés (au format
texte) à l'aide de l'outil htdigest
.
<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>
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
mod_ssl
pour chiffrer la connexion.
Description: | Sélectionne l'algorithme utilisé pour calculer les condensés du défit et de sa réponse |
---|---|
Syntaxe: | AuthDigestAlgorithm MD5|MD5-sess |
Défaut: | AuthDigestAlgorithm MD5 |
Contexte: | répertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Extension |
Module: | mod_auth_digest |
La directive AuthDigestAlgorithm
permet de
sélectionner l'algorithme utilisé pour calculer les condensés du
défit et de sa réponse.
MD5-sess
n'est pas encore correctement implémenté.
Description: | Les URIs qui se trouvent dans le même espace de protection concernant l'authentification à base de condensés |
---|---|
Syntaxe: | AuthDigestDomain URI [URI] ... |
Contexte: | répertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Extension |
Module: | mod_auth_digest |
La directive AuthDigestDomain
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.
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 chaque
requête à 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 AuthDigestNcCheck
est définie à
On.
Les URIs spécifiés peuvent aussi référencer différents serveurs, auquel cas les clients (pour ceux qui sont à même de le comprendre) vont partager l'utilisateur/mot de passe entre plusieurs serveurs sans le demander à l'utilisateur à chaque fois.
Description: | Active ou désactive la vérification du nombre d'envois du nombre à valeur unique (nonce) par le serveur |
---|---|
Syntaxe: | AuthDigestNcCheck On|Off |
Défaut: | AuthDigestNcCheck Off |
Contexte: | configuration du serveur |
Statut: | Extension |
Module: | mod_auth_digest |
Description: | Détermine la manière dont le nombre à valeur unique du serveur (nonce) est généré |
---|---|
Syntaxe: | AuthDigestNonceFormat format |
Contexte: | répertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Extension |
Module: | mod_auth_digest |
Description: | Durée de validité du nombre à valeur unique du serveur (nonce) |
---|---|
Syntaxe: | AuthDigestNonceLifetime secondes |
Défaut: | AuthDigestNonceLifetime 300 |
Contexte: | répertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Extension |
Module: | mod_auth_digest |
La directive AuthDigestNonceLifetime
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 stale=true
. Si
secondes 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
secondes est inférieur à 0, le nonce n'expire jamais.
Description: | Définit le(s) fournisseurs(s) d'authentification pour la zone du site web concernée |
---|---|
Syntaxe: | AuthDigestProvider nom fournisseur
[nom fournisseur] ... |
Défaut: | AuthDigestProvider file |
Contexte: | répertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Extension |
Module: | mod_auth_digest |
La directive AuthDigestProvider
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 file
est implémenté par le
module mod_authn_file
.
Voir mod_authn_dbm
,
mod_authn_file
, et mod_authn_dbd
pour la liste des fournisseurs disponibles.
Description: | Détermine le niveau de protection fourni par l'authentification à base de condensé |
---|---|
Syntaxe: | AuthDigestQop none|auth|auth-int [auth|auth-int] |
Défaut: | AuthDigestQop auth |
Contexte: | répertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Extension |
Module: | mod_auth_digest |
La directive AuthDigestQop
permet de
définir le niveau de protection fourni. auth
ne fournit que l'authentification (nom utilisateur/mot de passe) ;
auth-int
fournit l'authentification plus un contrôle
d'intégrité (un condensé MD5 de l'entité est aussi calculé et
vérifié) ; avec none
, 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 auth
et
auth-int
, auquel cas c'est le navigateur qui va choisir
lequel des deux utiliser. none
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.
auth-int
n'est pas encore implémenté.
Description: | La quantité de mémoire partagée à allouer afin de conserver les informations à propos des clients |
---|---|
Syntaxe: | AuthDigestShmemSize taille |
Défaut: | AuthDigestShmemSize 1000 |
Contexte: | configuration du serveur |
Statut: | Extension |
Module: | mod_auth_digest |
La directive AuthDigestShmemSize
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'un client. Cette valeur dépend de
votre système. Si vous voulez en déterminer la valeur exacte, vous
pouvez simplement définir AuthDigestShmemSize
à 0
et consulter le message d'erreur que renverra le
serveur lorsqu'on essaiera de le démarrer.
L'argument size s'exprime par défaut en octets, mais
vous pouvez faire suivre le nombre par un K
ou un
M
pour spécifier respectivement des KiloOctets ou des
MégaOctets. Par exemple, les directives qui suivent sont toutes
équivalentes :
AuthDigestShmemSize 1048576
AuthDigestShmemSize 1024K
AuthDigestShmemSize 1M