J'ai lu des tonnes de documentation relative à ce problème, mais je n'arrive toujours pas à rassembler toutes les pièces du puzzle. J'aimerais donc poser quelques questions.
-
Je vais tout d'abord décrire brièvement la procédure d'authentification telle que je la comprends, car je peux me tromper à cet égard : Un client établit une connexion, à laquelle un serveur répond par une combinaison de clé publique, de métadonnées et de signature numérique d'une autorité de confiance. Le client décide ensuite s'il fait confiance au serveur, chiffre une clé de session aléatoire avec la clé publique et la renvoie. Cette clé de session ne peut être décryptée qu'avec la clé privée stockée sur le serveur. Le serveur fait cela et la session HTTPS commence.
-
Donc, si j'ai raison ci-dessus, la question est de savoir comment l'attaque man-in-the-middle peut se produire dans un tel scénario ? Je veux dire que même si quelqu'un intercepte la réponse du serveur (par exemple www.server.com) avec la clé publique et a des moyens de me faire croire qu'il est www.server.com, il ne serait toujours pas capable de décrypter ma clé de session sans la clé privée.
-
En ce qui concerne l'authentification mutuelle, s'agit-il uniquement de la confiance du serveur dans l'identité du client ? Je veux dire, le client peut déjà être sûr qu'il communique avec le bon serveur, mais maintenant le serveur veut savoir qui est le client, non ?
-
Et la dernière question concerne l'alternative à l'authentification mutuelle. Si j'agis en tant que client dans la situation décrite, que se passe-t-il si j'envoie un login/mot de passe dans l'en-tête HTTP après l'établissement de la session SSL ? D'après moi, cette information ne peut pas être interceptée car la connexion est déjà sécurisée et le serveur peut s'y fier pour mon identification. Ai-je tort ? Quels sont les inconvénients d'une telle approche par rapport à l'authentification mutuelle (seuls les problèmes de sécurité sont importants, pas la complexité de mise en œuvre) ?