《信息安全原理與實踐》(第3版)經(jīng)過全面修訂和更新,新增了關(guān)于網(wǎng)絡(luò)安全基礎(chǔ)知識的章節(jié),并擴(kuò)展介紹了跨站腳本(XSS)攻擊、Stuxnet和其他惡意軟件、SSH協(xié)議、安全軟件開發(fā)和安全協(xié)議。書中的新示例說明了RSA密碼體系、橢圓曲線加密、SHA-3,以及包括比特幣和區(qū)塊鏈在內(nèi)的散列函數(shù)的應(yīng)用。更新后的習(xí)題、表和圖有助于讀者學(xué)習(xí)經(jīng)典密碼體系、現(xiàn)代對稱加密、公鑰加密、密碼分析、簡單認(rèn)證協(xié)議、入侵和惡意軟件檢測系統(tǒng)、量子計算等實用知識。這本頗受歡迎的教科書涉及的信息安全方法非常實用: l 涵蓋快速發(fā)展的信息安全領(lǐng)域的**內(nèi)容。 l 解釋會話密鑰、完全正向保密、時間戳、SSH、SSL、IPSec、Kerberos、WEP、GSM和其他認(rèn)證協(xié)議。 l 解決訪問控制技術(shù),包括認(rèn)證和授權(quán)、ACL,以及多級安全和隔離項。 l 討論軟件安全問題,從惡意軟件檢測到安全軟件開發(fā)。 l 包括教師解決方案手冊、PowerPoint幻燈片、講座視頻和其他教學(xué)資源。
本書是一本系統(tǒng)指南,在前版基礎(chǔ)上進(jìn)行了最新修訂,將幫助你從容應(yīng)對當(dāng)今的信息安全挑戰(zhàn)。
《信息安全原理與實踐》是學(xué)生、教師和信息安全專業(yè)人員的用書。作者M(jìn)ark Stamp以清晰、易懂和嚴(yán)謹(jǐn)?shù)慕虒W(xué)方式講解了有關(guān)信息安全的4個關(guān)鍵組成部分:加密、訪問控制、網(wǎng)絡(luò)安全和軟件。另外,本書列舉豐富的示例,這些示例闡明了復(fù)雜的主題,突出了重要的安全問題,演示了保護(hù)數(shù)據(jù)機(jī)密性和完整性的有效方法和策略。
拜托,先生或女士,你不看看我的書嗎?我花了很多年才寫出來的,你不看一下嗎?
Lennon 和McCartney
我討厭黑盒。我撰寫本書的主要目的在于闡明如今信息安全書籍中流行的一些黑盒。另一方面,我不想用瑣碎的細(xì)節(jié)煩擾你如果這是你想要的,可以去讀RFC。因此,本書經(jīng)常會忽略那些我認(rèn)為與所要表達(dá)的觀點無關(guān)的細(xì)節(jié)。你可以判斷我是否在這兩個相互競爭的目標(biāo)之間取得了適當(dāng)?shù)钠胶狻?br />我一直在努力持續(xù)跟進(jìn),以便涵蓋廣泛的主題。本書的目標(biāo)是深入討論每一項內(nèi)容,以便你能夠理解安全問題,同時不會在細(xì)節(jié)上陷入太多的困境。我還試圖定期強調(diào)和重申要點,這樣就不會錯過關(guān)鍵信息。
撰寫本書的另一個目標(biāo)是以生動有趣的方式呈現(xiàn)主題。如果有任何計算主題令人興奮和富有趣味,那就是信息安全。
我也試圖在本書中插入一點幽默。人們說幽默源于痛苦,從笑話的質(zhì)量來看,可以說我的生活絕對是有魔力的。無論如何,大多數(shù)糟糕的笑話都會在腳注中出現(xiàn),所以它們不會太分散你的注意力。
一些安全教科書提供了大量枯燥的理論。閱讀它們就像閱讀微積分教科書一樣令人興奮。其他書籍提供了一些看似隨機(jī)的、不相關(guān)的事實,給人的印象是安全根本不是一個真正連貫的主題。還有一些書籍把這個主題描述成一堆高級的管理性陳詞濫調(diào)。最后,一些書側(cè)重于安全中人的因素。雖然所有這些方法都有它們的作用,但我的看法是,首先,安全工程師必須完全理解底層技術(shù)的固有優(yōu)勢和弱點。
信息安全是一個巨大的主題,與其他更成熟的領(lǐng)域不同,這類書應(yīng)該包括什么內(nèi)容,或者如何以最佳方式組織它,作者并不完全清楚。我選擇圍繞以下四個主題來組織本書:
?? 加密技術(shù)
?? 訪問控制
?? 網(wǎng)絡(luò)安全
?? 軟件
在上述結(jié)構(gòu)中,這些主題富有彈性。例如,在訪問控制主題下,包含了傳統(tǒng)的認(rèn)證和授權(quán)主題,以及CAPTCHA 之類的非傳統(tǒng)主題。軟件主題非常靈活,包括軟件開發(fā)、惡意軟件和逆向工程等各種話題。
雖然本書關(guān)注的是實際問題,但已盡力涵蓋了足夠多的基本原則,這樣就可以為從事該領(lǐng)域的進(jìn)一步研究做好準(zhǔn)備。此外,我已盡可能地將背景要求降到最低。特別是,數(shù)學(xué)形式主義被保持在最低限度(附錄包含幾個基本數(shù)學(xué)主題的回顧)。盡管存在這種自我強加的限制,但我相信這本書比大多數(shù)安全書籍包含了更多實質(zhì)性的加密技術(shù)。學(xué)習(xí)本書,所需的計算機(jī)科學(xué)背景也很少一門介紹性的計算機(jī)組織課程(或類似的經(jīng)驗)就足夠了。假設(shè)你有一些編程經(jīng)驗,那么匯編語言的基本知識在幾個章節(jié)中會有幫助,但不是強制性的。本書涵蓋了網(wǎng)絡(luò)基礎(chǔ)知識,因此不需要具備之前在該領(lǐng)域的知識或經(jīng)驗。
如果你是一名信息技術(shù)專業(yè)人員,正在努力學(xué)習(xí)更多關(guān)于安全的知識,我建議你閱讀整本書。本書中大多數(shù)話題都是相互關(guān)聯(lián)的,跳過少數(shù)不相關(guān)的話題也不會節(jié)省太多時間。即使你是某個領(lǐng)域的專家,至少瀏覽一下我的介紹也是值得的,因為在這個領(lǐng)域使用術(shù)語時經(jīng)常會出現(xiàn)不一致的情況,本書可能會提供一個不同于你在其他書中看到的視角。
如果你在教授一門安全課程,本書包含的內(nèi)容可能會比一學(xué)期的課程所能涵蓋的知識稍微多一點。我在本科安全課程上通常遵循的時間表如表1 所示。
表1 教學(xué)大綱建議
章節(jié) 時長 建議范圍
1. 引言 1 全部
2. 經(jīng)典加密 3 全部
3. 對稱密碼 4 全部
4. 公鑰加密 4 全部
5. 加密散列函數(shù) 4 省略5.7 節(jié)中的攻擊細(xì)節(jié)
6. 認(rèn)證 4 全部
7. 授權(quán) 2 全部
8. 網(wǎng)絡(luò)安全基礎(chǔ) 3 省略8.5 節(jié)
9. 簡單認(rèn)證協(xié)議 4 省略9.4 節(jié)
10. 現(xiàn)實世界的安全協(xié)議 4 省略WEP 或GSM
章節(jié) 時長 建議范圍
11. 軟件缺陷與惡意軟件 4 全部
12. 軟件中的不安全因素 3 全部
總計 40
安全不是一項觀賞性的運動解答大量的作業(yè)習(xí)題是學(xué)習(xí)本書內(nèi)容的一個重要方面。許多主題在習(xí)題中進(jìn)一步充實,有時會引入額外的主題。底線是你解決的問題越多,你學(xué)到的知識就越多。
基于本書的安全課程是個人或團(tuán)體項目的理想選擇。教科書網(wǎng)站(http://www.cs.sjsu.edu/~stamp/infosec/)包括關(guān)于密碼分析的部分,這是加密項目的一個可能來源。此外,許多作業(yè)習(xí)題很適合課堂討論或課堂作業(yè),例如第10 章中的問題16或第11 章中的問題17。
在教科書網(wǎng)站上你可以找到PowerPoint 幻燈片、習(xí)題中提到的所有文件、勘誤表和許多其他有用的東西。如果第一次教授這門課,我會特別推薦PowerPoint幻燈片,這些幻燈片已經(jīng)過徹底的實戰(zhàn)檢驗,并經(jīng)過多次改進(jìn)。
附錄中提到的數(shù)學(xué)知識在本書中是如何應(yīng)用的呢?初等模運算出現(xiàn)在第3 章和第5 章的幾節(jié)中,而數(shù)論結(jié)果需要在第4 章和第9 章的9.5 節(jié)中使用。我發(fā)現(xiàn)大多數(shù)學(xué)生都需要溫習(xí)模運算基礎(chǔ)知識。只需要20~30 分鐘的課堂時間就可以涵蓋模運算的內(nèi)容,在深入研究公鑰加密技術(shù)之前,花費這些時間是非常值得的。
附錄中簡要討論的置換在第3 章中最為突出,關(guān)于離散概率的材料需要在第6 章的密碼破解部分找到。
就像任何大型復(fù)雜的軟件項目都有缺陷一樣,可以形而上學(xué)地認(rèn)為本書也會有不足。我想知道你發(fā)現(xiàn)的任何問題或大或小。我將努力在教科書網(wǎng)站上維護(hù)一份最新的勘誤表。此外,不要猶豫,請為這本書的未來版本提供任何建議。
第3 版的新增內(nèi)容
本書的幾部分被重新組織和擴(kuò)展,而其他部分(和兩個完整的章節(jié))被刪除。
網(wǎng)絡(luò)安全的主要部分涵蓋了更廣泛的主題,包括網(wǎng)絡(luò)簡介,這使得基于本書的課程更獨立。根據(jù)本書的使用者反饋,在加密章節(jié)中新增了額外的例子,而協(xié)議章節(jié)已被修改和擴(kuò)展。第1 版和第2 版包含了一章關(guān)于現(xiàn)代密碼分析的內(nèi)容,這一章已從第3 版中刪除了,但仍然可以在教科書網(wǎng)站上找到,其他被刪除的主題也是如此。
所有的圖形都經(jīng)過了重新處理,變得更清晰、更好。當(dāng)然,第2 版中所有已知的錯誤都被改正。作業(yè)習(xí)題也已進(jìn)行了更新。
信息安全是一個不斷發(fā)展的領(lǐng)域,自本書于2005 年首次出版以來,已發(fā)生了一些重大變化。然而,第1 版的基本結(jié)構(gòu)大體上保持不變。我相信這些年來本書主題的組織和列表一直保持得很好。因此,對于第3 版,本書的結(jié)構(gòu)變化更多的是進(jìn)化而不是革命。
在此要說明的是,本書的參考文獻(xiàn)和第12 章習(xí)題中提到的一些壓縮文件讀者可通過掃描封底的二維碼進(jìn)行下載。
Mark Stamp
Los Gatos, California
2021 年6 月
Mark Stamp博士在信息安全領(lǐng)域擁有超過25年的經(jīng)驗。他曾在一家硅谷公司任職,在學(xué)術(shù)界擔(dān)任計算機(jī)科學(xué)教授,在政府部門擔(dān)任國家安全局的密碼學(xué)科學(xué)家,發(fā)表了120多篇與信息安全相關(guān)的學(xué)術(shù)研究文章并撰寫了3本書。
第1 章 引言 1
1.1 人物角色 1
1.2 Alice 的網(wǎng)上銀行 2
1.2.1 機(jī)密性、完整性和可用性 2
1.2.2 CIA 并不是全部 3
1.3 關(guān)于本書 4
1.3.1 加密技術(shù) 5
1.3.2 訪問控制 5
1.3.3 網(wǎng)絡(luò)安全 6
1.3.4 軟件 6
1.4 人的問題 7
1.5 原理和實踐 7
1.6 習(xí)題 8
第Ⅰ部分 加密
第2 章 經(jīng)典加密 14
2.1 引言 14
2.2 何謂加密 15
2.3 經(jīng)典密碼 17
2.3.1 簡單代換密碼 17
2.3.2 簡單代換密碼分析 19
2.3.3 安全的定義 20
2.3.4 雙換位密碼 21
2.3.5 一次性密碼 22
2.3.6 密碼本密碼 25
2.4 歷史上的經(jīng)典加密 27
2.4.1 1876 年大選的密碼 27
2.4.2 齊默爾曼電報 29
2.4.3 VENONA 計劃 30
2.5 現(xiàn)代密碼史 31
2.6 加密技術(shù)分類 34
2.7 密碼分析技術(shù)分類 35
2.8 小結(jié) 36
2.9 習(xí)題 37
第3 章 對稱密碼 42
3.1 引言 42
3.2 流密碼 43
3.2.1 A5/1 44
3.2.2 RC4 46
3.3 分組密碼 48
3.3.1 Feistel 密碼 48
3.3.2 DES 49
3.3.3 3DES 54
3.3.4 AES 56
3.3.5 TEA 58
3.3.6 分組密碼模式 60
3.4 完整性 64
3.5 量子計算機(jī)和對稱加密 65
3.6 小結(jié) 67
3.7 習(xí)題 68
第4 章 公鑰加密 73
4.1 引言 73
4.2 背包加密方案 75
4.3 RSA 79
4.3.1 教科書RSA 示例 80
4.3.2 反復(fù)平方 81
4.3.3 加速RSA 83
4.4 Diffie-Hellman 84
4.5 橢圓曲線加密 85
4.5.1 橢圓曲線數(shù)學(xué) 86
4.5.2 ECC Diffie Hellman 88
4.5.3 實際的橢圓曲線示例 89
4.6 公鑰符號 89
4.7 公鑰加密的作用 90
4.7.1 現(xiàn)實世界中的機(jī)密性 90
4.7.2 簽名和不可否認(rèn)性 91
4.7.3 機(jī)密性和不可否認(rèn)性 92
4.8 證書和PKI 94
4.9 量子計算機(jī)和公鑰 96
4.10 小結(jié) 97
4.11 習(xí)題 98
第5 章 加密散列函數(shù) 106
5.1 引言 107
5.2 什么是加密散列函數(shù) 107
5.3 生日問題 109
5.4 生日攻擊 110
5.5 非加密散列 111
5.6 SHA-3 112
5.7 HMAC 115
5.8 加密散列應(yīng)用程序 117
5.8.1 在線競價 117
5.8.2 區(qū)塊鏈 118
5.9 各種加密相關(guān)主題 125
5.9.1 秘密共享 125
5.9.2 隨機(jī)數(shù) 129
5.9.3 信息隱藏 131
5.10 小結(jié) 134
5.11 習(xí)題 135
第Ⅱ部分 訪問控制
第6 章 認(rèn)證 146
6.1 引言 146
6.2 認(rèn)證方法 147
6.3 密碼 148
6.3.1 密鑰與密碼 149
6.3.2 選擇密碼 149
6.3.3 通過密碼攻擊系統(tǒng) 151
6.3.4 密碼驗證 152
6.3.5 密碼破解的數(shù)學(xué)原理 153
6.3.6 其他密碼問題 157
6.4 生物識別 158
6.4.1 錯誤類型 160
6.4.2 生物識別技術(shù)示例 160
6.4.3 生物識別錯誤率 165
6.4.4 生物識別結(jié)論 166
6.5 你擁有的東西 166
6.6 雙因子認(rèn)證 167
6.7 單點登錄和Web cookie 167
6.8 小結(jié) 168
6.9 習(xí)題 169
第7 章 授權(quán) 177
7.1 引言 177
7.2 授權(quán)簡史 178
7.2.1 橙皮書 179
7.2.2 通用標(biāo)準(zhǔn) 181
7.3 訪問控制矩陣 182
7.3.1 ACL 和能力 183
7.3.2 混淆代理 184
7.4 多級安全模型 185
7.4.1 Bell-LaPadula 187
7.4.2 Biba 模型 188
7.4.3 隔離項 189
7.5 隱秘信道 191
7.6 推理控制 193
7.7 CAPTCHA 194
7.8 小結(jié) 196
7.9 習(xí)題 197
第Ⅲ部分 網(wǎng)絡(luò)安全主題
第8 章 網(wǎng)絡(luò)安全基礎(chǔ) 202
8.1 引言 202
8.2 網(wǎng)絡(luò)基礎(chǔ) 203
8.2.1 協(xié)議棧 204
8.2.2 應(yīng)用層 205
8.2.3 傳輸層 207
8.2.4 網(wǎng)絡(luò)層 210
8.2.5 鏈路層 211
8.3 跨站腳本攻擊 213
8.4 防火墻 215
8.4.1 包過濾防火墻 216
8.4.2 基于狀態(tài)檢測的包過濾防火墻 218
8.4.3 應(yīng)用代理 218
8.4.4 縱深防御 219
8.5 入侵檢測系統(tǒng) 220
8.5.1 基于特征的入侵檢測系統(tǒng) 222
8.5.2 基于異常的入侵檢測系統(tǒng) 223
8.6 小結(jié) 227
8.7 習(xí)題 227
第9 章 簡單認(rèn)證協(xié)議 233
9.1 引言 233
9.2 簡單安全協(xié)議 235
9.3 認(rèn)證協(xié)議 237
9.3.1 利用對稱密鑰進(jìn)行認(rèn)證 240
9.3.2 利用公鑰進(jìn)行認(rèn)證 243
9.3.3 會話密鑰 244
9.3.4 完全正向保密 246
9.3.5 雙向認(rèn)證、會話密鑰以及PFS 248
9.3.6 時間戳 248
9.4 認(rèn)證與TCP 協(xié)議 250
9.5 零知識證明 253
9.6 協(xié)議分析技巧 257
9.7 小結(jié) 258
9.8 習(xí)題 259
第10 章 現(xiàn)實世界的安全協(xié)議 267
10.1 引言 267
10.2 SSH 268
10.3 SSL 270
10.3.1 SSL 和中間人 272
10.3.2 SSL 連接 273
10.3.3 SSL 與IPsec 274
10.4 IPsec 275
10.4.1 IKE 階段1 276
10.4.2 IKE 階段2 283
10.4.3 IPsec 和IP 數(shù)據(jù)報 284
10.4.4 傳輸和隧道模式 285
10.4.5 ESP 和AH 286
10.5 Kerberos 288
10.5.1 Kerberized 登錄 289
10.5.2 Kerberos 票據(jù) 290
10.5.3 Kerberos 的安全 291
10.6 WEP 292
10.6.1 WEP 認(rèn)證 293
10.6.2 WEP 加密 293
10.6.3 WEP 協(xié)議的不完整性 294
10.6.4 WEP 的其他問題 295
10.6.5 WEP:底線 295
10.7 GSM 295
10.7.1 GSM 架構(gòu) 296
10.7.2 GSM 安全架構(gòu) 298
10.7.3 GSM 認(rèn)證協(xié)議 300
10.7.4 GSM 安全缺陷 300
10.7.5 GSM 結(jié)論 303
10.7.6 3GPP 303
10.8 小結(jié) 304
10.9 習(xí)題 304
第Ⅳ部分 軟件
第11 章 軟件缺陷與惡意軟件 314
11.1 引言 314
11.2 軟件缺陷 315
11.2.1 緩沖區(qū)溢出 318
11.2.2 不完全驗證 328
11.2.3 競爭條件 329
11.3 惡意軟件 330
11.3.1 惡意軟件示例 331
11.3.2 惡意軟件檢測 337
11.3.3 惡意軟件的未來 339
11.3.4 惡意軟件檢測的未來 340
11.4 基于軟件的各式攻擊 340
11.4.1 臘腸攻擊 341
11.4.2 線性攻擊 341
11.4.3 定時炸彈 343
11.4.4 信任軟件 344
11.5 小結(jié) 344
11.6 習(xí)題 345
第12 章 軟件中的不安全因素 353
12.1 引言 353
12.2 軟件逆向工程 354
12.2.1 Java 字節(jié)碼逆向工程 356
12.2.2 SRE 示例 358
12.2.3 防反匯編技術(shù) 362
12.2.4 反調(diào)試技術(shù) 363
12.2.5 軟件防篡改 364
12.3 軟件開發(fā) 366
12.3.1 缺陷和測試 367
12.3.2 安全軟件的開發(fā) 369
12.4 小結(jié) 369
12.5 習(xí)題 370
附錄 376