索引 / 001 ZH-TW
Computer Security: Art and Science(電腦安全:藝術與科學) cover

電腦科學

電腦科學

Computer Security: Art and Science(電腦安全:藝術與科學)

Matt Bishop

英文原名: Computer Security: Art and Science

馬特・畢夏普的電腦安全原理教科書,把這個領域當成擁有自身理論的學科來講授。內容從存取控制與安全政策的形式模型出發,經過密碼學與身分鑑別,再到保證、惡意程式、弱點分析、稽核與入侵偵測,以及保護網路、系統與程式的實務。

需要的基礎: 需修過作業系統與離散數學課程,並有一些程式設計經驗;具備網路知識會有幫助。

難度等級
高級
學術層次
研究所
computer securitysecurity policyaccess controlassuranceinformation flow教科書

01 / 導讀

導讀

引用

Bishop, M. (2018). Computer Security: Art and Science (2nd ed.). Addison-Wesley.

章節概要

第二版約1,440頁:八個部分共31章,另有第九部分,含八個附錄。每章末尾都有小結、「研究問題」、延伸閱讀和習題。出版社將本書描述為既是一部全面的教材,也是一部詳盡的參考書。

第一部分,第1章:電腦保安概述

開篇一章介紹基本要素(機密性、完整性、可用性)、威脅、策略與機制的區別、假設與信任、保證(assurance)、成本收益與風險分析等執行問題,以及人的因素。它是全書其餘部分的詞彙表,作者也將這一章作為免費樣章提供。

第二部分,第2–3章:存取控制矩陣;基礎性結果

第2章用存取控制矩陣模型、狀態轉換以及許可權的複製、擁有與衰減,把保護狀態形式化。第3章提出總問題:能否證明一個系統是安全的;隨後介紹基本結論、Take-Grant和圖式保護(Schematic Protection)模型,以及各模型表達能力的比較。

第三部分,第4–9章:策略

第4章講安全策略的性質與類型、信任、存取控制的類型和策略語言。第5章和第6章分別討論機密性(Bell–LaPadula模型、平穩性及相關爭論)和完整性(Biba、Lipner、Clark–Wilson、信任模型)。第7章為本版新增,討論可用性策略:死鎖、拒絕服務模型和網路洪泛。第8章講混合策略(中國牆、臨床資訊系統、發起者控制、基於角色的存取控制、「破玻璃」策略),第9章講無干擾、不可推斷性、限制性、側通道和策略組合。

第四部分,第10–13章:實現之一:密碼學

基礎密碼學、金鑰管理、密碼技術和認證。這些章節涵蓋對稱與公鑰密碼系統、校驗和與簽章、金鑰交換與基礎設施、串流加密與區塊加密、認證加密與示例協定,以及口令、挑戰–應答、生物特徵、位置與多因素認證。

第五部分,第14–18章:實現之二:系統

第14章「設計原則」提出八條安全設計原則(最小特權、故障安全預設、機制經濟、完全仲裁、開放設計、特權分離、最少公共機制、最小意外)。第15–18章講身份的表示、存取控制機制(ACL、能力、鎖與鑰匙、環)、資訊流,以及包含隔離與隱蔽通道的限制(confinement)問題。

第六部分,第19–22章:保證

保證導論、構建有保證的系統、形式化方法和系統評估。最後一章梳理了從TCSEC,經ITSEC和聯邦準則,到FIPS 140、通用準則(Common Criteria)和SSE-CMM的評估體系。該部分由Elisabeth Sullivan和Michelle Ruppel撰稿。

第七部分,第23–27章:專題

惡意軟體(特洛伊木馬、病毒、蠕蟲、殭屍網路、防禦及計算機病毒理論)、漏洞分析(滲透研究、分類、框架)、審計、入侵檢測,以及本版新增的「攻擊與響應」(攻擊的表示、入侵響應、數字取證)。

第八部分,第28–31章:實踐

網路安全、系統安全、使用者安全和程式安全。前三章把前面的策略與機制應用於具體的網路、主機和使用者環境;第31章依次講述從需求、設計、實現、測試到分發的安全程式設計過程,其中有一節討論常見的安全相關程式設計問題。

第九部分:附錄

格、擴展歐幾里得演算法、熵與不確定性、虛擬機器、符號邏輯、加密標準(DES與AES)、示例學術安全策略和程式設計規則。

核心概念

第1–3章:基礎

  • 機密性、完整性、可用性:構成安全策略的三個方面。
  • 策略與機制:策略規定什麼被允許;機制負責執行,信任則是把二者聯絡起來的假設。
  • 安全性問題:保護系統能否到達不安全狀態,這是第3章基礎性結果所處理的問題。

第4–9章:策略

  • 安全模型:Bell–LaPadula(機密性)、Biba、Lipner與Clark–Wilson(完整性)、中國牆與基於角色的存取控制(混合策略)。
  • 無干擾:一種策略組合性質,要求高層動作不得影響低層使用者的觀察。

第10–18章:實現

  • 安全設計原則:第14章的八條設計原則。
  • 資訊流與限制:控制資訊可以流向何處,以及繞過這些控制的隱蔽通道。

第19–31章:保證與實踐

  • 保證與評估:依據既定需求構建並評估系統。
  • 惡意軟體、漏洞分析、審計與入侵檢測:安全中「檢測與響應」的一面。

評析

優點

  • 理論與實踐相結合。 出版社強調「理論與實踐之間的深層聯絡」,全書結構也兌現了這一點:第二、三部分是形式化模型,第四、五部分是機制,隨後是評估、攻擊分析和實踐章節。
  • 第二版有實質更新。 出版社列出了關於可用性策略模型和攻擊分析的新章節,以及更新的例項和新技術。每章末尾的研究問題與延伸閱讀適合研究生課程或獨立課題。
  • 覆蓋面廣。 全書在同一框架下涵蓋密碼學、認證、身份、保證、惡意軟體、取證和安全程式設計,附錄提供模型所需的格、邏輯、熵和虛擬機器背景。
  • 對策略模型講得深入。 第二、三部分的內容相當詳細,包括Take-Grant和圖式保護模型、無干擾與不可推斷性,以及圍繞Bell–LaPadula的爭論。

侷限

  • 篇幅。 約1,440頁,遠非一門課程所能容納;更適合作為參考書,由教師或讀者從中選讀。
  • 密碼學只是其中一個組成部分。 「基礎密碼學」約佔四十頁(第10章為第289–330頁),需要密碼學嚴謹性的讀者應另配專門教材。
  • 形式化的詞彙。 基礎性結果、策略模型和形式化方法各章用到格和符號邏輯(附錄A和E),缺乏離散數學基礎的讀者需要下功夫才能跟上。

在課程中的定位

在本課程書單中,Bishop 的書最偏形式化、最強調策略。Easttom 的 Computer Security Fundamentals 是面向沒有安全背景學生的單捲入門書;Stallings 與 Brown 的 Computer Security: Principles and Practice 是把原理與系統設計和執行聯絡起來的本科教材;Anderson 的 Security Engineering 透過案例以及安全的經濟學和心理學來討論這一主題;Katz 與 Lindell 的 Introduction to Modern Cryptography 和 Paar 與 Pelzl 的 Understanding Cryptography 在密碼學上比 Bishop 的第四部分深入得多。

建議先讀一本入門書,再用 Bishop 學習那些入門書只簡略介紹的模型、保證與評估內容。

如何使用本書

出版社面向高年級本科生、研究生和IT專業人員。作業系統和離散數學是自然的先修背景,另需一些程式設計經驗。

建議的學習安排:

  • 核心: 第1章;然後讀第2、4、5、6章,瞭解存取控制和主要策略模型;讀第14章瞭解設計原則;讀第15–16章瞭解身份與存取控制機制。
  • 偏理論的擴展: 第3、9、17、18章(安全性結果、無干擾、資訊流、限制問題),以及第19–22章(保證與評估)。
  • 偏實踐的擴展: 第23–27章(惡意軟體、漏洞、審計、入侵檢測與攻擊),然後是第28–31章的實踐部分。
  • 密碼學: 把第10–13章當作概覽來讀,需要深入時查閱專門教材。

每章末尾的習題都值得做;關於模型的習題尤其適合親手寫出狀態轉換。