Attaque par rencontre au milieu (basée sur le paradoxe de l'anniversaire)
Ce type d'attaque s'inspire du paradoxe de l'anniversaire
Explication
Si l'on considère que la date d'anniversaire est le produit d'une fonction de hashage, le même concept s'applique.
Ainsi, sur un hashage de n-bits, il n'est possible de n'en générer que 2^(n/2) avant d'obtenir une collision (qui dans le paradoxe de l'anniversaire correspond à deux personnes de même anniversaire).
Le concept est simple, si on considère une donnée doublement chiffrée (crypté ou hashée par exemple).
Original => Chiffrage1(Original) => Chiffrage2(Chiffrage1(Original) = Donnée doublement chiffrée.
Le déchiffrage s'effectue donc comme suit:
Donnée => Déchiffrage2(Donnée) => Déchiffrage1(Déchiffrage2(Donnée)) => Original.
Si à un moment donné une personne mal intentionnée a accès à la version chiffrée et à la version déchiffrée. Il est très facile de généré autant de version chiffrée une seule fois et de comparer ce résultat à un nombre important de version déchiffrée une seule fois:
nombre de clés × Chiffrage1(Original) => ? <= nombre de clé × Dechiffrage2(Donnée)
Dans ce cas, si la longueur de la clé est n, alors cette attaque trouve les deux clés seulement au bout de 2^(n+1) chiffrage!
Le cas de la signature digitale
Rappelons qu'une signature digitale est le cryptage par la clé privée de l'origine du hashage du document signé.
Si je désire pieger une personne en lui faisant signer digitalement un faux document, il me suffit de préparer une série de documents légèrement différents sans pour autant en changer le sens (par exemple, des mots, des virgules, des espaces, etc…). De préparer ensuite, une série faux document basée sur le même concept.
Si la longueur de la clé est n-bits (le hashage MD5 est long de 128 bits par exemple), alors au bout de 2^(n+1) (ce qui dans le cas du MD5 est 2^129) j'obtiendrais un document faux et un document vrai avec le même hashage…
Il me suffit ensuite de faire signer le bon document par la personne piègée, puis à remplacer le document que la personne a signé par mon faux document.
Nous obtenons alors une signature digitale d'un vrai document appliquée à un faux document. "Prouvant" l'authenticité d'un document qui est loin de l'être.
Maintenant que la théorie est exposée, cela ne signifie pas que ce soit techniquement possible, du moins pour l'instant…
Conseil simple
Il est conseillé, à la lumière de ces informations, de ne jamais signer en l'état un document que l'on vous a transmis.
Modifier le document avant de le signer, ne serait que d'un caractère, espace, ponctuation ou majuscule, rend ce type d'attaque inopérante !