1、 深入浅出 HTTPS:从原理到实战 李艳鹏 杨 彪 李海亮 贾博岩 刘 淏 著 北京BEIJING Publishing House of Electronics Industry 内 容 简 介 本书是一本专业的 HTTPS 书籍,全面讲解了 HTTPS 领域的相关知识,内容包括密码学、OpenSSL命令行、证书、TLS 协议、HTTPS 网站性能优化、HTTPS 网站优秀实践、大型网站 HTTPS 架构设计等。本书有几个特点:(1)内容全面而新颖,基于 RFC 文档、国外书籍、社区等一手资料,总结了大部分最新的 HTTPS 知识;(2)由浅入深,从基础到进阶全面掌握 HTTPS,读者能够
2、轻松构建一个 HTTPS 网站,并使网站安全性和性能最大化,对于大型网站的 HTTPS 系统架构和应用架构设计也有指导意义;(3)内容通俗易懂,用语描述精准,充分考虑到读者的阅读和思考习惯,只要具备基础的 HTTPS 知识和 Linux知识就能无障碍阅读;(4)理论结合实践,本书除了让读者掌握 HTTPS 的交互细节,更注重实践,介绍了很多工具,让读者更好地掌握 HTTPS;(5)具有启发性,读者可以通过本书开启密码学和 HTTPS 学习之门,真正做到“深入”。HTTPS(TLS 协议)重点在于密码学,互联网安全是第一位的,所以任何技术领域(比如目前火爆的区块链)都需要密码学和 HTTPS(T
3、LS 协议)知识,架构人员、开发人员、运维人员都适合阅读本书。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 深入浅出 HTTPS:从原理到实战虞卫东著.北京:电子工业出版社,2018.6 ISBN 978-7-121-34178-6 .深 .虞 .计算机网络网络安全 .TP393.08 中国版本图书馆 CIP 数据核字(2018)第 099201 号 责任编辑:董 英 印 刷:三河市鑫金马印装有限公司 装 订:三河市鑫金马印装有限公司 出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:787980
4、1/16 印张:32 字数:659 千字 版 次:2018 年 6 月第 1 版 印 次:2018 年 6 月第 1 次印刷 定 价:89.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:(010)51260888-819,。序 1 我们的网站、我们的 App、我们的小程序是否有必要升级到 HTTPS 呢?这并不是一个新鲜的问题,几年来一直困扰着大家。2015 年百度搜索引擎完成其历史上最大的系统性升级全面由HTTP升
5、级到HTTPS;2016年苹果公告要求App Store中的所有应用在2017年 1 月 1 日之后都必须使用 HTTPS 加密连接;2017 年 1 月 9 日微信上线小程序后,要求开发者的所有服务端请求必须为 HTTPS;同时 Google 已调整搜索引擎算法,让采用 HTTPS的网站在搜索结果中排名更靠前,并宣布从 2018 年 7 月开始所有的 HTTP 网站将标记为“不安全”。是否有必要将系统升级到 HTTPS,答案显而易见!当下的互联网已不是 20 年前只提供新闻资讯、邮件收发服务的简单互联网了,更不是让你安心网上冲浪的“洁净”互联网。互联网尤其是移动互联网,已经成为人们依赖度相当
6、高的工具,餐饮、电影、购物、金融理财,甚至买汽车、租房、打车等都离不开它,移动互联网已完成产品和服务的交易闭环。服务内容的升级与飞速发展,进一步放大了数据安全、被劫持或泄露的风险。近些年,用户数据泄露、流量劫持、页面篡改等安全事件频发,这些安全事件往往会给个人或公司带来非常大的经济损失。安全问题已成为企业的生存之本,而 HTTP 天然的安全弊端可能会让企业产生不可挽回的巨大损失。在 HTTP 模式下,搜索或访问请求以“明文信息”,经过代理服务器、路由器、WiFi 热点、服务运营商等“中间人”通路,这就形成了“中间人”获取数据、篡改数据的可能。系统升级到 HTTPS 是企业的必行之路。不就是做一
7、个从 HTTP 到 HTTPS 的切换吗?其实,背后却是一个复杂的工程。系统从 HTTP 升级到 HTTPS,并不是让 Web 服务器支持 HTTPS 协议这么简单,还需要考虑CDN、负载均衡、反向代理等服务器。同时要考虑在何种设备上部署证书及私钥,涉及网络架构和应用架构的变化。这些都需要考虑合理性,尤其要兼顾访问速度与系统安全性。在部署过程中还必须保持业务的连续性,不能中断业务,要稳定地响应用户请求,做好HTTPS 和 HTTP 的过渡和兼容。还要考虑 Referer、Cookie 等数据如何保持一致,如何避免出现访问故障,复杂度几乎是难以想象的。一想到从 HTTP 升级到 HTTPS 的复
8、杂度,很多人望而却步、不知如何是好。或者硬着头皮使用百度搜索各类 HTTPS 升级文章,研读天书般的 RFC 文档。网上的 HTTPS 升深入浅出 HTTPS:从原理到实战?IV?级文章好是好,也不乏实战派好文,但大都寥寥几笔,不能全面系统地介绍 HTTPS 基础理论与实战细则。而 RFC 文档的学习门槛比较高,虽然理论讲解透彻且专业,但实战中遇到的问题需要读者慢慢实操解决。非常有幸成为本书的首批读者,并应作者虞卫东之邀为此书写序。逐章阅读后,我深感本书覆盖所有核心知识,并且易读。我想这可能得益于作者 2007 年以来一直在负责大型系统的架构设计,并一次次解决新浪博客、新浪邮箱高负载下的系统难
9、题与复杂的系统升级难题,积累了大量的一线实践经验。本书围绕 HTTPS 应用知识体系,以实战经验、实战工具为“术”,以结合每个关键点的实战解决方法为“例”,详细介绍了 HTTP、HTTPS的常用知识,逐项解读所涉及的密码学、TLS 协议、CA 证书选择及网站部署方式等关键点。内容易于读者理解,可避免啃厚厚的 RFC 文档和劳累检索良莠不齐的各类 HTTPS 升级文章的辛劳。同时作者逻辑清晰,于实战核心处落笔。如果你是入门者,建议全篇深度学习,因为此书并不会赘述理论,但能帮助你建立完整的知识体系,补充你的实战经验。如果你想快速解决企业遇到的升级 HTTPS 难题,可以直接阅读实战解决方案,并把此
10、书作为实战手册快速找到解决办法,逐一攻克难关。最后真心希望本书可以帮助更多企业和开发者实现 HTTPS 的平稳升级。原新浪产品事业部副总经理 王廼悦 序 2 20 年前,没人会想到人类会在互联网上建立如此庞大的业务生态。从衣食住行到教育金融,每个领域都经历着巨大的网络变革。随着物联网和大数据技术的兴起,目前还没有看到这一变革的尽头。支撑互联网变革的技术基础中,HTTP 是最为重要的应用层协议。早期以信息发布为主的 Web 1.0 时代,HTTP 已可以满足绝大部分需要。证书费用、服务器的计算资源都比较昂贵,作为 HTTP 安全扩展的 HTTPS,通常只应用在登录、交易等少数环境中。但随着越来越
11、多的重要业务往线上转移,网站对用户隐私和安全性也越来越重视。对于防止恶意监听、中间人攻击、恶意劫持篡改,HTTPS 是目前较为可行的方案,全站 HTTPS 逐渐成为主流网站的选择。微博已经在 2017 年实现了全站 HTTPS。国外巨头 Google 除自身已经全站实现 HTTPS外,也已经在 Chrome 浏览器中对使用 HTTP 协议的网站在地址栏显示“不安全”标签,同时也对 HTTP 网站在搜索引擎中降低了权重。考虑到 Google 的浏览器和搜索引擎的市场份额,全站 HTTPS 将是所有网站比较迫切的需求。从技术角度上看,HTTP/2 作为新一代的协议,虽然协议文本中并未强制要求加密,
12、但主流的浏览器(Firefox、Chrome、Safari、Opera、IE、Edge)已共同宣布,它们只支持实现基于 TLS 的 HTTP/2,也就是说加密将是下一代协议的强制事实标准。和 HTTP/HTTPS 取得的巨大成功相比,它们可供参考的书籍显得非常匮乏。目前只有少量 HTTP 及 HTTP/2 书籍,大都定位于初学者,对专业开发和运维人员的需求照顾有限。相对于语言及框架类图书动辄半个书架的阵势,HTTP/HTTPS 的资源实在太少了。新浪邮箱作为国内历史悠久的邮箱,对于用户安全协议的实践,应该说获得了很多的经验。我的同事虞卫东,长期从事新浪博客、新浪邮箱等 Web 技术研发,对于
13、HTTPS 理论和实践颇有心得。在本书中,他系统地介绍了大量的基础理论知识,如 CRL 校验、OCSP深入浅出 HTTPS:从原理到实战?VI?模型、TLS 协议等,并兼顾了如 Wireshark 在 TLS/SSL 协议中的使用、自动化测试 HTTPS网站等实操。相信用心阅读本书的读者,一定可以从中深入了解他在这一领域的领悟。微博技术团队也乐于和广大开发人员分享微博在 HTTPS 实践中的心得,欢迎大家关注 微博平台架构 微博技术学院 了解后续相关公开技术活动。微博研发副总经理 杨卫华 前言 我的 HTTPS 学习之旅 2012 年,我第一次接触 HTTPS,那时候 HTTPS 网站还没有大
14、规模部署,我想给自己的博客部署一张 HTTPS 证书,由于免费证书很少,最后花了近一个月时间才搞定,喜悦之情可想而知。完成 HTTPS 网站部署后,我特别想了解 HTTPS 背后的原理,就在网络上寻找相关的资料,让人沮丧的是,国内的 HTTPS 资料非常少,大部分都是一些零星的知识,没有系统性的介绍,而且很多信息非常不严谨,不同人对于同一个知识点的描述也存在差异,由于自己没有十足的学习动力,HTTPS 的初次学习之旅就结束了。2016 年,HTTPS 又一次进入我的视野,主要有两点原因。第一是当时我所在公司的产品经常遇到页面篡改攻击,通过部署 HTTPS 网站解决了该问题,完成工作后,我想进一
15、步掌握 HTTPS 原理。第二是我使用 Shadowsocks 协议搭建了一个代理服务,很好奇Shadowsocks 协议的加密原理,当时隐隐约约觉得 HTTPS 和 Shadowsocks 协议背后的原理应该是相通的。为了系统学习 HTTPS,我再一次搜索相关的中文资料,情况和 2012 年差不多,中文资料还是非常少,质量也参差不齐,比较好的资料来源于 ,虽然 中 HTTPS 相关文章并不是特别多,但描述得非常好,而且具有实践性。国内很多介绍 HTTPS 的资料来自各大 CDN 公司,因为未来 HTTPS 网站部署和优化是非常重要的一个研究方向,CDN 公司为了减少成本和提升性能,必然会进一
16、步研究HTTPS。但必须指出,他们的文章更多是宣传介绍自己的产品的,很少有诚意十足的分享。第二个学习方式就是寻找专业的 HTTPS 书籍,正好HTTPS 权威指南出版了,这本书应该算国内第一本介绍 HTTPS 的书籍,所以我第一时间就购买了,这本书翻译自Bulletproof SSL and TLS:Understanding and Deploying SSL/TLS and PKI to Secure Servers and Web Applications,目前看来这本书并不适合初学者,原因在于它主要讲解 HTTPS 漏洞,介绍协议原理、网站部署等内容的篇幅非常少,确切地说,它更适合了解 HTTPS 原理的读者,但不可否认这是一本好书。深入浅出 HTTPS:从原理到实战?VIII?经过一段时间的摸索,我意识到学习 HTTPS 必须参考更多的英文资料,向读者推荐两本书,分别是 Implementing SSL/TLS Using Cryptography and PKI 和 Network Security with OpenSSL:Cryptography for Secure