Zum Inhalt springen

Identität und Mitgliedschaft

Es gibt nirgendwo in bae ein Kontosystem. Die Identität eines Geräts ist ein Ed25519-Schlüsselpaar, das es für sich selbst erzeugt und im OS-Schlüsselbund behält; der öffentliche Schlüssel ist die Identität. Wer zu einer Mediathek gehört, ist eine Menge signierter Datensätze im Cloud-Zuhause, prüfbar von jedem, der sie hält, von keinem Server ausgegeben. Die Mechanik gehört zu coven; diese Seite beschreibt, wie bae sie nutzt.

Mitgliedschaftsdatensätze

Link zu diesem Abschnitt

Jeder Besitzer schreibt einen append-only Strom signierter Mitgliedschaftseinträge in das Cloud-Zuhause: Dieser Schlüssel wurde mit dieser Rolle hinzugefügt, dieser Schlüssel wurde entfernt. Jeder Eintrag verweist auf den vorherigen, und jeder Besitzer signiert einen Kopf, der die Spitze seines Stroms erklärt, sodass ein Anbieter, der Datensätze fallen lässt oder umordnet, erkannt statt geglaubt wird. Was die Mediathek akzeptiert, ist die Vereinigung aller verifizierten Besitzerströme.

Bei jedem Pull wird der Autor jedes Changesets gegen diesen Datensatz geprüft: signiert von einem aktuellen Mitglied, mit einer Rolle, die schreiben darf. Changesets von entfernten Geräten, von nie hinzugefügten Schlüsseln oder mit ungültigen Signaturen werden nicht angewendet. Der Anbieter speichert die Datensätze, kann sie aber nicht fälschen; nur Inhaber von Besitzerschlüsseln können die Mitgliedschaft ändern.

Besitzer und Mitglied lesen und schreiben beide die Mediathek; Besitzer bestätigen und entfernen zusätzlich Geräte. Das Gründungsgerät von bae ist ein Besitzer, und jedes Gerät, das es bestätigt, tritt als Mitglied bei. (Eine dritte Rolle existiert in der zugrunde liegenden Mechanik, ein Nur-Lese-Follower, den bae derzeit nicht zuweist.)

Der Beitrittsaustausch

Link zu diesem Abschnitt

Das Hinzufügen eines Geräts ist eine lokale Kopplungssitzung mit expliziter menschlicher Überprüfung:

  1. Ein Besitzer startet Fügen Sie ein Gerät hinzu. bae lauscht kurz im lokalen Netzwerk und zeigt einen Kopplungscode an. Es enthält die Listener-Adressen, einen kurzlebigen Sitzungsschlüssel, den Bibliotheksnamen, den Anbieter und ein Ablaufdatum – keinen Bibliotheksschlüssel oder dauerhafte Speicheranmeldeinformationen.
  2. Das beitretende Gerät scannt den Code, erstellt sein Geräteschlüsselpaar, meldet sich bei Bedarf beim Anbieter an und sendet seinen signierten öffentlichen Schlüssel und die Anbieterkontoidentität über die verschlüsselte lokale Verbindung. Beide Geräte zeigen den gleichen Fingerabdruck.
  3. Der Besitzer vergleicht die Fingerabdrücke und bestätigt die genaue Identität. Die Genehmigung gewährt seinem Cloud-Konto bei Bedarf Zugriff, signiert den Mitgliedseintrag und versiegelt den Bibliotheksschlüssel und den endgültigen Speicherzugriff auf den öffentlichen Schlüssel des neuen Geräts.
  4. Das versiegelte Paket kehrt über dieselbe authentifizierte lokale Verbindung zurück. Das beitretende Gerät öffnet es, bootet vom Cloud-Speicher und beginnt mit der Synchronisierung.

Eine abgelaufene, unterbrochene oder abgelehnte Paarung bringt nichts.

Das Entfernen eines Mitglieds hängt eine signierte Entfernung an und rotiert den Mediatheksschlüssel zu einer neuen Generation, die der entfernte Schlüssel nie erhält (siehe Verschlüsselung). Bei Speicher, der Zugriff widerrufen kann, wird der Zugriff ebenfalls entzogen. Was bereits auf das entfernte Gerät synchronisiert wurde, bleibt dort; Daten lassen sich nicht zurückholen. Alles nach der Rotation liegt außerhalb seiner Reichweite.

Wiederherstellungscodes

Link zu diesem Abschnitt

Ein Wiederherstellungscode umgeht die Mitgliedschaft absichtlich: Er ist die Koordinaten des Cloud-Zuhauses plus Mediatheksschlüssel in einer Bearer-Zeichenfolge, um deine eigene Mediathek ohne verbleibendes bestätigendes Gerät wiederherzustellen. Er wird bei Bedarf erzeugt, auf Apple-Plattformen automatisch im iCloud-Schlüsselbund gespeichert und ist genau so sensibel wie die Mediathek selbst.