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

  1. DH Ratchet: Elke keer dat partijen berichten uitwisselen, worden nieuwe Diffie-Hellman-sleutels gegenereerd, wat nieuwe root keys en chain keys oplevert
  2. 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 ontvanger
  • prekey - Prekey van ontvanger voor DH-berekening
  • dh_sending - Huidige DH-verzend publieke sleutel
  • current_index - Berichtnummer in de keten
  • previous_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: