Cómo funciona el cifrado
Todo el cifrado de InfoCifrada cabe en treinta líneas de código y tres funciones, sin una sola dependencia externa. Esta página lo explica entero, porque un producto que promete confidencialidad debería poder enseñar exactamente cómo la consigue.
El recorrido de un secreto, paso a paso
base64(iv + tag + criptograma) en un único campo.
Las tres funciones
Derivar la clave
La contraseña que teclea una persona no sirve directamente como clave criptográfica: es corta y previsible. PBKDF2 la convierte en una clave de 32 bytes repitiendo la operación 200.000 veces. Ese número es la defensa contra la fuerza bruta: cada intento de adivinar la contraseña le cuesta al atacante 200.000 operaciones de hash, no una. Es el orden de magnitud que recomiendan OWASP y NIST.
Cifrar
Se usa AES-256-GCM, el estándar de cifrado autenticado. Tiene tres propiedades que importan aquí:
- Vector de inicialización aleatorio en cada operación. Cifrar dos veces el mismo texto produce dos resultados distintos, así que un atacante no puede deducir que dos entradas contienen la misma contraseña.
- Etiqueta de autenticación de 16 bytes. GCM no solo cifra: firma. Si alguien modifica un solo bit del dato cifrado en la base de datos, el descifrado falla en vez de devolver basura. Es detección de manipulación, no solo confidencialidad.
- Formato compacto y autocontenido. Vector, etiqueta y criptograma viajan juntos en un único campo de texto. No hay columnas auxiliares que puedan desincronizarse.
Descifrar
Devuelve el texto original, o nada si la contraseña es incorrecta, si el dato está corrupto, si la codificación es inválida o si el paquete es demasiado corto. Nunca lanza una excepción y nunca devuelve texto parcial: o el secreto entero, o nada.
La regla de oro: la contraseña de bóveda no se almacena
La contraseña de bóveda no se guarda en la base de datos, ni en la sesión, ni en las cookies, ni en los registros de auditoría. Se teclea, se usa en memoria durante milisegundos y desaparece.
De ahí sale la afirmación que sostiene todo el producto: ni el administrador del sistema, ni el proveedor del software, ni quien robe una copia completa de la base de datos pueden descifrar los datos de un usuario.
Y hay que decir la contrapartida por delante: si un usuario olvida su contraseña de bóveda, sus datos son irrecuperables. No hay administrador, ni proveedor, ni procedimiento de soporte que pueda recuperarlos. Eso no es un defecto —es la prueba de que el cifrado es real. Si existiera una forma de recuperarlos, existiría una puerta trasera, y entonces también la tendría quien no debe.
Qué obtiene un atacante que roba la base de datos
| Campo | Qué obtiene el atacante |
|---|---|
| Título | Texto en claro — «Servidor de producción» |
| Descripción | Texto en claro |
| Palabras clave | Texto en claro — «linux, ssh» |
| Contraseña secreta | Ruido criptográfico |
| Texto secreto | Ruido criptográfico |
| Contraseña de acceso del usuario | Hash bcrypt, no reversible |
Los metadatos van en claro por diseño: son los que permiten listar y buscar sin descifrar nada. La recomendación operativa es sencilla y está en el manual: no pongas información sensible en el título. «Banco — cuenta principal» está bien; «Banco — cuenta ES12 3456…» no.
El salt de instalación
Cada instalación genera, una sola vez, una cadena aleatoria que participa en la derivación de la clave. Vive en un fichero de configuración que nunca se versiona ni se comparte, y se rige por tres reglas que no admiten excepción:
Nunca se cambia
Cambiarlo invalida todos los registros cifrados de todos los usuarios, de forma irreversible.
Se custodia fuera del servidor
En la caja fuerte de claves de la organización, separado de la copia de seguridad de la base de datos.
Viaja con los datos
Restaurar una copia de la base de datos en otro servidor sin el mismo salt equivale a no restaurar nada.
Doce comprobaciones que se pueden ejecutar delante de ti
El proyecto incluye una batería de pruebas autónoma, sin dependencias, que se lanza con una sola orden. Comprueba doce propiedades del motor criptográfico:
- El descifrado recupera exactamente lo cifrado.
- Una contraseña incorrecta devuelve vacío, no basura.
- Dos cifrados del mismo texto dan resultados distintos.
- Unicode completo sobrevive intacto:
ñÑçÇ€ 中文 🔐. - Un texto de 56 KB sobrevive intacto.
- El texto vacío sobrevive.
- Una codificación inválida devuelve vacío.
- Un paquete demasiado corto devuelve vacío.
- Un criptograma manipulado devuelve vacío — GCM detecta el cambio de un solo bit.
- Contraseñas distintas derivan claves distintas.
- La clave derivada mide exactamente 32 bytes.
- La ida y vuelta funciona con caracteres de control.
Si el interlocutor es técnico, ejecutamos esa batería en pantalla durante la demo. Un cifrado verificado vale más que un cifrado declarado.
¿Quieres ver el campo cifrado con tus propios ojos?
Es el paso 3 de la demo, y suele ser el momento en que la conversación cambia de tono.
Solicitar una demo