繁体   English   中英

将相同的密钥库用于信任库和服务器库时的安全性问题?

[英]Security issue when using the same keystore for trust store and server store?

将相同的密钥库用于信任存储区(用于验证客户端的证书)和服务器存储区(服务器使用的私钥)时是否存在安全问题? 我之所以这样问,是因为我知道建议您有两个单独的文件(我想知道为什么会这样)。

我知道建议您有两个单独的文件(用于信任存储和服务器存储)

提出此建议的原因是,通常您仅将公共密钥和受信任CA的相关证书存储在信任库中,而密钥库用于存储私钥和相关的公共密钥(以及相关证书)。

当您开始将这两个文件作为一个文件进行管理时,知道信任库密码的任何代理(用户甚至应用程序代码)都很有可能也可以读取和修改密钥库的私钥。 这不是您想要的,因为私钥本质上应该是私有的,并且仅对单个实体(拥有密钥的实体)知道。

同样,代理也可以通过了解密钥库密码来修改信任库,以将证书添加到信任库。 单独看似良性,但通常多个客户端可以使用相同的信任库(例如JRE的cacerts文件),从而导致一种情况可能会毒化信任关系(通过将恶意CA的证书添加到其中)客户端和服务器之间的信任库)。

实际上,除非您的代理人不值得信任(否则您应该采用其他几种做法),否则建议通常是纵深防御做法。

有一个安全问题,但我认为建议的大多数原因是逻辑上的责任分离。 密钥库和信任库

使用两个不同的文件而不是单个密钥库文件可以使您自己的证书(和相应的私钥)与其他人的证书之间的逻辑区别更加清晰地分开。 如果将私钥存储在访问受限的密钥库中,则可以为私钥提供更多保护,而如果需要,则可以在可公开访问的密钥库中提供可信证书。

此处的关键安全点是,通过将受信任的(公共)证书与包含私钥的自己的证书分开,您可以使用您认为必要的任何级别的限制来保护自己的私钥,同时使受信任的证书保持公开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM