书籍详情
深入浅出 HTTPS:从原理到实战
作者:虞卫东 著
出版社:电子工业出版社
出版时间:2018-06-01
ISBN:9787121341786
定价:¥89.00
购买这本书可以去
内容简介
《深入浅出 HTTPS:从原理到实战》是一本专业的HTTPS书籍,全面讲解了HTTPS领域的相关知识,内容包括密码学、OpenSSL命令行、证书、TLS协议、HTTPS网站性能优化、HTTPS网站优秀实践、大型网站HTTPS架构设计等。《深入浅出 HTTPS:从原理到实战》有几个特点:(1)内容全面而新颖,基于RFC文档、国外书籍、社区等一手资料,总结了大部分新的HTTPS知识;(2)由浅入深,从基础到进阶全面掌握HTTPS,读者能够轻松构建一个HTTPS网站,并使网站安全性和性能大化,对于大型网站的HTTPS系统架构和应用架构设计也有指导意义;(3)内容通俗易懂,用语描述精准,充分考虑到读者的阅读和思考习惯,只要具备基础的HTTPS知识和Linux知识就能无障碍阅读;(4)理论结合实践,本书除了让读者掌握HTTPS的交互细节,更注重实践,介绍了很多工具,让读者更好地掌握HTTPS;(5)具有启发性,读者可以通过《深入浅出 HTTPS:从原理到实战》开启密码学和HTTPS学习之门,真正做到“深入”。 HTTPS(TLS协议)重点在于密码学,互联网安全是首位的,所以任何技术领域(比如目前火爆的区块链)都需要密码学和HTTPS(TLS协议)知识,架构人员、开发人员、运维人员都适合阅读《深入浅出 HTTPS:从原理到实战》。
作者简介
虞卫东,网名虞大胆,新浪网高级技术经理。曾先后供职过新浪博客产品部和赶集网移动事业部。在新浪博客工作多年,担任过开发工程师、技术经理、应用架构师等,负责新浪博客的开发、运维、设计、性能优化等工作。在赶集网担任过技术总监,负责赶集网客户端后端开发工作。十余年来一直致力于Web后端开发,积累了丰富的架构设计、开发、运维经验,擅长PHP、Python等开发语言。
目录
第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
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
猜您喜欢