圖書簡介
本書通過一些淺顯的語言的介紹,向讀者揭開密碼學的神秘面紗,書中解釋了兩種密碼技術——對稱秘鑰和公開秘鑰,並說明了他們之間的區別和當前的相關標準和實現,同時還通過不同的實際案例分析了套用密碼技術成敗的關鍵。
歡迎閱讀RSA Press出版的第二本書——RSA信息安全公司的《密碼工程實踐指南》。
圖書導讀
Internet與人們日常生活的聯繫越來越密切,網路安全也迫在眉睫。任何一個參與線上活動的組織必須評估和控制與他們的活動相關的網路安全風險。有效地使用密碼技術是網路安全風險控制策略的核心。本書指導一個組織(企業或事業單位等)正確、可靠地使用密碼學網路安全技術,以保護該組織最寶貴的資產——數據——的保密性、安全性和完整性。
隨著重要的技術、商業和法律事件頻頻發生,密碼學進入了一個令人振奮的時代。本書能幫助讀者更好地了解這些事件背後的技術問題。
相關事件
2001年1月,美國政府宣布徹底放鬆對強密碼出口的限制。這一決定允許美國公司暫時可以同世界上其他國家的公司在密碼商業上競爭。本書所討論的許多算法以前在美國被視為機密,受到嚴格的出口限制。
2000年9月,RSA算法的專利——據說是密碼學中最重要的專利——到期了。任何一個公司或者個人都可以實現這個算法,這進一步增加了這一計算機史上最廣為傳播的技術的知名度。
2000年10月,美國國家標準與技術研究所宣布了高級加密標準(Advanced Encryption Standard, AES)優勝者的選擇程式,這是一個由兩位比利時研究人員發明的稱為Rijndael的算法。AES算法的目的是取代古老的、越來越容易受到攻擊的數據加密標準(Data Encryption Standard, DES)算法。短時間內,AES有望成為該類算法中套用最為廣泛的算法。
貢獻成就
以密碼學為基礎的網路安全技術出現了很多新的選擇,安全技術工業在短期內也得到了蓬勃發展。從密碼學硬體的新發展到公開密鑰基礎設施中個人智慧卡的使用,這些工業繼續擴大了網路安全風險解決方案的可選擇範圍。本書在網路安全的核心密碼技術方面為讀者提供了堅實的基礎,包括前面提到的RSA、AES和DES以及很多其他的技術,然後在此基礎上探討了這些技術在實際套用和邊沿技術中的用途。
雖然本書的確討論了密碼學的數學基礎,但是其主要目的仍在於這些技術在熟知的現實生活中的套用。本書運用系統分析法探討了如何把密碼學套用到網路安全中,說明了網路安全所提供的保護程度是保護鏈中最薄弱的環節。
目錄
序1
譯者序3
鳴謝5
前言7
致謝9
序言11
作者簡介13
第1章密碼學的用途1
1.1計算機作業系統提供的安全2
1.1.1作業系統工作原理2
1.1.2默認的作業系統安全:許可權3
1.1.3攻擊口令字4
1.2繞過作業系統的攻擊6
1.2.1數據恢復攻擊6
1.2.2記憶體重構攻擊7
1.3用密碼學來加強保護10
1.4密碼學在數據安全中的作用11
第2章對稱密鑰密碼學13
2.1一些密碼學術語16
2.2密鑰18
2.3密鑰的必要性19
2.4生成密鑰20
2.4.1隨機數發生器24
2.4.2偽隨機數發生器25
2.5攻擊加密的數據27
2.5.1攻擊密鑰27
2.5.2攻破算法32
2.5.3度量攻破訊息所花費的時間34
2.6對稱算法:密鑰表34
2.7對稱算法:分組密碼和流密碼35
2.7.1分組密碼35
2.7.2流密碼37
2.7.3分組密碼與流密碼的比較41
2.8數字加密標準42
2.9三重DES43
2.10商業DES替代者45
2.10.1高級加密標準45
2.11總結46
2.12現實實例:Oracle資料庫47
第3章對稱密鑰管理48
3.1基於口令字的加密49
3.1.1編程方便性55
3.1.2攻破PBE57
3.1.3降低對口令字攻擊的速度58
3.1.4好口令字60
3.1.5口令字生成器61
3.2基於硬體的密鑰存儲63
3.2.1令牌63
3.2.2密碼加速器67
3.2.3硬體設備和隨機數69
3.3生物統計學69
3.4總結70
3.5現實示例70
3.5.1Keon桌面系統70
3.5.2其他產品72
第4章密鑰分發問題與公鑰密碼學73
4.1預先共享密鑰75
4.1.1該方案的問題76
4.2使用可信的第三方77
4.2.1該方案的問題79
4.3公鑰密碼學與數字信封80
4.4安全問題83
4.4.1攻破公鑰算法84
4.5公鑰密碼學歷史85
4.6公鑰密碼系統的工作原理86
4.6.1RSA算法89
4.6.2DH算法96
4.6.3ECDH算法101
4.7算法比較107
4.7.1安全性107
4.7.2密鑰長度109
4.7.3性能110
4.7.4傳輸長度111
4.7.5互操作性111
4.8保護私鑰112
4.9將數字信封用於密鑰恢復112
4.9.1通過可信任的第三方的密鑰恢復114
4.9.2通過一組託管者的密鑰恢復115
4.9.3使用門限方案的密鑰恢復116
4.9.4門限方案的工作原理119
4.10總結121
4.11現實示例121
第5章數字簽名124
5.1數字簽名的惟一性125
5.2訊息摘要128
5.2.1碰撞131
5.2.2三個重要的摘要算法133
5.2.3大塊數據的表示134
5.2.4數據完整性138
5.3再談數字簽名139
5.4試圖欺騙142
5.5實現認證、數據完整性和非否認143
5.6理解算法144
5.6.1RSA145
5.6.2DSA145
5.6.3ECDSA147
5.7算法比較147
5.7.1安全性148
5.7.2性能148
5.7.3傳輸長度149
5.7.4互操作性149
5.8保護私鑰150
5.9證書簡介150
5.10密鑰恢復153
5.11總結153
5.12現實示例154
第6章公鑰基礎設施與X.509標準155
6.1公鑰證書156
6.1.1惟一標識符158
6.1.2標準的版本3證書擴展項158
6.1.3實體名字161
6.1.4ASN.1表示法和編碼162
6.2PKI的構成163
6.2.1證書頒發機構(CA)163
6.2.2註冊機構(RA)164
6.2.3證書目錄164
6.2.4密鑰恢復伺服器165
6.2.5管理協定166
6.2.6操作協定167
6.3註冊和頒發證書167
6.4吊銷證書168
6.4.1證書吊銷列表(CRL)169
6.4.2掛起證書173
6.4.3機構吊銷列表(ARL)173
6.5信任模型174
6.5.1認證層次結構175
6.5.2交叉認證176
6.5.3X.509證書鏈177
6.5.4推模型與拉模型178
6.6管理密鑰對179
6.6.1生成密鑰對179
6.6.2保護私鑰180
6.6.3管理多個密鑰對181
6.6.4更新密鑰對182
6.6.5保存密鑰對的歷史記錄182
6.7實施PKI183
6.8PKI的未來184
6.8.1漫遊證書184
6.8.2屬性證書185
6.9證書策略與認證實施說明(CPS)186
6.10總結188
6.11現實示例188
6.11.1Keon證書伺服器188
6.11.2KeonWeb護照189
第7章網路層和傳輸層安全協定190
7.1Internet安全協定191
7.1.1IPSec安全體系結構191
7.1.2IPSec服務191
7.2認證頭協定192
7.2.1完整性校驗值的計算193
7.2.2傳輸模式和隧道模式194
7.3封裝安全載荷協定195
7.3.1加密算法197
7.3.2傳輸模式和隧道模式中的ESP197
7.4安全關聯198
7.5安全資料庫201
7.5.1安全策略資料庫201
7.5.2安全關聯資料庫202
7.6密鑰管理203
7.7安全套接字協定層206
7.8會話和連線狀態207
7.9記錄層協定208
7.10更改密碼規範協定210
7.11警告協定210
7.12握手協定211
7.12.1ClientHello訊息212
7.12.2ServerHello訊息213
7.12.3ServerCertificate訊息214
7.12.4ServerKeyExchange訊息215
7.12.5CertificateRequest訊息215
7.12.6ServerHelloDone訊息215
7.12.7ClientCertificate訊息215
7.12.8ClientKeyExchange訊息215
7.12.9CertificateVerify訊息216
7.12.10Finished訊息217
7.12.11結束會話和連線217
7.12.12會話重用217
7.12.13密碼計算218
7.12.14加密和認證算法218
7.13總結219
7.14現實示例219
第8章套用層安全協定221
8.1S/MIME221
8.1.1概述222
8.1.2S/MIME的功能222
8.1.3密碼算法223
8.1.4S/MIME訊息224
8.1.5增強的安全服務229
8.1.6互操作性230
8.2安全電子交易(SET)230
8.2.1商業需求231
8.2.2SET的特點232
8.2.3SET參與者232
8.2.4雙重簽名234
8.2.5SET證書235
8.2.6支付處理236
8.3總結239
8.4現實示例240
第9章硬體解決方案:克服軟體的限制241
9.1密碼加速器241
9.2認證令牌243
9.2.1令牌形狀因子243
9.2.2非接觸式令牌244
9.2.3接觸式令牌247
9.3智慧卡248
9.3.1智慧卡標準248
9.3.2智慧卡類型249
9.3.3讀卡器和終端250
9.4Java卡251
9.4.1歷史和標準252
9.4.2Java卡操作252
9.5其他Java令牌253
9.6生物統計學253
9.6.1生物統計學系統概述254
9.6.2識別方法256
9.6.3生物統計學精確度259
9.7組合各種認證方法260
9.8總結261
9.9廠商262
第10章關於數字簽名的其他話題263
10.1法律途徑264
10.2美國律師協會的法律指南265
10.3與數字簽名有關的法律概念265
10.3.1非否認266
10.3.2認證267
10.3.3手寫簽名與數字簽名268
10.4使用數字簽名的先決條件268
10.4.1公鑰基礎設施(PKI)269
10.4.2密鑰吊銷的控制269
10.4.3時戳269
10.5現行的和即將公布的立法270
10.6法律上不確定性的處理274
10.7總結274
10.8現實示例275
第11章失敗的實施——非法闖入276
11.1估計損失276
11.2安全威脅的種類277
11.2.1數據的非授權泄漏278
11.2.2數據的非授權修改278
11.2.3非授權訪問279
11.2.4網路通信泄漏279
11.2.5網路通信欺騙280
11.3識別入侵者281
11.3.1內部人員281
11.3.2黑客281
11.3.3恐怖分子281
11.3.4外國情報部門282
11.3.5黑客激進分子282
11.3.6入侵者的知識283
11.4案例分析283
11.4.1傳輸中的數據283
11.4.2靜態的數據284
11.4.3認證285
11.4.4實施286
11.5信息安全:法律實施287
11.6總結287
第12章成功的實施——遵從標準289
12.1安全服務與機制289
12.1.1認證290
12.1.2保密性291
12.1.3完整性292
12.1.4非否認性292
12.2標準、指南和法規292
12.2.1Internet工程任務組293
12.2.2ASNIX9293
12.2.3國家標準技術研究所294
12.2.4公共準則295
12.2.5健康保險信息標準化法案295
12.3開發者幫助296
12.3.1保險296
12.3.2安全研究297
12.4案例分析297
12.4.1實現298
12.4.2認證298
12.4.3靜態數據299
12.4.4傳輸中的數據300
12.5總結300
附錄A比特、位元組、十六進制和ASCII碼302
附錄BASN.1子集(BER和DER)非專業人員指南308
附錄C進一步的技術細節348