Szyfrowanie
Wszystko, co bae umieszcza w domu w chmurze, jest szyfrowane przed opuszczeniem urządzenia; trybu bez szyfrowania nie ma. bae nie implementuje własnej kryptografii: cały schemat należy do coven, a ta strona opisuje, jak bae go używa.
Klucze
Link do tej sekcji| Klucz | Co robi |
|---|---|
| Klucz magazynu | szyfruje bibliotekę i jej rekordy członkostwa |
| Klucz kręgu każdej osoby | szyfruje to, co ta osoba trzyma jako prywatne: jej prywatną historię odtwarzania i playlisty |
| Klucz każdego pliku | szyfruje jeden plik i podróżuje tylko wewnątrz zaszyfrowanych zmian jego wiersza |
| Para kluczy podpisu osoby | podpisuje każdą zmianę wysyłaną przez jej urządzenia |
| Para kluczy pieczętowania osoby | otwiera klucze zapieczętowane dla tej osoby |
Klucz magazynu jest losowy, tworzony, gdy biblioteka dostaje dom w chmurze. Pary kluczy osoby są dzielone przez wszystkie jej urządzenia. Klucze prywatne i klucze biblioteki mieszkają w pęku kluczy systemu operacyjnego, nigdy w pliku ani w bazie danych. Docierają do urządzenia na dwa sposoby, oba opisane w Tożsamość i członkostwo: kod przywracania niesie własne pary kluczy osoby, a administrator zatwierdzający zaproszenie pieczętuje klucze magazynu dla klucza pieczętowania nowej osoby.
Rotacja
Link do tej sekcjiKlucz nigdy nie jest zmieniany w miejscu; dodawany jest nowy. Po usunięciu osoby urządzenie pozostałego członka dodaje nowy klucz magazynu i nowy klucz dla każdego kręgu, w którym była, zanim zapisze tam więcej danych: wszystko zapisane później jest dla niej nieczytelne, a pozostali członkowie zachowują każdy starszy klucz i mogą czytać całą historię. Usunięcie jednego urządzenia niczego nie obraca, bo pozostałe urządzenia tej osoby dzielą jego klucze; od usunięcia to, co wysyła to urządzenie, się nie liczy.
Co jest zamykane
Link do tej sekcjiKażdy obiekt w domu: zmiany, migawki, rekordy członkostwa i pliki. Treść jest szyfrowana XChaCha20-Poly1305, każda zmiana jest podpisywana Ed25519, a klucze są pieczętowane dla osób zapieczętowanymi pudełkami X25519. Pliki są szyfrowane w kawałkach po 64 KiB, każdy uwierzytelniany osobno i związany ze swoją pozycją, więc kawałka nie da się niezauważenie zmienić, podmienić ani przestawić. Kawałkowanie jest powodem, dla którego streaming działa: odtwarzacz może odszyfrować dokładnie te kawałki, które pobiera.
Co widzi dostawca
Link do tej sekcjiLiczbę obiektów, rozmiary obiektów, momenty wysyłania, które konto zapisuje każdy obiekt i które urządzenie wysłało każdy plik i migawkę, bo ich ścieżki nazywają urządzenie. Nie nazwy, nie metadane, nie audio, nie grafiki. Pliki leżą pod losowymi nazwami, nigdy pod skrótem ich treści. Nie ma odzyskiwania po stronie serwera: jeśli każda osoba straci każde urządzenie i każdy kod przywracania, biblioteka przepada, zgodnie z projektem.
Pęk kluczy
Link do tej sekcjiOtwarcie biblioteki czyta jej klucze z pęku kluczy systemu operacyjnego. Pęk kluczy, który jest w danej chwili zablokowany, przez zablokowaną sesję albo uśpiony ekran, jest odróżniany od uszkodzonego: bae pokazuje bibliotekę jako zablokowaną i próbuje ponownie po odblokowaniu, zamiast zgłaszać bibliotekę jako bezużyteczną. Urządzenie może też zapomnieć klucz, co blokuje bibliotekę na tym urządzeniu, dopóki nie zostanie ponownie odblokowana.