HTTPS权威指南
查字典图书网
当前位置: 查字典 > 图书网 > 算法> HTTPS权威指南

HTTPS权威指南

HTTPS权威指南

7.5

作者: [英] Ivan Risti?
出版社: 人民邮电出版社
副标题: 在服务器和Web应用上部署SSL-TLS和PKI
译者: 杨洋  |  李振宇  |  蒋锷  |  周辉  |  陈传文
出版年: 2016-9
页数: 436
定价: 99.00元
装帧: 平装
ISBN: 9787115432728

我要收藏

内容简介:

作者简介:

Ivan Ristić

资深安全专家、工程师,开发了开源应用防火墙ModSecurity以及许多SSL/TLS和PKI相关工具,并运营提供Web应用安全测试服务的SSL Labs网站。Ivan Ristić是诸多安全论坛的积极参与者,经常在Black Hat、RSA、OWASP AppSec等安全大会上发表演讲。他曾任Qualys的应用程序安全研究主任,是SSL Labs、Feisty Duck和Hardenize的创始人。

译者简介:

杨洋

前阿里巴巴SSL/TLS、密码学和网络安全领域专家,曾负责阿里巴巴集团全站HTTPS和7层DDoS防御等产品的核心设计和研发。

李振宇

阿里巴巴运维专家,负责阿里巴巴集团HTTPS证书管理、架构设计等相关工作。

蒋锷

阿里巴巴应用运维专家,负责阿里巴巴集团HTTPS接入平台的建设,同时担任阿里巴巴全站HTTPS项目总项目经理,助力阿里巴巴进入HTTPS时代。

周辉

阿里巴巴应用运维专家,负责阿里全站HTTPS性能优化以及淘宝海外用户访问性能优化。

陈传文

前阿里巴巴集团专家,曾负责Tengine以及HTTPS接入层设计与研发。现专注于无线安全方面的研究探索工作。

作者简介:

作者简介:

Ivan Ristić

资深安全专家、工程师,开发了开源应用防火墙ModSecurity以及许多SSL/TLS和PKI相关工具,并运营提供Web应用安全测试服务的SSL Labs网站。Ivan Ristić是诸多安全论坛的积极参与者,经常在Black Hat、RSA、OWASP AppSec等安全大会上发表演讲。他曾任Qualys的应用程序安全研究主任,是SSL Labs、Feisty Duck和Hardenize的创始人。

译者简介:

杨洋

前阿里巴巴SSL/TLS、密码学和网络安全领域专家,曾负责阿里巴巴集团全站HTTPS和7层DDoS防御等产品的核心设计和研发。

李振宇

阿里巴巴运维专家,负责阿里巴巴集团HTTPS证书管理、架构设计等相关工作。

蒋锷

阿里巴巴应用运维专家,负责阿里巴巴集团HTTPS接入平台的建设,同时担任阿里巴巴全站HTTPS项目总项目经理,助力阿里巴巴进入HTTPS时代。

周辉

阿里巴巴应用运维专家,负责阿里全站HTTPS性能优化以及淘宝海外用户访问性能优化。

陈传文

前阿里巴巴集团专家,曾负责Tengine以及HTTPS接入层设计与研发。现专注于无线安全方面的研究探索工作。

目录:

第1章 SSL、TLS和密码学1

1.1 传输层安全1

1.2 网络层2

1.3 协议历史3

1.4 密码学4

1.4.1 构建基块4

1.4.2 协议12

1.4.3 攻击密码13

1.4.4 衡量强度13

1.4.5 中间人攻击15

第2章 协议19

2.1 记录协议19

2.2 握手协议21

2.2.1 完整的握手21

2.2.2 客户端身份验证26

2.2.3 会话恢复28

2.3 密钥交换29

2.3.1 RSA密钥交换30

2.3.2 Diffie-Hellman密钥交换31

2.3.3 椭圆曲线Diffie-Hellman密钥交换33

2.4 身份验证34

2.5 加密34

2.5.1 序列加密34

2.5.2 分组加密35

2.5.3 已验证的加密36

2.6 重新协商37

2.7 应用数据协议38

2.8 警报协议38

2.9 关闭连接39

2.10 密码操作39

2.10.1 伪随机函数39

2.10.2 主密钥40

2.10.3 密钥生成40

2.11 密码套件41

2.12 扩展42

2.12.1 应用层协议协商43

2.12.2 证书透明度44

2.12.3 椭圆曲线功能44

2.12.4 心跳45

2.12.5 次协议协商46

2.12.6 安全重新协商47

2.12.7 服务器名称指示47

2.12.8 会话票证48

2.12.9 签名算法48

2.12.10 OCSP stapling49

2.13 协议限制49

2.14 协议版本间的差异50

2.14.1 SSL 350

2.14.2 TLS 1.050

2.14.3 TLS 1.150

2.14.4 TLS 1.251

第3章 公钥基础设施52

3.1 互联网公钥基础设施52

3.2 标准54

3.3 证书55

3.3.1 证书字段55

3.3.2 证书扩展57

3.4 证书链58

3.5 信赖方60

3.6 证书颁发机构61

3.7 证书生命周期62

3.8 吊销63

3.9 弱点63

3.10 根密钥泄露65

3.11 生态系统评估66

3.12 进步68

第4章 攻击PKI71

4.1 VeriSign签发的Microsoft代码签名证书71

4.2 Thawte签发的login.live.com72

4.3 StartCom违规(2008)72

4.4 CertStar(Comodo)签发的Mozilla证书73

4.5 伪造的RapidSSL CA证书73

4.5.1 前缀选择碰撞攻击75

4.5.2 创建碰撞证书75

4.5.3 预测前缀76

4.5.4 接下来发生的事78

4.6 Comodo代理商违规78

4.7 StartCom违规(2011)80

4.8 DigiNotar80

4.8.1 公众的发现80

4.8.2 一个证书颁发机构的倒下81

4.8.3 中间人攻击82

4.8.4 ComodoHacker宣布负责83

4.9 DigiCert Sdn. Bhd.85

4.10 火焰病毒85

4.10.1 火焰病毒对抗Windows更新86

4.10.2 火焰病毒对抗Windows终端服务87

4.10.3 火焰病毒对抗MD588

4.11 TURKTRUST89

4.12 ANSSI90

4.13 印度国家信息中心91

4.14 广泛存在的SSL窃听91

4.14.1 Gogo91

4.14.2 Superfish和它的朋友们92

4.15 CNNIC93

第5章 HTTP和浏览器问题95

5.1 sidejacking95

5.2 Cookie窃取97

5.3 Cookie篡改98

5.3.1 了解HTTP Cookie98

5.3.2 Cookie篡改攻击99

5.3.3 影响102

5.3.4 缓解方法103

5.4 SSL剥离103

5.5 中间人攻击证书104

5.6 证书警告105

5.6.1 为什么有这么多无效证书107

5.6.2 证书警告的效果108

5.6.3 点击—通过式警告与例外109

5.6.4 缓解方法110

5.7 安全指示标志110

5.8 混合内容112

5.8.1 根本原因112

5.8.2 影响114

5.8.3 浏览器处理114

5.8.4 混合内容的流行程度116

5.8.5 缓解方法117

5.9 扩展验证证书118

5.10 证书吊销119

5.10.1 客户端支持不足119

5.10.2 吊销检查标准的主要问题119

5.10.3 证书吊销列表120

5.10.4 在线证书状态协议122

第6章 实现问题127

6.1 证书校验缺陷127

6.1.1 在库和平台中的证书校验缺陷128

6.1.2 应用程序校验缺陷131

6.1.3 主机名校验问题132

6.2 随机数生成133

6.2.1 Netscape Navigator浏览器(1994)133

6.2.2 Debian(2006)134

6.2.3 嵌入式设备熵不足问题135

6.3 心脏出血137

6.3.1 影响137

6.3.2 缓解方法139

6.4 FREAK139

6.4.1 出口密码140

6.4.2 攻击140

6.4.3 影响和缓解方法143

6.5 Logjam144

6.5.1 针对不安全DHE密钥交换的主动攻击144

6.5.2 针对不安全DHE密钥交换的预先计算攻击145

6.5.3 针对弱DH密钥交换的状态—水平威胁146

6.5.4 影响147

6.5.5 缓解方法148

6.6 协议降级攻击148

6.6.1 SSL 3中的回退保护149

6.6.2 互操作性问题149

6.6.3 自愿协议降级152

6.6.4 TLS 1.0和之后协议的回退保护153

6.6.5 攻击自愿协议降级154

6.6.6 现代回退防御154

6.7 截断攻击156

6.7.1 截断攻击的历史157

6.7.2 Cookie截断157

6.8 部署上的弱点159

6.8.1 虚拟主机混淆159

6.8.2 TLS会话缓存共享160

第7章 协议攻击161

7.1 不安全重新协商161

7.1.1 为什么重新协商是不安全的162

7.1.2 触发弱点162

7.1.3 针对HTTP协议的攻击163

7.1.4 针对其他协议的攻击166

7.1.5 由架构引入的不安全重新协商问题167

7.1.6 影响167

7.1.7 缓解方法167

7.1.8 漏洞发现和补救时间表168

7.2 BEAST169

7.2.1 BEAST的原理170

7.2.2 客户端缓解方法173

7.2.3 服务器端缓解方法175

7.2.4 历史176

7.2.5 影响177

7.3 压缩旁路攻击178

7.3.1 压缩预示如何生效178

7.3.2 攻击的历史180

7.3.3 CRIME181

7.3.4 针对TLS和SPDY攻击的缓解方法187

7.3.5 针对HTTP压缩攻击的缓解方法188

7.4 Lucky 13189

7.4.1 什么是填充预示189

7.4.2 针对TLS的攻击190

7.4.3 影响191

7.4.4 缓解方法191

7.5 RC4缺陷192

7.5.1 密钥调度弱点192

7.5.2 单字节偏差193

7.5.3 前256字节偏差194

7.5.4 双字节偏差196

7.5.5 针对密码进行攻击的改进196

7.5.6 缓解方法:RC4与BEAST、Lucky 13和POODLE的比较197

7.6 三次握手攻击198

7.6.1 攻击198

7.6.2 影响202

7.6.3 先决条件203

7.6.4 缓解方法203

7.7 POODLE204

7.7.1 实际攻击207

7.7.2 影响208

7.7.3 缓解方法208

7.8 Bullrun209

第8章 部署212

8.1 密钥212

8.1.1 密钥算法212

8.1.2 密钥长度213

8.1.3 密钥管理213

8.2 证书215

8.2.1 证书类型215

8.2.2 证书主机名215

8.2.3 证书共享216

8.2.4 签名算法216

8.2.5 证书链217

8.2.6 证书吊销218

8.2.7 选择合适的CA218

8.3 协议配置219

8.4 密码套件配置220

8.4.1 服务器密码套件配置优先220

8.4.2 加密强度220

8.4.3 前向保密221

8.4.4 性能222

8.4.5 互操作性222

8.5 服务器配置和架构223

8.5.1 共享环境223

8.5.2 虚拟安全托管223

8.5.3 会话缓存223

8.5.4 复杂体系结构224

8.6 问题缓解方法225

8.6.1 重新协商225

8.6.2 BEAST(HTTP)225

8.6.3 CRIME(HTTP)225

8.6.4 Lucky 13226

8.6.5 RC4226

8.6.6 TIME和BREACH(HTTP)227

8.6.7 三次握手攻击227

8.6.8 心脏出血228

8.7 钉扎228

8.8 HTTP228

8.8.1 充分利用加密228

8.8.2 Cookie安全229

8.8.3 后端证书和域名验证229

8.8.4 HTTP严格传输安全229

8.8.5 内容安全策略230

8.8.6 协议降级保护230

第9章 性能优化231

9.1 延迟和连接管理232

9.1.1 TCP 优化232

9.1.2 长连接234

9.1.3 SPDY、HTTP 2.0以及其他235

9.1.4 内容分发网络235

9.2 TLS协议优化237

9.2.1 密钥交换237

9.2.2 证书240

9.2.3 吊销检查242

9.2.4 会话恢复243

9.2.5 传输开销243

9.2.6 对称加密244

9.2.7 TLS记录缓存延迟246

9.2.8 互操作性247

9.2.9 硬件加速247

9.3 拒绝服务攻击248

9.3.1 密钥交换和加密CPU开销249

9.3.2 客户端发起的重新协商250

9.3.3 优化过的TLS拒绝服务攻击250

第10章 HTTP严格传输安全、内容安全策略和钉扎251

10.1 HTTP严格传输安全251

10.1.1 配置HSTS252

10.1.2 确保主机名覆盖253

10.1.3 Cookie安全253

10.1.4 攻击向量254

10.1.5 浏览器支持255

10.1.6 强大的部署清单256

10.1.7 隐私问题257

10.2 内容安全策略257

10.2.1 防止混合内容问题258

10.2.2 策略测试259

10.2.3 报告259

10.2.4 浏览器支持259

10.3 钉扎260

10.3.1 钉扎的对象261

10.3.2 在哪里钉扎262

10.3.3 应该使用钉扎吗263

10.3.4 在本机应用程序中使用钉扎263

10.3.5 Chrome公钥钉扎264

10.3.6 Microsoft Enhanced Mitiga-tion Experience Toolkit265

10.3.7 HTTP公钥钉扎扩展265

10.3.8 DANE267

10.3.9 证书密钥可信保证270

10.3.10 证书颁发机构授权271

第11章 OpenSSL272

11.1 入门272

11.1.1 确定OpenSSL版本和配置273

11.1.2 构建OpenSSL274

11.1.3 查看可用命令275

11.1.4 创建可信证书库276

11.2 密钥和证书管理277

11.2.1 生成密钥277

11.2.2 创建证书签名申请280

11.2.3 用当前证书生成CSR文件282

11.2.4 非交互方式生成CSR282

11.2.5 自签名证书283

11.2.6 创建对多个主机名有效的证书283

11.2.7 检查证书284

11.2.8 密钥和证书格式转换286

11.3 配置288

11.3.1 选择密码套件288

11.3.2 性能298

11.4 创建私有证书颁发机构300

11.4.1 功能和限制301

11.4.2 创建根CA301

11.4.3 创建二级CA306

第12章 使用OpenSSL进行测试309

12.1 连接SSL服务309

12.2 测试升级到SSL的协议312

12.3 使用不同的握手格式313

12.4 提取远程证书313

12.5 测试支持的协议314

12.6 测试支持的密码套件314

12.7 测试要求包含SNI的服务器315

12.8 测试会话复用316

12.9 检查OCSP吊销状态316

12.10 测试OCSP stapling318

12.11 检查CRL吊销状态319

12.12 测试重新协商321

12.13 测试BEAST漏洞322

12.14 测试心脏出血323

12.15 确定Diffie-Hellman参数的强度325

第13章 配置Apache327

13.1 安装静态编译OpenSSL的Apache328

13.2 启用TLS329

13.3 配置TLS协议329

13.4 配置密钥和证书330

13.5 配置多个密钥331

13.6 通配符和多站点证书332

13.7 虚拟安全托管333

13.8 为错误消息保留默认站点334

13.9 前向保密335

13.10 OCSP stapling336

13.10.1 配置OCSP stapling336

13.10.2 处理错误337

13.10.3 使用自定义OCSP响应程序338

13.11 配置临时的DH密钥交换338

13.12 TLS会话管理338

13.12.1 独立会话缓存338

13.12.2 独立会话票证339

13.12.3 分布式会话缓存340

13.12.4 分布式会话票证341

13.12.5 禁用会话票证342

13.13 客户端身份验证343

13.14 缓解协议问题344

13.14.1 不安全的重新协商344

13.14.2 BEAST344

13.14.3 CRIME344

13.15 部署HTTP严格传输安全345

13.16 监视会话缓存状态346

13.17 记录协商的TLS参数346

13.18 使用mod_sslhaf的高级日志记录347

第14章 配置Java和Tomcat349

14.1 Java加密组件349

14.1.1 无限制的强加密350

14.1.2 Provider配置350

14.1.3 功能概述351

14.1.4 协议漏洞352

14.1.5 互操作性问题352

14.1.6 属性配置调优354

14.1.7 常见错误消息355

14.1.8 保护Java Web应用358

14.1.9 常见密钥库操作362

14.2 Tomcat366

14.2.1 TLS配置369

14.2.2 JSSE配置371

14.2.3 APR和OpenSSL配置373

第15章 配置Microsoft Windows和IIS375

15.1 Schannel375

15.1.1 功能概述375

15.1.2 协议漏洞377

15.1.3 互操作性问题377

15.2 Microsoft根证书计划379

15.2.1 管理系统可信证书库379

15.2.2 导入可信证书380

15.2.3 可信证书黑名单380

15.2.4 禁用根证书自动更新380

15.3 配置380

15.3.1 Schannel配置381

15.3.2 密码套件配置382

15.3.3 密钥和签名限制384

15.3.4 重新协商配置389

15.3.5 配置会话缓存390

15.3.6 监控会话缓存391

15.3.7 FIPS 140-2391

15.3.8 第三方工具393

15.4 保护ASP.NET网站应用的安全394

15.4.1 强制使用SSL394

15.4.2 Cookie的保护395

15.4.3 保护会话Cookie和Forms身份验证的安全395

15.4.4 部署HTTP严格传输安全396

15.5 Internet信息服务396

第16章 配置Nginx402

16.1 以静态链接OpenSSL方式安装Nginx402

16.2 启用TLS403

16.3 配置TLS协议403

16.4 配置密钥和证书404

16.5 配置多密钥405

16.6 通配符证书和多站点证书405

16.7 虚拟安全托管406

16.8 默认站点返回错误消息406

16.9 前向保密407

16.10 OCSP stapling407

16.10.1 配置OCSP stapling408

16.10.2 自定义OCSP响应409

16.10.3 手动配置OCSP响应409

16.11 配置临时DH密钥交换410

16.12 配置临时ECDH密钥交换410

16.13 TLS会话管理411

16.13.1 独立会话缓存411

16.13.2 独立会话票证411

16.13.3 分布式会话缓存412

16.13.4 分布式会话票证412

16.13.5 禁用会话票证413

16.14 客户端身份验证413

16.15 缓解协议问题414

16.15.1 不安全的重新协商414

16.15.2 BEAST415

16.15.3 CRIME415

16.16 部署HTTP严格传输安全415

16.17 TLS缓冲区调优416

16.18 日志记录416

第17章 总结418

文章试读:互联网的核心是建立在IP(internet protocol)和TCP(transmission control protocol)协议之上的,这些协议用于将数据分割成小数据包进行传输。这些数据包在全世界范围内历经数千里的传输,在此期间需要跨越许多国家的许多计算机系统(称为跃点,hop)。由于核心协议本身不提供任何安全保障,任何有权访问通信链路的人都可以获得所有数据,并且可以在不被察觉的情况下改变...

(查看全部试读)

展开全文
随机来一本书

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

热门标签:
我想说两句
我要写长评
 想读     在读     读过   
评价:
标签(多个标签以“,”分开):