我觉得我完全忽略了Wildfly中新的JCEKS密钥库格式。也许你可以让我直截了当。
我们配置Wildfly的方式(以及互联网的大部分内容指示我们,for example):
这完成了什么呢?
如果我们只使用嵌入在standalone.xml中的JKS文件和密码,系统很容易受到:
如果我们按照描述的方式使用JCEKS容器,系统容易受到:
如果我们将实际的证书放在JCEKS文件中,这将是有意义的,在这种情况下,暴力和查找表攻击在第二种攻击情况下会更难,但到目前为止我还没有找到直接使用带有https连接器的JCEKS格式密钥库的方法。
真的,我对此过分关注的唯一原因是我们显然有使用“保险库”的安全要求,但这似乎毫无意义。
更新:值得注意的是,通过使用保险库,您在jboss配置文件中使用了“屏蔽”密码到保险库,但我无法弄清楚这意味着什么。显然你的蒙面密码+盐+轮可以解锁JCEKS密钥库(source),所以我不确定完全屏蔽完成的是什么。它似乎是第三级重定向。我得错过一些东西......
答案 0 :(得分:1)
JBoss声称" vault"背后的安全机制是默默无闻的安全(https://developer.jboss.org/wiki/JBossAS7SecuringPasswords)
这有多安全?
- 保管库的默认实现可以使用Java KeyStore。它的配置使用基于密码的加密,这是默默无闻的安全性。这不是100%的安全性。它只是摆脱了配置文件中明文密码的问题。总是存在薄弱环节。 (正如mentallurg在评论中所说,密钥库密码是最薄弱的环节)。
- 理想情况下,第三方ISV强大的保险柜实施应提供必要的安全保障。
Vault使用未知密码,算法会对密钥库密码执行对称加密。如果没有HSM,您将始终面临"存储例如数据源密码"的问题。因此,通常您使用Access-Control-List定义属性文件并在其中存储编码密码。
保险库只会增加获取安全密码的工作量,让攻击者可以读取内存中的pw或者对Vault加密算法+密钥进行反向工程。
答案 1 :(得分:1)
了解" vault"背后的安全机制非常重要。是默默无闻的安全,这意味着你只是掩盖你的感觉数据。这意味着如果攻击者可以访问您的standalone.xml和密钥库,他就可以轻松读取您的所有数据。 金库"增加努力" - >攻击者不能直接看到它们,而是通过一些(一点点的)努力。