Encriptación de la información sensible
- Área: Cifrado
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
Encriptar inmediatamente la información sensible.
Es necesario encriptar inmediatamente la información sensible o crítica antes de su almacenamiento o transmisión ya que la falta de cifrado de los datos provoca que no puedan asegurarse las garantías de confidencialidad, integridad y rendición de cuentas que transmite una adecuada aplicación del cifrado. Para mitigar esta situación se tendrán en cuenta las siguientes indicaciones.
Pautas
Título | Carácter |
---|---|
Datos a cifrar | Obligatoria |
Algoritmos criptográficos propios | No Recomendada |
Límite de confianza para datos sensibles | Obligatoria |
Encriptación de las contraseñas | Obligatoria |
Encriptación de los identificadores de sesión | Obligatoria |
Datos a cifrar
Especificar claramente los datos que deben cifrarse.
Debemos especificar claramente qué datos o recursos son suficientemente valiosos para ser protegidos mediante cifrado: identificaciones de usuario, contraseñas, números de tarjeta, etc.
Algoritmos criptográficos propios
No desarrollar algoritmos criptográficos propios.
No se deben desarrollar algoritmos criptográficos propios, ya que es probable que estén expuestos a ataques bien conocidos por criptógrafos.
Además, el algoritmo puedes verse comprometido si los atacantes saben cómo funciona, haciéndolo especialmente débil.
Límite de confianza para datos sensibles
Impedir que los datos sensibles salgan del límite de confianza.
Debemos compartimentar nuestro sistema para que tenga zonas "seguras" donde los límites de confianza puedan ser inequívocamente dibujados, de modo que se impida que los datos sensibles salgan de dicho límite de confianza. Además, debemos tener especial cuidado con la interfaz que maneja el compartimento fuera de la zona segura.
Encriptación de las contraseñas
Encriptar las contraseñas con claves de, al menos, 128 bits
Una contraseña debe ser encriptada para que no esté al alcance de posibles ataques, si no, es posible que sea vulnerable.
Las contraseñas deben ser encriptadas con claves que tengan, al menos, 128 bits de longitud para asegurar de forma adecuada la privacidad de la misma.
Encriptación de los identificadores de sesión
Concatenar la clave con otra información antes del cifrado
Es recomendable concatenar la clave con otra información, por ejemplo, el nombre del servidor, del usuario, etc. antes de procesarla.
Es bueno usar una función como hash() para almacenar un valor encriptado que no pueda ser revertido a la cadena original. No debe utilizarse hash() directamente en la clave, pues pueden escribirse programas que traten de adivinar esta información por ataques de fuerza bruta.
Contenidos relacionados
Código | Título | Tipo | Carácter | |
---|---|---|---|---|
LIBP-0311 | Gestión de la sesión | Libro de pautas | Directriz | Obligatoria |
Código | Título | Tipo | Carácter |
---|---|---|---|
RECU-0574 | Código vulnerable con contraseña sin encriptar | Ejemplo | Recomendado |
RECU-0581 | Almacenamiento de las contraseñas en PHP | Ejemplo | Obligatorio |
RECU-0593 | Encriptación de los identificadores de sesión en PHP | Ejemplo | Obligatorio |
RECU-0570 | Conexión sin encriptación de la información | Ejemplo | Obligatorio |