Seguridad · versión técnica

El servidor nunca ve tu contenido.

Todo se cifra en tu dispositivo antes de salir. Lo que viaja —incluso al compartir— es texto cifrado; la clave nunca se transmite. Así es exactamente cómo.

AES-256 · GCM PBKDF2 · 210 000 0 servidores con tus datos

Lo que ve cada quién

El servidor (Netlify)
GET /share
#p.salt.iv.cifrado
no se envía tras el “#”
Solo entrega la página. Nunca recibe tu nota.
Quien tiene la clave
#p.salt.iv.cifrado
+ contraseña (la tecleas)
se descifra en tu navegador
Recrea la clave y lee la nota. Solo aquí.

El fragmento # de una URL es la única parte que el navegador no incluye en la petición HTTP. Ahí ponemos todo lo cifrado: jamás llega a un servidor.

Anatomía de un enlace protegido

https://tu-sitio/share#p.lvMeAqNiM__RMAPR8Q4tEw.nCiP_badO-sbnS6i.NM21YNeZmkJ5hgrRcTazBCp…
p

Marca el modo contraseña: el visor pedirá una clave.

salt16 bytes

Aleatorio y público. Hace única la clave derivada para esta nota.

iv12 bytes

Aleatorio y público. El vector que AES-GCM necesita.

texto cifrado

Tu nota cifrada, con sello de autenticidad. Ilegible sin la clave.

La misma carga cifrada puede viajar también como archivo .suzuri: un JSON que envuelve ese mismo fragmento. Idéntica seguridad, sin el límite de tamaño de una URL —útil para notas largas—. El visor lo abre igual, arrastrándolo.

El cifrado, en dos piezas

PBKDF2 · 210 000 Tu contraseña → una clave

La contraseña pasa por 210 000 iteraciones con un salt aleatorio. Encarece muchísimo la fuerza bruta.

contraseña + saltclave 256-bit
AES-256-GCM La clave → cifra la nota

Cifra el contenido y añade un sello: si la clave o los datos no cuadran, el descifrado falla en seco.

nota + clave + ivtexto cifrado

Cómo se descifra sin enviar la clave

1
La contraseña se comparte aparte

Por un canal distinto al enlace. La app no la conoce ni la guarda.

2
Quien abre la teclea

Con esa contraseña y el salt del enlace se reconstruye la misma clave AES-256 que cifró la nota.

3
AES-GCM descifra con la clave y el iv

Si la contraseña es correcta, aparece la nota. Si no, el sello no cuadra y falla: “Contraseña incorrecta”.

La clave nunca se transmite. Tú y quien abre la derivan por separado de la misma contraseña + salt. Por eso el enlace solo es inservible.

Desde la terminal, con Claude Code

1
La contraseña la guarda el sistema, no la app

La teclea el usuario una vez y va al PasswordVault de Windows (con DPAPI de respaldo), cifrada contra su cuenta. No queda en ningún archivo, ni en variables de entorno, ni en el historial de comandos.

2
El descifrado ocurre en el equipo

El programa la lee del almacén y deriva la misma clave AES-256 con el mismo PBKDF2 de 210 000 iteraciones que el navegador. El baúl se abre en memoria, para esa consulta.

3
Los secretos siguen tapados

Los bloques de contraseñas se censuran por defecto. Solo se revelan si se piden de forma explícita en ese momento.

El límite, dicho claro: la contraseña maestra nunca sale del equipo, pero el texto de las notas que pides sí llega al modelo —es lo que le permite responder—. Es la misma decisión que al pegar una nota en cualquier asistente, solo que aquí eliges qué nota y las claves van tapadas.

Los límites, sin letra chica

Sin servidor, hay cosas que no se pueden
  • No se puede cancelar. Una vez compartido, el enlace o el archivo funciona mientras alguien lo tenga; nada puede revocarlo.
  • No se actualiza. Es una copia del momento; si editas la nota, genera un enlace o archivo nuevo (el anterior seguirá abriendo la versión vieja).
  • Quien tiene el enlace (o el archivo) y la clave, puede leer. Compártelos con criterio.