Identité et appartenance
Il n’y a aucun système de compte dans bae. L’identité d’un appareil est une paire de clés Ed25519 qu’il génère pour lui-même et conserve dans le trousseau du système d’exploitation ; la clé publique est l’identité. Les membres d’une bibliothèque sont un ensemble d’enregistrements signés dans l’emplacement cloud, vérifiables par toute personne qui les détient, émis par aucun serveur. La mécanique est celle de coven ; cette page explique comment bae l’utilise.
Enregistrements d’appartenance
Lien vers cette sectionChaque propriétaire écrit un flux append-only d’entrées d’appartenance signées dans l’emplacement cloud : cette clé a été ajoutée avec ce rôle, cette clé a été retirée. Chaque entrée pointe vers la précédente, et chaque propriétaire signe une tête déclarant la pointe de son flux ; ainsi, un fournisseur qui supprime ou réordonne des enregistrements est détecté au lieu d’être cru. Ce que la bibliothèque accepte est l’union de chaque flux de propriétaire vérifié.
À chaque pull, l’auteur de chaque jeu de changements est vérifié avec cet enregistrement : signé par un membre actuel, avec un rôle autorisé à écrire. Les jeux de changements d’appareils retirés, de clés jamais ajoutées, ou avec des signatures invalides ne s’appliquent pas. Le fournisseur stocke les enregistrements mais ne peut pas les falsifier ; seuls les détenteurs de clés de propriétaire peuvent modifier l’appartenance.
Owner et Member lisent et écrivent tous les deux la bibliothèque ; les propriétaires approuvent et retirent en plus des appareils. L’appareil fondateur de bae est propriétaire et chaque appareil qu’il approuve rejoint comme membre. (Un troisième rôle existe dans la mécanique sous-jacente, un suiveur en lecture seule, que bae n’assigne pas actuellement.)
L’échange de jonction
Lien vers cette sectionL’ajout d’un appareil correspond à une session d’appairage locale avec vérification humaine explicite :
- Un propriétaire démarre Ajouter un appareil. bae écoute brièvement sur le réseau local et affiche un code d’appairage. Il contient les adresses des auditeurs, une clé de session éphémère, le nom de la bibliothèque, le fournisseur et une date d’expiration – aucune clé de bibliothèque ni informations d’identification de stockage durables.
- L’appareil qui rejoint scanne le code, crée sa paire de clés d’appareil, se connecte au fournisseur si nécessaire et envoie sa clé publique signée et l’identité du compte du fournisseur via la connexion locale cryptée. Les deux appareils affichent la même empreinte digitale.
- Le propriétaire compare les empreintes digitales et approuve cette identité exacte. L’approbation accorde à son compte cloud l’accès si nécessaire, signe l’entrée d’adhésion et scelle la clé de bibliothèque et l’accès au stockage final à la clé publique du nouvel appareil.
- Le colis scellé est renvoyé via la même connexion locale authentifiée. Le périphérique qui rejoint l’ouvre, démarre à partir du stockage cloud et commence la synchronisation.
Un appariement expiré, interrompu ou rejeté n’accorde rien.
Révocation
Lien vers cette sectionRetirer un membre ajoute un retrait signé et fait tourner la clé de bibliothèque vers une nouvelle génération que la clé retirée ne reçoit jamais (consultez Chiffrement). Sur les stockages qui peuvent révoquer l’accès, l’accès est aussi retiré. Ce qui était déjà synchronisé sur l’appareil retiré reste avec lui ; les données ne peuvent pas être rappelées. Tout ce qui suit la rotation est hors de sa portée.
Codes de récupération
Lien vers cette sectionUn code de récupération contourne volontairement l’appartenance : ce sont les coordonnées de l’emplacement cloud plus la clé de bibliothèque, en une seule chaîne porteuse, pour restaurer votre propre bibliothèque sans approbateur restant. Il est généré à la demande, stocké automatiquement dans le trousseau iCloud sur les plateformes Apple, et est exactement aussi sensible que la bibliothèque elle-même.