写点什么

技术宅告诉你如何搜索更安全

  • 2019 年 9 月 11 日
  • 本文字数:3689 字

    阅读完需:约 12 分钟

技术宅告诉你如何搜索更安全

百度从 14 年开始就已经对外开放了 HTTPS 的访问,并于 15 年 3 月初正式对全网用户进行了 HTTPS 跳转。


你也许会问,切换就切换呗,和我有啥关系?我平常用百度还不是照常顺顺当当的,没感觉到什么切换。


话说,平常我们呼吸空气也顺顺溜溜的,没有什么感觉,但要是没有了空气,那就没法愉快的生活了。HTTPS 对于互联网安全的重要性,正如空气对于我们人类的重要性一样。百度全站切换到 HTTPS 之后,我们才可以愉快的搜索,愉快的上网。


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


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

HTTPS 是 HTTP over SSL(Secure Socket Layer),简单讲就是 HTTP 的安全版本,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程中的安全性。要观察是否用到了 HTTPS,最简单的方法可以看看网址是以 http://开头还是 https://开头。


以下几个截图就是 Chrome,Safari 在使用 HTTPS 时的效果。




注意图中锁的图标,我们后面详细说说。


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


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


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


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


有朋友会想了,不就是加密吗,我 Wi-Fi 密码都能破,找个工具分分钟就破解了。这个想法可不对,虽然没有绝对的安全,但是可以极大增加破解所需要的成本,HTTPS 目前使用的加密方式是需要巨大的计算量(按照目前计算机的计算能力)才可能破解的,你会用世界上最强的超级计算机花费 100 年(只是一个比喻)去解密,看看 100 年前隔壁老王在百度上搜什么吗。


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

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


页面出现白页/出现某些奇怪的东西

返回了 403 的页面

搜索不了东西

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

页面弹窗广告

搜索个汽车就有人给我打电话推销 4s 店和保险什么的



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


查来查去,很大一部分原因是有些坏人在数据的传输过程中修改百度的页面内容,窃听用户的搜索内容。悄悄告诉你,HTTPS 就是能解决这样问题的技术哦。


从方向上来说,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 部署实践》。


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


问题 5:如何看待百度搜索支持全站 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,你的浏览器,你用的网络,都有可能被劫持。


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


感兴趣的话,还可以通过这篇文章看看你的电脑如何被 ISP 劫持的《暗云木马》。


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


俗话说有终有始,我们来说一说文章开始说的浏览器上锁的图标。它标志着这个安全连接可信赖的级别。若访问非 HTTPS 网站,就存在被劫持的风险,浏览器也会提示网站不安全。




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



还是那句话,没有绝对的安全,但是我们可以尽量降低风险。


HTTPS 能够在绝大部分情况下保证互联网访问数据传输的安全,这是目前我们力所能及的工作。


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


如此强悍有用的 HTTPS,我也想体验,在安全的互联网世界中翱翔,那么我该怎么做呢?


实际上你不需要动手,百度的攻城狮已经体贴的帮你做到了。现在访问百度试试,我们已经自动切换到 HTTPS 了,再也不用担心隐私泄露的问题,赶紧来体验吧!


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


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


把浏览器首页或者收藏夹的百度 URL 也换为https://www.baidu.com,可以让你有更快更好的体验。


本文转载自公众号 AIOps 智能运维(ID:AI_Ops)。


原文链接:


https://mp.weixin.qq.com/s/SrAjJv6ApoCPlI7_HMiBHg


2019 年 9 月 11 日 18:22596

评论

发布
暂无评论
发现更多内容

盘点JavaScript哪些常用的数组对象

前端史塔克

JavaScript 大前端 数组 html/css 12月日更

聊聊 Kafka: Kafka 为啥这么快?

老周聊架构

签约计划第二季

[Pulsar] 订阅跳过一定数量消息的原理

Zike Yang

Apache Pulsar 12月日更

S 锁与 X 锁的爱恨情仇《死磕MySQL系列 四》

咔咔

MySQL 共享锁 排它锁

程序员有哪些提升幸福感的专属神器?

Jackpop

终于玩明白Golang数据可视化了!

Jackpop

1-4聚合架构第五讲:架构方法的进步也不容易

钰湚—付晓岩

企业架构 软件工程 数字化转型 软件架构 业务架构

1-6聚合架构第七讲:聊聊togaf的发展历程

钰湚—付晓岩

企业架构 软件工程 数字化转型 软件架构

🏆【Alibaba中间件技术系列】「Sentinel技术专题」分布式系统的流量防卫兵的基本介绍(入门源码介绍)

浩宇天尚

Sentine SpringCloud Alibaba Alibaba技术 限流熔断 12月日更

程序员的“双十二”大礼包,上海拆箱啦!

百度大脑

人工智能

《PyTorch 深度学习实战》复习3

IT蜗壳-Tango

28天写作 12月日更

如何选择普通索引和唯一索引《死磕MySQL系列 五》

咔咔

MySQL 唯一索引 普通索引

HOW

Nydia

代码出现异常时,我应该怎么处理?

JavaEdge

签约计划第二季

面向 JavaScript 开发人员的 5 大物联网库

devpoint

JavaScript 元宇宙 12月日更 meta

图解栈帧,别再死记硬背

李子捌

Java 28天写作 12月日更

MySQL探秘(七):InnoDB行锁算法

程序员历小冰

MySQL 28天写作 12月日更

定时删除指定目录的过期文件(linux)

liuzhen007

28天写作 12月日更

一生挚友redo log、binlog《死磕MySQL系列 二》

咔咔

MySQL Binlog Redo Log

当我们在谈‘数据标准’的时候,我们到底在谈什么?

圣迪

数据 主数据 数据标准 参考数据

1-5聚合架构第六讲:聊聊开山祖Zachman框架

钰湚—付晓岩

企业架构 软件工程 数字化转型 软件架构 业务架构

通过阅读 SpringCloud 源码 来 理解接口和抽象的区别

悟空聊架构

接口 抽象 28天写作 悟空聊架构 12月日更

数据产品实战-业务洞察

第519区

数据分析 产品经理 数据产品经理 指标体系 数据洞察

中国制造的“天工开物”新篇,如何在云上进化?

脑极体

37 K8S之容器网络模型

穿过生命散发芬芳

k8s 28天写作 12月日更

单例模式

卢卡多多

28天写作

架构实战营模块一作业

novoer

「架构实战营」

2021创作者签约计划-文章合集

卢卡多多

内容合集 签约计划第二季

MySQL强人“锁”难《死磕MySQL系列 三》

咔咔

MySQL

分布式理论之CAP理论

卢卡多多

CAP理论 12月日更

团建的目的是什么?(7/28)

赵新龙

28天写作

技术宅告诉你如何搜索更安全_文化 & 方法_百度HTTPS_InfoQ精选文章