本書系統介紹計算機安全領域中的各個方面,不但包括相關的技術和應用方面的內容,同時還包括管理方面的內容。全書覆蓋IEEE/ACM計算機科學教學大綱中核心內容的所有相關主題,可以用作CISSP認證考試的準備材料,還包括計算機安全、技術和理論、軟件安全、管理問題、密碼算法、因特網安全等內容的深入討論。
作者簡介威廉·斯托林斯(William Stallings)博士已撰寫著作18部,再加上這些著作的修訂版,共出版70多本計算機方面的書籍。他的作品出現在很多ACM和IEEE的系列出版物中,包括《IEEE會議論文集》(Proceedings of the IEEE)和《ACM計算評論》(ACM Computing Reviews)。他曾11次獲得“教材和學術專著作者協會”(Text and Academic Authors Association)頒發的“年度最佳計算機科學教材”獎。 在計算機領域的30多年中,威廉·斯托林斯博士曾經做過技術員、技術經理和幾家高科技公司的主管。他曾為多種計算機和操作系統設計并實現了基于TCP/IP和基于OSI的協議組,從微型計算機到大型機都有涉及。目前,他是一名獨立技術顧問,其客戶包括計算機與網絡設備制造商和用戶、軟件開發公司和政府的前沿領域研究機構等。 威廉·斯托林斯博士創建并維護著計算機科學學生資源網站ComputerScienceStudent.com。這個網站為學習計算機科學的學生(和專業技術人員)提供了各種主題的相關文檔和鏈接。威廉·斯托林斯博士是學術期刊《Cryptologia》的編委會成員之一,該期刊涉及密碼學的各個方面。 勞里·布朗(Lawrie Brown)博士是澳大利亞國防大學工程與信息技術學院的高級講師。 他的專業興趣涉及通信和計算機系統安全以及密碼學,包括通過代理證書進行客戶端認證、電子商務和Web環境下的可信及安全、使用函數式編程語言Erlang設計安全的遠端代碼執行環境,以及LOKI族分組密碼的設計與實現。 當前,他所教授的課程包括網絡安全和數據結構,曾教授過密碼學、數據通信和Java編程等。
出版者的話
譯者序
前言
作者簡介
符號
第0章 讀者和教師指南1
0.1 本書概要1
0.2 讀者與教師閱讀指南 1
0.3 支持CISSP認證2
0.4支持NSA/DHS認證3
0.5支持ACM/IEEE計算機協會計算機科學課程20134
0.6Internet和Web資源5
0.6.1本書的支持網站5
0.6.2計算機科學學生資源網站6
0.6.3其他Web站點6
0.7標準6
第1章 概述8
1.1計算機安全的概念8
1.1.1計算機安全的定義8
1.1.2實例9
1.1.3計算機安全面臨的挑戰10
1.1.4一個計算機安全模型11
1.2威脅、攻擊和資產13
1.2.1威脅與攻擊13
1.2.2威脅與資產14
1.3安全功能要求17
1.4基本安全設計原則18
1.5攻擊面和攻擊樹21
1.5.1攻擊面21
1.5.2攻擊樹21
1.6計算機安全策略23
1.6.1安全策略23
1.6.2安全實施24
1.6.3保證和評估24
1.7推薦讀物25
1.8關鍵術語、復習題和習題25
第一部分 計算機安全技術與原理
第2章 密碼編碼工具30
2.1用對稱加密實現機密性30
2.1.1對稱加密30
2.1.2對稱分組加密算法31
2.1.3流密碼33
2.2消息認證和散列函數34
2.2.1利用對稱加密實現認證35
2.2.2無須加密的消息認證35
2.2.3安全散列函數38
2.2.4散列函數的其他應用39
2.3公鑰加密40
2.3.1公鑰加密的結構40
2.3.2公鑰密碼系統的應用42
2.3.3對公鑰密碼的要求42
2.3.4非對稱加密算法42
2.4數字簽名和密鑰管理43
2.4.1數字簽名43
2.4.2公鑰證書44
2.4.3利用公鑰加密實現對稱密鑰交換45
2.4.4數字信封45
2.5隨機數和偽隨機數46
2.5.1隨機數的使用46
2.5.2隨機與偽隨機47
2.6實際應用:存儲數據的加密47
2.7推薦讀物48
2.8關鍵術語、復習題和習題49
第3章 用戶認證53
3.1電子用戶認證方法53
3.1.1電子用戶認證模型54
3.1.2認證方法54
3.1.3用戶認證的風險評估55
3.2基于口令的認證56
3.2.1口令的脆弱性57
3.2.2散列口令的使用58
3.2.3破解“用戶選擇”口令59
3.2.4口令文件訪問控制61
3.2.5口令選擇策略62
3.3基于令牌的認證65
3.3.1存儲卡65
3.3.2智能卡65
3.3.3電子身份證66
3.4生物特征認證68
3.4.1用于生物特征認證應用的身體特征68
3.4.2生物特征認證系統的運行69
3.4.3生物特征認證的準確度70
3.5遠程用戶認證72
3.5.1口令協議72
3.5.2令牌協議72
3.5.3靜態生物特征認證協議73
3.5.4動態生物特征認證協議74
3.6用戶認證中的安全問題74
3.7實際應用:虹膜生物特征認證系統75
3.8案例學習:ATM系統的安全問題76
3.9推薦讀物78
3.10關鍵術語、復習題和習題79
第4章 訪問控制81
4.1訪問控制原理81
4.1.1訪問控制語境81
4.1.2訪問控制策略82
4.2主體、客體和訪問權83
4.3自主訪問控制83
4.3.1一個訪問控制模型85
4.3.2保護域88
4.4實例:UNIX文件訪問控制88
4.4.1傳統的UNIX文件訪問控制88
4.4.2UNIX中的訪問控制列表90
4.5基于角色的訪問控制90
4.6基于屬性的訪問控制94
4.6.1 屬性94
4.6.2ABAC邏輯架構95
4.6.3ABAC策略96
4.7身份、憑證和訪問管理98
4.7.1身份管理98
4.7.2憑證管理99
4.7.3訪問管理100
4.7.4身份聯合100
4.8信任框架100
4.8.1傳統的身份交換方法100
4.8.2開放的身份信任框架101
4.9案例學習:銀行的RBAC系統103
4.10推薦讀物104
4.11關鍵術語、復習題和習題105
第5章 數據庫與云安全109
5.1數據庫安全需求109
5.2數據庫管理系統110
5.3關系數據庫111
5.3.1關系數據庫系統要素111
5.3.2結構化查詢語言112
5.4SQL注入攻擊114
5.4.1一種典型的SQLi攻擊114
5.4.2注入技術115
5.4.3SQLi攻擊途徑和類型116
5.4.4SQLi應對措施117
5.5數據庫訪問控制118
5.5.1基于SQL的訪問定義118
5.5.2級聯授權119
5.5.3基于角色的訪問控制120
5.6推理121
5.7數據庫加密123
5.8云計算126
5.8.1云計算要素126
5.8.2云計算參考架構128
5.9云安全風險及應對措施130
5.10云中的數據保護131
5.11云安全即服務132
5.12推薦讀物134
5.13關鍵術語、復習題和習題135
第6章 惡意軟件140
6.1惡意軟件的類型140
6.1.1一個粗略的分類141
6.1.2攻擊工具包142
6.1.3攻擊源142
6.2高級持續性威脅142
6.3傳播-感染內容-病毒143
6.3.1病毒的性質143
6.3.2病毒的分類145
6.3.3宏病毒和腳本病毒146
6.4傳播-漏洞利用-蠕蟲146
6.4.1發現目標147
6.4.2蠕蟲傳播模型148
6.4.3Morris蠕蟲149
6.4.4蠕蟲攻擊簡史149
6.4.5蠕蟲技術的現狀151
6.4.6移動代碼151
6.4.7手機蠕蟲152
6.4.8客戶端漏洞和夾帶式下載152
6.4.9點擊劫持153
6.5傳播-社會工程學-垃圾電子郵件、木馬153
6.5.1垃圾(大量不請自來的)電子郵件153
6.5.2特洛伊木馬154
6.5.3手機木馬154
6.6載荷-系統損壞155
6.6.1數據損壞155
6.6.2物理損害155
6.6.3邏輯炸彈156
6.7載荷-攻擊代理- zombie、bot156
6.7.1bot的用途156
6.7.2遠程控制功能157
6.8載荷-信息竊取-鍵盤記錄器、網絡釣魚、間諜軟件157
6.8.1憑證盜竊、鍵盤記錄器和間諜軟件158
6.8.2網絡釣魚和身份盜竊158
6.8.3偵察、間諜和數據滲漏158
6.9 載荷-隱蔽-后門、rootkit159
6.9.1后門159
6.9.2rootkit159
6.9.3內核模式下的rootkit160
6.9.4虛擬機和其他外部rootkit161
6.10對抗手段161
6.10.1針對惡意軟件的對抗措施161
6.10.2基于主機的掃描器163
6.10.3邊界掃描方法165
6.10.4分布式情報收集方法165
6.11推薦讀物166
6.12關鍵術語、復習題和習題167
第7章 拒絕服務攻擊170
7.1 拒絕服務攻擊170
7.1.1 拒絕服務攻擊簡介170
7.1.2 經典的拒絕服務攻擊172
7.1.3 源地址欺騙173
7.1.4 SYN欺騙174
7.2 洪泛攻擊176
7.2.1 ICMP洪泛176
7.2.2 UDP洪泛176
7.2.3 TCP SYN洪泛176
7.3 分布式拒絕服務攻擊177
7.4 基于應用的帶寬攻擊178
7.4.1 SIP洪泛178
7.4.2 基于HTTP的攻擊179
7.5 反射攻擊與放大攻擊180
7.5.1 反射攻擊180
7.5.2 放大攻擊182
7.5.3 DNS放大攻擊183
7.6 拒絕服務攻擊防范184
7.7 對拒絕服務攻擊的響應186
7.8 推薦讀物187
7.9 關鍵術語、復習題和習題188
第8章 入侵檢測190
8.1 入侵者190
8.1.1 入侵者行為192
8.2 入侵檢測193
8.2.1 基本原理194
8.2.2 基率謬誤195
8.2.3 要求195
8.3 分析方法195
8.3.1 異常檢測195
8.3.2 特征或啟發式檢測197
8.4 基于主機的入侵檢測197
8.4.1 數據源和傳感器197
8.4.2 異常HIDS198
8.4.3 特征或啟發式HIDS199
8.4.4 分布式HIDS200
8.5 基于網絡的入侵檢測201
8.5.1 網絡傳感器的類型201
8.5.2 NIDS傳感器部署202
8.5.3 入侵檢測技術203
8.5.4 警報日志記錄204
8.6 分布式或混合式入侵檢測205
8.7 入侵檢測交換格式 207
8.8 蜜罐208
8.9 實例系統:Snort210
8.9.1 Snort體系結構 210
8.9.2 Snort規則211
8.10 推薦讀物213
8.11 關鍵術語、復習題和習題213
第9章 防火墻與入侵防護系統216
9.1 防火墻的必要性216
9.2 防火墻的特征和訪問策略217
9.3 防火墻的類型218
9.3.1 包過濾防火墻218
9.3.2 狀態檢測防火墻221
9.3.3 應用級網關222
9.3.4 電路級網關222
9.4 防火墻的布置223
9.4.1 堡壘主機223
9.4.2 基于主機的防火墻223
9.4.3 個人防火墻224
9.5 防火墻的部署和配置225
9.5.1 DMZ網絡225
9.5.2 虛擬專用網絡225
9.5.3 分布式防火墻227
9.5.4 防火墻部署和拓撲結構小結227
9.6 入侵防護系統228
9.6.1 基于主機的IPS229
9.6.2 基于網絡的IPS230
9.6.3 分布式或混合式IPS230
9.6.4 Snort Inline231
9.7 實例:一體化威脅管理產品232
9.8 推薦讀物234
9.9 關鍵術語、復習題和習題235
第二部分 軟件安全與可信系統
第10章 緩沖區溢出240
10.1 棧溢出241
10.1.1 緩沖區溢出的基本知識241
10.1.2 棧緩沖區溢出244
10.1.3 shellcode250
10.2 針對緩沖區溢出的防御256
10.2.1 編譯時防御256
10.2.2 運行時防御259
10.3 其他形式的溢出攻擊260
10.3.1 替換棧幀260
10.3.2 返回系統調用261
10.3.3 堆溢出261
10.3.4 全局數據區溢出263
10.3.5 其他類型的溢出263
10.4 推薦讀物264
10.5 關鍵術語、復習題和習題265
第11章 軟件安全267
11.1 軟件安全問題267
11.2 處理程序輸入270
11.2.1 輸入的長度和緩沖區溢出270
11.2.2 程序輸入的解釋271
11.2.3 驗證輸入語法276
11.2.4 輸入的fuzzing技術278
11.3 編寫安全程序代碼278
11.3.1 算法的正確實現279
11.3.2 保證機器語言與算法一致280
11.3.3 數據值的正確解釋280
11.3.4 內存的正確使用281
11.3.5 阻止共享內存競爭條件的產生281
11.4 與操作系統和其他程序進行交互282
11.4.1 環境變量282
11.4.2 使用合適的最小特權284
11.4.3 系統調用和標準庫函數286
11.4.4 阻止共享系統資源的競爭條件的產生288
11.4.5 安全臨時文件的使用289
11.4.6 與其他程序進行交互290
11.5 處理程序輸出291
11.6 推薦讀物292
11.7 關鍵術語、復習題和習題293
第12章 操作系統安全296
12.1 操作系統安全簡介297
12.2 系統安全規劃297
12.3 操作系統加固298
12.3.1 操作系統安裝:初始安裝和補丁安裝298
12.3.2 移除不必要的服務、應用和協議299
12.3.3 配置用戶、組和認證299
12.3.4 配置資源控制300
12.3.5 安裝額外的安全控制工具300
12.3.6 測試系統安全性300
12.4 應用安全301
12.4.1 應用配置301
12.4.2 加密技術301
12.5 安全維護301
12.5.1 日志302
12.5.2 數據備份和存檔302
12.6 Linux/UNIX安全302
12.6.1 補丁管理303
12.6.2 應用和服務配置303
12.6.3 用戶、組和權限303
12.6.4 遠程訪問控制304
12.6.5 日志記錄和日志滾動304
12.6.6 使用chroot監牢的應用安全304
12.6.7 安全性測試305
12.7 Windows安全305
12.7.1 補丁管理305
12.7.2 用戶管理和訪問控制305
12.7.3 應用和服務配置306
12.7.4 其他安全控制工具306
12.7.5 安全性測試307
12.8 虛擬化安全307
12.8.1 虛擬化方案307
12.8.2 虛擬化安全問題308
12.8.3 加固虛擬化系統309
12.9 推薦讀物309
12.10 關鍵術語、復習題和習題310
第13章 可信計算與多級安全312
13.1 計算機安全的Bell-LaPadula模型312
13.1.1 計算機安全模型312
13.1.2 一般描述313
13.1.3 模型的形式化描述314
13.1.4 抽象操作315
13.1.5 BLP應用實例315
13.1.6 實現實例—Multics318
13.1.7 BLP模型的限制319
13.2 計算機安全的其他形式化模型319
13.2.1 Biba完整性模型319
13.2.2 Clark-Wilson完整性模型320
13.2.3 中國墻模型321
13.3 可信系統的概念323
13.3.1 基準監視器324
13.3.2 特洛伊木馬防御324
13.4 多級安全的應用325
13.4.1 基于角色的訪問控制中的多級安全326
13.4.2 數據庫安全與多級安全327
13.5 可信計算與可信平臺模塊329
13.5.1 鑒別引導服務330
13.5.2 認證服務330
13.5.3 加密服務330
13.5.4 TPM功能330
13.5.5 保護存儲331
13.6 信息技術安全評價通用準則332
13.6.1 要求332
13.6.2 輪廓和目標334
13.6.3 保護輪廓實例335
13.7 保障與評價336
13.7.1 目標讀者336
13.7.2 保障范圍336
13.7.3 通用準則評價保障級337
13.7.4 評價過程338
13.8 推薦讀物339
13.9 關鍵術語、復習題和習題340
第14章 IT安全管理與風險評估343
14.1 IT安全管理343
14.2 組織的情境和安全方針345
14.3 安全風險評估347
14.3.1 基線方法348
14.3.2 非形式化方法348
14.3.3 詳細風險分析349
14.3.4 組合方法349
14.4 詳細的安全風險分析350
14.4.1 情境和系統特征350
14.4.2 威脅/風險/脆弱性的確認352
14.4.3 分析風險353
14.4.4 評價風險356
14.4.5 風險處置356
14.5 案例學習:銀星礦業357
14.6 推薦讀物360
14.7 關鍵術語、復習題和習題361
第15章 IT安全控制、計劃和規程363
15.1 IT安全管理的實施363
15.2 安全控制或保障措施363
15.3 IT安全計劃369
15.4 控制的實施369
15.4.1 安全計劃的實施369
15.4.2 安全意識與培訓370
15.5 監視風險370
15.5.1 維護370
15.5.2 安全符合性371
15.5.3 變更與配置管理371
15.5.4 事件處理372
15.6 案例學習:銀星礦業372
15.7 推薦讀物374
15.8 關鍵術語、復習題和習題374
第三部分 管理問題
第16章 物理和基礎設施安全378
16.1 概述378
16.2 物理安全威脅379
16.2.1 自然災害379
16.2.2 環境威脅380
16.2.3 技術威脅383
16.2.4 人為的物理威脅383
16.3 物理安全的防御和減緩措施384
16.3.1 環境威脅384
16.3.2 技術威脅385
16.3.3 人為的物理威脅385
16.4 物理安全破壞的恢復386
16.5 實例:某公司的物理安全策略386
16.6 物理安全和邏輯安全的集成386
16.6.1 個人身份驗證387
16.6.2 在物理訪問控制系統中使用PIV證書389
16.7 推薦讀物391
16.8 關鍵術語、復習題和習題391
第17章 人力資源安全393
17.1 安全意識、培訓和教育393
17.1.1 動機393
17.1.2 學習的持續性394
17.1.3 意識395
17.1.4 培訓396
17.1.5 教育397
17.2 雇用實踐和策略397
17.2.1 招聘過程的安全397
17.2.2 雇用期間的安全398
17.2.3 員工離職過程的安全399
17.3 電子郵件和Internet使用策略399
17.3.1 動機399
17.3.2 策略問題399
17.3.3 制定策略的指南400
17.4 計算機安全事件響應團隊400
17.4.1 事件檢測402
17.4.2 分類功能402
17.4.3 事件響應403
17.4.4 事件歸檔404
17.4.5 事件處理的信息流404
17.5 推薦讀物405
17.6 關鍵術語、復習題和習題406
第18章 安全審計408
18.1 安全審計體系結構408
18.1.1 安全審計和報警模型409
18.1.2 安全審計功能410
18.1.3 需求411
18.1.4 實施指南411
18.2 安全審計跡412
18.2.1 收集什么數據412
18.2.2 保護審計跡數據415
18.3 實現日志功能415
18.3.1 系統級日志功能415
18.3.2 應用程序級日志功能419
18.3.3 插入庫420
18.3.4 動態二進制重寫422
18.4 審計跡分析423
18.4.1 準備423
18.4.2 定時424
18.4.3 審計復核424
18.4.4 數據分析方法425
18.5 實例:一種集成的方法426
18.5.1 SIEM系統426
18.5.2 安全監控、分析和響應系統427
18.6 推薦讀物428
18.7 關鍵術語、復習題和習題429
第19章 法律與道德問題431
19.1 網絡犯罪和計算機犯罪431
19.1.1 計算機犯罪的類型431
19.1.2 執法面臨的挑戰433
19.1.3 積極配合執法434
19.2 知識產權434
19.2.1 知識產權的類型434
19.2.2 與網絡和計算機安全相關的知識產權436
19.2.3 數字千年版權法案436
19.2.4 數字版權管理437
19.3 隱私438
19.3.1 隱私權法律和規章439
19.3.2 機構的回應440
19.3.3 計算機使用的隱私問題440
19.3.4 隱私和數據監管441
19.4 道德問題442
19.4.1 道德和IS行業442
19.4.2 與計算機和信息系統有關的道德問題443
19.4.3 行為規范443
19.4.4 規則445
19.5 推薦讀物446
19.6 關鍵術語、復習題和習題447
第四部分 密碼編碼算法
第20章 對稱加密和消息認證452
20.1 對稱加密原理452
20.1.1 密碼編碼學452
20.1.2 密碼分析453
20.1.3 Feistel密碼結構454
20.2 數據加密標準455
20.2.1 數據加密標準455
20.2.2 三重DES455
20.3 高級加密標準456
20.3.1 算法綜述456
20.3.2 算法的細節459
20.4 流密碼和RC4461
20.4.1 流密碼的結構461
20.4.2 RC4算法462
20.5 分組密碼的工作模式464
20.5.1 電碼本模式464
20.5.2 密碼分組鏈接模式464
20.5.3 密碼反饋模式465
20.5.4 計數器模式467
20.6 對稱加密設備的位置468
20.7 密鑰分發469
20.8 推薦讀物470
20.9 關鍵術語、復習題和習題470
第21章 公鑰密碼和消息認證474
21.1 安全散列函數474
21.1.1 簡單散列函數474
21.1.2 SHA安全散列函數475
21.1.3 SHA-3477
21.2 HMAC477
21.2.1 HMAC設計目標478
21.2.2 HMAC算法478
21.2.3 HMAC的安全性479
21.3 RSA公鑰加密算法479
21.3.1 算法描述480
21.3.2 RSA的安全性481
21.4 Diffie-Hellman和其他非對稱算法484
21.4.1 Diffie-Hellman密鑰交換484
21.4.2 其他公鑰密碼算法486
21.5 推薦讀物487
21.6 關鍵術語、復習題和習題487
第五部分 網絡安全
第22章 Internet安全協議和標準492
22.1 安全E-mail和S/MIME492
22.1.1 MIME492
22.1.2 S/MIME492
22.2 域名密鑰識別郵件標準494
22.2.1 Internet郵件體系結構494
22.2.2 DKIM策略495
22.3 安全套接層和傳輸層安全496
22.3.1 TLS體系結構497
22.3.2 TLS協議497
22.3.3 SSL/TLS攻擊500
22.4 HTTPS501
22.4.1 連接開始502
22.4.2 連接關閉502
22.5 IPv4和IPv6的安全性502
22.5.1 IP安全概述502
22.5.2 IPSec的范圍504
22.5.3 安全關聯504
22.5.4 封裝安全載荷505
22.5.5 傳輸模式和隧道模式505
22.6 推薦讀物506
22.7 關鍵術語、復習題和習題506
第23章 Internet認證應用509
23.1 Kerberos509
23.1.1 Kerberos協議509
23.1.2 Kerberos域和多Kerberi512
23.1.3 版本4和版本5513
23.1.4 性能問題513
23.2 X.509514
23.3 公鑰基礎設施516
23.4 推薦讀物517
23.5 關鍵術語、復習題和習題518
第24章 無線網絡安全521
24.1 無線安全521
24.1.1 無線網絡威脅522
24.1.2 無線安全防護措施522
24.2 移動設備安全523
24.2.1 安全威脅524
24.2.2 移動安全策略524
24.3 IEEE 802.11無線局域網概述526
24.3.1 Wi-Fi聯盟526
24.3.2 IEEE 802 協議架構526
24.3.3 IEEE 802.11網絡組件和架構模型527
24.3.4 IEEE 802.11服務528
24.4 IEEE 802.11i無線局域網安全530
24.4.1 IEEE 802.11i服務530
24.4.2 IEEE 802.11i的操作階段530
24.4.3 發現階段532
24.4.4 認證階段533
24.4.5 密鑰管理階段535
24.4.6 保護數據傳輸階段538
24.4.7 IEEE 802.11i偽隨機函數538
24.5 推薦讀物539
24.6 關鍵術語、復習題和習題540
附錄A 計算機安全教學項目和其他學生練習542
縮略語547
參考文獻549
索引564
在線章節和附錄
第25章 Linux安全
第26章 Windows和Windows Vista安全
附錄B 數論的相關內容
附錄C 標準和標準制定組織
附錄D 隨機數和偽隨機數的生成
附錄E 基于分組密碼的消息鑒別碼
附錄F TCP/IP協議體系結構
附錄G Radix-64轉換
附錄H 安全策略相關的文檔
附錄I 域名系統
附錄J 基率謬誤
附錄K SHA-3
附錄L 術語表