NIP-104: Double Ratchet DMs
NIP-104 definiert Ende-zu-Ende-verschlüsselte Direktnachrichten unter Verwendung eines Double-Ratchet-Protokolls (basierend auf der Signal-Architektur), das Forward Secrecy und Post-Compromise Security für Nostr-Konversationen bietet.
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: Löst Metadaten-Lecks durch Gift-Wrapping, aber fehlt Forward/Backward Secrecy
NIP-104 vervollständigt das Bild: Wenn der private Schlüssel eines Benutzers kompromittiert wird, können Angreifer vergangene Nachrichten nicht lesen (Forward Secrecy) oder zukünftige Nachrichten unbegrenzt weiterlesen (Post-Compromise Security).
Wie Es Funktioniert
Initiale Einrichtung (X3DH)
Zwei Parteien führen einen erweiterten dreifachen Diffie-Hellman-Austausch mit Identitätsschlüsseln und Prekeys durch, um einen initialen gemeinsamen Root-Key abzuleiten.
Der Double Ratchet
- DH Ratchet: Jedes Mal, wenn Parteien Nachrichten austauschen, werden neue Diffie-Hellman-Schlüssel generiert, die neue Root-Keys und Chain-Keys erzeugen
- Symmetric Ratchet: Separate Sende- und Empfangsketten leiten individuelle Nachrichtenschlüssel für jede Nachricht ab
Diese kontinuierliche Schlüsselrotation stellt sicher, dass die Kompromittierung eines Schlüssels minimalen Nachrichteninhalt preisgibt.
Event Kinds
- Kind 442: Veröffentlicht Benutzer-Prekeys für die X3DH-Initialisierung
- Kind 443: Initiale Konversationseinrichtung mit verschlüsselter erster Nachricht
- Kind 444: Nachfolgende verschlüsselte Nachrichten in etablierten Konversationen
Alle verschlüsselten Nachrichten werden in Kind-1059-GiftWrap-Events zum Metadatenschutz verpackt.
Wichtige Tags
p- Öffentlicher Schlüssel des Empfängersprekey- Prekey des Empfängers für DH-Berechnungdh_sending- Aktueller DH-Sende-Öffentlichkeitsschlüsselcurrent_index- Nachrichtennummer in der Ketteprevious_length- Länge der vorherigen Nachrichtenkette
Einschränkungen
Nachrichten funktionieren pro Gerät-Client-Paarung. Die Synchronisierung über mehrere Geräte erfordert eine separate Initialisierung für jedes Gerät, ein Kompromiss für erhöhte Sicherheit.
Primäre Quellen:
Erwähnt in:
Siehe auch: