最近在看 https 方面的内容,遇到一个不懂的问题,发帖求助一下:
在 https 通讯之前,需要经历握手阶段,描述如下:
第一步,爱丽丝给出协议版本号、一个客户端生成的随机数( Client random ),以及客户端支持的加密方法。
第二步,鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数( Server random )。
第三步,爱丽丝确认数字证书有效,然后生成一个新的随机数( Premaster secret ),并使用数字证书中的公钥,加密这个随机数,发给鲍勃。
第四步,鲍勃使用自己的私钥,获取爱丽丝发来的随机数(即 Premaster secret )。
第五步,爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数,生成"对话密钥"( session key ),用来加密接下来的整个对话过程。
具体可见阮一峰老师博客的文章: http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html
我的问题是,如果在第二步,我截获了鲍勃给爱丽丝的证书,然后给爱丽丝是我自己的数字证书,但是这个证书也是权威机构签发的,那么,爱丽丝在第三步,如何确认这个数字证书,不是由鲍勃发的?比如现实中的一种情况是,我进行域名劫持,然后我将我的证书发给爱丽丝,然后窃取她的账号密码等。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.