Arquitectura de seguridad

Cómo Snoq cifra tus notas

AES-256-CBC con HMAC-SHA256, derivación de clave Argon2id, IV aleatorios por nota. Ninguna contraseña, clave o texto plano sale de tu dispositivo.

AES-256-CBC
HMAC-SHA256
Argon2id
100% Local

Qué ocurre cuando escribes una nota

Cuando el cifrado está activo y guardas una nota, Snoq cifra el contenido con AES-256 antes de que toque el disco. La clave usada para cifrar no es tu contraseña — se deriva de ella mediante Argon2id, una función moderna de derivación de claves con alto consumo de memoria, diseñada específicamente para hacer costosos los ataques de fuerza bruta.

Cada nota recibe su propio vector de inicialización (IV) aleatorio de 16 bytes, de modo que dos notas con contenido idéntico producen texto cifrado completamente diferente. Cada nota cifrada se autentica luego con HMAC-SHA256, para que cualquier manipulación — incluso un solo bit modificado — sea detectada antes de intentar descifrarla.

Esto no es teoría. Así se almacena cada nota, ahora, en tu dispositivo. El resto de esta página describe exactamente cómo — con suficiente detalle para que un lector consciente de la seguridad pueda verificar que el enfoque es correcto.

Lo que Snoq nunca almacena

Tres elementos están deliberadamente ausentes del disco — y de la memoria, en cuanto la app se bloquea.

  • Tu contraseña, en cualquier forma. Ni en texto plano, ni como hash reversible, en ningún lugar. Snoq solo almacena un verificador Argon2id que puede confirmar si una entrada es correcta, pero no puede usarse para recuperar la contraseña ni las claves de cifrado.
  • Las claves AES o HMAC derivadas. Cuando Snoq se bloquea, ambos búferes de claves en memoria se borran (Array.Clear) y las referencias se ponen a null. Nada se almacena en caché, serializa en disco o persiste intencionalmente.
  • Contenido de notas en texto plano. Cuando el cifrado está activo, la base de datos local contiene únicamente texto cifrado. El texto plano está brevemente en memoria mientras lees o editas activamente una nota, y luego se descarta.

Primitivas criptográficas

Los algoritmos y parámetros exactos que usa Snoq. Todos son construcciones estandarizadas y bien probadas.

Propósito Algoritmo Parámetros
Verificación de contraseña Argon2id 64 MB de memoria, 2 hilos, 3 iteraciones, salida de 32 bytes
Derivación de clave Argon2id 64 MB de memoria, 2 hilos, 3 iteraciones, sal de 32 bytes, salida de 64 bytes dividida en clave de cifrado + MAC, contraseña con prefijo de dominio
Cifrado de notas AES-256-CBC IV aleatorio de 16 bytes por nota
Autenticación HMAC-SHA256 Cubre IV + texto cifrado (Encrypt-then-MAC)
Generación de sal RandomNumberGenerator 32 bytes del CSPRNG del sistema operativo

Argon2id es el estándar RFC 9106 para derivación de claves basada en contraseña y ganador de la Password Hashing Competition.

Cómo se estructura una sola nota cifrada

Cada nota almacenada en la base de datos tiene este aspecto — un blob codificado en Base64 formado por tres partes concatenadas.

Ciphertext layout (per note)
IV
16 bytes
Aleatorio por nota
HMAC
32 bytes
Tag SHA-256
Texto cifrado AES-CBC
N bytes
JSON Delta Quill cifrado

Encrypt-then-MAC. El HMAC se calcula sobre IV || texto cifrado y se verifica antes de cualquier intento de descifrado. Si el tag no coincide — clave incorrecta, corrupción, manipulación — la nota se rechaza sin exponer texto plano. Esto previene los ataques de padding oracle que pueden afectar al modo CBC cuando falta autenticación o está mal implementada.

El flujo de desbloqueo

Qué sucede cuando introduces tu contraseña para abrir tus notas.

  1. 1
    Verificación rápida. El diálogo ejecuta Argon2id contra el verificador de contraseña almacenado. Si no coincide, el intento se rechaza inmediatamente — no pasa nada más.
  2. 2
    Derivar las claves. Argon2id se ejecuta de nuevo — esta vez con un prefijo de dominio (snoq-enc:) — para producir 64 bytes de material de clave, divididos en una clave AES de 32 bytes y una clave HMAC de 32 bytes.
  3. 3
    Verificar el canario. Un pequeño blob conocido — cifrado con las claves reales cuando se estableció la contraseña por primera vez — se descifra con las claves recién derivadas y se compara en tiempo constante con el valor esperado. Esto demuestra que las claves derivadas coinciden con las usadas para cifrar tus notas.
  4. 4
    ¿El canario falla? Las claves recién derivadas se borran y el desbloqueo se rechaza. Una sesión desbloqueada existente permanece intacta.
  5. 5
    ¿El canario tiene éxito? Las claves se mantienen en memoria (como arrays de bytes, en ningún otro lugar) y las notas se vuelven legibles. A partir de ese momento, cada lectura descifra bajo demanda; cada escritura cifra bajo demanda.

¿Por qué dos ejecuciones de Argon2id?

El verificador y las claves de cifrado se derivan con entradas diferentes (la ruta de cifrado antepone snoq-enc: a la contraseña antes del hashing). Esto se llama separación de dominio: aunque ambas rutas usan la misma contraseña y sal, sus salidas son completamente independientes. Un atacante que obtuviera el verificador seguiría sin tener nada útil para descifrar notas.

Cambiar tu contraseña de forma segura

Volver a cifrar un vault entero es una operación arriesgada — si falla a mitad de camino, algunas notas quedarían almacenadas con la clave antigua y otras con la nueva. Snoq evita esto con un patrón de preparación y luego confirmación.

1

Preparar en memoria

Cada nota cifrada se descifra con las claves antiguas y se vuelve a cifrar con las nuevas — completamente en memoria. Si la contraseña antigua es incorrecta, la verificación HMAC falla en la primera nota, se lanza una excepción y nada se escribe en disco.

2

Confirmar en disco

Solo si todas las notas se volvieron a cifrar correctamente, Snoq recorre la lista preparada y escribe las notas actualizadas en la base de datos. Un error durante la operación deja el vault original completamente intacto.

FAQ de Seguridad

No existe ningún mecanismo de recuperación — y es intencionado. Tu contraseña es la única entrada a partir de la cual se pueden derivar las claves de cifrado. Snoq nunca la almacena, nunca la transmite y no tiene puerta trasera. Si se pierde la contraseña, las notas no pueden descifrarse. Guarda tu contraseña en un lugar seguro, por ejemplo un gestor de contraseñas.

Snoq usa AES-256-CBC combinado con HMAC-SHA256 en una construcción Encrypt-then-MAC. Correctamente implementado — IV aleatorio por mensaje, HMAC sobre IV+texto cifrado, verificación en tiempo constante antes de cada descifrado — esto proporciona cifrado autenticado equivalente en seguridad a AES-GCM, con mayor compatibilidad de bibliotecas multiplataforma. La propiedad importante es la autenticación, y Snoq autentica cada nota.

No. Las claves derivadas solo viven en memoria como arrays de bytes dentro del servicio de cifrado. Cuando Snoq se bloquea (manualmente, mediante el atajo de teclado de bloqueo de la interfaz, o automáticamente), tanto la clave AES como la HMAC se borran con Array.Clear y sus referencias se ponen a null. No podemos prometer que el sistema operativo nunca haga swap de la memoria bajo presión extrema — ninguna aplicación en espacio de usuario puede — pero Snoq nunca persiste claves intencionalmente.

No. El verificador y las claves de cifrado se producen mediante dos ejecuciones distintas de Argon2id con entradas diferentes (la ruta de cifrado antepone a la contraseña un prefijo de separación de dominio). Aunque ambas usan la misma sal, sus salidas son completamente independientes. Un atacante que copiara el verificador de tu archivo de configuración no habría ganado nada útil para el descifrado — aún tendría que forzar la contraseña por fuerza bruta.

Snoq exporta el vault como archivo ZIP cifrado. La exportación mantiene el cifrado, de modo que una copia de seguridad en un USB o disco en la nube permanece segura. Para la restauración, se necesita tu contraseña para descifrar — el mismo modelo de seguridad que el vault local.

No. No hay sincronización en la nube, ni telemetría, ni informes de fallos, ni sistema de cuenta. Snoq comprueba sus propias actualizaciones, pero el contenido de las notas, las contraseñas y los patrones de uso nunca salen de tu ordenador. Puedes verificarlo con cualquier monitor de red.

¿Listo para probarlo?

Snoq es gratuito, se instala en segundos y nunca pide una cuenta.

Descargar Snoq para Windows