百度全站https化,技术宅告诉你为什么搜索更安全了

471

你发现了吗?百度已经实现全站https了!

百度从2014年开始对外开放https的访问,并于2015年3月初正式对全网用户进行https跳转。

你也许会说,切换就切换呗,和我有什么关系?https对于互联网安全的重要性,和空气对于人类的重要性一样。百度全站切换到https后,我们才可以愉快地搜索。

https究竟如何实现让我们更安全呢?让百度技术宅来个深度揭秘:

问题1:https是什么?我有没有用到https?

https是http over ssl(Secure Socket Layer),简单讲就是http的安全版本,在http的基础上通过传输加密身份认证保证传输过程的安全性。

你通常访问的网站大都是http的,最简单的判断方法:看网址是以http://开头,还是以https://开头。

以上是谷歌Chrome浏览器,火狐浏览器和微软IE11浏览器使用https时的效果。注意图中绿色的部分,后面会详细说。

问题2:https为什么比http安全?https加密是不是需要我在电脑上安装证书或保存密码?

不带“s”的http不安全,主要是因为它传输的是明文内容,也不对传输双方进行身份验证。在数据传输路径的任何一个环节上,都能看到传输的内容,甚至对其进行修改。例如文章“攻下隔壁女生路由器后,我都做了些什么”中,很多攻击的环节,都是通过分析http的内容来进行。而在现实生活中,你很有可能泄露你的论坛高级会员账号/密码,游戏VIP账号/密码,隐私的聊天内容,邮件,在线购物信息……太可怕了,有木有!

https之所以安全,是因为它利用ssl/tls协议传输。举个简单的例子,动作战争电影《风语者》中,美军发现密码经常被日本窃听和破解,就征召了29名印第安纳瓦霍族人作为译电员,因为这语言只有他们族人懂。即使日本人窃听了电文,但是看不懂内容也没用;想伪造命令也无从下手,修改一些内容的话,印第安人看了,肯定会说看不懂。看到这里,你肯定发现了,这是基于两边都有懂这个语言(加密解密规则)的人才行啊,那么你的电脑上需要安装什么密钥或者证书吗?一般情况作为普通用户是不用考虑这些的,我们有操作系统、浏览器、数学家、安全和网络工程师等等, 帮你都做好了, 放心的打开浏览器用就好啦!

如果你实在好奇,想知道双方不用相同的密钥如何进行加密的,可以搜索下“公钥加密”(非对称加密)、“RSA”、“DH密钥交换”、“ssl原理”、“数字证书”等关键词。

你也许会说,不就是加密嘛,我WiFi密码都能破,找个工具分分钟就破解了!这个想法是错的, 虽然没有绝对的安全,但是可以极大增加破解成本,https目前使用的加密方式是需要巨大的计算量(按照目前计算机的计算能力)才能破解的,你会用世界上最强的超级计算机花费100年解密,看看100年前隔壁老王在百度什么吗?

问题3:百度为什么要上https?

我们每天会处理用户投诉,比如:

页面出现白页或某些奇怪的东西;返回了403错误页面;

搜索不出东西;搜索url带了小尾巴,页面总要闪几次;

百度搜索有tn=的后缀,无力了,求解脱

搜索url带了小尾巴,页面总要闪几次

 

页面弹窗广告;

搜索汽车,就有人给我打电话推销4S店和保险什么的;百度一下“流产”,就…

各种千奇百怪的情况碰到过的请举手。

查来查去,很大一部分原因是有些坏人在数据传输过程中修改百度的页面内容,窃听用户的搜索内容。https就是能解决这种问题的技术,赶紧把浏览器首页改成https://www.baidu.com吧!

从方向上来说,HTTPS也是未来的趋势,目前大家使用的HTTP还是1.1/1.0版本的,新的HTTP2.0版本的标准已经发布了。标准中涉及了加密的规范,虽然标准中没有强制使用,但已有很多浏览器实现声称只支持基于加密连接的HTTP2.0(HTTP/2 Frequently Asked Questions)。

问题4:https不就是在http后面加个s,很难么?

难,又不难。

它包含证书,卸载,流量转发,负载均衡,页面适配,浏览器适配,refer传递等。

对一个超小型个人站点来说,技术宅1天就能搞定从申请证书到改造完成。如果是从零开始建设,会更容易。

但是对于百度搜索这种大胖纸来说,可就难了——

①它一开始并不是为https设计的;

②内容丰富(内容本身的表现形式很多:图片,视频,flash,form等等),种类丰富(页面上除了自然结果,有视频,图片,地图,贴吧,百科 ,第三方的内容, app等等);

③数据来源复杂,有几十个内部产品线的内容,几百个域名,成千上万个开发者的内容;

④百度在全国,甚至世界范围都有很多idc和cdn节点,都得覆盖到;

⑤还不能因此拖慢了百度的速度(国内使用https的银行,在线交易的站点,有没有觉得很慢?);

⑥上https本来就是为了更好的体验,可不能降低使用的稳定性。

……

Google部署https花费了1-2年,13年将证书从1024位升级到2048位花了3个月。百度也是去年就开放了入口和小流量,但是今年3月才进行全量上线,可以想象整体的复杂性。

问题5:如何看待百度搜索支持全站https?

国外的几个大型站点都https化了,这是未来互联网的趋势(有兴趣的同学可以搜索下“http/2”)。

对百度自身来说,https能够保护用户体验,减少劫持/隐私泄露对用户的伤害。

有人会说,我没有被劫持,百度上https没什么作用,反而让我变慢了一些。从我们的第一手数据可以看到,劫持的影响正越来越大,在法制不健全的环境下,它被当成一个产业,很多公司以它为生,不少以此创业的团队还拿到了风投。等它真正伤害到你的时候,你可能又会问我们为什么不做些什么。所以,我们宁愿早一些去面对它。

目前,在国内的大型站点上,https还只用在部分账户的登陆和支付环节。百度也是国内第一个全站https化的大型站点,它的用户非常多,流量也很大。百度能够上线https会打消大家的疑虑,对其他国内站点是很好的示范,这个带头作用会显著加速国内互联网https化的进程,有助于中国互联网的网络安全建设。百度作为搜索引擎,是流量的入口和分发的渠道,后续如果对https的站点内容的抓取,标记,权值倾斜,那么更能引导互联网的网站向https进行迁移。

问题6:https慢不慢?

繁重的计算和多次交互天然地影响了https站点的访问速度。如果什么优化都不做,https会明显慢很多。在百度已经进行过很多速度优化的条件下,如果站点本身已经做过常规优化,但是不针对https做优化,这种情况下我们实测的结果是0.2-0.4秒耗时的增加。如果是没有优化过的站点,慢1秒都不是梦。至于现在慢不慢呢,大家已经体验了这么多天了,有感觉吗?

问题7:https耗性能吗?

PIC7

握手的时候耗,建好连接之后就不太耗了。

按照目前加密强度的计算开销,服务器支撑握手性能会下降6-8倍,但是如果建立好连接之后,服务器就几乎可能撑住打满网卡的https流量了。所以连接复用率的提升和计算性能的优化都是重点。

问题8:劫持有些什么样的途经?

你的电脑,你设置的DNS,你的浏览器,你用的网络,都有可能被劫持。

简单和大家介绍下运营商的内容劫持是如何进行的,运营商会分析你的网络请求,它可先于网站回包,也能修改数据包的内容。所以它可以让你跳转一次,在网址上加个小尾巴,也能在你访问的页面弹出小广告。

感兴趣的话,还可以通过“暗云木马”看看你的电脑如何被lsp劫持。

问题9:https解决了所有劫持问题吗?

俗话说有终有始,我们来说一说文章开始说的浏览器上的绿色标记。它标志着这个安全连接可信赖的级别。绿色通常是好的,黄色则是说明有些不安全,例如在https的页面中加载了http的资源,这样http的资源还是有被劫持的风险。

其实客户端,局域网的风险也很大,恶意插件,木马可以做很多事情,你使用的路由器,DNS也比较脆弱。如果某个大型网站被标记为了红色,那你就更要小心了(当然也可能是某个猴子忘了续费替换证书,导致证书过期了),你有可能遭受了ssl劫持(中间人攻击的一种),特别是遇到如下图提示的时候(访问一些自己签名的站点也会有类似的提示)。中间人攻击还有其他种类的,比如代理你的通信让你退化至http, 还可以利用注入根证书,让你的浏览器还是绿色标记,就问你怕不怕?

PIC10

PIC11

没有绝对的安全,但是我们可以尽量降低风险。https能够在绝大部分情况下保证互联网访问数据传输的安全,这是目前我们力所能及的工作。

问题10:我应该如何更爽更快切换到https?

实际上你不需要动手,百度工程师已经体贴地帮你做到了!

现在访问百度试试,我们已经自动切换到https了,再也不用担心隐私泄露问题!

另外以下一些技巧能让https有更好的性能:

①使用更高端大气上档次的浏览器(最好不使用IE浏览器,比如Chrome、Firefox、Safari,或百度等双核浏览器的极速模式。

②把浏览器主页或收藏夹的百度url也换为https://www.baidu.com。

③如何将百度设置成主页? 详细教程:如何把百度设为您的上网主页?

相关:

大型网站的HTTPS实践(一)——HTTPS协议和原理

大型网站的HTTPS实践(二)——HTTPS对性能的影响

当前文章:Search » 百度全站https化,技术宅告诉你为什么搜索更安全了