Console Playground
← Blog

Encriptación localStorage de la Bóveda del Navegador

Importante: Qué Cubre Esto

Esta publicación del blog explica la función opcional de bóveda del navegador - una herramienta de conveniencia para guardar claves API en el localStorage de tu navegador con encriptación de contraseña.

Esto NO es sobre cómo almacenamos las claves API del lado del servidor. Cuando compras una clave API, hasheamos el secreto con bcrypt (13 rondas) antes de almacenarlo en nuestra base de datos. El secreto en texto plano se elimina después de tu primera visualización.

La bóveda del navegador es completamente opcional y se ejecuta 100% en tu navegador. Exploremos cómo funciona.

Encriptación Solo en el Navegador

Cuando guardas una clave API en la bóveda de tu navegador, todo sucede del lado del cliente:

1. Generación de Salt Específica del Dispositivo

  • Solo la primera vez: Genera un salt aleatorio de 32 bytes vía CryptoJS.lib.WordArray.random(32)
  • Almacenado en localStorage como unsandbox_device_salt
  • Único para tu dispositivo y navegador

2. Derivación del ID de Bóveda

  • Proporcionas una contraseña (mínimo 8 caracteres)
  • Concatenar: password + device_salt
  • Hashearlo: SHA256(password + device_salt)
  • El resultado se convierte en tu ID de Bóveda

3. Encriptación y Almacenamiento

  • Claves API encriptadas usando AES-256 con tu contraseña
  • Datos encriptados almacenados en localStorage como unsandbox_vaults
  • ID de Bóveda usado como clave de búsqueda

4. Desencriptación

  • Re-derivar el ID de Bóveda desde password + device salt
  • Buscar datos encriptados usando el ID de Bóveda
  • Desencriptar con tu contraseña
  • Las claves solo existen desencriptadas en memoria

Aislamiento del Dispositivo

La misma contraseña en diferentes dispositivos produce IDs de Bóveda diferentes:

  • Dispositivo A: SHA256("mypassword" + "salt_abc123") → ID de Bóveda: def456...
  • Dispositivo B: SHA256("mypassword" + "salt_xyz789") → ID de Bóveda: ghi012...

Incluso si alguien roba tu contraseña, no pueden acceder a tu bóveda sin el localStorage de tu dispositivo.

Arquitectura de Conocimiento Cero

El servidor nunca recibe:

  • Tu contraseña de bóveda
  • Tu salt del dispositivo
  • Tu ID de Bóveda
  • Tus claves encriptadas

Todo permanece en el localStorage de tu navegador. Literalmente no podemos acceder al contenido de tu bóveda incluso si quisiéramos.

El Compromiso

Lo Que Obtienes ✅

  • Máxima privacidad - no podemos acceder a tus claves
  • Sin riesgo de brecha del servidor - no hay nada que violar
  • Seguridad específica del dispositivo

Lo Que Renuncias ❌

  • Sin sincronización entre dispositivos
  • Sin recuperación de contraseña
  • Dependencia de localStorage - limpiar datos del navegador = pérdida permanente de datos

¿Qué Sucede Cuando Limpias localStorage?

Esto es crítico: Limpiar localStorage es pérdida de datos permanente e irrecuperable.

Cuando limpias el localStorage de tu navegador, pierdes:

  1. El salt del dispositivo - ya no puedes regenerar IDs de Bóveda
  2. Las bóvedas encriptadas - todas las claves API encriptadas eliminadas para siempre

Es como quemar tanto la caja fuerte como la cerradura de combinación. Incluso si recuerdas tu contraseña, no puedes recrear el mismo ID de Bóveda sin el salt del dispositivo original.

Por Qué Esto Es Realmente una Característica

  • Borrón y cuenta nueva: Reinicio de fábrica completo
  • Sin datos huérfanos: Las bóvedas antiguas no pueden ser accedidas o filtradas
  • Auto-destructivo: Los datos no persisten si no quieres que lo hagan
  • Sin puertas traseras: Ni siquiera tú puedes recuperarlo

Diseño definitivo orientado a la privacidad.

Propiedades de Seguridad

Determinístico Por Dispositivo

  • Misma contraseña + mismo dispositivo = mismo ID de Bóveda (siempre)
  • Siempre puedes desbloquear tu bóveda con la contraseña correcta

Diferente Por Dispositivo

  • Misma contraseña + dispositivo diferente = ID de Bóveda diferente
  • Las bóvedas están aisladas y no se pueden transferir

Criptográficamente Fuerte

  • SHA-256 para derivación del ID de Bóveda (hash unidireccional)
  • AES-256 para encriptación (grado militar)
  • Biblioteca CryptoJS (bien probada, ampliamente utilizada)

Mejores Prácticas

🔐 Seguridad de Contraseña

  • Usa una contraseña fuerte y única (12+ caracteres)
  • No existe recuperación de contraseña - elige sabiamente

💾 Estrategia de Respaldo

  • Exporta tus claves desde la bóveda desbloqueada para guardarlas en otro lugar
  • Guarda las claves exportadas en un gestor de contraseñas o archivo encriptado
  • La bóveda es para conveniencia, no para almacenamiento primario
  • No existe función de importación - las claves deben ser re-ingresadas manualmente si se pierde la bóveda
  • Trata limpiar localStorage como formatear un disco duro

🧹 Mantenimiento del Navegador

  • Ten cuidado al limpiar datos del navegador
  • “Limpiar historial reciente” es más seguro que “Limpiar todo el historial”
  • Exporta claves antes de cambiar de navegador

Comparación: Bóvedas del Lado del Servidor vs. del Lado del Cliente

Característica Lado del Servidor Lado del Cliente (Nuestro)
Recuperación de contraseña ✅ Sí ❌ No
Sincronización entre dispositivos ✅ Sí ❌ No
Exportar bóveda ✅ Sí ✅ Sí (JSON)
Importar bóveda ✅ Sí ❌ No (entrada manual)
El servidor puede acceder a claves ⚠️ Técnicamente sí ✅ Imposible
Sobrevive limpieza de localStorage ✅ Sí ❌ No
Requiere cuenta ✅ Sí ✅ No
Sujeto a citación ⚠️ Sí ✅ No
Verdadero conocimiento cero ❌ No ✅ Sí

Elegimos seguridad y privacidad sobre conveniencia. Para sincronización entre dispositivos, usa un gestor de contraseñas dedicado como 1Password, Bitwarden o KeePass.

FAQ

P: ¿Puedo recuperar mi bóveda si olvido mi contraseña? R: No. No tenemos tu contraseña, salt o claves.

P: ¿Puedo usar la misma bóveda en múltiples dispositivos? R: No. Cada dispositivo tiene un salt único.

P: ¿Qué sucede si limpio mi caché del navegador? R: El caché usualmente es seguro, pero limpiar localStorage elimina tu bóveda permanentemente.

P: ¿Puede unsandbox.com acceder a mis claves guardadas? R: No. Todo está encriptado en tu navegador.

P: ¿Es esto más seguro que un gestor de contraseñas? R: Diferentes compromisos. Los gestores de contraseñas ofrecen respaldo y sincronización. Nosotros ofrecemos privacidad de conocimiento cero. ¡Usa ambos!

P: ¿Puedo exportar mi bóveda? R: ¡Sí! Puedes exportar todas las claves desde una bóveda desbloqueada como JSON. Sin embargo, no hay función de importación - debes re-ingresar las claves manualmente si pierdes tu bóveda.

Conclusión

La bóveda del navegador prioriza privacidad y seguridad sobre conveniencia. Perfecta para usuarios que valoran:

  • Seguridad de conocimiento cero
  • Encriptación del lado del cliente
  • Sin almacenamiento del lado del servidor
  • Máxima privacidad

Tus claves, tu dispositivo, tu contraseña. Nadie más—ni siquiera nosotros—puede acceder a ellas.

Así es como debería ser. 🔐