对浏览器村IE、火狐、Chrome的第二次采访

1

上一次由于IE老先生太激动, 没有机会采访下Chrome和火狐, 这回我们记者再次拜访浏览器村,先找到了Chrome , 不但做了个深度访谈,而且解决了HTTP中包裹的安全问题, 创造了一个新的包裹运输方式: HTTPS 。

没有看过上一篇文章的读者可以点击IE为什么把火狐和Chrome给打伤了?点击查看前(上)情(集)回(撕)顾(逼)

记者

Chrome你好, 久仰大名, 你能谈谈平时你是怎么做代理生意的吗?

Chrome

我看了你上次的访谈,老IE确实也挺可怜的,其实我和IE做生意的方式差不多,只是我更快,更稳定,更安全。

记者

此话怎讲?

Chrome

首先,主人每次委托我访问一个网站时, 我就会创建一个和我差不多的代理人(进程)来为主人服务,有多少个网站就有多少个代理人, 我只是居中调停, 要是某个网站崩溃了, 不会影响其他代理人。其次,我执行javascript的速度要比老IE快的多,估计你也听说过V8 引擎吧, 那速度简直是唰唰的。就是有人看到了这一点,才会把我的V8引擎放到服务器端去执行javascript ,创造了Node.js 。服务器端, 你造这意味着什么吗?

记者

不知道啊?

Chrome

这意味着需要支持多用户,大并发啊 , 这足以说明我执行的速度该有多快!

记者

厉害, 上次老IE给我介绍的时候, 他说你们就是收发包裹 , 我一直有个疑问, 你们的包裹传那么远, 难道就不怕被某些居心叵测的人拆开,做点坏事吗?

Chrome

你算问道点子上了, 最近闹得沸沸扬扬的运营商劫持事件不就是这样吗, 这帮家伙没有我们的允许, 强行把我们的包裹拆开, 放了大量的小广告传单, 让我们主人看的非常不爽。 可是我拿它也没办法, 因为我区分不开这些广告到底是运营商加的,还是网站本来就有。 其实小广告还能忍, 万一包裹中的用户名和密码被那些地痞流氓看到了, 主人的损失就大了去了。

记者

我倒是有一招, 把包裹放到保险柜里去!

Chrome

对, 我最近也在琢磨这事儿, 保险柜上有锁, 那些人就打不开了, 可是钥匙怎么发给隔着千山万水的服务器啊, 如果通过包裹把钥匙发过去, 你知道运送包裹的路上有很多人虎视眈眈啊, 钥匙就有可能被人复制, 保险柜就没用了, 如果服务器亲自到我这儿当面取, 那这么多服务器, 这么多浏览器, 大家都得累死了。

(码农翻身注: 双方用的钥匙一样,这其实叫做对称加密和解密)


只听到外边有人咳嗽了一声, Chrome往窗户下一看, 老IE正蹲在那里偷听呢


Chrome

进来吧, 蹲那儿多难受。


老IE尴尬地笑了笑, 走进来坐下。


IE

其实这个包裹问题我也想了很久了, 终于有了点眉目, 我们来讨论下吧, 听说过没有?最近有人发明了一个新的保险柜, 非常神奇,有两把钥匙,一把是公开的,无论是谁都可以配一把 (简称公钥), 另外一把是私有的, 必须要保管好(简称私钥)。 神奇的地方还在这儿: 如果是用公钥把保险柜锁上, 只能用私钥打开, 反之, 如果是用私钥锁保险柜, 只能用公钥打开。

(码农翻身注: 这其实叫做非对称加密, 大名鼎鼎的RSA算法。)

记者

确实挺神奇, 但是有啥用啊?

Chrome

我也听说过, 这个保险柜的名字叫RSA , IE老先生的意思是:我们买个这样的RSA保险柜, 发包裹时, 用远程网站的公钥来锁上, 这样那些地痞流氓就无法打开了, 等到保险柜到了网站,他就可以用他的私钥打开了。

记者

妙啊, 可是你怎么取到人家网站的公钥?

IE

这很简单啊, 网站发个包裹给我们不就有了嘛!

Chrome

慢着, 万一这个包裹也被人拆开了呢? 他完全可以把这个公钥替换成自己的公钥,做个中间人, 模拟远程的网站,这样我们的后续包裹不还是着了流氓地痞的道了?

(码农翻身注: 这叫中间人攻击)

记者

让那个网站也把公钥放到保险柜里, 然后发过来

IE

那就回到原始的问题了, 典型的鸡生蛋, 蛋生鸡, 谁先谁后啊

Chrome

不如这样, 我们让网站从公安局申请一个特殊的身份证,里边包含公钥和他的网址, 然后通过普通包裹发给我们, 我们会向公安局查询, 看看到底是不是他。

记者

那地痞流氓还是可以改这个身份证, 把公钥给替换了啊。

你不知道, 这个身份证的特殊之处在于有个“签名”,只要改了身份证里的任何东西,哪怕是一点点, 签名就会变, 我们可以让网站用自己的私钥把签名锁到RSA保险柜里,随同包裹一并发给我们, 这样我们收到以后,我们就试试用公钥能不能打开这个柜子, 如果打不开,公钥肯定被人换了; 打开了, 我们就对比一下身份证上的最新签名和保险柜里的是不是一样, 如果不一样, 也证明身份证被人做了手脚。

记者

这真是好复杂啊, 不过好像解决了拿到网站公钥的问题, 还是你厉害,Chrome。

IE

我忘了给你们说了, 这个RSA保险柜有个很大的问题:就是加锁和开锁特别的慢, 如果每次都用这个保险柜来发包裹,我们主人估计受不了。

记者

(小声自言自语)靠, IE真是老糊涂了 ,这保险柜明明就没法用还给我们说。

Chrome

我想想, 应该还有办法, 再梳理一下现在的过程:

  1. 网站给我们发身份证
  2. 我们验证身份证是不是合法, 具体方法如下:

2.1 向公安局查询 2.2 验证网站 2.3 用公钥打开RSA保险柜, 验证签名是否正确。

  1. 如果上面的都通过,我们就确认公钥没有问题 。

IE

我想到了! 以后我们就可以用普通的钥匙和普通的包裹了, 像这样:

  1. 我们创建一把普通钥匙, 再配一把, 然后把它放到RSA保险柜, 用刚刚验证过的公钥锁上
  2. 网站用私钥把RSA保险柜打开, 拿到普通钥匙
  3. 从此以后,我们就用普通的钥匙和普通的保险柜来运送包裹了, 这样速度就快多了吗?

记者

妙啊, 老先生, 我们搞了这么多,其实就是为了把一把普通的钥匙发给网站啊, 看来你是宝刀不老啊。

IE

过奖过奖。

Chrome

我们就把它称为 HTTPS (HTTP over Secure Socket Layer) 吧, 以后如果哪个网站不用https , 我就给主人提示, 主人确认了, 我才去访问。 我们google 也会把我们的所有的网站都改成https。

IE

我们微软也改。

码农翻身注:

RSA算法: RSA公钥加密算法由三位在麻省理工的科学家提出,RSA就是他们三人姓氏开头字母拼在一起组成的。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难, 大家可以自行搜索更多细节。

特殊的身份证:其实就是网站的证书。

公安局:就是证书的颁发机构。

签名: 签名就是对内容做一个Hash操作,特点是单向的, 不可逆的, 不能从签名还原内容。

点击进入岂安的世界