2017-07-03 90 views
0

我的问题是关于不可否认在TLS与使用Java密钥库和信任库中。位于密钥库和信任库内的根和中间证书,他们验证另一个证书。如果他们被操纵,他们可能会验证错误的证书。保护的根和中级证书密钥存储传输层安全(TLS)

通常生成一个新的证书时的认证中心检查信任链,并认为如果证书与右中间和根证书来。但是如果攻击者操纵证书呢?

如果攻击者可以破解密码将它随后可能对他是不可能更改的证书?

我知道一个改进是使用一个更好的散列,例如,使用SHA-512,而不是SHA-256。另一个将确保证书只能来自某个证书颁发机构。

是否有其他已知的保护根和中间证书的改进措施?

TLS有其他限制吗?

回答

2

位于密钥库和信任库内的根证书和中间证书证明了另一证书。如果他们被操纵,他们可能会验证错误的证书。

信任库包含接受的证书颁发机构(CA)的根证书。通常它不包含中间证书。信任库必须保持安全,因为如果被操纵(如您所说),您可以接受不需要的证书。

密钥库包含客户端证书,而不是可信任的证书。

正常情况下,当生成新证书时,证书颁发机构会检查信任链,并查看证书是否带有正确的中间和根证书。但是如果攻击者操纵证书呢?

证书颁发机构不检查任何链。您向CA提供CSR(证书签名请求),该证书是使用您的私钥签署的证书请求。 CA生成证书,用CA的私钥签名,并将证书和链接返回给您。请参阅Certificate enrollment process

攻击者无法操作证书,因为它不拥有CA的私钥,并且使用受信任根的公钥进行验证将失败。

如果攻击者可以破解密码,那么他可能无法更改证书吗?

证书是公开的。相应的私钥是私有的。证明你拥有一个证书是与私人执行数字签名。因此,要“攻击”证书,攻击者需要私钥。(私钥可以用密码保护,但这与私钥存储有关)

我知道一个改进就是使用更好的散列,例如使用SHA-512而不是SHA -256。

我觉得这不是问题

相关的另外一个会,以确保证书只能来形成特定的证书颁发机构。

当然,这是信任库的目的。 证书被添加到信任的方式是TLS范围之外

是已知TLS有其他限制?

请详细说明...