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
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:
- Seal (kind 13) — la capa interna, que encripta el mensaje y oculta qué clave lo firmó
- 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
Los relays sí pueden ver a quién le escribes
El gift wrap lleva la clave pública del destinatario en un tag p en texto
plano. No puede ser de otra forma: si no, el relay del destinatario no sabría a
quién entregárselo. NIP-17 oculta al remitente, no al destinatario.
Cualquiera que lea el flujo de eventos de un relay puede ver que alguien te envió un mensaje y cuándo, pero no quién ni qué. Si tu modelo de amenaza exige ocultar incluso que recibiste algo, NIP-17 por sí solo no basta.
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ística | NIP-04 | NIP-17 |
|---|---|---|
| Encriptación | Una capa AES-256-CBC | Doble capa (seal + gift wrap) |
| Metadatos del remitente | Visible para relays | Oculto — firmado con una clave de un solo uso |
| Metadatos del destinatario | Visible para relays | Sigue visible — tag p en texto plano |
| Contenido del mensaje | Encriptado | Encriptado |
| Protección contra replay | Ninguna | Timestamps aleatorizados |
| Secreto hacia adelante | No | No — NIP-44 no lo proporciona |
| Estado de seguridad | Deprecado | Recomendado |
| Interoperabilidad | Ampliamente soportado | Soporte 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
Beneficios Clave
- Privacidad del remitente: nadie salvo el destinatario puede determinar
quién envió el mensaje. El destinatario, en cambio, aparece nombrado en un tag
pen texto plano que los relays tienen que poder leer. - 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í.
- 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
nsecpodrá 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:
| Cliente | Soporte NIP-17 | Estado |
|---|---|---|
| Damus | Sí | Por defecto para nuevos DMs |
| Amethyst | Sí | Por defecto para nuevos DMs |
| Primal | Sí | Soportado |
| Coracle | Sí | Soportado |
| Iris | Sí | Soportado |
| Snort | Sí | Soportado |
| Nos | Sí | Soportado |
Paso 2: Habilita NIP-17 en Tu Cliente
Damus (iOS/macOS)
- Abre Ajustes → Privacidad y Seguridad
- Desplázate a “Encriptación de Mensajes”
- Activa “Usar NIP-17 para nuevos mensajes” a ON
- 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)
- Ve a Ajustes → Mensajes
- Habilita “Usar NIP-17 para DMs”
- Reinicia la app para efecto completo
Primal (iOS/Android/Web)
- Navega a Ajustes → Privacidad
- Bajo “Mensajes Directos,” selecciona “NIP-17 (Recomendado)”
- 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).
- En tu cliente, busca el ajuste de DMs, mensajes privados o relays de mensajería
- Agrega de uno a tres relays que acepten gift wraps (kind 1059) — algunos relays los rechazan
- 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:
- Envía un mensaje de prueba a ti mismo o a un amigo
- Revisa el tipo de evento (debería ser
1059para gift wraps) - Busca el
kind: 1059en los detalles del mensaje - El tag
pdeberí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:
- Actualiza a la última versión de Damus desde App Store
- NIP-17 se habilita automáticamente para nuevas conversaciones
- 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:
- Ajustes → Avanzado → Ajustes de Protocolo
- Habilita “NIP-17 gift wrap para DMs”
- 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:
- Ajustes → Seguridad y Privacidad
- Bajo “Protocolo de Mensajería” selecciona “NIP-17 (Privado)”
- 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:
- Revisa los NIPs soportados del relay
- Agrega relays modernos que soporten NIP-17
- 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:
- ✅ Actualiza tu cliente Nostr a la última versión
- ✅ Habilita NIP-17 en los ajustes
- ✅ Publica tu lista de relays para DMs (kind 10050) — sin ella, nada llega
- ✅ Verifica con contactos que soportan NIP-17
- ✅ 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?
Propósito de NIP-17
0/5 respondidas
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
¿Ves una errata o algo poco claro? Edita esta guía en GitHub.