首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在密钥存储传输安全层(TLS)中保护根和中间证书

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

Stack Overflow用户
提问于 2017-07-03 13:48:49
回答 1查看 144关注 0票数 0

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

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

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

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

是否还有其他保护根和中间证书的改进?

TLS还有其他限制吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-03 15:06:12

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

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

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

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

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

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

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

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

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

我认为这与问题无关

另一种方法是确保证书只能来自某些证书颁发机构。

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

TLS还有其他限制吗?

请详细说明..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44887246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档