• # MITM

    Posté par . En réponse au journal Autocrypt. Évalué à 10.

    Ça simplifie certes l'usage de la cryptographie (et c'est déjà un gros plus), mais ça ne résout pas la question d'un MITM dès le premier envoi.

    Prenons l'exemple d'Alice qui veut envoyer un message à Bob alors qu'Eve est au milieu et souhaite écouter la conversation :

    • Alice envoie un premier message (en clair) à Bob et y met sa clé publique dans l'en-tête ;
    • Eve intercepte ce message, édite l'en-tête à la volée et remplace la clé publique d'Alice par la sienne. Elle renvoie le message modifié à Bob ;
    • Bob reçoit le message modifié et enregistre la clé publique d'Eve comme étant celle d'Alice. Il répond avec un message chiffré avec la clé publique d'Eve qui contient sa propre clé publique ;
    • Eve intercepte le message, le déchiffre avec sa clé privée, remplace la clé publique de Bob par sa propre clé publique ; chiffre le tout avec la clé publique d'Alice et renvoie le message modifié à Alice ;

    À l'issue de cet échange, lorsqu'Alice croira parler à Bob, elle le fera avec la clé d'Eve qui pourra tout lire. Idem dans l'autre sens. À noter : ceci ne marche que tant qu'Eve est active. Si, pour une raison ou pour une autre, l'attaque MITM se terminait, elle serait immédiatement découverte.

    Ajouter une couche de signature ne change rien au problème : Eve n'aura qu'à retirer le bloc de signature, puis signer avec sa propre signature.

    Quelles solutions ?

    Une première solution est de disposer, pour le premier mail, d'un canal auxiliaire sûr permettant la transmission d'au moins une des clés publiques.

    Si Alice et Bob n'ont pas ce type de canal auxiliaire, ils peuvent utiliser un autre type de canal auxiliaire. Ils peuvent par exemple convenir d'une phrase de passe qu'Alice signerait avec sa clé privée, puis qu'elle retirerait du corps du mail. Bob pourrait alors ajouter cette phrase et contrôler la signature d'Alice.
    Une pratique courante est d'envoyer un mot de passe par SMS pour déverrouiller un fichier envoyé par mail ; l'hypothèse étant qu'un MITM sur le mail n'aura sans doute pas de MITM sur les SMS.

    En fait, le problème plus général du chiffrement, c'est que ça serait vraiment bien qu'il se démocratise, mais que le moindre faux pas dans son exécution le rend inopérant. C'est vraiment pas évident de concevoir des applications foolproof.

    Ça, ce sont les sources. Le mouton que tu veux est dedans.