NIP-104: Double Ratchet DMs
NIP-104 definieert end-to-end versleutelde directe berichten met behulp van een Double Ratchet protocol (gebaseerd op de Signal-architectuur), dat forward secrecy en post-compromise security biedt voor Nostr-gesprekken.
Waarom Het Belangrijk Is
Bestaande Nostr DM-oplossingen hebben beperkingen:
- NIP-04: Versleutelt inhoud maar lekt metadata
- NIP-17 + NIP-59: Lost metadatalekkage op via gift-wrapping maar mist forward/backward secrecy
NIP-104 maakt het plaatje compleet: als de privesleutel van een gebruiker wordt gecompromitteerd, kunnen aanvallers geen eerdere berichten lezen (forward secrecy) of toekomstige berichten onbeperkt blijven lezen (post-compromise security).
Hoe Het Werkt
Initiele Setup (X3DH)
Twee partijen voeren een uitgebreide drievoudige Diffie-Hellman-uitwisseling uit met identiteitssleutels en prekeys om een initiele gedeelde root key af te leiden.
De Double Ratchet
- DH Ratchet: Elke keer dat partijen berichten uitwisselen, worden nieuwe Diffie-Hellman-sleutels gegenereerd, wat nieuwe root keys en chain keys oplevert
- Symmetric Ratchet: Afzonderlijke verzend- en ontvangstketens leiden individuele berichtsleutels af voor elk bericht
Deze continue sleutelrotatie zorgt ervoor dat het compromitteren van een sleutel minimale berichtinhoud onthult.
Event Kinds
- Kind 442: Publiceert gebruiker prekeys voor X3DH-initialisatie
- Kind 443: Initiele gespreksopzet met versleuteld eerste bericht
- Kind 444: Volgende versleutelde berichten in gevestigde gesprekken
Alle versleutelde berichten worden verpakt in kind 1059 GiftWrap events voor metadatabescherming.
Belangrijke Tags
p- Publieke sleutel van ontvangerprekey- Prekey van ontvanger voor DH-berekeningdh_sending- Huidige DH-verzend publieke sleutelcurrent_index- Berichtnummer in de ketenprevious_length- Lengte van vorige berichtenketen
Beperkingen
Berichten werken per apparaat-client koppeling. Synchroniseren over meerdere apparaten vereist aparte initialisatie voor elk apparaat, een afweging voor verbeterde beveiliging.
Primaire bronnen:
Vermeld in:
Zie ook: