> For the complete documentation index, see [llms.txt](https://firmianay.gitbook.io/cissp-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://firmianay.gitbook.io/cissp-notes/d3_security_architecture_and_engineering.md).

# 域3：安全架構和工程

* [域3：安全架構和工程](#域3安全架構和工程)
  * [D3-1：密碼基礎](#d3-1密碼基礎)
    * [一、密碼學的目標](#一密碼學的目標)
    * [二、密碼學概念](#二密碼學概念)
    * [三、密碼數學](#三密碼數學)
    * [四、密碼](#四密碼)
  * [D3-2：對稱加密演算法](#d3-2對稱加密演算法)
    * [一、密碼執行模式](#一密碼執行模式)
    * [二、常見對稱加密演算法](#二常見對稱加密演算法)
    * [三、對稱金鑰管理](#三對稱金鑰管理)
    * [四、密碼演算法生命週期](#四密碼演算法生命週期)
  * [D3-3：非對稱加密演算法](#d3-3非對稱加密演算法)
    * [一、RSA](#一rsa)
    * [二、EI Gamal](#二ei-gamal)
    * [三、Elliptic Curve](#三elliptic-curve)
    * [四、Diffie–Hellman金鑰交換](#四diffiehellman金鑰交換)
    * [五、量子密碼（Quantum Cryptography）](#五量子密碼quantum-cryptography)
    * [六、非對稱金鑰管理](#六非對稱金鑰管理)
  * [D3-4：雜湊函式](#d3-4雜湊函式)
    * [一、安全雜湊演算法（Secure Hash Algorithm，SHA）系列](#一安全雜湊演算法secure-hash-algorithmsha系列)
    * [二、訊息摘要（Message Digest，MD）系列](#二訊息摘要message-digestmd系列)
    * [三、RACE原始完整性校驗訊息摘要（RACE Integrity Primitives Evaluation Message Digest，RIPEMD）系列](#三race原始完整性校驗訊息摘要race-integrity-primitives-evaluation-message-digestripemd系列)
  * [D3-5：數字簽名](#d3-5數字簽名)
    * [一、雜湊訊息身份認證碼（HMAC）](#一雜湊訊息身份認證碼hmac)
    * [二、數字簽名標準](#二數字簽名標準)
  * [D3-6：公鑰基礎設施（PKI）](#d3-6公鑰基礎設施pki)
    * [一、證書](#一證書)
    * [二、證書頒發機構](#二證書頒發機構)
    * [三、證書生命週期](#三證書生命週期)
    * [四、證書格式](#四證書格式)
    * [五、混合密碼學](#五混合密碼學)
  * [D3-7：密碼學應用](#d3-7密碼學應用)
    * [一、便攜裝置](#一便攜裝置)
    * [二、電子郵件](#二電子郵件)
    * [三、Web應用程式](#三web應用程式)
    * [四、隱寫術（Steganography）](#四隱寫術steganography)
    * [五、網路](#五網路)
    * [六、新興應用](#六新興應用)
  * [D3-8：密碼學攻擊](#d3-8密碼學攻擊)
    * [一、分析攻擊（Analytic Attack）](#一分析攻擊analytic-attack)
    * [二、實施攻擊（Implementation Attack）](#二實施攻擊implementation-attack)
    * [三、統計攻擊（Statistical Attack）](#三統計攻擊statistical-attack)
    * [四、爆破攻擊（Brute-Force Attack）](#四爆破攻擊brute-force-attack)
    * [五、故障注入（Fault Injection Attack）](#五故障注入fault-injection-attack)
    * [六、側通道攻擊（Side-Channel Attack）](#六側通道攻擊side-channel-attack)
    * [七、時間攻擊（Timing Attack）](#七時間攻擊timing-attack)
    * [八、頻率分析和唯密文攻擊（Frequency Analysis and the Ciphertext-Only Attack）](#八頻率分析和唯密文攻擊frequency-analysis-and-the-ciphertext-only-attack)
    * [九、已知明文攻擊（Known Plaintext Attack）](#九已知明文攻擊known-plaintext-attack)
    * [十、選定明文攻擊（Chosen Plaintext Attack）](#十選定明文攻擊chosen-plaintext-attack)
    * [十一、選定密文攻擊（Chosen Ciphertext Attack）](#十一選定密文攻擊chosen-ciphertext-attack)
    * [十二、中間相遇攻擊（Meet in the Middle）](#十二中間相遇攻擊meet-in-the-middle)
    * [十三、中間人攻擊（Man in the Middle）](#十三中間人攻擊man-in-the-middle)
    * [十四、生日攻擊（Birthday）](#十四生日攻擊birthday)
    * [十五、重放攻擊（Replay）](#十五重放攻擊replay)
  * [D3-9：安全設計原則](#d3-9安全設計原則)
    * [一、物件和主體](#一物件和主體)
    * [二、封閉和開放系統](#二封閉和開放系統)
    * [三、安全預設（Secure Defaults）](#三安全預設secure-defaults)
    * [四、故障安全（Fail Securely）](#四故障安全fail-securely)
    * [五、保持簡單（Keep it simple）](#五保持簡單keep-it-simple)
    * [六、零信任（Zero Trust）](#六零信任zero-trust)
    * [七、設計隱私（Privacy by Design，PbD）](#七設計隱私privacy-by-designpbd)
    * [八、信任但驗證（Trust but Verify）](#八信任但驗證trust-but-verify)
    * [九、確保CIA的技術](#九確保cia的技術)
  * [D3-10：安全模型基本概念](#d3-10安全模型基本概念)
    * [一、描述物件安全屬性的方法](#一描述物件安全屬性的方法)
    * [二、可信計算基](#二可信計算基)
    * [三、狀態機模型](#三狀態機模型)
    * [四、資訊流模型](#四資訊流模型)
    * [五、非干擾模型](#五非干擾模型)
    * [六、組合理論](#六組合理論)
    * [七、Take-Grant模型](#七take-grant模型)
    * [八、訪問控制矩陣](#八訪問控制矩陣)
    * [九、Bell-LaPadula模型](#九bell-lapadula模型)
    * [十、Biba模型](#十biba模型)
    * [十一、BL和Biba模型組合記憶](#十一bl和biba模型組合記憶)
    * [十二、Clark-Wilson模型](#十二clark-wilson模型)
    * [十三、Brewer and Nash模型](#十三brewer-and-nash模型)
    * [十四、Goguen-Meseguer模型](#十四goguen-meseguer模型)
    * [十五、Sutherland模型](#十五sutherland模型)
    * [十六、Graham-Denning模型](#十六graham-denning模型)
    * [十七、Harrison–Ruzzo–Ullman模型](#十七harrisonruzzoullman模型)
  * [D3-11：基於系統安全需求選擇控制](#d3-11基於系統安全需求選擇控制)
    * [一、通用準則（Common Criteria）](#一通用準則common-criteria)
    * [二、授權運營（Authorization to Operate）](#二授權運營authorization-to-operate)
  * [D3-12：硬體及韌體](#d3-12硬體及韌體)
    * [一、處理器](#一處理器)
    * [二、儲存器](#二儲存器)
    * [三、輸入/輸出（I/O）裝置](#三輸入輸出io裝置)
    * [四、韌體（Firmware）](#四韌體firmware)
  * [D3-13：客戶端的及伺服器系統](#d3-13客戶端的及伺服器系統)
    * [一、客戶端安全](#一客戶端安全)
    * [二、伺服器安全](#二伺服器安全)
  * [D3-14：嵌入式裝置相關技術](#d3-14嵌入式裝置相關技術)
    * [一、靜態系統](#一靜態系統)
    * [二、聯網裝置](#二聯網裝置)
    * [三、網路物理系統](#三網路物理系統)
    * [四、專用裝置（Specialized Devices）](#四專用裝置specialized-devices)
    * [五、物聯網](#五物聯網)
    * [六、工業控制系統](#六工業控制系統)
  * [D3-15：虛擬化技術發展](#d3-15虛擬化技術發展)
    * [一、虛擬化技術](#一虛擬化技術)
    * [二、虛擬化軟體（Virtual Software）](#二虛擬化軟體virtual-software)
    * [三、虛擬化網路（Virtualized Networking）](#三虛擬化網路virtualized-networking)
    * [四、軟體定義一切（Software-Defined Everything，SDx）](#四軟體定義一切software-defined-everythingsdx)
    * [五、虛擬化安全管理](#五虛擬化安全管理)
    * [六、容器化（Containerization）](#六容器化containerization)
    * [七、無伺服器架構（Serverless Architecture）](#七無伺服器架構serverless-architecture)
    * [八、基礎設施即程式碼（Infrastructure as code，IaC）](#八基礎設施即程式碼infrastructure-as-codeiac)
    * [九、邊緣計算（Edge Computing）](#九邊緣計算edge-computing)
    * [十、霧計算（Fog Computing）](#十霧計算fog-computing)
  * [D3-16：移動裝置](#d3-16移動裝置)
    * [一、移動裝置安全特性](#一移動裝置安全特性)
    * [二、移動裝置部署策略](#二移動裝置部署策略)
  * [D3-17：基本安全保護機制以及常見安全體系架構缺陷和問題](#d3-17基本安全保護機制以及常見安全體系架構缺陷和問題)
    * [一、基本安全保護機制](#一基本安全保護機制)
    * [二、常見安全體系架構缺陷和問題](#二常見安全體系架構缺陷和問題)
  * [D3-18：站點和設施設計的安全原則](#d3-18站點和設施設計的安全原則)
    * [一、安全設施計劃](#一安全設施計劃)
    * [二、站點選擇](#二站點選擇)
    * [三、設施設計](#三設施設計)
  * [D3-19：實施站點和設施的安全控制](#d3-19實施站點和設施的安全控制)
    * [一、物理安全控制型別](#一物理安全控制型別)
    * [二、控制的功能順序](#二控制的功能順序)
    * [三、裝置故障](#三裝置故障)
    * [四、配線間](#四配線間)
    * [五、資料中心](#五資料中心)
    * [六、入侵檢測系統](#六入侵檢測系統)
    * [七、訪問濫用](#七訪問濫用)
    * [八、介質儲存設施](#八介質儲存設施)
    * [九、證據儲存](#九證據儲存)
    * [十、受限區與工作區安全](#十受限區與工作區安全)
    * [十一、HVAC相關](#十一hvac相關)
    * [十二、火災預防、檢測和抑制](#十二火災預防檢測和抑制)
  * [D3-20：實施和管理物理安全](#d3-20實施和管理物理安全)
    * [一、邊界安全控制](#一邊界安全控制)
    * [二、內部安全控制](#二內部安全控制)

## D3-1：密碼基礎

### 一、密碼學的目標

1. 保密性

資料在靜止、傳輸和使用三種狀態下始終保持機密，由對稱密碼和非對稱密碼實現。

1. 完整性

確保資料沒有被人未經授權更改，由訊息摘要實現。

1. 身份驗證

驗證系統使用者所聲稱的身份，由零知識證明實現。

1. 不可否認性

保證訊息確實來自傳送者，由數字簽名實現。

### 二、密碼學概念

1. 明文（plaintext）透過密碼演算法生成密文（ciphertex）。
2. 密碼演算法依靠秘鑰維持安全性，秘鑰空間越大越安全。
3. 顯式安全，也叫科克霍夫（Kerckhoffs）原則，演算法完全公開也是安全的。
4. 隱式安全（security through obscurity），演算法不公開才是安全的。
5. 建立和執行程式碼和密碼的科學叫密碼術（cryptography），研宄的打敗程式碼和密碼的科學叫密碼分析（cryptanalysis），兩者結合叫密碼學（cryptology）。

### 三、密碼數學

1. 布林數學

就是二進位制，1為真、0為假。

1. 邏輯運算

* AND和：兩個值都為真才為真。
* OR或：兩個值至少一個為真才為真。
* NOT非：一個值的反值。
* XOR異或：兩個值只有一個為真才為真。

1. 模函式mod

除法求餘。

1. 單向函式

A經過運算得到B，但無法逆向從B得到A。

1. Nonce

一個隨機數，典型例子為初始化向量（IV）。

1. 零知識證明

書上山洞裡有門的故事理解就行。

1. 分隔知識

將職責分離和雙人控制融合的做法稱為分割知識，典型例子是金鑰託管。4一個8位密碼被4個人分別記住2位，即4個人同時操作才能執行登入或訪問操作。M of N控制要求，N人數中的M個同事在場才能執行高安全任務。

1. 代價函式

計算破解密碼系統的成本，用於衡量密碼系統的強度。

### 四、密碼

1. 程式碼和密碼

程式碼（code）不一定提供保密性（用於單詞和短語），密碼（cipher）始終隱藏訊息真是含義（用於字元和位）。

1. 移位密碼（transposition ciphers）

重新排列明文訊息形成密文。

1. 替換密碼（substitution cipher）

用不同字元替換明文訊息形成密文，例子有凱撒密碼（單表替換）、Vigenere（多表替換，需要秘鑰）。分析方法有頻率分析（單表）和二階式頻率分析（多表）。

1. 單次密本（one-time pad）

也叫Vernam密碼，是強力的替換密碼，需要秘鑰，非常安全但也麻煩，因為保障其安全性有如下要求：

* 密碼本必須隨機生成
* 密碼本必須物理保護
* 密碼本只能使用一次
* 秘鑰至少比被加密訊息長

1. 運動秘鑰密碼（running key cipher）

也稱為書密碼，高階版單次密本，就是把自己編的單次密本換成了生活中常用的書。

1. 塊密碼（block cipher）

同一時間對整個訊息執行加密演算法，如移位密碼。

1. 流密碼（stream cipher）

一次在訊息的一個字元或位上執行加密演算法，如凱撒密碼、單次密本。

1. 混淆（confusion）和擴散（diffusion）

替換帶來混淆，移位帶來擴散。

## D3-2：對稱加密演算法

傳送者和接收者共用一個共享秘鑰，同時用作加密和解密訊息，具有以下弱點：

1. 秘鑰分發問題：如何在通訊前把共享秘鑰安全的分發給雙方是個問題。
2. 不提供不可否認性：無法確認加密訊息來自哪一方。
3. 缺乏可伸縮性：參與者太多時所需維護秘鑰數量巨大，秘鑰數=n(n-1)/2。
4. 秘鑰生命週期短：參與者離開通訊群體後，其所知秘鑰均需銷燬。

### 一、密碼執行模式

1. 電子密碼本（Electronic Code Book, ECB）

每個塊都使用相同秘鑰加密，易被密碼分析。

1. 密碼塊連結（Cipher Block Chaining，CBC）

第一個塊使用IV進行XOR再加密，後面的塊都使用前一密文塊進行XOR運算再加密。錯誤傳播（errors propagate）需注意，即一個塊丟失或損壞，則該塊即後續塊都無法解密。

1. 密碼反饋（Cipher Feedback，CFB）

CBC流密碼版，不把訊息分解成塊，而是使用儲存緩衝區，儲存緩衝區滿時加密資料。

1. 輸出反饋（Output Feedback, OFB）

CFB升級版，不同的是第一個塊先使用IV建立種子值（seed value），再使用SV進行XOR運算再加密，後面的塊使用的SV是前一個SV透過DES運算得出。

1. 計數器（Counter，CTR）

OFB降級版，不使用DES對SV做運算，而使用計數器對SV做運算。

1. 伽羅瓦/計數器模式（Galois/Counter Mode，GCM）

採用標準CTR加密模式，並新增資料真實性控制，為接收方提供接收資料完整性的保證。這是透過向加密過程中新增身份驗證標記來實現的。

1. 具有密碼塊連結訊息身份驗證碼的計數器模式（Counter with Cipher Block Chaining Message Authentication Code Mode，CCM）

與GCM類似，密碼塊連結訊息認證碼（CBC-MAC）演算法替代標記實現身份驗證。

### 二、常見對稱加密演算法

1. DES（Data Encryption Standard）

64位塊密碼，其中秘鑰長度為56位，剩餘8位包含奇偶校驗資訊。

注意：DES是加密標準，NSA國家安全域性採納的是128位秘鑰的Lucifer演算法，但對演算法進行了修改，改為64位秘鑰，稱為資料加密演算法（Data Encryption Algorithm，DEA），一般認為DES就是DEA，但二者還是有區別。

1. Triple DES

3DES透過增加秘鑰數量的方式提高安全性，有4個版本：

* DES-EEE3：使用三個秘鑰給明文加密三遍，秘鑰長度168。
* DES-EDE3：使用三個秘鑰，用一次解密運算替換了第二次加密運算，秘鑰長度168。
* DES-EEE2：使用兩個秘鑰，其中一個秘鑰加密了兩次，秘鑰長度112。
* DES-EDE2：使用兩個秘鑰，其中一個秘鑰執行解密運算，秘鑰長度112。

DES-EEE3是目前NIST認為安全的3DES的唯一變體。

1. IDEA（International Data Encryption Algorithm）

安全不夠、長度來湊，秘鑰長度為128位。該演算法雖然是專利，但因專利到期可無限制使用，常用於PGP（Pretty Good Privacy, 良好隱私）安全郵件中。

1. Blowfish

可變長的秘鑰長度32\~448位，且可免費使用。

1. Twofish

秘鑰長度1\~256位，處理128位塊，使用兩種特殊技術：預白化處理（prewhitening）和白化後處理（postwhitening），即加密前後使用子金鑰進行XOR運算。

1. Skipjack

秘鑰長度為80位，處理64位塊，常用於政府機構，因為秘鑰受NIST和財政部把控。

1. RC（Rivest Ciphers）

RSA中的Ron Rivest建立的一系列對稱加密演算法，其享有專利權。

* RC4：流密碼，金鑰長度40～2048位，已不再安全。
* RC5：塊密碼（32、64、128位），金鑰長度0～2040位，已不再安全。
* RC6：塊密碼（128位），金鑰長度128、192、256位，目前安全的演算法。

1. AES（Advanced Encryption Standard）

秘鑰長度128、192、256位，處理128位塊。AES也是一個加密標準，最終Rijndael演算法被選中替代DES，參選的演算法還有MARS、RC6、Serpent、Twofish。

1. CAST

CAST演算法使用Feistel網路，有兩種形式：

* CAST-128：塊密碼（64位），金鑰長度40～128位。
* CAST-256：塊密碼（128位），金鑰長度128、160、192、224或256位。

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-e08acbf11d008381eb0fabd093c3ebf2e777ae85%2F3_symmetric.png?alt=media)

### 三、對稱金鑰管理

1. 建立和分發對稱秘鑰

* 線下分發：物理上交換秘鑰。
* 公鑰加密：利用非對稱加密演算法傳遞對稱秘鑰。
* Diffie-Hellman：類似非對稱加密演算法，但僅限於共享秘鑰的交換。

1. 儲存和銷燬對稱秘鑰

* 不將加密秘鑰與加密資料存放在一個系統裡。
* 採用分隔知識原則。
* 使用者離開秘鑰必須銷燬。

金鑰儲存機制有基於軟體和基於硬體兩種機制，基於軟體易實現、但易被軟體自身安全性影響，基於硬體實現方法複雜、成本也更高，但提供了額外的安全性，如硬體安全模組（HSM）。

1. 秘鑰託管和恢復

* 公平密碼系統：秘鑰採用分隔知識原則分別儲存在獨立第三方。
* 受託加密標準：如Skipjack，為政府或其他授權代理提供瞭解密密文的技術手段。

### 四、密碼演算法生命週期

由於技術的發展，計算機算力不斷提升，原來被視為安全的密碼演算法已不再安全，因此組織在使用密碼演算法時需要注意密碼演算法的生命週期。

## D3-3：非對稱加密演算法

傳送者和接收者分別擁有一個公鑰和一個私鑰，用對方的公鑰加密，用自己的私鑰解密，具有以下優點：

1. 秘鑰分發簡單：每個人的公鑰所有人都可知道，私鑰自己保管，可直接開始通訊。
2. 提供完整性、身份驗證和不可否認性：私鑰能夠提供這些功能。
3. 可伸縮性：秘鑰維護簡單，秘鑰數=n\*2
4. 秘鑰生命週期長：參與者提供公鑰即可加入通訊群體，離開也不會影響其他參與者。

缺點就是運算速度慢，而對稱加密演算法運算速度快。因此，現在都會使用非對稱加密演算法交換對稱秘鑰，使用對稱密碼演算法提供後續通訊安全。

### 一、RSA

由Ronald Rivest、Adi Shamir 和Leonard Adleman三人提出，利用素數因式分解題構成該演算法基礎，演算法申請專利但已到期，可免費使用。

揹包演算法（Knapsack algorithm）：Merkle-Hellman提出的演算法，利用因式分解運算題構成該演算法的基礎，已證實不安全。

### 二、EI Gamal

是由T.EI Gamal提出，基於Diffie-Hellman演算法的擴充套件，可免費使用，缺點是密文長度比明文長度大了一倍，對於傳輸會造成問題。

### 三、Elliptic Curve

Elliptic curve cryptography (ECC)演算法利用橢圓曲線離散對數題構成該演算法的基礎，可使用較短秘鑰長度產生高安全性，如160位ECC秘鑰長度的強度與1024位RSA強度一樣。

### 四、Diffie–Hellman金鑰交換

Diffie–Hellman演算法使用素數的數學原理，類似於RSA演算法，用於秘密的交換共享金鑰。通常用於建立共享金鑰以用於傳輸層安全性（TLS），其中它被稱為DHE或EDH。

### 五、量子密碼（Quantum Cryptography）

量子計算（quantum computing）使用量子力學原理，用稱為量子位元（qubits）的多維量子位元取代數字計算的二進位制1位和0位。目前，量子計算機僅限於理論研究。量子計算機可能能夠解決在當代計算機上無法解決的問題，這一概念被稱為量子至上（quantum supremacy），如果實現了這一概念，可以很容易地解決許多經典非對稱加密演算法所依賴的因式分解問題。如果出現這種情況，可能會使RSA和Diffie–Hellman等流行演算法變得不安全。因此，組織需要考慮當前加密資料的敏感週期是否超過了量子計算的應用時間，那麼加密資料就會遭到洩露。

### 六、非對稱金鑰管理

1. 加密系統的選擇

演算法不能有缺陷即選最佳實踐，如RSA或ECC；

1. 秘鑰長度的選擇

滿足安全要求和效能的平衡；

1. 保護好私鑰

一旦丟失破壞了整個加密系統的安全性；

1. 秘鑰輪換機制

需定期更換金鑰，像密碼策略一樣；

1. 備份秘鑰

秘鑰一旦丟失則無法解密資料；

1. 使用硬體安全模組（HSM）管理秘鑰

就像硬體令牌一樣。

## D3-4：雜湊函式

目的是將一條任意長度的明文訊息生成一個固定長度的唯一值，即訊息摘要（message digest），且不可逆向（即單向函式），用於驗證訊息完整性。雜湊函式的5個基本要求：

1. 輸入可以是任意長度；
2. 輸出有一個固定長度；
3. 計算相對容易；
4. 單向的，無法從摘要逆向得到明文訊息；
5. 無衝突，不同的訊息不會產生相對的訊息摘要（也叫雜湊值）。

### 一、安全雜湊演算法（Secure Hash Algorithm，SHA）系列

1. SHA-1

生成160位摘要訊息，不安全。

1. SHA-2

有4個版本，對應生成的訊息摘要長度，即SHA-256、SHA-224、SHA-512、SHA-384，安全可靠。

1. SHA-3

以Keccak演算法為標準，可生成任意長度訊息摘要，但SHA-3標準中定義了4個版本，分別是SHA3-224、SHA3-256、SHA3-384、SHA3-512。SHA-3提供了與SHA-2相同的安全級別，但它比SHA-2慢，因此除了在硬體中高效實現演算法的一些特殊情況外，SHA-3不常用。

### 二、訊息摘要（Message Digest，MD）系列

生成128位訊息摘要，不安全；

1. MD4

生成128位訊息摘要，不安全；

1. MD5

生成128位訊息摘要，不安全；

1. HAVAL可變長雜湊

MD5的修訂版，生成128、160、192、224 和256 位訊息摘要，目前128位3輪計算的HAVAL已被證實不安全。

### 三、RACE原始完整性校驗訊息摘要（RACE Integrity Primitives Evaluation Message Digest，RIPEMD）系列

RIPEMD雜湊函式是某些應用程式（如比特幣加密貨幣實現）中使用的SHA系列的替代品。

1. RIPEMD

生成128位訊息摘要，因結構缺陷，不安全；

1. RIPEMD-128

同樣生成128位訊息摘要，不安全；

1. RIPEMD-160

最常用的RIPEMD變體，產生一個160位訊息摘要，安全可靠。

RIPEMD-256是基於RIPEMD-128、RIPEMD-320是基於RIPEMD-160的改進版，但不增加安全性，僅提高了訊息摘要的長度。

## D3-5：數字簽名

目的是身份驗證（零知識證明）、不可否認性（由非對稱加密演算法檔案提供）和完整性（由雜湊函式提供），過程是明文訊息透過雜湊函式計算得到訊息摘要（或雜湊值），訊息摘要透過私鑰加密得到數字簽名。

### 一、雜湊訊息身份認證碼（HMAC）

1. 訊息身份驗證程式碼（MAC）

由於傳遞含訊息摘要的資訊過程中可以被攻擊者截獲，篡改明文訊息再計算訊息摘要進而無法確保完整性，因此需要訊息身份驗證程式碼（MAC）。

1. 雜湊訊息身份認證碼（HMAC）

MAC有兩種計算方式

* 先計算訊息摘要，再使用共享金鑰進行加密。
* 計算訊息摘要時將共享金鑰和資料同時輸入，這種方法叫做雜湊訊息身份驗證碼（HMAC）。

HMAC演算法實現了部分數字簽名特性，它保證了訊息在傳輸過程中的完整性，但不提供不可否認性。

### 二、數字簽名標準

1. DSA數字簽名演算法
2. RSA演算法
3. 橢圓曲線DSA（ECDSA）

## D3-6：公鑰基礎設施（PKI）

### 一、證書

數字證書（Digital certificates）就是個人公鑰經由可信發證機構（CA）簽註的副本，即經過第三方驗證是合法的。不經過CA簽註的數字證書也不能說是不合法，但一般僅用於內網使用。數字證書標準是X.509，包含如下內容：

* 證書符合X.509版本
* 序列號
* 簽名演算法標誌符
* 頒發者名稱
* 有效期
* 主體名稱
* 主體公鑰
* 自定義變數

### 二、證書頒發機構

這僅關乎一個信任問題，你只要信任某機構就可以讓其發證，但普遍都信任規模大的公司（如賽門鐵克等）。

序號產生器構（Registration authorities，RA）分擔證書頒發機構（Certificate authorities，CA）簽發證書前驗證使用者身份的職責，即使用者申請證書需先經過RA驗證，再到CA進行簽發。

組織也可以選擇成為內部CA，提供自簽名證書（self-signed certificates）供組織內部使用，從而節省證書費用。

### 三、證書生命週期

1. 註冊

使用者申請數字證書，需先向CA證明其身份資訊。然後組織透過證書籤名請求（certificate signing request，CSR）的形式向CA提供自己的公鑰。CA基於組織身份資訊和公鑰建立數字證書，然後使用CA的私鑰對數字證書進行數字簽名，然後該數字簽名就可以正常使用。數字證書根據組織身份資訊驗證的級別，分為以下幾種型別：

* 域名驗證（DV）：需驗證域名的控制權。
* 組織驗證（OV）：需驗證組織的資質資訊。
* 擴充套件驗證（EV）：最嚴格的組織資訊驗證。

1. 驗證

當收到一個使用者的數字證書時（也就是該使用者的、經過驗證的公鑰），使用CA的公鑰檢查該證書的數字簽名，用以確定該使用者數字證書的合法性。除了驗證CA的數字簽名外，還需要檢視證書登出列表（CRL）或線上證書狀態協議（OCSP）檢查證書有效性。

1. 登出

當證書失信、證書誤發、證書內容變更、安全關係變更時，需要對證書進行登出。有三種技術來驗證證書的真實性並識別已吊銷的證書：

* 證書登出列表（CRL）：CA提供的證書列表，使用者可下載驗證。
* 線上證書狀態協議（OCSP）：使用者可向OCSP伺服器傳送驗證請求進行驗證。
* 證書裝訂（Certificate Stapling）：OCSP的擴充套件技術，如果每個使用者都對證書進行驗證，OCSP伺服器的壓力非常大，因此網站可進行驗證，將OCSP響應繫結證書傳送給使用者，進而降低OCSP伺服器壓力。

### 四、證書格式

1. DER：二進位制格式，常見字尾為der、crt、cer。
2. PEM：DER格式的ASCII文字版本，常見字尾為pem、crt。
3. PFX：Windows系統通常使用，二進位制格式，常見字尾為pfx、p12。
4. P7B：Windows系統通常使用，ASCII文字格式，常見字尾為p7b。

### 五、混合密碼學

由於對稱加密演算法和非對稱加密演算法各有優劣勢，因此在使用過程中會混合使用，即混合密碼學（Hybrid Cryptography）。

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-14b8958efa6aa50445a019ba2878847dd2003109%2F3_hybrid.jpeg?alt=media)

## D3-7：密碼學應用

### 一、便攜裝置

1. Windows系統

使用Bitlocker和Encrypting File System(EFS)加密資料。

1. Mac OS X系統

使用FileVault加密資料。

1. 適配所有系統

VeraCrypt開源程式包。

1. 可信平臺模組（TPM）

安裝在主機板上的晶片，管理硬碟加密的秘鑰，防止移除硬碟在他處讀取。

### 二、電子郵件

1. 良好隱私（PGP）

利用信任網（web of trust）提供安全性，商業版使用RSA進行秘鑰交換、IDEA進行加解密、MD5生成訊息摘要；免費版使用Diffie-Hellman進行秘鑰交換、CAST-128進行加解密、SHA-1生成訊息摘要。

1. 安全多用途網際網路郵件擴充套件（S/MIME）

使用X.509證書進行秘鑰交換（RSA）、AES或3DES進行加解密、SHA-1或MD5生成訊息摘要。

### 三、Web應用程式

1. 安全套接字層（SSL）

HTTPS超文字傳輸協議透過443埠協商Web伺服器和瀏覽器之間的加密通訊會話，其過程如下：

* 瀏覽器訪問網站獲取伺服器證書提取公鑰
* 瀏覽器生成隨機對稱秘鑰（臨時金鑰），使用者伺服器公鑰加密對稱秘鑰傳送給伺服器
* 伺服器使用私鑰解密對稱秘鑰（臨時金鑰），用於後續通訊加密

1. 傳輸層安全（TLS）

由於POODLE攻擊，TLS代替SSL成為主流。

1. 洋蔥和暗網（Tor and Dark Web）

Tor提供一種透過加密和一組中繼節點在網際網路上匿名路由流量的機制。它依賴於一種稱為完美前向保密（perfect forward secrecy）的技術，在這種技術中，加密層防止中繼鏈中的節點讀取除接受和轉發流量所需的特定資訊以外的任何資訊。透過使用完美的前向保密和一組三個或更多的中繼節點，Tor既可以匿名瀏覽標準網際網路，也可以在暗網上託管完全匿名的網站。

### 四、隱寫術（Steganography）

透過加密技術把敏感訊息嵌入另外一條訊息的技術，常用於圖片嵌入敏感訊息用於傳遞給外部。隱寫術的合法用途是數字水印（Watermarking），用於保護智慧財產權。

### 五、網路

1. 電路加密

保護網路傳輸資料的有兩種型別加密技術。

* 鏈路加密：所有資料都是加密的，包括IP地址和路由資訊，用於低層協議加密。
* 端到端加密：資料頭部資訊不加密，用於高層協議加密。

1. 網際網路協議安全（IPSec）

實現端到端加密，透過公鑰加密演算法提供安全性，但只能基於IP協議。

* 兩個重要元件

AH身份驗證頭提供完整性和不可否認性；

ESP封裝安全載荷提供資料內容的機密性和完整性。

* 兩種模式

傳輸模型，只加密資料包載荷；

隧道模式，加密所有資料內容。

* 需要建立安全關聯（SA）來建立IPSec會話，SA記錄了會話的所有配置和狀態資訊。

1. 網際網路安全關聯和金鑰管理協議（ISAKMP）

用於管理IPSec的SA的協議。

### 六、新興應用

1. 區塊鏈（Blockchain）

區塊鏈是一個分散式、不可改變的公共賬本，即建立了一個沒有人可以篡改或破壞的資料儲存。可應用於加密貨幣、供應鏈跟蹤、資產所有權管理等。

1. 輕量級密碼（Lightweight Cryptography）

加解密效能是一個問題，可透過專用加解密硬體實現輕量級密碼，如銀行使用的加密機。

1. 同態加密（Homomorphic Encryption）

加密的資料保留了對該資料執行計算的能力，即不需要解密就能對資料進行計算。

## D3-8：密碼學攻擊

### 一、分析攻擊（Analytic Attack）

一種數學運算，試圖降低演算法的複雜性，關注演算法本身的邏輯。

### 二、實施攻擊（Implementation Attack）

一種利用加密系統實施中的弱點進行攻擊的型別，關注軟體程式碼和程式設計方法。

### 三、統計攻擊（Statistical Attack）

利用密碼系統中的統計弱點，例如浮點錯誤和無法生成真正的隨機數。

### 四、爆破攻擊（Brute-Force Attack）

嘗試金鑰或密碼的所有可能有效組合，可透過以下方法提高爆破效率：

1. 彩虹表（Rainbow Tables）

該表儲存可能是密碼的雜湊值，常用於爆破離線的雜湊密碼。可透過鹽、胡椒和金鑰延伸（key stretching）技術防範彩虹表。

1. 專用硬體裝置

專門為進行暴力攻擊而設計的專用、可擴充套件的計算硬體。

### 五、故障注入（Fault Injection Attack）

攻擊者試圖透過引起某種型別的外部故障來破壞加密裝置的完整性，如使用高壓電、高溫或低溫破壞加密裝置。

### 六、側通道攻擊（Side-Channel Attack）

該攻擊透過記錄系統活動特徵，如CPU利用率、功耗或電磁輻射等變化來破解加密資訊。

### 七、時間攻擊（Timing Attack）

攻擊者精確測量加密操作完成所需的時間，獲取可能用於破壞其安全性的加密過程的資訊。

### 八、頻率分析和唯密文攻擊（Frequency Analysis and the Ciphertext-Only Attack）

僅有訊息密文嘗試破解密文，常透過頻率分析進行，如密文中常見英文字母多，則可能是換位密碼，否則可能是替換密碼。

### 九、已知明文攻擊（Known Plaintext Attack）

擁有明文和密文猜測加密方法。

### 十、選定明文攻擊（Chosen Plaintext Attack）

能夠加密部分明文獲得密文來嘗試找出秘鑰。

### 十一、選定密文攻擊（Chosen Ciphertext Attack）

能夠解密部分密文來嘗試找出秘鑰。

### 十二、中間相遇攻擊（Meet in the Middle）

可破解使用兩輪加密的加密演算法，2DES不安全的原因。

### 十三、中間人攻擊（Man in the Middle）

也叫路徑攻擊（on-path attacks），截獲雙方通訊流量，冒充通訊雙方對流量進行監聽或篡改。

### 十四、生日攻擊（Birthday）

利用雜湊函式的碰撞來保持偽造的數字簽名是有效性。

### 十五、重放攻擊（Replay）

用於攻擊不包含臨時保護的加密演算法，截獲使用者認證資訊重放來嘗試建立通訊會話。

## D3-9：安全設計原則

### 一、物件和主體

一個終端訪問一個web服務，此時會有兩個小過程：

1. 終端訪問web服務，請求相關資料；（終端是主體、web服務是物件）
2. web服務訪問資料庫，並將資料返回給終端。（web服務是主體、資料庫是物件）

終端是沒有權利直接訪問資料庫的，但是透過web服務可以獲取到資料庫資料，這就是信任傳遞（transitive trust），需要關注這類風險。

### 二、封閉和開放系統

1. 封閉系統

標準是專有的，不易整合其他系統，但是相對安全。

1. 開放系統

標準是公開的，易整合其他系統，但更容易遭受攻擊。

1. 開源系統

指程式碼公開，大家可以白嫖並不斷改善系統，如開源專案社群，大家群策群力。

1. 閉源系統

指程式碼隱藏，開發商可以賣錢獲得商業價值，需要依靠開發商進行維護。

### 三、安全預設（Secure Defaults）

通常產品的預設配置都是不安全的，但這樣方便產品的快速部署。現在許多產品也支援預設配置是安全的，但一些人會認為安全預設是阻礙，因此需要平衡預設配置的可用性和安全性。

### 四、故障安全（Fail Securely）

系統執行中會出現故障，系統或環境如何處理故障非常重要，最理想的結果是故障安全（Fail Securely），如程式設計中的異常處理。還有一些易混概念需要注意：

1. 故障弱化（fail-soft）

指允許系統在元件發生故障後繼續執行，如作業系統一個APP掛了，其他APP都正常執行。

1. 故障安全（fail-secure）

故障安全系統優先考慮資產的物理安全，而不是任何其他因素，如有人物理入侵銀行金庫，則門禁需要自帶關閉並鎖定。

1. 故障安全（fail-safe）

當系統故障能夠影響物理世界時，則需要考慮人類生命安全的優先順序，這種人類保護優先順序被稱為故障安全，如火災時門禁自動開啟。

1. 故障開放（fail-open）

當系統故障需要保障可用性時稱為故障開放，如防火牆的bypass功能。

1. 故障關閉（fail-closed）

當系統故障需要保障機密性時稱為故障關閉，如防火牆不再轉發流量。

在物理世界的上下文中，術語fail-open是fail-safe的同義詞，fail-closed是fail-secure的同義詞。在數字世界的上下文中，fail-safe、fail-secure、fail-closed是同義詞。

### 五、保持簡單（Keep it simple）

也被稱為KISS原則，鼓勵避免環境、組織或產品設計過於複雜。系統越複雜，安全就越困難。還有許多其他具有類似或相關重點的概念，例如：

1. 不要重複自己（DRY）

透過不在多個地方重複相同的程式碼來消除軟體中的冗餘。

1. 計算簡化（Computing Minimalism）

精心設計程式碼，以便儘可能少地使用必要的硬體和軟體資源。

1. 最小能力規則（Rule of Least Power）

使用適合所需解決方案的能力最小的程式語言。

1. 越差越好（Worse Is Better）

軟體功能越少，安全性越高。

1. 你不需要他（YAGNI）

程式設計師不應該在實際需要之前新增功能和函式。

### 六、零信任（Zero Trust）

通常認為內部網路是安全的，外部網路是不安全的，更多地關注邊界安全。但新技術的發展（如雲端計算、物聯網等），安全邊界變得越來越模糊。因此，零信任概念被提出，組織內部的任何內容都不會自動受到信任，即絕不信任、始終驗證。

零信任透過微隔離（microsegmentation）和加強最小特權原則來實現。微隔離是將內部網路劃分為多個子區域。每個區域透過內部分段防火牆（ISFW）、子網或VLAN與其他區域分開。區域可以小到單個裝置，例如高價值伺服器，甚至客戶端或端點裝置。區域之間的任何和所有通訊都經過過濾，可能需要進行身份驗證，通常需要會話加密，並且可能受到允許列表和阻止列表控制。

零信任解決方案通常是非常大的，包括但不限於內部分段防火牆（ISFW）、多因素身份驗證（MFA）、身份和訪問管理（IAM）以及下一代終端安全。只有實現了持續驗證和監視使用者活動的方法，安全管理的零信任方法才能成功。

### 七、設計隱私（Privacy by Design，PbD）

在早期設計階段將隱私保護整合到產品中，而不是試圖在開發結束時將其附加到產品中的指導原則。PhD七項原則：

1. 主動而非被動；預防而非補救（Proactive not reactive; preventive not remedia）
2. 預設隱私（Privacy as the default）
3. 隱私融入設計（Privacy embedded into design）
4. 全功能–正和而非零和（Full functionality – positive-sum, not zero-sum）
5. 端對端安全—全生命週期保護（End-to-end security – full lifecycle protection）
6. 可見性和透明性（Visibility and transparency）
7. 尊重使用者隱私（Respect for user privacy）

### 八、信任但驗證（Trust but Verify）

信任但驗證指的是經過一次驗證後就對其信任，如內網通常都被認為是安全的。該方法使組織容易受到內部攻擊，並使入侵者能夠輕鬆地在內部系統之間執行橫向移動。該模型已被認為是過時的，大多數安全專家現在建議圍繞零信任模型設計組織安全。

### 九、確保CIA的技術

以下概念不僅可用於數字世界，也可用於物理世界。

1. 限制（confinement）

約束程序的手段，程序只能訪問分配給自己的記憶體空間（偏動詞）。

1. 界限（bound）

限制訪問的記憶體邊界即是界限（偏名詞）。

1. 隔離（isolation）

限制程序只能在某記憶體空間活動的狀態稱為隔離（一種狀態）。

1. 訪問控制

高頻知識點，詳見域5。

1. 信任和保證

信任是安全機制、功能或能力的存在。保證是對滿足安全需求的信心程度。

## D3-10：安全模型基本概念

### 一、描述物件安全屬性的方法

1. 安全令牌（token）

與資源關聯並描述其安全屬性的單獨物件，可以在請求訪問實際物件之前傳遞有關物件的安全資訊。

1. 能力表（capability）

為每個受控物件維護一行安全屬性。

1. 安全標籤（label）

分配給物件的自定義安全屬性，通常無法更改。

### 二、可信計算基

可信計算基礎（TCB）設計原則是硬體、軟體和控制的組合，它們共同構成一個可信基礎，以執行組織的安全策略。TCB元件的職責是確保系統在所有情況下都能正常執行，在所有情況下都遵守安全策略。

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-b7cd68002c5307ea53437144b8490432b60c4af4%2F3_TCB.png?alt=media)

1. 安全邊界（security perimeter）

是TCB與系統其餘部分間的假想邊界，TCB與系統其餘部分通訊必須建立安全通道，即可信路徑（trusted paths）。

1. 參考監視器（reference monitors）

TCB中負責訪問控制的執行。

1. 安全核心（security kernel）

TCB中實現參考監視器功能的元件集合。

### 三、狀態機模型

系統受外部輸入影響會改變系統狀態，保障系統所有轉換的狀態都是安全的，這就稱為安全狀態機模型。

### 四、資訊流模型

基於狀態機模型，關注資訊的流向，透過識別正常資訊流路徑解決隱蔽通道問題。

### 五、非干擾模型

基於資訊流模型，關注較高安全級別主體的行為如何影響系統狀態或較低安全級別主體的行為，只要不產生影響就是非干擾模型。

### 六、組合理論

一些屬於資訊流範疇的模型建立在多個系統之間輸入和輸出的概念上，這些被稱為組合理論。

1. 級聯（Cascading）：A的輸出是B的輸入。
2. 反饋（Feedback）：A的輸出是B的輸入，B的輸出是A的輸入。
3. 連線（Hookup）：A的輸出不僅是B的輸入，而且也是C的輸入。

### 七、Take-Grant模型

1. 獲取規則：主體A可以從主體B獲取許可權；
2. 授予規則：主體A可以將許可權授予主體B或客體C；
3. 建立規則：主體A建立新許可權；
4. 刪除規則：主體A刪除其許可權。

### 八、訪問控制矩陣

能力表是行（關注主體），訪問控制列表是列（關注客體），兩者組成訪問控制矩陣。

### 九、Bell-LaPadula模型

專注於維護機密性，採用強制訪問控制和格子概念。

1. 簡單安全屬性：不準向上讀；
2. \*安全屬性：不準向下寫；
3. 自由安全屬性：使用訪問控制矩陣實現自主訪問控制。

### 十、Biba模型

專注於維護完整性，適用於非軍事組織。

1. 簡單完整性屬性：不準向下讀；
2. \*完整性屬性：不準向上寫。

### 十一、BL和Biba模型組合記憶

1. BL涉及機密性，其屬性全是安全屬性；
2. Biba涉及完整性，其屬性全是完整性屬性；
3. 簡單屬性肯定是讀操作，\*屬性肯定是寫操作。

### 十二、Clark-Wilson模型

專注於維護完整性，採用三元組（主體/程式/客體）架構，主體無法直接訪問物件，這被稱為約束介面（restrictive interface）。

1. 受約束資料項（CDI）：受保護的資料；
2. 無約束資料項（UDI）：不受保護的資料；
3. 完整性驗證過程（IVP）：掃描資料並確認其完整性的過程；
4. 轉換過程（TP）：唯一允許修改CDI的過程。

UDI經過IVP轉換成CDI，CDI不能被直接修改，必須經過TP才能修改。

### 十三、Brewer and Nash模型

別名為Chinese Wall，基於使用者行為動態分配主體的許可權。其實是將客體進行分類、隔離並新增邏輯判斷規則以實現動態的許可權分配。如A和B是競爭對手，那麼C在訪問A的資料後，就不能再訪問B的資料，避免出現利益衝突。

### 十四、Goguen-Meseguer模型

專注於維護完整性，是非干涉模型的基礎。

### 十五、Sutherland模型

專注於維護完整性，可防止隱蔽通道。

### 十六、Graham-Denning模型

專注於主體和客體的安全建立與刪除，共有八個規則：

1. 安全地建立物件
2. 安全地建立主體
3. 安全地刪除物件
4. 安全地刪除主體
5. 安全地提供讀取訪問許可權
6. 安全地提供授予訪問許可權
7. 安全地提供刪除訪問許可權
8. 安全地提供轉移訪問許可權

### 十七、Harrison–Ruzzo–Ullman模型

Graham-Denning模型的擴充套件，著重於物件訪問權的分配以及這些分配權利的彈性。

## D3-11：基於系統安全需求選擇控制

### 一、通用準則（Common Criteria）

國際標準，用於評估IT產品安全性。

1. CC的目標

* 增加買家對經過評估、評級的IT產品安全性的信心
* 消除重複評估
* 不斷提高安全評估的成本效益和效率
* 確保對IT產品的評估符合高且一致的標準
* 促進評估並提高經評估、評級的IT產品的可用性
* 評估評估目標（target of evaluation，TOE）的功能和保證

1. CC的兩個關鍵要素

* 保護範疇（PP）：客戶對欲購產品提出的安全要求。
* 安全目標（ST）：廠商對自己產品的安全宣告。

1. 評估保證級別（evaluation assurance level，EAL）

EAL級別涉及兩個方面的評估

* 功能（functionality）：詳細的功能要求，即功能測試項的描述。
* 保證（assurance）：詳細的保證要求，涉及運營方面的描述。

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-26f21f5f68b0496b243f8a4f514d22b437facba8%2F3_CC_levels.png?alt=media)

1. 理解CC的價值

客戶想要買IT產品（提出安全要求，即PP），但是怕被坑，畢竟廠商自賣自誇，客戶很難知道是否有吹噓的功能點。那麼有一個測評中心，採用CC的評估標準對廠商的產品進行評估（廠商會對送測的產品進行安全宣告，即ST），並給予產品安全性的級別（即EAL）。客戶再根據測評中心提供的評估報告進行IT產品採購就具有一定的參考性，大機率降低被坑的風險。

### 二、授權運營（Authorization to Operate）

在很多環境中，為了運營目標使用安全的系統必須獲取官方批准，該過程被稱為授權運營（ATO）。

PS：ATO替代了老舊術語鑑定（accreditation）。

1. 授權官（Authorizing Official，AO）

執行評估和分佈ATO的實體，也被稱為指定審批機構（DAA）、審批機構（AA）、安全控制評估員（SCA）和推薦官（RO）

1. 需重新獲取ATO的條件

* ATO時間範圍已過期。
* 系統遭遇重大安全漏洞。
* 系統遭遇重大的安全變更。

1. AO的授權決策

* 授權運營（ATO）：系統的風險管理到可接受水平時。
* 通用控制授權（Common Control Authorization）：當從另一個供應商繼承安全控制時，以及當與通用控制相關的風險處於可接受水平並且已經有來自同一AO的ATO時。
* 授權使用（Authorization to Use）：當第三方供應商（如雲服務）提供的產品被認為具有可接受的風險水平時。
* 拒絕授權（Denial of Authorization）：風險不可接受時。

## D3-12：硬體及韌體

### 一、處理器

中央處理器（CPU），通常稱為處理器或微處理器，是計算機的神經中樞。

1. 執行型別

指的是使用不同方法來解決CPU同時做多件事的問題。

* 多工（Multitasking）：單核CPU條件下，不是真正的多工處理，依靠作業系統模擬實現。
* 多核（Multicore）：多核CPU同時處理多個事務。
* 多處理（Multiprocessing）：多個CPU條件下，利用多個CPU完成多工處理。
* 多程式（Multiprogramming）：類似多工處理，過時的技術，區別在於多程式用於大型機使用，而多工用於個人電腦使用；多程式需要專門的軟體才能實現，多工由作業系統直接實現。
* 多執行緒（Multithreading）：多執行緒允許在單一程序中執行多個併發任務。多工處理多個任務時佔用多個程序；與多工處理不同，多執行緒允許多個任務在單一程序中執行。

1. 保護機制

* 保護環
  * 環0具有最高的特權級別，基本上可以訪問任何資源，執行核心；
  * 環1執行作業系統除核心外的其他部分；
  * 環2執行I/O驅動程式和系統應用程式；
  * 環3執行應用程式。
* 程序狀態
  * 就緒狀態（ready）
  * 等待狀態（waiting）
  * 執行狀態（running）
  * 停止狀態（stopped）

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-db6b22102a1d0189289f5ba8aa366a7cf76801d1%2F3_process.png?alt=media)

注意執行狀態的兩個特殊狀態，一般執行狀態叫問題狀態（problem）（使用者模式，許可權低），當需要執行特權時成為監管狀態（supervisory）（監管模式，許可權高）。

* 操作模式
  * 使用者模式：執行在環3。
  * 特權模式：執行在環0-2，也叫監管模式或核心模式。

### 二、儲存器

計算機需要隨時儲存的資訊的儲存庫。

1. 只讀儲存器（ROM）

ROM是可以讀取但不能更改的記憶體(不允許寫入)，但這就對後期維護就不友好了，因此有了以下幾種子型別的ROM。

* 可程式設計只讀儲存器（PROM）：可允許出廠後再燒入內容。
* 可擦除只讀儲存器（EPROM），其中用光擦的叫UVEPROM，用電擦的叫EEPROM。
* 快閃記憶體（Flash Memory）：高階版EEPROM，可按塊或頁進行擦除，用於儲存卡、隨身碟等。

1. 隨機存取儲存器（RAM）

隨機存取儲存器（RAM）是可讀寫儲存器，但屬於易失性儲存介質，斷電後資料消失。

* 實際儲存器（Real Memory），也叫主記憶體，也就是日常說的記憶體。
* 快取記憶體RAM（Cache RAM），也就是記憶體與儲存裝置的緩衝地帶，提前讀取資料到快取中，提高處理速度。

1. 暫存器（registers）

CPU的板載儲存器，為算數邏輯單元（ALU）在執行指令時提供可以直接訪問的儲存位置。

1. 記憶體定址（Memory Addressing）

使用記憶體資源時，CPU必須具有一些引用記憶體中各個位置的方法。

* 暫存器定址：CPU直接用就行，畢竟離得最近；
* 立即定址：將資料作為指令的一部分提供給CPU；
* 直接定址：要訪問的記憶體的實際地址會提供給CPU；
* 間接定址：要訪問的記憶體的實際地址會透過另一個記憶體地址（間接地址）提供給CPU；
* 基址+偏移量定址：使用儲存在CPU的某個暫存器中的數值作為開始計算的基地址。

1. 輔助儲存器（Secondary memory）

通常指磁性、光學或基於快閃記憶體的介質，或其他儲存裝置，包含CPU不能直接獲得的資料。虛擬記憶體（Virtual memory）是一種特殊型別的輔助記憶體，由作業系統管理，可使其像真實記憶體一樣。

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-94a894040a430294230b3d267f56d22b6de839e9%2F3_memory.png?alt=media)

1. 資料儲存裝置

* 主儲存裝置（記憶體）與輔助儲存裝置（硬碟）
* 易失性儲存裝置（記憶體）與非易失性儲存裝置（硬碟）
* 隨機存取（大多數都是）與順序存取（典型的是磁帶，便宜哦）

1. 儲存方面的安全問題

* 總體上還是資料安全的問題，主要是資料在三種狀態（靜態、傳輸和使用）下的保護，靜態（對稱加密）和傳輸（TLS）都使用加密來防範，使用中的資料無法加密，被攻擊的風險也低，因為斷電就資料就沒了，但需要注意一種攻擊方法，凍結記憶體晶片以延遲駐留資料的衰減然後再嘗試讀取。
* 資料殘留問題，其中因SSD耗損均衡機制或壞塊的存在，可能會導致淨化過程不能完全擦除SSD上的資料。耗損均衡（wear leveling）指的是為了保障每個儲存塊的寫入/擦除次數一致，避免對某一部分割槽塊的過度地重複進行擦除操作而報廢，從而有效延長了固態硬碟的寫入壽命。
* 輔助儲存裝置易被物理盜取，需要加強物理安全的保護。

1. 放射安全（Emanation Security）

許多電子類裝置發出的電訊號或輻射可被截獲，其中可能包含機密資訊。用於防止放射攻擊的對策和防護措施型別稱為TEMPEST。TEMPEST也可用於進行攻擊，遠端讀取裝置產生的電子輻射，此攻擊被稱為Van Eck phreaking，防範機制如下：

* 法拉第籠（Faraday Cage）：被動機制，設計一個金屬罩子防止訊號的傳播。
* 白噪聲（White Noise）：主動機制，主動傳送干擾訊號防止遠端讀取。
* 控制區（Control Zone）：劃定區域實施法拉第籠或白噪聲。

### 三、輸入/輸出（I/O）裝置

1. 顯示器

* Van Eck入侵，使用TEMPEST技術可遠端讀取螢幕上的資訊。
* 肩窺（shoulder surfing），用眼睛或攝像機看到你螢幕上的內容。

1. 印表機

* 趁列印者未取走敏感資訊的紙質前檢視或帶走敏感資訊。
* 審查印表機是否本地儲存列印的資料。
* 印表機資料傳輸安全性。
* 印表機的身份驗證機制。

1. 鍵鼠

易受TEMPEST技術監聽，洩露擊鍵操作。

1. 調變解調器

過時裝置趕緊棄用，避免成為風險點。

### 四、韌體（Firmware）

儲存在ROM晶片中的軟體。

1. 主機板BIOS

phlashing攻擊，會安裝官方 BIOS 或韌體的惡意變體版本，將遠端控制或其他惡意功能引入裝置。2011年之後，統一可擴充套件韌體介面（UEFI）取代了傳統BIOS。

1. 裝置韌體

迷你作業系統，僅完成一些功能，如物聯網裝置。

## D3-13：客戶端的及伺服器系統

### 一、客戶端安全

1. 移動程式碼

applet由伺服器傳送給客戶端，以便客戶端可以做本地處理，降低伺服器壓力、提升處理速度。applet允許遠端系統將程式碼傳送到本地系統執行，那麼伺服器傳送的程式碼如果包含惡意程式（伺服器運營或攻擊者插入），則客戶端就會面臨風險。兩個歷史示例時Java applet和ActiveX 控制元件，都已過時淘汰。JavaScript作為嵌入式程式碼成為了新的風險點，可引發XSS、XSRF等漏洞，防範機制如下：

* 在客戶端側保持瀏覽器更新。
* 在伺服器側實施JavaScript安全元件，如ADsafe、SES、Caja（伺服器）。
* 使用內容安全策略（CSP），對瀏覽器活動執行嚴格的同源限制。

1. 本地快取

* ARP快取：ARP快取中毒，使用動態持續傳送錯誤ARP響應包或建立靜態ARP條目等方式，改變客戶端ARP快取的IP/MAC對映關係，可用於發動中間人或拒絕服務等攻擊。
* DNS快取：DNS快取中毒，攻擊原理與ARP快取類似，可攻擊HOSTS檔案、授權DNS伺服器、快取DNS伺服器等，改變的是IP/domain對映關係，可用於重定向攻擊。
* Internet檔案快取：從web網站下載的臨時儲存檔案，可為訪問web網站提速，存在插入惡意程式碼的風險。

### 二、伺服器安全

攻擊大多數針對的是服務端，後續學到的攻擊方法基本都是針對服務端的。

1. 大規模並行資料系統

並行資料系統或平行計算是一種設計用於同時執行大量計算的計算系統。

* 對稱多處理（symmetric multiprocessing，SMP）：所有處理器被同等對待並由一個作業系統控制的場景。適合以極高速率處理簡單操作，即個人電腦使用。
* 非對稱多處理（asymmetric multiprocessing，AMP）：處理器通常彼此獨立執行，每個處理器都有自己的作業系統和/或任務指令集，以及專用的資料匯流排和記憶體資源的場景。
* 大規模並行處理（massive parallel processing，MMP）：AMP的變體，其中多個AMP系統相互連線，以便處理單個主要任務。適合處理龐大、複雜和計算密集的任務，即科研使用。

1. 網格計算

網格計算指的是由一箇中央核心伺服器釋出和管理任務到網際網路，當網格成員的本地處理能力空閒或部分空閒時，可選擇進入網格執行任務，網格成員不想執行任務時隨時可以離開。網格計算理解起來就是眾籌，某個任務需要100個人幹，他可以拆成100份工作包釋出出去，由網格成員選擇執行，共同完成最終目標。網格計算的風險點：

* 釋出的任務不能涉密，因為內容都會暴露在網際網路上；
* 傳輸過程中工作包完整性遭到破壞會導致返工；
* 中央核心伺服器是單點故障點和風險點。

1. 對等網路（P2P）

跟網格計算的目的是一樣的，眾籌一起把某個任務完成。區別在於P2P沒有中央管理器，服務是實時的，可以參考一些P2P下載軟體。

1. 高效能運算系統

高效能運算（High-performance computing，HPC）系統是設計用於以極高速度執行復雜計算或資料操作的計算平臺，如超級計算機和MPP等。HPC由三個主要元素組成：計算資源、網路能力和儲存能力，每個元素必須能夠提供等效的功能才能保證整體效能。

實時作業系統（real-time operating system，RTOS）設計用於在資料到達系統時以最小延遲處理資料。RTOS通常儲存在只讀儲存器（ROM）中，設計為在硬實時或軟實時條件下執行。

1. 分散式系統

分散式系統（distributed system）或分散式計算環境（distributed computing environment，DCE）是單個系統的集合，這些系統協同工作以支援資源或提供服務。分散式系統提供彈性、可靠性、效能和可擴充套件性優勢。藉口定義語言（IDL）是一種用於定義分散式系統中客戶端和伺服器程序或物件之間介面的語言。

1. 微服務（Microservices）

面向服務體系結構（SOA）指的是利用現有但獨立的軟體服務構建新的應用程式或功能，如軟體A和軟體B功能整合，推出了新產品軟體C。微服務是基於web的解決方案的SOA的衍生產品。微服務僅是web應用程式的一個元素、特性、功能、業務邏輯或功能，可以被其他web應用程式呼叫或使用。

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-90a11a072e31418687f105beac2dbe51af4deca6%2F3_microservices.png?alt=media)

## D3-14：嵌入式裝置相關技術

嵌入式系統（embedded system）是為了提供自動化、遠端控制或監控而新增到現有機械或電子系統中的任何形式的計算元件。大多數嵌入式系統的設計都著眼於將成本和無關功能降至最低，這通常會導致缺乏安全性和升級或修補程式的困難。由於嵌入式系統可能控制物理世界中的某個機制，因此安全漏洞可能會對人員和財產造成傷害。

### 一、靜態系統

嵌入式系統通常是靜態系統，是指使用者和管理員希望保持不變的任何系統。目標是防止或至少減少使用者實施可能導致安全性或功能操作降低的更改的可能性，如ATM、網咖電腦等。

### 二、聯網裝置

聯網裝置（network-enabled devices）指的是是具有本機網路功能的任何型別的裝置，嵌入式系統的示例包括網路連線印表機、智慧電視、HVAC控制。

### 三、網路物理系統

網路物理系統（Cyber-physical Systems）指的是提供計算手段來控制物理世界中某些東西的裝置。嵌入式裝置關注計算，網路物理系統關注結果。示例包括提供人體增強假肢、車輛避碰、空中交通管制、機器人手術的精確性等，擴充套件為IoT。

### 四、專用裝置（Specialized Devices）

專用裝置是為某一特定目的而設計、由特定型別的組織使用或執行特定功能的任何裝置，如醫療裝置、智慧車輛、自動駕駛飛機和智慧儀表。這些裝置隨著技術發展都可以聯網管控，提高便利性的同時引入新的風險，且這些風險通常都會導致人身安全的損害，優先順序極高。

### 五、物聯網

物聯網（IoT）是一類透過網際網路連線的智慧裝置，旨在為裝置或裝置提供自動化、遠端控制或人工智慧處理。與嵌入式裝置不同之處在於，IoT可以是獨立裝置，也可以結合現有系統，而嵌入式裝置通常僅用於整合到某系統。

與物聯網相關的安全問題通常與訪問和加密有關，如攝像頭被控制。一種可能的安全實施方式是為物聯網裝置部署一個獨立的網路，該網路與主網路保持分離和隔離，被稱為三啞路由器（three dumb routers）。

工業物聯網（IIoT）是物聯網的衍生產品，更側重於工業、工程、製造或基礎設施層面的監督、自動化、管理和感測。IIoT是ICS和DCS的演變，它整合了雲服務來執行資料收集、分析、最佳化和自動化。IIoT的示例包括邊緣計算和霧計算。

### 六、工業控制系統

工業控制系統（ICS）是一種控制工業過程和機器的計算機管理裝置，也稱為操作技術（OT）。ICS的形式包括分散式控制系統（DCS）、可程式設計邏輯控制器（PLC）和監控與資料採集（SCADA）。

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-f0fe1f3dd1a27ca613f3696b3315f07b5a2344e8%2F3_ICS.png?alt=media)

在實踐中，SCADA和ICS系統仍然常常安全性差、易受攻擊、更新不頻繁。常見的重要安全控制包括隔離網路、限制物理和邏輯訪問、將程式碼僅限於基本應用程式以及記錄所有活動。

## D3-15：虛擬化技術發展

### 一、虛擬化技術

虛擬化技術用於在單個主機的記憶體中託管一個或多個作業系統，或執行與主機作業系統不相容的應用程式。

1. 主要元件

* 虛擬機器監控程式（hypervisor）：建立、管理和操作虛擬機器的虛擬化元件。
* 宿主機作業系統（the host OS）：執行虛擬機器監控程式的計算機。
* 來賓作業系統（guest OS）：也就是虛擬機器。

1. hypervisor的型別

* 型別1：hypervisor直接安裝到主機作業系統通常駐留的硬體上，通常用於支援伺服器虛擬化，如EXSI。
* 型別2：硬體上存在一個標準的常規作業系統，然後將hypervisor作為另一個軟體應用程式安裝，通常用於桌面部署，如VMware。

1. 彈性與可伸縮性

彈性（Elasticity）是指擴充套件或收縮資源以滿足當前的處理需求，而可伸縮性（scalability）是指承擔更多工作或任務的能力。

### 二、虛擬化軟體（Virtual Software）

虛擬化軟體可以使虛擬機器像真實主機一樣執行，如VMware。

### 三、虛擬化網路（Virtualized Networking）

虛擬化網路將硬體和軟體網路元件組合成單個整合實體，允許對所有網路功能進行軟體控制，如管理、流量調整、地址分配等，如SDN、虛擬化SAN、虛擬機器和埠隔離等。

### 四、軟體定義一切（Software-Defined Everything，SDx）

軟體定義的一切（SDx）是指使用虛擬化以軟體取代硬體的趨勢。

1. 虛擬桌面基礎設施（VDI）

透過在使用者遠端訪問的中央伺服器上託管桌面作業系統虛擬機器來降低終端裝置安全風險和效能要求的方法，也被稱為虛擬桌面環境（VDE）。

1. 虛擬移動基礎設施（VMI）

與VDI基本一樣，但指的是移動裝置的作業系統在中央伺服器上虛擬化。

1. 瘦客戶機（Thin Client）

使用者本地僅保留顯示、I/O裝置，可節省開支。

1. 軟體定義可見性（SDV）

一個自動化網路監視和響應過程的框架，其目標是能夠分析每個資料包，並就轉發、丟棄或以其他方式響應威脅做出基於深度智慧的決策。

1. 軟體定義資料中心（SDDC）

用虛擬提供的解決方案替換物理IT元素，通常由外部第三方（如雲服務提供商（CSP））提供，因此SDDC其實就是IT即服務（ITaaS）。

### 五、虛擬化安全管理

1. 保持更新

定期對虛擬機器、虛擬機器監控程式、宿主機進行補丁更新，使用虛擬化技術變相增加了受攻擊面和管理成本。

1. 定期備份

定期對虛擬機器資產進行備份，如使用映象或快照，方便快速恢復。

1. 安全測試

定期對虛擬化環境進行安全評估和滲透測試。

1. VM風險

* 虛擬機器蔓延（VM sprawl）：指的是大量未充分利用的虛擬機器在執行，當沒有沒有制定全面的IT管理或安全計劃時就容易出現該情況。
* 伺服器蔓延（server sprawl）：與虛擬機器蔓延一樣，不過指的是伺服器。
* 影子IT（shadow IT）：用於描述部門在高階管理層或IT團隊不知情或未經其許可的情況下部署的IT元件（物理或虛擬）。
* 虛擬機器逃逸（VM escaping）：當虛擬機器中軟體能夠破壞hypervisor提供的隔離保護，從而滲透到其他虛擬機器或宿主機時，就會發生VM逃逸。

### 六、容器化（Containerization）

容器化或作業系統虛擬化（OS-virtualization）指的是基於消除虛擬機器中作業系統元素重複的概念。每個應用程式都放在一個容器中，該容器只包含支援封閉應用程式所需的實際資源，而公共或共享作業系統元素則是hypervisor的一部分或使用一組通用二進位制檔案和庫。

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-8e66b6d608255bd10287aaa6d987ec3f0f034095%2F3_containerization.png?alt=media)

### 七、無伺服器架構（Serverless Architecture）

一種雲端計算概念，其中程式碼由客戶管理，平臺（即支援的硬體和軟體）或伺服器由雲服務提供商（CSP）管理。此執行模型允許開發人員僅關注其程式碼的邏輯，而不必關心特定伺服器的引數或限制，這也稱為功能即服務（FaaS）。這與平臺即服務（PaaS）不同之處在於，功能或函式僅在呼叫時執行，然後在操作完成時終止，從而將成本降至最低。

### 八、基礎設施即程式碼（Infrastructure as code，IaC）

IaC將硬體配置視為一個元素集合，以與在DevSecOps（安全、開發和操作）下管理軟體和程式碼相同的方式進行管理，即以軟體程式碼管理方式對硬體基礎設施進行管理。

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-ef874f1c964603339f18b2e73c3e4589b7958e92%2F3_IaC.png?alt=media)

### 九、邊緣計算（Edge Computing）

邊緣計算是一種網路設計理念，其中資料和計算資源儘可能靠近，以最佳化頻寬使用，同時最小化延遲，典型示例是CDN。

### 十、霧計算（Fog Computing）

霧計算依靠感測器、物聯網裝置甚至邊緣計算裝置來收集和處理資料，然後將加工後的資料傳輸回中心位置進行處理。

## D3-16：移動裝置

移動裝置（Mobile Device）需關注的安全問題主要涉及是智慧手機、平板電腦以及膝上型電腦。最常用的兩大類作業系統是Android和iOS，其中SEAndroid是安全增強版本。

### 一、移動裝置安全特性

1. 移動裝置管理（Mobile Device Management，MDM）

MDM透過註冊員工的移動裝置來管理他們，包括但不限於資產管理、配置管理、遠端擦除等功能。企業移動管理（EMM）是MDM的加強版，可實現更細粒度的內容控制，由保護裝置轉到保護企業資料。統一終端管理（UEM）是MDM和EMM的整合版，擴大了管控範圍，包括但不限於移動裝置、PC、IoT、可穿戴裝置、ICS等。

1. 裝置身份驗證

常見裝置身份驗證方法如密碼、指紋、人臉識別等，詳情見域5。

1. 全裝置加密（Full-Device Encryption，FDE）

與硬碟加密一樣，額外對移動裝置的資料提供保障。

1. 通訊保護

可使用VoIP提供移動裝置的語音加密服務，有效對抗竊聽攻擊。

1. 遠端擦除

當移動裝置丟失後，應採取遠端擦除對資料進行清理。需注意該操作需要有網路的情況下才可執行，因此最好配合FDE組合使用。

1. 裝置鎖定

類似賬戶鎖定，如手機解鎖密碼錯誤多次鎖定手機。

1. 螢幕鎖定

類似螢幕保護程式，如手機一定時間不使用自動鎖定螢幕。

1. GPS和定位服務

* 地理位置（Geolocation）資料通常用於導航工具、身份驗證服務和定位服務。
* 地理標記（Geotagging）是指移動裝置能夠在其建立的任何媒體（如照片、影片和社交媒體帖子）中包含其位置的詳細資訊，可被用於攻擊目的的資訊收集。
* 地理圍欄（Geofencing）指定一個特定的地理區域，然後用於在移動裝置上自動實施功能或觸發設定。

1. 內容管理

移動內容管理（MCM）系統用於透過在移動裝置上訪問或使用的方式控制公司資源，目標是大限度地提高效能和工作效益，可繫結MDM確保資料安全。

1. 應用控制

限制可以在裝置上安裝哪些應用程式，機制依靠應用程式允許列表（allow listing，術語白名單的替代）實現。移動應用程式管理（MAM）屬於MDM的子解決方案，只關注應用程式管理。

1. 推送通知

推送通知服務能給將資訊傳送到移動裝置，如APP推送的各種廣告。推送通知可被用於社會工程、網路釣魚、垃圾通知等，其中推送鎖（push locker）指的是使用者點通知訊息不停被重定向到其他通知訊息，除非殺掉程序才可關閉。

1. 第三方應用商店

第三方應用程式源顯著增加了資料洩漏或惡意軟體入侵組織網路的風險，開啟禁止安裝未知來源的應用程式功能、禁止裝置越獄、部署MDM等可降低第三方應用程式源風險。

1. 儲存分割

用於人為地劃分儲存介質上各種型別或值的資料，如華為手機的隱私空間。

1. 資產跟蹤和庫存控制

資產跟蹤也就是移動裝置管理，庫存控制指的是使用移動裝置當作掃碼槍管理倉庫。

1. 可移動儲存

移動裝置可以外接可移動儲存，如microSD卡，需關注可移動儲存的安全風險問題。

1. 連線方法

移動裝置支援多種連線方式，如蜂窩網路或本地無線網路，需採用可靠和安全的通訊服務，如WPA3。

1. 禁用未使用的功能

最小化安裝原則。

1. 越獄（Rooting or Jailbreaking）

越獄指在移動裝置的引導載入程式上破壞數字版權管理（DRM）安全性的行為，以便能夠以root或完全系統許可權操作裝置。一方面，大多數惡意軟體無法以使用者模式執行，但在越獄裝置上如魚得水；另一方面，越獄裝置可能會得不到原廠支援，因此組織應該禁用越獄裝置。

1. 側向載入（Sideloading）

指透過某種形式的檔案傳輸或USB儲存方法將安裝程式檔案帶到裝置上，從而在裝置上安裝應用程式的活動。側向載入能給繞過安全限制，應禁止該功能或強制對所有應用程式進行數字簽名。

1. 自定義韌體

使用自定義韌體替換原有韌體的活動被稱為刷機。組織不應允許使用者操作具有定製韌體的移動裝置，除非該韌體已獲得組織的預先批准。

1. 運營商解鎖（Carrier Unlocking）

合約機只能使用某一個運營商的某一張SIM卡，合約機到期後運營商解鎖九可使用其他運營商的SIM卡了，該活動並不影響移動裝置安全性。

1. 韌體OTA（over-the-air）升級

透過蜂窩網路或無線網路從運營商或供應商處下載的韌體更新。

1. 金鑰管理

大多數移動裝置也使用金鑰，且儲存在本地，因此需要關注金鑰安全儲存問題。

1. 憑據管理

憑據管理器也被稱為密碼保險庫（password vault），用於儲存各類網路或系統的賬號密碼，方便使用者自動登入。通常來說憑據管理器都是加密的，必須解鎖才能訪問。

1. 簡訊

短訊息服務（SMS）、多媒體訊息服務（MMS）和豐富的通訊服務（RCS）都是有用的通訊系統，但它們也作為攻擊向量，如smishing和SPIM。簡訊可以用作身份驗證因素，稱為基於簡訊的雙因子身份驗證（SMS-based 2FA）。

### 二、移動裝置部署策略

1. 自帶裝置（Bring Your Own Device，BYOD）

該策略允許員工自帶個人移動裝置工作，可提高員工士氣和工作滿意度，但會增加組織的安全風險，可能涉及採集裝置上員工的個人資訊。

1. 公司所有、個人使用（Corporate-Owned, Personally Enabled，COPE）

該策略是組織購買裝置並提供給員工，組織可以控制移動裝置符合安全策略要求，也可能涉及採集裝置上員工的個人資訊。

1. 自選裝置（Choose Your Own Device，CYOD）

該策略為使用者提供了一個經批准的裝置列表，使用者可以從中選擇要使用的裝置。如果是員工自己買，則是BYOD變體，該策略通常會導致員工不太爽；如果是公司買，則是COPE變體。

1. 組織自有移動戰略（Corporate-Owned Mobile Strategy，COMS）

也叫組織自有、僅限業務（corporate-owned, business-only，COBO），公司購買能夠支援符合安全策略的安全性的移動裝置，僅供公司業務使用，禁止執行個人活動。該策略是最具安全性的。

1. 移動裝置實施策略關注點

* 資料所有權
* 所有權支援
* 補丁和更新管理
* 安全產品管理
* 取證
* 隱私
* 入職/離職
* 遵守公司策略
* 使用者接受度
* 架構/基礎設施考慮
* 法律問題
* 可接受使用策略
* 機載攝像頭/影片
* 錄音話筒
* Wi-Fi直連
* 個人熱點
* 非接觸式支付方式
* SIM克隆

## D3-17：基本安全保護機制以及常見安全體系架構缺陷和問題

### 一、基本安全保護機制

1. 程序隔離

作業系統為每個程序開闢獨立的記憶體空間，程序間互不影響。

1. 硬體分割

與程序隔離類似，無非是透過硬體層面進行隔離，通常僅限於國家安全設施使用。

1. 系統安全策略

為系統的整個生命週期制定安全策略，指導系統的設計、開發、實施、測試和維護。

### 二、常見安全體系架構缺陷和問題

1. 隱蔽通道（Covert Channels）

一種用於在通常不用於通訊的路徑上傳遞資訊的方法。

* 時間隱蔽通道：透過改變系統元件的效能或以可預測的方式修改資源的定時來傳遞資訊，通常非常難以檢測，如摩斯密碼。
* 儲存隱蔽通道：透過將資料寫入另一程序可以讀取的公共儲存區域來傳輸資訊，如隱寫術。

1. 基於設計和編碼問題的攻擊

人類永遠不會編寫完全安全的程式碼。

1. Rootkits

Rootkits是駭客的工具包，指的是獲得對系統的全部控制權，最典型的就是手機越獄。

1. 增量攻擊（Incremental Attacks）

某些形式的攻擊以緩慢、漸進的方式發生，而不是透過明顯或可識別的嘗試來危害系統安全性或完整性，典型的攻擊形式有資料欺騙（data diddling）和臘腸攻擊（salami）。

## D3-18：站點和設施設計的安全原則

物理安全控制是所有安全控制的基礎，一個部署了各種安全防護裝置的機房如果沒有關門，駭客想要破壞它是多麼的簡單。

### 一、安全設施計劃

幹啥都得先有計劃，可透過關鍵路徑分析（critical path analysis）和評估技術融合（technology convergence）來完成計劃編制，資訊保安人員必須參與設計，避免出現遺漏。

### 二、站點選擇

基於組織安全需求，評估成本、位置、規模以及安全要求共同決定站點位置。工業偽裝（Industrial Camouflage）是試圖透過提供一個呈現可信或令人信服的替代方案的表像來掩蓋或隱藏設施的實際功能、目的或操作，如資料中心可能以炸雞店的形式出現。

### 三、設施設計

設施設計首先考慮的是人身安全，其次需要滿足合規要求。透過環境設計預防犯罪（CPTED），其指導思想是透過構建物理環境和周邊設施，來降低甚至打消潛在入侵者的犯罪企圖。CPTED主要有三種策略：

1. 自然訪問控制（natural access control）

透過設定入口、使用圍欄和柱子以及設定燈光，對進出建築物的人員進行微妙的引導。

1. 自然監視（natural surveillance）

透過增加被觀察的機會使罪犯感到不安的任何手段。

1. 自然領土強化（natural territorial reinforcement）

試圖使該地區感覺像一個包容、關愛的社群。

傳統物理屏障和CPTED策略的混合能夠更好的保障物理安全。

## D3-19：實施站點和設施的安全控制

### 一、物理安全控制型別

1. 管理類

設施建造與選擇、站點管理、人員控制、安全意識培訓以及應急響應與流程。

1. 技術類

訪問控制、入侵檢測、警報、CCTV、監視、HVAC 的電力供應以及火警探測與消防。

1. 物理類

圍欄、照明、門鎖、建築材料、捕人陷阱、警犬與警衛。

### 二、控制的功能順序

1. 威懾

如內有惡犬，到底有沒有或厲不厲害無所謂，精神壓制。

1. 阻擋

如圍牆、門禁等，實際能夠阻擋進入的措施。

1. 監測

如CCTV，能實現監控和事後審計。

1. 延遲

如把資料中心設定在走廊盡頭，達到的時間就比較長。

1. 確定

確定事故原因或評估情況，以瞭解發生了什麼。

1. 決策

根據評估結果，決定實施什麼應對措施。

### 三、裝置故障

1. 做好備件管理
2. 與硬體供應商簽訂服務水平協議（SLA）
3. 評估允許中斷視窗（AIW）、服務交付目標（SDO）和最大可容忍停機/停機（MTD/MTO）
4. 確定平均故障時間（MTTF）和平均修復時間（MTTR），MTBF（平均故障間隔時間）約等於MTTF

### 四、配線間

電纜裝置管理策略用於定義設施內網路佈線和相關裝置的物理結構和部署。

1. 電纜裝置元素

* 接入設施（Entrance facility）：網際網路線路的接入點。
* 機房（Equipment room）：放伺服器的地方。
* 骨幹佈線系統（Backbone distribution system）：打通大樓頂層到底層的佈線。
* 配線間（Wiring closet）：供通訊線纜部署的房間。
* 橫向佈線系統（Horizontal distribution system:）：打通一層內各個房間的佈線。

1. 受保護的佈線系統（protective distribution systems，PDS）

PDS是保護電纜免受未經授權的訪問或傷害的手段。

* 不要使用配線間作為一般的儲物區
* 配備充足的門鎖，必要時採用生物因素
* 保持該區域整潔。
* 該區域中不能儲存易燃品。
* 配備影片監控裝置，監視配線間內的活動。
* 使用開門感測器進行日誌記錄。
* 鑰匙只能由獲得授權的管理員保管。
* 對配線間進行常規的現場巡視以確保其安全。
* 將配線間納入組織的環境管理和監控中，既能夠確保合適的環境控制和監視，也是為了及時發現類似水情和火警的危險。

### 五、資料中心

1. 總體上的原則和要求

* 資料中心與人相容性越差，就越能提供保護，即機房沒人最安全。
* 資料中心應位於建築核心位置，避免在一樓、頂樓或地下室，且遠離各類管道。
* 資料中心牆壁具備至少一小時耐火等級。

1. 智慧卡和徽章

* 智慧卡（smart card）：是能夠進行資訊處理的身份標識工具，配合PIN碼可實現多因素身份驗證提高安全性。
* 磁條卡（magnetic stripe cards）：帶有磁條的機器可讀身份標識工具，可以保留少量資料，但無法像智慧卡那樣處理資料。
* 徽章（badge）：可用於識別或認證，需配合其他手段實現。

1. 接近式裝置

* 被動裝置（passive device）：該類裝置是具有特定特性的小磁鐵（無電裝置），透過改變讀取器裝置產生的電磁場來進行識別。
* 區域供電接近式裝置（field-powered proximity device）：該類裝置從閱讀器的電磁場中產生電來為自己供電進行識別。
* 應答器接近式裝置（transponder proximity device）：該類裝置自供電（電池或太陽能）併傳送讀取器接收的訊號進行識別。

### 六、入侵檢測系統

物理安全中的IDS主要是檢測非法活動，並透過報警系統及時通知安保人員處理。

1. 物理IDS需要考慮的兩個方面

* 備用電源：沒有電源什麼東西都無法工作；
* 線路監控：告警線纜被切斷，入侵告警無法及時傳送給安保人員。

1. 物理IDS的元件

* 運動檢測器（motion detector）：一種能夠感知特定區域內的運動或聲音的裝置。
  * 數字運動檢測器（digital motion detector）：即智慧安全攝像頭。
  * 被動紅外（passive infrared，PIR）：即基於熱量的移動檢測器，監測區域內熱量變化。
  * 波形運動檢測器（wave pattern motion detector）：主動傳送訊號到監測區域，監測反射訊號的變化。
  * 電容運動檢測器（capacitance motion detector）：感測被監測物件周圍電場或磁場的變化。
  * 光電運動檢測器（photoelectric motion detector）：感測監控區域可見光水平的變化。
  * 被動音訊運動檢測器（assive audio motion detector）：監聽監控區域內的異常聲音。
* 入侵警報（intrusion alarms）：當運動檢測器檢測到異常就會觸發警報。
  * 威懾警報（deterrent alarms）：可能會開啟額外的鎖、關門等，目的是使進一步的入侵或攻擊更加困難。
  * 驅除警報（repellent alarms）：通常會發出聲音警報或鈴聲並開啟燈，用於威懾入侵者繼續其惡意或侵入活動，並迫使他們離開場所。
  * 通知警報（notification alarms）：通常是無聲的，但會記錄有關事件的資料，並通知管理員、安全警衛和執法部門。
  * 本地報警系統：依靠廣播通知本地安保團隊進行處理。
  * 中心站系統：通常是靜默的，但會通知中心站派遣安保團隊前往現場處理。
  * 輔助報警系統：輔助本地和中心站報警系統，通知消防、警察和醫療服務進行現場處理。
* 二次驗證機制：當使用運動探測器、感測器和報警器時，應設定二次驗證機制，用以減少誤報，如使用安全攝像頭。

### 七、訪問濫用

由於物理訪問控制可以被偽裝（Masquerading）、捎帶（piggybacking）等方式繞過，因此需要部署安全警衛、審計跟蹤、訪問日誌或其他監控系統以防止濫用。

### 八、介質儲存設施

放置各類儲存介質的地方，主要是為了保護這些介質被植入惡意程式碼，如OS基線映象安裝盤被植入木馬，那麼後續安裝的作業系統都會有問題，影響面較大。通用要求：

1. 將儲存介質儲存在上鎖的櫃子或保險箱裡。
2. 介質存放在上鎖的櫃子裡，並指定專人進行管理。
3. 建立登入/登出制度，跟蹤庫中介質的查詢、使用與歸還行為。
4. 可重用介質歸還時，執行介質淨化與清零過程(使用全零這樣的無意義資料進行改寫)，清除介質中的資料殘餘。
5. 採用基於 hash 的完整性檢查機制，來校驗檔案的有效性，或驗證介質是否得到徹底淨化，不再殘留以前的資料了。
6. 介質按照敏感級別打標籤進行標識和資產管理。

### 九、證據儲存

儲存日誌、審計記錄、安全事件等資料，方便安全事故發生後進行調查取證。通用要求：

1. 使用與生產網路完全不同的專用儲存系統。
2. 如果沒有新資料需要存入，應讓儲存系統保持離線狀態。
3. 關閉儲存系統與網際網路的連線。
4. 跟蹤證據儲存系統上的所有活動。
5. 計算儲存在系統中所有資料的雜湊值。
6. 只有安全管理員與法律顧問才能訪問。
7. 對儲存在系統中的所有資料進行加密。

### 十、受限區與工作區安全

簡單來說就是把設施內的區域按敏感程度劃分，邊界用牆、隔斷等進行隔離，可參考資料分類分級。安全受限工作區的例項是敏感隔間資訊設施(Sensitive Compartmented Information Facility, SCIF)，常用於政府或軍工。

### 十一、HVAC相關

1. 電力管理裝置

* 浪湧保護器（surge protectors）：僅提供電源過載保護，出現電力尖峰時跳閘切段電源，因此僅適用於瞬間斷電不會對裝置造成損壞或損失時。
* 電源調節器（power conditioner）：高階版浪湧保護器，可消除或過濾線路噪音。
* 不間斷電源（uninterruptible power supply，UPS）：除了包含以上功能外，還提供額外電力供裝置正常關機。
* 備用電池（battery backup）：可供整個基礎設施執行，但會存在電池切換中斷。
* 發電機（generators）：高階版備用電池，理論上燃料不斷電力不斷。

1. 電力問題術語

* 故障(Fault): 瞬時斷電。
* 停電(Blackout): 完全失去電力供應。
* 驟降(Sag): 瞬時低電壓。
* 低電壓(Brownout): 長時低電壓。
* 尖峰(Spike): 瞬時高電壓。
* 浪湧(Surge): 長時高電壓。
* 突入(Inrush): 通常與連線到電源相關的初始電力浪湧。
* 接地(Ground): 電路中接地導線。

1. 噪音

噪聲是透過某種形式的干擾、中斷或流動而產生的功率干擾。電磁干擾（EMI）和射頻干擾（RFI）都會影響IT裝置的正常運轉。

1. 溫度、溼度和靜電

* 最合適的溫度範圍為攝氏15\~32度
* 最合適的溼度範圍20%\~80%

溼度太高會腐蝕電腦中的配件，溼度太低會產生靜電。

1. 水

一句話機房別被水淹了。

### 十二、火災預防、檢測和抑制

1. 火災三要素

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-3436dd0ef9e3b0fdddcdd57b0d66504d2eba16ba%2F3_fire.png?alt=media)

燃料、高溫與氧氣，以及三者化學反應。

1. 火災的四個階段

* 階段1：早期階段會出現電離反應。
* 階段2：煙霧階段能看到煙霧冒出。
* 階段3：火焰階段能看到火焰。
* 階段4：炙熱階段溫度急劇升高，燃燒一切。

越早檢測到火災，越容易撲滅，造成的損壞越小。

1. 滅火器

![](https://366271701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8rn090lRzHL4UfRBIqer%2Fuploads%2Fgit-blob-c85083506134cae749c1e5a42f370736dc17b041%2F3_fire_extinguisher.png?alt=media)

1. 火災檢測系統

* 固定溫度探測（Fixed-temperature）：溫度到達閾值就觸發。
* 上升率探測（Rate-of-rise）：溫度上升速率到達閾值就觸發。
* 火焰驅動探測（Flame-actuated）：探測到火焰就觸發。
* 煙霧驅動探測（Smoke-actuated）：探測到電離反應或煙霧就觸發。

火災探測系統觸發告警後還需要火災響應系統配合才能達到滅火效果，就像IDS只能檢測攻擊，需要與防火牆聯動才能阻斷。由於火災引發的影響很大，因此觸發告警後首先應自動通知當地消防部門，然後再聯動滅火系統進行滅火。

1. 水抑制系統

* 溼管（wet pipe）：管道里一直存有水，觸發後立即噴水滅火。
* 幹管（gry pipe）：管道里充滿壓縮氣體，觸發後氣體釋放後才會噴水。
* 洪水（deluge）：幹管的管道粗一點就是洪水系統。
* 預作用（preaction）：管道里充滿壓縮氣體，檢測到火災後開始注水，達到一定溫度才會噴水，最適合人機共存環境使用。

1. 氣體排放系統

使用氣體進行滅火，不適用於有人活動的環境，如CO2、Halon等，其中Halon有害環境已禁止使用（蒙特利爾協議），FM-200潔淨氣體，對人無害。

1. 損害

由於滅火系統可能會對人員、裝置等造成損害，因此應對組織環境進行評估，選擇合適的滅火系統。

## D3-20：實施和管理物理安全

### 一、邊界安全控制

1. 圍欄（Fences）

邊界界定裝置，可以是實體（如水泥牆）也可以是不可見的（如鐳射）。圍欄的高階形式是邊界入侵檢測和評估系統（perimeter intrusion detection and assessment system，PIDAS），可參考監獄外圍。

1. 門（Gates）

配合圍欄使用作為出入控制點，越少越好，一般配備安保人員或安全攝像頭。

1. 旋轉門（Turnstiles）

一次只能透過一人的單向門，常見於火車站。

1. 門禁前廳（access control vestibule）

即陷阱門（Mantraps），一種配備警衛的內、外雙道門設施，能夠防止捎帶和尾隨，常見於政府機關。

1. 安全隔離樁（Security bollards）

一般用於阻止車輛闖入，能夠自動升降，常見於重要設施。

1. 路障（Barricades）

用於控制行人和車輛。

1. 照明（Lighting）

主要提供威懾作用，配合其他控制措施使用。

1. 安保人員與警犬

唯一能夠提供主動干預的控制措施，缺點是貴且不穩定。

1. 機器哨兵（Robot sentries）

可用來自動巡邏一個地區，檢視任何異常情況。

### 二、內部安全控制

1. 鑰匙和組合鎖

* 預設鎖（preset locks）：鑰匙鎖是最常見、最便宜的物理安全控制裝置，易遭受shimming（複製鑰匙）和bumping（萬能鑰匙）攻擊。
* 可程式設計鎖（programmable locks）：也叫組合鎖，可以配置多個有效的訪問組合，也可以包括使用鍵盤、智慧卡或密碼裝置的數字或電子控制裝置，如電子門禁（electronic access control，EAC）。

1. 環境和生命安全

人命高於一切。乘員應急計劃（occupant emergency plans，OEP）指導和協助在災難發生後維持人員安全。BCP和DRP解決IT、業務連續性和恢復問題。

1. 監管要求

物理安全也需要滿足合規要求。

1. 物理安全的關鍵績效指標（KPI）

與技術指標一樣，用以評估物理安全的有效性。
