本發(fā)明屬于信息技術(shù)、互聯(lián)網(wǎng)
技術(shù)領(lǐng)域:
:,尤其涉及一種隱私保護(hù)下的數(shù)據(jù)包過(guò)濾方法。
背景技術(shù):
::計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)在日益飛速發(fā)展,伴隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,各類(lèi)新型的網(wǎng)絡(luò)攻擊,以及網(wǎng)絡(luò)危害層出不窮。為了滿(mǎn)足對(duì)日益復(fù)雜的網(wǎng)絡(luò)變化進(jìn)行檢測(cè),數(shù)據(jù)包過(guò)濾器成為研究的熱點(diǎn),數(shù)據(jù)包過(guò)濾器對(duì)所有通過(guò)它進(jìn)出的數(shù)據(jù)包進(jìn)行檢查,并阻止那些不符合既定規(guī)則數(shù)據(jù)包的傳輸,最常見(jiàn)的數(shù)據(jù)包過(guò)濾方法是基于規(guī)則的,這種方法通常通過(guò)檢測(cè)數(shù)據(jù)包的ip地址根據(jù)事先準(zhǔn)備好的規(guī)則集作為過(guò)濾依據(jù),來(lái)實(shí)現(xiàn)對(duì)網(wǎng)上傳輸?shù)男畔⒘鬟M(jìn)行過(guò)濾。然而,當(dāng)在密文環(huán)境中(如https和vpn)傳輸數(shù)據(jù)時(shí),數(shù)據(jù)包使用加密技術(shù)(ssl、ipsec)進(jìn)行加密,該類(lèi)數(shù)據(jù)包具有隱私或者安全屬性,這時(shí)需要將數(shù)據(jù)包進(jìn)行解密,才能進(jìn)行過(guò)濾工作,又由于原加密數(shù)據(jù)包具有安全或隱私屬性,如果為了進(jìn)行過(guò)濾工作而進(jìn)行數(shù)據(jù)包解密工作的話,會(huì)導(dǎo)致隱私泄露等風(fēng)險(xiǎn)。因此本發(fā)明面臨一個(gè)兩難的選擇題,即保護(hù)隱私或解密數(shù)據(jù)包進(jìn)行數(shù)據(jù)匹配?,F(xiàn)有解決此類(lèi)問(wèn)題的技術(shù),經(jīng)過(guò)我們的調(diào)研有blindbox[文獻(xiàn)1],此方法是進(jìn)行的深度數(shù)據(jù)包過(guò)濾,即根據(jù)將整個(gè)數(shù)據(jù)包所有的內(nèi)容進(jìn)行加密,然后通過(guò)關(guān)鍵字(keyword)匹配過(guò)濾規(guī)則。但是此種方法僅僅只能進(jìn)行關(guān)鍵字的過(guò)濾。并且在建立連接階段消耗的時(shí)長(zhǎng)比較多。dpf-et[文獻(xiàn)2]在sdns(software-defiendnetworks)中提出了一種低成本的基于隱私保護(hù)的深度數(shù)據(jù)包過(guò)濾協(xié)議(privacy-preservingdpfprotocol),該協(xié)議使用一種茫然傳輸加密協(xié)議(oblivioustransferprotocol)來(lái)保護(hù)了數(shù)據(jù)隱私,使用該文獻(xiàn)中的方法,也可以保證隱私保護(hù)下的數(shù)據(jù)包過(guò)濾,但是該種方法是基于軟件定義網(wǎng)路(sdn),并沒(méi)有在非sdn網(wǎng)絡(luò)架構(gòu)中使用。綜上所述,現(xiàn)有技術(shù)存在的問(wèn)題是:沒(méi)有一種針對(duì)傳統(tǒng)網(wǎng)絡(luò)架構(gòu)中,對(duì)加密數(shù)據(jù)包有效過(guò)濾的方法。由于原加密數(shù)據(jù)包具有一定的隱私屬性,如果為了進(jìn)行過(guò)濾工作而進(jìn)行數(shù)據(jù)包解密工作的話,會(huì)導(dǎo)致隱私泄露等風(fēng)險(xiǎn)。為了有效的解決上述問(wèn)題,本發(fā)明提出一種針對(duì)加密數(shù)據(jù)流進(jìn)行數(shù)據(jù)包檢測(cè)的方法,能在不解密數(shù)據(jù)包的前提下,執(zhí)行數(shù)據(jù)包檢測(cè)過(guò)濾。參考文獻(xiàn)[1]sherryj,lanc,popara,etal.blindbox:deeppacketinspectionoverencryptedtraffic[j].acmsigcommcomputercommunicationreview,2015,45(4):213-226.[2]linyh,shensh,yangmh,etal.privacy-preservingdeeppacketfilteringoverencryptedtrafficinsoftware-definednetworks[c]//icc2016-2016ieeeinternationalconferenceoncommunications.ieee,2016:1-7.技術(shù)實(shí)現(xiàn)要素:針對(duì)現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明提供了一種隱私保護(hù)下的數(shù)據(jù)包過(guò)濾方法。本發(fā)明是這樣實(shí)現(xiàn)的,一種隱私保護(hù)下的數(shù)據(jù)包過(guò)濾方法,所述隱私保護(hù)下的數(shù)據(jù)包過(guò)濾方法包括以下步驟:步驟一,在數(shù)據(jù)包加密之前,提出數(shù)據(jù)包包頭數(shù)據(jù),獲取關(guān)鍵數(shù)據(jù)的二進(jìn)制碼;步驟二,ip地址則根據(jù)協(xié)議約定的前綴長(zhǎng)度,獲取二進(jìn)制碼的前綴表達(dá)式成員;步驟三,采用提出的加密函數(shù)使用密鑰t對(duì)上一步產(chǎn)生的前綴成員以及端口號(hào)、協(xié)議號(hào)進(jìn)行按位加密,并將密文數(shù)據(jù)以及密鑰傳輸給中間件;步驟四,中間件按照前綴長(zhǎng)度約定、以及加密函數(shù)處理規(guī)則數(shù)據(jù),并且此處理在不替換規(guī)則、不替換約定長(zhǎng)度的前提下,只需處理一次;步驟五,匹配數(shù)據(jù)端發(fā)送的數(shù)據(jù)以及中間件處理后的數(shù)據(jù),如果匹配成功則攔截?cái)?shù)據(jù)包,如果不成功,則中間件對(duì)數(shù)據(jù)包不做任何處理。進(jìn)一步,數(shù)據(jù)包加密采用可授權(quán)偽隨機(jī)函數(shù)對(duì)數(shù)據(jù)包包頭的各個(gè)域進(jìn)行加密,過(guò)濾規(guī)則也采用可授權(quán)偽隨機(jī)函數(shù)進(jìn)行加密;在可授權(quán)偽隨機(jī)函數(shù)中有兩個(gè)單向哈喜函數(shù):g0和g1,且這兩個(gè)單向函數(shù)g0和g1是公開(kāi)的,加密方法是用數(shù)據(jù)對(duì)加密的密鑰進(jìn)行加密。3、如權(quán)利要求1所述的隱私保護(hù)下的數(shù)據(jù)包過(guò)濾方法,其特征在于,ip地址前綴長(zhǎng)度約定將ip地址前綴成員函數(shù)計(jì)算出來(lái),根據(jù)約定,前綴成員函數(shù)記為:f(x)={b1b2b3b4b5,b1b2b3**,b1b2***},然后使用可授權(quán)偽隨機(jī)函數(shù)進(jìn)行加密可得到:進(jìn)一步,在中間件中,首先需要進(jìn)行過(guò)濾規(guī)則的預(yù)處理,每一條規(guī)則,進(jìn)行如下處理:步驟一,與數(shù)據(jù)發(fā)送端處理數(shù)據(jù)規(guī)則類(lèi)似,將ip、端口號(hào)、協(xié)議三種數(shù)據(jù)做不同的處理;其中端口和協(xié)議,直接按照加密方式即可授權(quán)偽隨機(jī)函數(shù)進(jìn)行加密;得到該條規(guī)則對(duì)應(yīng)的端口號(hào)以及協(xié)議的密文數(shù)據(jù)enck(sourceport)、enck(destport)、enck(protocol);步驟二,將ip地址根據(jù)協(xié)議約定的長(zhǎng)度進(jìn)行加密。步驟三,生成該條過(guò)濾規(guī)則的enck(f(sourceip))、enck(f(destip))密文ip字段集合。進(jìn)一步,數(shù)據(jù)包采用雙層布魯姆過(guò)濾器;所述布魯姆過(guò)濾器采用長(zhǎng)度為m的比特?cái)?shù)組v以及k個(gè)相互獨(dú)立的哈喜函數(shù)h1、h2、…、hk;當(dāng)需要將元素s存儲(chǔ)到布魯姆過(guò)濾器時(shí),分別計(jì)算設(shè)置h1(s)、h2(s)、…、hk(s)的值,并將v中對(duì)應(yīng)位置的比特值置為‘1’;當(dāng)需要判斷元素u是否在布魯姆過(guò)濾器中時(shí),檢查v中第h1(u)、h2(u)、…、hk(u)位置的比特值是否全為1,如果全為1,則元素u以較大概率在s中,如果不全為1,則u一定不在布魯姆過(guò)濾器中。本發(fā)明的另一目的在于提供一種所述隱私保護(hù)下的數(shù)據(jù)包過(guò)濾方法的隱私保護(hù)下的數(shù)據(jù)包過(guò)濾系統(tǒng),所述隱私保護(hù)下的數(shù)據(jù)包過(guò)濾系統(tǒng)包括:數(shù)據(jù)發(fā)送端、中間件、數(shù)據(jù)接收端;在數(shù)據(jù)發(fā)送端,需要根據(jù)約定的協(xié)議,將數(shù)據(jù)包頭進(jìn)行加密,并且將數(shù)據(jù)傳輸給中間件;中間件,需要根據(jù)約定的協(xié)議加密第三方輸入的過(guò)濾規(guī)則,然后處理后的結(jié)果保存到布魯姆過(guò)濾器中,最后判斷發(fā)送端發(fā)送過(guò)來(lái)的密文數(shù)據(jù)是否匹配處理后的過(guò)濾規(guī)則,如匹配,則攔截該數(shù)據(jù)包,反之,則將數(shù)據(jù)包發(fā)送至數(shù)據(jù)接收端。本發(fā)明的另一目的在于提供一種應(yīng)用所述隱私保護(hù)下的數(shù)據(jù)包過(guò)濾方法的數(shù)據(jù)包過(guò)濾器。本發(fā)明的優(yōu)點(diǎn)及積極效果為:在不解密數(shù)據(jù)包內(nèi)容的前提下,實(shí)現(xiàn)判斷數(shù)據(jù)包是否應(yīng)該被過(guò)濾的方法;為了達(dá)到這個(gè)目的本發(fā)明采用可授權(quán)偽隨機(jī)函數(shù)對(duì)數(shù)據(jù)包包頭,以及過(guò)濾規(guī)則進(jìn)行加密,并采用布魯姆過(guò)濾器提高數(shù)據(jù)包過(guò)濾速度。附圖說(shuō)明圖1是本發(fā)明實(shí)施例提供的隱私保護(hù)下的數(shù)據(jù)包過(guò)濾方法流程圖。圖2是本發(fā)明實(shí)施例提供的系統(tǒng)架構(gòu)示意圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作詳細(xì)的描述。如圖1所示,本發(fā)明實(shí)施例提供的隱私保護(hù)下的數(shù)據(jù)包過(guò)濾方法包括以下步驟:s101:在數(shù)據(jù)包加密之前,提出數(shù)據(jù)包包頭數(shù)據(jù),獲取關(guān)鍵數(shù)據(jù)的二進(jìn)制碼;s102:ip地址則根據(jù)協(xié)議約定的前綴長(zhǎng)度,獲取二進(jìn)制碼的前綴表達(dá)式成員;s103:采用本發(fā)明提出的加密函數(shù)使用密鑰t對(duì)上一步產(chǎn)生的前綴成員以及端口號(hào)、協(xié)議號(hào)進(jìn)行按位加密,并將密文數(shù)據(jù)以及密鑰傳輸給中間件;s104:中間件按照前綴長(zhǎng)度約定、以及加密函數(shù)處理規(guī)則數(shù)據(jù),并且此處理在不替換規(guī)則、不替換約定長(zhǎng)度的前提下,只需處理一次;s105:匹配數(shù)據(jù)端發(fā)送的數(shù)據(jù)以及中間件處理后的數(shù)據(jù),如果匹配成功則攔截?cái)?shù)據(jù)包,如果不成功,則中間件對(duì)數(shù)據(jù)包不做任何處理。如圖2所示,本發(fā)明實(shí)施例中系統(tǒng)架構(gòu)涉及三個(gè)部分,數(shù)據(jù)發(fā)送端(sender),中間件(middlebox),數(shù)據(jù)接收端(reciever)。其中,在數(shù)據(jù)發(fā)送端,需要根據(jù)約定的協(xié)議,將數(shù)據(jù)包頭進(jìn)行加密,并且將數(shù)據(jù)傳輸給中間件,中間件中,首先需要根據(jù)約定的協(xié)議加密第三方輸入的過(guò)濾規(guī)則,然后處理后的結(jié)果保存到布魯姆過(guò)濾器中,最后判斷發(fā)送端發(fā)送過(guò)來(lái)的密文數(shù)據(jù)是否匹配處理后的過(guò)濾規(guī)則,如匹配,則攔截該數(shù)據(jù)包,反之,則將數(shù)據(jù)包發(fā)送至數(shù)據(jù)接收端。接下來(lái)介紹加密方式。采用可授權(quán)偽隨機(jī)函數(shù)(delegatablepseudo-randomhashfunction,dphf)對(duì)數(shù)據(jù)包包頭的各個(gè)域進(jìn)行加密,過(guò)濾規(guī)則也采用可授權(quán)偽隨機(jī)函數(shù)進(jìn)行加密。在可授權(quán)偽隨機(jī)函數(shù)中有兩個(gè)單向哈喜函數(shù):g0和g1,且這兩個(gè)單向函數(shù)g0和g1是公開(kāi)的,加密方法是用數(shù)據(jù)對(duì)加密的密鑰進(jìn)行加密。例如秘密分配一個(gè)密鑰k,當(dāng)需要對(duì)一個(gè)二進(jìn)制字符串00101進(jìn)行加密時(shí),執(zhí)行的加密過(guò)程為:g1(g0(g1(g0(g0(k)))))。假設(shè)數(shù)據(jù)包的ip地址是一個(gè)5位的二進(jìn)制串,有一條數(shù)據(jù)包過(guò)濾規(guī)則采用前綴表達(dá)式表達(dá)位001**,采用可授權(quán)偽隨機(jī)函數(shù)加密規(guī)則可計(jì)算規(guī)則的密文:g1(g0(g0(k))),并將計(jì)算后的密文數(shù)據(jù)以及前綴長(zhǎng)度一起發(fā)送給中間件middlebox,middlebox接收到密文數(shù)據(jù)與前綴長(zhǎng)度,可以進(jìn)一步規(guī)范化密文。例如當(dāng)接到(g1(g0(g0(k))),3)后,middlebox可以采用g0和g1函數(shù)計(jì)算他所需要的密文長(zhǎng)度,例如,它可以分別采用g0和g1計(jì)算密文長(zhǎng)度為4的兩個(gè)密文g0(g1(g0(g0(k))))和g1(g1(g0(g0(k))))。然后介紹ip地址前綴長(zhǎng)度約定。數(shù)據(jù)發(fā)送端與中間件的前綴表達(dá)式長(zhǎng)度規(guī)則由具體協(xié)議來(lái)約定。假設(shè)ip地址長(zhǎng)度為5位的二進(jìn)制串:{b1b2b3b4b5}。假設(shè)本發(fā)明協(xié)議中約定前綴表達(dá)式長(zhǎng)度集合為{2,3,5}。在數(shù)據(jù)發(fā)送端,首先將ip地址前綴成員函數(shù)計(jì)算出來(lái),根據(jù)上述約定,前綴成員函數(shù)記為:f(x)={b1b2b3b4b5,b1b2b3**,b1b2***},然后本發(fā)明使用上述說(shuō)明的可授權(quán)偽隨機(jī)函數(shù)進(jìn)行加密可得到:具體來(lái)說(shuō),在數(shù)據(jù)發(fā)送端,根據(jù)以上約定,將數(shù)據(jù)包的包頭進(jìn)行加密。一個(gè)數(shù)據(jù)報(bào)包頭包括很多部分,在本發(fā)明中,只是針對(duì)以下5個(gè)部分進(jìn)行加密,即sourceipaddress(源ip地址)、sourceport(源端口號(hào))、destinationipaddress(目標(biāo)ip地址)、destinationport(目標(biāo)端口號(hào))、destinationprotocol(協(xié)議)。由于本發(fā)明的過(guò)濾規(guī)則支持ip地址的前綴表達(dá)式,所以將對(duì)ip地址,端口號(hào)、協(xié)議做不同的處理,即ip地址采用上述介紹的前綴長(zhǎng)度約定來(lái)生成多種長(zhǎng)度的前綴表達(dá)式密文,端口號(hào)和協(xié)議僅采用上文介紹的加密方式進(jìn)行加密。產(chǎn)生對(duì)應(yīng)的包頭密文數(shù)據(jù)以及經(jīng)過(guò)加密后的源數(shù)據(jù)流發(fā)送到中間件。數(shù)據(jù)發(fā)送端產(chǎn)生的數(shù)據(jù)包報(bào)頭密文數(shù)據(jù)字段如下所示:表1數(shù)據(jù)包包頭明文密文字段對(duì)照表過(guò)濾規(guī)則由第三方提供,在中間件中,首先需要進(jìn)行過(guò)濾規(guī)則的預(yù)處理。過(guò)濾規(guī)則的處理實(shí)際上不是個(gè)經(jīng)常發(fā)生的過(guò)程,除了第三方提供的過(guò)濾規(guī)則或約定的前綴長(zhǎng)度有變化,過(guò)濾規(guī)則只需要處理一次。本發(fā)明針對(duì)每一條規(guī)則,進(jìn)行如下處理:步驟1,與數(shù)據(jù)發(fā)送端處理數(shù)據(jù)規(guī)則類(lèi)似,將ip、端口號(hào)、協(xié)議三種數(shù)據(jù)做不同的處理。其中端口和協(xié)議,直接按照上文描述的加密方式即可授權(quán)偽隨機(jī)函數(shù)進(jìn)行加密。而后得到該條規(guī)則對(duì)應(yīng)的端口號(hào)以及協(xié)議的密文數(shù)據(jù)enck(sourceport)、enck(destport)、enck(protocol)。步驟2,將ip地址(包括sourceip,destip)根據(jù)協(xié)議約定的長(zhǎng)度進(jìn)行加密。如約定的前綴長(zhǎng)度集合為{2,3,5}。如當(dāng)前規(guī)則的前綴長(zhǎng)度在集合之中,則根據(jù)上文提出的加密方式直接進(jìn)行加密。如果過(guò)濾的前綴長(zhǎng)度不在集合之中,則需要繼續(xù)向下擴(kuò)展,例如:某條過(guò)濾規(guī)則為1101*,其前綴長(zhǎng)度為4,加密后的密文數(shù)據(jù)為(g1(g0(g1(g1(k)))),4),則本發(fā)明需要通過(guò)g0和g1將其拓展為(g1(g1(g0(g1(g1(k))))),5),(g0(g1(g0(g1(g1(k))))),5)。用f1(x)表示這向下拓展后的集合。即:enck(f1(x))={[g1(g1(g0(g1(g1(k))))),5],[g0(g1(g0(g1(g1(k))))),5]};最后生成該條過(guò)濾規(guī)則的enck(f1(sourceip))、enck(f1(destip))密文ip字段集合。中間層如何進(jìn)行數(shù)據(jù)包的過(guò)濾。進(jìn)行密文數(shù)據(jù)的匹配,數(shù)據(jù)發(fā)送端發(fā)送數(shù)據(jù)包包頭密文數(shù)據(jù)到中間件,如果匹配任意一條處理后的過(guò)濾規(guī)則,則攔截該數(shù)據(jù)包。匹配規(guī)則為:針對(duì)協(xié)議號(hào)和端口號(hào),如果密文數(shù)據(jù)相同則視為匹配,而ip地址由于傳輸?shù)氖前凑諈f(xié)議產(chǎn)生的前綴成員的密文數(shù)據(jù),所以只需要判斷任意一個(gè)前綴成員在指定過(guò)濾規(guī)則ip地址字段的集合中,則視為匹配。為了提高數(shù)據(jù)包的過(guò)濾速度以及降低過(guò)濾規(guī)則的存儲(chǔ)空間。采用布魯姆過(guò)濾器。布魯姆過(guò)濾器廣泛用于集合的精簡(jiǎn)表示和數(shù)據(jù)元素與集合之間的隸屬關(guān)系查詢(xún),是一種在空間上非常高效的隨機(jī)化數(shù)據(jù)結(jié)構(gòu)。標(biāo)準(zhǔn)布魯姆過(guò)濾器采用長(zhǎng)度為m的比特?cái)?shù)組v以及k個(gè)相互獨(dú)立的哈喜函數(shù)h1、h2、…、hk。當(dāng)需要將元素s存儲(chǔ)到布魯姆過(guò)濾器時(shí),分別計(jì)算設(shè)置h1(s)、h2(s)、…、hk(s)的值,并將v中對(duì)應(yīng)位置的比特值置為‘1’。當(dāng)需要判斷元素u是否在布魯姆過(guò)濾器中時(shí),檢查v中第h1(u)、h2(u)、…、hk(u)位置的比特值是否全為1,如果全為1,則元素u以較大概率在s中,如果不全為1,則u一定不在布魯姆過(guò)濾器中。布魯姆過(guò)濾器存在假陽(yáng)性的判斷(即屬于集合中的元素而判斷為不屬于集合中的元素),為了緩解這個(gè)問(wèn)題。使用雙層布魯姆過(guò)濾器。假設(shè)原一層布魯姆過(guò)濾器發(fā)生誤判的概率為1%,如果采用雙層布魯姆過(guò)濾器,則發(fā)生誤判的概率為0.01%。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12