Cómo funciona la seguridad zero-knowledge de storage-p
Este es el razonamiento detrás del producto: una imagen clara de dónde viven las claves, qué está cifrado y qué expondría una brecha.
Las claves se derivan en tu navegador
Tu contraseña maestra pasa por Argon2id en el navegador para derivar la clave de bóveda. La contraseña en sí nunca se transmite — solo se envía un hash de autenticación Argon2id para que el servidor pueda verificarte, sin llegar a conocer el secreto.
Cada elemento se cifra en el cliente
Cada elemento se cifra con XChaCha20-Poly1305 antes de salir del dispositivo; el servidor almacena nonce‖texto cifrado y no tiene forma de descifrarlo. Esto es lo que significa "zero-knowledge" en la práctica.
Compartir mantiene al servidor a ciegas
Los enlaces de un solo uso mantienen la clave de descifrado en el fragmento de la URL, que nunca llega al servidor. Compartir entre usuarios sella el elemento con la clave pública del destinatario mediante un sealed-box (X25519). Los proyectos usan una Clave de Proyecto que se envuelve por separado para cada miembro.
Defensa en profundidad en reposo
Además del cifrado del lado del cliente, la base de datos del servidor está cifrada en reposo con SQLCipher. La app aplica una CSP estricta y HSTS, y no carga scripts de terceros.
Qué expone una brecha — y el compromiso
Una brecha completa del servidor o de la base de datos solo entrega texto cifrado: ni secretos en texto plano ni contraseña maestra. El compromiso deliberado es que no hay recuperación si olvidas tu contraseña maestra — así que conserva una copia de seguridad cifrada.