前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >客户端如何验证证书的合法性

客户端如何验证证书的合法性

原创
作者头像
:Darwin
发布2023-08-09 20:49:35
1K0
发布2023-08-09 20:49:35
举报
文章被收录于专栏:WorkLogsWorkLogs

CA(Certificate Authority) 证书颁发机构对证书进行签名,可以避免中间人在获取证书时对证书内容进行篡改。

证书签名流程

  • 打包:CA 会把持有者的公钥,用途,颁发者,有效时间等信息进行打包,然后对这些信息进行Hash计算,得到一个Hash值。
  • 签名:然后CA用自己的私钥将该 Hash 值加密,生成 Certificate Signature
  • 添加:将 Certificate Signature 添加到证书文件中,形成数字证书

客户端验证

  • 打包:客户端使用相同的Hash算法,对证书信息进行打包,hash计算,得到一个hash值 H1
  • 公钥解密:使用CA机构的公钥对数字证书 Certificate Signature 内容进行解密,得到hash值 H2
  • 比较:如何H1和H2的值相同,则为可信证书

ps. 浏览器和操作系统通常会集成CA的公钥信息。

证书信任链

通过浏览器打开zhihu.com,baidu.com的证书详细信息,可以看到它们的证书层次结构:

代码语言:txt
复制
# zhihu.com
DigiCert Global Root CA
    GeoTrust CN RSA CA G1
        *.zhihu.com

# baidu.com
GlobalSign
    GlobalSign RSA OV SSL CA 2018
        baidu.com

会存在中间证书来给域名证书签名,而非根证书直接对域名证书签名。

证书信任链验证流程:

  • 客户端拿到域名证书,发现证书签发者不是根证书。然后客户端根据域名证书颁发者从 服务端发送过来的证书链或者操作系统/浏览器本地获取
  • 客户端请求中间证书,发现其颁发者是根证书。然后从操作系统/浏览器本地获取根证书的公钥,验证中间证书,验证通过则中间证书可信
  • 中间证书可信之后,客户端拿到中间证书的公钥再去验证域名证书是否可信。

三级证书结构为什么更安全

1.降低证书被伪造的风险

三级结构将CA分为根CA和中级CA。攻击者想要伪造证书,需要伪造三级CA的签名,难度大大增加。

2.更好的密钥管理

根CA负责签发子CA证书,不直接签发服务器证书。如此可以使用更强的密钥保护根CA,并轮换子CA密钥。

3.证书撤销更灵活

若中级CA证书被破坏,可以选择撤销该中级CA,而不影响信任链中其他CA,避免大规模证书撤销。

4.分散信任链

不同中级CA可交叉签名,防止单一CA损害导致整个链失效。

5.区分业务范围

不同中级CA可颁发不同用途的证书,进行业务隔离。

6.更好的扩展性

新增的证书服务可以通过新增中级CA扩展,而不需要重新配置信任的根CA。

7.隔离内外网证书

内网证书可使用独立的中级CA,与公共CA分离,降低证书遭破坏的风险。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 证书签名流程
  • 客户端验证
  • 证书信任链
  • 三级证书结构为什么更安全
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档