De plus en plus, les violations de la vie privée, que ce soit par les gouvernements ou encore par les entreprises auxquelles vous confiez vos données, deviennent monnaie courante. Les services de renseignements de nombreux pays interceptent vos emails, les serveurs de Google analysent vos courriels afin de vous présenter des publicités pertinentes : l’email est l’équivalent, en terme de vie privée, d’une carte postale, sans enveloppe. Son contenu est, virtuellement, lisible par tous. 151590783_836e36fc62_o

PGP, la solution existe

PGP, inventé en 1991 par Phil Zimmermann, permet de crypter vos échanges. Seul le destinataire du mail envoyé pourra déchiffrer le message. Le principe de PGP repose sur la cryptographie asymétrique, avec une clef privée et une clef publique. Si les maths qui régissent la cryptographie asymétrique sont difficilement accessibles au citoyen lambda, le principe est très simple. Imaginons que je souhaite correspondre avec Alice, en toute confidentialité. Je dispose de deux clefs. Une clef publique, que je donne à tout le monde, et une clef privée, que je garde secrète. Alice dispose également de deux clefs. Si je veux envoyer un message à Alice, je dois disposer de sa clef publique. Avec cette clef, je dépose mon message dans un coffre et, avec la clef publique d’Alice, je ferme le coffre. Ce coffre est spécial : la clef publique ne peut que fermer le coffre. Impossible de le réouvrir avec cette clef. Alice, avec sa clef privée, peut ouvrir le coffre et découvrir mon message. En résumé : le coffre fermé avec la clef publique d’Alice ne peut être ouvert qu’avec la clef privée d’Alice. Pour me répondre, Alice dépose son message dans mon coffre, le ferme avec ma clef publique et m’envoie le tout. Il me suffit d’ouvir le coffre avec ma clef privée. Un problème subsiste : comme tout le monde dispose de ma clef publique, rien ne me garantit que le message provient bien d’Alice. Qui sait, peut être que le message provient de Bob, qui se fait passer pour Alice ? PGP permet, à cet effet, de signer un message. Pour se faire, Alice, avec sa clef privée, signe son message. Considérant que seule Alice dispose de sa clef privée, cette signature garantit que le message provient d’elle et que le message n’a pas été modifié. On peut comparer cela à un sceau en cire que l’on appose sur une lettre. Si le sceau est brisé, on ne peut faire confiance au message.

“Web of Trust”

Nous venons de voir qu’Alice peut certifier que le message provient bien d’elle et non pas de Bob. Mais Bob est malin : il sait que, pour communiquer de façon sécurisée, Alice et moi devons échanger nos clefs publiques. Rien ne m’assure que Bob ne se fait pas passer pour Alice depuis le début et qu’il m’a envoyé sa clef. Ce serait catastrophique : tous les messages que je pensais chiffrer pour Alice sont en fait chiffrés pour Bob. Alice et moi pourrions nous rencontrer pour s’échanger physiquement nos clefs. Toutefois, si Alice habite à l’autre bout de la planète, c.est difficilement envisageable. Heureusement, des solutions existent : toutes les clefs PGP disposent d’une empreinte, quelques lettres et chiffres, qu’Alice peut me communiquer, par téléphone par exemple. Mais la, rien ne me garanti que ce n’est pas Bob qui se fait passer pour Alice au téléphone. Une solution a été mise en place pour tenter d’éliminer ces soucis. Il s’agit du “Web of Trust”, ou Toile de Confiance. Alice va envoyer sa clef publique vers un serveur de clefs (le plus connu étant sans doute celui du MIT), où elle sera mise a disposition du monde entier. L’infrastructure étant décentralisé, sa clef va être copiée sur d’autres serveurs de clefs. Si je veux communiquer de façon scurisee avec Alice, je vais donc rechercher (via son nom ou son adresse mail par exemple) sa clef sur un des serveurs. Si je dispose maintenant d’un moyen rapide pour trouver la clef d’Alice, rien ne garanti que ce n’est pas Bob qui se fait passer pour passer pour Alice. C’est maintenant qu’entre en scène le Web of Trust. Alice et moi avons une amie en commun : Catherine. Nous nous sommes échangé nos clefs, j’ai donc confiance en Catherine. Pour signaler au monde entier que j’ai confiance en la clef de Catherine, j’ai la possibilité de signer sa clef publique avec ma propre clef privée. J’ai ensuite envoyé la clef publique de Catherine, signée par mes soins, sur un des serveurs de clefs. Catherine a fait la même chose pour La clef publique d’Alice. Par conséquent, en cherchant la clef d’Alice, j’ai pu constater que Catherine l’a avait signée. Je peux donc avoir confiance dans le fait que le clef publique appartient bien à Alice et non pas à Bob l’imposteur. Le Web of Trust permet donc d’avoir confiance dans une clef publique sans jamais avoir rencontré son interlocuteur. network-of-people

De la théorie à la pratique

Dans la vie quotidienne, chiffrer et signer des emails avec PGP n’est pas à la portée de tout un chacun. Il faut installer sur son ordinateur un logiciel (GPG4WIN sous Windows, GPG Tools sous OS X), créer sa paire de clef, les envoyer sur un serveur, récupérer les clefs publiques de nos correspondants, demander à ses connaissances de signer sa clef publique, … De plus, l’Internet mobile fait que l’on correspond de plus en plus via nos smartphones où il existe peu d’applications PGP (mention spéciale à iPGMail sous iOS, qui, outre un design discutable, permet de chiffrer et déchiffrer rapidement, on-the-go). De plus en plus d’utilisateurs utilisent aussi des webmails, et là aussi, peu de solutions existent (Mailveloppe, pour Google Chrome et Firefox, est une extension prometteuse mais est accablée de quelques sérieuses limitations). Quant au Web of Trust, sans atteindre une masse critique d’utilisateurs, il a peu de chance de décoller auprès du grand public. Notons toutefois qu’il est très populaire auprès des développeurs et de la communauté open source, organisant des “signing party”. keybase

Keybase.io, PGP au 21e siècle

Comment allier la réalité du web d’aujourd’hui et la sécurité prouvée de PGP ? Keybase.io, un projet en phase alpha des fontadeurs de OkCupid, permet un compromis entre sécurité et facilité d’utilisation. Deux aspects du site sont intéressants. Le premier permet de chiffrer, déchiffrer, signer et vérifier des messages PGP, directement dans le navigateur. Alice peut donc, sans installer PGP sur sa machine, envoyer des messages sécurisés à n’importe quel utilisateur de Keybase ou de PGP. Alice à la possibilité d’héberger sa clef publique sur Keybase, mais aussi sa clef privée. Le site utilise des méthodes de chiffrement dans le navigateur (pas côté serveur donc) pour que votre clef privée reste confidentielle, même aux yeux de Keybase. Le fait d’héberger sa clef privée sur un site internet dont le code peut éventuellement être modifié peut choquer les puristes, qui jamais ne mettront leur clef privée en ligne. Néanmoins, pour le grand public, le risque est probablement acceptable. De plus, Keybase peut se charger de la génération de la paire de clefs. Ceux qui ne désirent pas héberger leurs clefs publiques pourront utiliser Keybase via l’interface en ligne de commande. Le code du client est librement vérifiable sur Github, ainsi que d’autres morceaux de code de Keybase. En utilisant la ligne de commande, la clef privée reste donc sur votre ordinateur. Toutefois, l’autre aspect de Keybase est un remplaçant du Web of Trust. Ou plutôt son complément, bien nécessaire. Keybase va vous permettre de vérifier l’authenticité des clefs de vos contacts depuis les réseaux sociaux. Par exemple, mes contacts savent que je poste depuis @geofox sur Twitter. J’ai donc signé un message avec ma clef privée et je l’ai tweeté. J’ai fait pareil avec mon compte Github et mes différents nom de domaines. Ainsi, un interlocuteur potentiel peut vérifier que ma clef privée à bien servi à authentifier un tweet. Il peut également, de lui même, vérifier la signature. Une autre fonctionnalité intéressante est le concept de “Tracking”. Revenons à Alice. Elle souhaite converser de façon sécurisée avec moi. Depuis mon profil Keybase.io, elle peut télécharger ma clef publique. Alice a également la possibilité de vérifier qu’un tweet signé par ma clef privée a été émis depuis mon compte Twitter, que mes domaines ont également été signés. Elle a donc un degré de confiance elevé dans ma clef. Si elle a pu vérifier mon identité, alors elle peut décider de “tracker”, de suivre, mon profil Keybase. Alice signera alors, avec sa propre clef, mon profil Keybase et ses données associées. Ainsi, elle est sure que mes informations ne seront pas modifiées sans en être avertie et indique publiquement faire confiance dans mon profil.

Reset the Net

En conclusion, le chiffrement des données entre, depuis quelques mois, dans les moeurs. Des initiatives telles que Reset the Net, Email Self-Defense, … veulent informer le grand public des solutions qui existent. A mon sens, Keybase.io a le potentiel de devenir une solution simple et élégante pour le grand public. Si vous souhaitez une invitation pour Keybase.io, n’hésitez pas à me le faire savoir sur @geofox ou par mail à l’adresse “geoffrey” at “le nom de domaine” du présent site.