通过密码加密进行保护时存在的限制
Liberty 概要文件支持对存储在 server.xml 文件中的密码进行高级加密标准 (AES) 加密。当您使用此选项来保护 Liberty 概要文件配置中的系统密码时,您需要了解它所提供的保护存在的限制。
对 Liberty 概要文件配置中的密码进行加密并不保证密码是安全的或者受保护的;它仅仅意味着可以查看加密密码、但是不知道加密密钥的人员无法轻易恢复密码。应用程序服务器流程要求访问加密密码和解密密钥,因此,这些数据项都需要存储在服务器运行时环境可访问的文件系统上。对放置在服务器配置中的密码进行加密的人员也需要加密密钥。对于能够访问与 Liberty 概要文件服务器实例所访问的完全相同的一组文件的攻击者,对密码应用 AES 加密,因此,除了“异或”(XOR) 编码以外,未提供其他安全性。
但是,还有一些原因会导致您可能考虑对 Liberty 概要文件配置中的密码进行加密。Liberty 概要文件配置设计为高度可组合且可共享。完整概要文件的管理子系统(管理控制台和 wsadmin 脚本编制)可防止管理员获得采用 XOR 编码的密码的访问权。Liberty 概要文件设计为未配置管理子系统,因此,任何管理员都可以看到任何采用 XOR 编码的密码。对于这些设计功能部件,考虑下列情况:
- 密码不具有机密性,因此对它们进行编码几乎没有价值。
- 密码具有机密性,因此,包含密码的配置文件对安全性敏感并且需要控制访问权,或者已对密码进行加密,并且编码密钥因对安全性敏感而受到保护。
通过设置 wlp.password.encryption.key 属性,可以使用缺省密钥来覆盖用于解密的加密密钥。不应在用于存储密码的 server.xml 文件中设置此属性,而是在 server.xml 文件所包括的单独配置文件中设置此属性。此单独配置文件应当只包含单个属性声明,并且应当存储在服务器的正常配置目录外部。这将确保当您运行服务器转储或打包命令时不包括包含此密钥的文件。还可以将加密密钥属性指定为引导属性。如果您选择此选项,那么应将加密密钥放入服务器 bootstrap.properties 文件中所包括的单独属性文件中。
有关使用 XOR 或 AES 来保护密码的信息,请参阅相关链接,尤其是 securityUtility 命令。