Almacenamiento de claves

LIBP-0256 (Libro de pautas)

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ítuloCarácter
Frases de pasoRecomendada
Almacenamiento de claves en el código fuenteNo Recomendada
Acceso restringido a las clavesObligatoria
Información para descifrar los datosObligatoria
Almacenamiento de claves en base de datosObligatoria

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