Dónde vive la clave: clientes, extensiones y firmantes remotos
La página es la septima sección de la demo educativa sobre Nostr. Aquí se explica dónde reside físicamente la clave privada cuando usas diferentes tipos de aplicaciones, y cómo el protocolo NIP-46 permite que una app firme eventos sin nunca ver tu clave.
Funcionalidades principales
- Comparación de modelos de custodia: presenta tres escenarios — la propia página web, una extensión de navegador (NIP-07) y un firmante remoto (NIP-46) — mostrando las diferencias de seguridad entre ellos.
- Permisos granulares: el firmante remoto se configura con restricciones específicas (por ejemplo,
sign_event:1), lo que le permite firmar solo notas de texto y rechazar otras operaciones como cambios de perfil. - Visualización del tráfico cifrado: muestra en tiempo real cómo la app y el firmante se comunican mediante eventos kind 24133 cifrados, donde un relay intermediario no puede leer el contenido.
- Explicación de las tres claves: desglosa el modelo de NIP-46 que utiliza una clave desechable para el cliente, una clave propia del firmante para la comunicación, y la clave real del usuario que nunca abandona el dispositivo firmante.
Idea central
Una aplicación puede obtener una firma válida de un firmante remoto sin nunca acceder a la clave privada del usuario.
Esto invierte el modelo de seguridad tradicional: en lugar de confiar en que la app no robe la clave, el sistema garantiza criptográficamente que la app no puede acceder a ella, limitando el daño potencial incluso si el cliente es malicioso.
Dónde reside la clave según el modelo
1. La propia página web
La clave vive en el JavaScript del navegador. Cualquier script de terceros (analítica, publicidad, dependencias comprometidas) puede leerla. Es el modelo más inseguro.
2. Extensión del navegador (NIP-07)
La clave reside en el almacenamiento aislado de la extensión. La página web pide firmas a la extensión, que actúa como intermediaria. Es más seguro que la web, pero la clave sigue en el mismo dispositivo y navegador.
3. Firmante remoto (NIP-46)
La clave está en otro dispositivo o aplicación (como Amber en Android o un bunker remoto). La app web se comunica mediante eventos cifrados a través de relays. La clave nunca toca el navegador.
Las tres claves de NIP-46
El protocolo utiliza tres pares de claves distintos:
- Clave del cliente: generada por la app web solo para esta sesión de comunicación. Es desechable y no representa identidad.
- Clave del firmante: pertenece al dispositivo que guarda tu clave real. Sirve para cifrar la comunicación con el cliente.
- Clave del usuario: tu identidad real en Nostr. Nunca sale del firmante. Solo se usa para firmar los eventos que apruebas.
Solo la tercera es tu identidad permanente. Las otras dos son canales de comunicación temporales.
Permisos limitados como defensa
El firmante se inicia con permisos específicos como sign_event:1. Esto significa:
- Puede firmar notas de texto (kind 1).
- Rechaza automáticamente solicitudes para cambiar perfiles, borrar eventos o modificar contactos.
La aplicación no puede portarse mal porque el firmante no le concede la capacidad técnica, eliminando la necesidad de confiar en la buena voluntad del desarrollador.
La lección demuestra que la custodia de claves no es binaria (tenerla o no tenerla), sino un espectro de riesgo. Al separar la identidad (tu clave) de la capacidad de firma (mediante firmantes remotos con permisos limitados), Nostr permite usar aplicaciones web con la seguridad de que, incluso si son maliciosas, el daño está limitado y la clave permanece a salvo fuera de su alcance.
- Aqui esta el link de la fuente:
https://rookery-six.vercel.app/