繁体   English   中英

在密钥库传输安全层(TLS)中保护根证书和中间证书

[英]Protecting the root and intermediate certificate in keystore Transport Security Layer (TLS)

我的问题是关于使用Java密钥库和信任库的TLS中的不可否认性。 位于密钥库和信任库中的根证书和中间证书,它们会验证另一个证书。 如果对它们进行操作,则可能会验证错误的证书。

通常,在生成新证书时,证书颁发机构将检查信任链,并查看证书是否随附正确的中间证书和根证书。 但是,如果攻击者也操纵证书怎么办?

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

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

已知还有其他改进可以保护根证书和中间证书吗?

TLS还有其他限制吗?

位于密钥库和信任库中的根证书和中间证书,它们会验证另一个证书。 如果对它们进行操作,则可能会验证错误的证书。

信任库包含接受的证书颁发机构(CA)的根证书。 通常它不包含中间证书。 信任库必须保持安全,因为如果对其进行了操作(如您所说),您可能会接受不需要的证书。

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

通常,在生成新证书时,证书颁发机构将检查信任链,并查看证书是否随附正确的中间证书和根证书。 但是,如果攻击者也操纵证书怎么办?

证书颁发机构不检查任何链。 您向CA提供CSR(证书签名请求),这是用您的私钥签名的证书请求。 CA生成证书,并用CA的私钥对其进行签名,然后将证书和链返回给您。 请参阅证书注册过程

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

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

证书是公开的。 对应的私钥是私钥。 要证明您拥有证书,就是要与私人进行数字签名。 因此,要“破解”证书,攻击者需要私钥。 (私钥可以用密码保护,但这与私钥的存储方式有关)

我知道一种改进是使用更好的哈希,例如,使用SHA-512而不是SHA-256。

我认为这与问题无关

另一个将确保证书只能来自某些证书颁发机构。

当然,这是信任库的目的。 将证书添加到信任库的方式不在TLS范围内

TLS还有其他限制吗?

请详细说明...

暂无
暂无

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

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