司 蕾
蘇州高博軟件技術職業(yè)學院,江蘇蘇州 215163
IPSEC場景應用分析
司 蕾
蘇州高博軟件技術職業(yè)學院,江蘇蘇州 215163
本文提出一種在多IPSEC隧道場景下查詢SA的方法,并且與常見的方法進行效率對比,供技術感興趣者和相關領域者參考。
IPSEC;加密 ;IPSEC SA
隨著IP技術的普及,特別是在移動通信,銀行系統(tǒng)等對安全要求比較高的領域,IPSEC加密技術成為運營商或者廠家的首選。IPSEC技術包含IKE協(xié)議、加密和認證技術等,這些相關技術基本上都是標準組織在協(xié)議或者草案已經(jīng)定義好的,但是實際在各種應用場景下還是會出現(xiàn)很多可擴展性的技術,以適應各種IPSEC應用場景。
“Internet 協(xié)議安全性 (IPSec)”是一種開放標準的框架結構,通過使用加密的安全服務以確保在 Internet 協(xié)議 (IP) 網(wǎng)絡上進行保密而安全的通訊。IPSEC技術常見的網(wǎng)絡部署場景一般有對稱型網(wǎng)絡和不對稱型網(wǎng)絡兩種。
對稱型網(wǎng)絡一般適用于企業(yè)的分部之間或者企業(yè)與企業(yè)之間,在互聯(lián)網(wǎng)絡上兩臺安全網(wǎng)關協(xié)商IPSEC隧道,用于加密所有流經(jīng)的機密數(shù)據(jù);不對稱型網(wǎng)絡一般適用于遠端接入,例如經(jīng)常在外的企業(yè)人員需要訪問企業(yè)內(nèi)部的網(wǎng)絡,可以隨時在網(wǎng)絡上向安全網(wǎng)關發(fā)起ISPEC隧道協(xié)商,協(xié)商加密隧道后,訪問企業(yè)內(nèi)部網(wǎng)絡。兩種網(wǎng)絡結構,最大的不同點在于對稱型網(wǎng)絡中兩側的客戶端不需要具有IPSEC功能,而不對稱型網(wǎng)絡中要求接入側的客戶端具有IPSEC功能。本文主要講解不對稱型網(wǎng)絡在IPSEC應用中的各種技術點的分析。
隧道模式,顧名思能義是雙層IP地址的應用類型,即外層IP地址用于路由轉發(fā),內(nèi)層IP報文是真正的用戶數(shù)據(jù)報文。如下圖所示,當客戶端需要發(fā)出加密數(shù)據(jù)時:
第一步,首先生成需要加密的數(shù)據(jù),其中Inner IP是指客戶端的內(nèi)部邏輯IP,用于與對端客戶端交互的IP(注:對端客戶端在企業(yè)內(nèi)部,不需要具有IPSEC功能);
第二步,使用外部IP地址進行封裝,同時加上ESP頭對第一步生成的數(shù)據(jù)進行加密
第三步,網(wǎng)絡對加密數(shù)據(jù)報文進行轉發(fā),其中轉發(fā)的依據(jù)是外部IP目的地址是安全網(wǎng)關;
第四步,安全網(wǎng)關收到數(shù)據(jù)后,對報文“剔除”外層IP頭以及ESP頭,對加密數(shù)據(jù)進行解密后恢復原始數(shù)據(jù);
第五步,網(wǎng)絡原始數(shù)據(jù)報文進行轉發(fā),轉發(fā)的依據(jù)是內(nèi)層IP目的地址是企業(yè)內(nèi)部的各個客戶端。
對于安全網(wǎng)關來說,需要接入成千上萬的IPSEC客戶端,如何來區(qū)分各個IPSEC客戶端呢,使用各自的加密和認證算法進行加密和解密呢?
每一個客戶端接入安全網(wǎng)關都需要協(xié)商以下參數(shù)才能建立IPSEC隧道:
1)加密和認證算法,例如3DES,ASE128以及認證算法MD5,SHA1等;
2)需要加解密的數(shù)據(jù)流,也就是IPSEC ACl,源IP目的IP;
3)加密密鑰和認證密鑰,每一個IPSEC的隧道密鑰必然不同。
以上數(shù)據(jù)的合集在IPSEC技術框架中的術語叫IPSEC SA(),即IPSEC安全聯(lián)盟,每一個IPSEC SA代表需要加密的那份數(shù)據(jù)需要的參數(shù)。如果安全網(wǎng)關無法區(qū)分客戶端,下行數(shù)據(jù)流就無法正確發(fā)到客戶端或者加解密失敗。
IKE協(xié)議交互分為兩個階段,第一階段為IKE SA的建立,第二階段為IPSEC SA的建立.IPSEC SA建立在IKE SA的基礎上,IPSEC SA主要目的是建立后續(xù)業(yè)務數(shù)據(jù)需要加密的密鑰以及哪些數(shù)據(jù)需要加密.如下圖所示,TSi(Traffic Selector Initiator)和TSr為Traffic Selector Responser,發(fā)起者的流量范圍與接收者的流量范圍兩者相與,便可以獲取需要加密的數(shù)據(jù)acl.
例如上述IPSEC客戶端之間的IPSEC協(xié)商時,TS為必選參數(shù)。
TSi為192.168.1.0/24-192.168.2.0/27
TSr為192.168.1.0/27-192.168.2.0/24
那么最終協(xié)商的traffic selector為192.168.1.0/27-192.168.2.0/27
根據(jù)IKE協(xié)議交互我們得知,IKE協(xié)商時traffic selector是一個非常重要的參數(shù),如果客戶端與安全網(wǎng)關不一致時,隧道是無法協(xié)商成功的,我們一般稱traffic selector為IPSEC ACL。
根據(jù)以上分析得知,當安全網(wǎng)關收到需要加密的數(shù)據(jù)時,可以根據(jù)內(nèi)層的數(shù)據(jù)自動匹配IPSEC ACL選擇IPSEC SA,也就是匹配到不同的客戶端。如上圖所示。
基于ACL查詢的IPSEC場景適合于內(nèi)層IP地址網(wǎng)段能比較容易區(qū)分,也就是每一個IPSEC對等體的流量范圍不一致時。當內(nèi)層網(wǎng)段無法區(qū)分每一個客戶端,并且ACL只能使用相同的ACL時,如下圖所示,所有的IPSEC客戶端的內(nèi)層IP都有3個網(wǎng)段,無法進行歸類,只能使用0.0.0.0/0通配符網(wǎng)段。
在該場景下安全網(wǎng)關不能再通過協(xié)商的ACL來進行SA查詢了,因為所有客戶端協(xié)商的ACL源地址網(wǎng)段都是0.0.0.0/0通配符。為了能正確匹配所有客戶端,安全網(wǎng)關需要為每一個客戶端配置內(nèi)層IP網(wǎng)段的路由(即需要加密的數(shù)據(jù)流的網(wǎng)段),并且每一條路由與IPSEC隧道標示進行關聯(lián),這樣就可以通過路由正確匹配IPSEC SA了。假設安全網(wǎng)關接入兩個客戶端,在安全網(wǎng)關上需要做如下部署:
1)IPSEC客戶端1的IPSEC隧道記錄為tunnel1
IPSEC客戶端2的IPSEC隧道記錄為tunnel2。
2)ip route 192.168.1.1/29 tunnel1;
ip route 172.16.1.1/29 tunnel1;
ip route 10.192.1.1/29 tunnel1;
ip route 192.168.2.1/29 tunnel2;
ip route 172.16.2.1/29 tunnel2;
ip route 10.192.2.1/29 tunnel2。
基于筆者的經(jīng)驗,對以上兩種IPSEC SA的查詢方式作了比較,提供給使用者以及相關技術開發(fā)者參考。
[1]Harkins,D.and D.Carrel,"The Internet Key Exchange(IKE)",RFC 2409,1998,11.
[2]D.Maughan,and J.Turner“Internet Security Association and Key Management Protocol (ISAKMP)”,RFC 2408,1998,11.
TP39
A
1674-6708(2010)30-0222-02