• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2017-03-30 02:09林志盤
      科技與創(chuàng)新 2016年22期
      關(guān)鍵詞:防火墻

      林志盤

      摘 要:計(jì)算機(jī)信息技術(shù)在給人們生活帶來便利、提高信息利用率的同時(shí),網(wǎng)絡(luò)安全問題也日顯突出。要想解決網(wǎng)絡(luò)的安全問題,最首要的就是在網(wǎng)絡(luò)運(yùn)行中輔以相應(yīng)的加密技術(shù)。闡述了NDIS中間層網(wǎng)絡(luò)防火墻技術(shù),詳細(xì)分析了流過濾技術(shù)在文件加密保護(hù)中的應(yīng)用以及具體實(shí)現(xiàn)算法,并介紹了TCP封包的修改。

      關(guān)鍵詞:防火墻;TCP;網(wǎng)絡(luò)通訊;自動(dòng)加密系統(tǒng)

      中圖分類號(hào):TP393.08 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.15913/j.cnki.kjycx.2016.22.110

      隨著網(wǎng)絡(luò)應(yīng)用領(lǐng)域的不斷擴(kuò)展,人們對(duì)信息的保密性要求不斷提高,對(duì)網(wǎng)絡(luò)安全性能提出了新要求。作為網(wǎng)絡(luò)通訊安全的保障性技術(shù),加密技術(shù)在網(wǎng)絡(luò)通訊安全中起著至關(guān)重要的作用。加密技術(shù)作為常規(guī)的信息保密技術(shù),實(shí)際為在網(wǎng)絡(luò)通訊中運(yùn)用密鑰對(duì)文檔進(jìn)行加密傳送,而信息接收者再對(duì)信息進(jìn)行密鑰解碼讀取信息的技術(shù)。只有正確解密的文檔才能被正常瀏覽,因此,該技術(shù)能夠有效保證信息的安全?;诖?,本文開發(fā)了一套文件自動(dòng)加密系統(tǒng),其原理是利用Windows NDIS級(jí)別防火墻的原理對(duì)文件進(jìn)行保護(hù),采取明文存儲(chǔ)、密文分發(fā)的方式。

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

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

      NDIS支持三種類型的驅(qū)動(dòng)程序,包括MinIPort驅(qū)動(dòng)程序、中間層驅(qū)動(dòng)程序、Protocol驅(qū)動(dòng)程序。本文采用中間層驅(qū)動(dòng)程序。

      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.0的數(shù)據(jù)結(jié)構(gòu)

      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ù)是FilterSend NetBufferLists和FilterSendNetBufferListsComplete。在NDIS驅(qū)動(dòng)安裝成功之后,TCP報(bào)文就會(huì)在FilterSendNetBufferLists函數(shù)中以NBL的形式存在。對(duì)于NBL數(shù)據(jù)的處理,就位于這個(gè)函數(shù)中,而FilterSendNetBufferListsComplete的功能是將發(fā)送的結(jié)構(gòu)和數(shù)據(jù)返還給Filter Driver。

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

      2.1 流過濾技術(shù)和包過濾技術(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)用層。本文利用流過濾原理對(duì)數(shù)據(jù)包中的應(yīng)用層信息進(jìn)行加密處理。

      2.2 技術(shù)方案

      本文以HTTP傳輸為例講解流過濾技術(shù)在文件加密中的技術(shù)方案。HTTP走的協(xié)議為TCP報(bào)文,在流過濾方案中截獲的封包是TCP包。處理流程如下:對(duì)截獲的TCP報(bào)文進(jìn)行分類處理→對(duì)1中篩選后的報(bào)文進(jìn)行分析和再次篩選→對(duì)選中的報(bào)文記錄該報(bào)文的源、目的IP和端口→對(duì)此連接的TCP包進(jìn)行滯留,并接管此TCP連接→對(duì)滯留的數(shù)據(jù)包進(jìn)行重組和加密→將加密后的數(shù)據(jù)還原,繼續(xù)轉(zhuǎn)發(fā),并歸還此TCP連接。

      2.2.1 報(bào)文的分類

      由于我們的目的是對(duì)HTTP下載攜帶的文件內(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、FIN、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)行篩選。比如對(duì)于HTTP協(xié)議,應(yīng)用層會(huì)有“HTTP”字樣的關(guān)鍵詞,并對(duì)HTTP分析。HTTP協(xié)議有POST、GET和應(yīng)答。傳輸文件的關(guān)鍵數(shù)據(jù)包一般在2 00O字節(jié)的應(yīng)答中,特征是transfe-Encoding的chunk類型(代表以chunk方式控制文件大?。┮约癴ilename中的擴(kuò)展文件名來確定是否是加密需要的報(bào)文。

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

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

      由于采用網(wǎng)絡(luò)傳輸,TCP報(bào)文很有可能是亂序的,所以,需要根據(jù)TCP的序列號(hào)對(duì)TCP報(bào)文進(jìn)行重組。TCP包的下一序列號(hào)=序列號(hào)+數(shù)據(jù)長(zhǎng)度。這里的數(shù)據(jù)長(zhǎng)度是指?jìng)鬏數(shù)臄?shù)據(jù)大小,不包括ethernet、IP、TCP報(bào)頭的長(zhǎng)度。

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

      2.2.3.1 順序隊(duì)列

      截獲一個(gè)新的報(bào)文后,判斷順序隊(duì)列是否為空。如果為空,則判斷報(bào)文的序列號(hào)是否等于startseq,是則插入順序隊(duì)列,否則按照升序插入到亂序隊(duì)列;如果順序隊(duì)列不為空,則判斷當(dāng)前序列號(hào)是否等于順序隊(duì)列結(jié)尾的序列號(hào)加上數(shù)據(jù)長(zhǎng)度,是則插入順序隊(duì)列結(jié)尾,否則按照升序插入亂序隊(duì)列。

      2.2.3.2 亂序隊(duì)列

      首先判斷亂序隊(duì)列開始的TCP序列號(hào)與順序隊(duì)列結(jié)尾報(bào)文的下一序列號(hào)的大小關(guān)系。如果相同,則將亂序隊(duì)列的開始報(bào)文插入順序隊(duì)列的結(jié)尾;如果前者大于后者,則本輪處理結(jié)束;如果前者小于后者,則直接丟棄該報(bào)文。

      ?;畎ㄒ韵?方面的內(nèi)容:①發(fā)送端。對(duì)于TCP連接,系統(tǒng)將報(bào)文滯留,發(fā)送端得不到報(bào)的回應(yīng)勢(shì)必會(huì)影響連接。因此,我們需要偽裝成接收端向發(fā)送端發(fā)送ack回應(yīng)。Ack數(shù)據(jù)報(bào)文的序列號(hào)等于當(dāng)前TCP的確認(rèn)號(hào),確認(rèn)號(hào)在順序隊(duì)列中為空時(shí),等于startseq;否則,其等于順序隊(duì)列結(jié)尾報(bào)文的下一序列號(hào)。②接收端。從截獲第一個(gè)需要重組的報(bào)文起,需要每隔一段時(shí)間向接收端發(fā)送ack報(bào)文以保證連接。此報(bào)文的序列號(hào)等于startseq,確認(rèn)號(hào)與所有滯留重組的TCP報(bào)文確認(rèn)號(hào)相等。

      2.2.4 報(bào)文的加密

      根據(jù)SMS4加密算法的特性,加密的最小數(shù)據(jù)單位為16字節(jié),因此,結(jié)合實(shí)際應(yīng)用,本系統(tǒng)采用一次性截獲全部4 096字節(jié)的內(nèi)容,然后加密。

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

      指針鏈表元素的數(shù)據(jù)結(jié)構(gòu)主要記錄2點(diǎn),即指針和長(zhǎng)度。對(duì)于每一個(gè)被放入順序隊(duì)列中的TCP包,均分配一個(gè)指針鏈表元素,記錄下數(shù)據(jù)所在的起始地址以及數(shù)據(jù)實(shí)際長(zhǎng)度,并對(duì)數(shù)據(jù)長(zhǎng)度進(jìn)行累加。當(dāng)順序表中的實(shí)際數(shù)據(jù)長(zhǎng)度大于等于4 096字節(jié)時(shí),將數(shù)據(jù)拷貝出來,調(diào)用加密接口對(duì)4 096字節(jié)的內(nèi)容加密,然后根據(jù)指針鏈表中的元素將數(shù)據(jù)拷貝回去之后,對(duì)TCP數(shù)據(jù)包重新計(jì)算校驗(yàn)和,最終轉(zhuǎn)發(fā)。

      3 TCP封包的修改

      對(duì)于一個(gè)TCP報(bào)文而言,如果其所負(fù)載的數(shù)據(jù)被修改,就需要重新計(jì)算校驗(yàn)和,否則數(shù)據(jù)包不會(huì)被正常接收。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ì)算包括3部分,即TCP首部+TCP數(shù)據(jù)+TCP偽首部。

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

      TCP校驗(yàn)和的大致方法如下:①把偽首部、TCP報(bào)頭、TCP數(shù)據(jù)分為16位的字,如果總長(zhǎng)度為奇數(shù)個(gè)字節(jié),則在最后增添一個(gè)位都為0的字節(jié);②把TCP報(bào)頭中的校驗(yàn)和字段置為0;③用反碼相加法累加所有的16位字(進(jìn)位也要累加)。

      以上結(jié)果即作為TCP的校驗(yàn)和。如果TCP包長(zhǎng)度改變,還要對(duì)IP報(bào)頭重新計(jì)算校驗(yàn)和。

      4 結(jié)束語

      綜上所述,加密技術(shù)是解決網(wǎng)絡(luò)安全問題的手段之一,在當(dāng)前的網(wǎng)絡(luò)運(yùn)行中應(yīng)用是十分普遍的。本文開發(fā)了一套文件自動(dòng)加密系統(tǒng),該系統(tǒng)根據(jù)防火墻和流過濾的原理,對(duì)從文件服務(wù)器下載的文件進(jìn)行加密保護(hù),主要用到的技術(shù)有NDIS驅(qū)動(dòng)級(jí)防火墻技術(shù)和SMS4加密算法技術(shù),可針對(duì)TCP/IP協(xié)議的特點(diǎn)對(duì)經(jīng)過NDIS驅(qū)動(dòng)的TCP報(bào)文進(jìn)行分類過濾,并根據(jù)HTTP協(xié)議的特點(diǎn)對(duì)文件進(jìn)行還原加密,以起到保護(hù)文件的作用。

      參考文獻(xiàn)

      [1]朱聞亞.數(shù)據(jù)加密技術(shù)在計(jì)算機(jī)網(wǎng)絡(luò)安全中的應(yīng)用價(jià)值研究[J].制造業(yè)自動(dòng)化,2012(04).

      [2]牛景銳.防火墻與加密技術(shù)在網(wǎng)絡(luò)安全中的應(yīng)用[J].硅谷,2013(11).

      [3]馬利,梁紅杰.計(jì)算機(jī)網(wǎng)絡(luò)安全中的防火墻技術(shù)應(yīng)用研究[J].電腦知識(shí)與技術(shù),2014(14).

      〔編輯:張思楠〕

      猜你喜歡
      防火墻
      簡(jiǎn)單高效 玩轉(zhuǎn)Windows 10防火墻設(shè)置
      一張圖看懂民間借貸“防火墻”
      防火墻技術(shù)在網(wǎng)絡(luò)安全應(yīng)用中的現(xiàn)狀與發(fā)展趨勢(shì)
      防火墻技術(shù)在網(wǎng)絡(luò)安全應(yīng)用中的現(xiàn)狀與發(fā)展趨勢(shì)
      防火墻技術(shù)在網(wǎng)絡(luò)安全應(yīng)用中的現(xiàn)狀與發(fā)展趨勢(shì)
      H3C高端防火墻成功競(jìng)標(biāo)廣東電信
      防火墻選購必讀
      網(wǎng)絡(luò)與信息(2009年1期)2009-02-23
      探析網(wǎng)絡(luò)安全與防范技術(shù)
      防火墻技術(shù)對(duì)網(wǎng)絡(luò)安全的影響
      商丘市| 雅江县| 昂仁县| 大冶市| 安远县| 麦盖提县| 镇江市| 儋州市| 新绛县| 泸水县| 崇礼县| 丰城市| 句容市| 手机| 天气| 定远县| 安陆市| 临沧市| 凌云县| 济源市| 舒城县| 安丘市| 黄山市| 望江县| 纳雍县| 黑水县| 襄樊市| 无锡市| 达日县| 八宿县| 上犹县| 大庆市| 绵阳市| 阿鲁科尔沁旗| 青河县| 红安县| 香河县| 威海市| 邻水| 嘉义县| 科技|