一、前言
網際網路技術的興起,互連技術的成長,使得大家愈來愈仰賴Internet這個應用廣泛的公眾網路。因此如何讓使用者透過網際網路通訊,而不用擔心傳送的信息封包被截取、假冒,就顯得相當重要。因為這些封包內容可能有你的ID,信用卡號碼等重要的個人資料。
事實上,這幾年來網際網路上的安全標準有很多。例如:RFC1508和1509所規定的GSSAPI(Generic Security Service Application Program
Interface),Telnet,FTP和HTTP都可以使用;網際網路工程小組(Internet
Engineering Task Force; IETF)的PSRG小組所訂定的PEM標準可以達到E-mail的安全性,而網路最著名的E-mail安全軟體則是P. Zimmermann的PGP(Pretty Good Privacy);其他如EIT的S-HTTP(Secure HTTP),Netscape的SSL(Secure
Sockets Layer),Microsoft的PCT以及上面提及的GSSAPI均可建立HTTP的安全機制,Visa的SET(Secure Electronic Transfer)則能達到安全的電子商務(Electric Commerce)。這些不論是對話層(Session
Layer)或應用層(Application Layer)上的安全機制,使用者必須使用專屬的通訊協定,或特定廠商的產品。
所以會有這樣的問題,可以說都是TCP/IP惹的禍,IP標頭中有來源(Source),目的(Destination)位址,裝載資料(Payload),而TCP只負責將信息切割成封包,若遺失封包TCP再重送,所以TCP/IP根本沒有安全性可言,使用一般Sniffing軟體工具,即可一目瞭然地看到這些信息。
為了確保在任何IP網路上擁有安全的私密通信,也為了整合不同標準及不同廠商產品, IETF著手訂定了一套開放標準網路安全協定IPSec (IP Security)。將密碼技術應用在網路層,以提供傳送、接收端做資料的証證(Authentication)、完整性(Integrity)、存取控制(Access
Control)、以及機密性(Confidentiality)等安全服務。高層的應用協也可以直接或間接地使用這些安全服務。
IPSec是設計來達到網路層中端對端安全通訊的第三層協定,它主要的架構是IP認証標頭(Authentication
Header; AH)以及IP封裝安全裝載(Encapsulating
Security Payload; ESP)。IP AH提供資料的完整性和認證,但不包括機密性,而IP ESP原則上只提供機密性,但也可在ESP Header中訂定適當的演算法及模式來確保資料的完整性並認證,IP AH和IP ESP可以分開使用或一起使用。完整的IPSec還應包括IP AH和ESP中所使用金鑰的交換和管理,也就是安全群組(Security Assocication; SA)和金鑰管理IKE(Internet Key Exchange),圖(一)是IPSec架構圖,其中DOI(Domain of interpretation)是為了讓其他協定可以使用ISAKMP而訂定的Framework,圖(一)讓我們很清楚知道IPSec和IKE所扮演的角色。
本文的第二部份將介紹IP AH,第三部份的內容是IP
ESP,第四部份敘述安全群組SA的觀念,第五部份則是以一個實際的例子來說明IP AH和IP ESP實際運作的情形,第六部份介紹SKIP及ISAKMP/Qakley兩個IETF所參考的金鑰管理協定。ISAKMP/Oakley較有彈性且能支援較多的協定,已被選為IPv6的IPSec金鑰管理協定。最後一部份則是以ISPec的角度來看它在VPN上的應用,並整理列出目前VPN符合IPSec標準的商用產品。
雖然針對IP層的安全機制尚有其他的IP
Tunneling技術,例如基植於PPP而發展的PPIP(Point-to-Point
Tunneling Protocol),這是由Microsoft和Ascend所共同提出,可支援IP/IPX/NetBEUI,支援的廠商則有Nortel,3COM。另外L2TP(Layer 2 Tunneling Protocol)則是融合了PPTP和Cisco的L2F(Layer
2 Forwarding),主要的廠商有Nortel和IBM。
本文主要介紹IFTF所制定的開放標準IPSec,因為它能整合不同的VPN系統而達到安全地網路互連目的。
二、IP AH格式
IP
AH提供認証及裝載資料的完整性,但不含機密性。由於它不提供機密性,所以不受密碼元件有對外輸出的官方限制,故能橫跨不同的國家的網際網路使用。
IP
AH使用需要128位元金鑰的MD5(Message
Digest 5)計算出整個資料的雜湊函數值(註:此單向雜湊數也可使用SHA-1 (Secure Hash Algorithm 1)),使得接收端(知道金鑰的人)也可以驗証、計算是否使用相同的密鑰以檢查資料是否正確完整,若檢查不符則將此封包丟棄。依據IPSec規定,IPv6每部主機均應能提供密鑰長度128位元的MD5,而所有IPv4也應宣告能支援此項AH功能。
IP
AH的格式如圖(二).a所示,其中每項欄位的意義分別敘述如下:Next Header長度8個位元,這個標頭是定義AH後面資料的類型;資料長度欄位也是8個位元,它決定認證資料欄位的長度,另外還有16個保留位元做未來之用。安全參數索引(Security Parameter Index; SPI)是長度32個位元的虛擬亂數,決定安全群組SA的內容,例如”0”是表示沒有SA,而1~255則是保留值。在SPI後面的是順序號碼欄位(Sequence Number Field),加入這個號碼可防止重送攻擊(Replay
Attack)。最後一個欄位是認證資料長度是可變的(32位元的倍數)。圖(二).b顯示了使用信息摘要函數MD5,它產生128位元的雜湊函數值。從圖中也可看出對IPv4或IPv6而言。IP AH 是在IP標頭和TCP(或UDP)之間。
在IPSec中不管是IP AH或IP ESP,均有兩種不同的操作模式,隧道模式(Tunneling Mode)及傳送模式(Transport Mode)。還沒介紹IP AH兩種模式前,我們先用圖(三)來解釋最常使用的技術
“隧道模式” 的觀念,整個IP
datagram被包在新的datagram中。圖(四).a~c分別為原始的IP datagram , AH傳送模式及 AH隧道模式,對於AH隧道模式而言,最後它只是一個新的IP datagram而已。
三、IP ESP格式
IP
ESP標準描述如何加密IP的裝載資料(Payload)
,加密的範圍可以是整個IP Datagram或者只是上層TCP,UDP,或ICMP資料(完全決定在使用隧道模式或傳送模式)。IP ESP所使用的保密技術是數據保密標準(Data Encryption Standard; DES)或是Triple-DES,模式則是加密區塊鏈(Cipher
Block Chain ; CBC)。除了加密以外,IP ESP也能應用在認證,完整性,以及防止重送攻擊。
IP
ESP的隧道模式及傳送模式各有其優點。隧道模式可以在兩個Security Gateway間建立一個安全 “隧道”,如圖(五)所示,經由這兩個Gateway
Proxy的傳送均在這個隧道中進行。反觀傳送模式加密的部份較少,沒有額外的IP標頭,故工作效率較佳。
這兩種模式的操作詳細說明如下:
1.傳送模式:
圖(六).a為IP ESP的傳送模式,ESP標頭直接加在欲傳送的資料前,這種模式可節省頻寬。因為IP標頭不需加密,所以不像隧道模式,一個封包中有兩個IP標頭。
首先將IP裝載資料使用ESP封裝起來(ESP Header和 ESP
Trailer)。傳送端利用使用者ID和目的端位址以得到SA環境(下一節會加以介紹),然後用加密演算法(DES或Triple-DES)加密傳送的資料。接收端收到ESP封裝的封包時直接處理IP標題(因為沒有加密),然後從ESP Header拿取SPI值以得到相對的SA,再利用SA的安全環境所訂的解密函數解出所加密的資料。
對傳送模式而言,解密的人就是目的位址端的使用者。但是針對Firewall, Gateway
Proxy而言,使用隧道模式則較為合適,因為他們並不是原始的送,收端。
2.隧道模式
圖(六).b是隧道模式的架構圖,隧道模式可以簡單地用一句話來說明 “IP-in-IP”。首先使用SA的相關訊息將IP的封包加密(含IP標頭),接下來在前面加上ESP Header。然後Prepend新的IP標頭。接收端收到ESP封包後,使用ESP
Header內容中的SPI值決定SA,然後解出ESP Header後的裝載資料,就可以取回原始的IP標頭與封包,可以繼續地往下傳。
圖(七)是ESP Header及ESP
Trailer的內容, ESP Header包含了SPI值,啟始化向量IV,及順序號碼欄位等,其中順序號碼可防止重送攻擊。
3.IP AH與IP ESP混合使用
IP
AH與IP ESP可以獨立或分開使用。圖(八).a是先加密再認證,資料認證之前作加密。圖(八).b則是先認證再加密,它的好處是對認證資料也有加密,因此沒有人可以更動認證資料。
在介紹完下一節安全群組SA的觀念之後,我們將會以一個實際的例子來說明IPSec中IP Header ,IP AH, IP ESP, SPI等的操作情形。
第一代的IPSec版本於1995年提出(rfc 1825, rfc 1826, rfc 1827),它對金鑰的交換和管理並未定義,所強調的內容是封包轉換的格式。但網路安全規格近年來改革頻繁,目前最新的IPSec版本已於1998年提出(rfc 2401, rfc 2402, rfc 2406),增加自動金鑰交換且更新了封包轉換的格式,使得IPSec架構愈趨完整。
四、安全群組SA
在IPSec標準中最重要的項目就是SA,它定義了一個安全的”環境”,這個環境的內容包含了IP封包加密,解密,和認證的相關訊息,敘述如下:
l
密碼功能:提供加密或認證或兩者同時。
l
密碼演算法:例如加/解密使用DES(或 Triple-DES)認證使用MD5 (或SHA-1)。
l
密碼演算法中所使用的金鑰,金鑰的生命週期等。
l
是否有啟始化向量。
l
SA的生命週期
SA可以使用安全參數索引SPI(32位元)來描述,也就是一個SPI值決定一個特定的SA,而主機的IP位址與SPI則定義了唯一的SA。例如主機A可以通知主機B SPI值為1000,它所相對的SA環境,密碼功能為有只加密,用DES,金鑰為0x1234567890abcdef(長度64位元,其中8個位元為同位元)。所以主機A就可以藉由SPI 1000的值來加密它的資料,然後傳送到主機B。當B收到封包後利用主機A和SPI的值就可以決定出SA而解密取回原始資料。
從上面的敘述可以發現SA是單向的(A®B),但是對主機A與主機B這兩個要建立安全通訊的主機而言則需要兩個SA,每一方向一個,(A®B)和(B®A)。
此外SA的使用有兩種鍵入方式,主機導向鍵入方式(Host-Oriented Keying)與使用者導向鍵入方或(User-Oriented Keying)。前者是不考慮使用者,從同一個系統所發出的封包,均使用相同的金鑰,而後者則是以使用者為考量,允許使用者有不同的金鑰。例如:同一使用者有多把金鑰用於不同的服務,如FTP與Telnet使用不同的金鑰。
五、一個IPSec的實際例子
二~四節已介紹了IPSec的基本架構,IP AH, IP ESP, SA, SPI等。現在我們將這些全部放在一起以實際的例子來加以說明。
EXAMPLE:假設有一個主機yang.chtti.com.tw欲藉由IPSec安全機制將具有加密及認證的TCP封包送到另一部主機yang.csie.ndhu.edu.tw。它希望它的gateway gatekeeper.chtti.com.tw能做加密,認証的工作,而對方的gateway gw.csie.ndhu.edu.tw能解密這些封包並認証,使用的SPI參數值假設是0x1234是指向大家事先同意的安全群組SA。
圖(九)是這個IPSec例子的說明示意圖,當主機yang.chtti.com.tw所送的封包到它的gateway時, gateway加密封包並加入ESP Header,然後加入AH和新的IP標頭,其中以gateway的位址gatekeeper.chtti.com.tw當作新的來源位址,並以gw.csie.ndhu.edu.tw當作新的目的端位址,最後計算雜湊函數值並加在AH中。
圖(十)是CHECK POINT Firewall-1(CHEK POINT在Firewall市場佔有率約44%)的例子,Firewall-1有很好的人機界面(GUI),從圖中可以清楚看出使用了AH和ESP,認證用的單向雜湊函數為SHA-1,加密演算法為DES,同時也可看到加密及認證的金鑰,SPI的數值為0x1234。
由於安全群組SA可以是不同的,所以我們也可以在CHECK POINT Firewall-1中的Security Policy加入下面兩條規則(rule),如圖(十一)所示。因為使用的SPI值不一樣,從yang.chtti.com.tw到yang.csie.ndhu.edu.tw的方向是使用SPI
0x1000,反方向則是使用SPI 0x2000,這兩台主機彼此做FTP時使用的演算法跟金鑰可以是不同的。
六、IPSce的金鑰管理方法
在IP AH和IP ESP中所用到的認證與加密金鑰,如何交換與管理呢!一把金鑰是否一直使用呢!這些問題都尚末提及,這些問題對IPSec而言是非常重要的課題。
如果是幾台主機,可以用人工的方式來交換金鑰,例如打電話或E-mail,但是主機數目一多,或者是主機資料常更改,這時侯就需要一套安全且正式的協定來做這件事情了。
目前主要的金鑰管理協定的參考規範有:(1)SKIP(Simple Key-management for IP)(2)ISAKMP/Oakley(Internet
Security Association Key Management Protocol /Oakley )。上述兩種方法都可應用在IPv4與IPv6中,SKIP較為簡單,而ISAKMP/Oakley則可以應用於較多的協定。事實上,IP層的金鑰交換協定尚有Photuris和SKEME等。
1.SKIP:
SKIP是由Sun Microsystem所發展,目有三種版本:Sun, TIK,和ELVIS+SKIP。SKIP金鑰管理的觀念是階層式的金鑰管理,如圖(十二)所示。通訊的雙方真正共享的密鑰是Kij(這是利用Diffie
Hellman的公開金鑰對而達到共享的)。為了安全的考量,公開金鑰應至憑證管理中心(Certificate Authority;CA)申請憑證。因此IPSec的使用也需要每一國家的公開金鑰基礎建設(Public Key Infrastructure;PKI)來配合。
使用Kij推導而得Kijn=MD5(Kij/n),其中n是現在時間距離1995年1月1日零點的時數,Kijn是一個長期金鑰(每隔1小時更換一次),利用Kijn這把金鑰將短期金鑰Kp(每隔2分鐘更換一次)加密後插入SKIP Header送到對方。接收端收到後利用Kijn解回Kp。接下來雙方使用E_Kp=MD5(Kp/0)及A_Kp=MD5(Kp/2)導出加密金鑰E_Kp和認證金鑰A_Kp。由於金鑰推導過程是一層一層的,因SKIP稱之為階層式的金鑰管理架構。
我們一樣使用第五節的例子:”當主機yang.chtti.com.tw欲與主機yang.csie.ndhu.edu.tw啟動通訊”,來討論SKIP協定,圖(十三)是SKIP封包內容的描述。
SKIP原欲與ISAKMP整合考量,但失敗了。因為IPv6已決定使用ISAKMP與Oakley金鑰交換的合併協定,也就是ISAKMP/Oakley(現已稱作IKE;Internet Key Exchange)。所以SKIP並非IPSec強制規定的金鑰管理方法。
2.ISAKMP/Qakley(IKE):
Oakley金鑰交換協定是由亞利桑那大學所提出,它與SEKME有相當多的共同部份(註:SEKME則是Photuris的延伸)。
ISAKMP有兩個操作階段。第一階段中,相關的一些安全屬性經過協商,並產生一些金鑰,…等。這些內容構成第一個SA,一般稱作ISAKMP SA,與IPSec SA不一樣的是它是雙向的。第二階段則是以ISAKMP SA的安全環境來建立AH或ESP的SA。
IKE則是ISAKMP使用Oakley的一些模式和SKEME快速rekey的觀念合併而成,它有(1)Main Mode (2)Aggressive Mode (3)Quick
Mode(4)New group mode等四種模式。
七、IPSec在VPN上的應用(代結論)
在了解IPSec協定的工作原理後,我們來看它不同的用場合,值得注意的是在網路層提供安全機制,對應用層而言是完全透通的(trarsparent)。IPSec可以裝設在gateway或主機上,或是兩者同時,若IPSec裝在gateway上,則可在不安全的Internet上提供一個安全的通道,若是裝在主機,則能提供主機端對端的安全性。圖(十四).a~c分別是gateway對gateway,主機對gateway,主機對主機三種可能的應用狀況。
表(一)刊出符合IPSec的商用VPN產品,作為本文的結束。
參考資料:
1.V. Ahuja,”Secure Commerce on the Internet”,AP Proffesional,1998.
2.L.J. Hughes原著,連秀婂譯,”Internet安全技術實務”博碩1996.
3.1998”VPN技術與應用趨勢研討會”,1998.
4.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






表(一):符合IPSec的VPN產品
|
項次 |
產品銷售者 |
金鑰管理 |
項次 |
產品銷售者 |
金鑰管理 |
|
1 |
Checkpoint |
SKIP |
8 |
Raptor system Inc. |
ISAKMP/Oakley |
|
2 |
Cisco systems Inc. |
ISAKMP/Oakley |
9 |
Secure Computing |
手動 |
|
3 |
Cycon technologies |
手動 |
10 |
Securicor 3Net
Ltd. |
手動 |
|
4 |
IBM |
手動 |
11 |
Sun Microsystems I |
SKIP |
|
5 |
IRE Inc. |
ISAKMP/Oakley |
12 |
Timestep corp. |
ISAKMP/Oakley |
|
6 |
NSC(Net. Sys.
Corp.) |
Proprietary
dynamic |
13 |
TIS(Trusted Info.
Sys. ) |
ISAKMP/Oakley |
|
7 |
Radguard Ltd. |
ISAKMP/Oakley |
14 |
VPNet |
SKIP |