10.11. 用于敏感字符串的密码库

10.11.1. 关于保护明码文件里的敏感字符

Web 应用程序和其他部署经常含有明码文件,如 XML 部署描述符,其中包含敏感信息如密码和其他敏感字符串。JBoss EAP 6 包含一个密码库(Password Vault)机制,可以让你加密敏感信息并将其存储在一个加密的密钥库(Keystore)里。这个库机制管理解密用于安全域、安全区或其他验证系统的字符串。这提供了一个额外的安全层。这个机制依赖于被支持的 JKD 实现里包含的一些工具。

警告

我们在 JBoss EAP 6 里使用库安全功能时遇到了问题。在使用 IBM JDK 时,我们发现 vault.keystore 生成的 Sun/Oracle keytool 不是有效的密钥库。这是由于不同的 Java 供应商里 JCEKS 密钥库实现是不同的。
当 Oracle Java 生成的密钥库用于 IBM Java 上的 JBoss EAP 实例时就会出现这个问题。此时服务器不会启动并抛出如下异常:
java.io.IOException: com.sun.crypto.provider.SealedObjectForKeyProtector
目前,唯一的变通办法是在使用 IBM Java 实现的环境里避免用 Oracle keytool 来生成密钥库。