NIP-104: Double Ratchet DMs
NIP-104 ist ein Entwurf für Ende-zu-Ende-verschlüsselte Direktnachrichten mit einem Double-Ratchet-Design. Er soll Forward Secrecy und Post-Compromise Recovery in Nostr-Konversationen bringen.
Warum es wichtig ist
Bestehende Nostr-DM-Lösungen haben Einschränkungen:
- NIP-04: Verschlüsselt Inhalte, aber gibt Metadaten preis
- NIP-17 + NIP-59: Behebt Metadatenlecks durch Gift Wrapping, hat aber keine Forward oder Backward Secrecy
NIP-104 zielt auf die fehlende Eigenschaft: Wenn ein Gerätezustand oder ein langfristiger Schlüssel kompromittiert wird, soll ein Angreifer nicht automatisch den gesamten Gesprächsverlauf oder dauerhaften Zugriff auf zukünftige Nachrichten erhalten.
Wie es funktioniert
NIP-104 beginnt mit einem X3DH-ähnlichen Setup, das Identity Keys und Prekeys kombiniert, um ein anfängliches Shared Secret abzuleiten. Danach treiben beide Seiten einen Double Ratchet voran: Ein Diffie-Hellman Ratchet rotiert Root Keys und Chain Keys, wenn die Parteien frische Public Keys austauschen, und ein symmetrischer Ratchet leitet pro Nachricht eigene Keys innerhalb jeder Sende- oder Empfangskette ab.
Weil jeder Message Key nur kurz lebt, lassen sich alte Ciphertexts schwerer wiederherstellen, selbst wenn ein späterer Zustand offengelegt wird. Das ist der zentrale technische Unterschied zu Verfahren mit einem einzigen statischen Schlüssel.
Event Kinds
- Kind 10443: Veröffentlicht User-Prekeys für die X3DH-Initialisierung
- Kind 443: Initiales Setup einer Konversation mit verschlüsselter erster Nachricht
- Kind 444: Nachfolgende verschlüsselte Nachrichten in bestehenden Konversationen
Alle verschlüsselten Nachrichten werden zum Schutz der Metadaten in Kind-1059-GiftWrap-Events eingehüllt.
Sicherheit und Tradeoffs
Der Sicherheitsgewinn bringt mehr Zustand mit sich. Jede Gerätepaarung braucht Ratchet-Zustand, Prekey-Management und Recovery-Logik für Out-of-Order Delivery. Das Wiederherstellen eines alten Backups oder die Nutzung mehrerer nicht synchronisierter Geräte kann die Entschlüsselung unterbrechen, bis die Konversation neu aufgebaut wird.
Darum ist Double-Ratchet-Messaging schwerer nachzurüsten als gewöhnliche verschlüsselte Notizen. Clients brauchen dauerhaften lokalen Zustand und saubere Geräte-Semantik, nicht nur ein Verschlüsselungsprimitive.
Interop-Hinweise
Der Vorschlag nutzt eigene Setup- und Message-Kinds sowie NIP-59: Gift Wrap für Transport-Privacy. Außerdem empfiehlt er, diese gift-wrapped Events nur an Relays zu senden, die in einem kind-10050-DM-Relay-Preference-Event des Users gelistet sind. Das bedeutet, dass NIP-104 kein einfacher Drop-in-Replacement für NIP-17: Private Direct Messages ist. Clients brauchen explizite Unterstützung für seinen Prekey-Flow, die DM-Relay-Discovery und die Ratchet-State-Machine.
Primärquellen:
Erwähnt in:
Siehe auch: