加密以太網(wǎng)卡在鏈路通信系統(tǒng)中的應(yīng)用

大家都知道,內(nèi)網(wǎng)使用者非法獲得敏感信息,也是網(wǎng)絡(luò)安全的主要威脅之一。局域網(wǎng)環(huán)境不適合使用應(yīng)用于互聯(lián)網(wǎng)絡(luò)的高層安全體系,在局域網(wǎng)環(huán)境中保證線路傳輸?shù)陌踩坝脩舻挠行Э刂剖侵饕ぷ?,在鏈路層進(jìn)行數(shù)據(jù)的保護(hù)可以有效提高整個(gè)安全系統(tǒng)的性能。

一、網(wǎng)絡(luò)驅(qū)動(dòng)程序接口規(guī)范與加密以太網(wǎng)卡

1、網(wǎng)絡(luò)驅(qū)動(dòng)程序接口規(guī)范

網(wǎng)絡(luò)驅(qū)動(dòng)程序接口規(guī)范(Network Driver InterfaccSpecification,NDIS)是Windows2000系統(tǒng)網(wǎng)絡(luò)協(xié)議結(jié)構(gòu)在核心層的主要結(jié)構(gòu),定義了鏈路層與網(wǎng)絡(luò)高層協(xié)議之間的網(wǎng)絡(luò)驅(qū)動(dòng)程序接口規(guī)范,提供了網(wǎng)絡(luò)協(xié)議中的網(wǎng)絡(luò)層接口和鏈路層接口,NDIS支持以下3種基本內(nèi)核模式網(wǎng)絡(luò)驅(qū)動(dòng)程序:

(1)協(xié)議驅(qū)動(dòng)程序;(2)中間層驅(qū)動(dòng)程序;(3)微端口驅(qū)動(dòng)程序。

協(xié)議驅(qū)動(dòng)程序即高層協(xié)議棧,使一個(gè)物理網(wǎng)卡可以支持多種協(xié)議的運(yùn)行。中間層驅(qū)動(dòng)程序完成在不同網(wǎng)絡(luò)介質(zhì)間進(jìn)行轉(zhuǎn)換,過(guò)濾數(shù)據(jù)包和在多個(gè)NIC之間平衡數(shù)據(jù)包的負(fù)載。

最底層的是微端口驅(qū)動(dòng)程序,它管理網(wǎng)絡(luò)接口卡(NIC),與網(wǎng)絡(luò)設(shè)備緊密結(jié)合,完成數(shù)據(jù)發(fā)送和接收。微端口驅(qū)動(dòng)程序與它管理的NIC -起完成鏈路層通信功能,并且通過(guò)NDIS庫(kù)與高層驅(qū)動(dòng)程序通信實(shí)現(xiàn)了邏輯鏈路控制。

2、加密以太用卡

加密以太網(wǎng)卡(簡(jiǎn)稱加密網(wǎng)卡)的工作原理是在網(wǎng)卡上嵌入加密模塊來(lái)實(shí)現(xiàn)對(duì)鏈路上的數(shù)據(jù)進(jìn)行加密保護(hù),其結(jié)構(gòu)框架如圖1所示。

以太網(wǎng)卡的鏈路通信系統(tǒng)如何加密

 

加密網(wǎng)卡使用了硬件加密措施提高了安全性,同時(shí)減少了對(duì)CPU資源的占用,提高了系統(tǒng)的處理效率。加密以太網(wǎng)卡采用PCI總線,網(wǎng)卡提供10M/100 Mb/s的通信速率,加密和解密模塊采用FPGA實(shí)現(xiàn)分組加密算法。加密以太網(wǎng)卡在Windows操作系統(tǒng)微端口驅(qū)動(dòng)程序的控制下完成數(shù)據(jù)的安全通信。以太網(wǎng)卡加密主要有以下4個(gè)模塊:

(1)總線接口模塊

采用PLX的PCI9054芯片,與PCI總線進(jìn)行數(shù)據(jù)交換來(lái)完成與微端口驅(qū)動(dòng)程序的通信。

(2)密碼運(yùn)算模塊

片在控制模塊的控制下完成對(duì)數(shù)據(jù)文件加密和解密。Flash完成一定的密鑰存儲(chǔ)和管理功能。

(3)控制模塊

對(duì)數(shù)據(jù)在各模塊間的傳輸進(jìn)行控制,保證數(shù)據(jù)正常的流向。

(4)網(wǎng)絡(luò)通信模塊

使用嵌入式以太網(wǎng)控制器LAN91CIII,在接口控制器和控制模塊的聯(lián)合控制下傳輸加密的數(shù)據(jù)幀。

二、加密以太同卡鏈路通信協(xié)議設(shè)計(jì)

1、置信協(xié)議設(shè)計(jì)

NDIS的層次性為用戶進(jìn)行網(wǎng)絡(luò)功能的開(kāi)發(fā)提供了良好的接口。由于加密以太網(wǎng)卡自身硬件結(jié)構(gòu)的特點(diǎn),其邏輯鏈路傳輸協(xié)議中需要包涵與加密和解密以及密鑰管理相關(guān)的功能。

NDIS中的徼端口驅(qū)動(dòng)程序直接控制加密網(wǎng)卡來(lái)完成邏輯鏈路控制功能。本文的鏈路傳輸方案可以使加密以太網(wǎng)卡的硬件功能在驅(qū)動(dòng)程序的控制下達(dá)到加密傳輸?shù)男Ч?。加密以太網(wǎng)卡鏈路通信協(xié)議主要包括:

加密鏈路幀設(shè)計(jì),加密和解密控制模塊,數(shù)據(jù)包拆分/重組模塊,中斷服務(wù)模塊,密鑰管理模塊等。其結(jié)構(gòu)如圖2所示。

以太網(wǎng)卡的鏈路通信系統(tǒng)如何加密

2、加密鏈路幀設(shè)計(jì)

為了達(dá)到對(duì)數(shù)據(jù)文件加密保護(hù)功能,要對(duì)鏈路數(shù)據(jù)幀進(jìn)行重新設(shè)計(jì)。設(shè)計(jì)是在以太網(wǎng)數(shù)據(jù)幀的基礎(chǔ)上,對(duì)數(shù)據(jù)幀的結(jié)構(gòu)進(jìn)行增加和改進(jìn),對(duì)數(shù)據(jù)幀中的重要信息進(jìn)行加密保護(hù)。

數(shù)據(jù)幀結(jié)構(gòu)的各部分字段如圖3所示,其中,陰影部分表示數(shù)據(jù)已經(jīng)加密保護(hù)。

以太網(wǎng)卡的鏈路通信系統(tǒng)如何加密

數(shù)據(jù)幀的各部分內(nèi)容如下:

(1)前導(dǎo)碼和幀開(kāi)始定界符;

(2)目的保密以太網(wǎng)卡的MAC地址;

(3)源保密以太網(wǎng)卡的MAC地址; ’

(4)報(bào)文加密信息;

(5)密鑰信息,是會(huì)話密鑰的密文;

(6)幀長(zhǎng)度或類型;

(7)數(shù)據(jù)單元;

(8)幀校驗(yàn)序列。

數(shù)據(jù)幀的前3部分與標(biāo)準(zhǔn)MAC幀相同,第(4)部分中保存收發(fā)雙方用戶標(biāo)識(shí)、數(shù)據(jù)報(bào)文類型、原始數(shù)據(jù)長(zhǎng)度等內(nèi)容。

加密模塊對(duì)數(shù)據(jù)加密時(shí)需要進(jìn)行分組長(zhǎng)度填充,加密信息部分中的原始數(shù)據(jù)長(zhǎng)度可以保證接收方在解密后獲得有用的數(shù)據(jù)字段長(zhǎng)度。第(4)部分使用局域網(wǎng)內(nèi)用戶共享的網(wǎng)絡(luò)密鑰加密保護(hù)。第(5)、第(7)部分都是由卡上密碼算法加密過(guò)的密文,其中,密鑰信息是由與目的節(jié)點(diǎn)共享的工作密鑰加密的會(huì)話密鑰密文,而第(6)、第(7)部分則是用會(huì)話密鑰加密的密文。

這種幀格式需要硬件與微端口配合才能完成所有的操作和控制。微端口對(duì)加密數(shù)據(jù)幀的地址信息進(jìn)行處理后以命令形式通知硬件設(shè)備來(lái)讀取密文,完成解密操作后再將明文讀取剄系統(tǒng)內(nèi)存進(jìn)行包的操作。

3、數(shù)據(jù)包拆分,重組設(shè)計(jì)

由于設(shè)計(jì)的加密鏈路幀在原有MAC幀的基礎(chǔ)上增加了用戶標(biāo)識(shí)、報(bào)文類型、密鑰信息等字段以及對(duì)數(shù)據(jù)字段加密時(shí)的分組填充,因此,幀長(zhǎng)度會(huì)大于以太網(wǎng)MTU,需要對(duì)原有MAC幀進(jìn)行拆分和重組。拆分和重組有2種方法:

(1)在原MAC幀的基礎(chǔ)上直接增加報(bào)文加密信息,形成長(zhǎng)MAC幀。因?yàn)榉桨钢惺褂玫募用芫W(wǎng)卡的LAN91C11I以太網(wǎng)控制器最大支持2 048 B的鏈路幀,這種方法簡(jiǎn)便、易于實(shí)現(xiàn)。

(2)對(duì)原MAC幀中的IP數(shù)據(jù)包進(jìn)行拆分,利用IP協(xié)議提供的分包機(jī)制將原MAC幀中封裝的IP數(shù)據(jù)包經(jīng)過(guò)解析后拆分成2個(gè)800 B的IP數(shù)據(jù)包,然后分別封裝成加密鏈路幀。這種方式相對(duì)復(fù)雜,但利用IP協(xié)議的分包機(jī)制可靠性高,分包后形成的鏈路幀對(duì)鏈路傳輸?shù)募嫒菪詮?qiáng)。

為了使系統(tǒng)的兼容性更好,本方案采用第2種方法,在加密以太網(wǎng)卡的鏈路協(xié)議中設(shè)計(jì)數(shù)據(jù)包拆分和重組機(jī)制,保證鏈路傳輸?shù)姆€(wěn)定性。

4、密鑰管理方式

在由加密以太網(wǎng)卡構(gòu)成的局域網(wǎng)絡(luò),密鑰采用分級(jí)保護(hù)的管理方式,每一個(gè)用戶配置有主密鑰、網(wǎng)絡(luò)密鑰和會(huì)話密鑰三級(jí)密鑰,主密鑰保護(hù)卡內(nèi)所有密鑰信息資源;網(wǎng)絡(luò)密鑰保護(hù)加密MAC幀中的加密信息部分和密鑰信息部分,包括用戶ID和數(shù)據(jù)報(bào)文類型等信息;會(huì)話密鑰保護(hù)數(shù)據(jù)字段。

網(wǎng)絡(luò)密鑰受主密鑰保護(hù),其密文預(yù)先配置在加密卡中,會(huì)話密鑰由加密網(wǎng)卡在加密每個(gè)數(shù)據(jù)包時(shí)產(chǎn)生。本系統(tǒng)給用戶配置USBKey來(lái)存儲(chǔ)用戶的主密鑰,通過(guò)口令的方式才能打開(kāi)USBKey,取出用戶主密鑰,并將主密鑰通過(guò)程序注入到加密以太網(wǎng)卡,由此實(shí)現(xiàn)密鑰與數(shù)據(jù)的分割,并保證了用戶信息存儲(chǔ)在key中的安全性。這種三級(jí)密鑰保護(hù)方式能夠較好地保護(hù)系統(tǒng)內(nèi)的密碼信息資源,形成安全的局域網(wǎng)鏈路通信
系統(tǒng)。

三、加密以太網(wǎng)卡鏈路通信協(xié)議實(shí)現(xiàn)

1、基于微端口的以太同卡驅(qū)動(dòng)程序加密設(shè)計(jì)

加密網(wǎng)卡微端口驅(qū)動(dòng)程序(Security Miniport Drver, SMD)將加密網(wǎng)卡以唯一的網(wǎng)絡(luò)設(shè)備Device對(duì)象提交給NDIS,使其能夠加載到NDIS層次結(jié)構(gòu)中。數(shù)據(jù)進(jìn)出加密以太網(wǎng)卡必須經(jīng)過(guò)SMD,才能對(duì)鏈路數(shù)據(jù)進(jìn)行操作和控制,形成本方案設(shè)計(jì)的加密鏈路通信協(xié)議。加密網(wǎng)卡微端口驅(qū)動(dòng)程序應(yīng)具備以下基本功能:

(1)向NDIS注冊(cè)加密以太網(wǎng)卡,使加密網(wǎng)卡接入到操作系統(tǒng)中,構(gòu)成完整的網(wǎng)絡(luò)通信層次結(jié)構(gòu)。

(2)SMD向上層協(xié)議提供符合NDIS規(guī)范的網(wǎng)絡(luò)數(shù)據(jù)接口,使加密功能對(duì)上層網(wǎng)絡(luò)協(xié)議保持透明,不影響網(wǎng)絡(luò)數(shù)據(jù)傳輸。

(3)組織數(shù)據(jù)包隊(duì)列,在發(fā)送和接收數(shù)據(jù)包的流程中以隊(duì)列形式組織數(shù)據(jù)包,提高數(shù)據(jù)處理和傳輸效率。

(4)SMD的Dispatch例程中設(shè)置對(duì)上層管理程序的通信接口,用于管理程序?qū)MD進(jìn)行配置和對(duì)密鑰等密碼信息的管理。

(5)中斷服務(wù)功能,支持加密網(wǎng)卡的中斷方式,中斷處理模塊完成接收數(shù)據(jù)包的排隊(duì)和處理功能。

微端口驅(qū)動(dòng)程序的結(jié)構(gòu)與上層協(xié)議驅(qū)動(dòng)程序以及管理程序的接口關(guān)系如圖4所示。

加密以太網(wǎng)卡在鏈路通信系統(tǒng)中的應(yīng)用

2、微端口驅(qū)動(dòng)程序?qū)崿F(xiàn)

加密網(wǎng)卡微端口驅(qū)動(dòng)程序位于NDIS層次結(jié)構(gòu)的最底層,直接與硬件設(shè)備進(jìn)行數(shù)據(jù)交換并進(jìn)行設(shè)備控制,具有標(biāo)準(zhǔn)驅(qū)動(dòng)程序的DriverEntry()和CreateDevice0,Miniportlnitialize(),DeleteDe'vice0,Unload0.Dispatch0等入口函數(shù)。與其他驅(qū)動(dòng)程序不同的是,網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序還要有與網(wǎng)絡(luò)數(shù)據(jù)包處理以及中斷服務(wù)相關(guān)的函數(shù)和操作,如MiniportSendPackets0,NdisMlndicateReceivePacket(), MiniportHandlelnterrup),Min-iportISRO等入口函數(shù)。

加密以太網(wǎng)卡徼端口驅(qū)動(dòng)程序的實(shí)現(xiàn)包括以下5個(gè)主要模塊:

(1)初始化模塊

主要由Miniportlnitializc0函數(shù)完成網(wǎng)絡(luò)設(shè)備初始化和密碼模塊初始化。網(wǎng)絡(luò)設(shè)備初始化包括讀取設(shè)備配置信息,向系統(tǒng)注冊(cè)NIC、分配網(wǎng)絡(luò)數(shù)據(jù)包隊(duì)列內(nèi)存、加密網(wǎng)卡DMA設(shè)備初始化配置、注冊(cè)中斷等。密碼模塊初始化包括密碼算法模式配置、密鑰注入以及加密網(wǎng)卡內(nèi)部總線初始化。

(2)數(shù)據(jù)包發(fā)送模塊

該模塊主要完成無(wú)連接微端口驅(qū)動(dòng)的多包發(fā)送。其支持?jǐn)?shù)據(jù)包隊(duì)列的形成與維護(hù),上層協(xié)議需要發(fā)送數(shù)據(jù)包時(shí)會(huì)調(diào)用微端口的MiniportSendPackcts()函數(shù),將數(shù)據(jù)包指針傳入驅(qū)動(dòng)程序,發(fā)送模塊將數(shù)據(jù)包排隊(duì)依次準(zhǔn)備發(fā)送。該模塊與數(shù)據(jù)拆分/重組模塊一起完成加密數(shù)據(jù)包的發(fā)送。

(3)數(shù)據(jù)拆分,重組模塊

由于對(duì)數(shù)據(jù)包進(jìn)行加密和重新封裝需要對(duì)數(shù)據(jù)包進(jìn)行拆分,因此地址信息可直接送入加密網(wǎng)卡的通信控制器,數(shù)據(jù)信息送入加/解密模塊進(jìn)行加密或解密處理。處理完的數(shù)據(jù)與用戶標(biāo)識(shí)以及密鑰等信息重新封裝后再由發(fā)送模塊進(jìn)行發(fā)送。

(4)中斷處理模塊

函數(shù)MiniportISRO和MiniportHandle Interrupt0完成設(shè)備的中斷響應(yīng)和中斷服務(wù)。微端口驅(qū)動(dòng)采用中斷排隊(duì)處理的方式,包括加密數(shù)據(jù)包的拆分、解密和重新封裝以太網(wǎng)幀等操作。數(shù)據(jù)包解密重新封裝成幀后調(diào)用NdisMlndicateReceivePacket()指示給上層協(xié)議要接收的數(shù)據(jù)包指針。

(5)上層通信模塊

微端口向NDIS注冊(cè)Dispatch()函數(shù)來(lái)實(shí)現(xiàn)與管理程序的通信以及與加密模塊的通信。管理程序?qū)W(wǎng)絡(luò)通信的控制通過(guò)IRP包的形式發(fā)送到SMD的Dispatch例程。SMD解析IRP包后得到控制命令,從而進(jìn)行相應(yīng)的密碼密鑰等配置操作。

四、系統(tǒng)性能

本文設(shè)計(jì)的基于NDIS的加密以太網(wǎng)卡鏈路通信方案在Windows2000操作系統(tǒng)上進(jìn)行了實(shí)驗(yàn),微端口驅(qū)動(dòng)程序中的加密鏈路通信協(xié)議能夠較好地完成對(duì)數(shù)據(jù)的加密保護(hù)以及網(wǎng)絡(luò)傳輸;對(duì)加密數(shù)據(jù)包的傳輸速度進(jìn)行了測(cè)試,使用三重DES或AES兩種分組算法進(jìn)行傳輸時(shí),速度可達(dá)到65 Mb/So雖然本系統(tǒng)與100 Mb/s的以太網(wǎng)相比數(shù)據(jù)傳輸速度有損失,但可以滿足正常的網(wǎng)絡(luò)訪問(wèn)和文件傳輸需求,透明的傳輸加密對(duì)于用戶操作使用也較方便直觀,有良好的可用性。在使用三級(jí)密鑰管理方式下,加密的強(qiáng)度也有較高的保障。

小知識(shí)之協(xié)議棧

協(xié)議棧(Protocol Stack)是指網(wǎng)絡(luò)中各層協(xié)議的總和,其形象的反映了一個(gè)網(wǎng)絡(luò)中文件傳輸?shù)倪^(guò)程:由上層協(xié)議到底層協(xié)議,再由底層協(xié)議到上層協(xié)議。使用最廣泛的是英特網(wǎng)協(xié)議棧,由上到下的協(xié)議分別是:應(yīng)用層(HTTP,F(xiàn)TP,TFTP,TELNET,DNS,EMAIL等),運(yùn)輸層(TCP,UDP),網(wǎng)絡(luò)層(IP),鏈路層(WI-FI,以太網(wǎng),令牌環(huán),F(xiàn)DDI,MAC等),物理層。