NIP-44 define un estándar de cifrado versionado para payloads de Nostr, reemplazando el esquema de cifrado defectuoso de NIP-04 con primitivas criptográficas modernas.

Cómo Funciona

NIP-44 versión 2 utiliza un proceso de cifrado de múltiples pasos:

  1. Acuerdo de Claves: ECDH (secp256k1) entre las claves públicas del remitente y destinatario produce un secreto compartido
  2. Derivación de Claves: HKDF-extract con SHA256 y salt nip44-v2 crea una clave de conversación
  3. Claves Por Mensaje: HKDF-expand deriva la clave ChaCha, nonce y clave HMAC de un nonce aleatorio
  4. Relleno: El contenido se rellena para ocultar la longitud del mensaje
  5. Cifrado: ChaCha20 cifra el contenido rellenado
  6. Autenticación: HMAC-SHA256 proporciona integridad del mensaje

La salida es un payload base64 versionado que va dentro de un evento Nostr firmado normal. La especificación requiere que los clientes validen la firma del evento NIP-01 externo antes de descifrar el payload NIP-44 interno.

Elecciones Criptográficas

  • ChaCha20 sobre AES: Más rápido, mejor resistencia a ataques multi-clave
  • HMAC-SHA256 sobre Poly1305: Los MACs polinomiales son más fáciles de falsificar
  • SHA256: Consistente con las primitivas existentes de Nostr
  • Formato Versionado: Permite futuras actualizaciones de algoritmos

Propiedades de Seguridad

  • Cifrado Autenticado: Los mensajes no pueden ser manipulados
  • Ocultación de Longitud: El relleno oscurece el tamaño del mensaje
  • Claves de Conversación: La misma clave para conversaciones continuas reduce la computación
  • Auditado: La auditoría de seguridad de Cure53 no encontró vulnerabilidades explotables

Notas de Implementación

NIP-44 no es un reemplazo directo para payloads NIP-04. Define un formato de cifrado, no un tipo de evento de mensaje directo. Protocolos como NIP-17 y NIP-59 definen cómo se usan los payloads cifrados en flujos de mensajes reales.

La entrada de texto plano es texto UTF-8 con una longitud de 1 a 65535 bytes. Esa es una restricción real para implementadores: si tu aplicación necesita cifrar blobs binarios arbitrarios, necesitas una codificación adicional o un formato de contenedor diferente.

Limitaciones

NIP-44 no proporciona:

  • Forward Secrecy: Las claves comprometidas exponen mensajes pasados
  • Post-Compromise Security: Recuperación después del compromiso de claves
  • Negabilidad: Los mensajes están demostrablemente firmados por claves específicas
  • Ocultación de Metadatos: La arquitectura de relays limita la privacidad

Para necesidades de alta seguridad, NIP-104 (double ratchet) o protocolos basados en MLS como Marmot ofrecen garantías más fuertes.

Historia

NIP-44 revisión 3 se fusionó en diciembre de 2023 tras una auditoría de seguridad independiente de Cure53. Forma la base criptográfica para los DMs privados de NIP-17 y el gift wrapping de NIP-59.


Fuentes primarias:

Mencionado en:

Ver también: