<-
Apache > Serveur HTTP > Documentation > Version 2.5 > Modules

Module Apache mod_auth_digest

Langues Disponibles:  en  |  fr  |  ko 

Description:Authentification utilisateur utilisant les condensés MD5
Statut:Extension
Identificateur de Module:auth_digest_module
Fichier Source:mod_auth_digest.c

Sommaire

Ce module implémente l'authentification HTTP basée sur les condensés MD5 (RFC 2617), une alternative à l’authentification basique fournie par le module mod_auth_basic, et avec laquelle le mot de passe n’est pas envoyé en clair sur le réseau.

Basic et Digest ne sont que deux schémas d’authentification : elles établissent l’identité du client et ne font rien quant à la confidentialité et à l’intégrité de la requête et de la réponse elles-mêmes. Si la connexion n’est pas chiffrée, le contenu de chaque requête et réponse est exposé dans les deux schémas ; un des avantages de l’authentification à base de condensés est que le mot de passe ne fait pas partie de ces dernières. Digest n’est donc pas un substitut pour une connexion sécurisée avec mod_ssl, qui protège les éléments d’authentification et les données de la même façon, et cet avantage a ses limites (voir la note ci-après).

Sujets

Directives

Traitement des bugs

Voir aussi

top

Utilisation de l'authentification à base de condensés

Pour utiliser l'authentification à base de condensés MD5, configurez la protection de la section Location comme dans l'exemple ci-dessous :

Exemple :

<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>

La directive AuthDigestDomain permet de fournir la liste des URIs protégés par cette configuration.

Le fichier de mots de passe référencé par la directive AuthUserFile peut être créé et maintenu via l'utilitaire htdigest.

Note

Un des avantages de Digest par rapport à Basic, éviter l’envoi du mot de passe en clair, est soumis à condition. Si le client se rabat silencieusement sur l’authentification basique lors de la négociation, un attaquant actif pourra contourner la négociation Digest et en proposer une basique à la place ; le navigateur enverra alors le mot de passe en clair ; un espion passif pourra monter une attaque de force brute hors ligne sur une réponse capturée que le hachage MD5 rapide ne ralentira que légèrement ; et si le fichier htdigest est volé, les hachages qu’il contient pourront être rejoués pour s’authentifier directement, sans avoir à récupérer le mot de passe proprement dit. Il est préférable de chiffrer la totalité de la connexion avec mod_ssl.

mod_auth_digest requiert qu’APR soit construit avec la prise en charge de la mémoire partagée, sinon il ne pourra pas être construit.

top

Directive AuthDigestAlgorithm

Description:Sélectionne l'algorithme utilisé pour calculer les condensés du défit et de sa réponse dans l’authentification à base de condensés
Syntaxe:AuthDigestAlgorithm MD5
Défaut:AuthDigestAlgorithm MD5
Contexte:répertoire, .htaccess
Surcharges autorisées: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. Seul l’algorithme MD5 est pris en charge.

top

Directive AuthDigestDomain

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
Surcharges autorisées: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 (qui sont à même de le comprendre) vont partager l'utilisateur/mot de passe entre plusieurs serveurs sans le demander à l'utilisateur à chaque fois.

top

Directive AuthDigestNcCheck

Description:Active ou désactive la vérification du compteur d'envois du nombre à valeur unique (nonce) par le client
Syntaxe:AuthDigestNcCheck On|Off
Défaut:AuthDigestNcCheck Off
Contexte:configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées:AuthConfig
Statut:Extension
Module:mod_auth_digest

La directive AuthDigestNcCheck permet d'activer ou de désactiver la vérification du compteur d'envois du nombre à valeur unique (nonce) par le client. Le compteur d'envois est un compteur séquentiel que le client incrémente à chaque requête en utilisant le même nombre à valeur unique. Cette vérification permet de détecter les attaques par rejeu.

Cette fonctionnalité nécessite la prise en charge de la mémoire partagée sur la plateforme. Si cette directive est définie à On alors que la mémoire partagée n’est pas disponible, le serveur renverra une erreur au démarrage.

Bien qu’il soit recommandé de le faire du point de vue de la sécurité, activer cette directive a des implications en matière de performance : toutes les requêtes comportant un en-tête Authorization doivent être sérialisées au sein d’une section critique pour comparer de manière sure les valeurs du compteur d’envois du nombre à valeur unique. Sur les serveurs à fort trafic, cela peut ne pas être négligeable.

top

Directive AuthDigestNonceLifetime

Description:Durée de validité du nombre à valeur unique du serveur (nonce)
Syntaxe:AuthDigestNonceLifetime seconds
Défaut:AuthDigestNonceLifetime 300
Contexte:répertoire, .htaccess
Surcharges autorisées: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 et un client qui respecte la RFC réessaiera avec un nouveau nombre à valeur unique sans le demander à l’utilisateur.

top

Directive AuthDigestProvider

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
Surcharges autorisées: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, mod_authn_dbd et mod_authn_socache pour la liste des fournisseurs disponibles.

top

Directive AuthDigestQop

Description:Détermine le niveau de protection fourni par l'authentification à base de condensé
Syntaxe:AuthDigestQop auth
Défaut:AuthDigestQop auth
Contexte:répertoire, .htaccess
Surcharges autorisées:AuthConfig
Statut:Extension
Module:mod_auth_digest

La directive AuthDigestQop permet de spécifier la qualité de protection à utiliser. Seule la qualité auth (authentification) est prise en charge et il s’agit de la valeur par défaut. Cette directive n’a donc plus d’effet et n’est conservée qu’à des fins de compatibilité.

Les versions précédentes acceptaient aussi la qualité none (le schéma Digest de la RFC 2069 sans qualité de protection). Elle a été supprimée : une requête dont la qop est absente ou différente de auth est maintenant rejetée.
top

Directive AuthDigestShmemSize

Description:La quantité de mémoire partagée à allouer afin de conserver les informations à propos des clients
Syntaxe:AuthDigestShmemSize taille
Défaut:AuthDigestShmemSize 8192
Contexte:configuration globale
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.

La valeur par défaut permet d’enregistrer environ 140 clients. Un client qui est supprimé pour faire de la place à un autre ne se voit pas interdire l’accès : un nouveau nombre à valeur unique lui est envoyé avec stale=true, ce qui ne lui coûte qu’une requête supplémentaire. Notez qu’une requête qui n’effectue pas d’authentification mobilise tout de même une entrée, car le défit qui lui est renvoyé comporte l’identifiant avec lequel le client est suivi.

L'argument size s'exprime par défaut en octets, mais vous pouvez suffixer 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

Langues Disponibles:  en  |  fr  |  ko