《HTTPS權威指南:在伺服器和Web套用上部署SSL TLS和PKI》是2020年3月人民郵電出版社出版的圖書,作者是[英]伊萬·里斯蒂奇(Ivan Risti)。
基本介紹
- 書名:HTTPS權威指南:在伺服器和Web套用上部署SSL TLS和PKI
- 作者:[英]伊萬·里斯蒂奇(Ivan Risti)
- ISBN:9787115432728
- 頁數:417頁
- 定價:99元
- 出版社:人民郵電出版社
- 出版時間:2020年3月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書是集理論、協定細節、漏洞分析、部署建議於一體的詳盡Web套用安全指南。書中具體內容包括:密碼學基礎,TLS協定,PKI體系及其安全性,HTTP和瀏覽器問題,協定漏洞;新的攻擊形式,如BEAST、CRIME、BREACH、Lucky 13等;詳盡的部署建議;如何使用OpenSSL生成密鑰和確認信息;如何使用Apache httpd、IIS、Nginx等進行安全配置。
圖書目錄
第 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 stapling 49
2.13 協定限制 49
2.14 協定版本間的差異 50
2.14.1 SSL 3 50
2.14.2 TLS 1.0 50
2.14.3 TLS 1.1 50
2.14.4 TLS 1.2 51
第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章 攻擊PKI 71
4.1 VeriSign簽發的Microsoft代碼簽名證書 71
4.2 Thawte簽發的login.live.com 72
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 DigiNotar 80
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 火焰病毒對抗MD5 88
4.11 TURKTRUST 89
4.12 ANSSI 90
4.13 印度國家信息中心 91
4.14 廣泛存在的SSL竊聽 91
4.14.1 Gogo 91
4.14.2 Superfish和它的朋友們 92
4.15 CNNIC 93
第5章 HTTP和瀏覽器問題 95
5.1 sidejacking 95
5.2 Cookie竊取 97
5.3 Cookie篡改 98
5.3.1 了解HTTP Cookie 98
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 FREAK 139
6.4.1 出口密碼 140
6.4.2 攻擊 140
6.4.3 影響和緩解方法 143
6.5 Logjam 144
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 BEAST 169
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 CRIME 181
7.3.4 針對TLS和SPDY攻擊的緩解方法 187
7.3.5 針對HTTP壓縮攻擊的緩解方法 188
7.4 Lucky 13 189
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 POODLE 204
7.7.1 實際攻擊 207
7.7.2 影響 208
7.7.3 緩解方法 208
7.8 Bullrun 209
第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 選擇合適的CA 218
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 13 226
8.6.5 RC4 226
8.6.6 TIME和BREACH(HTTP) 227
8.6.7 三次握手攻擊 227
8.6.8 心臟出血 228
8.7 釘扎 228
8.8 HTTP 228
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 配置HSTS 252
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 Mitigation Experience Toolkit 265
10.3.7 HTTP公鑰釘扎擴展 265
10.3.8 DANE 267
10.3.9 證書密鑰可信保證 270
10.3.10 證書頒發機構授權 271
第 11章 OpenSSL 272
11.1 入門 272
11.1.1 確定OpenSSL版本和配置 273
11.1.2 構建OpenSSL 274
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 非互動方式生成CSR 282
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 創建根CA 301
11.4.3 創建二級CA 306
第 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 stapling 318
12.11 檢查CRL吊銷狀態 319
12.12 測試重新協商 321
12.13 測試BEAST漏洞 322
12.14 測試心臟出血 323
12.15 確定Diffie-Hellman參數的強度 325
第 13章 配置Apache 327
13.1 安裝靜態編譯OpenSSL的Apache 328
13.2 啟用TLS 329
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 stapling 336
13.10.1 配置OCSP stapling 336
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 BEAST 344
13.14.3 CRIME 344
13.15 部署HTTP嚴格傳輸安全 345
13.16 監視會話快取狀態 346
13.17 記錄協商的TLS參數 346
13.18 使用mod_sslhaf的高 級日誌記錄 347
第 14章 配置Java和Tomcat 349
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 Tomcat 366
14.2.1 TLS配置 369
14.2.2 JSSE配置 371
14.2.3 APR和OpenSSL配置 373
第 15章 配置Microsoft Windows和IIS 375
15.1 Schannel 375
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-2 391
15.3.8 第三方工具 393
15.4 保護ASP.NET網站套用的安全 394
15.4.1 強制使用SSL 394
15.4.2 Cookie的保護 395
15.4.3 保護會話Cookie和Forms身份驗證的安全 395
15.4.4 部署HTTP嚴格傳輸安全 396
15.5 Internet信息服務 396
第 16章 配置Nginx 402
16.1 以靜態連結OpenSSL方式安裝Nginx 402
16.2 啟用TLS 403
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 stapling 407
16.10.1 配置OCSP stapling 408
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 BEAST 415
16.15.3 CRIME 415
16.16 部署HTTP嚴格傳輸安全 415
16.17 TLS緩衝區調優 416
16.18 日誌記錄 416
第 17章 總結 418