Comparons la différence entre les deux méthodes d'authentification HTTP en utilisant Wireshark
(outil d'analyse des paquets envoyés ou reçus).
1. Authentification basique HTTP
Dès que le client tape le nom d'utilisateur: mot de passe correct, tel que demandé par le serveur Web, le serveur Web vérifie dans la base de données si les informations d'identification sont correctes et donne l'accès à la ressource.
Voici comment les paquets sont envoyés et reçus :
Dans le premier paquet, le client remplit les informations d'identification en utilisant la méthode POST à la ressource - lab/webapp/basicauth
. En retour, le serveur répond avec le code de réponse http 200 OK, c'est-à-dire que le nom d'utilisateur: mot de passe étaient corrects.
Maintenant, dans l'en-tête Authorization
, il montre qu'il s'agit d'une autorisation Basique suivie d'une chaîne aléatoire. Cette chaîne est la version encodée (Base64) des informations d'identification admin:aadd
(y compris le deux-points).
2. Authentification Digest HTTP (rfc 2069)
Jusqu'à présent, nous avons vu que l'Authentification Basique envoie le nom d'utilisateur: mot de passe en texte brut sur le réseau. Mais l'Authentification Digest envoie un HASH du mot de passe en utilisant un algorithme de hachage.
Voici les paquets montrant les demandes faites par le client et les réponses du serveur.
Dès que le client tape les informations requises par le serveur, le mot de passe est converti en une réponse
en utilisant un algorithme puis est envoyé au serveur. Si la base de données du serveur a la même réponse que celle donnée par le client, le serveur donne l'accès à la ressource, sinon une erreur 401.
Dans le Authorization
ci-dessus, la chaîne de response
est calculée en utilisant les valeurs de Username
,Realm
,Password
,http-method
,URI
et Nonce
comme indiqué dans l'image :
(les deux-points sont inclus)
Ainsi, nous pouvons voir que l'Authentification Digest est plus sécurisée car elle implique un hachage (chiffrement MD5), de sorte que les outils de capture de paquets ne peuvent pas intercepter le mot de passe même si dans l'Authentification de base, le mot de passe exact était affiché sur Wireshark.