如何保护密钥库免受未经授权的访问

时间:2016-10-13 22:51:05

标签: java ssl certificate keystore

我正在研究TLS实现,并发现您可以使用任何密钥库或信任库而无需在Java客户端或服务器中提供任何密码。 它如何防止服务器身份被盗,有人可以从服务器复制密钥库并将其用作身份。如果使用了密码,那么我们可能会在密钥库中获得某种程度的安全性,以防止未经授权的访问。

以下链接提供了一个详细说明:

Do you not need a password to access a truststore (made with the java keytool)?

3 个答案:

答案 0 :(得分:1)

我得到了答案。 基本上,您可以在没有密码的情况下访问密钥库或信任,但这仅适用于访问证书。 如果你想从没有密码的密钥库访问私钥,你就不能这样做,因为私钥在密钥库中以加密格式保存,密钥库密码是密钥。

私钥是如何在密钥库文件中保密的。

答案 1 :(得分:0)

一般来说,您必须保证您的证书安全。可以轻松复制文件(和密码)。您可以使用加密硬件来存储证书并执行签名,以避免任何人窃取它们。

对于SSL证书,请注意它们已发布到域名或IP地址。因此,任何窃取您的证书的人都不能使用它,因为他没有您的DNS。如果他尝试使用其他域中的证书,浏览器将拒绝连接

答案 2 :(得分:0)

  

我正在开发TLS实现,并发现您可以使用任何密钥库或信任库而无需在Java客户端或服务器中提供任何密码。

这是不正确的。 Java KeyStore可以包含三种类型的条目:trusted;私钥;和密钥条目。

受信任条目的完整性受密钥库密码保护。但是,可以加载密钥库并使用可信条目而不检查密钥库的完整性。这样做会造成漏洞。

私钥和密钥条目的机密性受基于密码的加密保护。与受信任的条目不同,如果没有密码,则无法访问这些机密条目。您可以通过尝试在没有密码或密码错误的情况下恢复私钥来自己查看。