Seguridad en Vaulted

Cifrado de conocimiento cero: no podemos leer tus secretos, aunque quisiéramos.

Creado y mantenido por Maxim Novak · [email protected]

No confíes en nosotros: verifícalo tú mismo

Cada afirmación de esta página se puede observar desde tu propio navegador. Abre las DevTools, ejecuta cuatro pruebas breves y confirma que ni el texto plano ni la clave cruzan nunca la red. Cinco minutos, sin herramientas que instalar.

Security HeadersA+Mozilla ObservatoryA+SSL LabsA+Análisis de terceros en vivo: haz clic para verificar.

Cifrado AES-256-GCM

Cada secreto se cifra en tu navegador con AES-256-GCM, según se especifica en NIST SP 800-38D: el mismo estándar que usan gobiernos e instituciones financieras de todo el mundo. El cifrado ocurre antes de que ningún dato salga de tu dispositivo.

La clave nunca sale de tu navegador

La clave de cifrado se coloca en el fragmento de la URL (la parte después de #). Según el RFC 3986, los fragmentos de URL nunca se envían al servidor: solo existen en tu navegador. Únicamente quien tenga el enlace completo puede descifrar el secreto.

Arquitectura de conocimiento cero

Nuestro servidor solo almacena el texto cifrado y metadatos (número de vistas, expiración). No tenemos forma de descifrar tus datos: nunca vemos la clave ni el texto plano. Incluso un compromiso total del servidor solo revelaría bloques cifrados.

Protección opcional con frase de contraseña

Para mayor seguridad, puedes establecer una frase de contraseña al crear un secreto. La frase de contraseña envuelve la clave de cifrado: aunque alguien intercepte el enlace, no podrá descifrar el secreto sin ella. Comparte la frase de contraseña por un canal distinto (como una llamada o un mensaje aparte) para una protección máxima.

Qué almacena el servidor

Un bloque cifrado, el número de vistas restantes y una marca de tiempo de expiración. Eso es todo. Sin registros de IP, sin cuentas de usuario, sin analíticas sobre el contenido del secreto.

Eliminación automática

Los secretos se eliminan de forma permanente cuando se alcanza el límite de vistas o pasa el tiempo de expiración. No hay papelera, ni copia de seguridad, ni forma de recuperar secretos eliminados.

Abierto por diseño

La lógica de cifrado y descifrado se ejecuta íntegramente en tu navegador usando la Web Crypto API. Puedes inspeccionar el código fuente, verificar la implementación criptográfica y confirmar que ningún texto plano sale jamás de tu dispositivo.

Contra qué protege Vaulted

Escucha en la red

Todos los datos se cifran en tu navegador antes de transmitirse. Aunque se intercepte el tráfico de red, los atacantes solo ven texto cifrado AES-256-GCM: la clave de cifrado nunca cruza la red.

Compromiso del servidor

Vaulted usa una arquitectura de conocimiento cero. El servidor solo almacena texto cifrado y metadatos. Nunca recibe la clave de cifrado ni el texto plano, así que una brecha total del servidor no aporta nada utilizable.

Acceso no autorizado

Los secretos están protegidos por límites de vistas configurables, expiración automática (TTL) y protección opcional con frase de contraseña. Una vez alcanzado el límite de vistas o expirado el TTL, el secreto se elimina de forma permanente.

Persistencia de los datos

Los secretos se eliminan automática y permanentemente del almacenamiento al consumirse o expirar. No hay copias de seguridad, papeleras ni mecanismos de recuperación.

Contra qué NO protege Vaulted

Navegador o dispositivo comprometido

Si un malware tiene acceso a tu navegador, puede leer el contenido descifrado del DOM después de que veas un secreto.

Registradores de teclado (keyloggers)

Un keylogger en el dispositivo del remitente o del destinatario puede capturar una frase de contraseña a medida que se teclea.

Extensiones de navegador maliciosas

Las extensiones con acceso al DOM pueden leer el contenido descifrado del secreto una vez renderizado en el navegador.

Reenvío o capturas de pantalla del destinatario

Una vez descifrado el secreto, el destinatario ve el texto plano. No hay DRM: puede copiarlo, capturarlo o compartirlo.

Interceptación del enlace antes de verlo

Si la URL completa (incluido el fragmento que contiene la clave) se intercepta antes de que el destinatario previsto la abra, el secreto queda comprometido.

Frases de contraseña débiles

Si se usa una frase de contraseña y es débil, un atacante con acceso a la clave envuelta puede descifrarla por fuerza bruta.

Qué entregaríamos ante una citación judicial

Una pregunta habitual de los equipos de seguridad y jurídicos: si se nos obligara mediante un proceso legal, ¿qué podría entregar Vaulted realmente? La respuesta honesta es «no mucho», y eso es por diseño, no por política. No podemos compartir lo que nunca recibimos.

Qué conservamos de cualquier secreto

  • Texto cifrado AES-256-GCM, el contador de vistas restantes y una marca de tiempo de TTL: almacenados como un hash de Redis en Upstash.
  • Una sal opcional de clave envuelta si el remitente eligió una frase de contraseña.
  • Todo lo anterior se purga automáticamente al expirar el TTL o cuando se alcanza el máximo de vistas. Sin copias de seguridad, sin archivos.

Qué nunca se almacena ni se registra

  • El contenido en texto plano.
  • La clave de cifrado: vive solo en el fragmento de la URL (después del #), que los navegadores no envían al servidor según el RFC 3986.
  • Las frases de contraseña (solo se almacena una sal no reversible).
  • La identidad, el correo o la huella del dispositivo del destinatario.
  • Cuerpos de solicitud, cuerpos de respuesta o referrers.

Qué se registra, brevemente

  • La IP del solicitante, usada únicamente por Upstash Ratelimit (ventana deslizante) para aplicar 10 creaciones/min y 30 vistas/min por IP. Se conserva solo el tiempo que requiere la ventana de límite de tasa.
  • Registros operativos estándar de Vercel y Upstash (códigos de estado, latencias), no vinculados al contenido del secreto.

Qué podrían obtener las autoridades con un proceso válido

Como mucho: un bloque de texto cifrado opaco mientras siga dentro de su ventana de TTL, además de los metadatos anteriores. El bloque es ilegible sin la clave de descifrado, que nunca tuvimos y no tenemos forma de recuperar.

Sinceramente, no tenemos nada útil que entregar.

Divulgación responsable

Nos tomamos la seguridad en serio. Si descubres una vulnerabilidad, repórtala de forma responsable para que podamos solucionarla antes de que afecte a los usuarios.

Qué incluir en un informe

  • Una descripción de la vulnerabilidad y su posible impacto
  • Pasos para reproducir el problema
  • Cualquier código de prueba de concepto o capturas de pantalla

Alcance

  • Dentro del alcance: implementación del cifrado, elusión de autenticación, exposición de datos, vulnerabilidades del lado del servidor
  • Fuera del alcance: ingeniería social, denegación de servicio, spam

Nuestro objetivo es acusar recibo de los informes en un plazo de 48 horas.

¿Quieres verlo en acción?

Prueba el Playground de cifrado : una demo interactiva del mismo cifrado AES-256-GCM que usa Vaulted. O lee nuestra guía visual del cifrado de extremo a extremo.

Preguntas frecuentes