Cifratura
Tutto ciò che bae mette in una home cloud viene cifrato prima di lasciare il dispositivo; non esiste una modalità non cifrata. bae non implementa crittografia propria: l’intero schema è quello di coven, e questa pagina descrive come bae lo usa.
Le chiavi
Link a questa sezione| Chiave | Cosa fa |
|---|---|
| La chiave dello store | cifra la libreria e i suoi record di appartenenza |
| La chiave di cerchia di ogni persona | cifra ciò che quella persona tiene privato: la sua cronologia di ascolto privata e le sue playlist private |
| La chiave di ogni file | cifra un file, e viaggia solo dentro le modifiche cifrate della sua riga |
| La coppia di chiavi di firma di una persona | firma ogni modifica che i suoi dispositivi inviano |
| La coppia di chiavi di sigillatura di una persona | apre le chiavi sigillate per quella persona |
La chiave dello store è casuale, creata quando la libreria ottiene la sua home cloud. Le coppie di chiavi di una persona sono condivise da tutti i suoi dispositivi. Le chiavi private e le chiavi della libreria vivono nel portachiavi del sistema operativo, mai in un file o nel database. Raggiungono un dispositivo in due modi, entrambi descritti in Identità e appartenenza: un codice di ripristino porta le coppie di chiavi di una persona, e un amministratore che approva un invito sigilla le chiavi dello store per la chiave di sigillatura della nuova persona.
Rotazione
Link a questa sezioneUna chiave non viene mai cambiata sul posto; se ne aggiunge una nuova. Dopo la rimozione di una persona, il dispositivo di un membro rimasto aggiunge una nuova chiave dello store, e una nuova chiave per ogni cerchia di cui faceva parte, prima di scrivervi altri dati: tutto ciò che viene scritto dopo è illeggibile per lei, mentre i membri rimasti conservano ogni chiave precedente e possono leggere tutta la storia. Rimuovere un solo dispositivo non ruota nulla, perché gli altri dispositivi della persona ne condividono le chiavi; dalla rimozione in poi, ciò che quel dispositivo invia non conta.
Cosa viene sigillato
Link a questa sezioneOgni oggetto nella home: modifiche, snapshot, record di appartenenza e file. Il contenuto è cifrato con XChaCha20-Poly1305, ogni modifica è firmata con Ed25519, e le chiavi sono sigillate per le persone con sealed box X25519. I file sono cifrati in blocchi da 64 KiB, ognuno autenticato per conto proprio e legato alla sua posizione, così un blocco non può essere alterato, scambiato o riordinato senza che si noti. Il frazionamento è il motivo per cui lo streaming funziona: il lettore può decifrare esattamente i blocchi che recupera.
Cosa può vedere il provider
Link a questa sezioneNumero di oggetti, dimensioni degli oggetti, tempi di caricamento, quale account scrive ogni oggetto e quale dispositivo ha caricato ogni file e snapshot, perché i loro percorsi nominano il dispositivo. Non nomi, non metadati, non audio, non grafica. I file stanno sotto nomi casuali, mai un hash del loro contenuto. Non c’è recupero lato server: se ogni persona perde ogni dispositivo e ogni codice di ripristino, la libreria è perduta, che è il comportamento previsto dal progetto.
Il portachiavi
Link a questa sezioneAprire una libreria legge le sue chiavi dal portachiavi del sistema operativo. Un portachiavi bloccato in quel momento, da una sessione bloccata o da uno schermo in stop, viene distinto da uno guasto: bae mostra la libreria come bloccata e ritenta dopo lo sblocco, invece di dichiarare la libreria inutilizzabile. Un dispositivo può anche dimenticare la chiave, il che blocca la libreria su quel dispositivo finché non viene sbloccata di nuovo.