Un des problèmes majeurs lorsque deux personnes veulent échanger des données chiffrées, est celui de la transmission des clés : pour s'assurer d'être les seuls à connaître ces informations secrètes, les correspondants doivent pouvoir l'échanger de façon confidentielle. Dans le cadre de la cryptographie symétrique, il faut disposer d'un canal sécurisé qui lui même nécessite une clé pour être établi. Le problème entre ainsi dans un cercle vicieux.
Il a été en grande partie résolu grâce à l'introduction de la cryptographie asymétrique. Dans ce cas, les deux personnes possèdent chacune leur clé publique (qui sert à chiffrer) et leur clé privée (qui sert à déchiffrer). Ainsi, seules les clés publiques sont échangées. Même si quelqu'un réussissait à intercepter et à lire ces clés publiques, elles ne lui seraient d'aucune utilité pour déchiffrer, en partant du principe que l'algorithme de chiffrement est cryptographiquement sûr.
L'attaque de l'homme du milieu
L'attaque de l'homme du milieu ajoute comme condition supplémentaire que l'attaquant ait la possibilité non seulement de lire, mais de modifier les messages. Dans ce cas, même le chiffrement asymétrique est vulnérable. Toutefois, l'habilitation à modifier l'intégralité des messages qui transitent est en général très difficile à obtenir.
Le but de l'attaquant est de se faire passer pour l'un (voire les 2) des correspondants, en utilisant, par exemple :
- L'ARP Spoofing : c'est probablement le cas le plus fréquent. Si l'un des interlocuteurs et l'attaquant se trouvent sur le même réseau local, il est possible, voire relativement aisé, pour l'attaquant de forcer les communications à transiter par son ordinateur en se faisant passer pour un « relais » (routeur, passerelle) indispensable. Il est alors assez simple de modifier ces communications.
- Le DNS Poisoning : L'attaquant altère le ou les serveur(s) DNS des parties de façon à rediriger vers lui leurs communications sans qu'elles s'en aperçoivent.
- L'analyse de trafic et possiblement la vue non cryptée des transmissions
- Le déni de service : l'attaquant peut par exemple bloquer toutes les communications avant d'attaquer un parti. L'ordinateur ne peut donc plus répondre et l'attaquant a la possibilité de prendre sa place.