計算機安全學——安全的藝術與科學

計算機安全學——安全的藝術與科學

本書系統地介紹了計算機安全的基本原理與套用技術。全書包括九大部分,其中安全策略模型部分詳細討論了多種不同安全策略模型的原理,包括bell-lapadula模型、biba模型、中國牆模型、clark-wilson模型等。密碼學部分重點介紹密碼學的套用,包括密鑰管理與密鑰託管、密鑰分配、網路中的密碼系統以及認證理論等問題。非密碼學的安全機制部分介紹計算機安全實現中的多方面內容,包括安全設計原則、身份表達、訪問控制實施、信息流控制等,同時還以專題的形式介紹了惡意代碼、漏洞分析、審計、入侵檢測等原理與技術。安全保障部分介紹可信系統的構建與評估的理論與技術,包括安全保障原理、形式化驗證和可信系統評估標準等。本書還包含大量的實例、科技文獻介紹以及實踐內容,為幫助讀者閱讀,還介紹了書中用到的數學知識。本書內容廣博,實例詳盡,具有很高的理論與實踐參考價值,可作為研究生和高年級本科生的教材,也可供從事信息安全、計算機、數碼通信等領域的科技人員參考。

基本介紹

  • 中文名:計算機安全學——安全的藝術與科學
  • 外文名:Computer Security: Art and Scienc
  • 作者:(美)Matt Bishop
  • 譯者:王立斌 黃征
  • 出版社:電子工業出版社
基本信息,編輯推薦,目錄,前言,

基本信息

原書名:Computer Security: Art and Scienc
原出版社:Addison Wesley/Pearson
作者:(美)Matt Bishop
譯者:王立斌 黃征
叢書名:國外計算機科學教材系列
出版社:電子工業出版社
ISBN:7121007800
出版日期:2005 年5月
開本:16開
頁碼:736
版次:1-1

編輯推薦

這是一本業內期待已久的、全面介紹計算機安全理論和實踐的教科書。它是一本綜合性的教材,書中包含了計算機安全領域中基礎而範圍廣泛的內容。即使是對於最富有經驗的從業人員,書中也包含了有用信息的詳細描述。對任何需要理解、實現和維護一個安全網路或計算機系統的人來說,這本書都是必備的。

目錄

第一部分 緒論
第1章 計算機安全概述
1.1 基本安全服務
1.2 威脅
1.3 策略與機制
1.4 假設和信任
1.5 安全保障
1.6 運作問題
1.7 人為因素
1.8 整合
1.9 本章小結
1.10 研究議題
1.11 進階閱讀
1.12 習題
第二部分 基礎知識
第2章 訪問控制矩陣
2.1 保護狀態
2.2 訪問控制矩陣模型
2.3 保護狀態轉換
2.4 複製、擁有和許可權衰減規則
2.5 本章小結
2.6 研究議題
2.7 進階閱讀
2.8 習題
第3章 基礎結論
3.1 一般性的問題
3.2 基本結果
3.3 take-grant保護模型
3.4 縮小差距
3.5 表達能力和模型
3.6 本章小結
3.7 研究議題
3.8 進階閱讀
3.9 習題
第三部分 策略
第4章 安全策略
4.1 安全策略
4.2 安全策略的類型
4.3 信任的角色
4.4 訪問控制的類型
4.5 策略語言
4.6 示例:學院式計算機安全策略
4.7 安全性與準確性
4.8 本章小結
4.9 研究議題
4.10 進階閱讀
4.11 習題
第5章 保密性策略
5.1 保密性策略的目標
5.2 bell-lapadula模型
5.3 靜態原則
5.4 關於bell-lapadula模型的爭論
5.5 本章小結
5.6 研究議題
5.7 進階閱讀
5.8 習題
第6章 完整性策略
6.1 目標
6.2 biba完整性模型
6.3 lipner完整性矩陣模型
6.4 clark-wilson完整性模型
6.5 本章小結
6.6 研究議題
6.7 進階閱讀
6.8 習題
第7章 混合策略
7.1 中國牆模型
7.2 醫療信息系統安全策略
7.3 創建者控制的訪問控制
7.4 基於角色的訪問控制
7.5 本章小結
7.6 研究議題
7.7 進階閱讀
7.8 習題
第8章 不干涉屬性與策略複合
8.1 問題
8.2 確定性不干涉屬性
8.3 不可推導屬性
8.4 廣義不干涉屬性
8.5 受限屬性
8.6 本章小結
8.7 研究議題
8.8 進階閱讀
8.9 習題
第四部分 實現i:密碼學
第9章 密碼學基礎
9.1 什麼是密碼學
9.2 古典密碼系統
9.3 公鑰密碼學
9.4 密碼校驗和
9.5 本章小結
9.6 研究議題
9.7 進階閱讀
9.8 習題
第10章 密鑰管理
10.1 會話密鑰和交換密鑰
10.2 密鑰交換
10.3 密鑰生成
10.4 密鑰基礎設施
10.5 備份和吊銷密鑰
10.6 數字簽名
10.7 本章小結
10.8 研究議題
10.9 進階閱讀
10.10習題
第11章 密碼技術
11.1 問題
11.2 流密碼和分組密碼
11.3 網路和密碼學
11.4 協定實例
11.5 本章小結
11.6 研究議題
11.7 進階閱讀
11.8 習題
第12章 認證
12.1 認證基礎
12.2 口令
12.3 挑戰-應答
12.4 生物測定學
12.5 地理位置
12.6 多重認證方法
12.7 本章小結
12.8 研究議題
12.9 進階閱讀
12.10 習題
第五部分 實現ii:系統
第13章 設計原則
13.1 概述
13.2 設計原則
13.3 本章小結
13.4 研究議題
13.5 進階閱讀
13.6 習題
第14章 身份表達
14.1 什麼是身份
14.2 檔案與客體
14.3 用戶
14.4 群組與角色
14.5 命名與證書
14.6 套用於web的身份
14.7 本章小結
14.8 研究議題
14.9 進階閱讀
14.10 習題
第15章 訪問控制機制
15.1 訪問控制表
15.2 能力表
15.3 鎖與鑰匙
15.4 基於環的訪問控制
15.5 傳播性訪問控制表
15.6 本章小結
15.7 研究課題
15.8 進階閱讀
15.9 習題
第16章 信息流
16.1 基礎與背景
16.2 非格信息流策略
16.3 基於編譯器的機制
16.4 基於執行的機制
16.5 信息流控制實例
16.6 本章小結
16.7 研究議題
16.8 進階閱讀
16.9 習題
第17章 限制問題
17.1 限制問題
17.2 隔離
17.3 隱信道
17.4 本章小結
17.5 研究議題
17.6 進階閱讀
17.7 習題
第六部分 安全保障
第18章 安全保障導論
18.1 安全保障和信任
18.2 建造安全可信的系統
18.3 本章小結
18.4 研究議題
18.5 進階閱讀
18.6 習題
第19章 構建有安全保障的系統
19.1 需求定義和分析中的安全保障
19.2 系統設計中的安全保障
19.3 系統實現和整合中的安全保障
19.4 系統運行和維護中的安全保障
19.5 本章小結
19.6 研究議題
19.7 進階閱讀
19.8 習題
第20章 形式化方法
20.1 形式化驗證技術
20.2 形式化規範
20.3 早期的形式化驗證技術
20.4 常用的驗證系統
20.5 本章小結
20.6 研究議題
20.7 進階閱讀
20.8 習題
第21章 系統評估
21.1 形式化評估的目標
21.2 tcsec:1983-1999
21.3 國際合作及itsec:1991-2001
21.4 國際商業性安全需求:1991
21.5 其他商業標準:20世紀90年代早期
21.6 聯邦標準:1992
21.7 fips 140:1994-現在
21.8 通用標準:1998-現在
21.9 sse-cmm:1997-現在
21.10本章小結
21.11研究議題
21.12進階閱讀
21.13習題
第七部分 專題
第22章 惡意代碼
22.1 簡介
22.2 特洛伊木馬
22.3 計算機病毒
22.4 計算機蠕蟲
22.5 其他形式的惡意代碼
22.6 惡意代碼原理
22.7 惡意代碼的防禦
22.8 本章小結
22.9 研究議題
22.10進階閱讀
22.11習題
第23章 漏洞分析
23.1 簡介
23.2 滲透研究
23.3 系統漏洞分類
23.4 框架
23.5 gupta和gligor的滲透分析理論
23.6 本章小結
23.7 研究議題
23.8 進階閱讀
23.9 習題
第24章 審計
24.1 定義
24.2 剖析審計系統
24.3 設計審計系統
24.4 事後設計
24.5 審計機制
24.6 實例:審計檔案系統
24.7 審計信息瀏覽
24.8 本章小結
24.9 研究議題
24.10進階閱讀
24.11習題
第25章 入侵檢測
25.1 原理
25.2 基本的入侵檢測
25.3 模型
25.4 體系結構
25.5 入侵檢測系統的構成
25.6 入侵回響
25.7 本章小結
25.8 研究議題
25.9 進階閱讀
25.10習題
第八部分 實踐
第26章 網路安全
26.1 引言
26.2 策略開發
26.3 網路組織
26.4 可用性和泛洪攻擊
26.5 預防攻擊
26.6 本章小結
26.7 研究議題
26.8 進階閱讀
26.9 習題
第27章 系統安全
27.1 引言
27.2 策略
27.3 網路
27.4 用戶
27.5 認證
27.6 進程
27.7 檔案
27.8 回顧
27.9 本章小結
27.10研究議題
27.11進階閱讀
27.12習題
第28章 用戶安全
28.1 策略
28.2 訪問許可權
28.3 檔案和設備
28.4 進程
28.5 數字通信
28.6 本章小結
28.7 研究議題
28.8 進階閱讀
28.9 習題
第29章 程式安全
29.1 引言
29.2 需求與策略
29.3 設計
29.4 細化與實現
29.5 編程中普遍存在的安全相關問題
29.6 測試、維護和運行
29.7 發布
29.8 結論
29.9 本章小結
29.10研究議題
29.11進階閱讀
29.12習題
第九部分 尾章
第30章 格
30.1 基本概念
30.2 格
30.3 習題
第31章 擴展euclid算法
31.1 euclid算法
31.2 擴展euclid算法
31.3 解方程ax≡1(mod n)
31.4 解方程ax≡b(mod n)
31.5 習題
第32章 熵和不確定性
32.1 條件和聯合機率
32.2 熵和不確定性
32.3 聯合熵和條件熵
32.4 習題
第33章 虛擬機
33.1 虛擬機的結構
33.2 虛擬機管理程式
33.3 習題
第34章 符號邏輯
34.1 命題邏輯
34.2 謂詞邏輯
34.3 時態邏輯系統
34.4 習題
第35章 學院式安全策略實例
35.1 加州大學電子郵件策略
35.2 加州大學davis分校可接受使用策略
參考文獻

前言

2001年9月11日,恐怖分子劫持了四架飛機,其中三架撞向了建築物,另一架墜毀,造成災難性的人員傷亡。災難發生後,公眾開始重新審視社會各個方面的安全性與可靠性,其中一方面就是關於被廣泛使用的計算機和計算機網路的安全問題。
這不是一個新問題。1988年,一種稱為“蠕蟲”的程式[432]①在4小時之內使Internet上的大約5000台計算機癱瘓。這種程式的快速傳播和巨大影響給計算機科學家敲響了警鐘,但大多數人並不擔心,因為這種蠕蟲程式並不影響他們的生命或者工作。1993年,更多的計算機系統用戶開始提防這種危險,因為此時出現了一種稱為“嗅探器”的程式,它們被安置在許多網路服務提供商運營的計算機之中,不斷記錄著用戶的登錄名和口令[374)。
Tsutomu Shimomura在他的計算機遭到攻擊後,使用了一種令人著迷的方法跟蹤上攻擊者,最終導致攻擊者被捕[914)o這一事件最終激起了公眾的興趣與擔憂。計算機現在是脆弱的,曾經一度令人放心的計算機防護性現在顯得如此脆弱。
有幾部電影探討了這種公眾擔憂。比如,電影WarGames和Hackers描述了那些能夠隨意在計算機和網路中遊蕩的人們,他們惡意地破壞或摧毀那些要花費幾千萬元才能收集到的信息。(關於電影Hackers有這樣一件真實的事情。當時MGM/United Artists公司的全球資訊網主頁很快就被人更改了,被加上了一段對電影Hackers的不恭敬評論,並建議觀眾去看電影TheNet。Paramount電影公司否認對此事負責[448]。)另一部電影Sneakers講述了那些為自己和政府測試計算系統(和其他系統)安全性的人的故事。
目標
本書有三大目標。第一個目標是要展示理論和實踐相互之間的重要性。通常的情況是,實幹家認為理論毫無用處,而理論家認為實踐太膚淺。事實上,理論與實踐是共生的。例如,隱信道理論的目的是限制進程通過使用共享資源進行通信的能力,為評價那些限制進程的機制(比如沙箱和防火牆)的有效性而提供依據。類似地,在商業領域中交易實踐也會導致若干安全策略模型的發展,如Clark-Wilson模型和中國牆模型。反過來,這些模型又幫助安全策略的設計者更好地理解和評價這些用於提供安全保護的機制和規程。
第二個目標是要強調計算機安全與密碼學是兩個不同的領域。雖然密碼學是計算機安全的核心部分,但它決不是惟一的部分。密碼學為實現特定功能提供機制,如防止非授權用戶讀取或篡改網路訊息。但是,除非系統開發者理解他們運用的密碼學技術所作用的特定環境,並且該密碼協定與密碼機制的假設基礎也適用於這種特定環境,否則密碼學技術不能為系統提高安全性。一個典型的實例是在兩個低安全等級的系統之間使用密碼技術進行安全通信。如果只有可信用戶可以訪問這兩個系統,密碼技術確實能保護訊息的傳輸。但如果非可信用戶也能訪問這兩個系統之一(通過合法賬號,更可能的情況是侵入系統),則密碼技術就不足以保護訊息傳輸。攻擊者可在任意一個端點讀取信息。
第三個目標是要闡明計算機安全學不僅僅是一門科學,而且還是一門藝術。計算機安全學之所以是一門藝術,是因為如果系統不經過使用性檢測,則沒有任何系統可被認為是安全的。“安全計算機”的定義要求系統需求的聲明和表達必須以授權操作和授權用戶的形式出現。(一台用於大學的計算機因為大學的工作性質,它可以被認為足夠安全。但是當將它用於軍事裝置中時,因為這種工作性質的改變,就可能會認為同一個系統不能提供足夠的安全控制。)人應該如何與其他計算機一樣,與計算機系統互動呢?設計者設計出的接口必須具備何種程度的清晰性和限制性,使得在防止非授權用戶訪問系統數據和資源時不會導致系統失效?
正如藝術家要在畫布上畫出他眼中的真實世界一樣,安全領域的設計者也要清晰地表達出他對系統安全策略和安全機制中人機互動的具體理解。為達到同一個目的,兩類設計者可能會做出兩種完全不同的設計,正如兩個藝術家為了表達同一個概念卻使用了兩個不同的主題一樣。
計算機安全學也是一門科學,其理論基礎是數學的構造、分析與證明,其系統是按照已被接受的工程實踐標準來搭建的。計算機安全學從關鍵的公理出發,使用演繹與推理的方法檢驗系統的安全性,並揭示有關安全的基本原理。這些科學原理可以推廣到非傳統領域,並套用於新的理論、策略和機制。
主導思想
要理解計算機安全學中存在的問題,關鍵是要認識到這些問題都不是新問題,它們都是老問題,可追溯到計算機安全的研究初期(實際上,這些問題源自於非計算機領域的並行問題)。但隨著計算科學領域的變化,計算機安全的研究重點也在變化。在20世紀80年代中期以前,大型機和中型機統治著市場,計算機安全的問題和解決方案主要還是針對單個系統的檔案安全和進程安全。隨著網路與Internet的興起,計算機安全的領域發生了變化。現在是工作站、伺服器以及連線它們的網路基礎設備統治著市場,計算機安全問題及其解決方案主要針對當前的網路環境。但是,如果將工作站、伺服器和網路支持基礎設施視為一個單獨的系統,則20世紀80年代中期以前發展起來的模型、理論和問題表達,同樣也能很好地適用於現在的系統。
例如,關於安全保障問題的研究。在早期,安全保障技術以幾種形式出現:正確性的形式化方法和證明、對策略是否滿足規範的驗證、從可靠信源中採集數據和程式,等等。這些提供保障性的方法分析了單一系統、系統代碼和可獲得代碼的信源(軟體商或用戶),以確保原始碼的可信性或者可充分地限制程式的破壞性。到了後期,套用的還是同樣的基礎原理與技術,不同的是某些領域已經得到了巨大的擴展(從單一系統和少量的軟體商發展到現在覆蓋全球的Internet)。攜帶證明代碼就是這樣的一個例子,它是一種新發展起來的令人振奮的技術:可下載程式模組滿足某種規定策略的證明與程式本身結合在一起①。攜帶證明代碼擴展了證明程式與策略一致的概念,是對早期技術的擴展。但是要正確理解這種技術,就必須理解攜帶證明代碼的基礎思想和這些思想的早期版本。
另一個例子是Sahzer和Sehroeder的安全設計原則②。這些原則發表於1975年,它們提倡簡單性、限制性和可理解性。如果安全機制變得過於複雜,攻擊者就能逃避或繞開它們。可惜的是,許多程式設計師和軟體商只在自己的系統和伺服器被攻擊者入侵時才知道這個事實。那些說這些原則老了,在某種程度上過時了的論調顯得如此空洞,因為違反這些原則往往就意味著不安全系統的出現。
早期的研究工作往往針對於現在已經不存在的系統,或者針對那些和現代系統有許多區別的系統,但這無損於早期研究的思想與概念,它們依然是現在研究工作的基礎。一旦可以正確地理解這些思想與概念,就可以將它們套用在大多數環境當中。而且,隨著新的計算形式的出現,現在的機制與技術也會變得過時,只具歷史性意義,但基礎原則將繼續存在,成為下一代的——當然是下一個時代的——計算技術的基礎。
本書的指導思想是:確定的關鍵概念構成計算機安全所有領域的基礎,並且對不同的計算機安全領域的研究也同時加深了對不同領域的理解。而且,對於安全相關技術和方法的套用和理解的評論也是對這些套用的基礎理論的一種理解。
計算機安全理論的發展指明了安全系統的理論基礎。抽象建模、為特定系統建模等研究可使系統設計達到明確的、有益的目的。策略複合的理論①和廣義安全問題的不可判定性②又指出了計算機安全的局限性。很多研究工作正在不斷地嘗試突破這些局限。
這些理論結果的套用提高了被保護系統的安全質量。然而,問題是這些模型(和理論)的假設與這些理論所套用的實際環境在多大程度上保持一致?雖然該如何套用這些抽象概念的知識在不斷增加,但是要正確地把真實框架中的相關信息轉移到分析框架中去,卻依然存在困難。這種抽象往往將重要信息排除在外,而那些被忽略的數據又以不明顯的方式與安全相關,可是,沒有這些信息,分析就存在缺陷。
實踐工作者必須同時具備兩個方面的知識:計算機安全科學與藝術的理論與實踐。理論闡明什麼是可能的,而實踐知識表明什麼是可行的。理論家需要理解理論套用的限制和理論中隱含假設的真實程度,以及將理論轉變為實踐工具與技術的方法,本書正努力滿足這些要求。
可惜,不可能有單獨的著作能夠覆蓋計算機安全的所有領域,所以本書關注於計算機安全中——就作者的觀點而言——最基礎、最普遍的領域,並使用例子來證明這些原理的套用。
. 本書組織
本書的組織反映了本書的指導思想。首先介紹的是數學基礎與原理,目的是為安全的有效分析與建模設定界限。這些數學原理為表達、分析系統安全需求提供了理論框架。安全策略限定了系統禁止與允許的操作,機制為實現安全策略提供能力。機制在何種程度上實施了策略,而策略又在何種程度上滿足系統的需求,則屬於安全保障問題。接著討論那些利用策略、實現和安全保障的漏洞而進行的攻擊,同時也討論了為這些攻擊提供信息的若干機制。最後,作為總結,介紹若干理論與策略的套用,它們都針對於現實狀況。這種自然遞進的講述方式強調了計算機安全領域中現存原理的發展與套用。
第一部分描述什麼是計算機安全學所關心的問題,並探討計算機安全所面臨的問題和挑戰。它為其他章節的展開打下了基礎。
第二部分處理一些基礎問題,比如,如何正確地、實用地定義“安全”?安全是否是現實的?是否是可判定的?什麼樣的安全是可判定的,在何種條件下它是可判定的?如果不可判定,如何限制定義使得它可被判定?
第三部分探討了策略與安全之間的關係。“安全”的定義依賴於策略。這一部分探討了若干策略類型,包括經常存在的信任的基礎問題、策略分析和使用策略約束操作與轉換等。
第四部分討論了密碼學及其在安全中的地位。本部分重點關注於套用,並討論密鑰管理與密鑰託管、密鑰分配和網路中的密碼系統等問題。最後簡單介紹了認證理論。
第五部分研究如何使用面向系統的技術來實現策略所帶來的需求。特定的設計原則是有效的安全機制的基礎。策略定義了誰能進行操作,操作什麼,因此身份就是系統實現的關鍵。實現訪問控制和信息流控制的機制從不同的方面實施安全策略。
第六部分介紹評價系統或產品滿足目標程度的方法與技術。介紹完特定的背景知識後,為了準確地解釋什麼是“安全保障”,本部分還討論了可滿足不同等級安全保障需求的系統構建藝術。形式化驗證方法占據了重要地位。第六部分還顯示,標準的發展提高了人們對安全保障技術的理解。
第七部分討論了涉及計算機安全的其他方面。惡意代碼挫敗了許多安全機制。儘管我們盡最大的努力提供高安全保障性,但今天的系統還是充滿了漏洞,為什麼?怎么分析才能檢測出系統漏洞?哪些模型能幫助我們改善現狀?給定安全漏洞,如何才能檢測出利用這些漏洞的攻擊者?本部分對審計技術的討論自然引出了對入侵檢測技術的討論。
第八部分給出實例,展示如何套用本書所討論的原理。首先給出網路的實例,然後給出系統、用戶和程式的實例。每一章都描述一種策略,然後顯示如何將該策略轉換成支持該策略的機制和規程。第八部分試圖闡明適用於其他領域的資源能夠、也應該能夠被用於實踐。
本書的每一章後都有一個小結,還有對一些研究議題的描述和對進一步閱讀的建議。每章小結進一步突出了本章的重要思想。研究議題是現在的“熱點課題”或者是那些可被證明是推動計算機安全學發展的沃土課題。感興趣的讀者如果想對這些主題做更深入的研究,可以參考這些推薦讀物。這些推薦讀物擴充了章節的內容,或提出了另外一些有趣的方法。
閱讀建議
本書既是一本參考書也是一本教材,它的讀者是本科生、研究生和實踐工作者。本節為著手閱讀本書的讀者提出一些建議。
依賴關係
第1章是全書的基礎,應首先閱讀。之後,讀者就不需要按章節順序閱讀。每章之間的依賴關係如下所示。
第3章依賴於第2章,並且要求相當程度的數學知識。相反,第2章則不這樣要求。第3章的內容在很大程度上並不會被其他章節使用(雖然第一節中的關鍵結論的存在性、不可判定定理會不斷地被提及)。如果讀者的興趣不在這個方面,可放心地跳過這一章的內容。
第三部分的各章之間相互關聯。第5章的形式化方法還會在第19章、第20章中被使用,但僅此而已。除非讀者打算鑽研這些章節的定理證明和形式化映射,否則這些形式化方法也可跳過。第8章的內容要求一定程度的數學知識,且這些內容在其他章節使用得很少。像第3章那樣,如果讀者的興趣不在這些內容上面,第8章也可跳過。
第9~11章也是按順序前後關聯的。這些章節的內容對於學過基礎密碼學的讀者將會比較簡單,但這些內容不要求第3章和第8章的數學基礎。第12章不需要使用第10章和第11章的內容,但它要用到第9章的知識。
第13章的知識在整個第五部分都要用到。如果讀者曾經學過本科水平的作業系統課程,那么他對第15章就不會感到困難。第14章使用了第11章的內容;第16章建立在第5,13,15章的基礎之上;而第17章使用了第4,13,16章的內容。
第18章依賴於第4章的知識。第19章建立在第5,13,15,18章之上。第20章介紹了高度抽象的數學概念,並使用第18,19章的內容。第21章基於第5,18,19章的內容,但它不要求第20章的內容。軟體工程的知識將非常有助於整個第五部分的學習。
第2章吸收利用了第5,6,9,13,15,17章的思想和知識(要理解22.6節,讀者必須讀3.1節的內容)。第23章是自包含的,雖然它隱含地使用了許多來自安全保障機制的思想。第23章還要求編譯器、作業系統和某些網路的指導性知識。因為很多的系統漏洞都來自不同版本UNIX系統或Windows系統,所以對這兩種系統的工作經驗將有助於理解這一章的某些內容。第24章使用了第4章的知識,而第25章使用了第24章的知識。
第八部分的章節都是自包含的,不需要除了第1章以外的其他章節。然而它們也指出了其他章節中相關的內容,這些內容擴充了這一章的知識,並且(希望是)提高了讀者對這些知識的理解。
背景知識
本書的內容處於高年級本科生水平。整本書都假設讀者熟悉基礎編譯器、計算機體系結構(比如程式棧的使用)和作業系統等課程。讀者也應當對模數運算(用於密碼學部分)具備一定的基礎。某些內容,比如形式化方法(見第20章)和計算機安全的數學理論(第3章和策略模型的形式化表達),要求一定的數學基礎。其他特定的背景知識都在各章的先頭章節進行介紹。第九部分的內容將對那些缺乏某些背景知識的讀者起到幫助作用。
本書的實例來自於多種系統。許多實例來自UNIX作業系統或它們的變形系統(如Linux系統)。其他的來自於Windows系列系統。熟悉這些系統將有助讀者更容易、迅速地理解許多實例。
本科程度
本科生的課程一般更注重於理論的套用及學生如何使用教材。對課程內容的特定選擇與安排依賴於課程所關注的焦點,但課程必須覆蓋某些基礎內容,特別是第1,9,13章的內容和2.1節,2.2節討論的訪問控制矩陣的概念。
提出真實的問題和解決方案通常比抽象的表達更能激發本科生的興趣。特別專題和實踐科目為此提供了大量的實踐問題和方法。這也自然而然地引出更深層次的問題:策略、密碼學、非密碼學機制和安全保障機制。以下章節適合用於非數學專業本科生的課程。
●策略:4.1-4.4節描述丁策略的概念。教師應該從5.1,5.2.1,6.2,6,4,7.1.1,7.2節中選取一到兩個實例,非形式化地描述若干策略模型。7.4節討論了基於角色的訪問控制。
●密碼學:10.1節和10.2節討論密鑰分配,而在10.4.2節討論了一種一般形式的公鑰基礎設施(PKl)。11.1節指出使用密碼技術的若干普遍錯誤。11.3節展示如何在網路中使用密碼技術,教師應當選用11.4節中的某個協定作為例子講解。第12章介紹了多種形式的認證方法,其中包括非密碼學的方法。
●非密碼學機制:身份是許多訪問控制機制的基礎。14.1~14.4節討論了系統中的身份,而14.6節討論了Web中的身份和匿名性。15.1節,15.2節探討了兩種控制檔案訪問的機制,而15.4節討論了了基於環的機制,它是多級許可權概念的基礎。如果需要,教師可使用17.1節和17.2節來講述沙箱,但因為17.2節使用了4.5節和4.5.1節中的內容,所以教師還需要同時介紹這些章節的內容。
●安全保障機制:第18章是安全保障機制的基礎緒論,這些主題經常被忽視。研究生程度通常,研究生的介紹性課程要比本科生的課程更注重於主題的深度。如本科生課程一樣,研究生課程也應當包括第1,9,13章。同樣重要的還有3.1節和3.2節的不可判定結論,這些內容需要用到第2章的內容。除此以外,教師還可從大量的專題中選擇需要的內容,以適當的深度進行講述。以下章節適合於研究生教學。
●策略模型:第三部分包括了許多一般性的策略模型,有形式化模型也有非形式化模型。一旦理解了非形式化模型,就可更容易地理解形式化模型。5.4節的討論對於沒有考慮過策略的地位和性質的學生顯得特別有啟發性。第8章是對策略的基礎的高度形式化討論,適合於具備形式化數學知識的學生。沒有這種背景的學生將會覺得它非常困難。
●密碼學:第四部分的重點是密碼學的套用,而不是密碼學的數學基礎①。此部分討論的是密碼學套用的關鍵領域,比如密鑰管理和某些套用於網路的基礎密碼協定。,非密碼學機制:身份及驗證問題是複雜的,且普遍沒有得到良好的理解。14.5節包含這些問題。將這部分的內容與Web身份問題的討論(14.6節)結合,就可提出信任與命名的問題。第16章和第17章探討了信息流及限制信息流的問題。
●安全保障機制:傳統上,安全保障是作為形式化方法來講授的,並且第20章也是為這個目的服務的。然而,在實踐中,安全保障機制更常使用的方法是結構化過程和技術,或者合理性證明、映射和分析等非形式化但論證嚴格的方法。第21章討論了評價標準,它依賴於第18章和第19章的內容以及第20章的某些思想。
●其他專題:22.6節介紹了一種一般性判定問題的證明,即一個一般程式是否是病毒實際上是一個不可判定的問題。在23.2節研究的滲透理論和23.5節介紹的更形式化的方法闡明了系統的漏洞分析。如果教師想更深入地介紹入侵檢測(第25章),他必須知道這種討論要大量使用審計的內容(第24章)。
●實踐:第八部分將本書之前的內容與現實世界的實例聯繫起來,並強調之前討論的理論與方法的套用。
實踐工作者
計算機安全領域的實踐工作者可在本書找到許多他們感興趣的內容。目錄可以幫助他們查找特定的專題。一個更通用的方法是:從第1章開始閱讀,然後立刻跳到第八部分。這一部分的所有章節都有對本書其他部分的引用說明,可解釋清楚這些內容的基礎所在。這使得讀者可更深入地理解,為什麼在實踐中要運用這些策略、設定、配置和建議。這種方法也使得讀者可以更關注於他們感興趣的專題。

相關詞條

熱門詞條

聯絡我們