Keybase

Keybase

Keybase est un service qui tend à simplifier au quotidien l'utilisation du chiffrement de vos correspondances grâce à PGP, en vous proposant d'authentifier vos divers comptes sociaux et sites web, que ce soit twitter, reddit, coinbase, assurant à vos contacts l'authenticité de votre profil Keybase, ils pourront signer votre clé publique en suivant votre profil keybase, tout ça le plus simplement du monde.

Le site en lui-même Keybase.io est un client (logiciel) pour Keybase, vous permettant de faire en ligne certaines actions, tel que chiffrer/déchiffrer vos messages ainsi que de partager à la manière d'un dropbox ou d'un google drive, vos fichiers avec vos tiers toujours en assurant la provenance de ceux-ci.

Faisons le tour de ce service qui a aujourd'hui bien évolué et qui se destine à devenir une référence dans la préservation de votre vie privée et l'accessibilité pour tous au chiffrement.

PGP?

Donc Keybase utilise le PGP.
Je ne vais pas entrer dans les détails techniques de PGP, de nombreux blogs le font déjà mieux que moi. Vous trouverez des liens à la fin de l'article. Je vais essayé au mieux de vous expliquer son histoire, son fonctionnement et l'utilisation typique qu'on peut en faire.

PGP se propose de garantir la confidentialité et l'authentification pour la communication des données. Il est souvent utilisé pour la signature de données, le chiffrement et le déchiffrement des textes, des courriels, fichiers, répertoires et partitions de disque entier pour accroître la sécurité des communications par courriel. Utilisant la cryptographie asymétrique mais également la cryptographie symétrique, il fait partie des logiciels de cryptographie hybride.
Pretty Good Privacy - wikipédia

Alors, PGP quoi que c'est?

Le logiciel PGP a été créé en 1991 par Philip Zimmermann, un informaticien américain. Ce logiciel a permit la création du standard OpenPGP (RFC 4880) ainsi que d'un autre logiciel, GnuPGP (GPG) qui est l'implémentation GNU du dit standard, délivré sous licence GnuGPL 3.0. Un logiciel libre, donc. PGP tout comme GPG sont aujourd'hui compatible OpenPGP, qui est devenu le standard. Vous n'êtes pas obligés de retenir ça, mais ça a son importance.

Son principe se veut simple; il s'agit donc de chiffrement à clé publique, PGP génère une paire de clés : une clé publique et une clé privée.
La clé publique est distribuée au plus grand nombre de personnes, la clé privée reste en possession de son propriétaire seul.

  • La clé publique sert à chiffrer.
  • La clé privée sert à déchiffrer.

Les correspondants de X lui envoient leurs fichiers chiffrés avec sa clef publique.
Ce qui a été chiffré avec la clé publique de X, ne peut être déchiffré que par la clé privée de X. X est seul détenteur de cette clef secrète et doit saisir un long mot de passe (une phrase de passe ou passphrase) à chaque fois qu'il veut l'utiliser.

Le fichier de clés privées contient en principe une seule clé; le fichier de clés publiques contient la clé de chacun des correspondants de X.

Plus d'infos: openpgp.vie-privee.org.


En pratique

Admettons que nous ayons deux correspondants qui souhaitent échanger de façon chiffrée, des messages. L'un s'appelle Antoine, l'autre Bernard:

  • Antoine et Bernard utilisent OpenPGP pour chiffrer leur messages, ils ont donc généré chacun une paire de clé PGP; une clé publique et une clé privée. Ils échangent mutuellement leur clé publique, ainsi ils pourront s'envoyer des messages chiffrées à leur intention seule. Bien évidemment ils conservent précieusement leur clé privée respective, qui leur sera nécessaire pour chiffrer leur message et déchiffrer ceux qui leur sont envoyés. Clé privée et clé publique étant une paire, l'une ne va pas sans l'autre et ne peut être utiliser seule.

  • Antoine écrit un message en indiquant la clé publique de Bernard, ainsi seul Bernard pourra lire le message et il le signe avec sa clé publique, ainsi Bernard saura que le message vient bien d'Atoine.

  • Lorsqu'Antoine reçoit le message chiffré, pour pouvoir le lire, il doit le déverrouiller avec sa clé privée. Parfait, le message est déchiffré, seul son destinataire avait la possibilité de le lire et ce dernier a la certitude que le message vient bien de Bernard, clé publique oblige.

Ainsi même si le message chiffré est intercepté, nul autre que son destinataire ne pourra le lire. A part, bien sur, si il se fait voler sa clé privée qui ne peut être déverrouillée que par une passphrase qu'il doit absolument garder secrète. Ça fait beaucoup de si.

Soit, mais comment s'assurer que la clé publique est bien celle de Antoine?
Peut-être que celle qu'à reçu Bernard, émane d'un usurpateur. C'est là qu'intervient le Web of Trust.


  • Donc Bernard reçoit un message chiffré de Antoine ainsi que sa clé publique ou du moins c'est ce qu'il croit. Comment prouvé qu'il s'agit bien de Antoine derrière cette clé? Grâce au Web of Trust incarné ici par Keybase. En effet Bernard et A ont tous deux un profil sur Keybase, bien qu'ils ne se connaissent pas personnellement ils ont en commun des amis qui les suivent tous deux et qui ont d'ors et déjà authentifié leur profil respectif, et par la même leur clé publique.

  • Soit! Il ne reste plus qu'à Bernard de se rendre sur Keybase et de rechercher à qui appartient cette clé publique, et qu'elle surprise! La clé connue et reconnue rattachée au profil d'Antoine, n'est pas celle fournie dans le mail reçu! Un usurpateur, que nous nommerons Xavier a donc tenté de se faire passer pour Antoine en fournissant une nouvelle clé publique, ce qui aurait pu fonctionner sans le Web of Trust fiable et facile d'utilisation qu'offre Keybase.


Le Web of quoi?

le Web of Trust - *ou Toile de confiance*. En cryptographie, la toile de confiance est un concept qui vit le jour avec PGP, GnuPG, ainsi que d'autres applications compatibles avec OpenPGP, qui permet de vérifier le lien entre une clé publique et une identité numérique donnée.
On parle alors de modèle de confiance décentralisé où un individu peut choisir les tiers en qui il place sa confiance, généralement des personnes physiques, en opposition aux modèles de confiance centralisés où la confiance en tant que telle, ne peut se prêter qu'à une autorité de certification (CA ou hiérarchie de CA), dont parfois on ne sait que peu de chose ou bien qui monnaient leur certification, ce qui d'une certaine façon rend faillible la confiance qu'on peut leur porter.

Auparavant pour utiliser PGP, afin d'authentifier l'origine d'une clé publique, il était de coutume de la faire signer par d'autres personnes, via une rencontre en personne par exemple lors des Key Signing parties. Il existe aussi des serveurs publics où tout à chacun pouvait partager sa clé publique, ce qui d'une certaine manière pouvait rendre plus plausible une usurpation d'identité, mais quand bien même ça fonctionnait.

Sur le modèle de confiance centralisé, un exemple bien connu est celui des autorités de certifications, pour les transferts de données sur le protocole HTTPS en SSL/TLS. Bien souvent ces autorités de certifications monnaient leur service rendant difficilement accessible l'HTTPS au commun des mortels, tel que moi et mon blog. Il existe depuis un an une alternative, Lets Encrypt qui comme Keybase tend à rendre totalement accessible le chiffrement au plus grand nombre.


Illustration Man in the middle, Copyright © Keybase

Donc Keybase?

Donc que vient faire Keybase dans tout cela?
Eh bien Keybase, prend très exactement position dans le Web of Trust, servant de relais entre ces différents utilisateurs.

Sur votre profil Keybase vous indiquez vos différents comptes et sites webs authentifiés grâce à des messages postés avec vos comptes via l'API, ou bien avec vos DNS, ou bien encore avec des fichiers .txt posté à la racine de vos sites, ou encore même via PGP. Plusieurs méthodes d'authentification s'offrent à vous, les unes comme les autres sont suffisamment fiables pour s'assurer qu'il s'agit bien de leur propriétaire, vous, derrière ce compte keybase. Le fait que vos sites et vos comptes soient authentifiés assurent à vos futurs interlocuteurs qu'il s'agit bien de vous derrière le compte Keybase en question et sa clé publique, qui leur permettra d'échanger avec vous des messages et fichiers chiffrés, authentifiés. Web Of Trust.

Par exemple sur mon Keybase, vous pouvez voir mes comptes webs et sites:
keybase.io/hiob

Côté sécurité, si vos clés sont reset (publique, privée et passphrase), votre keybase se verra amputé de tous ses proofs ainsi que des ses contacts (following/follower). Vous devrez alors ré-authentifier vos comptes, ré-authentifier les contacts souhaités et vous faire ré-authentifier par vos contacts.

Vos contacts (followers) seront par ailleurs informés de ce reset et pourront vous ré-authentifier le cas échéant.

Au-delà de ça, keybase permet d'authentifier vos différents sites et comptes: ceux qui suivent mon blog hiob.fr, peuvent avoir le coeur net que mon twitter est bien hiob__ ou que je sois bien Hiob (Björn), fondateur de Nefald car le nom de domaine nefald.fr est authentifié sur mon Keybase. Par d'erreurs possibles sur la personne.

KBFS

Voilà tout l’intérêt le Keybase, Keybase File System.
KBFS est ni plus ni moins qu'un partage de fichiers de façons chiffrée et authentifiées via PGP, qui s'utilise exactement comme le ferait un cloud. C'est magique.

Tous les fichiers mis à disposition dans votre partie publique de KBFS, apparaisse sur le site keybase.pub, par exemple pour moi l'adresse est:

keybase.pub/hiob

Localement, mes dossiers publics se trouvent sur /keybase/public/hiob et je peux y accéder depuis mon gestionnaire de fichiers ou mon terminal. Plutôt sexy.

KBFS en pratique

Au premier plan mon terminal après un redémarrage de mon client Keybase, en arrière-plan le GUI indiquant mes périphériques et mes dossiers privés/publics. En l'occurrence vous pouvez apercevoir que j'ai déjà eu accès au dossier public de Chris Coyne et de Pymous. Il s'agit de liens, cliquez dessus ouvrira selon le cas le répertoire dans mon gestionnaire de fichiers ou mon terminal pour exécuter ma commande.
Dans la forme, je trouve ça parfait, très transparent.


Depuis nautilus, on peut accéder au dossier public des autres utilisateurs. Par exemple ici, on peut voir qu'en me rendant dans le répertoire /keybase/public/chris j'accède à l'ensemble des fichiers partagés publiquement par Chris Coyne, l'un des fondateur de Keybase.
De même dans mon terminal je me suis assuré de l'identité de chris avec la commande keybase id chris et ainsi voir l'ensemble des comptes et sites authentifiés. Si je reconnais bien là ceux de chris, je peux le suivre avec keybase follow chris.

Le client Keybase vous notifiera alors (fenêtre à droite) lorsqu'un événement se produit,par exemple en suivant ou en accédant au dossier public d'un utilisateur.

Grand public?

KeyBase est bien fichu, son propos et sa politique tendent à rendre populaire et accessible à tous le chiffrement de données. KeyBase dévoile tout son potentiel en ligne de commande, malgré le développement d'interfaces web (WebUI) tel keybase.pub ou ne serait-ce keybase.io lui-même.

L'enjeu de KeyBase pour 2016/2017 est de sortir des interfaces graphiques client user-friendly qui permettraient à tout à chacun d'utiliser sans plus d'efforts ou de connaissances leur catalogue. Sur GNU/Linux par exemple nous avons le droit à une petite interface succincte mais utile permettant de jeter un œil à son compte, regroupant des raccourcis essentiels, quand bien même l'utilisation de la ligne de commande est nécessaire afin de pouvoir appréhender pleinement Keybase et ses fonctionnalités. Il n'est par exemple pas possible de naviguer dans les fichiers partager, il vous faudra taper de la ligne ou utiliser votre gestionnaire de fichiers. Dans la majorité des cas, ça devrait suffire, mais pas toujours. Pour plusieurs opérations il vous est nécessaire d'utiliser un terminal, ne serait-ce que pour gérer vos contacts.

Vous pourrez cependant gérer les fichiers privés/publics avec n'importe quel gestionnaire de fichier en vous rendant dans le répertoire/keybase/, là encore à la manière de dropbox & co. Pour les fichiers privés mais partagés, va falloir tapoter un peu de ligne:

cd /keybase/private/hiob,pymous
echo "je te aime" > love.txt

Rien de bien déroutant pour la majorité des utilisateurs de keybase qui sont, faut-il le dire, des gens qui se sentent concernés par la préservation de leur vie privée et qui souhaitent maintenir un certain contrôle sur leurs communications et leur vie publique sur internet. De ce fait ils sont probablement déjà rompus à ce genre d'exercice, certes simples, mais qui peut quand bien même rebuter le premier venu.


Illustration Keybase cloud, Copyright © Keybase

La cryptographie au quotidien

Quant est-il de la multiplication des services de ce genre? Il y a peu je vous parlais de Peerio qui est un bel outil - pas tout à fait similaire n'utilisant pas PGP - mais qui a le même objectif et la même philosophie, permettant de partager des fichiers tout en communiquant avec d'autres utilisateurs de façon chiffrée, avec une clé publique et une clé privée. De même Cryptocat depuis que le projet a été remis sur rails et qu'il a adopté une version applicative sans devoir utiliser un navigateur, permet dorénavant de partager des fichiers et des vidéos directement depuis son client. De beaux projets visant à rendre plus populaire l'utilisation de la cryptographie.

We recognize that PGP still has its uses. But we’re pretty sure that PGP isn’t for simple, ubiquitous encryption. We think PGP is a dead-end for the vast majority of people who just want to be productive without compromising their privacy. We think Peerio might help busy people get there. blog.peerio.com

PGP, innovateur et précurseur de la cryptographie pour tous reste donc tout de même complexe pour le commun des mortels, mais les acteurs du domaine s'efforcent de rendre tout cela très simple d'utilisation et Keybase est probablement le premier d'entre eux.

La notion de solidarité

(...)Que se passerait-il si tout le monde estimait que les citoyens honnêtes devraient utiliser des cartes postales pour leur courrier ? Si un non-conformiste s’avisait alors d’imposer le respect de son intimité en utilisant une enveloppe, cela attirerait la suspicion. Peut-être que les autorités ouvriraient son courrier pour voir ce que cette personne cache. »

(...) De la même manière, ce serait excellent si tout le monde utilisait la cryptographie de manière systématique pour tous ses courriels, qu’ils soient innocents ou non, de telle sorte que personne n’attirerait la suspicion en protégeant l’intimité de ses courriels par la cryptographie. Pensez à le faire comme une forme de solidarité. »

Philip Zimmermann, extraits de Pourquoi j’ai écrit PGP6 (1991-1998)

Grosse citation pour de biens jolis mots.
Depuis la création de Keybase, la sortie des apps Android/iOS de Peerio ainsi que le renouveau de Cryptocat, entrevoyant le potentiel derrière tout ça et souhaitant soutenir ce genre d'initiatives, je m’efforce tant bien que mal de convertir mes amis les plus proches à l'utilisation du chiffrement dans leurs communications quotidiennes. À cela j'obtiens toujours la même réponse et je sais que je ne suis pas le seul à l'entendre: Je n'ai rien à cacher, à quoi cela sert-il de chiffrer mes messages?

Voilà et malgré les efforts de Philip Zimmermann et des communautés pour rendre populaire le chiffrement grâce à PGP et à cette notion de solidarité qu'il distille depuis plus de 20 ans, il est encore parfois difficile de faire admettre à la majorité de la population qu'avec les capacités des nouvelles technologies, il est important d'être plus attentif quant à la protection de sa vie privée. Il n'est pas nécessaire de parler d'envoi de RIB, de feuilles d'imposition, etc, non. Juste nos échanges du quotidien, un mail à mamie, des photos à un ami.

Pourquoi? Les moyens qui permettent de chiffrer peuvent paraître encore trop barbares pour la plupart des gens et les rendre plus simple d'utilisation doit parfois se négocier avec la sécurité et/ou la transparence. L'un des moteurs du chiffrement et plus largement des logiciels libres, tel GNUPG, est la transparence quant aux code et les mécanismes, afin que tout à chacun puisse s'assurer de leur bon fonctionnement. C'est peut-être bien un mal nécessaire.

Sur Keybase par exemple, sans être obligatoire, il est possible de sauvegarder dans son navigateur sa clé privée (la passphrase est toujours nécessaire).
Si vous décidez de ne pas le faire, vous ne pourrez pas utiliser le client qu'est keybase.io pour gérer votre profil, il vous faudra passer par le client installé sur votre ordinateur; un risque qui peut paraître acceptable pour certains, pour d'autres non.

Bien évidemment ce n'est pas en chiffrant certains de vos messages que vous allez préserver vos votre intimité, les plus préoccupés vous diront d'éviter tout type de réseau social et de ne naviguer qu'à travers Tor et comparses, mais il s'agit là d'un premier pas, qui aidera peut-être à une prise de conscience.

J'ai rédigé un article sur l'importation et l'utilisation locale des clés PGP générées par Keybase, afin de les utiliser directement dans son client messagerie, Thunderbird, grâce à Enigmail. Très pratique!

Adoptez Keybase !

Avant de clore cet article, je tiens à remercier Geoffrey Richard qui est en quelques sortes mon parrain sur Keybase. C'est grâce à lui que j'en ai un peu plus appris sur Keybase, au travers de son article.

Aussi il a eu l'amabilité de m'inviter sur keybase il y a deux ans et c'est ce pourquoi je souhaiterai en faire autant aujourd'hui, en vous proposant de vous inviter sur keybase!
Les invitations sont limitées mais j'en ai toute de même quelques unes alors n'hésitez pas à me contacter en chiffrant pourquoi pas votre message grâce à mon Keybase.

C'est l'occasion de se connaître un peu mieux, un petit mot sur vous, sur ce pourquoi vous souhaitez rejoindre KeyBase et des liens vers vos sites seront les bienvenus!

N’hésitez pas à commenter cet article. :)

Liens / sources