780 likes | 1.06k Views
IP Security. 大綱. 前言 IP AH IP ESP 安全群組 SA IPSec 的金鑰交換與管理 結論. 參考文獻. 楊慶隆 ,“ 寬頻網際網路網路安全 IPSec 機制探討” 陳契憲 ,“IPSec 的明日之星” ,0&1 BYTE, Jan. 2000, pp94~99. 李逸元、洪李吉、蔡銘聰、李昆育 ,“IPSec 系統應用於嵌入式系統之設計和實作” , 資訊安全通訊 , 第五卷第三期 , June 1999, pp68~85.
E N D
大綱 • 前言 • IP AH • IP ESP • 安全群組SA • IPSec的金鑰交換與管理 • 結論
參考文獻 • 楊慶隆,“寬頻網際網路網路安全IPSec機制探討” • 陳契憲,“IPSec的明日之星”,0&1 BYTE, Jan. 2000, pp94~99. • 李逸元、洪李吉、蔡銘聰、李昆育,“IPSec系統應用於嵌入式系統之設計和實作”, 資訊安全通訊,第五卷第三期, June 1999, pp68~85. • Dave Kosiur, “Building and Managing Virtual Private Networks”, wiley computer publishing, 1998. • 李國熙、陳永旺,“電子商務與網路安全”, O’REILLY, 1999。
General IPSec RFCs: [1825, 2401, 2411, 2521, 2709, 2764] • ESP, AH RFCs: [1826-187, 2402, 2406] • Key Exchange RFCs: [2407-2409, 2412, 2367, 2522-2523] • Cryptography RFCs: [1828-1829,2085, 2104, 2202, 2403-2405, 2410, 2451, 2393-2395] • Internet Rosurces: • http://www.ietf.org/thml.charters/ipsec-charter.html • http://firewall.sysware.com.tw/faq/vpn/ipsec.html • http://firewall.sysware.com.tw/faq/vpn/SKIP.html • http://conway.cba.ufl.edu/ism6222/Ipsec.html • http://www.hsc.fr/veille/papier/papier.html.en • http://www.ip-sec.com • http://www.cisco.com/public/library/isakmp/ipsec.html
前言 • IPSec是由IETF所提出的IP層通訊安全保密架構 • 第一版於1995年提出,包含AH與ESP封包轉換,但金鑰的交換與管理並未定義。 • 第二版於1998年11月提出,除了更新AH與ESP轉換的格式,還加上了自動金鑰轉換機制、金鑰管理架構,與身分認證及加密演算法。是目前最新的版本。
Application TCP IP Data Link Physical Application Presentation Session Transport Network Data Link Physical OSI Layer 與 TCP/IP Layer OSI 7 Layer TCP/IP 5 Layer
攻擊方式 • 大部分的攻擊方式包括︰ • 假冒IP (IP Spoofing) • 各種形態的竊聽(eavesdropping) • 封包察看(Packet sniffing)
IPSec Framework ISAKMP/IKE Application Layer/Protocol(HTTP,FTP,SMTP) Transport Layer/Protocol(TCP,UDP,ICMP etc.) IPSec/Secure Transmission Protocol Network Layer/IP IPSec Architecture
IPSec之功能 • IETF(Internet Engineering Task Force)著手訂定了一套開放標準網路安全協定IPSec(IP Security),將密碼技術應用在網路層,以提供傳送、接收端做資料的認證(Authentication)、完整性(Integrity)、存取控制(Access Control)以及機密性(Confidentiality)等安全服務。 • IPv4與IPv6: • IPv4: 隨意的(Optional) • IPv6: 強制的(Mandatory)
IPSec之特色 • IPSec並不是針對特定加解密演算法而設計,而是提出一個共同的基礎架構。因此如果有新的演算法可以很容易套用到IPSec上,非常具有彈性。 • IPSec同時設計來必須保持透通性,即尚未升級為IPSec的IP通信系統也可以和IPSec系統共存而互通。
利用IPSec有三種主要應用方式: • 在校園網路(campus network)上用來加密保全網路連線 • 透過Internet連結企業網路與分公司 • 個人經由Internet對公司區域做遠端存取。(即所謂的“端對端”IPSec形態,安裝有IPSec 軟體的用戶端機器,透過IP網路對伺服器建立起安全的通道。) • IPSec主要是設計來達到網路層中端對端安全通訊的第三層協定。
其他協定 1. SSL (Secure Socket Layer) • 專用於保全瀏覽器和網頁伺服器的網頁會談,而不是下層的IP連線本身。 • 可以在IPSec連線存在的環境下,同時在網頁程式上使用SSL。 2. PPTP (Point-to-Point Tunneling Protocol) • 透過“苗條”密碼的安全性,來做到資料的通道傳輸。 • 它用了比IPSec更短的金鑰長度,破解起來也容易得多。
3. L2TP (Layer 2 Tunneling Protocol): • 不限於服務IP通道 • 不但可傳達IPX,語音和視訊等多點傳播應用程式的資料也沒有問題。 • 提供使用者層次的認證 • Microsoft現在結合L2TP和IPSec,因L2TP在VPN上包封資料交通必須仰賴強大的安全性。
IPSec Network layer/IP Secure Host/Subnet-Host/Subnet No surgery on current applications Performance degraded for all application Sender authentication SSL Transport layer/Socket Secure Application - Application Applications have to be modified Applications do not use SSL do not suffer performance loss No sender authentication IPSec vs SSL
瀏覽器/ SSL Application Application TCP/UDP transport layer TCP/UDP transport layer IPSec driver IPSec driver Internet layer Encrypted IP packets IPSec
IPSec, SA 資料封包轉換 金鑰管理 ISAKMP/ SKIP AH ESP Oakley(IKE) ESP ESP MD5 SHA-1 Triple-DES DES-CBC IPSec之結構 • 整個IPSec大致上可以分成資料封包轉換、與自動金鑰加密與管理兩個部份。
IPSec定義兩種資料封包轉換:AH (Authentication Header)和ESP (Encapsulation Security Payload)。受保護的一般資料封包透過這兩種轉換以達到安全保密的目的。 • 這兩種轉換的編碼方式並不是只適用少數特定的加密或身分驗證之演算法,而是由SPI(Security Parameter Index)來指明通訊的兩端事先約定所採用的加密或身分驗證之演算法或其他參數。 • 這兩種封包轉換是可以彼此組合使用的,其方式又分成隧道模式(Tunnel Mode)和傳送模式(Transport Mode)兩種。
IP AH提供資料的完整性和認證,但不包括機密性。而IP ESP原則上只提供機密性,但也可在ESP Header中訂定適當的演算法及模式來確保資料的完整性並認證。 • IP AH和IP ESP可以分開使用或一起使用。 • IPSec包括IP AH和IP ESP中所使用的金鑰交換和管理,也就是安全群組SA(Security Association)和金鑰管理IKE(Internet Key Exchange)。 • DOI(Domain of interpretation)是為了讓其他協定可以使用ISAKMP而定的Framework。
ESP protocol AH protocol Encryption algorithm Authentication algorithm DOI Key management IPSec architecture
SKIP與ISAKMP/Oakley都是金鑰管理協定。ISAKMP/Oakley較SKIP有彈性,且能支援較多的協定,已被選為IPv6的金鑰管理協定。SKIP與ISAKMP/Oakley都是金鑰管理協定。ISAKMP/Oakley較SKIP有彈性,且能支援較多的協定,已被選為IPv6的金鑰管理協定。
IPSec 架構 • SAD: Security Association Database • SPD: Security Policy Database
IP AH • IP AH提供認證及裝載資料的完整性,供通訊的兩端驗證該資料封包的確為對方所傳出,但不含機密性。 • 由於它不提供機密性,所以不受密碼元件有對外輸出的官方限制,故能橫跨不同的國家的網際網路使用。
AH使用需要128位元金鑰的MD5(Message Digest 5)計算出整個資料的雜湊函數值(也可使用SHA-1(Secure Hash Algorithm 1)),使得接收端(知道金鑰的人)也可以驗證,計算是否使用相同的密鑰以檢查資料是否正確完整。 • 若檢查不符,則將此封包丟棄。 • 依據IPSec規定,IPv6每部主機應能提供密鑰長度128位元的MD5,而所以IPv4也應宣告能支援此項AH功能。
格式說明 • 下一標頭(8 bits):定義AH後面資料的類型 • 長度(8 bits)︰認證資料欄位的長度 • 保留(16 bits) :保留位元做未來之用 • SPI(Security Parameter Index, 32 bits): • 指明通訊的兩端事先約定所採用的加密或身分驗證之演算法與其他參數。 • 識別碼、目的位址和轉換格式(此為AH 轉換)唯一決定一個安全參數組合SA(Security Association)
序號(32 bits): • 為嚴格遞增函數 • 用來去除資料封包在傳遞時產生的錯誤,以及防止重送攻擊 • 認證資料(Authentication Data): • 為任意長度(IPv4為32位元的整數倍, IPv6為64位元的整數倍)之資料 • 其內容為完全檢查值ICV(Integrity Check Value)加上末端補齊(Padding) • 完整檢查值之長度視所採用之身分認證演算法(SPI決定)而定(MD5或SHA-1)
HMAC-MD5與HMAC-SHA-1 • 一般來說,SHA-1是被認為比MD5還強的hash function • HMAC(Hashed Message Authentication Code)是用一個secret key和一個hash function產生一個MAC(message authentication code)。HMAC可以讓其他hash function更不易受到攻擊,就算配合它使用的hash function有問題,還是可以提高安全性。
HMAC-MD5與HMAC-SHA-1(contd) • HMAC-MD5的輸出是128 bits,而HMAC-SHA-1是160 bits • 因authenticator length的內定值是96 bit,所以在一般情況下,兩種Hash function的Hash值都必須在填入前削短(truncated)
AH操作模式 Before applying AH Original IP header (any options) IPv4 TCP Data 1. IPv4 After applying AH Original IP header (any options) AH TCP Data IPv4 Authenticated except for mutable fields New IP header (any options) Original IP header (any options) TCP Data AH IPv4 Authenticated except for mutable fields in the new IP header
主 機 A Internet Security Gateway GW2 Security Gateway GW1 主 機 B 已加密的安全隧道 隧道模式的觀念
Before applying AH Original IP header Extra headers if present TCP Data IPv6 2. IPv6 After applying AH Hop-by-hop, destination, routing, fragment Original IP header Destination options TCP Data AH IPv6 Authenticated except for mutable fields Ext headers If present New IP header Ext headers if present Original IP header AH TCP Data IPv6 Authenticated except for mutable fields in the new IP header
IP ESP • IP ESP標準描述如何加密IP的裝載資料(Payload),加密的範圍可以是整個IP Datagram或者只是上層TCP, UDP或ICMP資料(完全決定在使用隧道模式或傳送模式)。 (Note: ICMP(Internet Control Protocol)攜帶了網路的錯誤訊息及其他須知會網路軟體的狀況) • IP ESP所使用的保密技術是DES或是Triple-DES,模式則是CBC (Cipher Block Chain) • IP ESP也能應用在認證、完整性,以及防止重送攻擊。
Security Gateway GW1 Security Gateway GW2 Internet (隧道模式) 主 機 A 主 機 B 主 機 C 主 機 D (傳送模式) AB:傳送模式 BA:隧道模式 • ESP的傳送模式:
IP ESP的隧道模式及傳送模式各有其優點。 • 隧道模式可以在兩個Security Gateway間建立一個安全“隧道”。 • 傳送模式加密的部份較少,沒有額外的IP標頭,故工作效率較佳。
7 15 23 31 0 安全參數索引 SPI ESP Header 順序號碼 (Sequence Number) Payload Data ESP Trailer Padding 填充長度 下一標頭 認證資料 • ESP格式: • ESP格式包含了ESP Header及ESP Trailer兩部份。
格式說明 • SPI、Sequence Number: 和AH的相同 • Payload Data: ESP中定義所承載的密文,有兩種可能 (1)完整的IP資料封包之密文 (2)IP資料封包的資料部份之密文 • 前者稱為隧道模式(Tunnel Mode),後者稱為傳送模式(Transport Mode) • 加密演算法由SPI指明通訊的兩端事先約定所採用的演算法
身分認證資料: • 此部份僅為承載之密文部份之完整檢查值,與AH不同(AH為整個IP資料封包之完整檢查值) • 此欄位亦為選項,由SPI指明
Before applying ESP Original IP header (any options) IPv4 TCP Data 1. ESP傳送模式: After applying ESP Original IP header (any options) ESP trailer ESP authorization ESP header Ipv4 TCP Data Encrypted Authenticated
Before applying ESP Original IP header Extra headers if present TCP Data IPv6 After applying ESP Hop-by-hop, destination, routing, fragment Original IP header ESP trailer Destination options ESP authorization ESP TCP Data IPv6 Encrypted Authenticated
ESP標頭直接加在欲傳送的資料前 • 這種模式可節省頻寬,因為IP標頭不須加密,不像隧道模式,一個封包有兩個IP標頭
步驟: (1) 使用ESP將IP Payload封裝起來 (2) 傳送端: (i) 利用使用者 ID 和目的端位址以得到SA環境 (ii) 用加密演算法(DES或Triple-DES)加密 傳送的資料 (3) 接收端: (i) 收到ESP封裝的封包時直接處理IP標題 (ii) 從ESP Header拿取SPI值以得到相對的SA (iii) 利用SA的安全環境所定的解密函數解 出所加密的資料
對傳送模式而言,解密的人就是目的位址端的使用者對傳送模式而言,解密的人就是目的位址端的使用者 • 針對Firewall, Gateway Proxy而言,使用隧道模式較為適合,因為他們不是原始的送、收端
New IP header (any options) Original IP header (any options) ESP authorization ESP trailer Data IPv4 ESP TCP 2. ESP隧道模式 Encrypted Authenticated IPv6 Original IP header New IP header New ext headers Original ext header ESP trailer ESP authorization ESP TCP Data Encrypted Authenticated
步驟: (1) 傳送端: (i) 先使用SA的相關訊息將IP的封包加密 (ii) 在前面加上ESP Header (iii) Prepend新的IP標頭 (2) 接收端:(i) 使用ESP Herder內容中的SPI值決定SA (ii) 解出ESP Herder後的裝載資料,就可以 取回原始的IP標頭與封包
AH與ESP混合使用 • IP AH與IP ESP可以獨立或混合使用 1. 先加密再認證 認證 傳送模式 加密 認證 隧道模式 加密
2. 先認證再加密 認證 加密
安全群組SA • 不同的安全參數組合由SPI、目的位址,與轉換格式(AH或ESP)唯一決定。 • SA (Security Association)定義了一個安全的“環境”,這個環境的內容包含了IP封包加密、解密,和認證的相關訊息,敘述如下: • 密碼功能:提供加密、解密或兩者同時 • 密碼演算法:例如加解密使用DES或Triple-DES,認證使用MD5或SHA-1 • 是否有啟始化向量 • SA的生命週期
SA可以用SPI(32 bits)來描述,也就是一個SPI值決定一個特定的SA例如: • 主機A可以通知主機B SPI值為1000,它所相對的SA環境,密碼功能為只有加密,用DES,金鑰為0x1234567890abcdef(長度為64位元)。 • 所以主機A就可以藉由SPI 1000的值來加密它的資料然後傳送到主機B。 • 當B收到封包後利用主機A和SPI的值就可以決定出SA而解密出原始資料。
SA是單向的(如AB),對主機A和主機B這兩個要建立安全通訊的主機而言,則需要兩個SA。((AB)和(BA))SA是單向的(如AB),對主機A和主機B這兩個要建立安全通訊的主機而言,則需要兩個SA。((AB)和(BA)) • SA有兩種鍵入方式: (1) 主機導向鍵入方式(Host-Oriented Keying): 不考慮使用者,從同一個系統所發出的封包,均 使用相同的金鑰 (2) 使用者導向鍵入方式(User-Oriented Keying): 以使用者為考量,允許使用者有不同的金鑰
hosta.aaa.com.tw hostb.bbb.com.tw Internet 主 機 Private Network Private Network 主 機 Security Gateway gate1.aaa.com.tw Security Gateway gate2.bbb.com.tw • 一個IPSec的實際例子: