NIP-44: Versleutelde Payloads
NIP-44 definieert een versiegebonden encryptiestandaard voor Nostr-payloads, die het gebrekkige NIP-04-encryptieschema vervangt door moderne cryptografische primitiven.
Hoe Het Werkt
NIP-44 versie 2 gebruikt een meerstaps encryptieproces:
- Sleuteluitwisseling: ECDH (secp256k1) tussen de publieke sleutels van afzender en ontvanger produceert een gedeeld geheim
- Sleutelafleiding: HKDF-extract met SHA256 en salt
nip44-v2creëert een gesprekssleutel - Per-bericht Sleutels: HKDF-expand leidt een ChaCha-sleutel, nonce en HMAC-sleutel af uit een willekeurige nonce
- Padding: Inhoud krijgt padding om de berichtlengte te verbergen
- Encryptie: ChaCha20 versleutelt de gepadde inhoud
- Authenticatie: HMAC-SHA256 zorgt voor berichtintegriteit
De uitvoer is een versiegebonden base64-payload die in een normaal ondertekend Nostr-event gaat. De specificatie vereist dat clients eerst de buitenste NIP-01-eventhandtekening valideren voordat ze de binnenste NIP-44-payload ontsleutelen.
Cryptografische Keuzes
- ChaCha20 boven AES: sneller, met betere weerstand tegen multi-key-aanvallen
- HMAC-SHA256 boven Poly1305: polynomiale MACs zijn makkelijker te vervalsen
- SHA256: consistent met bestaande Nostr-primitieven
- Versiegebonden Formaat: maakt toekomstige algoritme-upgrades mogelijk
Beveiligingseigenschappen
- Authenticated Encryption: berichten kunnen niet ongemerkt worden aangepast
- Lengteverhulling: padding verbergt de berichtgrootte
- Gesprekssleutels: dezelfde sleutel voor doorlopende gesprekken vermindert rekenwerk
- Geaudit: de Cure53-beveiligingsaudit vond geen exploiteerbare kwetsbaarheden
Implementatienotities
NIP-44 is geen drop-in vervanging voor NIP-04-payloads. Het definieert een encryptieformaat, geen direct-message-event kind. Protocollen zoals NIP-17 en NIP-59 definiëren hoe versleutelde payloads in echte berichtstromen worden gebruikt.
De plaintext-invoer is UTF-8-tekst met een lengte van 1 tot 65535 bytes. Dat is een echte beperking voor implementers: als je applicatie willekeurige binaire blobs moet versleutelen, heb je extra encoding of een ander containerformaat nodig.
Beperkingen
NIP-44 biedt geen:
- Forward Secrecy: gecompromitteerde sleutels leggen eerdere berichten bloot
- Post-Compromise Security: herstel na sleutelcompromittering
- Ontkenbaarheid: berichten zijn aantoonbaar ondertekend door specifieke sleutels
- Metadata-verhulling: relay-architectuur beperkt privacy
Voor hoge beveiligingseisen bieden NIP-104 (double ratchet) of MLS-gebaseerde protocollen zoals Marmot sterkere garanties.
Geschiedenis
NIP-44 revisie 3 werd in december 2023 gemerged na een onafhankelijke Cure53-beveiligingsaudit. Het vormt de cryptografische basis voor NIP-17 private DMs en NIP-59 gift wrapping.
Primaire bronnen:
Vermeld in:
- Nieuwsbrief #4: NIP Deep Dive
- Nieuwsbrief #3: December 2023
- Nieuwsbrief #3: December 2024
- Nieuwsbrief #12: Marmot
Zie ook: