Przejdź do treści

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.

KluczCo robi
Klucz magazynuszyfruje bibliotekę i jej rekordy członkostwa
Klucz kręgu każdej osobyszyfruje to, co ta osoba trzyma jako prywatne: jej prywatną historię odtwarzania i playlisty
Klucz każdego plikuszyfruje jeden plik i podróżuje tylko wewnątrz zaszyfrowanych zmian jego wiersza
Para kluczy podpisu osobypodpisuje każdą zmianę wysyłaną przez jej urządzenia
Para kluczy pieczętowania osobyotwiera 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.

Klucz 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 sekcji

Każ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 sekcji

Liczbę 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.

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