亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        流過濾和Ndis防火墻技術(shù)在文件加密保護(hù)中的應(yīng)用

        2016-03-13 21:28:58聶燕屏

        ◆聶燕屏

        (中星電子股份有限公司 北京 100086)

        流過濾和Ndis防火墻技術(shù)在文件加密保護(hù)中的應(yīng)用

        ◆聶燕屏

        (中星電子股份有限公司 北京 100086)

        在這個(gè)計(jì)算機(jī)的信息時(shí)代,計(jì)算機(jī)和網(wǎng)絡(luò)的運(yùn)用無處不在,在各行各業(yè),都會使用計(jì)算機(jī),以提高效率,節(jié)省人力。但是隨著計(jì)算機(jī)技術(shù)和應(yīng)用的普及,安全問題隨之顯現(xiàn)。所以,很多文檔有權(quán)限限制。比如:一些文檔只有相關(guān)人員有權(quán)查看,一些文檔需要付費(fèi)查看,等等。這時(shí)候,加密技術(shù)就會成為解決問題的手段。對需要權(quán)限的文檔進(jìn)行加密,擁有相應(yīng)權(quán)限的個(gè)人,可以從文檔的提供方獲取秘鑰對文檔進(jìn)行解密。只有正確解密的文檔才能被正常瀏覽。本文首先對ndis防火墻技術(shù)進(jìn)行了介紹,分析了ndis技術(shù)在文件加密保護(hù)中的作用;然后對流過濾技術(shù)進(jìn)行了介紹,并具體講解了流過濾技術(shù)在文件加密保護(hù)中的應(yīng)用以及具體算法和流程;最后,針對TCP/IP報(bào)文特點(diǎn),介紹了校驗(yàn)和算法。

        流過濾;Ndis;SMS4;校驗(yàn)和

        0 引言

        對于需要管理并且需要頻繁提供大量文檔的單位,將文檔數(shù)字化無疑是必須的。但是基于安全原因,很多文檔需要加密。但是加密的文檔也帶來一些問題。如果一個(gè)文檔存儲和管理系統(tǒng),能夠做到明文存儲,密文發(fā)送,那么無疑是很實(shí)用的。所以,本人開發(fā)了這套文件自動加密系統(tǒng)。這套系統(tǒng)的原理就是利用windows ndis級別防火墻的原理對文件進(jìn)行保護(hù),采取明文存儲,秘文分發(fā)的方式。

        1 Ndis中間層網(wǎng)絡(luò)防火墻技術(shù)

        Ndis是Network Driver Interface Specification的縮寫,意為“網(wǎng)絡(luò)驅(qū)動接口規(guī)范”。Ndis橫跨了傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層,其作用是屏蔽了底層物理硬件的區(qū)別。

        Ndis支持三種類型的驅(qū)動程序:

        Miniport驅(qū)動程序;

        中間層驅(qū)動程序;

        Protocol驅(qū)動程序。

        在這里,我們采用中間層驅(qū)動程序。

        1.1 Ndis的版本

        Ndis版本從支持的操作系統(tǒng)看可以分類兩類:Ndis5.x和ndis6.x。Ndis6.x對比ndis5.x變化很大,最重要的是NET_BUFFER替代了NDIS_PACKET。鑒于本系統(tǒng)運(yùn)行的服務(wù)器是win2008R2,所以本文中提到的ndis均指ndis6.x。

        1.2 Ndis6的數(shù)據(jù)結(jié)構(gòu)以及如何獲取數(shù)據(jù)包

        ndis6.0中很重要的兩個(gè)數(shù)據(jù)結(jié)構(gòu)是NET_BUFFER_LIST和NET_BUFFER。

        一個(gè)NET_BUFFER_LIST結(jié)構(gòu)指向的是一連串的NET_BUFFER,這些NET_BUFFER中保存的數(shù)據(jù)包內(nèi)容屬于同一個(gè)stream。通過NET_BUFFER_NEXT_NB()可以獲取下一個(gè)NET_BUFFER。

        1.3 Ndis的相關(guān)函數(shù)

        在Ndis中,截獲下載數(shù)據(jù)包的關(guān)鍵函數(shù)是FilterSendNetBufferLists和FilterSendNetBufferListsComplete。在ndis驅(qū)動安裝成功之后,tcp報(bào)文就會在FilterSendNetBufferLists函數(shù)中以NBL的形式存在。對于NBL數(shù)據(jù)的處理,就位于這個(gè)函數(shù)中。而FilterSendNetBufferListsComplete的功能是把發(fā)送的結(jié)構(gòu)和數(shù)據(jù)返還給 Filter Driver。

        2 流過濾技術(shù)以及具體實(shí)現(xiàn)算法

        2.1 關(guān)于流過濾技術(shù)

        流過濾技術(shù)是在包過濾技術(shù)的基礎(chǔ)上提出的。流過濾處理的基本單元是數(shù)據(jù)包,但并不僅限于數(shù)據(jù)包。

        包過濾技術(shù)關(guān)注的重點(diǎn)是網(wǎng)絡(luò)層和傳輸層,根據(jù)這幾個(gè)層次在單個(gè)數(shù)據(jù)包中的信息進(jìn)行過濾。而流過濾注重的是應(yīng)用層。

        在這里,我利用流過濾的原理,對數(shù)據(jù)包中的應(yīng)用層信息,進(jìn)行加密處理。

        2.2 技術(shù)方案

        這里,以Http傳輸為例,講解流過濾技術(shù)在文件加密中的技術(shù)方案。http走的協(xié)議是tcp報(bào)文,在流過濾方案中,截獲的封包是tcp包。處理流程如下:

        對截獲的tcp報(bào)文進(jìn)行分類處理。

        對1中篩選后的報(bào)文進(jìn)行分析和再次篩選。

        對選中的報(bào)文記錄該報(bào)文的源,目的ip和端口。對此連接的tcp包進(jìn)行滯留。并且接管此tcp連接。

        對滯留的數(shù)據(jù)包進(jìn)行重組,加密。

        將加密后的數(shù)據(jù)還原,繼續(xù)轉(zhuǎn)發(fā),并且歸還此tcp連接。

        2.2.1 報(bào)文的分類

        因?yàn)槲覀兊哪康氖菍ttp下載攜帶的文件內(nèi)容進(jìn)行加密處理,所以我們關(guān)注的重點(diǎn)是帶有應(yīng)用層數(shù)據(jù)的tcp報(bào)文。

        Tcp報(bào)文首先可以分為帶有應(yīng)用層數(shù)據(jù)的和不帶有應(yīng)用層數(shù)據(jù)的。應(yīng)用層無關(guān)報(bào)文主要是SYN,F(xiàn)IN,ACK等報(bào)文,用于tcp連接和可靠性傳輸。這類報(bào)文和我們的應(yīng)用無關(guān),直接轉(zhuǎn)發(fā)即可。

        2.2.2 報(bào)文的分析和篩選

        帶有應(yīng)用層數(shù)據(jù)的tcp報(bào)文,我們可以進(jìn)行定向的篩選:以應(yīng)用層協(xié)議關(guān)鍵詞進(jìn)行篩選。比如http協(xié)議,應(yīng)用層會有“HTTP”字樣的關(guān)鍵字。然后,深入對http進(jìn)行分析,http協(xié)議有POST,GET和應(yīng)答。傳輸文件的關(guān)鍵數(shù)據(jù)包一般在200OK的應(yīng)答中。特征是transfe-Encoding的chunk類型(代表以chunk方式控制文件大?。约癴ilename中的擴(kuò)展文件名來確定是否是加密需要的報(bào)文。

        2.2.3 報(bào)文的滯留,重組和加密

        文件加密根據(jù)算法需要加密4096字節(jié)的數(shù)據(jù)。而tcp荷載數(shù)據(jù)的報(bào)文一般長度是1514,所以需要合并幾個(gè)連續(xù)報(bào)文以得到4096字節(jié)文件內(nèi)容。

        因?yàn)槭蔷W(wǎng)絡(luò)傳輸,tcp報(bào)文很有可能是亂序的。所以需要根據(jù)tcp的序列號對tcp報(bào)文進(jìn)行重組。Tcp包下一序列號=序列號+數(shù)據(jù)長度。這里的數(shù)據(jù)長度是指傳輸?shù)臄?shù)據(jù)大小,不包括ethernet,ip,tcp的報(bào)頭的長度。

        為了重組報(bào)文,需要維護(hù)兩個(gè)隊(duì)列:順序隊(duì)列和亂序隊(duì)列。

        (1)順序隊(duì)列

        截獲一個(gè)新的報(bào)文后,判斷順序隊(duì)列是否為空,若為空,判斷報(bào)文的序列號是否等于startseq,是則插入順序隊(duì)列,否,則按照升序插入到亂序隊(duì)列。

        如果順序隊(duì)列不為空,判斷當(dāng)前序列號是否等于順序隊(duì)列結(jié)尾的序列號加上數(shù)據(jù)長度。若是則插入順序隊(duì)列結(jié)尾,否則按照升序插入亂序隊(duì)列。

        (2)亂序隊(duì)列

        首先判斷亂序隊(duì)列開始的tcp序列號,與順序隊(duì)列結(jié)尾報(bào)文的下一序列號的大小關(guān)系。

        如果等于,則將亂序隊(duì)列的開始報(bào)文插入順序隊(duì)列的結(jié)尾;

        如果大于則本輪處理結(jié)束;

        如果小于,則直接丟棄該報(bào)文。

        ?;睢?/p>

        ①發(fā)送端

        對于tcp連接,系統(tǒng)將報(bào)文滯留于,發(fā)送端得不到報(bào)的回應(yīng)勢必會影響連接。所以我們需要偽裝成接收端向發(fā)送端發(fā)送ack回應(yīng)。Ack數(shù)據(jù)報(bào)文的序列號等于當(dāng)前tcp的確認(rèn)號,確認(rèn)號,在順序隊(duì)列為空時(shí),等于startseq,否則等于順序隊(duì)列結(jié)尾報(bào)文的下一序列號。

        ②接收端

        從截獲第一個(gè)需要重組的報(bào)文起,需要每隔一段時(shí)間向接收端發(fā)送ack報(bào)文以保證連接。此報(bào)文的序列號等于startseq,確認(rèn)號和所有滯留重組的tcp報(bào)文確認(rèn)號相等。

        2.2.4 報(bào)文的加密

        因?yàn)楦鶕?jù)SMS4加密算法的特性,加密的最小數(shù)據(jù)單位是16字節(jié),所以,結(jié)合實(shí)際應(yīng)用,本系統(tǒng)采用一次性截獲全部4096文件內(nèi)容,然后加密的方式。

        在數(shù)據(jù)報(bào)文滯留排序好之后,定位數(shù)據(jù)位置,為了能夠恢復(fù)原有的數(shù)據(jù)包,需要用指針鏈表,對數(shù)據(jù)位置進(jìn)行記錄,以便將加密后的內(nèi)容拷貝回去。

        指針鏈表元素的數(shù)據(jù)結(jié)構(gòu)主要記錄兩點(diǎn):指針和長度。

        對于每一個(gè)被放入順序隊(duì)列中的tcp包,均分配一個(gè)指針鏈表元素,記錄下數(shù)據(jù)所在的起始地址,以及數(shù)據(jù)實(shí)際長度,然后對數(shù)據(jù)長度進(jìn)行累加。當(dāng)順序表中的實(shí)際數(shù)據(jù)長度>=4096時(shí),將數(shù)據(jù)拷貝出來,調(diào)用加密接口對4096字節(jié)進(jìn)行加密,然后根據(jù)指針鏈表中的元素,將數(shù)據(jù)拷貝回去之后,對tcp數(shù)據(jù)包重新計(jì)算校驗(yàn)和,就可以繼續(xù)轉(zhuǎn)發(fā)了。

        3 Tcp封包的修改

        對于一個(gè)TCP報(bào)文來說,如果它所負(fù)載的數(shù)據(jù)被修改,就需要重新計(jì)算校驗(yàn)和,否則數(shù)據(jù)包不會被正常的接收。

        Tcp數(shù)據(jù)封包所涉及的校驗(yàn)和分為兩種:ip校驗(yàn)和以及tcp校驗(yàn)和。TCP校驗(yàn)和覆蓋TCP首部和TCP數(shù)據(jù),而IP首部中的校驗(yàn)和只覆蓋IP的首部,不覆蓋IP數(shù)據(jù)報(bào)中的任何數(shù)據(jù)。

        TCP首部校驗(yàn)和計(jì)算三部分:TCP首部+TCP數(shù)據(jù)+TCP偽首部。

        偽首部是為了增加TCP校驗(yàn)和的檢錯(cuò)能力:如檢查TCP報(bào)文是否收錯(cuò)了(目的IP地址)、傳輸層協(xié)議是否選對了(傳輸層協(xié)議號)等。偽首部來自IP首部。

        TCP校驗(yàn)和的大致方法如下:

        (1)把偽首部、TCP報(bào)頭、TCP數(shù)據(jù)分為16位的字,如果總長度為奇數(shù)個(gè)字節(jié),則在最后增添一個(gè)位都為0的字節(jié)。

        (2)把TCP報(bào)頭中的校驗(yàn)和字段置為0。

        (3)用反碼相加法累加所有的16位字(進(jìn)位也要累加)。

        以上結(jié)果即作為TCP的校驗(yàn)和。

        如果tcp包長度改變,還要對ip報(bào)頭重新計(jì)算校驗(yàn)和。

        4 總結(jié)

        綜上所述。文件自動加密系統(tǒng)根據(jù)防火墻和流過濾的思想,對從文件服務(wù)器下載的文件進(jìn)行加密保護(hù)。主要用到的技術(shù)有Ndis驅(qū)動級防火墻技術(shù)以及SMS4加密算法技術(shù)。本系統(tǒng)主要針對TCP/IP協(xié)議的特點(diǎn),對經(jīng)過Ndis驅(qū)動的tcp報(bào)文進(jìn)行分類過濾,并根據(jù)http協(xié)議的特點(diǎn),對文件進(jìn)行還原加密,以起到保護(hù)文件的作用。

        本文的主要研究工作有:

        (1)Ndis驅(qū)動程序在文件保護(hù)中的作用。

        (2)流過濾思想在文件保護(hù)中的應(yīng)用。

        [1]朱雁輝.windows防火墻與網(wǎng)絡(luò)封包截獲技術(shù)[M].北京:電子工業(yè)出版社,2002.

        [2]yexin218.Filter驅(qū)動開發(fā)筆記[EB/OL]. http://www.doci n.com/p-97160849.html&endPro=true.

        [3]梁軍學(xué).深度包檢測技術(shù)原理及應(yīng)用[EB/OL].北京郵電大學(xué)網(wǎng)絡(luò)技術(shù)研究院.

        亚洲午夜成人精品无码色欲| 青青手机在线视频观看| 一区二区国产视频在线| 日本一区二区三级在线观看| 久久精品国产亚洲av性瑜伽| av无码国产在线看免费网站| 亚洲色自偷自拍另类小说| 99热精品成人免费观看| 久久中文字幕久久久久91| 日本高清在线一区二区| 亚洲国产色一区二区三区| 日韩吃奶摸下aa片免费观看| 人妻少妇精品无码专区二| 中文字幕亚洲精品一二三区| 99e99精选视频在线观看| 少妇性荡欲视频| 视频国产精品| 日本成人免费一区二区三区| 国产精品国产三级野外国产| 亚洲中文字幕无码中文字在线| 国产爽爽视频在线| 亚洲午夜精品国产一区二区三区 | 精品高朝久久久久9999| 国产在视频线精品视频| 国产人成亚洲第一网站在线播放| 日本午夜伦理享色视频| 成年美女黄的视频网站| 亚洲永久精品ww47| 中文人妻av大区中文不卡| 国产激情视频在线观看大全| 国产三区在线成人av| 亚洲一区视频在线| 精品国产污黄网站在线观看| 人妻av中文字幕久久| 精品国产18久久久久久| 亚洲AV无码日韩一区二区乱| 国内精品亚洲成av人片| 男人靠女人免费视频网站| 亚洲色成人WWW永久在线观看| 日本成人中文字幕亚洲一区| 国产少妇高潮在线视频|