Glosario
Los términos técnicos y criptográficos utilizados en el sitio, explicados de forma sencilla. Para explicaciones más detalladas, dirígete al blog.
Argon2id
Argon2id es el algoritmo ganador de la Password Hashing Competition, diseñado para resistir ataques de fuerza bruta incluso con hardware especializado (GPU, ASIC). Se utiliza aquí en dos niveles: para derivar la clave que protege la clave privada del usuario, y para el hash de la contraseña del lado del servidor.
Arquitectura de conocimiento cero
Una arquitectura de "conocimiento cero" (zero-knowledge) garantiza que el proveedor del servicio no tiene, técnicamente, ninguna forma de leer los datos del usuario. Todo el cifrado ocurre del lado del cliente, antes de enviarse al servidor: este solo maneja contenido ilegible, incluso en caso de pirateo o de una orden judicial.
Autenticación sin estado (stateless)
A diferencia de una autenticación por sesión clásica (donde el servidor guarda en memoria quién está conectado), una arquitectura stateless no almacena nada del lado del servidor. Cada solicitud lleva su propio token firmado (JWT), que el servidor verifica al vuelo — lo que simplifica el escalado y reduce la superficie de ataque.
Cifrado de extremo a extremo (E2E)
End-to-End Encryption: los archivos se cifran en el navegador antes de enviarse, y solo se descifran al consultarlos, también en el navegador. En ningún momento el servidor maneja los datos en claro.
Clave pública / clave privada
En criptografía asimétrica, cada usuario posee dos claves matemáticamente vinculadas. La clave pública sirve para cifrar datos o verificar una firma, y puede difundirse sin riesgo. La clave privada sirve para descifrar o firmar, y nunca debe compartirse — en May·Secret, nunca sale del dispositivo del usuario, cifrada con su contraseña.
Curve25519
Curve25519 es una curva elíptica diseñada para el intercambio de claves (Diffie-Hellman) de forma rápida y segura. Cada cuenta tiene un par de claves generado sobre esta curva: la clave pública puede compartirse libremente, la clave privada nunca sale del dispositivo del usuario.
JWT (JSON Web Token)
Un JSON Web Token es un token compacto, firmado criptográficamente, que demuestra la identidad de quien lo posee. Tras iniciar sesión, el servidor emite un JWT que el cliente reenvía en cada solicitud; el servidor puede verificar su validez (mediante firma RSA) sin necesidad de almacenar estado de sesión.
Libsodium
Libsodium es una biblioteca criptográfica moderna, auditada y ampliamente utilizada, que ofrece implementaciones seguras y sencillas de los algoritmos de cifrado (XChaCha20-Poly1305), derivación de claves (Argon2id) e intercambio de claves (Curve25519). May·Secret la utiliza mediante su versión WebAssembly directamente en el navegador.
Nonce
"Number used once" — un valor generado aleatoriamente para cada operación de cifrado, que garantiza que cifrar dos veces el mismo archivo con la misma clave produzca resultados diferentes. Indispensable para la seguridad de los algoritmos de cifrado simétrico modernos.
RSA 256 bits (RS256)
RS256 combina el algoritmo RSA con la función de hash SHA-256 para firmar los tokens JWT. El servidor firma el token con una clave privada RSA; cualquier servicio puede verificar su autenticidad con la clave pública correspondiente, sin tener nunca acceso a la clave privada.
Sal criptográfica (salt)
Una sal es un valor aleatorio único asociado a cada usuario, combinado con su contraseña antes de ser procesado por una función de derivación como Argon2id. Esto impide que un atacante use tablas precalculadas (rainbow tables) para recuperar contraseñas en masa.
XChaCha20-Poly1305
XChaCha20-Poly1305 es un algoritmo de cifrado autenticado (AEAD) que combina el cifrado de flujo ChaCha20 (variante de nonce extendido) con el código de autenticación Poly1305. Garantiza tanto la confidencialidad (nadie puede leer los datos) como la integridad (cualquier alteración del archivo cifrado se detecta).