--- title: 1092資安筆記 --- ###### tags: `1092筆記` # 資訊安全 ## Chap 1 - 何謂電腦安全(Computer Security)? - 不同身分有不同答案 - **『電腦執行運作的如你所預期的,就是安全』** — Garfinkel,Spafford - CIA 三角(Triad): **使用者角度的目標** - **Confidentiality(機密性)** - 有被授權才可以讀機密資訊 - **Integrity(完整性)** - 有被授權才可以改資料 - **Availability(可用性)** - 有被授權才可以存取資料 - DAD 三角(Triad): **攻擊者角度的目標** - **Disclosure(洩漏)** - 未被授權但讀的到機密資訊 - **Alteration(竄改)** - 未被授權但可以改資料 - **Denial(阻斷)** - 被授權的使用者無法存取到資料 - 對應關係 - Disclosure <-> Confidentiality - Alteration <-> Integrity - Denial <-> Availability - 網路發展使得資訊安全不只關注在個人獨立系統,須注意: - 維護TCP/IP協定 - 防火牆 - 入侵偵測系統(Intrusion detection systems) - 對於安全的威脅: - 黑客(Hacker) - 指嘗試侵入資訊安全系統的人,不論意圖為何 - 惡意程式物件(Malicious code object) - 病毒(Virus)、蠕蟲(Worm)、木馬程式(Trojan Horse)等等 - **病毒(Virus)**: 無法獨立生存,寄生在其他檔案伺機攻擊 - **蠕蟲(Worm)**: 大量自行複製 - **木馬程式(Trojan Horse)**: 誘騙使用者,創造出後門 - **backdoor、zombie...** - 惡意內部人員(Malicious insider) - 組織內試圖做出越權行為者 - 安全專家(Security professionals)以及系統管理員(System administrators)為**最潛在的危險** - 風險分析 - 風險分析(Risk Analysis)包括: - **決定有價值的資產** - **找出這些資產可能面臨的風險** - **判斷每個風險發生的可能性** - **採取措施來管理風險** - 決定資產價值 - 決定價值是權衡成本與利益的基礎 - 資產價值的評估方法: - **Replacement cost valuation**: 用替代品價值作為價值 - **Original cost valuation**: 用當初購買價格作為價值 - **Depreciated valuation**: 用貶值多少作為價值 - **Qualitative valuation**: 只用優先度作為價值而不是用金錢考量 - 識別與評估風險 - 兩格主要的風險分類技術: - **Qualitative 質** - **Quantitative 量** - **弱點(Vulnerability)**: - 系統**內部**弱點可能被利用,例如:沒有安裝防毒軟體 - **威脅(Threats)**: - 許多**外部**情況造成的弱點被利用,例如:病毒 - **風險(Risks)**: - 當**威脅與對應的弱點存在**就會產生潛在的風險 - 質的(Qualitative)風險評估: - 分析**無形的(intangible)價值比金錢價值更重要** - 風險的**優先程度**可以幫助分配安全資源 - **相對容易**(跟值比起來?)去分析 - 量的(Quantitative)風險評估: - 以資產價值、暴露風險發生率以及資產的損耗率作為評估依據 - 以可能損失的金額決定是否值得實施安全措施 - 風險管理 - **風險避免(Risk avoidance)**: - 當獲利小於風險,那就避免他 - 例如:騎車可能出車禍,那就別騎車 - **風險減弱(Risk mitigation)**: - 當風險大於獲利,可以接受這些損失,採取方法降低風險 - 例如:騎車會出車禍,那騎慢一點 - **風險轉移(Risk transference)**: - 將風險轉移到其他人身上 - 例如:買保險 - **接受風險(Risk acceptance)**: - 當風險造成傷害極低,那就不做避免 - 通常會結合多項技巧來管理風險 - 安全性的權衡 - 利益與風險的權衡最最主要的依據就是安全性 - 除了安全之外還需要權衡使用者便利性(密碼的難易度)、企業目標與花費 - 使用者便利性(User convenience)很重要 - 政策與教育方面 - 為基石(conner stones) - 教育方面 - 實施適當政策 - 教育使用者那些政策 - 安全政策 - 具有**彈性**不用頻繁修改 - 具有**全面性**以應付各種狀況 - 具**可讀性**與**可理解性** - **總結不想寫** ## Chap 2 - 基礎存取控制 - 存取控制支持著**機密性(Confidentiality)** 與**完整性(Integrity)** - 目標: **讓唯有被授權(Authorized)的主體(Subjects)去存取他們允許使用的物件(Objects)** - 存取控制(Access Control): - 有兩個部分要用到存取控制: - **Authentication**(認證): 可以過去嗎? - **Authorization**(授權): 可以做那件事情嗎? - **存取控制通常被視為授權的代名詞!!** - **Subject**(主體): - 想要存取資源的個體(Entity)(電腦或人類都是) - **Object**(對象): - 主體想要存取的資源 - Least privilege philosophy(最低權限原則): - 給予主體足夠資源的權限就好了,不要給太多 - 控制(Controls): - 允許或拒絕對象被存取的機制(Mechanisms) - 任何阻礙(Barriers)對於為授權的存取都是 - 控制的種類: - **Administrative**(管理層面): - 施加規則、政策來控制 - 例如:雇用策略,無不良紀錄才雇用 - **Logical/Technical**(邏輯與技術層面): - 對對象(Object)存取加以限制 - 例如:使用者識別(Identification)與認證(Authentication)、加密(Encryption) - 識別(Identification)是多對一的,認證(Authentication)是一對一的 - **Physical**(實體層面): - 對硬體施加實體限制 - 例如:圍籬、圍牆、門上鎖 - 存取控制技術 - 選擇符合組織需求的技術 - 須考量:需要多少安全程度、使用者與環境的適應程度 - 存取控制設計(Access control designs): - 存取控制設計制定規則給使用者存取檔案或裝置 - 常見的存取控制設計: - **Mandatory access control**(強制型): - 給予每個主體與對象安全標籤(Security Label) - 標籤決定是否可以存取 - 一種常見的應用是:**Rule-based access control** - 需要讓主體知道哪種等級的安全標籤 - 一種強制的存取方式 - 常見的軍事資料分級也是強制型 - 例如:Unclassified, Sensitive but Unclassified, Confidential, Secret, Top Secret - 常見的商業資料分級也是 - 例如:Public, Sensitive, Private, Confidential - **Discretionary access control**(斟酌型): - 物件的存取許可是依據物件所有人決定的 - 商務作業系統上最常見的設計 - 通常比強制型不安全 - 通常比強制型間單去實作以及更多的彈性 - 包括 **Identity-based access control、Access control lists (ACLs)** - **Non-discretionary access control**(非斟酌型): - 依據主體的角色或任務來授權或拒絕對對象的存取 - 也被稱作:**Role-based** 或 **Task-based access control** - 在角色頻繁轉換(High turnover)的環境下運作的很適合,因為規則不是直接綁在主體上 - 一種變化型叫做**Lattice-based access control** - 主體與對象之間有多個規則與存取條件 - 存取控制的管理(Access control administration): - 分為**centralized, decentralized, 以及hybrid** - centralized(集中式): - 所有請求都須經過一個中央授權 - 管理上相對簡單 - 具有單點脆弱性,有時會有**Bottlenecks(瓶頸效應)** - decentralized(分散式): - 物件的存取控制不是集中在中央的 - 管理上相對複雜 - 相對穩定,無單點脆弱問題 - hybrid(混合式) - 有責任(Accountability): - 管理員用系統審核(Auditing)來監控: - Who is using the system - What users are doing - 紀錄(Logs)可以追朔事件與使用者 - 審核對於效能有負面影響 - 需限制紀錄(Logs)的資料量 - **Clipping level**: 設定紀錄(Logs)啟動的門檻 - - 存取控制模型(Access control model): - State machine model - 定義轉態與轉換 - **Bell-LaPadula model** - 重視機密性(Confidentiality) - **No read up, no write down!!** - 不可讀機密性高文件 - 不可把高機密內容寫到低機密文件 - **Bida model** - 強調完整性(Integrity) - **No read down, no write up!!** - 將軍不讀小兵策略 - 小兵不寫將軍策略 - **Clark-Wilson model** - **不是State machine 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?: Authencation(認證) - 如何在機器上認證一個人類? - something you know: 密碼 - something you have: Smart card - something you are: 指紋 - 信用卡則包含了實體 & 簽名,其中簽名屬於生物特徵 - 為何選擇密碼: - 代價、花費(Cost): 免費 - 方便性(Convenience): 向SA申請重設密碼比申請新的Smartcard容易 - 金鑰(Keys) vs. 密碼(Passwords): - **Crypto keys**: - 假設是64bits - 就有$2^64$個Keys - 隨機選擇Keys - 攻擊者必須嘗試$2^63$次 - **Passwords**: - 假設8個字元,共有256種不同字元 - 那就有$256^8 = {2^8}^8 = 2^64$種Passwords - 但,**使用者不會隨機選擇密碼!** - 攻擊者必須嘗試**遠小於$2^63$次**(字典攻擊Dictionary attack) - 對密碼的攻擊: - 通常攻擊途徑: **Outsider -> Normal user -> Administrator** - 攻破系統首先可能只需要一個弱弱的密碼!? - 密碼的重新嘗試: - 可能有等待5秒鐘、等待5分鐘或是失敗3次就鎖定,得向SA提出重設密碼 - 越安全的機制,使用者就越不方便 - 密碼檔案(Password File): - 把密碼存在一個檔案裡面不太好,但需要去驗證密碼是否正確? - Cryptographic 方法: **對密碼做Hash(雜湊運算)** - 儲存 y = hash(password) - 如果攻擊者有密碼檔案,他也沒辦法有密碼 - 攻擊者只能直接去猜測password - 此時,用字典攻擊(Dictionary attack)的攻擊者就先將所有字典裡的x算成hash(x) - 使用salt - y = hash(password, salt) - 將hash(password), salt儲存在password file - **注意:Salt是公開的** - 驗證密碼一樣容易 - 但攻擊者不能一次全猜對,增加麻煩 - 數學部分:看PPT - 其他密碼議題 - 太多密碼要使用,所以密碼被重複使用問題 - 預設密碼更改失敗 - 社交工程(Social ENgineering) - 釣魚網站、社交詐騙 - Error Logs可能包含接近的密碼 - 還有**Bugs、keystroke logging(鍵盤側錄)、spyware等等** - **結論:密碼真低弱** - Biometrics - **Something You Are** - 生物辨識被認為是令人嚮往的密碼替代品 - 生物辨識需要便宜與可靠 - 理想的生物辨識 - **Universal**: 每個人都適用 - **Distinguishable**: 可以區分出每個人 - **Permanent**: 特徵不會改變 - **Collectable**: 方便蒐集特徵 - 安全、簡單等等特點 - Biometric modes - **Identification 鑑定** - 一對多的比對 - 例如:FBI的指紋資料庫 - **Authentication 識別** - 一對一的確認 - **Identification(一對多)比較難** - Enrollment & Recongnition(生物辨識的註冊與辨識) - Enrollment 註冊 - 必須多做幾次,確保準確度 - 是許多系統難以克服的困難 - Recognition 辨識 - 需要快速簡單且準確 - Cooperative subjects - 願意合作的對象使得好的正確率 - 沒有好的註冊,沒有好的辨識率 - Biometric errors - **Fraud rate**: A被誤認為B - **Insult rate**: A不被認為是A - 若降低了Fraud rate 或Insult rate,則其他失誤就會增加 - 例如: - 比對門檻為99%吻合,則 低Fraud rate,高Insult rate - 比對門檻為30%吻合,則 高Fraud rate,低Insult rate - **Equal error rate**: 當Fraud rate = Insult rate - Fingerprint biometric 指紋 - 有Loop(迴圈)、Whorl(中心)、Arch(拱橫紋) - 捕捉影像 -> 影像處理增強 -> 識別出Minutia(細節) - Hand geometry(掌紋) - 識別手的形狀 - 手掌寬、手指寬和手指長度等等 - 適合authentication(認證),不適合(Identification)識別 - 優點: - 快速,註冊1分鐘,識別5秒鐘 - 兩隻手是對稱的 - 缺點: - 太年幼或太老的人不適合 - 相對的高Equal error rate - Iris 視網膜 - 視網膜掃描的攻擊 - 好的照片可以騙過系統 - 需要檢測是否為活的視網膜 - Equal wrror rate 的比較 - 指紋的EER大約5% - 手長大約$10^{-3}$ - 視網膜大約$10^{-6}$ - Something you have - 你擁有(possession)的東西 - 像是car key, laptop, password generator, smart card, etc. - Identification and Authentication Methods - **Two-factor authentication(兩步驟驗證)** 使用兩個層面: Identification、Authentication - 需要以下3個中的2個 - something you know - something you have - something you are - 例如: - **ATM**: card and PIN - **Credit card**: card and signature - **Password generator**: device and PIN - **Smartcard with password or PIN** - Password Generator - ![](https://i.imgur.com/1AQYZ2l.png) - Single Sign-On(單一簽入)(SSO) - 可以避免頻繁登入 - **Kerberos**是其中一種 - 是用對稱式(symmetric)加密 - 提供end-to-end的安全性:中間人無法閱讀訊息 - 用於分散式的環境,但由中央伺服器執行 - 包含了data repository(資料數據庫)和authentication process(認證過程) - 弱點: - 單點失效(Single point of failure) - 效能瓶頸(performance bottleneck) - Session key 會存在於客戶端機器一段時間,可能被盜用 - File and Data Ownership 資料所有權 - **Data Owner**:承擔最大責任,設定資料分級 - **Data Custodian(管理員)**:實施安全策略,通常是IT部門的人 - **Data User**:每天使用資料(Accesses data on a **day-to-day** basis),遵守安全政策的人 - Related Methods of Attacks 攻擊方式 - Brute Force Attack(暴力破解) - 嘗試所有可能 - Dictionary Attack(字典攻擊) - Brute Force Attack的一種 - 依據清單來嘗試 - Spoofing Attack(詐騙攻擊) - 例如釣魚網站 - 總結 - XXXXX --- ## Chap 3 - Authorization - Authorization is a form of access control - Authorization enforced by **Access Control Lists** and **Capabilities** - Lampson's access control matrix - User多、Object多,就很難管理 - 分割矩陣增加管理效率 - Access control lists(ACLs) - 以column儲存,實作上為Linked list - Ex: 紀錄 OS 可以被A rx, B rx, C rwx… - 屬於資料導向 (Data-Oriented) ,容易修改一個資源的權限 - Capabilities(C-Lists) - 以row儲存, - 紀錄A可以rx OS... - 容易新增刪除使用者 - 容易解決 Confused Deputy 的代表 (Delegate) 問題 - Confused Deputy - A不能write B,Compiler可以write B - => A 透過 Compiler 去Write B - ACL比較難避免這個問題 - C-List 比較好處理這個問題 - Classification and Clearance - **classification** 是對Object的 - ex: TOP SECRET, SECRET... - **clearance** 是對Subject的 - 要取得越高的層級,申請前的調查就要越詳盡 - Multilevel Security(MLS) - 是一種Access Control的形式 - MLS models沒告訴你要怎麼實行(how to implement),只告訴你該做什麼(what needs to be done) - MLS models是一種descriptive(描述性的)的,不是prescriptive(規範性的)的 - High level description, not an algorithm - Firewalls - Firewall決定讓什麼進去(從Internet),讓什麼出來(從Internal network) - 是一種Network的Access control - 網路分層架構 - Application <- Application proxy - Transport <- Stateful packet filter - Network <- Packet filter - Link - Physical - **Packet filter** - 運作於**Network layer** - 過濾來源與目的的IP與Port - 優點: - 快! - 缺點: - 沒有狀態,無法追蹤TCP連接 - **Stateful packet filter** - 運作於**Transport layer** - 可以記得TCP的連接,也可以記得UDP封包 - 優點: - 可以持續追蹤連接 - 缺點: - 沒辦法看到Application內容 - 比Packet filter慢 - 注意:雖然可以做到所有 Packet Filter 能做到的事情,但是不可以只留 Stateful Packet Filter,會造成效能瓶頸,有兩個 Filter 就能分散負擔 - **Application proxy** - 運作於**Application layer** - 優點:可以看到完整的內容,可以防範病毒(Viruses and Word macros) - 缺點:速度更慢了 - **Personal firewall** - 運作於個人使用者及家用網路 - 可以用以上各種方法 - Intrusion prevention(入侵預防) - 防止壞人入侵 - Authentication、Firewall、Virus defenses都是一種Intrusin prevention - 像是鎖你車子的門 - Intrusion detection(入侵偵測) - 偵測攻擊 - 分析Log,尋找不尋常的活動 - 總結 - Authentication and Authorization - Authentication - who goes there - Passwords、Biometrics... - Autjorization - are you allowed to do that - Access control matrix、ACLs、Capabilities - MLS、Firewalls、IDS... ### <<<期中考範圍>>> --- ## Chap 4 - 常見的安全準則(Common security principle): - **Separation of privilege principle**(分散權力原則): - 避免單一使用者擁有過大的權利 - ex: - 發射飛彈需要多把鑰匙 - 公司的印章和存摺 - **Least privilege principle**(最小權力原則): - 每個使用者只擁有足夠用的權利 - 一些違反狀況: - 管理員沒有注意到(**administrator inattention**),把使用者放在權力太廣(broad)的群組(group) - **privilege creep**權力轉移,當使用者角色轉移時,權利沒有跟著角色改變 - **Defence in depth principle**(深度防禦原則): - 防禦應該要是分層的 - 可以解決瓶頸問題(Bottleneck) - **Security through obscurity**(模糊式的安全): - 早期可以將安全建立在使用者的無知 - 現在已不能這樣做 - 安全政策(Security policies): - 安全政策應該要是**Written document** - 單個或多個文件,以供特定使用者或群組(Group)使用 - AUP - Acceptable use policy - 定可接受的組織可用資源使用行為 - 必須夠**明確(specific)**去引導使用者以及夠**彈性(flexilbe)** 去應對預料之外的狀況(Unanticipated situations) - 內容: - 哪些活動是可接受的 - 哪些活動是不可接受的 - 哪裡可以讓使用者獲得更多需要的資訊 - 如果有發生違反的狀況該如何處置 - Backup policy - 防止資料損壞(Corruption)和丟失(Loss) - 支持著**Integrity**和**Availablility** - 內容: - 哪些資料需要備份以及如何實作 - 要在哪裡備份資料 - 誰能存取備份 - 備份資料要保留多久(Retain)(資料不一定一樣) - 備份可以被重複使用的頻率 - Confidential policy - 保護(safeguard)敏感資訊 - 包括各種資訊傳播手段,例如電話、印刷、口頭、電腦 - 內容: - 哪些資料是機密的以及如何處理 - 機密資料如何釋出 - 如果機密資訊外洩該怎麼辦 - 員工被要求簽署保密協定(Nondisclosure agreements) - Data retention policy(資料保存政策) - 定義資料種類(Catagory):不同種類可以有不同的保護方式 - 每種類會有**Minimun retention time(最小保存時間)**以及**Maximun retention time(最大保存時間)** - 例如:稅金的財務資料必須至少保留7年 - Wireless device policy - 包含手機平板掌上型電腦 - 內容: - 組織可以購買的裝置種類 - 可以帶進工作場所的裝置種類 - 被允許的行為 - 例外狀況需要授權單位的許可 - Implementing policy (執行) - 內部員工要去遵守這些政策 - 確保政策持續在進行 (Ongoing) - Developing policy (發展) - 以團隊方式(Team approach)來制定 - Policy 是慢慢發展出來的 - 制定目標清單 → 編寫文件 → 達成共識 - Building consensus(建立共識) - 透過 **Selling the Policy** 來建立共識 - 發展企業文化,凝聚向心力 - 通常由高級管理階層來推廣和宣傳 - Education (教育) - Initial training: 一次性的訓練,在員工剛進公司時做的訓練 - Refresher training: 週期性的訓練,提醒員工自己的責任,提供員工最新的政策更新與責任相關事宜 - Enforcement & Maintenance (執行與維護) - policy 應該定義責任 - 違規舉報 - 發生違規時的處置 - 隨著公司和技術的變化,政策也會隨之改變 - 政策也要包含如何修改政策的條款 - Security administration tools - Security checklists: - 條列式的審核 - Security matrices: - 把重點放在希望達成的目標 - Ex: 轉帳這個行為,完整性 > 機密性 - Physical security (硬體) - 保護硬體安全 - 預防硬體於自然災害(淹水、火災) - 常見的硬體保護手法 - **Perimeter protextion**周遭的防禦: - 實體的阻隔,例如:牆壁 - 感應器、看門狗、警衛 - 記得**Defence in depth** 原則 - 單一的保護機制並不足夠,用多層的防護機制 - 例如:用圍欄加上生物特徵辨識 - **Electronic emanation**防電磁裝置: - 國家級的攻擊可能透過電磁波來分析資訊 - 使用防電波磁裝置來保護 - **Fire protection**防火: - 防止火災,例如:滅火器、灑水設備 - Personnel security 人員安全 - 人類是安全系統中最脆弱的一環 - **Background investigation**背景調查 - 前科調查(Criminal record) - 打電話去上一間公司問(Reference Evaluations) - **Monitor employee activity**活動監測 - 包含網路活動、監視器、通話紀錄等 - **Mandatory vacation**強制休假 - 符合勞基法的規定 - 避免員工壓力過大,做出傷害公司的行為 - **Exit procedure**離職政策 - 保密協議很重要 - Summary - 略 ---------- ## Chap5 - Business case - 必須了解公司的主要目的 - 商業公司主要目的大多是為了獲利 - Business continuity planning(BCP) 永續經營計畫 - 幫助企業在面臨風險時繼續走下去 - Risk = Threat X Vulnerability - 使用象限圖(quadrant map)做 **弱點評估** - ![quadrant map](https://i.imgur.com/H0s7U61.png) - Implementing controls 實施控制 - 四種風險管理 - Avoidance - Mitigation - Acceptance - Transference - BCP 團隊要決定這些策略如何執行 - 不是所有風險都可以使用技術性的方式解決,可能需要教育訓練(Education)或外部專業人員(External Expertise) - Maintaining the plan 維護計畫 - BCP 是一份存在的文件 - BCP 要夠有彈性(Flexible)去吸收各種改變 - 需要定期檢視並調整BCP - Disaster recovery planning 災害恢復計畫 - 目的是維持組織的運作 - 目標 Goals of DRP - 在一個替代(Alternate)的場所可以繼續工作 - 在替代的場所提供延伸的(Extended)操作 - 做好轉移回到原本場所的準備 - Selecting the team 選出DRP團隊 - 要涵蓋到所有部門的人員 - 越大的組織,越大的團隊 - 團隊平時不需運作,DRP成員在平常是做自己得工作,DRP啟動才切換角色 - 分為規劃 與 執行兩個小組 - Building the plan 建立計畫 - 計畫需要詳細說明: - 計畫內所有人的責任 - 所需要的資源 - 選擇代替設施最困難 - 設施需要多少能力 - 能力越強,就越貴 - Disaster recover facilities 代替設施 - Hot site - 包含所有需要的硬體、軟體以及資料 - 能立即恢復產能 - Warm site - 有大部分的硬體軟體,但沒有最新資料(Live copies of data) - 在數小時到數天內接手運作 - Cold site - 有基本的電力、電信和支援系統 - 沒有硬體軟體和資料QQ - 在數週到數月內接手運作 - Creative disaster recovery - 非傳統的DRP可能適用於特定的單位 - 地理位置分散的組單位可能會考慮移動設施 - 拖車、移動房屋、空運單位等等 - 不要全部放在同一個地方 - 與其他公司簽訂互助協議(Mutual assistance agreements) - 與其他組織分攤成本 - 要小心機密外洩 - Trainning 訓練 (DRP成員的訓練) - Initial trainning - Refresher trainning - 定期的(Periodic) - 訓練要針對不同人員客製化 - Testing 測試 - Checklist review - 最簡單、不費力(least labor-intensive)的測試 - 每個人都有自己的checklist - 各自去完成自己的清單 - 無論單人或團體都可以完成 - Tabletop exercise - 測試者(Test Facilitator)口頭描述(**Verbally walk through**)特定的災難場景(Scenario) - DRP成員口頭回答 - Soft test(Parallel test) - 成員啟動設施以對應特定的災難場景(Scenario) - 替代設施與主要設施同時運作 - 比較全面也比較昂貴 - Hard test(Full-interruption test) - 完全轉換到替代設施,再轉回來 - 更昂貴與更大破壞性 - 很少數的情況才會使用 - Implementing the plan 執行計畫 - 當需要啟動(災害發生時)狀況必定混亂(Chaotic) - 所有員工必須知道第一時間目睹需要啟動DRP的狀況要做什麼 - 宣布災難情況的權利可能多人擁有 - Data classification 資料分級 - 讓使用者判斷資料敏感層度(分層Stratify) - 針對每一層級別,提供適合的保障系統 - 訪問保密數據的預備項目(Prerequisites) - Security clearence - Need to know - Security clearance 安全許可 - 會根據不同組織與階級有不同的檢查 - 通常和個人當前的工作和基本活動有關聯 - Need to know - clearance責廣泛種類上的訪問 - Need To Know 則限制實際訊息 - clearance由中央執行 - 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 andAccountability Act - Gramm-Leach-Bliley Act - European Union Directive on Data Privacy ## Chap6 - Crypto - Cryptology - 密碼學,指的是研究密碼的這門學問 - Cryptography - 加密,只包含加密的演算法 - Cryptanalysis - 解密,只包含解密的演算法 - Crypto - 以上全部 - How to speak crypto - Cipher 或 Cryptosystem 是用來Encrypt(加密) plaintext(明文) - 加密過的產物是Ciphertext(The result of encryption) - 我們Decrypt(解密)ciphertext來還原成plaintext - A key is used to configure a cryptosystem - Symmetric key cryptosystem(對稱式加密系統)用同樣一把鑰匙(Key)去加密(Encrypt)以及解密(Decrypt) - 密文要寄給 10 個人就需要 10 把 Keys - Public key cryptosystem用一把public key(公鑰)去加密(encrypt),用一把private key(私鑰)去解密(decrypt),a.k.a. 非對稱加密 - 無論寄給多少人,都只需要保管兩把 - ==Kerckhoffs Principle== - Basis assumption - 攻擊者完全了解這個系統 - 只有Key是不公開的 - 加密演算法是公開的 - Crypto as black box - ![](https://i.imgur.com/skds81O.png) - Simple substitution - 透過一個對應表 - 平移3個字母是"Caesar cipher",a -> d - 可以改變平移的量,例如改用7(做為key) - 比較難的版本:更改字母排列而非平移的 - 有 26! > $2^88$ 種可能的key - 可以用字母出現頻率來破解 - Cryptanalysis - 如果最佳破解方法是暴力破解,加密系統是Secure(安全的) - 如果存在任何捷徑破解方法,加密系統是Insecure(不安全的) - 透過這個的定義,Inscure的系統可能比Secure的系統更難解!! - 注意:Key space大小不一樣喔!! - Double transposition - plaintext: attackxatxdawn | |col1|col2|col3| |----|----|----|----| |row1|a |t |t | |row2|a |c |k | |row3|x |a |t | |row4|x |d |a | |row5|w |n |x | Permute rows and columns | |col1|col3|col2| |----|----|----|----| |row3|x |t |a | |row5|w |x |n | |row1|a |t |t | |row4|x |a |d | |row2|a |k |c | - ciphertext: xtawxnattxadakc - key: (3, 5, 1, 4, 2) and (1, 3, 2) - One-time Pad - 使用XOR運算 - Encryption - $Plaintext ⊕ Key = Ciphertext$ - Decryption - $Ciphertext ⊕ Key = Plaintext$ - 目標!! - 機密性 Confidentiality - 訊息的內容經過加密後要被隱藏 (Concealed) 。 - 完整性 Integrity - 確認接收到的就是寄出去的。 - 不可否認性 Nonrepudiation - 寄件者不能表示他沒有發送訊息。 - 認證 Authentication - 證明身份 - 加密演算法 - 分為 **對稱Symmetric** 和 **非對稱Asymmetric** 兩種 - 早期會用模糊的安全來實作演算法(security through obscurity) - 現在都是嚴格且公開的 - 對稱式演算法(Symmetric) - a.k.a. Secret Key Cryptosystem - 雙方都知道同一個Key - 對稱式的Key又被稱為Shared Key 或 Secret Key - Key length 是安全性上最重要的一部分 - Key Lenghth代表Key 的Bits數 - Key 越長,保護程度越高 - 長度為 $n$ 的 Key 就有 $2^n$ 種組合 - DES (Data Encryption Standard) - 一個最常用的加密系統 - 有 56Bits 的 Key Length - 有四種模式(Mode)的操作,因為加密訊息過長,需要分段處理與打亂 - 56Bits 已經不夠安全,現在改用 **Triple DES(3DES)** (把DES重做3次) - DES Numerology - DES 是一種 **Feistel cipher** - 64 bits block (一次加密64bits 的明文) - 56 bits bit length - 16 rounds - 48 bits 的 Subkey 被產生於每回合 - 安全性倚靠S-Boxes - 每個 S-Box 將6 bits map成 4bits - ![](https://i.imgur.com/kF6rSEJ.png) - 給定6位元輸入,將首尾兩個位元和中間四個位元作為條件進行查表,最終獲得4位元輸出 - 3DES - 3DES 提供更強的保護 - 3DES-EEE(encrypt-encrypt-encrypt)使用3把 Keys - 3DES-EDE(encrypt-decrypt-encrypt)使用1~3把 Keys - AES (Advanced Encryption Standard) - 是國家標準研究院 (National Institute of Standards, NIST) 贊助的比賽中獲獎的演算法 - AES 提供3種長度的Key Length供使用者選擇 - 128, 192, 256Bits - 越長越安全 - Block Size: 128, 192 or 256 Bits - Key Length: 128, 192 or 256 Bits(跟Block Size一樣) - ==10~14回合,取決於Key Length== - 每回合使用4個Functions - ==ByteSub (nonlinear layer)== - 就是 AES 的 S-Box(二維查表) - 用前四個 Bits 和後四個 Bits 查表 - ![](https://i.imgur.com/2b3s1fz.png) - ==ShiftRow (linear mixing layer)== - 做循環Shift (Cyclic Shift) - ex: "apple" --(Left Cyclic Shift)--> "pplea" - ==MixColumn (nonlinear layer)== - 對每個Column 做非線性、可逆的操作(以查表實作) - ==AddRoundKey (key addition layer)== - $Subkey$ XOR $Block$ - Subkey 是用 Key Schedule 演算法產生的 - Decryption of AES - AddRoundKey 只要再做一次 XOR 就好 - MixColumn 是 Invertible 的查表 - ShiftRow 反向轉回去就好 - ByteSub 也是可逆的查表 - Asymmetric Algorithms 非對稱加密演算法 - a.k.a. Public Key Cryptosystems - 有兩把鑰匙 Public Key 和 Private Key,透過數學運算獲得 - 公鑰加密的秘文只能用私鑰解密 - 公鑰是公開的,大家都能加密自己的訊息 - **RSA**, Rivest Shamir Adelman Algorithm - 最廣為人知的 非對稱加密演算法 - 依靠**大質數很難被因數分解** - **PGP**, Pretty Good Privacy - **跨平台**的方案 - 包含了許多加密演算法在內,包括RSA - 支援**分散式**公鑰管理的架構 - The Web of Trust (信任的網頁) - Key 的交換是一個問題 - 在PGP出現之前,需要在離線狀態交換 - PGP 加上 Web of Trust 讓使用者可以判斷公鑰的真實性????? - 四個信任等級: - 隱性信任 **Implicit Trust** (注意! 最高級!) - 充分信任 Full Trust - 邊際信任 Marginal Trust - 不可信任 Untrusted - 對稱與非對稱加密的比較 - 對稱式加密不好擴展(dont scale well) - 非對稱加密比對稱加密慢(困難的數學) - 對稱式加密在通訊電路上表現傑出(可以實作於硬體架構),例如虛擬私人網路(VPN) - 非對稱式加密在用戶數量多的時候比較實用(節省空間) - 數位簽章(Digital Signatures) - 替加密系統增加完整性(integrity)和不可否認性(nonrepudiation) - 不可否認性(nonrepudiation)只能在非對稱式加密上執行 - 數位簽章的創建: - 使用雜湊函式來產生一個獨特的訊息摘要(digest)。 - 經常使用 SHA 跟 MD 演算法。 - 使用**私鑰來加密**訊息摘要。 - 數位簽章的驗證: - 收件人解密訊息獲得文本與數位簽章。 - 收件人使用相同的雜湊函式來創造新的訊息摘要。 - 收件人使用寄件人的**公鑰解密**數位簽章獲得寄件人的訊息摘要。 - 收件人比對兩個訊息摘要,如果相同就驗證成功。 - 如果不同,可能是惡意的訊息,也可能是傳送錯誤 - 數位憑證 Digital Certificates - 數位憑證允許第三方去擔保(vouch)一個數位簽章 - 第三方負責驗證身份 - 憑證頒發機構 Certification Authorities(CA)(當權者) - 常見的有 VeriSign 和 Thawte - 由CA簽署數位憑證 - 數位憑證是用戶公鑰的副本 - Summary - pass ## Chap7 - Public Key Cryptography - 發送者用接受者的公鑰(Public key)去加密 - 接收者用自己的私鑰(Private key)去解密 - Base on trap door, one way function - 一個方向很簡單運算,另一個方向很難回推選來 - "Trap door" 用來製造鑰匙 - ex: - 給一個p 與 q,很容易算出 N=p*q - 但是,給一個N很難回推出p 與 q - 用 A的 Public key 加密,就只能用 A的 Private key解密 - 與數位簽章(Digital Signature)相比較: - 用Private key來簽署,只有一人可以簽署 - 用Public key 來解簽章,大家都可以解 - Knapsack 背包問題 - Example: - 有一些東西,重量分別是:{62, 93, 26, 52, 166, 48, 91, 141} - 問題:找出總重量S=302的子集合 - 解: sum(62, 26, 166, 48)=302 - 用Superincreasing Knapsack 方法,從最大的開始找比較好找 - 背包密碼系統 - 產生superincreasing knapsack(SIK) - 把SIK轉換成Gernal knapsack(GK) - 公鑰:GK - 私鑰:SIK + Conversion factors (m&n) - Easy to encrypt with GK - Easy to encrypt 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 - https://www.geeksforgeeks.org/knapsack-encryption-algorithm-in-cryptography/ - https://asecuritysite.com/encryption/knap - 背包密碼系統的弱點 - 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 - 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 - RSA Work - Euler's theorem - 歐拉定理也可以稱為費馬-歐拉定理 - ==x 若是與n戶質,則$x^{φ(n)}=1$ mod n== - 補充:歐拉函式φ - φ(n) 是小於或等於 n 的正整數中與 n 互質的數的數量。 - φ(8) = 4,因為 1, 3, 5, 7 與 8 互質。 - Mod - ??? - Diffie-Hellman - 一種交換金鑰的演算法 - 用來建立一個==對稱式金鑰== - 不是用來加密或簽名的 - 安全性依賴在==離散對數問題==上 - 給定g, p, $g^k$ mod p,找到k - p 是質數,g是產生器,這兩個數是公開的 - 在x是屬於{1, 2, ..., p-1}存在一個n使得 x = $g^n$ mod p - Alice 選擇secret key a - Bob 選擇secret kety b - Alice 送出$g^a$ mod p 給Bob - Bob 送出$g^b$ mod p給 Alice - 兩人皆計算分享的$g^{ab}$ mod p - $g^{ab}$mod p可以作為對稱式金鑰(symmetric key)來使用 - 假設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 - ![](https://i.imgur.com/VhgDsPJ.png) - Trudy 分享 gat mod p 給 Alice - Trudy 分享 gbt mod p 給 Bob - 這個過程中,Alice 跟 Bob 都不知道 Trudy 的存在 - 如何預防: - 使用對稱金鑰加密 DH Exchange - 使用公開金鑰加密 DH Exchange - 使用私鑰簽名 DH Value - ECC, Elliptic curve crypto - ==EC 不是一個密碼系統,是一種公鑰的數學方式。== - 可能會==更有效率== - 一樣的安全性,==需要比較少的 Bits== - 但是操作==更加複雜== - 圖形 E 代表方程式 y2 = x3 + ax + b - 同時也包含在無限大的點 - ![Elliptic Curve](https://i.imgur.com/YiAg5ms.png) - 如果 P1 跟 P2 都在 E 上,則定義 P3 = P1 + P2