新聞中心
PRESS CENTER本文在Linux 2.6內(nèi)核中的IPsec支持機(jī)制作了深入的研究和分析,給出了一個全面構(gòu)建VPN網(wǎng)關(guān)的設(shè)計方:包括用戶網(wǎng)關(guān)控制臺,內(nèi)核模塊的通信和IKE模塊,設(shè)計并實施一個IPsec VPN安全網(wǎng)關(guān)原型。
安全性是互聯(lián)網(wǎng)發(fā)展的重要前提。1998年2月,IETF發(fā)布了IP安全協(xié)議,通常被稱為IPsec。這是一套協(xié)議在網(wǎng)絡(luò)層,為IPv4和IPv6提供數(shù)據(jù)源認(rèn)證,數(shù)據(jù)完整性和數(shù)據(jù)保密。作為一個可擴(kuò)展的網(wǎng)絡(luò)安全集,lPsec的支持和越來越廣泛的采用。IPsec安全體系結(jié)構(gòu)包括四個部分:
(1)安全協(xié)議:身份驗證頭(AH)用于為IP數(shù)據(jù)報提供無連接的完整性,數(shù)據(jù)源認(rèn)證。ESP提供機(jī)密性,數(shù)據(jù)源認(rèn)證,無連接的完整性,網(wǎng)絡(luò)層的保密性和有限的流量保密。AH和 ESP都支持兩種使用模式:傳輸模式和隧道模式。在傳輸模式下的協(xié)議主要為上層協(xié)議提供保護(hù),在隧道模式下,該協(xié)議適用于隧道IP數(shù)據(jù)包。工業(yè)網(wǎng)關(guān)
(2)安全關(guān)聯(lián)和安全策略。安全關(guān)聯(lián)(SA)是一個單純的“連接”,能應(yīng)用AH或ESP提供單向的安全服務(wù),如果同時使用AH和 ESP保護(hù)被施加到的交通流,則需要創(chuàng)建兩個(或更多)的SA。為了確保典型,在兩臺主機(jī)之間的雙向通信,或在兩個安全網(wǎng)關(guān)之間,兩個安全關(guān)聯(lián)(每個方向一個)是必
需的。安全策略針對多個通信參數(shù)(如IP地址、端口號、協(xié)議等),定義特定的網(wǎng)絡(luò)流量具體應(yīng)用的網(wǎng)絡(luò)安全服務(wù)。
(3)密碼交互協(xié)議。Internet密鑰交換(IKE)是一個重要的IPsec協(xié)議。它的目的是進(jìn)行協(xié)商,并提供安全協(xié)會認(rèn)證的密鑰材料在受保護(hù)的方式。目前協(xié)議的版本為IKEv2,其定義了
更高效的密鑰交換類型,鍵,更安全的驗證和加密機(jī)制,新方法的產(chǎn)生。
(4)安全算法。IPsec指定算法包括 HMAC-MD5-96、HMAC-SHA-96、DES-CBC 密碼算法等多少算法。
1 Linux IPSec支持
Linux2.6內(nèi)核提供了全新的對 IPSec的支持機(jī)構(gòu)。Linux2.6內(nèi)核中的IPSec支持機(jī)構(gòu)主要包括:內(nèi)核網(wǎng)絡(luò)協(xié)議棧中IPSec處理的/無縫接入0,AH協(xié)議、ESP協(xié)議的處理,IPSec重要組件安全關(guān)聯(lián)SA和安全策略SP的數(shù)據(jù)結(jié)構(gòu)及相關(guān)訪問算法,安全關(guān)聯(lián)數(shù)據(jù)庫SAD和安全策略數(shù)據(jù)庫SPD的構(gòu)建和訪問,IPSec加密算法函數(shù)庫的支持,基于Netlink套接字的內(nèi)核態(tài)與用戶態(tài)的通信支持,以及內(nèi)核IPSec的管理等。2VPN 網(wǎng)關(guān)總體設(shè)計與實現(xiàn)
VPN安全網(wǎng)關(guān)分為用戶控制臺模塊和內(nèi)核空間模塊和。如圖1所示。
安全網(wǎng)關(guān)管理控制臺為管理員提供一個管理配置接口。VPN管理員通過控制臺可以開啟或關(guān)閉安全網(wǎng)關(guān)功能,并且在安全網(wǎng)關(guān)開啟情況下,可以通過管理控制臺手工建立安全通道,配置安全策略、安全關(guān)聯(lián)等安全通信參數(shù)。
安全網(wǎng)關(guān)與內(nèi)核交互模塊是一個通信中樞,負(fù)責(zé)連接用戶空間進(jìn)程與內(nèi)核空間IPSec部分,主要進(jìn)行兩方面工作:
(1)接收用戶空間進(jìn)程主動發(fā)起的消息,包括管理控制臺和IKE守護(hù)進(jìn)程發(fā)送的請求,將用戶進(jìn)程的請求封裝成內(nèi)核IPSec管理可接受的消息格式,發(fā)送給內(nèi)核,最后監(jiān)聽內(nèi)核處理的結(jié)果;
(2)監(jiān)聽內(nèi)核主動發(fā)起的消息,包括:要求建立SA請求、SA生存期超期通知、安全策略生存期超期通知。
內(nèi)核 IPSec管理部分也包含由內(nèi)核提供的內(nèi)核IPSec與用戶空間交互的通信接口,該部分接收用戶空間消息,調(diào)用內(nèi)核中提供的相應(yīng)的函數(shù),完成具體操作。
安全關(guān)聯(lián)數(shù)據(jù)庫SAD中包含了所有用于保護(hù)通信的安全關(guān)聯(lián),安全策略數(shù)據(jù)庫SPD中包含了所有使用的策略條目。所有入站和出站信包經(jīng)過IP層,接受IPSec處理時都要查詢SAD和SPD,來采取相應(yīng)的處理措施。
IPSec處理對外出數(shù)據(jù)提供加密和完整性保護(hù),對接收的和數(shù)據(jù)進(jìn)行解密和完整性檢驗,真正實現(xiàn)安全網(wǎng)關(guān)安全保障功能,這部分功能內(nèi)核提供。內(nèi)核加密算法庫為IPSec提供各種加密操作所需的函數(shù)。