Ma question concerne les certificats spécifiquement dans ssl mais je pense que les questions devraient s'appliquer à tous les certificats. J'ai inclus la procédure SSL dans un souci de clarté.SSL: Comment les certificats sont-ils protégés contre les attaques intermédiaires?
Dans SSL ce que je crois être la procédure:
1) Client
- envoie des algorithmes de chiffrement pris en charge
- envoie client nonce
2) Serveur
- Choisit (et envoie) un
- algorithme symétrique
- un algorithme à clé publique
- un algorithme MAC
- envoie son certificat
- envoie au serveur nonce
3) Client
- vérifie le certificat
- Extraits clé publique
- Génère une clé secrète pré-maître (pms)
- Crypte avec des serveurs clé publique et envoie
4) client et serveur
- Compute maître sécrètent (MS) de PMS et nonces
- PMS coupés en tranches pour générer deux chiffrement & deux clés mac
5) client
- envoie un mac de tous les poignées de main (pour assurer leur n'étaient pas auparavant modifide)
6) serveur
- envoie un mac de tous les poignées de main
Question
Ce qui empêche un homme dans l'attaque du milieu de se produire à l'étape deux?Pourquoi un homme au milieu, disons trudy, ne peut-il pas capturer le certificat envoyé par le serveur et y changer la clé publique (à quelque chose à qui il a la clé privée). Je suppose que le certificat est crypté d'une manière ou d'une autre.
Toutefois, le serveur ne peut pas crypter le certificat car le client n'a pas encore la clé publique. Lorsque le serveur reçoit la clé d'une autorité (comme veri-sign), la clé est-elle pré-encodée en utilisant la clé publique de verisign? Je pense que cela devrait fonctionner parce que tous les navigateurs Web devraient avoir les clés publiques de la plupart des autorités.
dans la description de la profondeur de la façon dont ssl (ou TLS) fonctionne pour toute personne intéressée: http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html – sixtyfootersdude