中国很少有的技术专业HTTPS书藉,HTTPS实践活动手册
集理论研究于一体化,循序渐进、浅显易懂
以TLS 1.2协议书主导,叙述最前沿的专业知识和专用工具
多方位刻骨铭心解剖学Web安全性有关系统架构的专业知识
创作者有十几年第一线社会经验,深刻领会Web精粹
这书不但是HTTPS著作,也是工作经验和科学方法论共享
书中含很多案例,具有理论性,用户更强了解
假如你要掌握Web安全性、布署HTTPS网址、
布署HTTP/2网址、优化推广特性,
那麼这书就是你的1个很好的挑选。
《深入浅出 HTTPS:从原理到实战》是1本技术专业的HTTPS书藉,全方位解读了HTTPS行业的有关专业知识,內容包含密码学、OpenSSL命令行、资格证书、TLS协议书、HTTPS网址特性提升、HTTPS网址出色实践活动、商业网站HTTPS架构模式等。《深入浅出 HTTPS:从原理到实战》几个特性:(1)內容全方位而新奇,根据RFC文本文档、海外书藉、小区等第一手材料,小结了绝大多数*的HTTPS专业知识;(2)循序渐进,从基本到升阶全方位把握HTTPS,用户可以轻轻松松搭建1个HTTPS网址,并使网站安全和特性*化,针对商业网站的HTTPS系统架构图和运用架构模式也是指导作用;(3)內容浅显易懂,术语叙述精确,考虑到到用户的阅读文章和思索习惯性,要是具有基本的HTTPS专业知识和Linux专业知识就能无障阅读文章;(4)基础理论融合实践活动,这书除开让用户把握HTTPS的互动关键点,更重视实践活动,详细介绍了许多专用工具,让用户尽快把握HTTPS;(5)具备创造性,用户能够根据《深入浅出 HTTPS:从原理到实战》打开密码学和HTTPS学习培训的大门,真真正正的做到“深层次”。
HTTPS(TLS协议书)重中之重取决于密码学,网络安全是*位的,因此一切技术性行业(例如现阶段受欢迎的区块链技术)都必须密码学和HTTPS(TLS协议书)专业知识,构架工作人员、开发者、运维管理工作人员都合适阅读文章《深入浅出 HTTPS:从原理到实战》。
目录
- 第1章 HTTP介绍 1
- 1.1 什么是Web 1
- 1.1.1 广义理解Web 1
- 1.1.2 Web的组成 2
- 1.2 理解HTTP 4
- 1.2.1 HTTP的定义 4
- 1.2.2 HTTP语义 5
- 1.2.3 HTTP的特点 8
- 1.3 网络模型 9
- 1.3.1 TCP/IP概述 9
- 1.3.2 Socket和TCP 12
- 1.4 协议安全分析 13
- 1.4.1 安全问题举例 13
- 1.4.2 协议不安全的根本原因 14
- 1.5 Web应用安全 15
- 1.5.1 浏览器、HTML和JavaScript 16
- 1.5.2 W3C 17
- 第2章 密码学 19
- 2.1 对于密码学的认知 19
- 2.1.1 基本认知 19
- 2.1.2 密码学的四个目标 21
- 2.1.3 OpenSSL 22
- 2.2 随机数 25
- 2.2.1 随机数的类型 25
- 2.2.2 随机数的工作原理 26
- 2.2.3 常见的随机数生成器 26
- 2.2.4 密码学算法中的随机数 27
- 2.3 Hash算法 27
- 2.3.1 加密基元 28
- 2.3.2 Hash算法和密码学Hash算法 28
- 2.3.3 密码学Hash算法的特性 29
- 2.3.4 Hash算法的用途 29
- 2.3.5 什么是安全的密码学Hash算法 30
- 2.3.6 密码学Hash算法的分类 31
- 2.4 对称加密算法 33
- 2.4.1 流密码算法 34
- 2.4.2 块密码算法 36
- 2.4.3 填充标准 41
- 2.4.4 对称加密算法实践 42
- 2.5 消息验证码 47
- 2.5.1 什么是消息验证码 47
- 2.5.2 MAC算法的种类 49
- 2.5.3 消息验证码算法实践 49
- 2.5.4 加密算法不能提供完整性 50
- 2.5.5 AD加密模式 52
- 2.5.6 AEAD加密模式 53
- 2.6 公开密钥算法 54
- 2.6.1 理解RSA的内部结构 55
- 2.6.2 PKCS标准 56
- 2.6.3 RSA加密算法的应用场景 58
- 2.6.4 RSA加密算法实践 59
- 2.7 密钥 62
- 2.7.1 生成密钥 63
- 2.7.2 口令和PEB算法 63
- 2.7.3 密钥存储和传输 66
- 2.8 密钥协商算法 67
- 2.8.1 RSA密钥协商算法 68
- 2.8.2 DH密钥协商算法 69
- 2.8.3 DH算法分类 71
- 2.8.4 DH密钥协商算法实践 71
- 2.9 椭圆曲线密码学 73
- 2.9.1 ECC算法的基本模型 74
- 2.9.2 使用OpenSSL了解命名曲线 75
- 2.9.3 ECDH协商算法 76
- 2.9.4 命名曲线 77
- 2.10 数字签名 79
- 2.10.1 数字签名的用途 79
- 2.10.2 数字签名的流程 80
- 2.10.3 RSA数字签名算法 81
- 2.10.4 RSA数字签名实践 81
- 2.11 DSA数字签名算法 83
- 2.11.1 内部结构 84
- 2.11.2 DSA算法实践 85
- 2.11.3 ECDSA算法 87
- 2.11.4 ECDSA算法实践 88
- 2.12 算法安全性和性能 90
- 2.12.1 密钥长度与算法安全性 90
- 2.12.2 密码学性能 91
- 第3章 宏观理解TLS 101
- 3.1 TLS/SSL协议综述 101
- 3.1.1 TLS/SSL协议的历史 101
- 3.1.2 正确认知TLS/SSL协议 102
- 3.1.3 TLS/SSL协议的目标 103
- 3.1.4 OpenSSL和TLS/SSL的关系 104
- 3.1.5 HTTPS和TLS/SSL的关系 105
- 3.1.6 TLS/SSL协议的一些实现 106
- 3.2 TLS/SSL协议背后的算法 107
- 3.2.1 加密算法和MAC算法 107
- 3.2.2 密钥协商算法 108
- 3.2.3 前向安全性 110
- 3.2.4 密钥衍生算法 111
- 3.2.5 中间人攻击 112
- 3.2.6 PKI 114
- 3.3 HTTPS总结 117
- 3.3.1 握手 119
- 3.3.2 加密 125
- 3.4 实施HTTPS网站的必备条件 125
- 3.4.1 证书和密钥对 126
- 3.4.2 部署和配置HTTPS网站 126
- 3.4.3 全站HTTPS策略 127
- 3.5 从用户的角度看HTTPS 128
- 3.5.1 绿色小锁图标 128
- 3.5.2 TLS/SSL握手失败 129
- 3.5.3 混合内容 131
- 第4章 选择HTTPS的必要性和疑惑 134
- 4.1 部署HTTPS的疑惑 134
- 4.1.1 网站好像没有隐私数据 134
- 4.1.2 复杂性 135
- 4.1.3 成本 137
- 4.1.4 性能 137
- 4.1.5 外部资源不支持HTTPS 138
- 4.1.6 收益和时间对比 139
- 4.2 部署HTTPS的必要性 140
- 4.2.1 HTTP/2带来的性能提升 140
- 4.2.2 趋势 140
- 4.2.3 企业形象 142
- 4.2.4 HTML5的特性 142
- 4.2.5 iOS ATS的安全要求 143
- 4.2.6 Chrome和Firefox所做的努力 143
- 4.2.7 SEO排名和谷歌Analytics 144
- 第5章 快速搭建一个HTTPS网站 145
- 5.1 HTTPS网站构建分析 145
- 5.2 获取证书和密钥对 146
- 5.2.1 自签名证书 147
- 5.2.2 向CA机构申请证书 148
- 5.2.3 使用Let’s Encrypt证书 149
- 5.3 部署证书和密钥对 150
- 5.3.1 Nginx配置 150
- 5.3.2 Apache配置 151
- 5.4 测试HTTPS 152
- 5.5 301重定向 154
- 5.6 HSTS 155
- 5.6.1 什么是HSTS 155
- 5.6.2 HSTS实践 158
- 5.6.3 浏览器支持 158
- 5.6.4 HSTS Preloading 159
- 5.7 CSP 159
- 5.7.1 如何消除混合内容 159
- 5.7.2 什么是CSP 160
- 5.7.3 浏览器的兼容性 161
- 5.7.4 CSP实践 161
- 第6章 证书 165
- 6.1 X.509标准和PKI 165
- 6.1.1 X.509标准 166
- 6.1.2 PKI的组成 166
- 6.1.3 X.509标准的内容 167
- 6.2 证书 167
- 6.2.1 ASN.1 167
- 6.2.2 证书结构 168
- 6.2.3 CSR 172
- 6.2.4 证书扩展 174
- 6.2.5 证书分类 177
- 6.3 证书链 180
- 6.3.1 证书类型 180
- 6.3.2 信任原理 182
- 6.3.3 信任链校验 183
- 6.3.4 信任锚 184
- 6.3.5 委派和交叉认证 186
- 6.3.6 证书完整校验 189
- 6.4 CRL 190
- 6.4.1 证书过期和吊销 190
- 6.4.2 证书被吊销的原因 191
- 6.4.3 CRL是什么 191
- 6.4.4 CRL校验 192
- 6.4.5 CRL的结构 193
- 6.4.6 CRL存在的问题 195
- 6.5 OCSP 196
- 6.5.1 OCSP是什么 196
- 6.5.2 OCSP模型概述 197
- 6.5.3 OCSP详解 200
- 6.6 OCSP封套 204
- 6.6.1 OCSP的优缺点 204
- 6.6.2 OCSP封套的工作原理 205
- 6.6.3 OCSP封套的优点 206
- 6.6.4 OCSP封套的兼容性 207
- 6.7 OpenSSL命令行管理证书 207
- 6.7.1 证书格式 207
- 6.7.2 证书的其他格式 208
- 6.7.3 获取线上证书 209
- 6.7.4 导入证书到根证书库 213
- 6.7.5 OpenSSL管理CSR 216
- 6.7.6 OpenSSL生成证书 218
- 6.7.7 OpenSSL查看证书 218
- 6.7.8 校验CRL 224
- 6.7.9 校验OCSP 227
- 6.7.10 校验OCSP封套 232
- 6.8 其他 233
- 6.8.1 如何选择一个CA机构 233
- 6.8.2 证书的透明度 236
- 第7章 Let’s Encrypt免费证书 244
- 7.1 Let’s Encrypt 244
- 7.1.1 Let’s Encrypt CA机构的特点 244
- 7.1.2 Let’s Encrypt证书的特点 245
- 7.2 Let’s Encrypt工作原理 248
- 7.2.1 域名校验过程 248
- 7.2.2 请求、更新、续期、撤销证书流程 249
- 7.3 Certbot客户端 249
- 7.4 Let’s Encrypt的其他信息 264
- 第8章 TLS协议分析 267
- 8.1 如何理解RFC文档 267
- 8.2 描述语言 270
- 8.3 TLS/SSL协议概述 273
- 8.4 TLS记录层协议 278
- 8.5 TLS/SSL握手协议 288
- 8.6 扩展 306
- 8.7 基于Session ID的会话恢复 316
- 8.8 SessionTicket 319
- 8.9 使用Wireshark学习TLS/SSL协议 325
- 第9章 HTTPS性能和安全 347
- 9.1 密码套件 347
- 9.2 安全性 364
- 9.3 性能 385
- 第10章 HTTPS网站实战 414
- 10.1 工具化配置HTTPS 414
- 10.2 自动化测试HTTPS网站 426
- 10.3 OpenSSL命令行工具 439
- 10.4 实战HTTPS网站部署 454
- 10.5 大型网站部署HTTPS 471