gpt4 book ai didi

java - 在 keystore 传输安全层 (TLS) 中保护根证书和中间证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:02 25 4
gpt4 key购买 nike

我的问题是关于使用 Java keystore 和信任库的 TLS 中的不可否认性。根证书和中间证书位于 keystore 和信任库中,它们验证另一个证书。如果他们被操纵,他们可能会验证错误的证书。

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

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

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

是否有任何其他已知的改进来保护根证书和中间证书?

TLS 是否还有其他已知限制?

最佳答案

The root and intermediate certificate located inside the keystore and truststore, they verify another certificate. If they are manipulated they could potentially verify a wrong certificate.

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

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

Normally when generating a new certificate the certificate authority checks the chain of trust and sees if the certificate is coming with the right intermediate and root certificate. But what if the attacker manipulates the certificate as well?

证书颁发机构不检查任何链。您向 CA 提供 CSR(证书签名请求),这是一个用您的私钥签名的证书请求。 CA 生成证书,使用 CA 的私钥对其进行签名,然后将证书和链返回给您。参见 Certificate enrollment process

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

if the attacker could hack the password would it then potentially for him not be possible to change the certificate?

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

I know one improvement is to use a better hashing, for example, using SHA-512 instead of SHA-256.

我认为这与问题无关

Another one would to make sure that the certificates can only come form certain certificate authority.

当然,这就是truststore的目的。 将证书添加到信任库的方式超出了 TLS 的范围

Are there other limitations known to TLS?

请详细...

关于java - 在 keystore 传输安全层 (TLS) 中保护根证书和中间证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44887246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com