HTTPS协议交互过程

在HTTPS协议中,第一步A作为客户端去获取B作为网站的公钥(B-public-key)。

怎么获取?如果我们认为网络不可信,那么我们就需要找一个可信的中间人,第三方权威机构G,由它来证明,我们网站B返回客户端A的公钥(B-public-key),的确来自于B,中间没有被其他人篡改。

这意味着网站B不能直接返回自己的公钥(B-public-key)给客户端A,而是需要返回由权威机构G做了数字签名的公证书(简称数字证书),里面记录了网站B的域名,和对应的公钥(B-public-key), 还有证书的颁发人G的代号。

这张数字证书的在作用是什么?最重要的并不是它怎么在网络上传递。而是它记录了这样的一个事实:域名domain对应的公钥是B-public-key, 它是由权威机构G做出的公证,因为上面有G的数字签名。

所以这张数字证书并不需要临时生成,而是提前在网站部署时就已经生成好了,而且也可以随意传递给任何人,因为它是完全公开的信息。

当然这里还有一个前提,我们客户端A已经拥有第三方权威机构G的公钥(G-public-key)了。整个过程如下:

  * 客户端A向网站B请求网站的数字证书。

  * 网站B返回它的数字证书。

  * 客户端A收到数字证书,用G-public-key验证该数字证书的确由权威机构G认证,于是选择相信证书里面的(domain, public-key)

     信息。

  * 客户端A检查证书中的domain, 和我们要访问的网站B域名是否一致。如果不一致,那么说明数字证书虽然是真的,但是是别人

     找权威机构G认证的其他域名的证书,于是会话结束; 如果一致,于是相信证书中的public-key就是网站B的公钥(B-public-key)。

 

有了B-public-key,客户端A就可以愉快地上网,不必担心网络通讯地安全了。

但是,HTTPS并不能完全解决钓鱼问题。它假设用户对要访问地网站域名(domain)可靠性由自己地判断力。

这当然并不全是事实。所以,高级一点的浏览器,它会简历不靠谱网站域名的数据库,在用户访问这些网站时进行风险提示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值