写点什么

对话百度:HTTPS 化工作确实不轻松,但这势在必行

2017 年 9 月 04 日

网络服务有多便捷多普及,疏忽安全带来的后果就会有多巨大多可怕。“水能载舟亦能覆舟”。遗憾的是,安全工作往往被排在 todo list 的后面。网景于 1994 年创建 HTTPS,然而 13 年过去了,HTTPS 的全面采用即使不算步履维艰,也依然好事多磨。

百度于 2014 年开始进行 HTTPS 的改在,并于 2015 年全站启用。那么百度为什么坚定拥护 HTTPS?作为一家请求量巨大的搜索公司,如何解决 HTTPS 速度问题?在改造过程中经历了哪些蜕变,最后的效果又怎样?

近期,InfoQ 采访了百度安全事业部技术总监冯景辉和百度搜索架构负责人谭待,请他们回答并分享了相关内容。以下文字来自于专访整理。此外,冯景辉先生将在 2017 年 7 月 7 日 -8 日的 全球架构师峰会深圳站 上带来《人工智能在 Web 安全中的实践》的专题演讲。

与 HTTP 相比,HTTPS 更慢吗?

HTTPS 传输可分为两个阶段,握手阶段和通讯阶段。在握手阶段,HTTPS 采用的是非对称加密,这是性能消耗的最主要部分,一般情况下这个阶段会比 HTTP 慢大概好几百毫秒,但通过一定优化策略可以降低到非常少;而通讯阶段采用的是对称加密,速度差异并不大。即建立链接的过程是性能消耗最严重的环节,也是需要速度优化的关键点。

HTTPS 有很多优化策略,比如提前预建链接,缓存 token 和 session 等等。通过这些优化,大部分用户基本无法感知到 HTTPS 的速度延迟,仅当用户第一次访问或者较长时间之后首次访问,才会有较大的性能消耗。百度总结过一系列 HTTPS 速度优化的经验,具体可以参考《基于协议和配置的优化》。

在服务器资源层面,HTTPS 的 QPS 是 HTTP 的 10% - 20%。普通服务器,如果不做特殊优化,QPS 能达到几千。比如,原来服务器可以处理几万请求,采用 HTTPS 之后只能处理几千,会给使用者带来挫败感和困扰。

对此百度做了很多层面的优化,例如基于 FPGA 的计算性能优化,通过硬件方案专门处理 HTTPS 的加密服务;其性能可以提升 20 倍,已经在部分机房中推广使用。普通 web 服务器处理正常请求、后续的对称加密,而专门的服务器则在交换秘钥和建立链接的过程中处理加密和秘钥转化。

HTTPS 全球化的推进工作

大力倡导 HTTPS 的主要有三方:首先是大型互联网公司,因为 HTTPS 化后大大减少劫持、隐私窃取一系列的问题,间接减少了自己的收益。第二类是浏览器厂商,因为会有网络欺诈和钓鱼等隐患严重影响浏览器使用者。第三类是 CA 证书机构,希望业界可以从普通版本证书慢慢升级到付费的高级版本证书。现在有的证书机构会与百度等达成合作伙伴关系,以免费或低成本的方案去帮助更多人接入 HTTPS 方案。

劫持会发生在很多阶段,而 HTTPS 解决的是传输过程的防劫持。就劫持网络流量这点来讲,采用 HTTPS 之后,基本可以完全避免。 但是,在客户端还会存在很多的问题,比如一个恶意的浏览器其实是可以直接修改网页呈现内容的。但这部分恶意软件已经越来越少了。

前段时间引起广大关注的 SHA-1 事件,SHA-1 是摘要生成算法,验证这段信息有没有被篡改;其前身 MD5 也是被广泛使用的算法。Google 所谓的攻破 SHA-1 与我们传统意义的攻破含义并不相同,攻破通过大规模计算有可能仿造一个与签名一样的原始内容,但是这种情况的利用成本非常高。Google 用了大量的计算资源,仿造一次需要十几万美元的成本,并且这样的攻破更多停留在理论层面。不过即便这样,工业界也开始警惕,因为计算资源的扩张是在不断发展。现在主流的浏览器包括百度自身已经全面废弃了 SHA-1,改用强度更高的 SHA-256。在工业界,SHA-256,从 15 年末 16 年初,开始陆续废弃了 SHA-1。Google 身份比较特殊,既是大型互联网公司,又是浏览器厂商,他是希望可以强制让人去使用更高标准的 HTTPS 证书,在这一点上,它跑在了全球浏览器的最前沿;所以这次花费高成本攻破 SHA-1 是为了教育市场。

HTTPS 之于百度

百度是从 2014 年开始进行 HTTPS 的改造,并于 2015 年全站起用。一般而言,大型互联网公司做 HTTPS 的改造都需要两年的时间(比如 Google):其中技术性工作只占 20%,比如 HTTPS 速度和性能的优化;更多的工作则是业务层面的改造。比如在 HTTPS 中不可以有 HTTP 的链接,外部资源如图片、JS 文件都不可以是 HTTP;在之前没有 HTTPS 规范时,大家多多少少会引用第三方资源;而现在则要求所有引用的第三方资源都是 HTTPS 化:这就成为一个几何状放大的问题,这需要资源梳理、技术处理、内容改造和一系列的灾备方案,比如广告业务需要解决第三方 HTTPS 资源和 HTTPS 性能的问题。

简单回顾下百度的 HTTPS 改造工作方式。从公司层面的配合,有技术方案提供商,运维部门执行具体实施,系统部门从事相关支持工作(证书管理和申请),不同业务部门梳理自己的业务。根据模板去适配自己的解决方案,大概需要和十几个支持部门共同配合。

也谈 DDoS 攻击

防 DDoS 攻击,以消耗带宽资源为主,需要好的技术进行清洗、防范和对抗。 大型网站则可以准备解决方案,而中小型网站难以承担这样的重任,建议使用第三方服务提供技术提供资源,比如百度安全的抗 DDoS 服务、百度云加速等,能在一定程度上帮助防范 DDoS,解决了中小规模网站无法自建防御体系的问题,包括 SQL 注入、常见的入侵拖库的行为等对抗性强、变化快的攻击,都需要专业人士来协助进行攻防对抗。

核心的问题在于,资源是有成本的,成本是要有人负担的。 DDoS 在攻击量和攻击带宽上近来成倍增长,现在一般攻击达到几十 G 以上,百度安全每周处理超过 300G 的大型攻击。每次防御 100G 的攻击成本高达几十万。对于云厂商而言,需要很好地进行自有资源的复用,否则单纯依靠带宽硬扛是很难收支平衡的,如果做不到高复用则很难将防御履行到底。

比如,百度一个客户,游戏棋牌公司,在一个月内受到了大概 300-400G 的攻击,甚至有一段时间持续 3 个小时连续攻击 200G 以上;然后我们将客户接入到百度安全的 ADS 服务(Anti-DDoS Service)。百度安全的 ADS 服务分为三层:第一层在海外,与合作伙伴一起分担海外流量;第二层是运营商级近源压制;剩下的流量进入第三层,百度安全高防抗 D 中心进行清洗,根据情况三四层或七层清洗不同的攻击流量。整体而言,我们可以抵抗 1T 的攻击量,这家客户在接入之后服务恢复正常,但是即便这样游戏仍在一个月之内断断续续被攻击,大概一个月之后攻击者基本上认为已经撼动不了这个服务了才终止攻击。

四问百度搜索 HTTPS

Q1:有调查显示“十万的网站面临的攻击来自 124 个国家 17 亿次的攻击”,其中 HTTP 访问控制占到的百分比大致是怎样的?各个网站面临着怎样的安全窘境?这对搜索结果有怎样的影响?

A:网站攻击有好多种类型,从搜索角度而言,有两种对用户影响巨大的攻击。

一种是网站被黑,网站由于各种漏洞导致被第三方获取控制权,继而篡改网站内容,例如放置黄反赌博信息来达到非法牟利目的。去年欧洲杯时,就有大批新闻网站中招。这种情况会直接影响到搜索结果,百度也会第一时间进行干预;而对站长而言,这势必意味着品牌和流量的大幅损失。为了保护搜索重要的生态伙伴,让站长尽快发现并修复漏洞,避免遭受更大损失,百度站长平台提供了安全检测工具,及时提醒出现被黑情况的站点修复,通过死链提交工具消除负面影响,帮助站长们一起对抗黑产。另外一种更隐蔽的类型是网络攻击,即直接通过网络劫持,在网站上注入自己的广告,修改渠道号,甚至直接跳往不相关的网站。对抗这种问题最好的方法就是实施全站 HTTPS(注意一定要全站 HTTPS,否则仍然留有很大漏洞)。目前国内站点 HTTPS 比例还很低(不到十分之一),百度搜索希望通过自己的技术和影响力,帮助更多站点快速完成全站 HTTPS 化,这对用户和站长而言都是一件好事。

Q2:如果采用了 HTTPS,能对网站安全有怎样的保障?会带来的好处是?会有哪些不便之处?

A:全站 HTTPS 改造,最大的好处就是能够防止住网络劫持。因此网站不必担心自己的用户隐私信息在网络上被第三方窃取,也不必担心网站内容在网络上被第三方篡改。再透露一个小秘密,其实 HTTPS 能直接提高流量,因为网络传输环节上有各种代理和缓存,HTTPS 能够穿透这些中间缓存直达网站服务。大家往往认为 HTTPS 慢,但实际上通过技术优化后基本可以解决。反过来,由于 HTTP2.0 要求必须基于 HTTPS,因此如果想让网站速度更快体验更好,HTTPS 是必须的一步。在收录方面,百度会保证 HTTPS 和 HTTP 同等待遇,并考虑部分关键资源只对 HTTPS 开放;站长在 HTTPS 改造过程中遇到任何问题,随时通过反馈百度会高优解答。

Q3: 能否结合下具体案例谈谈?

A:某网站做在线鲜花预订业务,在五一节日临近前,发现进入网站商品页面时会出现色情广告,极大的影响了网站订单转化;通过百度安全事业部的排查,发现是客户网站内容被劫持,正常网页被插入了色情广告。在百度安全事业部指导下,网站进行了 HTTPS 改造,解决了被劫持后插入色情广告的问题,同时避免网站搜索流量受损,提高了网站订单转化率。

Q4:近来百度搜索在加强网络安全方面都有哪些动作?

A:如前文所说,一个是 HTTPS 的支持和推广,本身百度搜索是国内第一个实施全站 HTTPS 的大型网站,以前搜索更多是通过技术分享来促进 HTTPS 推广,近来则会直接通过搜索引擎的影响力来加速这个过程。第二个就是针对网站被黑提供更多解决方案,保护我们的生态伙伴。

关于安全三要素

信息安全的 CIA 三要素为完整性、保密性和可用性。冯景辉对每个要素点进行了简要的分析,如下。

  • 完整性

    比如新近实施的网络安全法要求日志需要保存六个月,很多站长会认为把日志存在硬盘就好了,其实这是一个不太科学或正确的理解,因为黑客在攻击之后一定会做的事情就是销毁日志,攻击发生之后很有可能存在硬盘的日志就找不到了,因此这不是严格意义的完整性。比如百度现在实施的是异机备份,日志会实时地从原始访问机器中直接备份到数据中心里。包括百度云加速,我们也会帮用户留存六个月的日志,防止在出现问题时不能在其原始机器上找到日志。

  • 保密性

    除了技术手段,还需要很多管理手段。在百度系统内部,或者说业务机房、办公机房采取一些加密措施来防范这方面的问题。

  • 可用性

    可用性包含很多问题。以 DDoS 攻击为举例情景,业务运行的前提是可用,无论保密性还是完整性,都需要可用性这个前提,否则对于业务方就没有价值。即在做一切方案时,不要让业务不可访问。在 DDoS 防护时,用户接入之后,网络结构会有一些变化,比如存在天然跨网的问题,我们在多个线路上部署抗 DDoS 服务,不同运营商选择不同运营商的抗击中心,随后进行清洗,保证具备可用性的安全。

安全行业的现状与展望

整个的行业发展,安全就像是一个重要而不紧急的事情,除非出现问题,否则很难被重视。为什么抗 DDoS 目前看起来是非常突出的问题,因为近来 DDoS 攻击频繁,直接危害到业务可用性,成为了紧急加重要的事情。还有,上期存在的典型问题 - 入侵风险。在我们看来,安全行业在不断发展,整体技术、尤其是攻击者的技术不断革新(攻击者的手法变化更快),这是一个需要不断对抗的技术升级。比如几年前,某大型网站密码被泄露,从此人们开始不断重视入侵泄露的风险。需要将此问题的解决方案视为互联网业务的基础工作来看待,需要有好的网络安全运营人员,进行网络安全的防御方案。

IoT 领域中,安全问题尤为凸显。思科相关数据显示,到 2020 年,每个人身边有 5-8 个 IoT 设备。各种移动终端设备中,手机相对来讲最为安全,其设计与电脑最为相似,具备一些安全能力;但是其他 IoT 设备在设计是过多在意功能,而忽视了安全问题,如网络摄像头、家用路由器等安全性较差甚至非常薄弱,IoT 设备其实已经成为 DDoS 攻击中最重要的攻击对象,即服务器并非最频繁的目标。所以,我认为这是非常重要的问题,是未来安全厂商在布局时不得不考虑的。

安全行业中,攻守双方收入不对等。整个安全行业的人才缺口很大,这几年随着安全意识、教育、书籍和技术开放性的发展,加入这个行业的人越来越多,但是整体行业的需求缺口其实很大。比如,五年前,只有大型互联网公司才有自己专门的安全部门,能达到十几人规模的更是少之又少。其他的公司大部分由运维人兼顾从事设备的安全运营工作。而今,几乎各个垂直行业的公司都有独立的安全部门和专职的安全人员。

安全从业者的三重境界

那么安全从业者的门槛是怎样的呢?百度云安全技术总监冯景辉在完全进入安全行业之前从事嵌入式方面工作,10 余年前在瑞星做企业级安全防护产品。他告诉 InfoQ 大多数白帽子都是强烈的兴趣驱动,行业中名列前茅的前辈们中很多不是计算机专业出身。

他认为白帽子发展大概经历三个阶段,

  • 第一阶段,网络层面使用工具:通过扫描器来找漏洞,这是最基本的。
  • 第二阶段,系统源代码层面发掘漏洞:比如安全、iOS 的安全,需要了解一些反编译和汇编原理
  • 第三阶段,尝试安全解决方案。防护或者攻击的解决方案,了解一些比如 AI 方面在安全中的应用。这一路是从浅入深,不断学习和积累的过程。第一阶段门槛并不高,只要多有基本的理解和兴趣,大概花费一年左右即可,不过这是技巧方面的广度积累,而非知识层面的深度学习。

受访者简介

冯景辉,百度安全事业部技术总监,百度商业安全产品研发总经理。原安全宝联合创始人兼研发副总裁,安全宝系统架构总设计师。

谭待,百度主任架构师,百度搜索架构负责人。主持设计了百度新一代搜索架构,在时效性和计算规模上实现了大幅提升;同时也主导了极速搜索、全站 HTTPS 等百度搜索的一系列重大革新,也是百度 MIP 项目的整体负责人。


感谢木环对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017 年 9 月 04 日 16:421440

评论

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

如何基于 OAM 编写一个扩展 Trait?

钱王骞

云原生 k8s OAM

大中台模式下如何构建复杂业务核心状态机组件

奈学教育

中台

大中台模式下如何构建复杂业务核心状态机组件

古月木易

白话说流——什么是流,从批认识流(二)

KAMI

大数据 flink 流计算

[转载]Go 和 Java的15个主要差异

卓丁

Java golang

公司治理的两个关键要素:存在的基石 + 成长的飞轮

泰稳@极客邦科技

发展 公司管理 增长

Libra白皮书解读

程序那些事

区块链 facebook 数字货币 libra

Libra教程之:Libra协议的关键概念

程序那些事

区块链 libra blockchain 协议

原创 | TDD工具集:JUnit、AssertJ和Mockito (二十一)编写测试-动态测试

编程道与术

Java 编程 TDD 单元测试 JUnit

食堂就餐卡系统架构设计文档

dony.zhang

读《你的灯还亮着吗》

liu_liu

读书感悟

ARTS WEEK3

紫枫

ARTS 打卡计划

SpringMVC中Http请求方式转换(post转换为put/delete等方式)

知春秋

springmvc post post到put方式请求 post到delete方式请求

由一次管理后台定时推送功能引发的对RabbitMQ延迟队列的思考(一)

LSJ

Java RabbitMQ 延迟队列

游戏夜读 | 如何面对前景渺茫?

game1night

k8s 上运行我们的 springboot 服务之——自动化测试

柠檬

maven DevOps Unit Test

算法基础:排序算法看这一篇就够了

公众号:好奇心森林

排序算法

[架构师训练营] Week01 - 食堂就餐卡系统设计

谭方敏

学习

做产品少走弯路:上帝视角(2)

我是IT民工

产品 方法 路径 知识体系

LeetCode 756. Pyramid Transition Matrix

liu_liu

LeetCode

架构师训练营第一周作业

Benjamin

Zookeeper 序列化

CoderLi

Java zookeeper 源码分析 后端

互金总结系列(1)--开篇

互金从业者X

小师妹学JavaIO之:NIO中那些奇怪的Buffer

程序那些事

io nio Java 25 周年 小师妹 buffer

拙见/ 什么是自驱力?

ZoomQuiet大妈

自我提升 大妈 是也乎 IMHO 蟒营®

3年内从负债到买房三套,勤劳不能致富,工资只能温饱

陆陆通通

创业 程序员 赚钱 买房

你不能不掌握的软技能——业务语言

KAMI

方法论 开发 沟通 软技能

[翻译]The Go Blog《Go maps in action》

卓丁

go golang hashmap map 哈希表

Kafka零数据丢失的配置方案

奈学教育

kafka

如何用日记提升写作能力?

石云升

学习 方法 写作

《Golang工具go doc使用透析》

卓丁

golang godoc go doc golang如何实现接口 源码阅读

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

对话百度:HTTPS 化工作确实不轻松,但这势在必行-InfoQ