mardi 13 octobre 2009

Chiffré ne signifie pas sécurisé.

La crypto est devenue part intégrante de la vie numérique.

Moi même, j'utilise des outils me permettant de chiffrer ou signer des mails à destination du monde entier, l'ensemble des clés se faisant confiance par le mécanisme des autorités de certification.

La crypto est toujours quelque chose de très aride à lire, comme par exemple la RFC 3852 qui spécifie la syntaxe des messages cryptos. On apprend que ces messages peuvent être signés, chiffrés, authentifiés ou que leur integrité soit assuré.
Mais le diable se niche dans les détails. Prenons l'exemple du chiffrement. Un fichier chiffré empêche quiconque de le lire, par définition.

Néanmoins, aucune garantie n'est faite sur son intégrité ou son authenticité!

Ce qui pose le problème suivant: imaginons qu'Alice veut écrire à Bob un message confidentiel.
Charlie peut tout à fait intercepter le message d'Alice et le supprimer. Puis envoyer un message chiffré avec la clé publique de Bob à Bob. Bob lira le message en pensant qu'il venait d'Alice. Il ne faut surtout pas qu'il imagine que le message soit d'Alice, bien que le message ait été parfaitement chiffré à l'aide de sa clé publique. La seule chose dont Bob soit sur, c'est que le message ne sera lu dorénavant que par lui, et qu'il a été lu par l'émetteur. Mais aucune garantie n'est faite sur l'émetteur.

Bien entendu, Charlie ne connaît pas le contenu du message d'Alice. Ce qui va poser des problèmes pratiques lors de la rédaction du second message pour Bob (Si Bob reçoit une proposition commerciale alors qu'Alice l'a prévenue qu'elle lui envoyait ses photos de vacances, il risque d'être soupçonneux.). Mais si Charlie connaît à peu près le contenu du message que doit envoyer Alice, alors il pourra le remplacer sans aucun problème.

Imaginons maintenant que Bob soit un client, et qu'il réalise un appel d'offre. Pour plus de confidentialité, il donne sa clé publique à Alice et Charlie pour qu'ils communiquent de manière sécurisée leurs propositions.
Charlie pourra usurper l'identité d'Alice sans aucun problème, afin de gagner à coup sûr l'appel d'offre. Il aura suffit à Charlie de connaître le type de mail qu'Alice envoie (ce qui est relativement faisable car l'appel d'offre est public, ainsi que le canevas de la réponse qu'Alice effectuera) et l'heure d'envoi. Et là, on voit bien que le chiffrement n'a amené absolument aucune sécurité contrairement a ce qu'imaginait Bob.

Les mêmes mécanismes d'usurpation peuvent être mis en oeuvre contre quelqu'un qui chiffre ses documents. Si j'ai accès au répertoire où ses documents sont chiffrés, et en m'aidant avec le nom des fichiers, je peux lui altérer grandement (sans qu'il s'en rende compte) ses fichiers.
Tout est chiffré, mais le fichier 'X' n'est plus le même. Si la personne est le DRH et que le fichier en question est mon contrat de travail, je devrais pouvoir le modifier de manière intéressante :-)

En conclusion, je dirais que chiffrer c'est bien, mais il ne faut pas se focaliser uniquement sur ce chiffrement.
Le chiffrement empêche un tiers de lire le contenu. Le chiffrement ne permet rien d'autre, ni à faire la moindre assertion sur l'émetteur, et encore moins sur l'intégrité des messages. Le chiffrement n'est donc qu'une étape, inutile, si elle est utilisée seule. Donc chiffrer, oui; mais signer est une obligation.

Aucun commentaire:

Enregistrer un commentaire