Vai al contenuto

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.

ChiaveCosa fa
La chiave dello storecifra la libreria e i suoi record di appartenenza
La chiave di cerchia di ogni personacifra ciò che quella persona tiene privato: la sua cronologia di ascolto privata e le sue playlist private
La chiave di ogni filecifra un file, e viaggia solo dentro le modifiche cifrate della sua riga
La coppia di chiavi di firma di una personafirma ogni modifica che i suoi dispositivi inviano
La coppia di chiavi di sigillatura di una personaapre 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.

Una 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 sezione

Ogni 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 sezione

Numero 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 sezione

Aprire 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.