---
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
- 
- 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)做 **弱點評估**
- 
- 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
- 
- 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
- 
- 給定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 查表
- 
- ==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
- 
- 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
- 同時也包含在無限大的點
- 
- 如果 P1 跟 P2 都在 E 上,則定義 P3 = P1 + P2