---
# System prepended metadata

title: CISSP 讀書會導讀 - Domain 3 (3.7-3.9)

---

# CISSP Domain 3：3.7 ~ 3.9 密碼分析攻擊與實體安全

![image](https://hackmd.io/_uploads/SJ4jr06mWl.png)
> 資料來源：ISC2官網

> **參考資料**：CBK Reference 6th、Sybex Study Guide 10th、Destination CISSP 2nd
> 版權非本人，皆課本、網路上查詢、AI整理筆記，僅供讀書會使用
---

## 3.7 理解密碼分析攻擊的方法 (Understand methods of cryptanalytic attacks)

>沒有無法破解的密碼，只是時間問題。

### 3.7.1 暴力破解 (Brute Force)

#### 核心概念

窮舉法——嘗試所有可能的密鑰組合，直到找到正確的為止。

> 🎯 **教學比喻**：就像忘記行李箱的三位數密碼，從 000 試到 999，最多試 1000 次一定打得開。

![image](https://hackmd.io/_uploads/rylrHyAmZl.png)
> 比方說常見的八碼8小時可以破解，資料來源：網路

#### 影響暴力破解難度的因素

| 因素           | 說明                | 範例                              |
| ------------ | ----------------- | ------------------------------- |
| **密鑰長度**     | 每增加 1 bit，可能組合數翻倍 | 128-bit AES = 2¹²⁸ 種組合          |
| **運算能力**     | GPU、ASIC 可大幅加速    | 專用硬體可做大量重複運算                    |
| **演算法和參數成本** | 每次嘗試的運算成本         | bcrypt、PBKDF2和Argon2 故意設計成慢 |

### 補充：常見密碼攻擊手法比較

考試時請務必區分攻擊的**方向性**（針對單人還是多人）以及**資料來源**（猜測還是利用洩漏資料）。

| 攻擊類型 | 英文名稱 | 攻擊模式 (方向) | 關鍵特徵與應對 |
| :--- | :--- | :--- | :--- |
| **暴力破解** | Brute Force | **垂直攻擊**<br>(針對 1 人，試所有密碼) | • **特徵**：窮舉所有組合 (0000-9999)。<br>• **缺點**：極慢，且容易觸發帳戶鎖定。<br>• **防禦**：限制嘗試次數 (Account Lockout)。 |
| **字典攻擊** | Dictionary | **垂直攻擊**<br>(針對 1 人，試常用字) | • **特徵**：使用常見密碼清單 (如 "password")。<br>• **防禦**：強制密碼複雜度、加鹽 (Salting)。 |
| **密碼噴灑** | Password Spraying | **水平攻擊**<br>(針對所有人，試 1 個密碼) | • **特徵**：用「Summer2025!」去試 1000 個帳號。<br>• **目的**：**規避帳戶鎖定** (因為每個帳號只錯一次)。<br>• **防禦**：MFA、監控異常登入來源。 |
| **憑證填充** | Credential Stuffing | **回收利用**<br>(利用已洩漏資料) | • **特徵**：拿 A 網站洩漏的帳密去登入 B 網站。<br>• **原理**：賭使用者在不同網站**共用密碼**。<br>• **防禦**：MFA、強制重設密碼。 |

圖解概念 (Vertical vs. Horizontal)
* **Brute Force / Dictionary**: 
  * 攻擊者 ➔ 👮 User A (試 1000 次 ❌ 鎖定!)
  
* **Password Spraying**: 
  * 攻擊者 ➔ 👮 User A (試 1 次 "123456")
  * 攻擊者 ➔ 👩‍⚕️ User B (試 1 次 "123456")
  * ... (不會被鎖定，總有人中獎)


---

#### 生日攻擊 (Birthday Attack)

針對**雜湊演算法碰撞**的攻擊，利用「生日悖論」：

* 只需要 **23 人**，就有 **>50%** 機率出現兩人同一天生日
* 對於 n-bit 的雜湊：

  * 暴力找碰撞約需 **2ⁿ** 次
  * 生日攻擊約需 **2^(n/2)** 次

| 雜湊演算法       | 輸出長度    | 碰撞攻擊複雜度（約） |   安全性  |
| ----------- | ------- | ---------- | :----: |
| MD5         | 128-bit | 2⁶⁴        | ❌ 已不安全 |
| SHA-1       | 160-bit | 2⁸⁰        | ❌ 已不安全 |
| **SHA-256** | 256-bit | 2¹²⁸       |  ✅ 仍安全 |

---

#### 彩虹表 (Rainbow Tables)

**概念**：預先算好「明文 → Hash」對應表，攻擊時直接查表。

![image](https://hackmd.io/_uploads/H1XUc10mWl.png)
![image](https://hackmd.io/_uploads/B1jYqyA7Zg.png)
> 舊的主機設定檔密碼只有使用MD5，因此看到5f4d開頭通常是passowrd，2123開頭通常是admin。

---

#### 對策：加鹽 (Salting) 與慢雜湊 (Slow Hash)

| 對策                                    | 說明                    | 能防什麼                 |
| ------------------------------------- | --------------------- | -------------------- |
| **Salting（加鹽）**                       | 每個密碼加入**唯一隨機值**再 Hash | 讓彩虹表/預先計算失效；同密碼不再同雜湊 |
| **PBKDF2、bcrypt、scrypt和Argon2** | 增加每次猜測成本（刻意變慢）        | 大幅提高離線暴力猜測成本         |
| **Pepper（加椒，延伸）**                     | 伺服器端加入秘密值（可搭 HSM）     | DB 外洩也難以直接離線破解       |

```text
無鹽：Hash("password") = 5f4dcc3b...（每個人的 password 都一樣）
加鹽：Hash("password" + "x7Kp9") = a3b8c1d2...（每個人的鹽不同）
```

---

### 3.7.2 唯密文攻擊 (Ciphertext Only)

攻擊者**只有加密後的密文**，這是攻擊者最艱難的處境。

#### 攻擊手法

- 收集大量密文，尋找統計規律或重複模式
- 對古典密碼可用頻率分析
- **也可嘗試暴力破解（猜 key和密碼）**，但因缺乏明文線索，通常只能靠「解密結果是否合理和是否通過格式或驗證」來判斷，難度高
- 對現代密碼（設計正確、key 足夠長）通常效果很差


---

### 3.7.3 已知明文攻擊 (Known Plaintext)

攻擊者同時擁有**密文**和對應的**部分明文**。

>已知明文攻擊就是：我不只拿到密文，我還剛好知道其中一段明文長什麼樣（例如檔頭 %PDF、ZIP 的 PK、HTTP 開頭）。
這讓我有「對照組」可以比對密文和明文之間的關係。如果是老舊密碼或加密用法錯（像重複使用某些參數、或弱加密），這個對照組就可能變成破解線索；但如果是正確使用的現代加密（例如 AEAD、正確 nonce/IV），已知明文通常不會直接讓它被破解。

| 來源         | 說明                           |
| ---------- | ---------------------------- |
| **檔案格式特徵** | ZIP 檔開頭固定 `PK`、PDF 開頭 `%PDF` |
| **通訊協定**   | HTTP 回應常見 `HTTP/1.1`         |
| **制式內容**   | 報表/軍事電報常有固定用語                |

:::info
📘 **WEP 案例（常見已知明文線索）**
- 無線封包結構固定、協定欄位常可預測（形成已知/可猜明文片段）
- 配合 WEP 的短 IV 與 RC4 keystream 重用風險，使推導/驗證更容易
- 重點：不是現代強加密本身被破解，而是 WEP 設計與使用方式太弱
:::


---

### 3.7.4 選擇明文攻擊 (Chosen Plaintext)

攻擊者可以**主動選擇任意明文**，讓目標系統加密，觀察產出的密文。

| 攻擊類型 |  攻擊者角色 | 明文來源          |
| ---- | :----: | ------------- |
| 已知明文 |   被動   | 碰巧取得（檔頭、制式用語） |
| 選擇明文 | **主動** | 攻擊者自己設計       |

**中途島戰役 (1942)**
| 階段 | 事件 |
| :--- | :--- |
| **背景** | 美軍截獲日軍密電，發現即將攻擊代號「AF」的地點 |
| **問題** | 「AF」是哪裡？美軍懷疑是中途島，但無法確認 |
| **選擇明文** | 美軍命令中途島發送**未加密**訊息：「中途島淡水設備故障」 |
| **觀察密文** | 日軍截獲後，加密回報東京：「AF 淡水不足」 |
| **結果** | 確認 AF = 中途島，美軍伏擊成功，太平洋戰爭轉折點 |

---

### 3.7.5 選擇密文攻擊 (Chosen Ciphertext)

攻擊者可以**主動選擇任意密文**，讓目標系統解密，觀察明文輸出。

#### 午餐時間攻擊 (Lunchtime Attack)

> 趁同事去吃午餐，偷用他桌上的解密設備，在有限時間內送入大量密文進行解密測試。

#### 密文填塞攻擊（Padding Oracle Attack）

**一句話**：攻擊者不是破解演算法，而是利用系統「解密失敗時回覆的錯誤差異」當線索，逐步推回明文資訊。

**為什麼叫 Padding？**
- 某些區塊加密模式（常見情境：CBC）解密後需要檢查「填塞 Padding 是否正確」
- 如果系統會回覆不同訊息（例如：`Padding 錯`、`MAC 錯`、`格式錯`），就等於在告訴攻擊者「你這次改密文後，解密結果比較接近哪一種狀態」

**攻擊者利用的關鍵（Oracle = 占卜機）**
- 攻擊者把密文做小幅修改丟回去測試
- 只要系統回覆能分辨「哪種錯誤」，就形成一個“Oracle”，提供可被反覆利用的線索

**對策**
- **統一錯誤回應**：永遠只回「解密失敗」，不要區分錯誤類型（訊息/狀態碼/回應時間都盡量一致）
- **優先採用 AEAD**（如 GCM / CCM）：同時提供機密性 + 完整性，密文被改過就直接失敗，不提供可利用線索

###  進階密碼分析概念 (Advanced Concepts) (補充)

除了上述基礎攻擊外，針對區塊加密還有兩種數學分析方法，考試常考其「明文需求」的差異：

| 分析方法 | 英文 | 數學原理 | 攻擊需求  |
| :--- | :--- | :--- | :--- |
| **線性密碼分析** | Linear Cryptanalysis | 尋找明文與密文位元之間的線性關係 (Linear approximation) | **已知明文 (Known Plaintext)**  |
| **差分密碼分析** | Differential Cryptanalysis | 分析輸入細微差異 (Difference) 如何影響輸出差異 | **選擇明文 (Chosen Plaintext)**  |
| **因子分解攻擊** | Factoring Attack | 針對 RSA 演算法，試圖分解大質數 (N=p*q) | 數學難題破解  |

---
### 速記表（明文/密文四兄弟）

| 攻擊                       | 攻擊者有什麼    | 記憶點                      |   難度  |
| ------------------------ | --------- | ------------------------ | :---: |
| **唯密文攻擊(Ciphertext Only)**      | 只有密文      | 最難，靠統計                   | ⭐⭐⭐⭐⭐ |
| **已知明文攻擊(Known Plaintext)**      | 密文 + 對應明文 | ZIP 檔頭 `PK`、Enigma Cribs |  ⭐⭐⭐⭐ |
| **選擇明文攻擊(Chosen Plaintext)** | 可加密任意明文   | **中途島戰役**                |  ⭐⭐⭐  |
| **選擇密文攻擊(Chosen Ciphertext)**    | 可解密任意密文   | **午餐時間攻擊**               |   ⭐⭐  |

> 💡 **記憶**：從上到下，攻擊者「主動權」越來越大，難度越來越低。

---

### 3.7.6 頻率分析 (Frequency Analysis)

利用語言的**統計特徵**破解替換式密碼。

|  排名 |   字母  |   頻率  |
| :-: | :---: | :---: |
|  1  | **E** | 12.7% |
|  2  |   T   |  9.1% |
|  3  |   A   |  8.2% |

> 💡 記憶：最常出現的三字母單詞是 **THE**

---

### 3.7.7 實作攻擊（Implementation Attacks）

**核心概念**：不破解演算法，而是利用「實作方式、部署設定、周邊元件」的缺陷來取得敏感資訊或繞過保護。

| 類型 | 說明 | 典型例子（考題語感） |
|---|---|---|
| 軟體/協定實作錯誤 | 驗證流程/邏輯錯誤、設定不當 | 憑證驗證不嚴謹 → MITM；錯誤訊息差異 → Padding Oracle |
| 隨機數生成（RNG/PRNG） | 亂數不足/可預測 → key 可被推測 | 弱 RNG 導致金鑰可預測（經典：Debian OpenSSL 類型） |
| 參數/模式使用錯誤 | IV/Nonce 重複或使用方式不正確 | 重複 Nonce / 固定 IV 破壞機密性 |
| 記憶體/資料洩漏 | 敏感資料殘留或可被讀出 | Heartbleed 類型：讀到記憶體內的敏感資料 |

💡 格言：Don't roll your own crypto（不要自己亂寫密碼學，使用成熟且經驗證的函式庫和模組）
之前學過的柯克霍夫原則 （Kerckhoffs's principle）即使密碼系統的任何細節已為人悉知，只要密鑰未洩漏，它也應是安全的。

:::spoiler  Debian OpenSSL 弱隨機數產生器漏洞說明
:::info

這是一個在資訊安全史上非常著名且經典的案例，通常被稱為 **Debian OpenSSL 弱隨機數產生器漏洞**（CVE-2008-0166）。

問題的核心並不在於 OpenSSL 原本的程式碼，而在於 **Debian 維護團隊在「打包」過程中，為了消除代碼檢測工具的警告，錯誤地註釋掉了關鍵的亂數種子（Entropy）程式碼。**

以下是詳細的技術分析與問題點：

### 1. 問題的具體位置：`md_rand.c`

問題出在 OpenSSL 原始碼中的 `crypto/rand/md_rand.c` 檔案。

Debian 的維護者在使用代碼檢測工具（如 Valgrind）檢查 OpenSSL 時，發現了兩行程式碼會導致「使用未初始化記憶體」（Use of uninitialized memory）的警告。維護者誤以為這是一個 Bug，因此在 Debian 的補丁中將這兩行程式碼註釋掉（移除）了。

被移除的關鍵程式碼類似於：

```c
MD_Update(&m, buf, j); // 將系統隨機數據混合到狀態中

```

以及另一處類似的混合 entropy 的代碼。

### 2. 為何這是一個災難？（技術原理）

這兩行看起來「使用未初始化記憶體」的程式碼，實際上是 OpenSSL 隨機數產生器（PRNG）設計中非常重要的一環。

* **原本的設計：** OpenSSL 會利用系統中各種「未初始化的垃圾數據」、時間戳記、系統狀態等來增加隨機性（Entropy），確保產生的金鑰無法被預測。
* **修改後的結果：** 當這幾行代碼被移除後，OpenSSL 的隨機數產生器**不再混合系統隨機數據**。唯一的「變數」只剩下當下的 **Process ID (PID)**。

### 3. 造成的後果：金鑰空間極度縮小

由於唯一的變數只剩下 PID，而 Linux 的 PID 預設最大值通常是 32,768。這意味著：

* **金鑰變成可預測的：** 在受影響的系統（Debian, Ubuntu 等，時間約為 2006-2008 年間）上產生的 SSH 金鑰或 SSL 證書，其可能的組合只有約 **32,768 種**（針對每種架構）。
* **暴力破解變得瞬間完成：** 攻擊者不需要破解加密演算法，只需要預先算出這 3 萬多個可能的金鑰（這被稱為 Blacklisted Keys），然後拿著公鑰去對照，一旦吻合，對應的私鑰就直接查到了。

### 4. 影響範圍

這個漏洞影響了所有依賴 OpenSSL 產生金鑰的服務，包括但不限於：

* **SSH Host Keys 和 User Keys：** 攻擊者可以輕易登入受影響的伺服器。
* **SSL/TLS 證書（HTTPS）：** 加密通訊可以被解密。
* **OpenVPN 金鑰：** VPN 通道不再安全。
* **DNSSEC 金鑰**。

### 5. 慘痛的教訓

這個事件給開源社群和資安界留下了幾個重要的教訓：

1. **不要輕易修改加密庫的原始碼：** 除非你完全理解該演算法的數學原理和實作細節。
2. **未初始化的記憶體有時是有意為之：** 在隨機數生成的領域，髒數據（Dirty Data）是熵（Entropy）的重要來源。
3. **溝通的重要性：** 維護者其實有在郵件列表中詢問 OpenSSL 開發者，但溝通上的誤解導致了維護者以為移除代碼是安全的。

### 總結

Debian OpenSSL 的問題在於 **「為了修復一個無害的記憶體警告，意外移除了隨機數生成器的亂數來源」**，導致金鑰只依賴 PID，從而變得極易預測。

:::
---

### 3.7.8 旁路攻擊 (Side‑Channel Attacks)

觀察系統運作時的**物理副作用**來推導機密資訊。

[ithome：研究人員以AI模型竊聽鍵盤聲可達到95%的準確率](https://www.ithome.com.tw/news/158171)

| 信道             | 觀察目標    | 對策            |
| -------------- | ------- | ------------- |
| **功耗(Power)**  | 電流消耗變化  | 恆定功耗設計、遮蔽、隨機化 |
| **時序(Timing)** | 運算時間差異  | **恆定時間演算法**   |
| **電磁(EM)**     | 電磁輻射    | 屏蔽、距離、濾波      |
| **快取(Cache)**  | 記憶體存取模式 | 隔離和修補、降低共享快取  |

---

### 3.7.9 錯誤注入 (Fault Injection)

故意讓密碼設備產生運算錯誤，從錯誤的輸出中推導密鑰。常見手法如下：
* **電壓突波 (Voltage Glitching)**：
  瞬間改變供電電壓（如製造電壓驟降或尖峰），導致處理器略過某些指令或執行錯誤。
* **時脈突波 (Clock Glitching)**：
  瞬間改變時脈頻率（Overclocking 或插入短週期訊號），讓 CPU 來不及正確鎖存資料。
* **雷射注入 (Optical/Laser Fault Injection)**：
  用雷射照射晶片特定區域（如記憶體或暫存器），引發位元翻轉 (Bit Flip)。
---

### 3.7.10 時序攻擊 (Timing)

測量密碼運算所花費的**時間差異**，推斷內部狀態或密鑰。

#### 經典案例：密碼比對

```python
# ❌ 錯誤實作：比對到第一個錯誤字元就停止
# 輸入 "xdmin123"：第 1 個字元就失敗，耗時 1
# 輸入 "admin999"：比到第 6 個字元才失敗，耗時 6

# ✅ 正確實作：恆定時間比對（概念示意）
def secure_compare(a, b):
    if len(a) != len(b):
        return False
    result = 0
    for x, y in zip(a.encode(), b.encode()):
        result |= x ^ y
    return result == 0
```

---

### 3.7.11 中間人攻擊 (Man‑in‑the‑Middle, MITM)


攻擊者**秘密攔截並轉發**雙方通訊。

```mermaid
sequenceDiagram
  autonumber
  participant Alice
  participant Bob

  rect rgb(235,235,235)
    note over Alice,Bob: 正常通訊
    Alice->>Bob: 訊息
    Bob-->>Alice: 回應
  end

  participant Mallory

  rect rgb(255,235,235)
    note over Alice,Bob: MITM 攻擊（Mallory 在中間攔截）
    Alice->>Mallory: 訊息（以為給 Bob）
    Mallory->>Bob: 轉送（可修改/記錄）
    Bob-->>Mallory: 回應
    Mallory-->>Alice: 轉送（可修改/記錄）
  end
```


#### 對策

| 對策                        | 說明              |
| ------------------------- | --------------- |
| **Mutual Authentication** | 雙方都要驗證對方身分      |
| **Certificate Pinning**   | 只信任特定憑證（注意維運風險） |
| **HSTS**                  | 強制使用 HTTPS      |

---

### 3.7.12 中間相遇攻擊 (Meet‑in‑the‑Middle) (補充)

這是針對**多重加密**（特別是 2DES）的經典攻擊。

#### 核心觀念：為什麼 2DES 無效？
* **直覺誤區**：DES 金鑰長度 56 bits。我們會直覺認為做兩次加密 (2DES)，強度應該是 $56 + 56 = 112$ bits。
* **殘酷現實**：因為中間相遇攻擊，2DES 的實際強度**只相當於 57 bits**（僅比單一 DES 強一倍，而不是指數級變強）。

#### 攻擊原理 (空間換取時間)
攻擊者不需要嘗試 $2^{112}$ 種組合，而是將攻擊拆成兩半：

1.  **左邊攻 (加密)**：攻擊者已知明文 $P$，用所有可能的 $K_1$ ($2^{56}$種) 去加密，將結果存入**記憶體 (Hash Table)**。
2.  **右邊攻 (解密)**：攻擊者已知密文 $C$，用所有可能的 $K_2$ ($2^{56}$種) 去解密。
3.  **中間相遇**：每解密出一個結果，就去查表。如果發現**數值相同**，代表找到了一組可能的 $(K_1, K_2)$。

> **結論**：
> 攻擊成本 = $2^{56}$ (加密) + $2^{56}$ (解密) = $2 \times 2^{56} = 2^{57}$ 運算量。
> **這就是為什麼我們直接使用 3DES，而跳過 2DES 的原因。**

:::spoiler  點擊查看攻擊圖解
```mermaid
graph LR
    P[明文 P] --加密 (試 K1)--> M1[中間值 M?]
    C[密文 C] --解密 (試 K2)--> M2[中間值 M?]
    
    M1 -.比對吻合?.- M2
    
    style M1 fill:#f9f,stroke:#333
    style M2 fill:#f9f,stroke:#333

:::
---

### 3.7.13 重送攻擊 (Replay Attack) (補充)

攻擊者**錄下**一段合法的通訊封包（例如登入請求），稍後**原封不動地重新發送**，試圖欺騙伺服器以獲取未經授權的存取。

#### 對策 (Countermeasures)
為了防止重送攻擊，必須確保每一個封包都是「獨一無二」且「具時效性」的：

* **時間戳記 (Timestamp)**：
  在封包中加入發送當下的時間。如果伺服器收到時間差異太大的封包，直接丟棄。
* **隨機數 (Nonce)**：
  "Number used once"，每次通訊都使用一個只用一次的隨機數。伺服器記得用過的 Nonce，若發現重複則拒絕。
* **序號 (Sequence Number)**：
  為每個封包編號（如 1, 2, 3...）。伺服器不接受序號重複或順序錯誤的封包。
* **挑戰-回應 (Challenge-Response)**：
  伺服器給一個隨機難題 (Challenge)，客戶端必須算出正確答案 (Response)。因為每次題目都不同，舊的答案（錄下的封包）就無效了。

---

### 3.7.14 雜湊傳遞攻擊 (Pass the Hash, PtH)

攻擊者竊取主機記憶體（如 LSASS 程序）中的 **NTLM 雜湊值 (NTLM Hash)**，**不需要**花時間將其破解還原成明文密碼，而是直接「遞送」這個 Hash 給目標伺服器進行身分驗證。

> **核心概念**：在 NTLM 驗證機制中，擁有 Hash 就等同於擁有密碼。

#### 對策 (Countermeasures)

* **限制或停用 NTLM (Restrict/Disable NTLM)**：
  強迫系統改用更安全的 Kerberos 協定，減少 NTLM Hash 暴露的機會。
* **憑證防護 (Credential Guard) / LSA 保護**：
  這是 Windows 10/Server 2016 之後的功能 (VBS)，利用虛擬化技術將敏感的記憶體區域（存放 Hash 的地方）隔離起來，讓攻擊者即使拿到系統管理員權限也讀不到 Hash。
* **多因子驗證 (Multi-Factor Authentication, MFA)**：
  即使攻擊者有了 Hash，沒有第二因子（如手機 Token）也無法登入。
* **最小權限 (Least Privilege) 與 分層管理 (Tiered Administration)**：
  這是最重要的管理手段。嚴禁 Domain Admin (網域管理員) 登入一般使用者的電腦，防止高權限的 Hash 遺留在不安全的電腦中被竊取。

:::spoiler  點擊查看攻擊情境 (Mimikatz)
最常見的工具是 **Mimikatz**。
情境：
1. 駭客入侵了一台員工電腦 (User PC)。
2. 剛好網域管理員 (Domain Admin) 曾經登入過這台電腦幫忙修東西。
3. 駭客用 Mimikatz 從記憶體抓出管理員留下的 Hash。
4. 駭客用這個 Hash 直接連線到網域控制站 (DC)，接管整個網路。
:::

---

### 3.7.15 Kerberos 攻擊 (Kerberos Exploitation)

| 攻擊 (Attack) | 偽造標的 | 關鍵材料 (The "Key") | 影響範圍 | **CISSP 關鍵考點與防禦 (Exam Focus)** |
| :--- | :--- | :--- | :--- | :--- |
| **Golden Ticket**<br>(黃金票據) | **TGT**<br>(身分證) | **KRBTGT** 帳號的 Hash | 🔴 **整個網域**<br>(Domain Admin) | 1. **信任崩潰 (Root of Trust)**：KRBTGT 是信任的根基，一旦洩漏，整個 KDC 架構瓦解。<br>2. **持續性 (Persistence)**：駭客可長期潛伏 (通常票期 10 年)。<br>3. **解法**：必須**重設 KRBTGT 密碼兩次** (徹底清除歷史紀錄)。 |
| **Silver Ticket**<br>(白銀票據) | **ST**<br>(車票) | **服務帳號**的 Hash<br>(如 SQL, IIS) | 🟡 **單一服務**<br>(特定 Server) | 1. **隱蔽性 (Stealth)**：**不經過 KDC** (不經過櫃台買票)，因此 DC 的 Event Log **查不到紀錄**。<br>2. **最小權限**：影響範圍僅限於該服務。<br>3. **解法**：定期更換服務帳號密碼、啟用 AES 加密。 |

![image](https://hackmd.io/_uploads/H1LHTeAmZg.png)
資料來源：網路

![image](https://hackmd.io/_uploads/BJTd2eRmZe.png)
資料來源：網路
### Kerberos 驗證流程圖解 (高鐵購票比喻)

這張圖展示了 Kerberos (地獄犬) 協定的三個關鍵階段。我們可以利用「**搭乘高鐵**」的流程來完美對應：

#### 1. 驗明正身 (Authentication Service)
* **圖中步驟**：① Request TGT with NTLM pass
* **高鐵情境**：**「打開 APP 註冊/登入」**
* **說明**：
    * 你向車站 (KDC) 出示身分證或輸入密碼。
    * 驗證通過後，車站給你一張 **TGT (Ticket Granting Ticket)**。
    * **意義**：這張 TGT 就像是你的「數位身分證」或「登入後的 Token」，證明你已經是合法使用者。

#### 2. 憑證換票 (Ticket Granting Service)
* **圖中步驟**：② Request Service Ticket with TGT
* **高鐵情境**：**「去櫃檯買票」**
* **說明**：
    * 你要去特定的地方（例如：高雄），你不用再拿身分證，而是出示剛剛那張 **TGT**。
    * 櫃台確認 TGT 有效後，發給你一張 **Service Ticket (ST, 服務票據)**。
    * **意義**：這張 ST 就是「往高雄的車票」，專門用來存取特定的服務（如：檔案伺服器）。

#### 3. 驗票進站 (Resource Access)
* **圖中步驟**：③ Request resource with Service Ticket
* **高鐵情境**：**「把票給月台進入」**
* **說明**：
    * 你拿著買好的 **Service Ticket (車票)** 走向月台閘門。
    * 閘門 (Resource Server) 只認車票，不看你的密碼。票是真的，門就開。
    * **意義**：伺服器確認你有合法的入場券，允許你存取檔案。

:::spoiler  為什麼需要「服務帳號 (Service Account)」？(補充)

這是一個「根本原因分析 (Root Cause Analysis)」的問題。
既然服務帳號風險這麼高（密碼萬年不改），為什麼不廢除它？
答案只有三個字：**「自動化 (Automation)」**。

#### 1. 核心概念：機器對機器 (M2M)
電腦世界不只有「人」在操作，「程式」也需要存取資源。
* **情境**：網頁伺服器 (Web Server) 想要半夜去資料庫 (DB) 抓資料。
* **問題**：如果沒有服務帳號，管理員必須半夜起床輸入密碼。
* **解法**：給程式一個專屬身分 (Service Account)，讓它能 **24 小時自動** 運作，無需人類介入。

---

#### 2. 高鐵情境對照表 (User vs. Service Account)

利用 **「旅客」** 與 **「自動驗票閘門」** 的差異來理解：

| 角色 | 電腦身分 | 特性 | 存在目的 |
| :--- | :--- | :--- | :--- |
| **旅客** | **使用者帳號**<br>(User Account) | 會回家睡覺、會忘記密碼、會離職。 | 為了讓 **「人類」** 操作電腦。 |
| **自動驗票機** | **服務帳號**<br>(Service Account) | **24 小時不關機**、一直站在那裡工作、不需要休息。 | 為了讓 **「設備/程式」** 自動運作。 |

> **💡 思考題：為什麼不能用「站長」的帳號讓閘門運作？**
> 如果閘門是用站長的帳號登入，一旦站長**離職被刪帳號**，或是站長**改了密碼**，全台灣高鐵站的閘門就會同時當機！
> 因此，我們需要一個 **「獨立於人類之外」** 的帳號。

---

#### 3. 資安風險比較 (為什麼駭客愛死它了？)

這張表解釋了為什麼 **Silver Ticket (白銀票據)** 攻擊如此致命：

| 比較項目 | 人類帳號 (User) | 服務帳號 (Service Account) | 資安風險 (考點) |
| :--- | :--- | :--- | :--- |
| **互動性** | **Interactive**<br>(有人在打字) | **Non-Interactive**<br>(背景自動執行) | 沒人盯著看，駭客拿來用也不易被發現。 |
| **密碼更換** | **頻繁**<br>(90 天強制更換) | **極少 / 從不**<br>(怕改了導致服務中斷) | **密碼萬年不改**，駭客一旦拿到 Hash，可以用好幾年 (Silver Ticket)。 |
| **權限範圍** | 依部門變動 | 通常需要**高權限**<br>(如 Local Admin) | 一旦攻破，直接獲得該伺服器最高權限。 |

---

#### 4. CISSP 解決方案

既然服務帳號是「必要之惡」，我們該如何管理？

1.  **最小權限原則 (Least Privilege)**
    * **切勿**因為懶惰直接把服務帳號加入 Domain Admins。
    * 只跑 SQL 就給 SQL 權限；只做備份就給 Backup Operator。
2.  **使用 gMSA (Group Managed Service Accounts)**
    * **這是微軟的神器 (關鍵字)**。
    * 傳統服務帳號：密碼寫死在程式裡 (危險)。
    * **gMSA**：由 **AD (Active Directory) 自動管理密碼**。AD 每 30 天自動更換一組超長亂碼，並同步給伺服器，**人類完全不需要知道密碼**。這直接廢掉了 Silver Ticket 的長期有效性。
:::

---

### ⚡ 快速對照表

| 步驟 | 英文術語 | 高鐵情境 (口訣) | 實際用途 |
| :--- | :--- | :--- | :--- |
| **Step 1** | **AS (Auth Service)**<br>換取 **TGT** | **APP 登入**<br>(拿身分證換識別證) | **登入**：證明你是合法使用者，取得購票資格 (SSO 基礎)。 |
| **Step 2** | **TGS (Ticket Granting)**<br>換取 **ST** | **櫃台買票**<br>(用識別證換車票) | **授權**：用 TGT 換取特定服務的入場券 (Service Ticket)。 |
| **Step 3** | **Access Resource**<br>存取服務 | **月台驗票**<br>(插票入站) | **存取**：拿著 ST 實際進入伺服器讀取資料。 |

:::info
💡 **為什麼要這麼麻煩？ (SSO 概念)**
就像在高鐵站一樣，一旦你登入取得了 **TGT (識別證)**，接下來不管你要買去台北、台中還是高雄的票，都只要出示 TGT 即可，**不需要**每次都重新輸入密碼。這就是 Kerberos 達成 **Single Sign-On (單一登入)** 的秘訣。
:::


---

### 3.7.16 勒索軟體 (Ransomware)

利用加密技術鎖死資料、勒索贖金。

#### 對策

* 3‑2‑1 備份
* 備份要離線和隔離
* EDR、更新管理、最小權限
* 零信任原則

---

## 3.8 將安全原則應用於場地與設施設計 (Site and Facility Design)
> 類似機房樓層只能使用電梯進入，單一出口，利用安全原則設計。

### 3.8.1 CPTED（透過環境設計預防犯罪）

| 原則                            | 概念     | 實例         |
| ----------------------------- | ------ | ---------- |
| **自然存取控制 (Natural Access Control)**    | 引導人流動線 | S 形走道、單一入口 |
| **自然監視 (Natural Surveillance)**      | 讓人覺得被看 | 玻璃窗、良好照明   |
| **領土強化 (Territorial Reinforcement)** | 區分公私邊界 | 圍籬、標誌      |
| **目標加固 (Target Hardening)**          | 增加物理障礙 | 防撞柱、強化玻璃   |

![image](https://hackmd.io/_uploads/SyArIUAQZg.png)
資料來源：網路

---


### 3.8.2 場地選擇 (Site Selection)

| 位置       |  建議 | 原因          |
| -------- | :-: | ----------- |
| **建築核心** |  ✅  | 遠離外牆，減少外部威脅 |
| **中間樓層** |  ✅  | 平衡各種風險      |
| **頂樓**   |  ❌  | 過熱、漏水、屋頂入侵  |
| **地下室**  |  ❌  | 淹水風險        |

> 💡 Low Profile：資料中心外觀低調、不掛招牌。
甚至地點也有重要，比方臺大醫院附近常常有人抗議，治安和影響病人休息。

---

# 3.9 設計場地與設施安全控制 (Facility Security Controls)

> 機房沒有電就像cloudflare失效一樣，後面設備保護再好也沒有。
但 **「人身安全 (Life Safety)」永遠第一**，其次才是資產保護與業務連續性。

---

### 3.9.0 周界安全控制 (Perimeter Security)

在進入建築物內部之前，必須先在外部周界進行防護（Layered Defense）。

#### 1. 圍籬 (Fences)
圍籬的高度決定了它的阻擋效果：
| 高度 | 防護效果 (考點) |
| :--- | :--- |
| **3 - 4 英尺** (約 1m) | **阻擋誤入 (Casual Trespassers)** |
| **6 - 7 英尺** (約 2m) | **阻擋多數入侵者** (太高不好爬) |
| **8 英尺以上** (約 2.4m) | **阻擋決心入侵者 (Determined Intruders)**<br>*(通常需搭配帶刺鐵絲網)* |

#### 2. 護柱 (Bollards) 
* **定義**：豎立在建築物入口或人行道上的短柱（水泥或鋼製）。
* **關鍵功能**：**阻擋車輛 (Anti-ramming)**，但**允許行人**通過。
* **適用情境**：防止車輛衝撞攻擊 (如汽車炸彈 VBIED) 或意外衝入。

![image](https://hackmd.io/_uploads/BkHSuECQWg.png)
> 護柱，資料來源網路

#### 3. 照明 (Lighting)
* 主要功能是**威嚇 (Deterrent)** 與協助**偵測 (Detection)** (讓 CCTV 拍得清楚)。
* **考點**：並不能防止入侵，只能讓入侵者覺得「會被看見」而放棄。
* 標準：關鍵區域至少要有 2 英尺燭光 (2 foot-candles) 的亮度。

---
### 3.9.1 配線設施 (Wiring Closets)

**配線間 (Wiring Closet)** 是指建築物內用於容納線路與設備的**物理空間**。
在網路架構功能上，它通常容納 **IDF (中間配線架)**，負責將該樓層的線路彙整後連回主機房 (MDF)。

#### 📌 圖解重點：MDF和IDF圖示
![image](https://hackmd.io/_uploads/r1frGmC7be.png)
![image](https://hackmd.io/_uploads/Hy_ZGQ0XWx.png)

#### ⚠️ 常見風險與控制 (Physical Security)
由於配線間通常位於辦公樓層的角落，最常發生以下管理疏失：

| 風險 (Risk) | 後果 (Impact) | 控制措施 (Control) |
| :--- | :--- | :--- |
| **未上鎖** | 駭客可直接實體接線竊聽 (Sniffing) 或拔線斷網。 | **強制上鎖**、門禁卡控管、裝設 CCTV。 |
| **堆放雜物** | 變成掃具間或儲藏室，增加火災風險 (Class A)。 | **嚴禁堆放**易燃物 (紙箱、清潔劑)。 |
| **通風不良** | 空間狹小導致熱氣聚積，設備**熱當機**或壽命減短。 | 確保獨立空調或通風扇，維持溫濕度監控。 |

> **💡 考試關鍵字**：
> **MDF (主配線架)**：連接 ISP 的源頭 (Demarc Point)。
> **IDF (中間配線架)**：各樓層的中繼站 (Edge)。
> **Wiring Closet**：這兩者的「家」，最容易被忽略實體安全的地方。

---

### 3.9.2 伺服器機房與資料中心（Server Rooms / Data Centers）

#### 資料中心分級 (Uptime Institute Tiers)

| 層級 | 可用性 % | **每年停機時間 (約)** | 冗餘/特性 (考點) |
| :-: | :---: | :---: | :--- |
| **Tier 1** | 99.671% | 28.8 小時 | **N** (無冗餘)，單迴路，有多個單點故障。 |
| **Tier 2** | 99.741% | 22.0 小時 | **N+1** (部分冗餘)，有備用發電機/冷卻。 |
| **Tier 3** | 99.982% | 1.6 小時 | **N+1 (雙迴路)**，**可同時維修 (Concurrently Maintainable)**。 |
| **Tier 4** | 99.995% | 26 分鐘 | **2N (雙系統)**，**容錯 (Fault Tolerant)**，電力與冷卻完全獨立。 |

---

### 3.9.3 限制區與工作區安全（Restricted & Work Area Security）

#### 實體周界防護標準 (Perimeter Security)

針對實體圍籬 (Fences) 的高度與防護效果，教材有明確的分級標準：

| 圍籬高度 | 防護效果 (考點) |
| :--- | :--- |
| **3 - 4 英尺** (約 1m) | **阻擋誤入 (Casual Trespassers)**  |
| **6 - 7 英尺** (約 2m) | **阻擋多數入侵者** (太高不好爬)  |
| **8 英尺以上** (約 2.4m) | **阻擋決心入侵者 (Determined Intruders)**<br>*(通常需搭配帶刺鐵絲網)*  |

> **💡 控制的功能順序 (The 6 D's)** 
> 在設計實體安全時，應遵循以下邏輯順序：
> 1. **Deter (威嚇)**：如照明、警示牌。
> 2. **Deny (拒絕)**：如上鎖的門、防火牆。
> 3. **Detect (偵測)**：如 CCTV、感測器。
> 4. **Delay (延遲)**：如圍籬、雙重門 (爭取反應時間)。
> 5. **Determine (判定)**：確認是否為誤報。
> 6. **Decide (決定)**：執行回應程序。

#### 窗戶與入侵感測器選型 (Sensor Types) (補充)

針對窗戶防護，需依環境噪音選擇感測器：

| 感測器類型 | 原理 | 適用環境  |
| :--- | :--- | :--- |
| **衝擊感測器**<br>(Shock Sensor) | 偵測實體**振動** (Vibration) | ✅ **吵雜環境** (如路邊、派對房)。<br>因為它不聽聲音，只感應敲擊震動。  |
| **玻璃破碎感測器**<br>(Glass Break) | 偵測玻璃破碎的**音頻** (Microphone) | ✅ **安靜環境**。<br>一顆感測器可監聽多個窗戶，但易受環境噪音干擾。  |
| **被動紅外線**<br>(PIR) | 偵測**熱能/溫度**變化 | ❌ **忌諱陽光直射**或熱源附近 (如印表機)，易誤報。  |

#### 五大關鍵

![Gemini_Generated_Image_z84jiyz84jiyz84j](https://hackmd.io/_uploads/rkC6FVA7-g.png)
資料來源：AI產生

1.  **分區與動線**：
    * 將區域劃分為 **Public (公開)** / **Controlled (管制)** / **Restricted (受限)**。
    * 就像機場一樣，越往內層，檢查越嚴格 (Layered Defense)。
2.  **訪客管理 (Visitor Control)**：
    * 關鍵字：**登記 (Log)**、**配戴識別證 (Badge)**。
    * 考點：訪客必須 **「全程陪同 (Escorted)」**，不可讓其獨自行動。
3.  **門禁與防尾隨 (Anti-tailgating)**：
    * 技術：刷卡、生物辨識。
    * 物理設施：**旋轉門 (Turnstile)**、**人員陷阱 (Mantrap)**。
    * *註：Mantrap 是防止尾隨最有效的物理控制。*
4.  **監控與威嚇**：
    * **CCTV**：事後蒐證用 (Detective)。
    * **照明 (Lighting)**：最便宜的威嚇手段 (Deterrent)，主要為了保護人員安全。
    * **保全 (Guards)**：最具彈性與判斷力的控制 (但也最貴)。
5.  **工作區資料防護 (Work Area Security)**：
    * **淨空桌面 (Clean Desk Policy)**：機密文件不可留在桌上。
    * **螢幕鎖定 (Screen Lock)**：離開座位自動鎖定。
    * **防窺片 (Privacy Screen)**：防止肩窺 (Shoulder Surfing)。

#### 📌 圖解重點：Mantrap

![Mantrap 示意圖](https://hackmd.io/_uploads/BJBwSMAQWg.png)
> **Mantrap (人員陷阱/雙重門)**：
> 一次只過一個人，第一道門關上鎖住後，第二道門才能開。是**防止尾隨 (Piggybacking/Tailgating)** 的終極解法。

:::spoiler 補充：法拉第籠 (Faraday Cage) 與 訊號遮蔽

除了軍事等級的防護外，法拉第籠在現代商業資安中主要用於**阻隔無線訊號**。

#### 1. 核心原理
利用金屬網或導電材質包覆特定空間，形成等電位，使外部的電磁波無法進入，內部的電磁波無法傳出。

#### 2. 應用場景
* **防止 TEMPEST(電磁洩漏攻擊)**：阻隔螢幕或設備發出的微弱電磁輻射，防止被還原成畫面（防竊聽/側錄）。
* **阻斷通訊 (Signal Blocking)**：
    * **機密會議室 (SCIF)**：牆壁內夾銅網，確保手機、Wi-Fi、錄音筆無法將訊號傳輸出去，防止「帶路雞」洩密。
    * **數位鑑識 (Digital Forensics)**：警方查扣嫌疑犯手機時，會放入**法拉第袋 (Faraday Bag)**，防止手機接收到遠端「清除資料 (Remote Wipe)」的指令，確保留存證據。
* **防禦 EMP (電磁脈衝)**：保護關鍵設備不因核爆或太陽風暴產生的瞬間高壓而燒毀。

#### 3. 生活實例
* **微波爐**：門上的金屬網就是法拉第籠，孔洞大小設計為擋住微波（長波長），但讓可見光（短波長）通過。
* **電梯**：在訊號不好的舊式金屬電梯裡手機沒格，就是被法拉第籠效應遮蔽了。

:::info
**💡 補充：主動 vs. 被動**
* **法拉第籠**是「被動」屏蔽，在特定區域**物理性**阻擋訊號。（合法，常用於機房）
* **訊號干擾器 (Jammer)** 是「主動」發射雜訊蓋過正常訊號。（通常**違法**，因為會干擾到周邊公共通訊）

:::

---

### 3.9.4 公用事業與 HVAC (Utilities/HVAC)

機房環境控制的核心目標是在**降低風險**（靜電、過熱、結露）與**提高能源效率**（PUE）之間取得平衡。

目前業界普遍遵循權威機構 **ASHRAE (美國採暖、製冷與空調工程師學會)** 的最新建議標準。

#### 環境溫濕度風險對照表 (ASHRAE 標準)

| 環境因子 | 狀態 / 範圍 | 主要風險 / 後果 (Consequence) |
| :--- | :--- | :--- |
| **濕度**<br>(Humidity) | **太低 (<40%)** | **靜電 (ESD)**：可能瞬間擊穿敏感晶片，造成永久損壞。<br>*(註：即便有防靜電地板，濕度過低仍會產生高壓靜電)* |
| | **太高 (>60%)** | **結露 (Condensation)**：導致電路短路、金屬接點腐蝕。 |
| | ✅ **建議範圍** | **40% – 60% RH** (相對濕度) |
| | | |
| **溫度**<br>(Temperature) | **太冷 (<18°C)** | **浪費能源**：PUE 值過高，且增加冷熱交會時的結露風險。 |
| | **太熱 (>27°C)** | **設備過熱**：導致熱當機 (Thermal Shutdown)、零件壽命縮短。 |
| | ✅ **建議範圍** | **18°C – 27°C** (攝氏) / **64°F – 81°F** (華氏) |
>雖然機器普遍說軍規可以耐高溫，但實務上遇過機房冷氣壞掉氣溫上升，機器為了保護自己全部關機。

#### 機房冷卻最佳實踐：冷熱通道 (Hot / Cold Aisles) (補充)

為了避免冷氣與熱氣混合 (Mixing) 導致效率降低，機房機櫃的排列必須遵循特定規則：

* **排列方式**：**「面對面，背對背」** (Face-to-Face, Back-to-Back)。
* **冷通道 (Cold Aisle)**：機櫃**正面**相對，冷氣從高架地板吹出，設備吸入。
* **熱通道 (Hot Aisle)**：機櫃**背面**相對，熱風匯集，由天花板抽走。

![image](https://hackmd.io/_uploads/SyA1UGRXWl.png)
> 圖示：典型的冷熱通道氣流動線，資料來源網路

### 3.9.4-1 機房特殊設施 (補充) (Facility Details)

#### 1. 高架地板 (Raised Floor)
機房通常會在地板上架高 18~24 英吋，形成一個夾層。

* **主要功能**：
    1.  **充氣室 (Plenum)**：作為冷空氣的輸送通道 (Cold Air Distribution)。精密空調將冷風打入地板下，透過開孔地板 (Perforated Tiles) 向上冷卻設備。
    2.  **線路管理 (Cabling)**：隱藏電源線與網路線，避免絆倒人員。
    3.  **接地網 (Grounding)**：地板下的金屬支架可作為訊號參考接地網 (Signal Reference Grid)，減少雜訊干擾。
    4.  **防淹水緩衝**：若發生小規模漏水，水會流在地板下，不會直接浸泡伺服器。
* **相關風險**：
    * 地板下不可堆放垃圾或易燃物 (Housekeeping)。
    * 需定期清潔，防止灰塵堆積被冷風吹入機器。

#### 2. 空調冷卻方式：氣冷 vs. 水冷

機房冷氣**不一定**是水冷的，取決於規模與熱負載。

| 類型 | 專有名詞 | 原理 (白話文) | 優缺點 (CISSP 觀點) |
| :--- | :--- | :--- | :--- |
| **氣冷式**<br>(Air Cooled) | **DX 系統**<br>(Direct Expansion) | **跑冷媒**。<br>就像家裡的冷氣，銅管內流動冷媒，透過室外機散熱。 | ✅ **安全**：機房內無大量水源。<br>❌ **效率差**：不適合超大型機房。<br>📍 **適用**：中小型機房 (Server Room)。 |
| **水冷式**<br>(Water Cooled) | **CW 系統**<br>(Chilled Water) | **跑冰水**。<br>由中央空調製造冰水，透過水管送到機房內的空調箱 (CRAH)。 | ✅ **效率高**：冷卻能力極強。<br>❌ **風險高**：機房內有高壓水管，**爆管風險 (Single Point of Failure)**。<br>📍 **適用**：大型資料中心 (Data Center)。 |

> **💡 趨勢補充 (液冷時代)**：
> 隨著 AI 伺服器 (如 NVIDIA H100) 發熱量暴增，傳統氣冷/水冷已快扛不住。
> 最新技術是 **「浸沒式冷卻 (Immersion Cooling)」**——直接把伺服器泡在不導電的特殊液體裡散熱。這在未來的考試可能會出現。

### 3.9.4-2 天花板設施 (補充) (Ceilings)

#### 1. 懸吊式天花板 (Suspended / Drop Ceiling)
類似高架地板的概念，在真實樓板下方架設的「假天花板」。
* **主要功能**：
    * **熱回風 (Hot Air Return)**：作為熱氣回收的充氣室 (Plenum)。
    * **美觀與管線遮蔽**。

#### 2. 關鍵實體弱點："Up-and-Over" 攻擊
* **風險**：若隔間牆只蓋到假天花板的高度，攻擊者可從隔壁房間爬過天花板上方侵入機房。
* **防禦 (Control)**：
    * 機房牆面必須是 **Slab-to-Slab (樓板到樓板)**，也就是「頂天立地」，穿過假天花板直抵真實結構。

#### 3. 消防安全：Plenum-rated Cables
* **原理**：天花板上方常作為空調回風路徑。
* **風險**：普通纜線 (PVC) 燃燒會產生**有毒氣體**，隨空調擴散全棟。
* **對策**：必須使用 **Plenum 等級 (CMP)** 線材，其外皮燃燒時無毒、低煙。

#### 4. 現代趨勢：上方走線 (Overhead Cabling)
將纜線架設於機櫃上方的 **Ladder Rack (梯形架)**，而非藏在地板下。
* **優點**：
    1.  避免阻擋地板下的冷空氣流動 (Better Airflow)。
    2.  避免地板淹水損壞線路 (Water Protection)。

---

### 3.9.5 環境問題（Environmental Issues）

* **天然威脅**：地震、洪水、颱風、雷擊。
* **人為威脅**：爆炸、化學洩漏、施工震動、粉塵、鄰近高風險設施。
* **控制措施**：避開洪泛區、安裝漏水偵測 (Water Leakage Detector)、架高地板、除塵濾網。
* **重要觀念**：水與電在一起必有損害，**灑水系統啟動前必須自動切斷電源** (EPO)。

---

### 3.9.6 火災預防與滅火 (Fire Prevention & Suppression)

#### 火災發展四階段 (Four Stages of Fire)

了解火災階段有助於選擇正確的偵測器：

1. **初期階段 (Incipient)**：無可見煙霧，只有空氣電離微粒。
   *💡 **最佳偵測時機**：使用 **VESDA (極早期偵測)** 可在此階段發現。
2. **發煙階段 (Smoke)**：可見煙霧產生，但尚未起火。
3.**火焰階段 (Flame)**：肉眼可見火焰，火勢蔓延快。
4. **高熱階段 (Heat)**：溫度劇烈升高，一切都在燃燒。
   *⚠️ 此時才偵測到通常為時已晚 (熱感應器反應最慢)。

**核心目標**：保護人員安全 (Life Safety) > 保護資產 > 業務連續性。

#### 1. 火災類別與機房對策 (Fire Classes)

**考試重點**：機房火災屬於 **Class C (電氣火災)**。
雖然切斷電源後會變成 Class A 或 B，但在切斷前，**絕對嚴禁用水**！

| Class | 燃燒物 | 一般場所滅火 (通用) | 機房建議方案 (Best Practice) |
|:-----:|--------|-------------------|-----------------------------|
| **A** | 普通 (木/紙) | 水、泡沫、ABC 乾粉 | 潔淨氣體 (機房應避免堆積紙箱) |
| **B** | 液體 (油) | 泡沫、CO₂、ABC 乾粉 | 潔淨氣體 (機房甚少有油類) |
| **C** | **電氣設備** | **ABC 乾粉**、CO₂ | **✅ 潔淨氣體 (FM-200 / Novec)**<br>*(避免使用乾粉造成二次破壞)* |
| **D** | 金屬 | 特殊乾粉 (Class D) | ❌ 機房不應發生此類火災 |
| **K** | 廚房油脂 | 濕式化學 | ❌ 機房內禁止開伙 |

#### 2. 為什麼機房禁用「乾粉 (ABC Dry Powder)」？

這是一個常考的觀念陷阱。市售滅火器標示「適用 ABC」，代表它在**物理上**可以撲滅電氣火災，但在**維運上**是災難。

![乾粉滅火器的悲劇](https://hackmd.io/_uploads/rygG5MRXbx.jpg)

* **清潔難度**：乾粉具腐蝕性、遇熱融化黏在主機板上。
* **結果**：火滅了，但伺服器也報廢了 (設備存活率 0%)。
* **結論**：機房請愛用 **潔淨氣體 (Clean Agent)**。

#### 3. 自動滅火系統 (Suppression Systems)

考試重點在於區分**水系統的運作機制**，以及確認**機房的最佳選擇**。

| 系統類型 | 介質 | 噴頭狀態 | 運作特性 | 機房適用性 (考點) |
| :--- | :--- | :--- | :--- | :--- |
| **Clean Agent**<br>(潔淨氣體) | **氣體**<br>(FM-200 / Novec) | 開放噴嘴 | **全區淹沒 (Total Flooding)**。<br>氣體充滿空間吸熱或阻斷燃燒，**不傷設備、無殘留**。 | 🏆 **機房首選 (Best Practice)**<br>保護資產的最佳方案。 |
| **Pre-action**<br>(預動式) | 水 | 閉合<br>(有玻璃球) | **雙重確認 (Double Interlock)**：<br>需「偵測器觸發」+「溫度夠高」才噴水。<br>**優點**：防止誤噴水。 | ✅ **次佳選擇**<br>若建築法規要求必須裝灑水頭，請指定用此系統。 |
| **Wet Pipe**<br>(濕管式) | 水 | 閉合 | 管線常時有水，反應快、成本低。<br>但在機房有漏水風險。 | ⚠️ **普通辦公室用**<br>不建議用於機房。 |
| **Dry Pipe**<br>(乾管式) | 空氣 | 閉合 | 管線平常只有空氣，水在閥門後。<br>主要為了防結冰。 | ❄️ **寒冷地區/倉庫用**<br>非機房主要考量。 |
| **Deluge**<br>(洪水式)(補充) | 空氣 | **開啟**<br>(無玻璃球) | **全區同時噴水**，水量極大。<br>用於對付延燒極快的火災。 | ❌ **機房絕對禁用**<br>✅ 油庫、飛機棚 |

---

#### 🧠 決策邏輯圖 (Decision Tree)

考試時請依照此邏輯選答案：

```mermaid
graph TD
    Start((機房滅火需求)) --> Q1{首選方案是什麼?}
    Q1 -->|預算足夠/資產極重要| Gas[🏆 潔淨氣體 Clean Agent]
    Gas --> GasEx[FM-200, Novec 1230]
    
    Q1 -->|法規強制用水/預算考量| Water[💧 水基系統 Water Based]
    Water --> Q2{選擇哪種水系統?}
    Q2 -->|為了防止誤噴損壞設備| Pre[✅ 預動式 Pre-action]
    Q2 -->|為了防止管線結冰| Dry[❄️ 乾管式 Dry Pipe]
    Q2 -->|一般辦公環境| Wet[Wet Pipe]
    
    Q2 -->|絕對不能選| Deluge[❌ 洪水式 Deluge]
    style Gas fill:#d4edda,stroke:#28a745,stroke-width:2px
    style Pre fill:#fff3cd,stroke:#ffc107,stroke-width:2px
    style Deluge fill:#f8d7da,stroke:#dc3545,stroke-width:2px
    
```

#### 4. 火災偵測器類型 (Detectors)

考試重點在於 **「選對地點」**，避免誤報 (False Positive) 或偵測太慢。

**1. 煙霧偵測器 (Smoke Detectors)** - *最常見，適用於人員活動區域*
* **光電式 (Photoelectric)**：適用於**一般辦公室** (偵測悶燒)。
* **離子式 (Ionization)**：適用於**化學實驗室** (偵測快速燃燒)。
* **極早期偵測 (Aspirating / VESDA)**：**機房專用 (必考)**。主動吸氣分析微粒，比人類嗅覺更靈敏，能在火災發生前示警。

**2. 溫度偵測器 (Heat Detectors)** - *適用於環境較髒亂區*
* 適用於 **廚房、車庫、鍋爐房**。
* **理由**：這些地方平常就有煙霧或廢氣，若裝煙霧偵測器會導致誤報，改用溫度偵測才準。

**3. 火焰偵測器 (Flame Detectors)** - *特殊用途*
* 偵測紅外線/紫外線，適用於 **油庫、彈藥庫** (需要極快反應)。

---

### 3.9.7 電力問題 (Power Issues) 與 防護對策

#### 1. 電力異常名詞定義表 (病症)

| 狀態 \ 時間 | 瞬間 (Momentary) | 長時間 (Prolonged) | **對應防護設備 (藥方)** |
| :--- | :--- | :--- | :--- |
| **高電壓 (High)** | **Spike (尖峰)** | **Surge (突波)** | ✅ **突保護制器 (Surge Protector)** |
| **低電壓 (Low)** | **Sag (驟降)** | **Brownout (低壓)** | ✅ **UPS / 穩壓器 (Regulator)** |
| **沒電 (None)** | **Fault (故障)** | **Blackout (停電)** | ✅ **UPS (短時) + 發電機 (長時)** |

---

#### 2. 常見電力防護設備 (Countermeasures)

針對哪種問題，該使用什麼設備？

* **突波保護器 (Surge Protector / Suppressor)**：
    * **功能**：專門處理 **Spike (尖峰)** 與 **Surge (突波)**（高電壓）。
    * **原理**：利用金屬氧化物壓敏電阻 (MOV) 將過多的電壓導向地線，保護設備不被燒毀。

* **不斷電系統 (UPS)**：
    * **功能**：
        1.  **Online UPS**：提供純淨電源，修正 Sag (驟降) 與 Brownout (低壓)（電壓不穩）。
        2.  **Battery Backup**：在 Fault 或 Blackout 時提供臨時電力，爭取**正常關機**或**啟動發電機**的時間。
    
* **發電機 (Generator)**：
    * **功能**：專門處理長時間的 **Blackout (停電)**。
    * **限制**：啟動需要時間，必須搭配 UPS 來填補市電中斷到發電機啟動之間的空窗期。



* **湧入電流 (Inrush Current)**：設備剛啟動瞬間產生的巨大電流，可能導致跳電。
>實務上客戶就是沒有裝突波保護器，台電電一來然後打壞十多台交換器的電源供應器。

![image](https://hackmd.io/_uploads/BksT24Cm-e.png)

---

### 3.9.8 媒體儲存（Media Storage）

* **實體防護**：防火保險櫃、存放位置需高於地面 (防淹水)、遠離強磁場。
* **管理程序**：
    * 聘請媒體保管員 (Librarian)。
    * 使用登記和借出流程。
    * 媒體歸還或報廢時，執行消磁 (Degaussing) 或銷毀。
>廠商POC進入公司的機器歸還時硬碟也要消磁。

---

### 3.9.9 證據儲存（Evidence Storage）

* **Chain of Custody (監管鏈)**：確保從收集到法庭的過程中，證據未被竄改。需完整移交與簽名紀錄。
* **雙人控管 (Two-Person Control)**：存取證據室需兩人同時在場。
* **技術控制**：雜湊驗證 (Hashing)、防竄改封條、隔離網路。

---

### 3.9.10 冗餘電力系統 (Redundant Power 和 UPS) (補充)

#### UPS 的角色定位
UPS (不斷電系統) **不是發電機**！它的核心任務是：
1.  **救急 (Short-term)**：提供 5-15 分鐘電力，讓伺服器優雅關機 (Graceful Shutdown)。
2.  **橋樑 (Bridge)**：在發電機啟動暖機 (約 1 分鐘) 期間，支撐電力不中斷。

#### 三種 UPS 類型比較

| 類型 | 運作特色 (考點) | 切換時間 | 適用場景 |
| :--- | :--- | :---: | :--- |
| **離線式**<br>(Off-line) | 平常走市電，停電才切換電池。<br>構造簡單。 | 有<br>(4~10ms) | 個人電腦 |
| **在線互動式**<br>(Line-interactive) | 具備 **AVR (自動穩壓)**。<br>電壓不穩時不吃電池，靠變壓器調整。 | 有<br>(較短) | 辦公室網路設備 |
| **在線式**<br>(On-line) | **雙轉換 (AC→DC→AC)**。<br>電力品質最純淨。 | **零切換**<br>(0ms) | **關鍵機房**<br>銀行核心系統 |

#### 2N 架構示意圖 (Tier 4 等級)

```mermaid
graph TD
    classDef source fill:#f9f,stroke:#333,stroke-width:2px;
    classDef device fill:#bbf,stroke:#333,stroke-width:2px;
    classDef critical fill:#f96,stroke:#333,stroke-width:4px;

    subgraph Side_A ["路徑 A (Active)"]
        direction TB
        SourceA["市電 A"]:::source
        GenA["發電機 A"]:::source
        ATSA["ATS 自動切換 A"]:::device
        UPS_A["UPS A (在線式)"]:::critical
        PDU_A["PDU A"]:::device
    end

    subgraph Side_B ["路徑 B (Active)"]
        direction TB
        SourceB["市電 B"]:::source
        GenB["發電機 B"]:::source
        ATSB["ATS 自動切換 B"]:::device
        UPS_B["UPS B (在線式)"]:::critical
        PDU_B["PDU B"]:::device
    end

    subgraph Rack ["伺服器機櫃"]
        Server["關鍵伺服器 (雙 PSU)"]:::device
    end

    SourceA --> ATSA
    GenA --> ATSA
    ATSA --> UPS_A
    UPS_A --> PDU_A
    PDU_A --> Server

    SourceB --> ATSB
    GenB --> ATSB
    ATSB --> UPS_B
    UPS_B --> PDU_B
    PDU_B --> Server

```

#### 電力切換流程 (Sequence Diagram)

```mermaid
sequenceDiagram
    autonumber
    participant Utility as ⚡ 市電
    participant ATS as 🤖 ATS
    participant Gen as 🚜 發電機
    participant UPS as 🔋 UPS

    Note over Utility, UPS: 💥 停電 (Blackout)
    
    rect rgb(255, 230, 230)
        Note right of Gen: 🚀【啟動階段】<br/>UPS 電池放電支撐<br/>發電機暖機 (10-60s)
        ATS->>Gen: 啟動訊號
        Gen->>ATS: 電力 Ready
        ATS->>UPS: 切換至發電機供電
    end
    
    Note over Utility, UPS: ... (發電機持續供電) ...
    
    Utility->>ATS: 市電恢復
    
    rect rgb(225, 245, 254)
        Note right of ATS: ⏳【觀察階段】<br/>等待 5-10 分鐘<br/>確認市電穩定
        ATS->>UPS: 切回市電
    end

    rect rgb(232, 245, 233)
        Note right of Gen: ❄️【冷卻階段】<br/>發電機空轉散熱 (Cool-down)
        Gen->>Gen: 熄火
    end

```

---

# CISSP Domain 3.7 - 3.9 模擬試題 (HackMD 版)

## 3.7 密碼分析攻擊 (Cryptanalytic Attacks)

#### Q1. 攻擊者攔截了發送給您伺服器的加密訊息，並且試圖通過監測解密過程中的**電力消耗**和**處理時間**來推斷加密金鑰。這屬於哪種類型的攻擊？
* A. 選擇明文攻擊 (Chosen-plaintext attack)
* B. 旁路攻擊 (Side-channel attack)
* C. 生日攻擊 (Birthday attack)
* D. 暴力破解攻擊 (Brute-force attack)

:::spoiler  點擊查看答案與解析
> **答案：B**
> **解析：** 旁路攻擊（Side-channel attack）不直接攻擊加密演算法本身，而是利用系統實作上的物理特徵（如功耗、電磁輻射、執行時間）來竊取資訊。選項 A 涉及加密選定的明文；選項 C 針對雜湊碰撞；選項 D 是嘗試所有可能的金鑰組合。
:::

---

#### Q2. 為了防禦**彩虹表 (Rainbow Table)** 攻擊，下列哪項措施最為有效？
* A. 定期更換密碼
* B. 使用更長的密碼
* C. 在雜湊過程中加鹽 (Salting)
* D. 使用對稱式加密

:::spoiler  點擊查看答案與解析
> **答案：C**
> **解析：** 彩虹表是預先計算好的雜湊值對照表，用來快速破解雜湊密碼。透過「加鹽 (Salting)」，即在密碼雜湊前加入隨機數據，可以確保即使兩個用戶使用相同的密碼，其雜湊值也會不同，從而使彩虹表失效。
:::

---

#### Q3. 在密碼分析中，如果攻擊者擁有**密文**及其對應的**明文**，並試圖推導出金鑰，這種攻擊模式稱為什麼？
* A. 唯密文攻擊 (Ciphertext-only attack)
* B. 已知明文攻擊 (Known-plaintext attack)
* C. 選擇密文攻擊 (Chosen-ciphertext attack)
* D. 頻率分析攻擊 (Frequency analysis)

:::spoiler 點擊查看答案與解析
> **答案：B**
> **解析：** 已知明文攻擊（Known-plaintext attack）是指攻擊者擁有部分明文以及對應的密文，並利用這些資訊來試圖破解金鑰或演算法。
:::

---

#### Q4. 下列哪一種攻擊方式是利用**生日悖論 (Birthday Paradox)** 的機率原理，試圖在雜湊函數中找到兩個不同的輸入產生相同的輸出（碰撞）？
* A. 字典攻擊 (Dictionary attack)
* B. 中間人攻擊 (Man-in-the-middle attack)
* C. 碰撞攻擊 (Collision attack) 或 生日攻擊
* D. 重放攻擊 (Replay attack)

:::spoiler  點擊查看答案與解析
> **答案：C**
> **解析：** 生日攻擊利用機率論中的生日問題，即在一個群體中，兩人剛好同一天生日的機率比直覺上高得多。在密碼學中，這被用來尋找雜湊碰撞（Collision），即 $H(x) = H(y)$。
:::

---

## 3.8 & 3.9 實體安全 (Physical Security)

#### Q5. CPTED (Crime Prevention Through Environmental Design) 的核心概念中，利用建築設計、照明和景觀美化來提高被觀察的機會，從而嚇阻犯罪者，這稱為：
* A. 自然存取控制 (Natural Access Control)
* B. 領地強化 (Territorial Reinforcement)
* C. 自然監控 (Natural Surveillance)
* D. 目標強化 (Target Hardening)

:::spoiler  點擊查看答案與解析
> **答案：C**
> **解析：** 自然監控（Natural Surveillance）是 CPTED 的原則之一，旨在通過物理設計（如窗戶位置、修剪樹木、適當照明）讓入侵者容易被內部人員或路人看見，從而降低犯罪意圖。
:::

---

#### Q6. 在資料中心遭遇電氣火災（如伺服器機櫃起火）時，應使用哪一類型的滅火器？
* A. Class A
* B. Class B
* C. Class C
* D. Class K

:::spoiler  點擊查看答案與解析
> **答案：C**
> **解析：**
> * Class A：普通可燃物（木頭、紙）。
> * Class B：易燃液體（油、汽油）。
> * **Class C：電氣設備火災 (Electrical)**。使用不導電的滅火劑至關重要。
> * Class D：可燃金屬。
> * Class K：廚房油脂。
:::

---

#### Q7. 關於實體安全中的**圍籬 (Fencing)** 高度，若要能夠嚇阻**意志堅定**的入侵者（難以攀爬），建議的最低高度通常是多少？
* A. 3-4 英尺 (約 1 公尺)
* B. 5 英尺 (約 1.5 公尺)
* C. 6-7 英尺 (約 2 公尺)
* D. 8 英尺 (約 2.4 公尺) 以上並加裝倒鉤鐵絲網

:::spoiler  點擊查看答案與解析
> **答案：D**
> **解析：**
> * 3-4 英尺：僅具界線標示作用。
> * 6-7 英尺：對一般人有阻擋作用，因為太高難以輕易攀爬。
> * **8 英尺以上 (加上頂部防護)**：被認為能有效阻擋意志堅定的入侵者。
:::

---

#### Q8. 在設計伺服器機房的 HVAC (暖通空調) 系統時，為了防止外部灰塵和汙染物進入機房，應保持機房內的氣壓為：
* A. 正壓 (Positive Pressure)
* B. 負壓 (Negative Pressure)
* C. 等壓 (Neutral Pressure)
* D. 真空 (Vacuum)

:::spoiler  點擊查看答案與解析
> **答案：A**
> **解析：** 伺服器機房應維持**正壓 (Positive Pressure)**。這意味著當門打開時，空氣會從機房內部流向外部，從而防止外部未經過濾的髒空氣或灰塵被吸入機房內。
:::

---

#### Q9. 下列哪一種門禁系統的失效模式 (Failure Mode) 最適合用於確保**人員安全 (Human Safety)**（例如火災逃生出口）？
* A. Fail-Secure (失效安全/閉鎖)
* B. Fail-Safe (失效開啟)
* C. Fail-Closed (失效關閉)
* D. Anti-passback (反潛回)

:::spoiler  點擊查看答案與解析
> **答案：B**
> **解析：**
> * **Fail-Safe (失效開啟)**：當電源中斷或系統故障時，鎖會自動解開，確保人員可以逃生（以人身安全為優先）。
> * Fail-Secure (失效閉鎖)：故障時保持上鎖（以財產安全為優先，常用於金庫）。
:::

---

#### Q10. 在選擇資料中心的地點時，下列哪項是**最不**建議的特徵？
* A. 建築物外觀低調，沒有明顯標示
* B. 位於地勢較高的區域以防洪水
* C. 位於飛機航道正下方或危險化學工廠旁
* D. 距離緊急服務（如消防局）的回應時間較短

:::spoiler  點擊查看答案與解析
> **答案：C**
> **解析：** 實體安全選址應避免危險區域，如飛機航道下方（墜機風險）、化工廠旁（爆炸或毒氣風險）、地震斷層帶或洪水區。選項 A、B、D 均為良好的安全實踐。
:::