Verschlüsselung
Alles, was bae in ein Cloud-Zuhause legt, wird verschlüsselt, bevor es das Gerät verlässt; einen unverschlüsselten Modus gibt es nicht. bae implementiert keine eigene Kryptografie: Das gesamte Verfahren gehört zu coven, und diese Seite beschreibt, wie bae es verwendet.
Die Schlüssel
Link zu diesem Abschnitt| Schlüssel | Was er tut |
|---|---|
| Der Store-Schlüssel | verschlüsselt die Mediathek und ihre Mitgliedschaftsdatensätze |
| Der Kreisschlüssel jeder Person | verschlüsselt, was diese Person privat hält: ihren privaten Wiedergabeverlauf und ihre privaten Playlists |
| Der Schlüssel jeder Datei | verschlüsselt eine Datei und reist nur in den verschlüsselten Änderungen ihrer Zeile mit |
| Das Signaturschlüsselpaar einer Person | signiert jede Änderung, die ihre Geräte senden |
| Das Versiegelungsschlüsselpaar einer Person | öffnet Schlüssel, die an diese Person versiegelt sind |
Der Store-Schlüssel ist zufällig und wird erzeugt, wenn die Mediathek ihr Cloud-Zuhause bekommt. Die Schlüsselpaare einer Person teilen sich alle ihre Geräte. Private Schlüssel und Mediatheksschlüssel liegen im OS-Schlüsselbund, nie in einer Datei oder der Datenbank. Sie erreichen ein Gerät auf zwei Arten, beide in Identität und Mitgliedschaft beschrieben: Ein Wiederherstellungscode trägt die eigenen Schlüsselpaare einer Person, und ein Admin, der eine Einladung genehmigt, versiegelt die Store-Schlüssel an den Versiegelungsschlüssel der neuen Person.
Rotation
Link zu diesem AbschnittEin Schlüssel wird nie an Ort und Stelle geändert; ein neuer kommt hinzu. Nachdem eine Person entfernt wurde, fügt das Gerät eines verbleibenden Mitglieds einen neuen Store-Schlüssel hinzu und einen neuen Schlüssel für jeden Kreis, in dem sie war, bevor es dort weitere Daten schreibt: Alles danach Geschriebene ist für sie unlesbar, während die verbleibenden Mitglieder jeden älteren Schlüssel behalten und die ganze Historie lesen können. Das Entfernen eines einzelnen Geräts rotiert nichts, da die anderen Geräte der Person seine Schlüssel teilen; ab der Entfernung zählt nicht mehr, was dieses Gerät sendet.
Was verschlossen wird
Link zu diesem AbschnittJedes Objekt im Zuhause: Änderungen, Snapshots, Mitgliedschaftsdatensätze und Dateien. Inhalte werden mit XChaCha20-Poly1305 verschlüsselt, jede Änderung wird mit Ed25519 signiert, und Schlüssel werden mit X25519-Sealed-Boxes an Personen versiegelt. Dateien werden in 64-KiB-Chunks verschlüsselt, jeder für sich authentifiziert und an seine Position gebunden, sodass ein Chunk nicht unbemerkt verändert, vertauscht oder umgeordnet werden kann. Chunking ist der Grund, warum Streaming funktioniert: Der Player kann genau die Chunks entschlüsseln, die er holt.
Was der Anbieter sehen kann
Link zu diesem AbschnittObjektanzahl, Objektgrößen, Upload-Zeitpunkte, welches Konto jedes Objekt schreibt und welches Gerät jede Datei und jeden Snapshot hochgeladen hat, da ihre Pfade das Gerät nennen. Keine Namen, keine Metadaten, kein Audio, kein Artwork. Dateien liegen unter zufälligen Namen, nie unter einem Hash ihres Inhalts. Es gibt keine serverseitige Wiederherstellung: Wenn jede Person jedes Gerät und jeden Wiederherstellungscode verliert, ist die Mediathek verloren; das ist das beabsichtigte Verhalten.
Der Schlüsselbund
Link zu diesem AbschnittDas Öffnen einer Mediathek liest ihre Schlüssel aus dem OS-Schlüsselbund. Ein Schlüsselbund, der gerade gesperrt ist, durch eine gesperrte Sitzung oder einen schlafenden Bildschirm, wird von einem defekten unterschieden: bae zeigt die Mediathek als gesperrt und versucht es nach dem Entsperren erneut, statt die Mediathek als unbrauchbar zu melden. Ein Gerät kann den Schlüssel auch vergessen, was die Mediathek auf diesem Gerät sperrt, bis sie wieder entsperrt wird.