Skip to content

NIP-17: Mensajes Privados Directos - Una Guía Completa

Aprende sobre NIP-17, el reemplazo seguro de NIP-04, y cómo migrar tus mensajes privados en Nostr

Avanzado Last updated

NIP-17 representa una mejora significativa de seguridad en cómo funcionan los mensajes privados en Nostr. Esta guía explica por qué deberías preocuparte por esta mejora del protocolo, cómo migrar del antiguo estándar NIP-04, y pasos prácticos para asegurar tus comunicaciones.

¿Qué es NIP-17?

NIP-17 es una especificación del protocolo Nostr que define Mensajes Directos Privados usando un sistema de encriptación de doble capa llamado “seal + gift wrap”. Fue creado para abordar fallas de seguridad fundamentales en el método de encriptación NIP-04 anterior.

A diferencia de NIP-04, que usaba una sola capa de encriptación AES-256-CBC, NIP-17 usa:

  1. Seal (kind 13) — la capa interna, que encripta el mensaje y oculta qué clave lo firmó
  2. Gift wrap (kind 1059) — el sobre exterior, firmado con una clave desechable, de modo que tu identidad real nunca aparece en el evento que guardan los relays

Este sistema de capas significa que:

  • El contenido del mensaje permanece privado
  • Los relays no pueden ver quién envió un mensaje — el gift wrap está firmado con una clave aleatoria de un solo uso, no con la tuya
  • Los timestamps se aleatorizan, así que es más difícil correlacionar cuándo se envían los mensajes

Por Qué Importa NIP-17: El Problema de Seguridad de NIP-04

NIP-04 fue el protocolo de mensaje directo original de Nostr, pero tiene varios problemas de seguridad críticos que lo hacen inadecuado para comunicación verdaderamente privada.

Comparación: NIP-04 vs NIP-17

CaracterísticaNIP-04NIP-17
EncriptaciónUna capa AES-256-CBCDoble capa (seal + gift wrap)
Metadatos del remitenteVisible para relaysOculto — firmado con una clave de un solo uso
Metadatos del destinatarioVisible para relaysSigue visible — tag p en texto plano
Contenido del mensajeEncriptadoEncriptado
Protección contra replayNingunaTimestamps aleatorizados
Secreto hacia adelanteNoNo — NIP-44 no lo proporciona
Estado de seguridadDeprecadoRecomendado
InteroperabilidadAmpliamente soportadoSoporte creciente

El Problema Central con NIP-04

Los mensajes NIP-04 exponen quién habla con quién ante cada relay que los almacena. (Nostr no tiene blockchain: los eventos simplemente residen en los relays, y cualquiera puede leer de un relay.) Mientras que el cuerpo del mensaje está encriptado, el sobre contiene:

# Estructura de Evento NIP-04 (simplificada)
{
  "pubkey": "<sender_public_key>",      # Cualquiera puede ver quién envió esto
  "tags": [["p", "<recipient_pubkey>"]], # Cualquiera puede ver quién lo recibió
  "content": "<encrypted_content>"       # Solo el contenido está oculto
}

Esto significa que operadores de relays, observadores de red y scrapers de datos pueden:

  • Construir grafos sociales mostrando quién se comunica con quién
  • Rastrear patrones y frecuencias de comunicación
  • Inferir relaciones del tiempo de los mensajes

NIP-17 soluciona esto envolviendo toda la estructura del mensaje en una capa de encriptación adicional, haciendo imposible ver el remitente o destinatario sin la clave de desencriptación.

Cómo Funciona NIP-17: Seal + Gift Wrap

Entender la implementación técnica ayuda a apreciar las mejoras de seguridad.

La Capa Gift Wrap (Exterior)

El gift wrap es el sobre exterior que oculta todos los metadatos. Está encriptado a una “gift wrap key” especial derivada de la clave pública del destinatario. Esta capa contiene:

  • Una clave pública aleatoria (no vinculada al remitente real)
  • La clave pública del destinatario
  • Un timestamp
  • El mensaje interno sealed

La Capa Seal (Interior)

Dentro del gift wrap se encuentra el seal, que contiene el mensaje actual. Esta capa:

  • Está encriptada usando un par de claves efímeras fresco
  • Contiene la clave pública real del remitente
  • Incluye el contenido del mensaje
  • Tiene su propio timestamp para protección replay

Gift wrap (capa exterior)

Pubkey aleatorio, pista del destinatario — esto es todo lo que ve un relay

Seal (capa interior)

Encriptado con una clave efímera

Contenido real del mensaje

Remitente: pubkey real · Timestamp: 1234567890

Cada capa oculta a la que lleva dentro, así que un relay no ve más que la pista del destinatario.

Beneficios Clave

  1. Privacidad del remitente: nadie salvo el destinatario puede determinar quién envió el mensaje. El destinatario, en cambio, aparece nombrado en un tag p en texto plano que los relays tienen que poder leer.
  2. No vinculable: cada mensaje se firma con una clave nueva de un solo uso, así que los mensajes de un mismo remitente no se ven obviamente relacionados entre sí.
  3. Sin secreto hacia adelante: NIP-44 deriva su clave de conversación a partir de dos claves estáticas, de modo que un atacante que más adelante consiga tu nsec podrá desencriptar todos los mensajes que haya guardado. Las claves de un solo uso ocultan quién envió un mensaje; no protegen los mensajes pasados. Borra las conversaciones antiguas si eso te importa.

Entrega: La Lista de Relays para DMs (Kind 10050)

El seal y el gift wrap describen cómo se empaqueta un mensaje. Una tercera pieza — el evento kind 10050 — describe dónde se entrega. Es una pequeña lista pública de los relays que aceptan tus mensajes privados.

La especificación es estricta en esto: los remitentes DEBEN publicar los gift wraps únicamente en los relays de la lista kind 10050 del destinatario. Si nunca has publicado una, la especificación te considera “no listo para recibir mensajes” y los clientes ni siquiera deberían intentarlo — así que los DMs dirigidos a ti simplemente nunca se entregan, en silencio. No hay ningún error en ninguno de los dos lados.

Dos reglas prácticas:

  • Publica una antes de esperar cualquier DM NIP-17 (ve el Paso 3 de la guía de migración más abajo)
  • Mantenla pequeña — la especificación recomienda 1-3 relays, y cada relay que listes podrá ver quién te está enviando mensajes

Guía de Migración: Cambiando de NIP-04 a NIP-17

Migrar a NIP-17 es sencillo con clientes Nostr modernos. Aquí te explicamos cómo hacer el cambio.

Paso 1: Verifica el Soporte de Tu Cliente

Antes de migrar, verifica que tu cliente soporte NIP-17:

ClienteSoporte NIP-17Estado
DamusPor defecto para nuevos DMs
AmethystPor defecto para nuevos DMs
PrimalSoportado
CoracleSoportado
IrisSoportado
SnortSoportado
NosSoportado

Paso 2: Habilita NIP-17 en Tu Cliente

Damus (iOS/macOS)

  1. Abre Ajustes → Privacidad y Seguridad
  2. Desplázate a “Encriptación de Mensajes”
  3. Activa “Usar NIP-17 para nuevos mensajes” a ON
  4. Tus nuevos DMs usarán NIP-17 automáticamente

Nota: Los mensajes NIP-04 más antiguos permanecen legibles pero los nuevos mensajes usan NIP-17.

Amethyst (Android)

  1. Ve a Ajustes → Mensajes
  2. Habilita “Usar NIP-17 para DMs”
  3. Reinicia la app para efecto completo

Primal (iOS/Android/Web)

  1. Navega a Ajustes → Privacidad
  2. Bajo “Mensajes Directos,” selecciona “NIP-17 (Recomendado)”
  3. Los cambios aplican inmediatamente a nuevas conversaciones

Paso 3: Publica Tu Lista de Relays para DMs (Kind 10050)

Los remitentes NIP-17 entregan solo en los relays que listas en tu evento kind 10050 — sin uno, los mensajes dirigidos a ti se descartan en silencio (ve Entrega: La Lista de Relays para DMs más arriba).

  1. En tu cliente, busca el ajuste de DMs, mensajes privados o relays de mensajería
  2. Agrega de uno a tres relays que acepten gift wraps (kind 1059) — algunos relays los rechazan
  3. Guarda — tu cliente publica la lista kind 10050 por ti

Algunos clientes publican esta lista automáticamente cuando habilitas NIP-17. No lo asumas: verifica la entrega en el Paso 5 antes de confiar en ello.

Paso 4: Comunícate con Tus Contactos

NIP-17 solo funciona si ambas partes tienen soporte NIP-17. Envía una nota a contactos frecuentes:

nostr:note1... # Plantilla de mensaje de migración

"¡Hey! Estoy actualizando a NIP-17 para mejor privacidad en nuestros DMs.
Por favor actualiza tu cliente Nostr si aún no lo has hecho.
¡Nuestros mensajes futuros serán más seguros!"

Paso 5: Verifica el Éxito de la Migración

Para confirmar que NIP-17 está funcionando:

  1. Envía un mensaje de prueba a ti mismo o a un amigo
  2. Revisa el tipo de evento (debería ser 1059 para gift wraps)
  3. Busca el kind: 1059 en los detalles del mensaje
  4. El tag p debería apuntar a una clave efímera aleatoria, no a la clave real de tu amigo
// Ejemplo de evento NIP-17 (simplificado)
{
  "kind": 1059, // Evento gift wrap
  "pubkey": "<random_ephemeral_key>", // ¡No el remitente real!
  "tags": [["p", "<recipient_pubkey>"]],
  "content": "<encrypted_seal_content>"
}

Guías de Configuración Específicas por Cliente

Damus

Damus hizo NIP-17 el predeterminado para nuevos mensajes directos en versiones recientes. Si estás en una versión más antigua:

  1. Actualiza a la última versión de Damus desde App Store
  2. NIP-17 se habilita automáticamente para nuevas conversaciones
  3. Revisa los detalles del mensaje (mantén presionado) para ver el badge “NIP-17”

Pro tip: Damus muestra un icono de candado con el texto “NIP-17” en mensajes seguros.

Amethyst

Amethyst soporta NIP-17 pero puede requerir habilitación explícita:

  1. Ajustes → Avanzado → Ajustes de Protocolo
  2. Habilita “NIP-17 gift wrap para DMs”
  3. El cliente negociará automáticamente NIP-17 con contactos soportados

Nota: Amethyst recae elegantemente a NIP-04 si el destinatario no soporta NIP-17.

Primal

Primal tiene excelente soporte NIP-17:

  1. Ajustes → Seguridad y Privacidad
  2. Bajo “Protocolo de Mensajería” selecciona “NIP-17 (Privado)”
  3. Opcional: Habilita “Actualizar automáticamente conversaciones NIP-04” para convertir chats existentes

Mejores Prácticas de Seguridad

Maximiza tu privacidad al usar NIP-17:

1. Verifica Soporte de Cliente Antes de Comunicación Sensible

Siempre confirma que tu contacto usa un cliente con capacidad NIP-17 antes de compartir información sensible. Enviar NIP-17 a un cliente solo NIP-04 resultará en mensajes ilegibles.

2. No Mezcles Protocolos en la Misma Conversación

Evita confusión usando un protocolo por conversación. Si empiezas con NIP-04, termina con NIP-04, o indica claramente cuándo cambias.

3. Usa Claves Frescas para Conversaciones de Alta Seguridad

Para máxima seguridad:

  • Crea un par de claves dedicado para comunicación sensible
  • Comparte la clave pública a través de un canal seguro fuera de banda
  • Rota las claves periódicamente

4. Sé Consciente de Metadatos en Otros Tipos de Evento

NIP-17 solo protege mensajes directos. Otros tipos de evento (notas, reacciones, seguidos) aún exponen datos de grafo social. Usa múltiples identidades para compartimentalización.

5. Elige Relays Enfocados en Privacidad

Incluso con NIP-17, tus patrones de tráfico son visibles para los relays. Usa:

  • Tor o VPN para privacidad adicional a nivel de red
  • Relays que no registren o retengan metadatos de mensajes
  • Múltiples relays para distribuir tu tráfico

6. Entiende las Limitaciones

NIP-17 proporciona excelente privacidad pero no es perfecto:

  • Los relays aún pueden ver direcciones IP (usa VPN/Tor)
  • El análisis de timing puede revelar patrones de comunicación
  • Clientes comprometidos pueden filtrar información
  • El destinatario siempre ve la identidad del remitente

Solución de Problemas Comunes

”Mis mensajes nunca llegan” — revisa primero tu lista de relays para DMs

Este es el fallo más común de NIP-17, y casi nunca es un problema de encriptación.

Quien te escribe con NIP-17 no entrega el mensaje a tus relays habituales. Su cliente busca un evento kind 10050 — la lista que publicas de los relays que aceptan tus mensajes directos — y envía el gift wrap solo ahí. Si nunca has publicado una, el cliente del remitente no tiene dónde entregarlo y el mensaje se descarta en silencio. No aparece nada en ninguna de las dos interfaces.

Solución: en un cliente compatible con NIP-17, busca el ajuste de relays para mensajes directos o privados y guarda al menos un relay. Eso publica tu lista kind 10050. Elige un relay que realmente acepte gift wraps: algunos rechazan de plano los eventos kind 1059. (Esto es el Paso 3 de la guía de migración — si lo saltaste, empieza por ahí.)

Mantén la lista corta. Cada relay que incluyas es un relay que podrá ver quién te está enviando mensajes.

”Los mensajes aparecen como ilegibles o sin sentido”

Causa: El destinatario no soporta NIP-17 Solución: Pide al destinatario que actualice su cliente, o cambia temporalmente a NIP-04

”No puedo ver si alguien leyó mi mensaje NIP-17”

Causa: Los recibos de lectura aún no están estandarizados para NIP-17 Solución: Este es el comportamiento esperado. NIP-17 prioriza la privacidad sobre la confirmación de entrega.

”Los mensajes aparecen desordenados”

Causa: Desviación de reloj entre dispositivos Solución: Asegúrate de que el tiempo de tu dispositivo esté sincronizado (habilita sincronización automática de tiempo)

“El relay rechaza eventos NIP-17”

Causa: Software de relay antiguo Solución:

  1. Revisa los NIPs soportados del relay
  2. Agrega relays modernos que soporten NIP-17
  3. Reporta al operador del relay

”El cliente muestra ambas opciones NIP-04 y NIP-17”

Comportamiento esperado: Muchos clientes soportan ambos durante el período de transición. Siempre elige NIP-17 cuando esté disponible.

El Futuro de la Mensajería Privada en Nostr

NIP-17 es el estándar de oro actual para mensajería privada en Nostr, pero el desarrollo continúa:

  • NIP-44: Un esquema de encriptación mejorado que puede suplantar a NIP-17
  • Encriptación de grupo: Se están desarrollando protocolos de mensajería de grupo privada
  • Integración de pagos: Mensajes privados con pagos Lightning

Mantente actualizado siguiendo:

  • nostr:npub1… # Desarrollo del protocolo Nostr
  • nostr:npub1… # Mejores prácticas de seguridad

Conclusión

NIP-17 representa un gran paso adelante para la privacidad en Nostr. Al abordar los problemas de filtración de metadatos de NIP-04, permite mensajería directa verdaderamente privada que protege tanto el contenido como los patrones de comunicación.

El proceso de migración es sencillo: actualiza tu cliente, verifica que tus contactos soporten NIP-17, y disfruta de privacidad mejorada. Con soporte de clientes generalizado ya disponible, no hay razón para seguir usando el protocolo NIP-04 deprecado.

Tareas de acción:

  1. ✅ Actualiza tu cliente Nostr a la última versión
  2. ✅ Habilita NIP-17 en los ajustes
  3. ✅ Publica tu lista de relays para DMs (kind 10050) — sin ella, nada llega
  4. ✅ Verifica con contactos que soportan NIP-17
  5. ✅ Empieza a usar NIP-17 para todas las conversaciones privadas nuevas

Recuerda: La privacidad es una práctica, no un producto. NIP-17 te da las herramientas—úsalas sabiamente.


Pon a Prueba Tu Conocimiento de NIP-17

¿Listo para revisar tu comprensión de la mensajería segura?

Quiz: NIP-17

Propósito de NIP-17

Pregunta 1 de 5

0/5 respondidas

¿Para qué sirve NIP-17?
Bueno saber

Ultima actualización: 28 de julio de 2026

¿Tienes preguntas? Únete a la discusión en Nostr o abre un issue en este repositorio de documentación.


Sigue leyendo

Mejora esta página

¿Ves una errata o algo poco claro? Edita esta guía en GitHub.

Síguenos en Nostr