專利名稱:在應(yīng)用層實(shí)現(xiàn)vpn協(xié)議的系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)通信封裝的方法,尤其涉及一種在系統(tǒng)應(yīng)用層實(shí)現(xiàn)IPSec協(xié)議封裝的方法;該方法可以防止IPSec報(bào)文在系統(tǒng)核心層被其它程序阻止,從而確保IPSec報(bào)文順利通過系統(tǒng),實(shí)現(xiàn)安全通信。
背景技術(shù):
隨著Internet的發(fā)展,網(wǎng)絡(luò)安全問題也越發(fā)突出,尤其是如何利用因特網(wǎng)進(jìn)行私有通信目前已經(jīng)成為一個(gè)熱點(diǎn)問題。目前主要通過VPN技術(shù)來解決這一問題。當(dāng)前主流的VPN產(chǎn)品都會(huì)遵循標(biāo)準(zhǔn)IPSec來實(shí)現(xiàn),因?yàn)镮PSec是一個(gè)全球性的安全標(biāo)準(zhǔn),只有IPSec嚴(yán)格遵循了各種協(xié)議規(guī)范,才可以實(shí)現(xiàn)不同廠家VPN產(chǎn)品之間的互通。IPSec協(xié)議給出了應(yīng)用于IP層上網(wǎng)絡(luò)數(shù)據(jù)安全的一整套體系結(jié)構(gòu)。
目前,有很多VPN廠商都提供了VPN客戶端軟件,來方便移動(dòng)用戶的遠(yuǎn)程接入訪問。這些VPN客戶端軟件通常是在操作系統(tǒng)核心層安裝一個(gè)數(shù)據(jù)截獲的模塊,從而對(duì)外出通信報(bào)文進(jìn)行加密和封裝。由于用戶的操作系統(tǒng)有很多種,因此這些客戶端軟件需要支持大量的不同的操作系統(tǒng),例如Windows98、Windows2000、WindowsXP、Windows2003、Linux等。這些不同的操作系統(tǒng)就會(huì)帶來不同的編程語(yǔ)言、不同的實(shí)現(xiàn)方式、不同的應(yīng)用環(huán)境,從而給開發(fā)人員帶來很多程序設(shè)計(jì)的復(fù)雜性。由于Winodws操作系統(tǒng)是開放的,用戶機(jī)器上已經(jīng)安裝了大量的應(yīng)用軟件。這些應(yīng)用軟件有些采用和VPN客戶端同樣的實(shí)現(xiàn)方式,例如殺毒軟件和個(gè)人防火墻軟件等。在這種情況下,如果用戶主機(jī)已經(jīng)安裝了這些沖突軟件,再安裝VPN客戶端軟件,這樣很容易造成多個(gè)程序之間互相爭(zhēng)奪內(nèi)核空間,互相修改網(wǎng)絡(luò)協(xié)議棧,結(jié)果導(dǎo)致沖突,而核心層發(fā)生沖突往往會(huì)引起系統(tǒng)的死機(jī)甚至崩潰。
VPN客戶端會(huì)安裝在一臺(tái)什么樣的終端設(shè)備上常常是預(yù)先無法知道的,而且具體使用VPN客戶端的用戶,根據(jù)其實(shí)際的工作需要以及個(gè)人喜好,安裝了哪些其它安全工具都不得而知,所以如果按照常規(guī)的思路,在系統(tǒng)核心層實(shí)現(xiàn)IPSec協(xié)議,不可避免地會(huì)和其它程序產(chǎn)生沖突,從而對(duì)VPN客戶端的應(yīng)用環(huán)境適應(yīng)性產(chǎn)生極為不利的影響。
發(fā)明內(nèi)容
本發(fā)明正是基于上述問題而提出了在系統(tǒng)應(yīng)用層實(shí)現(xiàn)IPSec VPN的方法,通過把原來需要在操作系統(tǒng)核心層對(duì)報(bào)文進(jìn)行處理的模塊移到應(yīng)用層進(jìn)行實(shí)現(xiàn),不僅避免了和其它類似軟件的沖突,而且可以方便地在不同的操作系統(tǒng)之間進(jìn)行移植,具有非常明顯的技術(shù)優(yōu)勢(shì),從而大大提高VPN客戶端的應(yīng)用環(huán)境適應(yīng)性。因此,本發(fā)明的目的就是克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種在應(yīng)用層實(shí)現(xiàn)VPN的系統(tǒng)及其方法。
1、在應(yīng)用層實(shí)現(xiàn)VPN協(xié)議的系統(tǒng)如圖1,本系統(tǒng)由依次串聯(lián)的虛擬網(wǎng)卡模塊4、網(wǎng)絡(luò)協(xié)議棧模塊3、IKE模塊1以及IPSec模塊2組成;IKE模塊1分別和IPSec模塊2、網(wǎng)絡(luò)協(xié)議棧模塊3互相調(diào)用,網(wǎng)絡(luò)協(xié)議棧模塊3和虛擬網(wǎng)卡模塊4互相調(diào)用。
所述的IKE模塊1,是一種用來進(jìn)行因特網(wǎng)密鑰協(xié)商的模塊,典型實(shí)現(xiàn)是Internet開源軟件FreeSWAN;FreeSWAN是一種在Linux操作系統(tǒng)上實(shí)現(xiàn)的IPSec和因特網(wǎng)密鑰交換協(xié)議的軟件。
所述的IPSec模塊2,是用來對(duì)VPN報(bào)文進(jìn)行加密和解密的模塊。
所述的網(wǎng)絡(luò)協(xié)議棧模塊3,是Internet網(wǎng)絡(luò)通信協(xié)議棧。
所述的虛擬網(wǎng)卡模塊4,是一種用來對(duì)報(bào)文進(jìn)行截獲的模塊,其工作在系統(tǒng)核心層,作為一個(gè)虛擬的網(wǎng)絡(luò)接口存在。
2、在應(yīng)用層對(duì)VPN報(bào)文進(jìn)行IPSec協(xié)議封裝的方法如果網(wǎng)絡(luò)系統(tǒng)中存在一個(gè)本VPN系統(tǒng),需要和另一個(gè)VPN系統(tǒng)進(jìn)行VPN通信,那么本方法中,系統(tǒng)發(fā)送報(bào)文以及接收?qǐng)?bào)文處理流程包括如下步驟第一步應(yīng)用層IKE模塊1收到外出的原始IP報(bào)文,即外出的原始IP報(bào)文經(jīng)過虛擬網(wǎng)卡模塊4發(fā)送的時(shí)候,虛擬網(wǎng)卡模塊4把外出的原始IP報(bào)文交給IKE模塊1;第二步經(jīng)過IPSec模塊2對(duì)外出的原始IP報(bào)文進(jìn)行封裝,即對(duì)外出的原始IP報(bào)文進(jìn)行隧道策略的查找,如果匹配就進(jìn)行對(duì)應(yīng)的安全加密和封裝;第三步經(jīng)過IPSec封裝后的報(bào)文通過網(wǎng)絡(luò)協(xié)議棧模塊3發(fā)送出去,即IPSec模塊2將經(jīng)過IPSec封裝的報(bào)文提交網(wǎng)絡(luò)協(xié)議棧模塊3,從實(shí)際物理網(wǎng)卡發(fā)送出去;第四步本地應(yīng)用層IKE模塊1收到對(duì)方發(fā)來的進(jìn)入的VPN報(bào)文,即網(wǎng)卡接收到對(duì)方發(fā)來的進(jìn)入的VPN報(bào)文,經(jīng)過網(wǎng)絡(luò)協(xié)議棧模塊3處理后被應(yīng)用層IKE模塊1收到;第五步IPSec模塊2對(duì)進(jìn)入的VPN報(bào)文進(jìn)行解封裝,即IPSec模塊2對(duì)進(jìn)入的VPN報(bào)文進(jìn)行解密處理得到還原后的IP報(bào)文,還原后的IP報(bào)文最后達(dá)到相應(yīng)的應(yīng)用程序。
本發(fā)明與傳統(tǒng)方式相比具有以下優(yōu)點(diǎn)1、采用在應(yīng)用層實(shí)現(xiàn)IPSec的方法,可以避免VPN系統(tǒng)和其它應(yīng)用程序尤其是網(wǎng)絡(luò)安全方面的程序的沖突,這極大地提高了VPN系統(tǒng)的網(wǎng)絡(luò)環(huán)境適應(yīng)性。
2、本發(fā)明中由于IPSec工作在應(yīng)用層,與操作系統(tǒng)的核心沒有直接的聯(lián)系,所以對(duì)于VPN系統(tǒng)移植到不同的操作系統(tǒng)具有極其重要的意義。
3、本發(fā)明可以兼容NAT協(xié)議,能夠穿越任何一種常見的NAT設(shè)備,而不會(huì)引發(fā)數(shù)據(jù)傳輸問題。
本發(fā)明適用于在Windows操作系統(tǒng)、Unix操作系統(tǒng)上進(jìn)行VPN系統(tǒng)開發(fā),而又面臨軟件兼容性問題等情況。
圖1-在應(yīng)用層對(duì)VPN處理的系統(tǒng)框圖;圖2-在應(yīng)用層進(jìn)行VPN處理實(shí)施示意圖;圖3-發(fā)送報(bào)文的詳細(xì)處理過程流程圖;圖4-接收?qǐng)?bào)文的詳細(xì)處理過程流程圖。
其中
1-IKE模塊;2-IPSec模塊;3-網(wǎng)絡(luò)協(xié)議棧模塊;4-虛擬網(wǎng)卡模塊;5-第一VPN設(shè)備;6-第二VPN設(shè)備。
主要縮略語(yǔ)Internet-因特網(wǎng);VPN(Virtual Private Network)-虛擬專用網(wǎng);IPSec(IP Security)-IP層安全協(xié)議;IKE-因特網(wǎng)密鑰交換協(xié)議;NAT-網(wǎng)絡(luò)地址轉(zhuǎn)換;ESP-安全負(fù)載封裝。
具體實(shí)施例方式
下面結(jié)合附圖進(jìn)一步說明1、在應(yīng)用層實(shí)現(xiàn)VPN協(xié)議的系統(tǒng)(1)IKE模塊1IKE模塊1的典型實(shí)現(xiàn)是Internet開源軟件FreeSWAN;FreeSWAN是一種在Linux操作系統(tǒng)上實(shí)現(xiàn)的IPSec和因特網(wǎng)密鑰交換協(xié)議的軟件。
(2)IPSec模塊2IPSec模塊2的典型實(shí)現(xiàn)是Internet開源軟件FreeSWAN;FreeSWAN是一種在Linux操作系統(tǒng)上實(shí)現(xiàn)的IPSec和因特網(wǎng)密鑰交換協(xié)議的軟件。
(3)網(wǎng)絡(luò)協(xié)議棧模塊3網(wǎng)絡(luò)協(xié)議棧模塊3的典型代表是Windows、UNIX、Linux等網(wǎng)絡(luò)操作系統(tǒng)。
(4)虛擬網(wǎng)卡模塊4虛擬網(wǎng)卡模塊4可以通過查看系統(tǒng)接口和路由來獲得虛擬網(wǎng)絡(luò)接口的信息;如果外出報(bào)文經(jīng)過路由轉(zhuǎn)發(fā)交給該虛擬網(wǎng)卡模塊4,該虛擬網(wǎng)卡模塊4并不實(shí)際進(jìn)行報(bào)文的鏈路發(fā)送,而是會(huì)把報(bào)文提交給應(yīng)用層,由應(yīng)用層進(jìn)行處理。
2、在應(yīng)用層對(duì)VPN報(bào)文進(jìn)行IPSec協(xié)議封裝的方法(1)以在應(yīng)用層實(shí)現(xiàn)IPSec協(xié)議應(yīng)用為例,圖2體現(xiàn)了VPN通信的全過程。
圖2中,第一VPN設(shè)備5為一個(gè)VPN客戶端,第二VPN設(shè)備6為一個(gè)VPN網(wǎng)關(guān),VPN網(wǎng)關(guān)有保護(hù)的子網(wǎng),VPN客戶端設(shè)備和VPN網(wǎng)關(guān)設(shè)備建立隧道后要訪問VPN網(wǎng)關(guān)保護(hù)的子網(wǎng)內(nèi)的資源。按照傳統(tǒng)方式實(shí)現(xiàn)的IPSec,就有可能和安裝了VPN客戶端的機(jī)器上其它軟件產(chǎn)品沖突,從而導(dǎo)致IPSec報(bào)文無法順利通過系統(tǒng)協(xié)議棧,在這種情況下,在系統(tǒng)應(yīng)用層實(shí)現(xiàn)的IPSec協(xié)議的優(yōu)勢(shì)就體現(xiàn)出來了。
(2)如圖3,第一VPN設(shè)備5對(duì)外出VPN報(bào)文處理的流程是報(bào)文發(fā)送到虛擬網(wǎng)卡a→IKE調(diào)用IPSec對(duì)報(bào)文處理b→IPSec對(duì)報(bào)文進(jìn)行封裝c→發(fā)送報(bào)文d。
所述的報(bào)文發(fā)送到虛擬網(wǎng)卡a,是第一設(shè)備5開始訪問第二VPN設(shè)備6保護(hù)的內(nèi)部網(wǎng)絡(luò)資源,外出的原始IP報(bào)文被虛擬網(wǎng)卡模塊4截獲,同時(shí)通知應(yīng)用層IKE模塊1;所述的IKE調(diào)用IPSec對(duì)報(bào)文處理b,是IKE模塊1調(diào)用IPSec模塊2對(duì)該外出報(bào)文進(jìn)行處理;所述的IPSec對(duì)報(bào)文進(jìn)行封裝c,是IPSec模塊2根據(jù)相應(yīng)的安全策略對(duì)外出報(bào)文進(jìn)行加密封裝;所述的發(fā)送報(bào)文d,是將上述處理后的報(bào)文轉(zhuǎn)發(fā)給網(wǎng)絡(luò)協(xié)議棧模塊3,從實(shí)際網(wǎng)卡發(fā)送出去。
3、如圖4,第一VPN設(shè)備5對(duì)進(jìn)入的VPN報(bào)文處理的流程是應(yīng)用層接收IPSec報(bào)文e→調(diào)用IPSec模塊解封裝f→解封裝后的報(bào)文發(fā)送到應(yīng)用程序g。
所述的應(yīng)用層接收IPSec報(bào)文e,是第一設(shè)備5收到的第二VPN設(shè)備6回應(yīng)的VPN報(bào)文;所述的調(diào)用IPSec模塊解封裝f,是應(yīng)用層調(diào)用IPSec模塊2對(duì)VPN報(bào)文做解封裝處理;所述的解封裝后的報(bào)文發(fā)送到應(yīng)用程序g,是IPSec模塊2根據(jù)對(duì)報(bào)文進(jìn)行解密,并把解密后的報(bào)文交給網(wǎng)絡(luò)協(xié)議棧模塊3,最后數(shù)據(jù)到達(dá)相應(yīng)的應(yīng)用程序。
權(quán)利要求
1.一種在應(yīng)用層實(shí)現(xiàn)VPN協(xié)議的系統(tǒng),其特征在于由依次串聯(lián)的虛擬網(wǎng)卡模塊(4)、網(wǎng)絡(luò)協(xié)議棧模塊(3)、IKE模塊(1)以及IPSec模塊(2)組成;IKE模塊(1)分別和IPSec模塊(2)、網(wǎng)絡(luò)協(xié)議棧模塊(3)互相調(diào)用,網(wǎng)絡(luò)協(xié)議棧模塊(3)和虛擬網(wǎng)卡模塊(4)互相調(diào)用;所述的IKE模塊(1),是一種用來進(jìn)行因特網(wǎng)密鑰協(xié)商的模塊;所述的IPSec模塊(2),是用來對(duì)VPN報(bào)文進(jìn)行加密和解密的模塊;所述的網(wǎng)絡(luò)協(xié)議棧模塊(3),是Internet網(wǎng)絡(luò)通信協(xié)議棧;所述的虛擬網(wǎng)卡模塊(4),是一種用來對(duì)報(bào)文進(jìn)行截獲的模塊。
2.一種在應(yīng)用層對(duì)VPN報(bào)文進(jìn)行IPSec協(xié)議封裝的方法,其特征在于如果網(wǎng)絡(luò)系統(tǒng)中存在一個(gè)本VPN系統(tǒng),需要和另一個(gè)VPN系統(tǒng)進(jìn)行VPN通信,則系統(tǒng)發(fā)送報(bào)文以及接收?qǐng)?bào)文處理流程包括如下步驟第一步,應(yīng)用層IKE模塊(1)收到外出的原始IP報(bào)文;第二步,經(jīng)過IPSec模塊(2)對(duì)外出的原始IP報(bào)文進(jìn)行封裝;第三步,經(jīng)過IPSec封裝后的報(bào)文通過網(wǎng)絡(luò)協(xié)議棧模塊(3)發(fā)送出去;第四步,本地應(yīng)用層IKE模塊(1)收到對(duì)方發(fā)來的進(jìn)入的VPN報(bào)文;第五步,IPSec模塊(2)對(duì)進(jìn)入的VPN報(bào)文進(jìn)行解封裝。
3.按權(quán)利要求2所述的一種在應(yīng)用層對(duì)VPN報(bào)文進(jìn)行IPSec協(xié)議封裝的方法,其特征在于第一設(shè)備(5)對(duì)外出VPN報(bào)文處理的流程依次是報(bào)文發(fā)送到虛擬網(wǎng)卡(a),IKE調(diào)用IPSec對(duì)報(bào)文處理(b),IPSec對(duì)報(bào)文進(jìn)行封裝(c),發(fā)送報(bào)文(d)。
4.按權(quán)利要求2所述的一種在應(yīng)用層對(duì)VPN報(bào)文進(jìn)行IPSec協(xié)議封裝的方法,其特征在于第一VPN設(shè)備(5)對(duì)進(jìn)入的VPN報(bào)文處理的流程依次是應(yīng)用層接收IPSec報(bào)文(e),調(diào)用IPSec模塊解封裝(f),解封裝后的報(bào)文發(fā)送到應(yīng)用程序(g)。
全文摘要
本發(fā)明公開了一種在應(yīng)用層實(shí)現(xiàn)VPN協(xié)議的系統(tǒng)及其方法,涉及一種網(wǎng)絡(luò)通信封裝的方法,尤其涉及一種在系統(tǒng)應(yīng)用層實(shí)現(xiàn)IPSec協(xié)議封裝的方法;該方法可以防止IPSec報(bào)文在系統(tǒng)核心層被其它程序阻止,從而確保IPSec報(bào)文順利通過系統(tǒng),實(shí)現(xiàn)安全通信。本系統(tǒng)由依次串聯(lián)的虛擬網(wǎng)卡模塊4、網(wǎng)絡(luò)協(xié)議棧模塊3、IKE模塊1以及IPSec模塊2組成;IKE模塊1分別和IPSec模塊2、網(wǎng)絡(luò)協(xié)議棧模塊3互相調(diào)用,網(wǎng)絡(luò)協(xié)議棧模塊3和虛擬網(wǎng)卡模塊4互相調(diào)用。本方法在系統(tǒng)應(yīng)用層對(duì)VPN報(bào)文進(jìn)行加密和解密,從而增加了VPN客戶端系統(tǒng)對(duì)網(wǎng)絡(luò)環(huán)境的適應(yīng)能力,適用于在Windows操作系統(tǒng)、Unix操作系統(tǒng)上進(jìn)行VPN系統(tǒng)開發(fā),而又面臨軟件兼容性問題等情況。
文檔編號(hào)H04L29/06GK1937571SQ200510019470
公開日2007年3月28日 申請(qǐng)日期2005年9月22日 優(yōu)先權(quán)日2005年9月22日
發(fā)明者肖凌, 高翠霞, 梅松, 張?jiān)弃Q, 王景素 申請(qǐng)人:武漢思為同飛網(wǎng)絡(luò)技術(shù)有限公司