850 likes | 962 Views
章節目標 : 了解網路安全的原則 : 密碼學以及機密上的應用 認證 訊息完整性 金鑰分送 實際的安全性 : 防火牆 應用程式、傳輸層、網路層、連結層的安全性. 第八章 : 電腦網路的安全性. 第八章 電腦網路的安全性. 8.1 何謂網路安全 ? 8.2 密碼學的原理 8.3 認證 8.4 完整性 8.5 金鑰分送和認證 8.6 存取控制:防火牆 8.7 攻擊和反制 8.8 各層的安全. 何謂網路安全 ?. 機密 : 只有傳送端和所希望的接收端才能夠了解傳送訊息的內容 傳送端將訊息加密 接收端將訊息解密
E N D
章節目標: 了解網路安全的原則: 密碼學以及機密上的應用 認證 訊息完整性 金鑰分送 實際的安全性: 防火牆 應用程式、傳輸層、網路層、連結層的安全性 第八章:電腦網路的安全性 8: Network Security
第八章 電腦網路的安全性 8.1 何謂網路安全? 8.2密碼學的原理 8.3認證 8.4完整性 8.5金鑰分送和認證 8.6存取控制:防火牆 8.7攻擊和反制 8.8各層的安全 8: Network Security
何謂網路安全? 機密:只有傳送端和所希望的接收端才能夠了解傳送訊息的內容 • 傳送端將訊息加密 • 接收端將訊息解密 認證:傳送端和接收端希望能確認彼此的身分 訊息完整性:傳送端和接收端希望能確認訊息不會被更改而沒有察覺 (傳輸中或之後) 可利用性和存取控制:服務必須是使用者可利用及存取的 8: Network Security
朋友與敵人: Alice, Bob, Trudy • 網路安全的世界中的常見情況 • Bob, Alice (情人!) 想要”安全地”交談 • Trudy (入侵者) 可能想介入或者對訊息作增減 Alice Bob 資料, 控制訊息 通道 安全的 傳送端 安全的 接收端 資料 資料 Trudy 8: Network Security
誰是 Bob 與 Alice? • … 嗯, 真實生活裡他們是 Bob 和 Alice! • 電子交易的Web 瀏覽器/伺服器 (例如, 線上購物) • 線上銀行用戶端/伺服器 • DNS 伺服器 • 互相交換路由表更新的路由器 • 其它的例子? 8: Network Security
這裡是一些壞人 (以及壞女孩)! Q:壞人可以做什麼? A:很多! • 竊聽:攔截訊息 • 主動插入訊息到連接中 • 扮演:可以假扮 (欺騙) 封包中的來源位址 (或封包中的任何欄位) • 劫持: “接管” 前進的連結,移除傳送端或接收端,將他自己插入到適當的地方 • 阻斷服務: 妨礙其他人使用服務 (例如,使資源超出負荷) 還有更多 …… 8: Network Security
第八章 電腦網路的安全性 • 8.1 何謂網路安全? • 8.2 密碼學的原理 • 8.3 認證 • 8.4 完整性 • 8.5 金鑰分送和認證 • 8.6 存取控制:防火牆 • 8.7 攻擊和反制 • 8.8 各層的安全 8: Network Security
K K A B 密碼學的語言 Alice的加密金鑰 Bob的解密金鑰 對稱式金鑰密碼: 傳送端和接收端的金鑰相同 公開金鑰密碼: 加密金鑰是公開的,解密金鑰是秘密(私人的) 加密演算法 解密演算法 密文 明文 明文 8: Network Security
對稱金鑰密碼學 替代祕文:由另一文字替代原本文字 • 單字母加密法:由另一字母替代原來字母 明文: abcdefghijklmnopqrstuvwxyz 密文: mnbvcxzasdfghjklpoiuytrewq 範例: 明文: bob. i love you. alice 密文: nkn. s gktc wky. mgsbc • Q:這個簡單加密法的破解難度?: • 暴力法 (有多難?) • 其他的? 8: Network Security
K K A-B A-B K (m) m = K ( ) A-B A-B 對稱金鑰密碼學 對秤金鑰密碼學: Bob 和 Alice 共同知道同樣的金鑰 (對稱) : K • 例如,在單字母加密法中,金鑰為取代樣式 • Q: Bob和Alice要如何同意金鑰值? 加密 演算法 解密 演算法 密文 明文 明文訊息,m K (m) A-B A-B 8: Network Security
對稱金鑰密碼學: DES DES: 資料加密標準(Data Encryption Standard) • US 加密標準 [NIST 1993] • 56-位元的對稱金鑰,64位元的明文輸入 • DES有多安全? • DES 的挑戰: 56位元金鑰加密的片語 (“Strong cryptography makes the world a safer place”) 需要4個月來解密 (暴力法) • 嘗試解密沒有後門可走 • 讓 DES 更安全: • 每一筆資料使用連續的(3-DES)金鑰 • 使用密碼區塊鏈 8: Network Security
DES 運作 對稱金鑰密碼學: DES 初始排列 16 次相同的函式應用, 每一次使用不同的48位元金鑰最終排列 8: Network Security
AES: 進階加密標準 • 新的 (2001年11越) 對稱金鑰 NIST 標準,替代 DES • 以 128 位元區塊處理資料 • 128, 192, 或 256 位元金鑰 • 暴力法解密 (嘗試每一個金鑰) ,DES 需要 1 秒時,AES 需要 149 兆年 8: Network Security
公開金鑰密碼學 對稱金鑰密碼學 • 需要傳送端與接收端都知道共享私密金鑰。 • Q:如何在第一次使用金鑰時達到共識 (尤其是”如果從來沒遇過”)? 公開金鑰密碼學 • 完全不同的兩個方法[Diffie-Hellman76, RSA78] • 傳送端和接收端不需要分享私密金鑰 • 公開的加密金鑰。 (大家都知道 ) • 私人的解密金鑰(只有接收端知道 8: Network Security
+ K (m) B - + m = K (K (m)) B B 公開金鑰密碼學 + Bob的公開金鑰 K B - Bob的私密金鑰 K B 加密 演算法 解密 演算法 明文訊息 明文訊息,m 密文 8: Network Security
K (K (m)) = m B B - + 2 1 公開金鑰密碼演算法 需求: 需要 K ( ) 和 K ( ) 使得 . . + - B B + 給定 公開金鑰 K , 應該不可能計算私密金鑰 K B - B RSA: Rivest, Shamir, Adelson algorithm 8: Network Security
+ - K K B B RSA:選擇金鑰 1.選出兩個大質數 p, q (例如,每個 1024 位元 2.計算 n = pq, z = (p-1)(q-1) 3.選擇一個e (e < n) 且e和z沒有相同的因數 (即e, z 互質) 4.選擇一個 d滿足 ed-1 能被 z 整除. (換言之: ed mod z = 1 ) 5.公開金鑰為(n,e). 私密金鑰為(n,d). 8: Network Security
d e m = c mod n c = m mod n d e m = (m mod n) mod n RSA:加密, 解密 0.經由先前的計算得到 (n,e) 和(n,d) 1.欲加密位元樣式 m,計算 e (例如,以 n 除以 m 的餘數) 2.欲解密所接收到的位元樣式 c,計算 d (例如,以 n 除以 c 的餘數) 神奇的事 發生了! c 8: Network Security
d e m = c mod n c = m mod n d c RSA 範例: Bob 選擇 p=5, q=7. 則 n=35, z=24. e=5 (因此 e, z互質). d=29 (因此 ed-1正好可被 z整除) e m m 字母 加密: l 17 1524832 12 c 字母 解密: 17 12 l 481968572106750915091411825223071697 8: Network Security
e d ed (m mod n) mod n = m mod n ed mod (p-1)(q-1) 1 = m = m mod n = m mod n y y mod (p-1)(q-1) d e x mod n = x mod n m = (m mod n) mod n RSA: 為 什 麼 使用數論的結果:假如 p,q為質數且 n = pq, 則: (使用上面的數論結果) (既然我們選擇ed可除以 (p-1)(q-1)餘 1 ) 8: Network Security
K (K (m)) = m - B B + K (K (m)) - + = B B RSA: 一個重要的特質 下面的特質在接下來非常實用: 先使用私密金鑰,然後是公開金鑰 先使用公開金鑰,然後是私密金鑰 結果是相同的! 8: Network Security
第八章 電腦網路的安全性 • 8.1 何謂網路安全? • 8.2 密碼學的原理 • 8.3 認證 • 8.4 完整性 • 8.5 金鑰分送和認證 • 8.6 存取控制:防火牆 • 8.7 攻擊和反制 • 8.8 各層的安全 8: Network Security
認證 目標: Bob 要求 Alice 證明她的身份 協定 ap1.0:Alice 說“ 我是Alice” “我是Alice” 失敗的情況?? 8: Network Security
認證 Goal: Bob 要求 Alice 證明她的身份 協定 ap1.0:Alice 說“ 我是Alice” 在網路中,Bob無法「看見」Alice,因此Trudy只要簡單地宣稱她自己是Alice “我是Alice” 8: Network Security
Alice的 IP 位址 “我是Alice” 認證: 另一種嘗試 協定 ap2.0:Alice 在一個包含她的來源 IP 位址的 IP封包中說 “我是 Alice” 失敗的情況?? 8: Network Security
Alice的 IP 位址 “我是Alice” 認證: 另一種嘗試 協定 ap2.0: Alice 在一個包含她的來源 IP 位址的 IP封包中說 “我是 Alice” Trudy 可以製造一個封包「假扮」Alice的位址 8: Network Security
Alice的 密碼 Alice的 IP 位址 “我是Alice” Alice的 IP 位址 OK 認證: 另一種嘗試 協定 ap3.0:Alice 說 “我是Alice” 並傳送她的密碼以證明 失敗的情況?? 8: Network Security
Alice的 密碼 Alice的 IP 位址 “我是Alice” Alice的 IP 位址 OK 認證: 另一種嘗試 協定 ap3.0:Alice 說 “我是Alice” 並傳送她的密碼以證明 Alice的 密碼 Alice的 IP 位址 “我是Alice” 重播攻擊法: Trudy 記錄Alice的封包,稍後將它重播給 Bob 8: Network Security
加密 密碼 Alice的 IP 位址 “我是Alice” Alice的 IP 位址 OK 認證: 再另一種嘗試 協定 ap3.1:Alice 說 “我是Alice” 並傳送她的加密密碼以證明 失敗的情況?? 8: Network Security
加密 密碼 Alice的 IP 位址 “我是Alice” Alice的 IP 位址 OK 認證: 再另一種嘗試 協定 ap3.1: Alice 說 “我是Alice” 並傳送她的加密密碼以證明 加密 密碼 Alice的 IP 位址 “我是Alice” 記錄並重播 還是可行! 8: Network Security
K (R) A-B 認證: 再另一種嘗試 目標:避免重播攻擊 Nonce:編號 (R) 在生命週期中只使用一次 ap4.0:為了要證明Alice的存在,Bob傳送nonce, R 給Alice。Alice必須回傳 R,以分享的私密金鑰加密 “我是Alice” R Alice 是存在的,只有Alice知道用來加密nonce的金鑰,因此她一定是Alice! 失敗,缺點? 8: Network Security
- K (R) A + + K K A A - - + (K (R)) = R K (K (R)) = R A A A 認證: ap5.0 ap4.0 需要共享對稱金鑰 • 我們可以使用公開金鑰技巧來認證嗎? ap5.0:使用 nonce, 公開金鑰加密法 “I am Alice” Bob 計算 R 並知道只有Alice擁有私密金鑰,可以加密 R使得 “將你的公開金鑰傳給我” 8: Network Security
- - K (R) K (R) A T + + K K A T - - + + m = K (K (m)) m = K (K (m)) + + A T A T K (m) K (m) A T ap5.0: 安全漏洞 有人在中間攻擊: Trudy 假扮成Alice (對 Bob) ,假扮成Bob (對 Alice) 我是Alice 我是Alice R R 將你的公開金鑰傳給我 將你的公開金鑰傳給我 Trudy 得到 傳送 m 給Alice,以Alice的公開金鑰加密 8: Network Security
ap5.0:安全漏洞 有人在中間攻擊: Trudy 假扮成Alice (對 Bob) ,假扮成Bob (對 Alice) • 很難察覺: • Bob 收到 Alice 傳送的所有訊息, 反之亦然 (例如,因此Bob和Alice可能在一週後見面並回想對話) • 問題是 Trudy 也收到了所有的訊息! 8: Network Security
第八章 電腦網路的安全性 • 8.1 何謂網路安全? • 8.2 密碼學的原理 • 8.3 認證 • 8.4 完整性 • 8.5 金鑰分送和認證 • 8.6 存取控制:防火牆 • 8.7 攻擊和反制 • 8.8 各層的安全 8: Network Security
密碼技術可類比於手寫簽章 傳送者 (Bob) 數位化簽署某份文件,表示他是文件的擁有者/製造者。 可證實的,不可偽造的:接收者 (Alice) 可以確認某個人為 Bob,簽署該文件且沒有其他人(包括Alice) 簽署 數位簽章 8: Network Security
訊息 m 的簡單數位簽章 : Bob 使用他的公開金鑰 KB 加密來簽署 m,產生簽署過的訊息 KB(m) - - K K B B 數位簽章 - - Bob的私密金鑰 Bob的訊息, m (m) Dear Alice Oh, how I have missed you. I think of you all the time! …(blah blah blah) Bob Bob的訊息 m,以他自己的私密金鑰簽署過的 (加密的) 公開金鑰 加密演算法 8: Network Security
假設Alice接收到訊息m和數位簽章 KB(m) Alice 將 Bob 的公開金鑰 KB 應用到 KB(m) 並確認 KB(KB(m) ) = m ,因此驗證 Bob 簽署了 m。 假如 KB(KB(m) ) = m,任何簽署 m 的人一定使用了 Bob 的私密金鑰 Alice因此驗證: Bob 簽署了 m. 沒有其他人簽署 m. Bob 簽署了 m 而非 m’. 不否認: Alice 可以拿到 m, 並簽署 KB(m) 給法庭並證明 Bob 簽署了 m。 數位簽章 (更多) - - - + + - + - 8: Network Security
以公開金鑰來加密很長的訊息在計算上成本過高。以公開金鑰來加密很長的訊息在計算上成本過高。 目標:固定長度,容易計算的數位 “指紋” 使用雜湊函數 H 應用在m, 得到固定長度的訊息摘要, H(m) 雜湊函式特質: 多對一 產生固定長度的訊息摘要 (指紋) 給予訊息摘要 x, 無法以計算的方式找到另一訊息摘要m,使得 x = H(m) 訊息摘要 長訊息 m H: 雜湊 函式 H(m) 8: Network Security
網際網路檢查和: 較差的密碼雜湊函數 網際網路檢查和具有雜湊函數的某些特質: • 產生固定長度的訊息摘要 (16-位元和) • 是多對一的 但是對某個給定雜湊值的給定訊息來說,很容易找到另一個具有相同雜湊值訊息: ASCII format message ASCII format message I O U 9 0 0 . 1 9 B O B 49 4F 55 39 30 30 2E 31 39 42 D2 42 I O U 1 0 0 . 9 9 B O B 49 4F 55 31 30 30 2E 39 39 42 D2 42 B2 C1 D2 AC B2 C1 D2 AC 不同的訊息 但是相同的檢查和! 8: Network Security
數位簽章 = 簽章的訊息摘要 H: 雜湊 函式 H: 雜湊 函式 長訊息 m 長訊息 m + - 數位簽章 (加密的) 數位簽章 (解密) K K B B 加密的訊息 摘要 加密的 訊息摘要 + - - KB(H(m)) KB(H(m)) H(m) H(m) Bob 傳送數位簽章訊息: Alice 驗證簽章並整合數位簽章訊息: H(m) Bob的私密金鑰 Bob的公開金鑰 相等 ? 8: Network Security
MD5 雜湊函數廣泛地使用 (RFC 1321) 以4個步驟的過程計算 128位元的訊息區塊 任意128位元的字串 x,顯示欲建立一訊息m,使得經由MD5雜湊出的值等於x 是很困難的。 SHA-1同樣被使用 美國標準 [NIST, FIPS PUB 180-1] 160 位元訊息摘要 雜湊函數演算法 8: Network Security
第八章 電腦網路的安全性 • 8.1 何謂網路安全? • 8.2 密碼學的原理 • 8.3 認證 • 8.4 完整性 • 8.5 金鑰分送和認證 • 8.6 存取控制:防火牆 • 8.7 攻擊和反制 • 8.8 各層的安全 8: Network Security
對稱金鑰問題: 在網路上兩個實體如何建立共享私密金鑰 解決方法: 信任的金鑰分送中心 (KDC) 做為實體的中間者 公開金鑰問題: 當Alice取得 Bob的公開金鑰 (從網站, 電子郵件,磁片), 她怎麼知道這是Bob的公開金鑰,不是Trudy的? 解決方法: 信任的憑證管理機構 (CA) 可信任的中間者 8: Network Security
KB-KDC KX-KDC KY-KDC KZ-KDC KP-KDC KB-KDC KA-KDC KA-KDC KP-KDC 金鑰分送中心 (KDC) • Alice, Bob 需要分享對稱金鑰 • KDC:對每個註冊的使用者 (許多使用者) 分享不同的私密金鑰的伺服器。 • Alice, Bob 各自知道自己和KDC之間溝通用的對稱金鑰 KA-KDC KB-KDC。 KDC 8: Network Security
金鑰分送中心 (KDC) Q: KDC 如何允許 Bob 和 Alice 決定分享對稱私密金鑰與對方通訊? KDC 產生 R1 KA-KDC(A,B) KA-KDC(R1, KB-KDC(A,R1) ) Alice 知道 R1 Bob 知道使用 R1 與 Alice通訊 KB-KDC(A,R1) Alice 和 Bob 通訊: 使用 R1 做為共享對稱加密的 會談金鑰 8: Network Security
+ + 數位簽章 (加密的) K K B B K CA 憑證管理機構 • 憑證管理機構 (CA):將公開金鑰跟特定的實體 E 做對應 • E (人,路由器) 以他的公開金鑰向CA註冊 • E 提供 “身分證明” 給 CA. • CA 建立實體 E 與公開金鑰間的認證關係. • 認證包含了由 CA 數位簽署的 E 的公開金鑰,CA說「這是 E 的公開金鑰」 Bob的公開金鑰 CA 私密金鑰 Bob的公開金鑰認證,由CA簽署 - Bob的身分資訊 8: Network Security
+ + 數位簽章 (解密) K K B B K CA 憑證管理機構 • 當 Alice 欲取得 Bob的公開金鑰: • 取得Bob的憑證 (Bob 或其他地方) • 將 CA 的公開金鑰應用到Bob的認證,取得Bob的公開金鑰 Bob的公開金鑰 CA 公開金鑰 + 8: Network Security
認證包含了: • 序號 (對簽署者是唯一的) • 關於認證擁有者的資訊,包括演算法以及金鑰值本身 (沒有顯示) • 認證擁有者的資訊 • 有效日期 • 認證擁有者的數位簽章 8: Network Security
第八章 電腦網路的安全性 • 8.1 何謂網路安全? • 8.2 密碼學的原理 • 8.3 認證 • 8.4 完整性 • 8.5 金鑰分送和認證 • 8.6 存取控制:防火牆 • 8.7 攻擊和反制 • 8.8 各層的安全 8: Network Security