2016-10-13 85 views
-2

我正在研究TLS实现,并发现您可以使用任何密钥库或信任库,而无需在java客户端或服务器中提供任何密码。 它如何防止服务器身份被盗,其中某人只能从服务器复制密钥库并将其用作其身份。如果密码已经被使用,那么我们可能在密钥存储库上具有一定程度的安全性以防止未经授权的访问。如何保护密钥库免受未经授权的访问

一个详细的描述在下面的链接提供:

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

+0

如果有人能够到达您的密钥存储区,您就有更大的问题担心,因为他们也可以访问更重要的东西 –

+0

这是真的,但万一发生了什么保证密钥存储安全的条款。我们总是可以选择撤销证书并将其替换为新证书 – smallarv

+0

您可以将密码添加到密钥库 –

回答

0

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

SSL证书,请注意,他们已发出的域名或IP地址。因此,任何窃取您的证书的人都不会使用它,因为他没有拥有您的DNS。如果他试图使用来自其他域的证书,浏览器将拒绝连接

+0

对于SSL证书是真的,但什么ssl握手期间的主机名? – smallarv

+0

在客户端设备上没有安装站点证书。只有证书链的根。如果受信任的证书颁发者的根被攻击,攻击者可以为任何站点生成有效的证书。因此,这些证书是很好的保护。它们已被生成密码硬件,并存储在安全箱中,并且密码被分成两个或多个人共享的部分。如果您使用SSL自签名证书并将其安装到浏览器中,那么如果其在一个奇怪的网站中找到,它的hostame检查将失败。没有人可以替换您的网站,而不会黑客入侵DNS – pedrofb

+0

我指的是2种方式使用的客户端证书ssl – smallarv

1

我得到了这个答案。 基本上,您可以无密码地访问密钥库或信任列表,但仅适用于访问证书。 如果您想要从密钥库访问没有密码的私钥,则不能这样做,因为私钥在加密格式中保存在密钥库中,并且密钥库密码是其中的关键。

这就是私钥在密钥库文件中保密的方式。

0

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

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

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

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

相关问题