# Keybase

Keybase est un répertoire de clefs qui associe les identités des réseaux sociaux à des clefs de chiffrement (y compris, mais sans s'y limiter, les clefs PGP) de manière qu'elles puissent être vérifiées publiquement. Elle offre en outre un système de discussion chiffré de bout en bout et un système de stockage dans le cloud$^,$, appelés respectivement Keybase Chat et Keybase Filesystem. Les fichiers placés dans la partie publique du système de fichiers sont servis à partir d'un point d'accès public, ainsi que localement à partir d'un système de fichiers monté par le client Keybase.
Keybase prend en charge la connexion publique des identités Twitter, GitHub, Reddit, Hacker News et Mastodon, y compris les sites Web et les domaines sous son contrôle, aux clés de chiffrement. Il prend également en charge les adresses de portefeuille de cryptomonnaies Bitcoin, Zcash (en) et Stellar$^,$$^,$$^,$$^,$. Keybase a pris en charge les identités Coinbase depuis la publication publique initiale, mais a cessé de le faire le 17 mars 2017 lorsque Coinbase a mis fin aux pages de paiement publiques. En général, Keybase permet à tout service avec des identités publiques de s'intégrer à Keybase.
Le 7 mai 2020, Keybase annonce son acquisition par Zoom, dans le cadre du plan de Zoom pour renforcer sa sécurité.

## Preuves d'identité

Keybase permet aux utilisateurs de prouver un lien entre certaines identités en ligne (comme un compte Twitter ou Reddit) et leurs clés de chiffrement. Au lieu d'utiliser un système tel que OAuth, les identités sont prouvées en publiant une déclaration signée en tant que compte dont un utilisateur souhaite prouver la propriété. Cela rend les preuves d'identité publiquement vérifiables — au lieu d'avoir à croire que le service est véridique, un utilisateur peut trouver et vérifier lui-même les déclarations de preuve pertinentes, et le client Keybase le fait automatiquement.

## Applications

En plus de l'interface Web, Keybase propose une application client pour Windows$^,$, Mac, Android, iOS, et la plupart des distributions Linux de bureau, écrit en Go et utilisant Electron. L'application offre des fonctionnalités supplémentaires au site Web, telles que le chat crypté de bout en bout, la fonctionnalité d'équipes et la possibilité d'ajouter des fichiers et d'accéder à des fichiers privés dans leur stockage Keybase Filesystem personnel et d'équipe. Chaque appareil exécutant l'application cliente est autorisé par une signature faite soit par un autre appareil, soit par la clé PGP de l'utilisateur. Chaque appareil reçoit également une clé NaCl (en) (prononcée salt, soit « sel » en anglais) pour effectuer des opérations cryptographiques.

## Conversations

Keybase Chat est un système de discussions chiffré de bout en bout intégré à Keybase, lancé en février 2017. Une caractéristique distinctive de Keybase Chat est qu'il permet aux utilisateurs de Keybase d'envoyer des messages à quelqu'un en utilisant leurs alias en ligne (par exemple un compte Reddit), même s'ils ne se sont pas encore inscrits à Keybase.
Si le destinataire (le propriétaire de l'alias en ligne) a un compte sur Keybase, il recevra le message de manière transparente. Si le destinataire n'a pas de compte Keybase, et s'inscrit plus tard et prouve le lien entre le compte en ligne et ses appareils, l'appareil de l'expéditeur renverra le message pour le destinataire en fonction de la preuve publique qu'il a publiée, lui permettant de lire le message. Puisque l'application Keybase vérifie la preuve, elle évite le fait que l'utilisateur soit obligé de faire confiance à l'application, car il est libre d'aller vérifier par lui-même.

## Système de fichiers Keybase (KBFS)

Keybase permet aux utilisateurs de stocker gratuitement jusqu'à 250 Go de fichiers dans un stockage en nuage appelé Keybase Filesystem. Il n'y a pas de mises à niveau de stockage disponibles, mais des plans payants permettant plus de données sont prévus. Le système de fichiers est divisé en trois parties: les fichiers publics, les fichiers privés et les fichiers d'équipe. Sur les machines de type Unix, le système de fichiers est monté sur /keybase, et sur les systèmes Microsoft Windows, il est généralement monté sur le lecteur K. Actuellement, les versions mobiles du client Keybase ne peuvent télécharger que des fichiers à partir de kbfs et ne peuvent pas les monter. Cependant, ils prennent en charge des opérations telles que le re-calcul des clefs de fichiers si nécessaire. En octobre 2017, Keybase a lancé une fonctionnalité de dépôts Git chiffrés de bout en bout.

### Fichiers publics

Les fichiers publics sont stockés dans /public/utilisateur et sont visibles publiquement. Tous les fichiers du système de fichiers public sont automatiquement signés par le client. Seul l'utilisateur dont le dossier porte le nom peut modifier son contenu, cependant, un dossier peut être nommé d'après une liste d'utilisateurs séparés par des virgules (par exemple, un dossier /public/pierre,paul,jacques serait modifiable par les utilisateurs pierre, paul et jacques).
Tous les utilisateurs peuvent accéder aux fichiers publics. Les dossiers pour un seul utilisateur sont affichés sur keybase.pub et sont également accessibles en ouvrant le répertoire dans la version montée du système de fichiers. Les dossiers multi-utilisateurs (tels que /public/pierre,paul,jacques) ne sont accessibles que via la version montée du système.

### Fichiers privés

Les fichiers privés sont stockés dans /private/utilisateur et ne sont visibles que par "utilisateur". Les dossiers privés, comme les dossiers publics, peuvent être nommés d'après plus d'un utilisateur (par exemple, un dossier /private/ pierre,paul,jacques seraient lisibles et modifiables par les utilisateurs pierre, paul et jacques). Les fichiers privés peuvent également être lus uniquement pour les utilisateurs après "#" (par exemple, un dossier /private/ auteur1,auteur2,#lecteur1,lecteur2 serait lisible et modifiable par les utilisateurs auteur1 et auteur2 mais uniquement lisible par lecteur1 et lecteur2). Contrairement aux fichiers publics, tous les fichiers privés sont à la fois chiffrés et signés avant d'être téléchargés, ce qui les rend chiffrés de bout en bout.

### Fichiers d'équipe

Les fichiers d'équipe sont stockés dans /team/nom-equipe et sont visibles publiquement par les membres de l'équipe. Tous les fichiers du système de fichiers d'équipe sont automatiquement chiffrés et signés par le client. Seuls les utilisateurs possédant les droits d'écriture peuvent modifier son contenu, cependant, tous les lecteurs peuvent accéder aux fichiers qui y sont stockés.

## Les équipes

En septembre 2017, Keybase lance Keybase Teams. Une équipe est décrite comme «… un groupe de personnes nommé ». Chaque équipe dispose d'un dossier privé dans le système de fichiers Keybase et d'un certain nombre de canaux de discussion (similaires à Slack). Les équipes peuvent également être divisées en «sous-équipes» en plaçant un fichier . dans le nom de l'équipe. Par exemple, wikipedia.projets serait une sous-équipe de wikipedia, tandis que wikipedia.projets.encours serait une sous-équipe de wikipedia.projets (et donc aussi de wikipedia).

### Administration d'équipe

Les équipes sont en grande partie administrées en ajoutant des signatures à une chaîne. Chaque signature peut ajouter, supprimer ou modifier l'appartenance d'un utilisateur à une équipe, ainsi que lorsque des modifications sont apportées aux sous-équipes.
Chaque chaîne commence par une signature faite par le propriétaire de l'équipe, avec les actions ultérieures signées par les administrateurs de l'équipe ou les utilisateurs. Cela garantit que chaque action est effectuée par un utilisateur autorisé et que les actions peuvent être vérifiées par toute personne en possession de la clé publique utilisée.