--- 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 說話嗎?