CEH · M01

CIA 與安全控制:先說清楚要保護什麼

機密性、完整性與可用性是三種不同的保護目標。從資產與影響出發,選擇能驗證效果的控制。

讀完後,你可以
  • 以具體情境區分 CIA 三個面向。
  • 說明雜湊比對能支持的結論及其限制。

先備閱讀:倫理駭客的起點:授權、範圍與停止條件

先看資產與失敗的後果

同一份研究資料可能需要限制讀取、避免錯誤修改,並讓授權研究者在需要時取得。先寫出資料、使用者與任務,再問「如果它被看見、改壞或拿不到,會造成什麼影響?」

機密性(Confidentiality)關心未授權揭露;完整性(Integrity)關心不當修改或破壞;可用性(Availability)關心授權者能否在需要時可靠使用。一次事件可能同時影響多個面向。

延伸閱讀:NIST FIPS 199: Security Categorization

控制要對應威脅與可觀察結果

存取控制可以限制誰能讀寫;版本管理與可驗證備份能支援追查及復原;冗餘與復原演練能支援可用性。控制是否有效,需要觀察它在宣告情境下的結果,而不只是確認產品已安裝。

防護可能互相牽制。把系統完全關機可以阻止當下的網路存取,卻也可能使合法工作停止。選擇控制時要保留業務目的、影響與可接受的復原時間,而不是只追求一個指標。

雜湊相同,不等於來源可信

SHA-256 把輸入位元組映射為固定長度摘要。比較可信的預期摘要與收到的檔案,可檢查內容是否符合預期。只比對兩份自己產生的摘要,能看出範例資料的變化,卻不能證明發送者身分。

如果檔案與摘要都來自同一個已遭竄改的位置,攻擊者可能同時換掉兩者。因此完整性檢查還要問:參考值如何被信任?密碼學章節會再區分加密、雜湊與數位簽章。

延伸閱讀:Python: hashlib

例子:論文資料表少了一個零

一份公開的合成資料原本記為 100,更新後變成 10。讀者仍能下載,且沒有私人資料。

核心問題是未經預期的內容變動,因此主要影響完整性。是否屬於惡意或手誤仍需修改紀錄;能下載只支持此時可取得,不能證明內容正確。

判斷:先比對可信版本、追查變更並修正;不要把這個例子直接標成資料外洩。

離線練習:比較兩份合成資料的 SHA-256

只需本機 Python 3。程式使用寫在程式內的 bytes,不讀寫個人檔案,也不建立網路連線。

  1. 下載 integrity_demo.py,先閱讀程式中兩個合成字串,預測相同與不同的比對結果。
  2. 執行 python3 integrity_demo.py,觀察 equal 與 changed 兩個布林值。
  3. 寫下一句「輸出支持什麼」及一句「輸出沒有證明什麼」。
from hashlib import sha256
a = b'sample=100'
b = b'sample=10'
print('equal=' + str(sha256(a).digest() == sha256(a).digest()))
print('changed=' + str(sha256(a).digest() != sha256(b).digest()))

下載練習程式

預期結果

equal=True、changed=True。相同 bytes 的摘要一致;本例改一個字元後摘要不同。

自行檢核

能否說明為何這個結果不代表資料已加密,也不代表發送者已通過身分驗證?

結束與清理

程式沒有建立檔案。保留你的解釋即可;下載的示範程式可自行保留或刪除。

Q&A · 檢查你的理由

選一個答案與作答信心,再閱讀所有選項的解析。答案只儲存在此瀏覽器。

ceh-m01-cia-q1 · 原創練習

資料被意外改錯,但仍可正常下載,主要影響哪一項?

資料被意外改錯,但仍可正常下載,主要影響哪一項?
ceh-m01-cia-q2 · 原創練習

從同一個不可信位置下載檔案與摘要,比對相同後可說什麼?

從同一個不可信位置下載檔案與摘要,比對相同後可說什麼?
ceh-m01-cia-q3 · 原創練習

備份存在,但從未測試還原。哪個描述最準確?

備份存在,但從未測試還原。哪個描述最準確?

連結下一個概念

詞彙:CIA 三要素·雜湊·證據邊界

參考來源與範圍

以下來源支持技術原理;例子、題目與安全練習由本系列原創設計。