NIP-104: Double Ratchet DMs
NIP-104 define mensagens diretas criptografadas de ponta a ponta usando um protocolo double ratchet (baseado na arquitetura do Signal), fornecendo forward secrecy e post-compromise security para conversas no Nostr.
Por Que É Importante
As soluções existentes de DM no Nostr têm limitações:
- NIP-04: Criptografa o conteúdo mas vaza metadados
- NIP-17 + NIP-59: Resolve o vazamento de metadados via gift-wrapping mas não tem forward/backward secrecy
NIP-104 completa o quadro: se a chave privada de um usuário for comprometida, atacantes não podem ler mensagens passadas (forward secrecy) nem continuar lendo mensagens futuras indefinidamente (post-compromise security).
Como Funciona
Configuração Inicial (X3DH)
Duas partes realizam uma troca tripla Diffie-Hellman estendida usando chaves de identidade e prekeys para derivar uma chave raiz compartilhada inicial.
O Double Ratchet
- DH Ratchet: Cada vez que as partes trocam mensagens, novas chaves Diffie-Hellman são geradas, produzindo novas chaves raiz e chaves de cadeia
- Symmetric Ratchet: Cadeias separadas de envio e recebimento derivam chaves de mensagem individuais para cada mensagem
Esta rotação contínua de chaves garante que comprometer uma chave revele conteúdo mínimo de mensagens.
Event Kinds
- Kind 442: Publica prekeys do usuário para inicialização X3DH
- Kind 443: Configuração inicial de conversa com primeira mensagem criptografada
- Kind 444: Mensagens criptografadas subsequentes em conversas estabelecidas
Todas as mensagens criptografadas são envolvidas em eventos GiftWrap kind 1059 para proteção de metadados.
Tags Principais
p- Chave pública do destinatárioprekey- Prekey do destinatário para cálculo DHdh_sending- Chave pública DH de envio atualcurrent_index- Número da mensagem na cadeiaprevious_length- Comprimento da cadeia de mensagens anterior
Limitações
As mensagens funcionam por par dispositivo-cliente. Sincronizar entre múltiplos dispositivos requer inicialização separada para cada dispositivo, uma troca por maior segurança.
Fontes primárias:
Mencionado em:
Veja também: