Přejít k obsahu

Šifrování

Všechno, co bae ukládá do cloudového domova, je zašifrováno, než opustí zařízení; nešifrovaný režim neexistuje. bae neimplementuje vlastní kryptografii: celé schéma patří coven a tato stránka popisuje, jak ho bae používá.

KlíčCo dělá
Klíč úložištěšifruje knihovnu a její záznamy členství
Klíč kruhu každé osobyšifruje to, co si osoba nechává soukromé: její soukromou historii přehrávání a playlisty
Klíč každého souborušifruje jeden soubor a putuje jen uvnitř šifrovaných změn jeho řádku
Podpisový pár klíčů osobypodepisuje každou změnu, kterou její zařízení pošlou
Pečeticí pár klíčů osobyotevírá klíče zapečetěné pro tuto osobu

Klíč úložiště je náhodný, vytvořený ve chvíli, kdy knihovna dostane cloudový domov. Páry klíčů osoby sdílejí všechna její zařízení. Soukromé klíče a klíče knihovny žijí v klíčence operačního systému, nikdy v souboru ani v databázi. K zařízení se dostanou dvěma způsoby, oba jsou popsány v Identita a členství: kód pro obnovení nese vlastní páry klíčů osoby a správce, který schválí pozvánku, zapečetí klíče úložiště pro pečeticí klíč nové osoby.

Klíč se nikdy nemění na místě; přidá se nový. Po odebrání osoby přidá zařízení zbývajícího člena nový klíč úložiště a nový klíč pro každý kruh, ve kterém byla, než tam zapíše další data: všechno zapsané potom je pro ni nečitelné, zatímco zbývající členové drží každý starší klíč a mohou číst celou historii. Odebrání jediného zařízení nic neobmění, protože ostatní zařízení osoby sdílejí jeho klíče; od odebrání se to, co zařízení pošle, nepočítá.

Co se pečetí

Odkaz na tuto sekci

Každý objekt v domově: změny, snapshoty, záznamy členství a soubory. Obsah se šifruje pomocí XChaCha20-Poly1305, každá změna je podepsaná Ed25519 a klíče se pro lidi pečetí zapečetěnými schránkami X25519. Soubory se šifrují v blocích po 64 KiB, každý ověřený samostatně a svázaný se svou pozicí, takže blok nelze nepozorovaně změnit, prohodit ani přeuspořádat. Díky blokům funguje streamování: přehrávač může dešifrovat přesně ty bloky, které načítá.

Co vidí poskytovatel

Odkaz na tuto sekci

Počet objektů, velikosti objektů, časy nahrávání, který účet zapisuje každý objekt a které zařízení nahrálo každý soubor a snapshot, protože jejich cesty zařízení pojmenovávají. Ne názvy, ne metadata, ne audio, ne obrázky. Soubory leží pod náhodnými názvy, nikdy pod hashem svého obsahu. Neexistuje obnova na straně serveru: pokud každá osoba ztratí každé zařízení i každý kód pro obnovení, knihovna je ztracená, což odpovídá návrhu.

Otevření knihovny čte její klíče z klíčenky operačního systému. Klíčenka, která je právě zamčená, zamčenou relací nebo uspanou obrazovkou, se rozlišuje od poškozené: bae ukáže knihovnu jako zamčenou a po odemčení to zkusí znovu, místo aby hlásil knihovnu jako nepoužitelnou. Zařízení může klíč také zapomenout, což knihovnu na tom zařízení zamkne, dokud se znovu neodemkne.