https 客户端(即浏览器)是如何校验公钥证书合法性的?

_泥巴_ 2017-12-01 03:53:16
在 https 通讯之前,需要经历握手阶段,描述如下:

第一步,爱丽丝给出协议版本号、一个客户端生成的随机数( Client random ),以及客户端支持的加密方法。

第二步,鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数( Server random )。

第三步,爱丽丝确认数字证书有效,然后生成一个新的随机数( Premaster secret ),并使用数字证书中的公钥,加密这个随机数,发给鲍勃。

第四步,鲍勃使用自己的私钥,获取爱丽丝发来的随机数(即 Premaster secret )。

第五步,爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数,生成"对话密钥"( session key ),用来加密接下来的整个对话过程。

具体可见阮一峰老师博客的文章: http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html

我的问题是,如果在第二步,我截获了鲍勃给爱丽丝的证书,然后给爱丽丝是我自己的数字证书,但是这个证书也是权威机构签发的,那么,爱丽丝在第三步,如何确认这个数字证书,不是由鲍勃发的?比如现实中的一种情况是,我进行域名劫持,然后我将我的证书发给爱丽丝,然后窃取她的账号密码等。
...全文
1043 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lszxw1234 2020-12-25
  • 打赏
  • 举报
回复 2
第三步确认的时候,客户端会向CA确认证书的有效性。 浏览器发起 HTTPS 请求时,服务器会返回网站的 SSL 证书,浏览器需要对证书做以下验证: 验证域名、有效期等信息是否正确。证书上都有包含这些信息,比较容易完成验证; 判断证书来源是否合法。每份签发证书都可以根据验证链查找到对应的根证书,操作系统、浏览器会在本地存储权威机构的根证书,利用本地根证书可以对对应机构签发证书完成来源验证; 判断证书是否被篡改。需要与 CA 服务器进行校验; 判断证书是否已吊销。通过CRL(Certificate Revocation List 证书注销列表)和 OCSP(Online Certificate Status Protocol 在线证书状态协议)实现,其中 OCSP 可用于第3步中以减少与 CA 服务器的交互,提高验证效率 以上任意一步都满足的情况下浏览器才认为证书是合法的。

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧