---
# System prepended metadata

title: 1092資安筆記
tags: [1092筆記]

---

---
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(詐騙攻擊)
        - 例如釣魚網站
- 總結
    - ＸＸＸＸＸ

---

## 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

