百度从 14 年开始对外开放了 https 的访问,并于 3 月初正式对全网用户进行了 https 跳转。
你也许会问,切换就切换呗,和我有啥关系?我日常用百度还不是照常顺顺当当的,没感受到什么切换。
话说,日常咱们呼吸空气也顺顺溜溜的,没有什么感受,但要是没有了空气,那就无法愉快的生活了。https 对于互联网安全的重要性,正如空气对于咱们人类的重要性同样。百度全站切换到 https 以后,咱们才能够愉快的搜索,愉快的上网。
https 到底是如何实现让咱们更加安全呢,让百度技术宅来个深度揭秘:
问题 1:https 是什么?我有没有用到 https?
https 是 http over ssl(Secure Socket Layer),简单讲就是 http 的安全版本,在 http 的基础上经过传输加密和身份认证保证了传输过程当中的安全性。你一般访问的网站大部分都是 http 的,最简单的方法能够看看网址是以 http:// 开头仍是https:// 开头。
如下几个截图就是 chrome,firefox,IE10 在使用 https 时的效果。
注意图中绿色的部分, 咱们后面详细说说。
想进一步了解 HTTPS,能够阅读《大型网站的 HTTPS 实践(一)– HTTPS 协议和原理》
问题 2:https 为何比 http 安全?https 加密是否是须要我在电脑上安装证书 / 保存密码?
不带“s”的 http 不安全,主要是由于它传输的是明文内容, 也不对传输双方进行身份验证。只要在数据传输路径的任何一个环节上,都能看到传输的内容,甚至对其进行修改。例如一篇文章”攻下隔壁女生路由器后, 我都作了些什么”中,不少攻击的环节,都是经过分析 http 的内容来进行。而在现实生活中呢,你颇有可能泄露你的论坛高级会员帐号 / 密码,游戏 vip 帐号 / 密码,隐私的聊天内容,邮件,在线购物信息,等等。实在是太可怕的有木有!
https 之因此安全,是由于他利用 ssl/tls 协议传输。举个简单的例子,电影风语者中,美军发现密码常常被日本窃听和破解,就征召了 29 名印第安纳瓦霍族人做为译电员,由于这语言只有他们族人懂。即便日本人窃听了电文,可是看不懂内容也没用;想伪造命令也无从下手,修改一些内容的话,印第安人看了,确定会说看(shen)不(me)懂(gui)。看到这里,你确定发现了,这是基于两边都有懂这个语言(加密解密规则)的人才行啊,那么个人电脑上须要安装什么密钥或者证书吗?通常状况做为普通用户是不用考虑这些的,咱们有操做系统,浏览器,数学家,安全和网络工程师等等, 帮你都作好了, 放心的打开浏览器用就好啦。
若是你实在好奇,想知道双方不用相同的密钥如何进行加密的,能够搜索下”公钥加密”(非对称加密),”RSA”,” DH 密钥交换”, “ssl 原理” “数字证书”等关键词。
有朋友会想了,不就是加密吗,我 wifi 密码都能破,找个工具分分钟就破解了。这个想法可不对, 虽然没有绝对的安全,可是能够极大增长破解所须要的成本,https 目前使用的加密方式是须要巨大的计算量(按照目前计算机的计算能力)才可能破解的,你会用世界上最强的超级计算机花费 100 年(只是一个比喻)去解密,看看 100 年前隔壁老王在百度上搜什么吗。
问题 3:百度为何要上 https?
咱们天天会处理用户投诉,好比说:
页面出现白页 / 出现某些奇怪的东西
返回了 403 的页面
搜索不了东西
搜索 url 带了小尾巴, 页面总要闪几回
页面弹窗广告
搜索个汽车就有人给我打电话推销 4s 店和保险什么的
…
各类千奇百怪的状况碰到过的请举手。
查来查去,很大一部分缘由是有些坏人在数据的传输过程当中修改百度的页面内容,窃听用户的搜索内容。悄悄告诉你,https 就是能解决这样问题的技术哦, 赶忙把浏览器首页改为https://www.baidu.com吧。
从方向上来讲,HTTPS 也是将来的趋势,目前你们使用的 HTTP 仍是 1.1/1.0 版本的,新的 HTTP2.0 版本的标准已经发布了。标准中涉及了加密的规范,虽然标准中没有强制使用,可是已经有不少浏览器实现声称他们只会支持基于加密链接的 HTTP2.0(https://http2.github.io/faq/#does-http2-require-encryption)。
问题 4:https 不就是在 http 后面加个 s,很难么?
难,又不难。
它包含证书,卸载,流量转发,负载均衡,页面适配,浏览器适配,refer 传递等等等等。反正我指头确定不够数。
对于一个超小型我的站点来讲,技术宅 1 天就能搞定从申请证书到改造完成。若是是从零开始建设,会更容易。
可是对于百度搜索这种大胖纸来讲,可就难了。
1 它一开始并非为 https 设计的
2 内容丰富(内容自己的表现形式不少:图片,视频,flash,form 等等),种类丰富 (页面上除了天然结果,有视频,图片,地图,贴吧,百科 , 第三方的内容, app 等等)。
3 数据来源复杂,有几十个内部产品线的内容,几百个域名,成千上万个开发者的内容
4 百度在全国,甚至世界范围都有不少 idc 和 cdn 节点,都得覆盖到。
5 还不能所以拖慢了百度的速度 (国内使用 https 的银行, 在线交易的站点,有没有以为很慢?)
6 上 https 原本就是为了更好的体验,可不能致使你们使用不稳定。
…
想了解更详细的内容,能够阅读《大型网站的 HTTPS 实践(四)– 协议层之外的实践 [1]》
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 秒都不是梦。至于如今慢不慢呢,你们已经体验了这么多天了,有感受吗?
答案:A 慢死了,大家在作啥? B 有些慢啊 C 还行, 基本无感 D 啥, 我已经用了 https 了?
是否是选的 C 或者 D?喂喂,选 A 的那位 你打开别的网站慢么, 之前没有上 HTTPS 的时候慢么。。。隔壁老王在蹭你网呢。
因此,不是慢,是没有优化。
问题 7:https 耗性能吗?
答案是,握手的时候耗,建好链接以后就不太耗了。按照目前加密强度的计算开销,服务器支撑握手性能会降低 6-8 倍,可是若是创建好链接以后,服务器就几乎可能撑住打满网卡的 https 流量了。因此链接复用率的提高和计算性能的优化都是重点。能够阅读《大型网站的 HTTPS 实践(三)– 基于协议和配置的优化》
问题 8:劫持有些什么样的途经?
你的电脑,你设置的 dns,你的浏览器,你用的网络,都有可能被劫持。
简单和你们介绍下运营商的内容劫持是如何进行的,运营商会分析你的网络请求,它能够先于网站回包,也能修改数据包的内容。因此它可让你跳转一次,在网址上加上小尾巴,也能在你访问的页面弹出小广告。
感兴趣的话,还能够经过这篇文章看看你的电脑如何被 lsp 劫持的《暗云木马》
问题 9:https 解决了全部劫持问题吗?
俗话说有终有始,咱们来讲一说文章开始说的浏览器上的绿色标记。它标志着这个安全链接可信赖的级别。绿色一般是好的,黄色则是说明有些不安全,例如在 https 的页面中加载了 http 的资源,这样 http 的资源仍是有被劫持的风险。
其实客户端,局域网的风险也很大,恶意插件,木马能够作不少事情,你使用的路由器,DNS 也比较脆弱。若是某个大型网站被标记为了红色,那你就更要当心了 (固然也多是某个猴子忘记了续费替换证书,致使证书过时了),你有可能遭受了 ssl 劫持 (中间人攻击的一种),特别是遇到以下图提示的时候(访问一些本身签名的站点也会有相似的提示)。中间人攻击还有其余种类的,好比代理你的通讯让你退化 http, 还能够利用注入根证书,可让你浏览器仍是绿色的标记,就问你怕不怕?
仍是那句话,没有绝对的安全,可是咱们能够尽可能下降风险。
https 可以在绝大部分状况下保证互联网访问数据传输的安全,这是目前咱们力所能及的工做。git