Los límites de la protección mediante el cifrado de contraseña
Liberty soporta el cifrado Advanced Encryption Standard (AES) para las contraseñas que están almacenadas en el archivo server.xml. Al utilizar esta opción para proteger contraseñas del sistema en la configuración de Liberty, tendrá que comprender los límites en la protección que proporciona.
El cifrado de una contraseña en la configuración de Liberty no garantiza que la contraseña sea segura o esté protegida; solo significa que alguien que puede ver la contraseña cifrada, pero no conoce la clave de cifrado, no puede recuperar la contraseña fácilmente. El proceso de servidor de aplicaciones requiere el acceso a la contraseña cifrada y a la clave de descifrado, de modo que se tienen que almacenar estos elementos de datos en el sistema de archivos que es accesible para el entorno de ejecución del servidor. La clave de cifrado es necesaria también para quien cifra una contraseña colocada en la configuración de servidor. Para un atacante que tiene acceso a exactamente el mismo conjunto de archivos que la instancia del servidor Liberty, la aplicación del cifrado AES a la contraseña no proporciona, por lo tanto, ninguna seguridad adicional en o sobre la codificación "exclusive or" (XOR).
- Las contraseñas no son confidenciales, por lo que codificarlas les proporciona poco valor.
- Las contraseñas son confidenciales, de modo que ya sean los archivos de configuración que contienen la contraseña son confidenciales de seguridad y es necesario controlar el acceso, o bien las contraseñas están cifradas y la clave de codificación está protegida como confidencial de seguridad.
Se puede sustituir el valor predeterminado de la clave de cifrado utilizado para descifrar estableciendo la propiedad wlp.password.encryption.key. Esta propiedad no se debe establecer en el archivo server.xml que almacena la contraseña, sino en un archivo de configuración independiente que se incluye mediante el archivo server.xml. Este archivo de configuración independiente solo debe contener una única declaración de propiedad y se debe almacenar fuera del directorio de configuración normal para el servidor. Esto garantiza que el archivo que contiene la clave no está incluido cuando ejecuta el vuelco del servidor o el mandato package. La propiedad de clave de cifrado se puede especificar también como una propiedad de programa de arranque. Si elige esta opción, coloque la clave de cifrado en un archivo de propiedades separado que está incluido en el archivo bootstrap.properties del servidor.
Para obtener información sobre cómo utilizar XOR o AES para proteger las contraseñas consulte los enlaces relacionado, especialmente securityUtility, mandato.