HTTPS权威指南 在服务器和Web应用上部署SSL/TLS和PKI pdf

图书网 2018年8月30日14:11:421 2.5K

本书主要内容:

- 介绍密码学和新的TLS协议版本

- 讨论各个层面上的弱点,涵盖实施问题、HTTP和浏览器问题以及协议漏洞

- 分析新的攻击,如BEAST、CRIME、BREACH、Lucky 13、RC4、三次握手和心脏出血

- 提供全面的部署建议,包括严格传输安全、内容安全策略和钉扎等高级技术

- 使用OpenSSL生成密钥和证书,创建私有证书颁发机构

- 使用OpenSSL检查服务器漏洞

- 给出使用Apache httpd、IIS、Java、Nginx、Microsoft Windows和Tomcat进行安全服务器配置的实际建议

HTTPS权威指南 在服务器和Web应用上部署SSL/TLS和PKI 内容简介

本书是集理论、协议细节、漏洞分析、部署建议于一体的详尽Web应用安全指南。书中具体内容包括:密码学基础,TLS协议,PKI体系及其安全性,HTTP和浏览器问题,协议漏洞;新的攻击形式,如BEAST、CRIME、BREACH、Lucky 13等;详尽的部署建议;如何使用OpenSSL生成密钥和确认信息;如何使用Apache httpd、IIS、Nginx等进行安全配置。

HTTPS权威指南 在服务器和Web应用上部署SSL/TLS和PKI 目录

第1章 SSL、TLS和密码学

1.1 传输层安全

1.2 网络层

1.3 协议历史

1.4 密码学

1.4.1 构建基块

1.4.2 协议

1.4.3 攻击密码

1.4.4 衡量强度

1.4.5 中间人攻击

第2章 协议

2.1 记录协议

2.2 握手协议

2.2.1 完整的握手

2.2.2 客户端身份验证

2.2.3 会话恢复

2.3 密钥交换

2.3.1 RSA密钥交换

2.3.2 Diffie-Hellman密钥交换

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

2.4 身份验证

2.5 加密

2.5.1 序列加密

2.5.2 分组加密

2.5.3 已验证的加密

2.6 重新协商

2.7 应用数据协议

2.8 警报协议

2.9 关闭连接

2.10 密码操作

2.10.1 伪随机函数

2.10.2 主密钥

2.10.3 密钥生成

2.11 密码套件

2.12 扩展

2.12.1 应用层协议协商

2.12.2 证书透明度

2.12.3 椭圆曲线功能

2.12.4 心跳

2.12.5 次协议协商

2.12.6 安全重新协商

2.12.7 服务器名称指示

2.12.8 会话票证

2.12.9 签名算法

2.12.10 OCSP stapling

2.13 协议限制

2.14 协议版本间的差异

2.14.1 SSL 3

2.14.2 TLS 1.0

2.14.3 TLS 1.1

2.14.4 TLS 1.2

第3章 公钥基础设施

3.1 互联网公钥基础设施

3.2 标准

3.3 证书

3.3.1 证书字段

3.3.2 证书扩展

3.4 证书链

3.5 信赖方

3.6 证书颁发机构

3.7 证书生命周期

3.8 吊销

3.9 弱点

3.10 根密钥泄露

3.11 生态系统评估

3.12 进步

第4章 攻击PKI

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

4.2 Thawte签发的login.1 ive.com

4.3 StartCom违规(2008)

4.4 CertStar(Comodo)签发的Mozilla证书

4.5 伪造的RapidSSL CA证书

4.5.1 前缀选择碰撞攻击

4.5.2 创建碰撞证书

4.5.3 预测前缀

4.5.4 接下来发生的事

4.6 Comodo代理商违规

4.7 StartCom违规(2011)

4.8 DigiNotar

4.8.1 公众的发现

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

4.8.3 中间人攻击

4.8.4 ComodoHacker宣布负责

4.9 DigiCert Sdn.Bhd

4.10 火焰病毒

4.10.1 火焰病毒对抗Windows更新

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

4.10.3 火焰病毒对抗MD5

4.11 TURKTRUST

4.12 ANSSI

4.13 印度国家信息中心

4.14 广泛存在的SSL窃听

4.14.1 Gogo

4.14.2 Superfish和它的朋友们

4.15 CNNIC

第5章 HTTP和浏览器问题

5.1 sidejacking

5.2 Cookie窃取

5.3 Cookie篡改

5.3.1 了解HTTP Cookie

5.3.2 Cookie篡改攻击

5.3.3 影响

5.3.4 缓解方法

5.4 SSL剥离

5.5 中间人攻击证书

5.6 证书警告

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

5.6.2 证书警告的效果

5.6.3 点击-通过式警告与例外

5.6.4 缓解方法

5.7 安全指示标志

5.8 混合内容

5.8.1 根本原因

5.8.2 影响

5.8.3 浏览器处理

5.8.4 混合内容的流行程度

5.8.5 缓解方法

5.9 扩展验证证书

5.10 证书吊销

5.10.1 客户端支持不足

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

5.10.3 证书吊销列表

5.10.4 在线证书状态协议

第6章 实现问题

6.1 证书校验缺陷

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

6.1.2 应用程序校验缺陷

6.1.3 主机名校验问题

6.2 随机数生成

6.2.1 Netscape Navigator浏览器(1994)

6.2.2 Debian(2006)

6.2.3 嵌入式设备熵不足问题

6.3 心脏出血

6.3.1 影响

6.3.2 缓解方法

6.4 FREAK

6.4.1 出口密码

6.4.2 攻击

6.4.3 影响和缓解方法

6.5 Logjam

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

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

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

6.5.4 影响

6.5.5 缓解方法

6.6 协议降级攻击

6.6.1 SSL 3中的回退保护

6.6.2 互操作性问题

6.6.3 自愿协议降级

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

6.6.5 攻击自愿协议降级

6.6.6 现代回退防御

6.7 截断攻击

6.7.1 截断攻击的历史

6.7.2 Cookie截断

6.8 部署上的弱点

6.8.1 虚拟主机混淆

6.8.2 TLS会话缓存共享

第7章 协议攻击

7.1 不安全重新协商

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

7.1.2 触发弱点

7.1.3 针对HTTP协议的攻击

7.1.4 针对其他协议的攻击

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

7.1.6 影响

7.1.7 缓解方法

7.1.8 漏洞发现和补救时间表

7.2 BEAST

7.2.1 BEAST的原理

7.2.2 客户端缓解方法

7.2.3 服务器端缓解方法

7.2.4 历史

7.2.5 影响

7.3 压缩旁路攻击

7.3.1 压缩预示如何生效

7.3.2 攻击的历史

7.3.3 CRIME

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

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

7.4 Lucky 13

7.4.1 什么是填充预示

7.4.2 针对TLS的攻击

7.4.3 影响

7.4.4 缓解方法

7.5 RC4缺陷

7.5.1 密钥调度弱点

7.5.2 单字节偏差

7.5.3 前256字节偏差

7.5.4 双字节偏差

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

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

7.6 三次握手攻击

7.6.1 攻击

7.6.2 影响

7.6.3 先决条件

7.6.4 缓解方法

7.7 POODLE

7.7.1 实际攻击

7.7.2 影响

7.7.3 缓解方法

7.8 Bullrun

第8章 部署

8.1 密钥

8.1.1 密钥算法

8.1.2 密钥长度

8.1.3 密钥管理

8.2 证书

8.2.1 证书类型

8.2.2 证书主机名

8.2.3 证书共享

8.2.4 签名算法

8.2.5 证书链

8.2.6 证书吊销

8.2.7 选择合适的CA

8.3 协议配置

8.4 密码套件配置

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

8.4.2 加密强度

8.4.3 前向保密

8.4.4 性能

8.4.5 互操作性

8.5 服务器配置和架构

8.5.1 共享环境

8.5.2 虚拟安全托管

8.5.3 会话缓存

8.5.4 复杂体系结构

8.6 问题缓解方法

8.6.1 重新协商

8.6.2 BEAST(HTTP)

8.6.3 CRIME(HTTP)

8.6.4 Lucky 13

8.6.5 RC4

8.6.6 TIME和BREACH(HTTP)

8.6.7 三次握手攻击

8.6.8 心脏出血

8.7 钉扎

8.8 HTTP

8.8.1 充分利用加密

8.8.2 Cookie安全

8.8.3 后端证书和域名验证

8.8.4 HTTP严格传输安全

8.8.5 内容安全策略

8.8.6 协议降级保护

第9章 性能优化

9.1 延迟和连接管理

9.1.1 TCP优化

9.1.2 长连接

9.1.3 SPDY、HTTP 2.0以及其他

9.1.4 内容分发网络

9.2 TLS协议优化

9.2.1 密钥交换

9.2.2 证书

9.2.3 吊销检查

9.2.4 会话恢复

9.2.5 传输开销

9.2.6 对称加密

9.2.7 TLS记录缓存延迟

9.2.8 互操作性

9.2.9 硬件加速

9.3 拒绝服务攻击

9.3.1 密钥交换和加密CPU开销

9.3.2 客户端发起的重新协商

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

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

10.1 HTTP严格传输安全

10.1.1 配置HSTS

10.1.2 确保主机名覆盖

10.1.3 Cookie安全

10.1.4 攻击向量

10.1.5 浏览器支持

10.1.6 强大的部署清单

10.1.7 隐私问题

10.2 内容安全策略

10.2.1 防止混合内容问题

10.2.2 策略测试

10.2.3 报告

10.2.4 浏览器支持

10.3 钉扎

10.3.1 钉扎的对象

10.3.2 在哪里钉扎

10.3.3 应该使用钉扎吗

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

10.3.5 Chrome公钥钉扎

10.3.6 Microsoft Enhanced Mitiga-tion Experience Toolkit

10.3.7 HTTP公钥钉扎扩展

10.3.8 DANE

10.3.9 证书密钥可信保证

10.3.10 证书颁发机构授权

第11章 OpenSSL

11.1 入门

11.1.1 确定OpenSSL版本和配置

11.1.2 构建OpenSSL

11.1.3 查看可用命令

11.1.4 创建可信证书库

11.2 密钥和证书管理

11.2.1 生成密钥

11.2.2 创建证书签名申请

11.2.3 用当前证书生成CSR文件

11.2.4 非交互方式生成CSR

11.2.5 自签名证书

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

11.2.7 检查证书

11.2.8 密钥和证书格式转换

11.3 配置

11.3.1 选择密码套件

11.3.2 性能

11.4 创建私有证书颁发机构

11.4.1 功能和限制

11.4.2 创建根CA

11.4.3 创建二级CA

第12章 使用OpenSSL进行测试

12.1 连接SSL服务

12.2 测试升级到SSL的协议

12.3 使用不同的握手格式

12.4 提取远程证书

12.5 测试支持的协议

12.6 测试支持的密码套件

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

12.8 测试会话复用

12.9 检查OCSP吊销状态

12.10 测试OCSP stapling

12.11 检查CRL吊销状态

12.12 测试重新协商

12.13 测试BEAST漏洞

12.14 测试心脏出血

12.15 确定Diffie-Hellman参数的强度

第13章 配置Apache

13.1 安装静态编译OpenSSL的Apache

13.2 启用TLS

13.3 配置TLS协议

13.4 配置密钥和证书

13.5 配置多个密钥

13.6 通配符和多站点证书

13.7 虚拟安全托管

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

13.9 前向保密

13.10 OCSP stapling

13.10.1 配置OCSP stapling

13.10.2 处理错误

13.10.3 使用自定义OCSP响应程序

13.11 配置临时的DH密钥交换

13.12 TLS会话管理

13.12.1 独立会话缓存

13.12.2 独立会话票证

13.12.3 分布式会话缓存

13.12.4 分布式会话票证

13.12.5 禁用会话票证

13.13 客户端身份验证

13.14 缓解协议问题

13.14.1 不安全的重新协商

13.14.2 BEAST

13.14.3 CRIME

13.15 部署HTTP严格传输安全

13.16 监视会话缓存状态

13.17 记录协商的TLS参数

13.18 使用mod sslhaf的高级日志记录

第14章 配置Java和Tomcat

14.1 Java加密组件

14.1.1 无限制的强加密

14.1.2 Provider配置

14.1.3 功能概述

14.1.4 协议漏洞

14.1.5 互操作性问题

14.1.6 属性配置调优

14.1.7 常见错误消息

14.1.8 保护Java Web应用

14.1.9 常见密钥库操作

14.2 Tomcat

14.2.1 TLS配置

14.2.2 JSSE配置

14.2.3 APR和OpenSSL配置

第15章 配置Microsoft Windows和IIS

15.1 Schannel

15.1.1 功能概述

15.1.2 协议漏洞

15.1.3 互操作性问题

15.2 Microsoft根证书计划

15.2.1 管理系统可信证书库

15.2.2 导入可信证书

15.2.3 可信证书黑名单

15.2.4 禁用根证书自动更新

15.3 配置

15.3.1 Schannel配置

15.3.2 密码套件配置

15.3.3 密钥和签名限制

15.3.4 重新协商配置

15.3.5 配置会话缓存

15.3.6 监控会话缓存

15.3.7 FIPS 140-2

15.3.8 第三方工具

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

15.4.1 强制使用SSL

15.4.2 Cookie的保护

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

15.4.4 部署HTTP严格传输安全

15.5 Internet信息服务

第16章 配置Nginx

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

16.2 启用TLS

16.3 配置TLS协议

16.4 配置密钥和证书

16.5 配置多密钥

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

16.7 虚拟安全托管

16.8 默认站点返回错误消息

16.9 前向保密

16.10 OCSP stapling

16.10.1 配置OCSP stapling

16.10.2 自定义OCSP响应

16.10.3 手动配置OCSP响应

16.11 配置临时DH密钥交换

16.12 配置临时ECDH密钥交换

16.13 TLS会话管理

16.13.1 独立会话缓存

16.13.2 独立会话票证

16.13.3 分布式会话缓存

16.13.4 分布式会话票证

16.13.5 禁用会话票证

16.14 客户端身份验证

16.15 缓解协议问题

16.15.1 不安全的重新协商

16.15.2 BEAST

16.15.3 CRIME

16.16 部署HTTP严格传输安全

16.17 TLS缓冲区调优

16.18 日志记录

第17章 总结

HTTPS权威指南 在服务器和Web应用上部署SSL/TLS和PKI 精彩文摘

第 1 章 SSL、TLS和密码学
我们生活在一个互联网时代。在20世纪的最后十年,互联网已经十分普及,并且永久性地改变了我们的生活方式。今天,我们依靠手机和计算机进行通信、购买商品、支付账单、旅行、工作,等等。很多人的口袋里总是装着处于开机状态的设备;我们并不只是连接到互联网,其实就是互联网的一部分。目前手机的数量已经超过了人口的数量。智能手机的数量已经达到数十亿,并且仍保持着快速增长。与此同时,诸多计划正酝酿将各种设备连接到同一网络。显然,这一切才刚刚开始。

所有连接到互联网的设备都有一个共同点,它们依赖安全套接字层(secure socket layer,SSL)和传输层安全(transport layer security,TLS)协议保护传输的信息。

1.1 传输层安全

人们最初设计互联网时,很少考虑到安全。这样的结果是,核心通信协议本质上是不安全的,只能依靠所有参与方的诚信行为。互联网在早期由少数节点(大部分是大学)构成,那时这也许行得通;但现在所有人都可以连接到互联网,这种方式便土崩瓦解。

SSL和TLS都是加密协议,旨在基于不安全的基础设施提供安全通信。这意味着,如果正确部署这些协议,你就可以对互联网上的任意一个服务打开通信信道,并且可以确信你会与正确的服务器通信,安全地交换信息(你的数据不会被他人截取,而且在接收时会保持原样)。这些协议保护着通信链路即传输层,这也是TLS名称的由来。

安全不是TLS的唯一目标。TLS实际上有以下四个主要目标(按优先顺序排列)。

加密安全

这是主要问题:为任意愿意交换信息的双方启用安全通信。

互操作性

独立的编程人员应该能够使用通用的加密参数开发程序和库,使它们可以相互通信。

可扩展性

你很快就会看到,TLS是一种能高效开发和部署加密协议的框架。其重要目标是独立于实际使用的加密基元(例如密码和散列函数),从而不需要创建新的协议,就允许从一个基元迁移到另一个。

效率

最终的目标是在实现上述所有目标的基础上保持性能成本在可接受的范围内。这需要尽量减少昂贵的加密操作的执行次数,并提供一个会话缓存方案,以避免这些加密操作在随后的连接中被执行。

图书网:HTTPS权威指南 在服务器和Web应用上部署SSL/TLS和PKI pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:1   其中:访客  1   博主  0
    • shenxiaoning
      shenxiaoning 9

      这本书的很棒