---
tags: Note
description: '林韓禹 教授 1062 資訊安全實務與管理的課堂筆記'
title: '1062 資安筆記'
---
# Information Security Note
:::info
+ 課程名稱:資訊安全實務與管理 Information Security: Practice and Management
+ 授課老師:[name=林韓禹 Han-Yu Lin]
+ 開課學期:1062
:::
[TOC]
# Chapter 1 - Computer Security Basics
## What is 電腦安全 (Computer Security)
+ 答案根據使用者的角度 (Perspective) 有所不同
+ Garfinkel 和 Spafford 兩位大師表示
>「若這部電腦的運作與軟體的行為能按照你的期望進行,則稱之為安全。」
> "A computer is secure if you can depend on it and its software to behave as you expect"
## CIA Traid - 從使用者的角度
+ 機密性 Confidentiality
+ 防止被未授權 (Unauthorized) 的使用者**讀取** (Reading) 機密資訊
+ 完整性 Integrity
+ 防止被未授權的使用者**修改** (Writing) 資訊
+ 可用性 Availability
+ 授權的使用者可以正常的存取資料、使用服務
## DAD Traid - 從攻擊者的角度
+ 洩漏 Disclosure
+ 未授權的使用者存取到機密性的資訊
+ 破壞了 CIA 的機密性
+ 竄改 Alteration
+ 未授權的使用者竄改了資訊
+ 破壞了 CIA 的完整性與機密性
+ 阻斷 Denial
+ 授權的使用者無法存取資料
+ 破壞了 CIA 的可用性
## 網路資訊安全 Network Security
+ 原本只需要關注獨立系統的安全
+ 區域網路 (LANs - Local Area Network) 與網際網路 (Internet) 的發展使資訊安全的問題變得更困難
+ 注意事項 (Considerations) 包含:
+ 保護 TCP/IP ++協定 (Protocol)++
+ 防火牆 (Firewalls)
+ 入侵檢測系統 (Intrusion Detection Systems)
## 網路對安全的威脅 Threat to Security
+ 黑客 Hacker
+ 黑客原意為熟練的電腦使用人員
+ 現在是指 企圖 滲透 一個資訊系統安全的人,**無論其意圖為何**
+ 惡意代碼物件 Malicious Code Object
+ 病毒 Virus
+ 無法獨立生存,**寄生**在其他檔案,並在特定時機攻擊癱瘓電腦
+ 蠕蟲 Worm
+ 會大量**複製**自己
+ 後門 Backdoor
+ **繞過**系統安全性,從比較隱密的地方取得系統存取權
+ 特洛伊木馬 (Trojan Horse) 就是一種後門軟體
+ 用以誤導使用者藉以騙取甚至遠端操作
+ 來自內部的惡意 Malicious Insider
+ 系統安全要從**內部**做起
+ 組織內部的人試圖超越他們合法擁有的權利 (Right) 和權限 (Permissions)
+ 安全專家和系統管理員 (Administrators) 特別危險
*[企圖]: Attempts
*[滲透]: Penetrate
## 風險分析 Risk Analysis
+ 因為**資源有限**,所以無法採取所有保護措施
+ 風險分析所涉及 (Involved) 的行動:
+ 決定有價值的資產 (Assets)
+ 識別 (Identify) 資產可能面臨的風險
+ 確定每個風險發生的可能性 (Likelihood)
+ 採取保護措施來管理 (Manage) 風險
+ 資安專家所規定的風險分析過程
## 資產價值 Identifying and Valuing Assets
+ 資產價值是**權衡** 成本與收益 的**基礎**
+ 資產的價值可以用的評估 (Valuation) 方法:
+ **取代價評估法** Replacement Cost Valuation
+ 使用取代物的價格作為資產的價格
+ **原始價評估法** Original Cost Valuation
+ 使用資產當初購入的價格作為資產的價格
+ **折舊價評估法** Depreciated Valuation
+ 使用取代物與原價的價差作為資產的價格
+ **優先度評估法** Qualitative Valuation
+ 無論該資產的金錢價值 (Dollar Values) 為何
+ 優先度 (Priorities) 高的資產就是比較重要
*[權衡]: Tradeoffs
*[成本與收益]: Cost & Benefit
*[基礎]: Foundation
## 識別與評估風險 Identifying and Assessing Risks
+ 兩種主要的風險評估技術:
+ 值 Qualitative
+ 量 Quantitative
+ 漏洞 Vulnerability
+ 系統**內部** 潛在可能 被 利用 的 弱點
+ 例如:沒有安裝防毒軟體的電腦
+ 威脅 Threat
+ 來自**外部**可能利用系統漏洞的情況 (Circumstance)
+ 例如:網路上存在著電腦病毒
+ 風險 Risk
+ 等於**威脅**加上**漏洞**
![風險 = 威脅 + 漏洞](https://i.imgur.com/emYkYkD.png)
*[潛在可能]: Potentially
*[利用]: Exploited
*[弱點]: Weakness
## 質的風險評估 Qualitative Risk Assessment
+ 專心於分析資產的**無形**特性 (Intangible Properties) 而非金錢價值
+ 確定風險的優先級來協助分配安全資源
+ 相對容易進行的評估方式 (?)
## 量的風險評估 Quantitative Risk Assessment
+ 根據資產價值、暴露風險的發生率以及資產的年度耗損做評估
+ 使用可能損失的金額決定是否值得實施安全措施
## 風險管理 Managing Risks
+ 風險避免 Risk Avoidance
+ 當獲利遠小於風險,禁不起任何一次虧損,需要採取風險避免
+ 例如:騎車可能出車禍,可能有生命危險
+ 完全避開所有可能發生風險的機率
+ 例如:宅在家裡,完全不出門騎車
+ 例如:完全不使用網路
+ 風險減緩 Risk Mitigation
+ 當獲利大於風險,可以接受這些損失
+ 採取預防措施來降低風險
+ 例如:騎車騎慢一點
+ 例如:使用防火牆
+ 風險轉移 Risk Transference
+ 當風險發生時,把損失轉移到第三者身上
+ 例如:買保險 (Insurance)
+ 接受風險 Risk Acceptance
+ 當風險造成的傷害非常低的時候
+ 完全不做任何事情來避免風險
+ 組合多項管理風險的方式是常見的方法
## 安全性權衡的考量 Considering Security Tradeoffs
+ 安全性可以被視為風險與獲益之間的 Tradeoff
+ 要考量的部分包含
+ 安全性
+ 使用者便利 Convenience
+ 使用者可能會因為系統安全過於**累贅**而降低使用**意願**
+ 使用者為了規避安全可能會造成系統更不安全
+ 例如:使用過於簡單的登入密碼
+ 企業目標
+ 費用 Expenses
+ 成本不可以大於企業利益
*[累贅]: Cumbersome
*[意願]: Willingness
## 方針與教育 Policy and Education
+ 安全工作的基石
+ 實施適當的方針
+ 教育使用者這些方針
+ 資訊安全的方針
+ 彈性 Flexible
+ 避免頻繁的修改
+ 全面 Comprehensive
+ 確定所有情況都有考慮到
+ 對所有組織內的成員都可用
+ 可讀性 Readable
+ 可理解性 Understandable
## 總結
+ CIA Triad - 資訊安全人員的目的
+ Confidentiality
+ Integrity
+ Availability
+ DAD Triad - 試圖逃避 (Evade) 安全措施的目的
+ Disclosure
+ Alteration
+ Denial
+ 因為網路,安全問題從個人電腦移至保護所有互聯 (Interconnected) 電腦
+ Threat
+ Hacker
+ Malicious Code
+ Virus
+ Worm
+ Backdoor
+ Trojan Horse
+ Malicious Insider
+ 風險分析決定成本與獲益的權衡
+ 資產估價 Identifying and Valuing Assets
+ Replacement Cost Valuation
+ Original Cost Valuation
+ Depreciated Valuation
+ Qualitative Valuation
+ 識別風險 Identifying Risks
+ 風險機率 Assessing Risks
+ 選擇措施 Managing Risks
+ Risk Avoidance - 運作影響最大
+ Risk Mitigation
+ Risk Transference
+ Risk Acceptance - 運作影響最小
+ 資訊安全的關鍵是設定有效率的方針與教育
# Chapter 2 - Authentication 認證
## 存取控制簡介 Basics of Access Control
+ 方法 (Method) 與物件 (Component) 的集合 (Collection)
+ 機密性 (Confidentiality)
+ 完整性 (Integrity)
+ 存取控制的目標是在許可範圍內,去認證允許 (Permitted) 主體 (Subject) 存取物件 (Object) 的行為
+ 主體不一定是人,只要發出請求 (Request) 的都是主體
## 存取與控制 Access & Control
+ 包含了**存取** (Access) 與**控制** (Control) 兩個部分
+ 認證 Authentication
+ 誰可以過去? (Who goes there?)
+ 認證人對機器的存取
+ 認證機器對機器的存取
+ 授權 Authorization
+ 可不可以做這件事? (Are you allow to do that?)
+ 有了存取權後可以做什麼?
+ 對行為施加限制
+ ==**注意**==
+ 存取控制常被當成授權的代名詞 (Synonym)
+ 但完整定義必須包含兩個部分
+ 主體 Subject
+ 發出要存取資源需求的個體 (Entity)
+ 對象 Object
+ 主體試圖存取的資源
+ 最低存取原則 Least Privilege Philosophy
+ 給予主體足夠完成所需工作的權限即可
## 控制 Control
+ 允許或禁止對象訪問的機制 (Mechanisms)
+ 也可以說是不合法存取的一種阻礙 (Barrier)
+ 控制常見的種類
+ 管理層面 Administrative
+ 從**管理策略**來執行 (Enforce) 安全規則
+ 雇用策略 Hiring Practice,無不良紀錄才雇用
+ 雇用後的狀況觀察
+ 使用量監測和稽核 (Usage Monitoring & Accounting)
+ 邏輯與技術 Logic & Technical
+ 對象存取的限制 (Restrictions)
+ 例如:
+ 識別 Identification
+ 多對一的比較
+ 認證 Authentication
+ 一對一的比較
+ 加密 Encryption
+ 實體 Physical
+ 將存取限制施加在硬體上
+ 例如:圍牆 (Fence) 、牆壁、上鎖的門
## 存取控制技術 Access Control Techniques
+ 選擇符合組織需求的技術
+ 也要考慮使用者的接受度
## 存取控制設計 Access Control Designs
+ 強制型 Mandatory Access Control
+ 指定安全標籤 (Security Label) 給每個主體和物件
+ 由安全標籤來決定行為是否准許 (Granted)
+ 常見的應用方式為 **Rule-Based 存取控制**
+ Rule-Base 是 Mandatory 的一種實作方式
+ 需要知道給主體哪種等級的安全標籤
+ 是一種強制的存取控制
+ 常見軍方 (Military) 資料分級 (Classifications)
+ 未分類 Unclassified
+ 敏感但未分類 Sensitive but Unclassified
+ 機密 Confidential
+ 秘密 Secret
+ 最高機密 Top Secret
+ 常見商業 (Commercial) 資料分級
+ 公開 Public
+ 敏感 Sensitive
+ 私人 Private
+ 機密 Confidential
+ 斟酌型 Discretionary Access Control
+ 依照物件所有者的喜好決定
+ 商業操作上常見的設計
+ 基本上比較彈性、易實作
+ 基本上比 Mandatory 不安全
+ 包含 Identity-Based 存取控制、Access Control Lists (ACLs)
+ 非斟酌型 Non-Discretionary Access Control
+ 根據 Subject 的角色與任務決定存取控制權
+ 也可稱為 Role-Based, Task-Based Access Control
+ 適用於角色轉換頻繁 (High Turnover) 的公司
+ Lattice-Based Control 是一種 Non-Discretionary Access Control 的變體 (Variation)
+ 主體和對象之間具有一組用於定義訪問規則和條件的邊界
## 存取控制的管理 Access Control Administration
+ 主要分為集中式、分散式、混合式
+ 集中式 Centralized
+ 所有的需求都經過一個權力核心
+ 管理政策相對單純
+ 因為都經過一個點,所以會有效能瓶頸 (Bottlenecks)
+ 分散式 Decentralized
+ 物件的存取控制不是集中的
+ 相對複雜的管理策略
+ 效能相對穩定
+ 混和式 Hybrid
## 責任 Accountability
+ 系統管理員使用系統審核 (Auditing) 來監測
+ 誰在使用系統 (Who is using the system)
+ 在使用系統做什麼 (What users are doing)
+ Logs 訊息很重要,負責追蹤事件
+ 但這個過程會對效能造成影響
+ 限制 Logs 的數量大小
+ 設定 Logs 啟動的門檻 (Clipping Level)
+ 紀錄關鍵的事件才能在事後追蹤
## 存取控制模型 Access Control Models
+ State Machine Model
+ 定義 Object 的狀態和轉換的集合
+ Ex: 印表機的休眠、列印中狀態
+ Bell-LaPadula Model
+ 強調機密性 (Confidentiality)
+ No read up, no write down
+ 不可以讀機密性高的文件
+ 不可以把高機密內容寫到機密性低的文件
+ Biba Model
+ 強調完整性 (Integrity)
+ No read down, no write up
+ 將軍不去讀小兵寫的策略
+ 小兵不能寫將軍的策略
+ Clark-Wilson Model
+ 不是一種狀態機模型
+ 用不同的途徑 (Approach) 確保完整性
+ CDIs: Constrained Data Items 受保護的資料
+ UDIs: Unconstrained Data Items 未受保護的資料
+ IVPs: Integrity Verification Procedures
+ 驗證資料完整性的程序
+ TPs: Transaction Procedures
+ 任何對資料進行的授權修改行為
+ 所有在模型下的資料都是 CDIs
+ IVPs 會確保系統中資料的完整性
+ TPs 會接收 CDIs 或 UDIs 並且製造 CDIs
+ TPs 必須保證所有可能的 UDIs 都會變成安全的 CDIs
+ Noninterference Model
+ 通常是其他模型額外的補充
+ 確保模型彼此不會互相干擾
## Who Goes There?
+ Something You Know: 密碼
+ Something You Have: Smart Card
+ Something You Are: 指紋
+ Ex: 信用卡則包含了實體 & 簽名,其中簽名屬於生物特徵
## 密碼的問題 Trouble With Passwords
+ 在實務上有很嚴重的問題
+ 人類無法選擇過於安全的密碼
+ 密碼的優點:
+ 成本低,免費
+ 方便性,易於修改
+ 密碼的缺點:
+ 太容易被破解
+ 對Bad Guy很有優勢
+ 密碼是資訊安全的底限 (Bottom Line)
## Keys vs Passwords
+ 密鑰
+ 長度 64 Bits,也可以理解成 8 Bytes的字串之類的
+ 則有 2^64 種組合
+ 而且系統隨機挑選密鑰
+ 攻擊者必須嘗試至少 2^63 次
+ 密碼
+ 長度 8 個字元,有 256 種不同的字元
+ 則有 256^8 = 2^64 種組合
+ 但使用者並不會隨機挑選
+ 攻擊者嘗試次數遠小於 2^63 次
+ 使用字典攻擊 (Dictionary Attack)
## Good & Bad Passwords
+ 不好的密碼可能單調、重複或單字
+ 好的密碼大小寫混雜、長度足夠
## 密碼實驗 Password Experiment
+ **實際的實驗內容參考PPT第28頁**
+ 實驗的過程發現,使用者很難遵從 (Compliance) 實驗規則
+ 選擇密碼的建議:
+ 系統指定的密碼可能比較好
+ 使用密碼破解工具 (Cracking Tool) 測試安全性
+ 定期 (Periodic) 更換密碼
## 密碼攻擊 Attacks on Password
+ Outsider > Normal User > Administrator
+ 有時可能一個脆弱的密碼就導致整個系統被入侵
## 密碼重試 Password Retry
+ 有些系統可能會在三次嘗試之後鎖定登入
+ 鎖定登入的等待越久,雖然安全性越高,但使用者也越不方便
## 密碼檔案 Password File
+ 把密碼存在一個檔案裡面是不好的主意
+ 加密 (Cryptographic) 方法:雜湊 (Hash)
+ 在密碼檔案裡面儲存 y = h (pwd)
+ 即便密碼檔案被獲取,攻擊者也不知道密碼是多少
+ 但攻擊者可以藉由猜測密碼 x 得到 y = h(x) 來破解密碼
+ 所以還是無法降低攻擊者的猜測
+ 若使用字典攻擊
+ 攻擊者只要算一次雜湊值就可以猜測所有人的密碼
+ 對攻擊者的成本好像反而更低了
+ 更好的加密方法:Hash with Salt
+ Salt 是 Admin 選的
+ 選擇亂數 s,計算 y = h (pwd, s)
+ 在密碼檔案裡面儲存 s 跟 y
+ Salt 是公開的
+ 驗證密碼非常容易
+ 但是攻擊者就不能一次猜全部
## Password Cracking: Do The Math
+ 這裡是計算步驟
+ PPT 第35~37頁
## 其他問題 Other Password Issues
+ 太多密碼要記,所以重複使用的密碼太多
+ 社交工程 (Social Engineering)
+ 釣魚網頁
+ 社交詐騙
+ Error Logs 可能含有近似真實密碼的紀錄
+ Bugs、按鍵側錄 (Keystroke Logging) 、間諜軟體 (Spyware) 等
## 生物辨識 Something You Are
+ 需要便宜且可靠的辨識裝置
+ 雖然研究很活躍但是普及速度不快
+ 理想的生物特徵 Ideal Biometric
+ 普遍性 Universal
+ 大家都有的
+ 區分性 Distinguishing
+ 非常明確的區分
+ 永久性 Permanent
+ 一輩子永遠不會改變
+ 可蒐集 Collectable
+ 方便蒐集的特徵
+ 安全,簡易使用等等
## 生物辨識的模式 Biometric Modes
+ 識別 Identification
+ 一對多的比對
+ Ex: FBI 的指紋資料庫
+ 認證 Authentication
+ 一對一的比對
+ 識別比較難
## 註冊 Enrollment
+ 必須多做幾次,確保準確度
+ 是許多系統難以克服的困難
## 辨識 Recognition
+ 要快速、簡單而且準確
## 合作對象 Cooperative Subjects
+ 有時候對象是不合作的,造成正確率下降
+ 沒有良好的註冊,就沒有良好的辨別率
## 誤差 Biometric Errors
+ Fraud Rate: 把 A 誤認成 B
+ Insult Rate: 認為 A 不是 A
+ 假設更改辨識門檻:
+ 如果標準設在 99%,則 Fraud Rate 低,Insult Rate 高
+ Ex: 可能因為感冒造成聲音辨識不出來
+ 如果標準設在 30%,則 Fraud Rate 高,Insult Rate 低
+ Ex: 可能會讓雙胞胎被誤認
+ Equal Error Rate
+ 當 Fraud Rate == Insult Rate
## 指紋 Fingerprint Biometric
+ 類型:迴圈 (Loop) 、中心 (Whorls) 跟拱橫紋 (Arches)
+ 用一些手法強化圖片特徵,例如:加高對比值
## 手掌 Hand Geometry
+ 辨識手掌形狀、指寬、指長
+ 適合認證 (Authentication) ,但不適合識別 (Identification)
+ 優點
+ 快,只要1分鐘註冊,5秒鐘識別
+ 兩隻手是對稱的
+ 缺點
+ 不適用年紀太小或太大的人
+ 高 Equal Error Rate
## 視網膜 Iris
## EER 比較 Equal Error Rate Comparison
+ 指紋 5%
+ 手 10^-3
+ 視網膜 10^-6
+ 但不容易實現
## Something You Have
+ 擁有的東西
+ Ex: 車鑰匙、信用卡
+ Ex: 密碼產生器
## 辨識與認證方法 Identification & Authentication Methods
+ 兩步驟驗證 Two-Factor Authentication
+ 手機可以是一種密碼產生器
## Single Sign-On
+ 避免頻繁且多次的登入
+ Kerberos 是其中一種
+ 使用對稱加密
+ 提供 End-To-End 的安全性
+ 傳送過程無法讀取內容
+ 使用分佈式環境,但由中央伺服器執行
+ 包含數據庫和認證過程
+ 弱點包含:
+ 單點故障 (Single Failure)
+ 效能瓶頸
+ Session Key 會在客戶端上存在一小段時間,可能被盜用
## File & Data Ownership
+ Data Owner
+ 承擔最大的責任,設定資料分級
+ Data Custodian
+ 實施安全策略,通常是 IT 部門的成員
+ Data User
+ 每天使用資料,要負責遵守安全政策
## 攻擊手法 Related Methods of Attacks
+ 暴力破解 Brute Force Attack
+ 嘗試所有可能
+ 字典攻擊 Dictionary Attack
+ 嘗試一些可能的組合
+ 詐騙攻擊 Spoofing Attack
+ 釣魚網站
## 總結 Summary
+ Access Control Designs
+ Mandatory
+ Discretionary
+ Non-Discretionary
+ Access Control Administration
+ Centralized
+ Decentralized
+ Hybrid
+ Access Control Models
+ State Machine Model
+ Bell-LaPadula Model - Confidentiality
+ Biba Model - Integrity
+ Clark-Wilson Model
+ Noninterference Model
+ Biometric
+ Fingerprint
+ Hand Geometry
+ Iris
# Chapter 3 - Authorization 授權
## Lampson's Access Control Matrix
+ User多、Object多,就很難管理
+ 分割矩陣增加管理效率
## ACLs
+ 只有存 Column 的部分,實作上會變成 Linked List
+ Ex: 紀錄 OS 可以被A rx, B rx, C rwx...
+ 屬於資料導向 (Data-Oriented) ,容易修改一個資源的權限
## Capabilities
+ 只有存 Row 的部分,Subject 為主
+ Ex: 紀錄 A 可以 rx OS, rx Program, rx Data...
+ 容易新增刪除使用者
+ 容易解決 Confused Deputy 的代表 (Delegate) 問題
## 混淆的代理者 Confused Deputy
+ Ex: Compiler 本身是 Object 也是 Subject
+ 雖然 A 不能 Write B,但 A 可以操作 Compiler Write B
+ 使用 ACLs 比較難避免這個問題
+ 使用 C-List 就比較容易預防這個問題
+ 這個動作的權限就根據 A 的存取權限來決定
## 分類與許可 Classification & Clearances
+ 分類 (Classification) → Objects
+ 可能有 Secret, Top Secret 等
+ 許可 (Clearances) → Subjects
+ 越高機密的資料,取得許可就越需要詳細的檢查
## MLS - Mutilevel Security
+ 是一種存取控制的形式
+ Model 屬於描述性的 (Descriptive) ,不是規範性的 (Prescriptive)
+ 他只有叫你分 (What to do) ,但沒有說怎麼分 (How to implement)
+ 屬於 High-Level 的描述,不是實際的演算法
## 網路分層結構 (參考)
1. 應用 Application
2. 傳輸 Transport -> (Stateful Packet Filter)
3. 網路 Network -> (Packet Filter)
4. 連結 Link
5. 實體 Physical
## 防火牆 Firewalls
+ 一種網路 (Network) 的存取控制
+ 決定什麼可以進來,什麼可以出去
+ 術語 Terminology
+ 並沒有標準的術語
+ 防火牆的種類
+ 封包過濾器 Packet Filter
+ 在網路層 (Network Layer) 運作
+ 基於雙方的 IP 和 Port 做過濾
+ 優點:快
+ 缺點:沒有狀態、無法追蹤 TCP 連接
+ 有狀態封包過濾器 Stateful Packet Filter
+ 在傳輸層 (Transport Layer) 運作
+ 可以記得 TCP 連接,也能記得 UDP 的封包
+ 優點:可以追蹤持續的連接
+ 缺點:比較慢,無法看見應用程式的內容
+ 雖然可以做到所有 Packet Filter 能做到的事情
+ 但是不可以只留 Stateful Packet Filter,會造成效能瓶頸
+ 相對的,有兩個 Filter 就能分散負擔
+ 應用代理 Application Proxy
+ 在應用層 (Application Layer) 運作
+ 優點:可以直接看到程式內容,防止病毒
+ 缺點:速度更慢
+ 個人防火牆 Personal Firewall
+ 保護個人使用者的網路
+ 可能使用以上的任何方法
## 入侵預防 Intrusion Prevention
+ 防止壞人進入
+ 認證、防火牆和防毒軟體都是一種預防
## 入侵偵測 Intrusion Detection
+ 攻擊者已經入侵到你的系統了
+ 透過觀察是否有異常的行為來偵測
+ 分析 Logs
## 入侵者 Who is likely intruder?
+ 想穿過防火牆的 Outsider
+ 邪惡的 Insider
# Chapter 4 - General Security Principles and Practices
## 常見的安全原則 Common Security Principles
+ 分散權力原則 Separation of Privileges Principle
+ 避免單一 User 擁有過大的權力
+ Ex: 兩個鑰匙才能啟動一顆飛彈
+ Ex: 公司的存摺與印章
+ 最小權力原則 Least Privilege Principle
+ 每個 User 只擁有最小的權力
+ 但 Administer 經常沒有注意到 (Inattention)
+ 把 User 放在權力太廣闊 (Broad) 的層級
+ 或者發生權力轉移 (**Privilege Creep**)
+ *當 User 的角色改變,但現有的權力卻沒有改變*
+ 深度防禦原則 Defense in Depth Principle
+ 分層式 (Layered) 的防禦
+ 可以解決效能瓶頸 (Bottleneck) 問題
+ 模糊式的安全 Security through Obscurity
+ 在早期,可以把安全建立在 User 的無知
+ 但現在資訊發達,已經不能這樣做
+ 現在的資安都要建立在演算法公開的情形下設計
+ 只有 Key 是私有的
## 安全政策 Security Policies
+ 安全政策必須要是個可以寫出來的文件 (Written Document)
+ 可能是單個文件或多個文件,以供不同用戶組使用
## 可接受行為 AUP - Acceptable Use Policy
+ 必須要能夠具體指導 (Guide) 使用者
+ 要足夠彈性 (Flexible) 以應付意外情況 (Unanticipated Situations)
+ 制定方向
+ 哪些動作可以接受?
+ 哪些動作不可以接受?
+ 哪裡可以讓使用者獲得更多資訊?
+ 如果違規,要如何處置?
## 備份 Backup Policy
+ 用來防止資料的損壞 (Corruption) 和丟失 (Loss)
+ 維持完整性和可用性 (Integrity & Availability)
+ 制定方向
+ 哪些資料需要被備份?
+ 要如何備份這些資料?
+ Ex: 雲端、USB、異地備份
+ 備份的資料會存放在哪裡?
+ 誰可以存取這些備份?
+ 這些備份資料要被保留 (Retain) 多久?
+ 不一定所有資料都採用單一的策略
+ 備份可以被重複使用的頻率?
## 保密 Confidentiality Policy
+ 用來保護 (Safeguard) 機密訊息
+ 包含所有訊息傳播手段,例如電話、印刷、口頭
+ 制定方向:
+ 什麼資料是機密的?
+ 應該如何處理這些資料?
+ 要如何發布這些機密訊息?
+ 如果機密資訊外洩要怎麼辦?
+ 員工可能會被要求簽屬保密協定 (Nondisclosure Agreements)
## 資料保存 Data Retention Policy
+ 需要三個重要的元素
+ Categories of Data 資料的種類
+ Maximum Retention Time 最長的保存時間
+ Minimum Retnetion Time 最短的保存時間
+ 制定資料保留的時長
+ 可能透過法律或者業務需求來制定
+ 例如:納稅的資料要保留七年
## 硬體政策 Physical Security
+ 保護硬體的安全
+ 硬體的危害可能包含天然災害
+ Ex: 淹水,所以把機房設置在二樓
+ 常見的硬體保護手法
+ 周遭的防禦 Perimeter Protection
+ 實體的阻隔,例如:牆壁
+ 感應器、看門狗、警衛
+ 記得 Defense in Depth 原則
+ 單一的保護機制並不足夠
+ 防電磁裝置 Electronic Emanations
+ 國家級的攻擊可能透過電磁波來分析資訊
+ 使用防電波磁裝置來保護
+ 防火 Fire Protection
+ 防止火災,例如:滅火器、灑水設備
## 無線裝置 Wireless Device Policy
+ 包含手機、平板、掌上型電腦
+ 可能會要求員工上班時不能使用或攜帶
+ 制定方向
+ 組織可以購買的裝置種類
+ 個人可以帶入工作場所的裝置
+ 可以使用該裝置進行哪些行為?
+ 例外狀況需要授權單位的許可
## 執行 Implementing Policy
+ 內部員工要去遵守這些政策
+ 確保政策持續在進行 (Ongoing)
## 發展 Developing Policy
+ 以團隊的方式 (Team Approach) 來制定
+ Policy 是慢慢發展出來的
+ 先制定目標清單
+ 然後編寫文件
+ 最後達成共識
## 建立共識 Building Consensus
+ 透過 Selling the Policy 來建立共識
+ 發展企業文化,凝聚向心力
+ 通常由高級管理階層來推廣和宣傳
## 教育 Education
+ Initial Training 一次性的訓練
+ 主要在員工剛進入公司時做的訓練
+ Refresher Training 週期性的訓練
+ 提醒員工自己的責任
+ 提供員工最新的政策更新與責任相關事宜
## 執行與維護 Enforcement & Maintenance
+ 責任定義
+ 違規舉報
+ 發生違規時的處置
+ 隨著公司和技術的變化,政策也會隨之改變
+ 政策也要包含如何修改政策的條款
## 工具 Security Administration Tools
+ Security Checklists
+ 條列式的審核
+ Security Matrices
+ 把重點放在希望達成的目標
+ Ex: 轉帳這個行為,完整性 > 機密性
## 人員安全 Personnel Security
+ 人類很脆弱QQ
+ 防止惡意的 Insider 使用的手法:
+ 背景調查 Background Investigations
+ 前科調查 (Criminal Record)
+ 打電話去上一間公司問 (Reference Evaluations)
+ 活動監測 Monitor Employee Activity
+ 包含網路活動、監視器、通話紀錄等
+ 強制休假 Mandatory Vacations
+ 符合勞基法的規定
+ 避免員工壓力過大,做出傷害公司的行為
+ 離職政策 Exit Procedures
+ 保密協議很重要
## 總結 Summary
+ Security Principles
+ Separation of Privileges Principle
+ Least Privilege Principle
+ Defense in Depth Principle
+ Security through Obscurity (X)
+ Policies
+ Acceptable Use Policy
+ Backup Policy
+ Confidentiality Policy
+ Data Retention Policy
+ Wireless Device Policy
+ Physical Security
+ About a Policy
+ Implementing Policy
+ Develope Policy
+ Building Consensus
+ Education
+ Enforcement & Maintenance
+ Administration Tools
+ Security Checklists
+ Security Matrices
+ Physical Security
+ Perimeter Protection
+ Electronic Emanations
+ Fire Protection
+ Personnel Security
+ Background Checks
+ Ongoing Monitoring
+ Mandatory Vacations
+ Exit policies
# Chapter 5 - The Business of Security
## Business Case
+ 必須了解公司的主要目的
+ 商業公司主要目的大多是為了獲利
## 永續經營計畫 Business Continuity
+ 幫助企業在面臨風險時持續往下走
+ 風險 (Risk) = 威脅 (Threat) x 弱點 (Vulnerability)
+ 使用象限圖做弱點評估
威脅
2 ↑ 1
- → 弱點
4 | 3
## 實施控制 Implementing Controls
+ 四種風險控管
+ Avoidance
+ Mitigation
+ Acceptance
+ Transference
+ BCP 團隊要決定這些策略如何執行
+ 不是所有風險都可以用技術性的方法解決
+ 可能需要教育訓練 & 外部專業人員 (External Expertise)
## 維護計畫 Maintaining The Plan
+ BCP 是一份存在的文件
+ BCP 要有彈性 (Flexible)
+ 環境的改變導致新的風險產生
+ 週期性 (Periodic) 的檢視與更新 BCP
## 災害恢復計畫 Disaster Recovery Planning
+ 目標是維持組織的運作
+ 使用替代 (Alternate) 設備恢復運作
+ 提供延伸的操作
+ 原本的設備沒有的服務
+ 當主設備可用要如何恢復
## 團隊選擇 Selecting The Team
+ 團隊平常不需運作
+ 以原來的工作為主
+ 只有 DRP 啟動時才會改變角色
+ 要涵蓋到所有部門的人員
+ 分為規劃 & 執行兩個小組
## 建立計畫 Building The Plan
+ 計畫必須要詳細說明:
+ 所有人的責任
+ 所需要的資源
+ 選擇替代設施是最主要的困難
+ 替代設施需要什麼樣的能力
+ 需要越多能力,設施就越昂貴
## 復原設施 Disaster Recover Facilities
+ Hot Site
+ 包含所有軟硬體設備和資料
+ 能立即接手運作
+ Warm Site
+ 包含大多數的軟硬體設備,沒有即時 (Live Copies) 的資料副本
+ 在數小時到數天內接手運作
+ Cold Site
+ 包含基本的電力、電信 (Telecommunications) 和支援系統
+ 沒有軟硬體設備和資料
+ 能在數周到數個月內接手運作
## Creative Disaster Recovery
+ 非傳統的 DRP 可能適用於特定的組織
+ 地理上分散的組織可能會考慮移動設施
+ 拖車、移動房屋、空運單位
+ 互助協議 Mutual Assistance Agreements
+ 與其他組織分攤成本
+ 要小心機密外洩
## 訓練 Training
+ Initial Training
+ 新人到來第一次的訓練
+ Refresher Training
+ 定期培訓
+ 要為不同的人設計不同的訓練
## 測試 Testing
+ Checklist Review
+ 最簡單、最不費力 (Labor-Intensive) 的測試
+ 每個人都有自己的 Checklist
+ 測試期間每個人都去檢查各自的清單
+ 無論單人或團體都可以完成
+ Tabletop Exercise
+ 測試者 (Test Facilitator) 口頭描述特定的災難場景
+ DRP 成員口頭回答他們對該情況 (Scenario) 的回應
+ Soft Test (Parallel Test)
+ DRP 成員將面臨災難狀況,並以啟動恢復設施進行回應
+ 恢復設施與主要設施同時運作,並不需要全面運作
+ 比較全面也比較昂貴的測試
+ Hard Test (Full-Interruption Test)
+ 只有在很少數的情況下才會使用
+ 破壞性更大更昂貴
+ 涉及將設施運作完全轉移到替代設施,再從替代設施返回
## 執行計畫 Implementing The Plan
+ 災害發生時,情況必定混亂 (Chaotic)
+ 誰有權限決定發動 DRP Plan
+ 可能不只一個人
+ 第一時間要向誰回報
## 維護計畫 Maintaining The Plan
+ 成員、程序和工具會隨時間改變
+ 團隊要嚴格執行清單避免恐慌 (Panic) 和混亂
+ 清單要隨時保持最新
+ DRP 要持續進行測試與評估
## 資料分級 Data Classification
+ 提供敏感訊息的分層 (Stratify)
+ 針對每一層級別,提供適合的保障系統
+ 訪問保密數據的先決條件 (Prerequisites)
+ 安全許可 Security Clearance
+ Need To Know
## 安全許可 Security Clearance
+ 根據組織和級別不同,需要不一樣的檢查
+ 通常和個人當前的工作和基本活動有關聯
## Need To Know
+ 安全許可負責廣泛種類上的訪問
+ Need To Know 則限制實際訊息
+ 安全許可由中央執行
+ Need To Know 通常由保管 (Custodians) 人員執行
## 分級系統 Classification Systems
+ 美國政府分級 U.S. Government Classifications
+ Top Secret
+ Secret
+ Confidential
+ Sensitive but Unclassified (For Official Use Only)
+ Unclassified
+ 一般工業分級
+ Trade Secret
+ 通常不受專利或版權保護的機密
+ Company Confidential/Proprietary (專有)
+ Unclassified
## 安全倫理 Security Ethics
+ 專業安全人員通常可以訪問高度機密的資訊
+ 必須表現出高度的道德標準
+ ISC^2^ 是安全人員的專業組織
+ International Information Systems Security Certification Consortium
+ 此組織制訂了道德標準
## 監測 Monitoring
+ 資安專家通常被委託來監測組織的內外部活動
+ 處理監測過程中獲得的訊息需要高度的道德操守、謹慎和專業精神
+ 誰來監視監測者?
+ 確保監測者有正確的處理訊息
## 電腦安全法律 Computer Security Law
+ ECPA - Electronic Communications Privacy Act
+ USA Patriot Act
+ COPPA - Children’s Online Privacy Protection Act
+ HIPPA - Health Insurance Portability and Accountability Act
+ Gramm-Leach-Bliley Act
+ European Union Directive on Data Privacy
# Chapter 6 - Cryptographic Technologies
## Crypto
+ Cryptology - 密碼學,指的是研究密碼的這門學問
+ Cryptography - 加密,只包含加密的演算法
+ Cryptanalysis - 解密,只包含解密的演算法
+ Crypto - 以上全部
## Speak
+ A cipher or cryptosystem is used to encrypt the plaintext.
+ Cipher 或 Cryptosystem 是用來加密 (Encrypt) 文本 (Plaintext) 的。
+ The result of encryption is ciphertext.
+ 加密出來的結果叫做密文 (Ciphertext) 。
+ We decrypt ciphertext to recover plaintext.
+ 將密文解密 (Decrypt) 來復原文本。
+ A symmetric key cryptosystem uses the same key to encrypt as to decrypt.
+ 對稱金鑰系統 (Symmetric Key Cryptosystem) 使用一把相同的金鑰 (Key) 來加密或解密
+ 密文要寄給 10 個人就需要 10 把 Keys。
+ A public key cryptosystem uses a public key to encrypt and a private key to decrypt
+ 公開金鑰系統 (Public Key Cryptosystem) 也可稱為非對稱加密,只需要一把公鑰來加密,和一把私鑰來解密。
+ 無論寄給多少人,都只需要保管兩把 Keys。
## Kerchoffs Principle
+ 加密演算法是完全公開的。
+ 攻擊者非常熟悉這個系統。
+ 只有 Keys 是保密的。
## 傳統加密法
+ Simple Substitution
+ 單純的代換法,有一個代換表。
+ Caesar's Cipher
+ 透過位移法加密,例如 A 位移 3 變成 D。
+ 以上兩種方法可以用英文字母頻率破解。
## Cryptanalysis
+ 如果最好的破解方法是嘗試所有可能,那就是個安全 (Secure) 的加密系統。
+ 如果有任何破解捷徑,那這個加密系統就不安全 (Insecure) 。
+ 所以一個 Insecure 的系統可能比 Secure 更難破解。
## Double Transposition
+ 用二維陣列來打亂原文順序。
![原文](https://i.imgur.com/LuXi6Ju.png)→![密文](https://i.imgur.com/F3FqErn.png)
+ Key 表示為 (3, 5, 1, 4, 2) & (1, 3, 2)
## One-Time Pad
+ 主要使用 XOR 做運算。
+ Encryption
+ Plaintext XOR Key = Ciphertext
![Example](https://i.imgur.com/ufMK7hI.png)
+ Decryption
+ Ciphertext XOR Key = Plaintext
![Example](https://i.imgur.com/RF8v1FJ.png)
## 目的
+ 機密性 Confidentiality
+ 訊息的內容經過加密後要被隱藏 (Concealed) 。
+ 完整性 Integrity
+ 確認接收到的就是寄出去的。
+ 不可否認性 Nonrepudiation
+ 寄件者不能表示他沒有發送訊息。
+ 認證 Authentication
## 加密演算法 Cryptographic Algorithms
+ 分為對稱和非對稱兩種。
+ 文本 > 加密 > 密文 > 解密 > 文本。
+ 早期會使用含糊的方式增加安全性,但現在系統都比較嚴格而且公開。
## 對稱演算法 Symmetric Algorithms
+ 也稱之為 Secret Key Cryptosystems。
+ 雙方都要知道 Key。
+ Key 也稱為 Shared Secret Key 或 Secret Key。
+ Key Length,代表 Key 的 Bits 數,是最重要的部分。
+ 越長的 Key 保護程度也越高。
+ 最常見的對抗手法是暴力破解。
+ 長度為 n 的 Key 就有 2^n 種組合。
## DES - Data Encryption Standard
+ 美國的一種加密標準。
+ 56 Bits 的 Key Length。
+ 有四種 Mode 的操作,因為加密訊息過長,需要分段處理與打亂。
+ 但是現在 56 Bits 已經不夠長,所以現在使用 Triple DES (3DES)。
+ 把 DES 重複做三次。
## DES 規格
+ DES 是一種費斯妥密碼 (Feistel Cipher) 。
+ 64 Bits Block
+ 固定加密 64 Bits的明文。
+ 56 Bits Key Length
+ 16 回合
+ 每個回合產生 48 Bits 的 Subkey
+ 安全性主要依靠 S-Boxes
+ Map 6 Bits to 4 Bits
![S-Boxes](https://i.imgur.com/npZDoXS.png)
+ 給定6位元輸入,將首尾兩個位元和中間四個位元作為條件進行查表,最終獲得4位元輸出。
+ Ex: 以 011011 做為輸入,將首尾兩個位元 01 和中間的位元 1101 進行查表,輸出 1001。
## DES 變化
+ 3DES 有比較強的保護,可能使用 2 或 3 把 Keys。
+ 3DES-EEE (Encrypt-Encrypt-Encrypt) 使用三把 Keys。
+ 3DES-EDE (Encrypt-Decrypt-Encrypt) 使用 1 ~ 3 把 Keys。
## AES - Advanced Encryption Standard
+ 是國家標準研究院 (National Institute of Standards, NIST) 贊助的比賽中獲獎的演算法。
+ AES 允許使用者選擇 3 種不同長度的 Keys
+ 128, 192 或 256 Bits。
+ 越長越安全。
+ Block Size: 128, 192 or 256 Bits
+ Key Length: 128, 192 or 256 Bits
+ 10 ~ 14 回合,每個回合使用四個 Functions
+ ByteSub (Nonlinear Layer)
+ 就是 AES 的 S-Box。
+ 用前四個 Bits 和後四個 Bits 查表。
![ByteSub](https://i.imgur.com/Cyi9rFX.png)
+ ShiftRow (Linear Mixing Layer)
+ 向左 Shift
+ "mnop" Shift 1 => "nopm"
+ MixColumn (Nonlinear Layer)
+ 對每個Column做非線性、可逆的操作
+ AddRoundKey (Key Addition Layer)
+ 運算:Subkey XOR Block
+ Subkey 是用 Key Schedule 演算法產生的。
+ 解密部分 Decrypt
+ AddRoundKey 只要再做一次 XOR 就好。
+ MixColumn 是 Invertible 的查表。
+ ShiftRow 照原方向轉回去就好。
+ ByteSub 也是可逆的查表。
## 非對稱加密演算法 Asymmetric Algorithms
+ 也可稱為 Public Key Cryptosystems。
+ 數學運算出兩把 Keys,公鑰和私鑰。
+ 用公鑰加密的訊息只能以私鑰解密。
+ 公鑰可以公開讓大家都可以加密自己的訊息。
+ RSA, Rivest Shamir Adelman Algorithm
+ 最廣為人知的非對稱加密演算法。
+ 依靠大質數很難被因數分解。
+ PGP, Pretty Good Privacy
+ 跨平台的方案。
+ 包含了許多加密演算法在內,也有 RSA
+ 支援分散式公鑰管理的架構。
## 信任的網頁 The Web of Trust
+ Keys 的交換是個困難的問題。
+ 在 PGP 之前,必須在離線狀態下交換 Keys。
+ PGP 加上 Web of Trust 讓使用者可以判斷公鑰的真實性。
+ 四個信任等級:
+ 隱性信任 Implicit Trust
+ 充分信任 Full Trust
+ 邊際信任 Marginal Trust
+ 不可信任 Untrusted
## 對稱與非對稱式加密的比較
+ 對稱式加密不好擴展。
+ 非對稱加密比對稱加密慢。
+ 對稱式加密在通訊電路上表現傑出,例如虛擬私人網路。
+ 非對稱式加密在用戶數量多的時候比較實用。
## 數位簽章 Digital Signatures
+ 替加密系統增加完整性和不可否認性。
+ 不可否認性只能在非對稱式加密上執行。
+ 數位簽章的創建:
+ 使用雜湊函式來產生一個獨特的訊息摘要。
+ 經常使用 SHA 跟 MD 演算法。
+ 使用私鑰來加密訊息摘要。
+ 數位簽章的驗證:
+ 收件人解密訊息獲得文本與數位簽章。
+ 收件人使用相同的雜湊函式來創造新的訊息摘要。
+ 收件人使用寄件人的公鑰解密數位簽章獲得寄件人的訊息摘要。
+ 收件人比對兩個訊息摘要,如果相同就驗證成功。
+ 如果不同,可能是惡意的訊息,也可能是傳送錯誤。
## 數位憑證 Digital
+ 數位憑證是第三方認證的擔保。
+ 第三方負責驗證發件人的身份。
+ 憑證頒發機構 Certification Authorities
+ 常見的有 VeriSign 和 Thawte。
## 總結
+ 加密系統是為了機密性、完整性、不可否認性和認證。
+ 一般的密碼系統步驟為:
+ 首先要有文本訊息 (Plaintext) 。
+ 使用加密金鑰 (Keys) 和演算法產生密文 (Ciphertext) 。
+ 使用相同或相關的金鑰解密密文。
+ 獲得原本的文本訊息。
+ 加密演算法分為兩種:
+ 對稱式加密演算法 Symmetric Algorithm
+ 雙方使用一把密鑰。
+ 非對稱式加密演算法 Asymmetric Algorithm
+ 使用一把公鑰和一把金鑰。
+ 數位簽章式為了增加完整性和不可否認性。
+ 數位簽章使用雜湊函式產生訊息摘要。
+ 數位憑證是第三方認證出來的。
+ 數位憑證是用戶公鑰的副本。
# Chapter 7 - Public Key Cryptography
## Overview
+ 寄件人使用收件人的公鑰加密訊息。
+ 收件人使用他自己的私鑰解密訊息。
+ 基於 Trap Door, One Way Function
+ 單向的計算很容易,但從其他方向很難推算回來。
+ Trap Door 用來創建金鑰。
+ 舉例:
+ 給定一個 p 和 q 可以很輕鬆得到 N = p * q。
+ 但給定一個 N 卻很難找到 p 跟 q 是誰。
+ 使用 Bob 的公鑰加密的訊息
+ 只有 Bob 的私鑰可以還原
+ 數位簽章
+ 使用私鑰簽名加密過程
+ 任何人都可以使用公鑰解碼來驗證簽章
+ 但只有私鑰的持有者可以簽名
## 背包問題
+ 就是子集總和的問題
+ 背包問題是 NP-Complete 問題
+ 一般的背包問題很難解決
+ 可以使用 Superincreasing Knapsack 方法
+ 從最大的開始往下加
+ Ex: Weights (2, 3, 7, 14, 30, 57, 120, 251)
+ Target: 186
+ Step 1. Get 120, Left 66
+ Step 2. Get 57, Left 9
+ Step 3. Get 7, Left 2
+ Step 4, Get 2, Left 0, Done.
## 背包密碼系統
+ 產生 Superincreasing Knapsack
+ 把 SIK 轉換成 General Knapsack
+ 公鑰:GK
+ 私鑰:SIK + Conversion Factors
+ Easy to encrypt with GK
+ Easy to decrypt with SIK
## 背包密碼系統範例
+ SIK: (2, 3, 7, 14, 30, 57, 120, 251)
+ 選擇 m = 41 和 n = 491
+ n 是一個大於總和的數字
+ 產生 General Knapsack
+ 2 * 41 mod 491 = 82
+ 3 * 41 mod 491 = 123
+ 7 * 41 mod 491 = 287
+ 14 * 41 mod 491 = 83
+ 30 * 41 mod 491 = 248
+ 57 * 41 mod 491 = 373
+ 120 * 41 mod 491 = 10
+ 251 * 41 mod 491 = 471
+ GK: (82, 123, 287, 83, 248, 373, 10, 471)
+ 私鑰
+ (2, 3, 7, 14, 30, 57, 120, 251)
+ m^-1^ mod n = 41^-1^ mod 491 = 12
+ 公鑰
+ (82, 123, 287, 83, 248, 373, 10, 471)
+ n = 491
+ 加密訊息 10010110
+ 第 1, 4, 6, 7 個 Bit 為 1
+ 82 + 83 + 373 + 10 = 548
+ 解密
+ 548 * 12 = 193 mod 491
+ S = 193, 求 SIK
+ Get 120, Left 73
+ Get 57, Left 16
+ Get 14, Left 2
+ Get 2, Left 0, Done.
+ (2, 14, 5, 7) 為 SIK 的第 1, 4, 6, 7 個元素
+ 獲得原文 10010110
## 背包密碼系統的弱點
+ Trapdoor
+ SIK 轉換至 GK 使用 Modular Arithmetic
+ One-Way
+ GK 很容易加密原文,但很難解開密文
+ SIK 很容易解開密文
+ 但 1983 被 Apple II 電腦使用 Lattice Reduction 破解
## RSA
+ p 跟 q 是兩個很大的質數
+ N = p * q 為 Modulus
+ 選擇一個 e 跟 (p-1)(q-1) 互質
+ e * d = 1 mod (p-1) (q-1)
+ 公鑰是 (N, e)
+ 私鑰是 d
+ 加密訊息 M
+ C = M^e^ mod N
+ 解密訊息 C
+ M = C^d^ mod N
+ e 跟 N 是公開的
+ 如果攻擊者可以分解 N,他就可以用 e 輕鬆找到 ed = 1 mod (p-1) (q-1)
+ 將 Modulus 分解就可以破解 RSA
## RSA Work
+ Euler's Theorem
+ 歐拉定理也稱為費馬-歐拉定理
+ x 若是與 n 互質,則 x^φ (n) ^ = 1 mod n
+ 歐拉函式φ
+ φ(n) 是小於或等於 n 的正整數中與 n 互質的數的數量。
+ φ(8) = 4,因為 1, 3, 5, 7 與 8 互質。
## Mod
+ a = b mod n
+ a - b 是 n 的倍數
+ 38 = 14 mod 12
+ 38 - 12 - 12 = 14
## Simple RSA Example
+ 選擇大質數 p = 11, q = 3
+ N = pq = 33, (p-1)(q-1) = 20
+ e = 3 跟 20 互質
+ 找到一個 d 符合 ed = 1 mod 20
+ 我們選擇 d = 7
+ 公鑰:(N, e) = (33, 3)
+ 私鑰:d = 7
+ 假設訊息 M = 8
+ 密文 C = M^e^ mod N
+ C = 8^3^ mod 33 = 17
+ 解密 M = C^d^ mod N
+ M = 17^7^ mod 33 = 8
## Diffie-Hellman
+ 一種交換金鑰的演算法。
+ 用來建立一個對稱式金鑰。
+ 不是用來加密或簽名的。
+ 安全性依賴在離散問題上。
+ 給定 g, p, g^k^ mod p, 找到 k
+ 讓 p 是質數,g 是產生器,這兩個數是公開的
+ 在 x 屬於 {1, 2, ..., p-1} 存在一個 n 使得 x = g^n^ mod p
+ Alice 選擇 Secret Value a
+ Bob 選擇 Secret Value b
+ Alice 送出 g^a^ mod p 給 Bob
+ Bob 送出 g^b^ mod p 給 Alice
+ 兩人皆計算分享的 g^ab^ mod p
+ g^ab^ mod p 可以做為對稱式金鑰來用
+ 假設 Trudy 可以看見 g^a^ mod p 和 g^b^ mod p
+ 註記:g^a^ * g^b^ mod p = g^ (a+b) ^ mod p ≠ g^ab^ mod p
+ 如果 Trudy 知道 a 或 b,則系統被破解
+ 如果 Trudy 可以解開離散問題,則他可以找到 a 或 b
+ MiM, Man-In-The-Middle Attack
+ (Alice, a) > g^a^ mod p > (Trudy, t) > g^t^ mod p > (Bob, b)
+ (Alice, a) < g^t^ mod p < (Trudy, t) < g^b^ mod p < (Bob, b)
+ Trudy 分享 g^at^ mod p 給 Alice
+ Trudy 分享 g^bt^ mod p 給 Bob
+ 這個過程中,Alice 跟 Bob 都不知道 Trudy 的存在
+ 如何預防?
+ 使用對稱金鑰加密 DH Exchange
+ 使用公開金鑰加密 DH Exchange
+ 使用私鑰簽名 DH Value
## ECC, Elliptic Curve Crypto
+ EC 不是一個密碼系統,是一種公鑰的數學方式。
+ 可能會更有效率
+ 一樣的安全性,需要比較少的 Bits
+ 但是操作更加複雜
+ 圖形 E 代表方程式 y^2^ = x^3^ + ax + b
+ 同時也包含在無限大的點
+ ![Elliptic Curve] (https://i.imgur.com/YiAg5ms.png)
+ 如果 P1 跟 P2 都在 E 上,則定義 P3 = P1 + P2
## Points on Elliptic Curve
+ 假設 y^2^ = x^3^ + 2x + 3 (mod 5)
+ x = 0 => y^2^ = 3 => No Solution (mod 5)
+ x = 1 => y^2^ = 6 => y = 1, 4 (mod 5)
+ x = 2 => y^2^ = 15 => y = 0 (mod 5)
+ x = 3 => y^2^ = 36 => y = 1, 4 (mod 5)
+ x = 4 => y^2^ = 75 => y = 0 (mod 5)
+ 則 Elliptic Curve 上的點為
+ (1, 1) (1, 4)
+ (2, 0)
+ (3, 1) (3, 4)
+ (4, 0)
+ 在無限大的點為無限大
## Elliptic Curve Math
+ y^2^ = x^3^ + ax + b (mod p)
+ P~1~ = (x~1~, y~1~)
+ P~2~ = (x~2~, y~2~)
+ P~1~ + P~2~ = P~3~ = (x~3~, p~3~)
+ x~3~ = m^2^ - x~1~ - x~2~ (mod p)
+ y~3~ = m(x~1~ - x~3~) - y~1~ (mod p)
+ m = (y~2~ - y~1~) * (x~2~ - x~1~)^-1^ mod p, if P~1~ ≠ P~2~
+ m = (3x~1~^2^ + a) * (2y~1~)^-1^ mod p, if P~1~ = P~2~
+ 特殊情況:如果 m 是無限大,P~3~ = ∞,而且 ∞ + P = P for all P
## Elliptic Curve Addition
+ 假設 y^2^ = x^3^ + 2x + 3 (mod 5)
+ 在 Curve 上的點為 (1, 1) (1, 4) (2, 0) (3, 1) (3, 4) (4, 0) 和 ∞
+ (1, 4) + (3, 1) = P~3~ = (x~3~, y~3~) 是多少?
+ m = (1-4) * (3-1)^-1^ = -3 * 2^-1^
+ m = 2 * 3 = 6 = 1 (mod 5)
+ x~3~ = 1 - 1 - 3 = 2 (mod 5)
+ y~3~ = 1 * (1-2) - 4 = 0 (mod 5)
+ 所以 (1, 4) + (3, 1) = (2, 0)
## ECC Diffie-Hellman
+ 公開:Elliptic Curve 和 Curve 上的點 (x, y)
+ 私有:Alice 的 A 和 Bob 的 B
+ Alice > A(x, y) > Bob
+ Alice < B(x, y) < Bob
+ Alice 計算 A (B (x, y) )
+ Bob 計算 B (A (x, y) )
+ 這些都是一樣的,因為 AB = BA
## ECC DH 範例
+ Public: y^2^ = x^3^ + 7x + b (mod 37)
+ Alice's Secret: A = 4
+ Bob's Secret: B = 7
+ Alice 傳給 Bob: 4(2, 5) = (7, 32)
+ Bob 傳給 Alice: 7(2, 5) = (18, 35)
+ Alice 計算 4(18, 35) = (22, 1)
+ Bob 計算 7(7, 32) = (22, 1)
## 公鑰系統的使用
+ 資料的傳輸必須經過不安全的頻道。
+ 保護資料與不安全的媒體。
+ 數位簽章提供完整性與不可否認性。
## Non-Non-Repudiation
+ Alice 從 Bob 那裡點了 100 張股票
+ Alice 使用對稱金鑰計算 MAC
+ 股票下跌,Alice 卻宣稱她沒有買股票
+ Bob 有辦法證明 Alice 下過訂單嗎?
+ 沒辦法,即便 Bob 知道金鑰,他也有可能忘記訊息
+ 所以 Bob 知道 Alice 有下過訂單,可是他無法證明
## Non-Repudiation
+ Alice 一樣買了 100 張股票
+ Alice 在訂單上使用私鑰簽名
+ 股價下跌,Alice 又宣稱他沒有下訂單
+ 這次 Bob 可以證明 Alice 有下單
+ 因為只有擁有 Alice 私鑰的人可以下單
+ 但這是建立在 Alice 的私鑰沒有被竊取的情況下
## 簽名再加密 VS 加密再簽名
+ 標記
+ 以 Alice 的私鑰 Sign 訊息 M
+ [M]<sub>Alice</sub>
+ 以 Alice 的公鑰 Encrypt 訊息 M
+ {M}<sub>Alice</sub>
+ {[M]<sub>Alice</sub>} = M
+ [{M}<sub>Alice</sub>] = M
+ 下面的圖解 Bob 各種誤會,我也看不懂
## 公鑰的基礎 Public Key Infrastructure
+ ### 公鑰憑證 Public Key Certificate
+ 包含使用者的名稱與使用者的金鑰
+ 憑證由發行人簽章
+ 使用簽章者的公鑰驗證憑證上的簽章
+ ### 憑證頒發機構 Certificate Authority
+ CA 是第三方信任機構 (TTP, Trusted Third Party)
+ 專門發行與簽章憑證的
+ 驗證簽章 Verifying Signature
+ 用來驗證私鑰所有者的身份
+ 不會用來驗證憑證的來源
+ 憑證是公開的
+ 如果 CA 出錯將會造成很大的問題
+ 常見的憑證格式是 X.509
+ ### PKI, Public Key Infrastructure
+ PKI 包含了所有的部分:
+ 金鑰的產生與管理
+ 憑證頒發機構
+ 憑證的終止...等
+ PKI 並沒有一般的標準
+ 我們考慮使用一些信任模型 (Trust Models)
+ 壟斷模型 Monopoly Model
+ 一個大家都信任的組織來擔任 CA
+ 主要是 VeriSign 在使用
+ 但若 CA 受到威脅,將會出問題
+ 如果你不信任 CA 也是個大問題
+ 寡頭政治模型 Oligarchy Model
+ 有多個可信任的 CA
+ 現在瀏覽器使用這個方法
+ 可能有超過 80 個憑證,只為了驗證簽章
+ 使用者可以決定哪個 CA 可信任
+ 無政府模型 Anarchy Model
+ 所有人都是 CA
+ 使用者必須決定哪個 CAs 可信任
+ PGP 使用這個方法
+ 還有很多種其他的模型
## 真實世界的機密性
+ 對稱金鑰 VS 公開金鑰
+ 對稱金鑰
+ 速度快
+ 不需要 PKI
+ 公開金鑰
+ 簽章 - 不可否認性
+ 沒有共享的秘密
+ 對稱金鑰的標記
+ 使用對稱金鑰 K 加密文本 P
+ C = E (P, K)
+ 使用對稱金鑰 K 解密密文 C
+ P = D (C, K)
+ 混合式的密碼系統
+ 使用公鑰密碼系統建立一把 Key
+ 使用對稱式金鑰系統來加密 Data
+ 考慮以下狀況:
+ Alice ==== {K}<sub>Bob</sub> ===> Bob
+ Alice <=== E(Bob's Data, K) ==== Bob
+ Alice ==== E(Alice's Data, K) ===> Bob
+ Bob 有辦法確定他在跟 Alice 說話嗎?