Almacenamiento de claves
- Área: Cifrado
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
Se deben tener en cuenta las siguientes recomendaciones para el almacenamiento de claves de forma segura.
La criptografía depende de las claves para asegurar la identidad del usuario, proporcionar confidencialidad e integridad, así como también no-repudio.
Es vital que las claves estén adecuadamente protegidas. Si una clave fuera comprometida, no se podría confiar en ella. Cualquier sistema que haya sido comprometido de alguna manera debería reemplazar todas sus claves de cifrado.
Se deben seguir las siguientes pautas para proteger de manera adecuada las claves:
Pautas
Título | Carácter |
---|---|
Frases de paso | Recomendada |
Almacenamiento de claves en el código fuente | No Recomendada |
Acceso restringido a las claves | Obligatoria |
Información para descifrar los datos | Obligatoria |
Almacenamiento de claves en base de datos | Obligatoria |
Frases de paso
Almacenar en lugares físicos seguros las frases de paso.
Las frases de paso utilizadas para proteger las claves deberían ser almacenadas en lugares físicos seguros.
En algunos entornos podría ser necesario dividir la frase de paso o contraseña en dos componentes de tal manera que fuesen necesarias dos personas para autorizar el acceso a la clave. Este proceso físico / manual debería ser ligeramente monitorizado y controlado.
Almacenamiento de claves en el código fuente
No almacenar claves dentro del código fuente o binarios.
Controlar que no se realice el almacenamiento de claves dentro del código fuente o binarios.
Esto no sólo tiene consecuencias si los desarrolladores tienen acceso al código fuente sino que, además, la administración de claves sería casi imposible.
Acceso restringido a las claves
Restringir el acceso a los ficheros de configuración.
En la mayoría de los entornos web se utilizan ficheros de configuración para almacenar usuarios y claves de las aplicaciones. Debe restringirse el acceso a estos ficheros para evitar que otras aplicaciones, servidores o usuarios mal intencionados puedan acceder a los mismos.
Información para descifrar los datos
Guardar la información necesaria para descifrar los datos, excepto la clave
En determinados casos, es necesario almacenar datos que serán obtenidos y desencriptados posteriormente desde el servidor web.
Para que esto pueda realizarse, debemos guardar la información necesaria para descifrar los datos (algoritmo, modo de cifrado, inicialización del vector), excepto la clave, junto con la información cifrada.
Almacenamiento de claves en base de datos
Almacenar las claves cifradas en base de datos
Las contraseñas deben almacenarse siempre cifradas en base de datos, empleando un mecanismo de cifrado irreversible, como por ejemplo una función hash.
Contenidos relacionados
Código | Título | Tipo | Carácter |
---|---|---|---|
RECU-0581 | Almacenamiento de las contraseñas en PHP | Ejemplo | Obligatorio |
RECU-0584 | Almacenar datos encriptados en una base de datos o un fichero en PHP | Ejemplo | Obligatorio |
RECU-0669 | Uso de claves en el código fuente | Ejemplo | No recomendado |