Guide d'autodéfense numérique

Comme on l'a vu, quiconque possède une clé secrète peut l’utiliser pour déchiffrer un texte qui a été chiffré en utilisant la clé publique qui lui est associée. C'est une propriété très utile, mais qui dans certains cas peut se révéler embarrassante.

Admettons qu'une personne mal intentionnée enregistre une conversation en ligne chiffrée entre deux personnes. Elle ne pourra bien sûr rien lire du contenu de cette conversation dans l'immédiat. Mais elle peut avoir l'idée de s'introduire ensuite chez ces personnes ou dans leur ordinateur et de mettre la main sur leurs clés privées. Dans ce cas, elle sera en mesure de lire, a posteriori, toutes les conversations passées qu'elle aura conservées.

Ce fut le cas il y a quelques années, lorsque les admins du serveur autistici.org se rendirent compte lors d'un procès que la police avait mis la main sur les clés secrètes installées sur leur serveur, parce qu'ils produisaient au dossier des échanges d'emails qu'ils n'auraient normalement pas dû être capables de lire1.

Pour éviter qu'un secret éventé ne compromette a posteriori de nombreux autres secrets qui en dépendent (comme par exemple le contenu de conversations en messagerie instantannée pourtant chiffrées, des échanges de emails, etc.) certains logiciels incluent des fonctions dites de confidentialité persistante2 (ou Perfect Forward Secrecy, en anglais).

Elles assurent que même si un jour un secret à long terme, typiquement une clé privée, est découverte par un adversaire, les échanges seront protégés d'une analyse a posteriori.

Dans les faits, au lieu d'utiliser directement la clé publique pour chiffrer les communications, ce type de chiffrement utilise un protocole d'échange de secrets conçu pour fonctionner même sur un canal de communication non sûr, en négociant une clé temporaire à chaque session de communication. La clé secrète d'une paire de clés ne sert, dans ce cas, qu'à s'assurer qu'on communique bien avec la bonne personne, en signant cet échange de secret.

C'est ensuite ce secret temporaire qui est utilisé pour chiffrer de façon symétrique les communications.

Une fois la communication terminée, il suffit que les logiciels impliqués oublient ce secret temporaire. Quand bien même quelqu'un mettrait la main sur les clés secrètes des deux parties, la confidentialité de la communication ne serait pas compromise : les participants de l'échange eux-mêmes n'y ont plus accès.