Chiffrement
Tout ce que bae place dans un emplacement cloud opaque est chiffré avant de quitter l’appareil. bae n’implémente aucune cryptographie lui-même : tout le schéma est celui de coven, et cette page décrit comment bae l’utilise. Les emplacements navigables n’utilisent rien de tout cela ; ce qui suit ne s’applique pas à eux.
La clé de bibliothèque
Lien vers cette sectionUne bibliothèque opaque a un secret racine : une clé aléatoire de 256 bits créée quand l’emplacement est créé. Elle vit dans le trousseau du système d’exploitation, jamais dans un fichier ; sur les plateformes Apple, l’entrée de trousseau se synchronise via le trousseau iCloud. La configuration de bae ne stocke qu’une empreinte de la clé, suffisante pour distinguer une mauvaise clé d’une bonne au déverrouillage sans conserver le secret.
La clé voyage entre appareils de deux manières, toutes deux décrites dans Identité et appartenance : scellée avec la clé publique d’un appareil approuvé pendant une invitation, et portée dans un code de récupération.
Générations
Lien vers cette sectionLa clé de bibliothèque est en réalité un trousseau de générations numérotées. Retirer un membre ajoute une nouvelle génération que le membre retiré ne reçoit jamais : tout ce qui est écrit ensuite utilise la nouvelle génération et lui est illisible, tandis que les membres restants gardent chaque génération et peuvent lire tout l’historique. Chaque objet scellé indique en clair quelle génération l’ouvre.
Ce qui est scellé
Lien vers cette sectionChaque objet de l’emplacement : jeux de changements, instantanés, blobs audio, illustrations, enregistrements d’appartenance, objets de contrôle. Les objets sont scellés avec XChaCha20-Poly1305 par blocs de 64 Ko, chaque bloc authentifié, et liés à leur contexte : un objet scellé ne se déchiffre que comme l’objet qu’il devait être, pour cette bibliothèque, avec cette clé. Le découpage en blocs est ce qui permet la diffusion : le lecteur peut déchiffrer exactement les plages d’octets qu’il récupère.
Ce que le fournisseur peut voir
Lien vers cette sectionNombre d’objets, tailles d’objets, moment des envois et motifs d’accès. Pas les noms, pas les métadonnées, pas l’audio, pas les illustrations, pas l’appartenance. Il n’y a pas de récupération côté serveur : un utilisateur qui perd chaque appareil et chaque copie de la clé a perdu pour toujours le texte chiffré de la bibliothèque, ce qui est le comportement prévu.
Déverrouillage et verrouillage
Lien vers cette sectionOuvrir une bibliothèque lit la clé depuis le trousseau. Si la bibliothèque attend une clé et que le trousseau ne l’a pas, bae traite la bibliothèque comme verrouillée : il demande la clé avant l’ouverture, valide la saisie avec l’empreinte stockée, puis la réenregistre dans le trousseau. Verrouiller une bibliothèque retire volontairement la clé du trousseau ; rien dans l’emplacement cloud ne peut être lu ou écrit jusqu’à ce qu’elle soit saisie de nouveau.