Przejdź do treści

Tożsamość i członkostwo

Nigdzie w bae nie ma systemu kont. Tożsamością urządzenia jest para kluczy Ed25519, którą urządzenie generuje dla siebie i trzyma w pęku kluczy systemu operacyjnego; klucz publiczny jest tożsamością. To, kto należy do biblioteki, jest zestawem podpisanych rekordów w domu w chmurze, weryfikowalnych przez każdego, kto je ma, niewydawanych przez żaden serwer. Mechanizm należy do coven; ta strona opisuje, jak używa go bae.

Rekordy członkostwa

Link do tej sekcji

Każdy owner zapisuje w domu w chmurze dopisywany strumień podpisanych wpisów członkostwa: ten klucz został dodany z tą rolą, ten klucz został usunięty. Każdy wpis łączy się z poprzednim, a każdy owner podpisuje głowę deklarującą koniec swojego strumienia, więc dostawca, który upuszcza albo przestawia rekordy, zostaje wykryty, a nie uznany. Biblioteka akceptuje sumę każdego zweryfikowanego strumienia ownera.

Przy każdym pobraniu autor każdego zestawu zmian jest sprawdzany względem tego rekordu: podpisany przez obecnego członka, z rolą, która może pisać. Zestawy zmian z usuniętych urządzeń, z kluczy nigdy niedodanych albo z nieprawidłowymi podpisami nie są stosowane. Dostawca przechowuje rekordy, ale nie może ich podrobić; tylko posiadacze kluczy owner mogą zmieniać członkostwo.

Owner i Member czytają i zapisują bibliotekę; owners dodatkowo zatwierdzają i usuwają urządzenia. Urządzenie zakładające bae jest ownerem, a każde zatwierdzone przez nie urządzenie dołącza jako member. (W mechanizmie pod spodem istnieje trzecia rola, obserwator tylko do odczytu, której bae obecnie nie przydziela.)

Uzgodnienie dołączenia

Link do tej sekcji

Dodanie urządzenia to jedna lokalna sesja parowania z wyraźną weryfikacją przez człowieka:

  1. Właściciel uruchamia Dodaj urządzenie. bae nasłuchuje przez chwilę w sieci lokalnej i wyświetla jeden kod parowania. Zawiera adresy odbiorników, efemeryczny klucz sesji, nazwę biblioteki, dostawcę i datę wygaśnięcia — nie ma klucza biblioteki ani poświadczeń trwałego magazynu.
  2. Dołączające urządzenie skanuje kod, tworzy swoją parę kluczy, w razie potrzeby loguje się do dostawcy i wysyła swój podpisany klucz publiczny oraz tożsamość konta dostawcy poprzez szyfrowane połączenie lokalne. Obydwa urządzenia pokazują ten sam odcisk palca.
  3. Właściciel porównuje odciski palców i potwierdza tę dokładną tożsamość. Zatwierdzenie zapewnia dostęp do konta w chmurze, jeśli jest to wymagane, podpisuje wpis członkostwa i pieczętuje klucz biblioteki oraz ostateczny dostęp do klucza publicznego nowego urządzenia.
  4. Zapieczętowana przesyłka powraca tym samym uwierzytelnionym połączeniem lokalnym. Dołączające urządzenie otwiera je, ładuje dane z pamięci w chmurze i rozpoczyna synchronizację.

Parowanie wygasłe, przerwane lub odrzucone nic nie daje.

Usunięcie członka dopisuje podpisane usunięcie i obraca klucz biblioteki do nowej generacji, której usunięty klucz nigdy nie otrzymuje (zobacz Szyfrowanie). W przechowywaniu, które potrafi odebrać dostęp, dostęp też jest cofany. To, co już zsynchronizowało się na usunięte urządzenie, zostaje z nim; danych nie da się cofnąć po wysłaniu. Wszystko po obrocie klucza jest poza jego zasięgiem.

Kody odzyskiwania

Link do tej sekcji

Kod odzyskiwania celowo omija członkostwo: to współrzędne domu w chmurze plus klucz biblioteki w jednym ciągu bearer, do odzyskania własnej biblioteki bez żyjącego urządzenia zatwierdzającego. Jest generowany na żądanie, automatycznie przechowywany w iCloud Keychain na platformach Apple i jest dokładnie tak wrażliwy jak sama biblioteka.