周莉 譚方勇 許璐蕾 張燕
蘇州市職業(yè)大學(xué)計(jì)算機(jī)工程系 江蘇 215104
安全性是互聯(lián)網(wǎng)發(fā)展的重要前提。1998年 2月,IETF發(fā)布了IP安全協(xié)議,通常被稱(chēng)為IPsec。這是一套協(xié)議在網(wǎng)絡(luò)層,為IPv4和IPv6提供數(shù)據(jù)源認(rèn)證,數(shù)據(jù)完整性和數(shù)據(jù)保密。作為一個(gè)可擴(kuò)展的網(wǎng)絡(luò)安全集,IPsec的支持和越來(lái)越廣泛的采用。IPsec安全體系結(jié)構(gòu)包括四個(gè)部分:
(1) 安全協(xié)議:身份驗(yàn)證頭(AH)用于為IP數(shù)據(jù)報(bào)提供無(wú)連接的完整性,數(shù)據(jù)源認(rèn)證。 ESP提供機(jī)密性,數(shù)據(jù)源認(rèn)證,無(wú)連接的完整性,網(wǎng)絡(luò)層的保密性和有限的流量保密。 AH和ESP都支持兩種使用模式:傳輸模式和隧道模式。在傳輸模式下的協(xié)議主要為上層協(xié)議提供保護(hù),在隧道模式下,該協(xié)議適用于隧道IP數(shù)據(jù)包。
(2) 安全關(guān)聯(lián)和安全策略。安全關(guān)聯(lián)(SA)是一個(gè)單純的“連接”,能應(yīng)用AH或ESP提供單向的安全服務(wù),如果同時(shí)使用AH和ESP保護(hù)被施加到的交通流,則需要?jiǎng)?chuàng)建兩個(gè)(或更多)的SA。為了確保典型,在兩臺(tái)主機(jī)之間的雙向通信,或在兩個(gè)安全網(wǎng)關(guān)之間,兩個(gè)安全關(guān)聯(lián)(每個(gè)方向一個(gè))是必需的。安全策略針對(duì)多個(gè)通信參數(shù)(如IP地址、端口號(hào)、協(xié)議等),定義特定的網(wǎng)絡(luò)流量具體應(yīng)用的網(wǎng)絡(luò)安全服務(wù)。
(3) 密碼交互協(xié)議。Internet密鑰交換(IKE)是一個(gè)重要的IPsec協(xié)議。它的目的是進(jìn)行協(xié)商,并提供安全協(xié)會(huì)認(rèn)證的密鑰材料在受保護(hù)的方式。目前協(xié)議的版本為IKEv2,其定義了更高效的密鑰交換類(lèi)型,鍵,更安全的驗(yàn)證和加密機(jī)制,新方法的產(chǎn)生。
(4) 安全算法。IPsec指定算法包括 HMAC-MD5-96、HMAC-SHA-96、DES-CBC密碼算法等多少算法。
Linux2.6內(nèi)核提供了全新的對(duì)IPSec 的支持機(jī)構(gòu)。Linux 2.6內(nèi)核中的 IPSec支持機(jī)構(gòu)主要包括:內(nèi)核網(wǎng)絡(luò)協(xié)議棧中IPSec 處理的/無(wú)縫接入0,AH 協(xié)議、ESP 協(xié)議的處理,IPSec重要組件安全關(guān)聯(lián)SA 和安全策略SP 的數(shù)據(jù)結(jié)構(gòu)及相關(guān)訪問(wèn)算法,安全關(guān)聯(lián)數(shù)據(jù)庫(kù)SAD和安全策略數(shù)據(jù)庫(kù)SPD的構(gòu)建和訪問(wèn), IPSec 加密算法函數(shù)庫(kù)的支持, 基于 Netlink 套接字的內(nèi)核態(tài)與用戶(hù)態(tài)的通信支持, 以及內(nèi)核IPSec 的管理等。
VPN安全網(wǎng)關(guān)分為用戶(hù)控制臺(tái)模塊和內(nèi)核空間模塊和。如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)
安全網(wǎng)關(guān)管理控制臺(tái)為管理員提供一個(gè)管理配置接口。VPN管理員通過(guò)控制臺(tái)可以開(kāi)啟或關(guān)閉安全網(wǎng)關(guān)功能,并且在安全網(wǎng)關(guān)開(kāi)啟情況下,可以通過(guò)管理控制臺(tái)手工建立安全通道,配置安全策略、安全關(guān)聯(lián)等安全通信參數(shù)。
安全網(wǎng)關(guān)與內(nèi)核交互模塊是一個(gè)通信中樞,負(fù)責(zé)連接用戶(hù)空間進(jìn)程與內(nèi)核空間IPSec部分,主要進(jìn)行兩方面工作:
(1) 接收用戶(hù)空間進(jìn)程主動(dòng)發(fā)起的消息,包括管理控制臺(tái)和IKE守護(hù)進(jìn)程發(fā)送的請(qǐng)求,將用戶(hù)進(jìn)程的請(qǐng)求封裝成內(nèi)核IPSec管理可接受的消息格式,發(fā)送給內(nèi)核,最后監(jiān)聽(tīng)內(nèi)核處理的結(jié)果;
(2) 監(jiān)聽(tīng)內(nèi)核主動(dòng)發(fā)起的消息,包括:要求建立SA請(qǐng)求、SA生存期超期通知、安全策略生存期超期通知。
內(nèi)核IPSec管理部分也包含由內(nèi)核提供的內(nèi)核IPSec與用戶(hù)空間交互的通信接口,該部分接收用戶(hù)空間消息,調(diào)用內(nèi)核中提供的相應(yīng)的函數(shù),完成具體操作。
安全關(guān)聯(lián)數(shù)據(jù)庫(kù) SAD中包含了所有用于保護(hù)通信的安全關(guān)聯(lián),安全策略數(shù)據(jù)庫(kù) SPD中包含了所有使用的策略條目。所有入站和出站信包經(jīng)過(guò)IP層,接受IPSec處理時(shí)都要查詢(xún)SAD和SPD,來(lái)采取相應(yīng)的處理措施。
IPSec處理對(duì)外出數(shù)據(jù)提供加密和完整性保護(hù),對(duì)接收的和數(shù)據(jù)進(jìn)行解密和完整性檢驗(yàn),真正實(shí)現(xiàn)安全網(wǎng)關(guān)安全保障功能,這部分功能內(nèi)核提供。內(nèi)核加密算法庫(kù)為IPSec提供各種加密操作所需的函數(shù)。
模擬Internet環(huán)境下的IPSec VPN安全網(wǎng)關(guān)的應(yīng)用,進(jìn)行了測(cè)試,測(cè)試拓?fù)浣Y(jié)構(gòu)如圖2所示。
圖2 實(shí)驗(yàn)拓?fù)鋱D
兩臺(tái)計(jì)算機(jī)各裝兩塊網(wǎng)卡配置為 VPN安全網(wǎng)關(guān),由位于兩個(gè) VPN安全網(wǎng)關(guān)之后的兩臺(tái)計(jì)算機(jī)作為客戶(hù)端,模擬子網(wǎng)。
實(shí)驗(yàn)拓?fù)洵h(huán)境下的配置參數(shù)如下:
(1) 位于 VPN安全網(wǎng)關(guān) 1后的子網(wǎng)主機(jī) 1IP地址為192.168.100.2;
(2) VPN安全網(wǎng)關(guān) 1,雙網(wǎng)卡,連接子網(wǎng)的 IP地址為192.168.100.1,連接外網(wǎng)的IP地址為210.29.174.138;
(3) VPN 安全網(wǎng)關(guān)2,雙網(wǎng)卡,連接外網(wǎng)的網(wǎng)卡IP地址為210.29.174.159,連接VPN SGW2保護(hù)子網(wǎng)的網(wǎng)卡IP為10.1.1.1;
(4) 位于VPN 安全網(wǎng)關(guān)后的子網(wǎng)主機(jī)IP地址為10.1.1.2。
(1) 內(nèi)網(wǎng)(子網(wǎng)1)客戶(hù)機(jī)發(fā)出的信包
IP頭分析:總長(zhǎng)度60,生存時(shí)間128,協(xié)議值1(ICMP),源地址192.168.100.2,目的地址10.1.1.2。
(2) VPN安全網(wǎng)關(guān)1處理的信包
外部IP頭:總長(zhǎng)度104,生存時(shí)間127,協(xié)議值51(AH),源地址210.29.174.138,目的地址210.29.174.159;
AH頭:安全參數(shù)索引(SPI)00003000,序列號(hào)0000000c,驗(yàn)證數(shù)據(jù)3298 b78c 39 ab 003217 a66b 82。
(3) VPN安全網(wǎng)關(guān)2接收到信包
外部IP頭:總長(zhǎng)度104,生存時(shí)間127,協(xié)議值51(AH),源地址210.29.174.138,目的地址210.29.174.159;
AH頭:安全參數(shù)索引(SPI)00003000,序列號(hào)0000000c,驗(yàn)證數(shù)據(jù)3298 b78c 39 ab 003217 a66b 82。
(4) 內(nèi)網(wǎng)(子網(wǎng)2)客戶(hù)機(jī)接收到的信包
IP頭分析:總長(zhǎng)度60,生存時(shí)間126,協(xié)議值ICMP(1),源地址192.168.100.2,目的地址:10.1.1.2。
(1) 內(nèi)網(wǎng)(子網(wǎng)1)客戶(hù)機(jī)發(fā)出的信包
IP頭分析:總長(zhǎng)度60,生存時(shí)間128,協(xié)議值1(ICMP),源地址192.168.100.2,目的地址10.1.1.2;
(2) VPN安全網(wǎng)關(guān)1處理的信包
外部IP頭:總長(zhǎng)度112,生存時(shí)間127,協(xié)議值50(ESP),源地址210.29.174.13,目的地址210.29.174.159;
ESP頭:安全參數(shù)索引(SPI)00002000序列號(hào)00000005,初始化向量3c 36555e 6c cd ab 73。
(3) VPN安全網(wǎng)關(guān)2處理的信包
外部IP頭:總長(zhǎng)度112,生存時(shí)間127,協(xié)議值50(ESP),源地址210.29.174.138,目的地址:210.29.174.159;
ESP頭:安全參數(shù)索引(SPI)00002000,序列號(hào):00000005,初始化向量3c 36555e 6c cd ab 73。
(4) 內(nèi)網(wǎng)(子網(wǎng)2)客戶(hù)機(jī)接收到的信包
IP頭分析:總長(zhǎng)度60,生存時(shí)間128,協(xié)議值ICMP,源地址192.168.100.2,目的地址10.1.1.2;
本文所設(shè)計(jì)的 VPN管理控制臺(tái)可以很好地接收用戶(hù)命令,并實(shí)現(xiàn)對(duì)命令的轉(zhuǎn)發(fā);VPN內(nèi)核消息處理模塊,可以快捷、正確地和內(nèi)核交互消息,最終實(shí)現(xiàn)對(duì)IPSec VPN的配置管理工作,對(duì)基于Linux 2.6內(nèi)核IPSec VPN安全網(wǎng)關(guān)的設(shè)計(jì)是成功的。
[1](美)Naganand Doraswarmy,DanHarkins.IPSec新一代因特網(wǎng)安全標(biāo)準(zhǔn).機(jī)械工業(yè)出版社.2000.
[2]Adolfo Rodriguez,John Gatrell.TCP/IP權(quán)威教程(第七版).清華大學(xué)出版社.2002.
[3]王作芬,王芙蓉,黃本雄.虛擬專(zhuān)用網(wǎng)中 IPsec隧道技術(shù)的研究與實(shí)現(xiàn).計(jì)算機(jī)工程.2001.
[4]戴宗坤,唐三平.VPN與網(wǎng)絡(luò)安全.電子工業(yè)出版社.2002.
[5][美]Carlton R.Davis.IPSec:VPN的安全實(shí)施.清華大學(xué)出版社.2002.