淘宝,你家证书过期了。。

此文转载自微信公众号:差评(ID:chaping321)喜欢就关注下咯!

差评君昨天闲来无事想上个淘宝,结果发现浏览器报了个问题,说链接不安全。。。


上网搜了搜,发现不止差评君一个人遇到这个问题。


背后的原因很明显:证书过期了。


这个证书。。。准确地说,是数字证书。


干嘛用的呢?


自我证明:证明你上的淘宝网真的是淘宝网。


你可能会好奇,淘宝网的域名 www.taobao.com 这么多年下来都没变过,有啥好证明的???


一般来说,上网的时候用的是 HTTP 协议访问网页。


你在地址栏输入网址,再按下回车的过程,实际上是通过浏览器发送一个请求。


服务器收到请求以后,会还给你一个网页文件,一般来说长这样。


浏览器会把这一串密密麻麻的东西,转化成这个样子⬇️


黑客获得你的网络权限以后,可以在你输入 www.taobao.com 并回车时,把请求截取,然后还给你个调包过的文件。


这个文件可以是个钓鱼页面,在不知情的时候往里输入账号密码的话,就完蛋了。


以前访问网站的时候,用的是 HTTP ,“ 超文本传输协议 ” ,网站的开头是 " http:// " 起始。


后来工程师们觉得这不安全,有类似上面提到的调包风险,就在 HTTP 上添加了一层加密算法,并命名为 HTTPS , “ 超文本传输安全协议 ” 。


数字证书一般是由一些权威机构颁发的,这些机构叫 CA ( Certificate Authority )


京东的证书签发者⬇️


CA 就好比是给人发身份证的机构,权威性非常高。


一家网站申请证书时,CA 要去仔细审查这家网站,同时再给这些网站配一套加密工具 ( 公钥和密钥 )


这就类似公安审查一个新生儿的状况,然后给他/她添加户口。


浏览器会记住这些证书颁发机构,保存起来。


当你访问淘宝网时,淘宝网会给浏览器( 也就是客户端 )看自己的证书,同时把上文提到的加密工具里的 “ 公钥 ” 一起发过去,类似出示身份证。


浏览器接收到证书之后,会拿着证书找颁发机构验证一下,这一步类似找公安网络验证身份证。


验证有效以后还没完,这只能证明证书是有效的而已,但万一是顶替的呢?


随后浏览器掏出发来的公钥,加密一段消息,和淘宝网通信一下,如果是真的淘宝网,对方有 “ 公钥 ” 对应的 “ 私钥 ” 来解密。


这个过程叫做非对称加密,常见的算法有 RSA 。


实际情况比差评君描述的还要复杂:


数字证书可能会被篡改,因此还需要数字签名来验证证书没被篡改过。


RSA 算法的背后,是美丽的数学和伟大的工程实现。


总而言之,访问淘宝网不只是简单的输入地址到达目的地,事实上这个过程中简直演了一出谍战戏。


HTTPS 这一套方案很有效,现在也被广泛使用,一些主流浏览器,例如谷歌的 Chrome 从去年开始把所有的 HTTP 标记为不安全。


当然,这是一个工程方案,肯定存在短板。


首先,也是这次淘宝网碰到的问题:忘记续费的话,就会被标记为不安全。。。


这次的过期日子是 11 月 22 日,也就是周四,然而他们应该是忘记及时续上了。


那能不能一次性买个几十年?


也不是不行,这样就不用惦记着续了。


但是万一颁发的 CA 出了什么幺蛾子,这钱就花冤枉了;而且同一套加密用很久不更新,挺不安全的。


因此像淘宝网这种正规大型网站,都是一年一续。


其次是。。。 CA 说白了还是一套中心化管理,也就是默认大家相信一个权威。


但这个权威其实是收钱办事的,万一为了利益倒卖证书,或者和几个合作的巨头联合打压竞争对手,那信用体系就崩坏了。


赛门铁克 ( 杀毒软件诺顿的开发商 )就爆出过证书丑闻。


所以说,目前这一套系统不是没有问题,安全技术永远在阳光照不到的地方,和安全问题做着斗争。


这也是大家如此憧憬区块链技术的原因之一 --去中心化的加密在很多场景都会非常有用。


对于吃瓜群众来说,虽然你不用看懂证书,但碰到被浏览器标记为 “ 不安全 ” 的网站,还是要谨慎一些。



图片来源:

StudioRui Marketing

taobao.com

instant SSL

jd.com

参考资料:

Instant SSL

segmentfault @seanlook SSL/TLS原理详解

维基百科 “ HTTPS ”

V2EX 帖子 “ 淘宝,你家证书过期了。 ”

推荐↓↓↓
Web开发
上一篇:Web登录其实没那么简单 下一篇:轻松了解 Web 日志分析过程