web-dev-qa-db-fra.com

Pourquoi l'usurpation DNS ne fonctionne-t-elle pas contre les sites HTTPS?

Comment l'utilisation de SSL protège-t-elle contre l'usurpation de DNS? car DNS est à un niveau inférieur et il fonctionne toujours de la même manière, que l'utilisateur visite un site HTTP ou HTTPS.

16
Gray

Supposons que vous avez réussi à empoisonner le cache DNS de securesite.com avec une adresse IP que vous contrôlez. Maintenant, lorsque le client visite https://securesite.com , il se résoudra en votre adresse IP. Dans le cadre du processus de prise de contact SSL, votre serveur devra envoyer un certificat valide pour securesite.com qui contient la clé publique.

À ce stade, vous avez 2 options.

1) Envoyez le certificat légitime. Cela sera vérifié puisque le certificat est signé par une autorité de certification de confiance. Le client cryptera ensuite le secret principal à l'aide de la clé publique. Il tombe en panne à ce stade, car sans la clé privée, vous ne pouvez pas décrypter le secret principal et vous ne pouvez donc pas terminer la configuration de la connexion.

2) Envoyez un certificat auto-signé. Cependant, comme il n'est pas signé par une autorité de certification de confiance, un avertissement s'affiche sur le navigateur du client. Si le client choisit de continuer malgré tout, vous avez réussi l'attaque.

L'usurpation DNS ne fonctionne généralement pas sur les sites Web HTTPS, sauf si le client choisit d'ignorer les signes d'avertissement ou si vous parvenez à obtenir la clé privée du site.

23
limbenjamin

Disons que vous usurpez le DNS d'un site et redirigez les utilisateurs vers un serveur que vous contrôlez. C'est possible, mais probablement inutile si les utilisateurs visitent la version https du site car vous n'avez pas la clé ssl privée du site que vous usurpez et votre victime ne pourra pas établir de connexion ssl avec votre faux site.

Une manière alternative à quelque chose de similaire serait d'utiliser sslstrip et dns2proxy, mais c'est un autre sujet.

3
stanko