本發(fā)明涉及數(shù)據(jù)命名網(wǎng)絡(luò)(NDN:Named Data Networking),具體設(shè)計一種NDN中惡意請求興趣包攻擊的防御方法(H04W28/14使用中間存儲器;H04Q3/495用于路由選擇連接通道)。
背景技術(shù):
“以數(shù)據(jù)內(nèi)容為中心”是下一代互聯(lián)網(wǎng)架構(gòu)的核心設(shè)計思想,自2006年起,國外學術(shù)界開展了多項關(guān)于下一代互聯(lián)網(wǎng)架構(gòu)的研究項目,包括UC Berkeley RAD實驗室提出的“面向數(shù)據(jù)的網(wǎng)絡(luò)架構(gòu)”(Data-Oriented Network Architecture,DONA)、歐盟FP7的4WARD以及“發(fā)布/訂閱式互聯(lián)網(wǎng)路由范例”(The Publish-Subscribe Internet Routing Paradigm,PSIRP)、加州大學洛杉磯分校提出的命名數(shù)據(jù)網(wǎng)絡(luò)(Named Data Networking,NDN)等,其中NDN更具代表性,是目前下一代互聯(lián)網(wǎng)架構(gòu)的研究熱點。不同于傳統(tǒng)IP網(wǎng)絡(luò)采用面向主機的通信模式,NDN中去除掉主機地址的標識,通過內(nèi)容名對內(nèi)容進行唯一標識,進行尋址、路由、轉(zhuǎn)發(fā),實現(xiàn)內(nèi)容與內(nèi)容存儲位置的分離。如此,用戶無需再將內(nèi)容的請求轉(zhuǎn)發(fā)至擁有該內(nèi)容的特定主機,僅采用基于內(nèi)容的路由轉(zhuǎn)發(fā)機制,即可從提供該內(nèi)容的鄰近節(jié)點取回相應(yīng)的內(nèi)容。此外,NDN還可通過節(jié)點對內(nèi)容的緩存,加快網(wǎng)絡(luò)中其它用戶訪問所需內(nèi)容的響應(yīng)時間,在減少內(nèi)容獲取時間的同時,進一步減輕網(wǎng)絡(luò)的擁塞狀況,提高網(wǎng)絡(luò)資源的利用率。
在NDN網(wǎng)絡(luò)中,請求興趣包(Interest Packet)基于節(jié)點的轉(zhuǎn)發(fā)表(Forwarding Information Base,F(xiàn)IB)信息進行轉(zhuǎn)發(fā),同時請求興趣包狀態(tài)也將記錄在待定興趣表(Pending Interest Table,PIT)中,用于后續(xù)返回的對應(yīng)數(shù)據(jù)包(data Packet)的反向轉(zhuǎn)發(fā),即請求興趣包的轉(zhuǎn)發(fā)過程需要占用路由器的內(nèi)存資源完成包狀態(tài)記錄功能;而且,每個請求興趣包或者數(shù)據(jù)包的到達過程,都會觸發(fā)路由器待定興趣表的條目添加、刪除和更新工作;另外,若路由器待定興趣表記錄的興趣包無法找到對應(yīng)內(nèi)容的數(shù)據(jù)包,則該請求興趣包在待定興趣表中的對應(yīng)條目,將一直保存到待定興趣表條目生存時間超時。由于NDN的這一固有工作機制,導致惡意請求興趣包(本發(fā)明文檔中也稱之為“惡意請求”)攻擊就成為NDN中的重要安全隱患。
惡意請求興趣包攻擊(即部分文獻中所定義的PIT泛洪攻擊)指的是:若NDN網(wǎng)絡(luò)中存在惡意用戶,該類用戶會發(fā)送惡意請求興趣包,這類惡意興趣包請求的內(nèi)容在網(wǎng)絡(luò)中根本不存在,即無法從網(wǎng)絡(luò)中獲取任何數(shù)據(jù)包。但根據(jù)NDN的工作機制,這些惡意請求興趣包會同樣進入節(jié)點的待定興趣表中,長時間非法占用待定興趣表的存儲資源,直至超時。而如果惡意用戶在短時間內(nèi)發(fā)起大量惡意請求,產(chǎn)生大量惡意興趣包,將致使NDN節(jié)點的待定興趣表資源被快速消耗殆盡,從而導致其他合法請求興趣包無法正常存入待定興趣表,從而降低整體的網(wǎng)絡(luò)性能,產(chǎn)生類似傳統(tǒng)IP網(wǎng)絡(luò)中DoS或者DDoS攻擊的效果。
針對存在惡意用戶的非安全NDN網(wǎng)絡(luò),如何有效防御攻擊,改善網(wǎng)絡(luò)性能,是一個迫切需要解決的問題,該問題的現(xiàn)有解決方案主要采用下行接口(請求興趣包的到達接口)限速機制[1-2]。
文獻[1]提出了一種限速機制去對抗惡意請求興趣包攻擊——Poseidon算法。Poseidon算法連續(xù)檢測每個下行接口的興趣包未滿足率,如果在兩個連續(xù)的時間間隔內(nèi)出現(xiàn)顯著的比率變化,Poseidon將會在異常下行接口上設(shè)置一個過濾器,用于限制該接口上請求興趣包的速率,但未指明具體興趣包接收速率限制規(guī)則,僅說明當該接口指標恢復正常,則取消速率限制。
文獻[2]針對惡意請求興趣包攻擊問題,同樣采用了限速機制,基于接口滿足率給出了具體可操作的下行限速機制,其基本原理是,路由器統(tǒng)計節(jié)點各個下行接口的興趣包滿足率,根據(jù)接口的興趣包滿足率對下行接口進行限速。具體的限速方法是:將異常下行接口的興趣包接收速率限制為“原接收速率乘以該接口的興趣包滿足率”。事實上,這種限速機制存在著明顯的弊端,根據(jù)下行接口滿足率進行限速,同時也限制了合法請求興趣包的速率,顯著抑制了正常請求用戶的網(wǎng)絡(luò)訪問能力,因此還有待改進。
文獻[1-2]均采用了下行接口限速機制來防御惡意請求興趣包攻擊,但該機制無差別同時限制正常用戶的請求與惡意用戶的請求,導致正常用戶性能被嚴重制約。此外,由于惡意請求興趣包經(jīng)常分散于各個下行接口上,導致NDN節(jié)點對每個下行接口都需要限制,使得節(jié)點整體工作效率極低。針對這一問題,本發(fā)明提出了一種NDN中惡意請求興趣包攻擊的防御方法,對于每個接收到的請求興趣包,根據(jù)其到達接口的滿足率以及所請求內(nèi)容類別,設(shè)置對應(yīng)的上行轉(zhuǎn)發(fā)概率,將接收到的惡意請求大概率轉(zhuǎn)發(fā)至非可靠群組;進而在上行接口上,根據(jù)其轉(zhuǎn)發(fā)目標群組的平均興趣包丟包率進行限速,實現(xiàn)用戶惡意請求的有效消除,同時殘留的用戶惡意請求由于已經(jīng)大概率匯聚轉(zhuǎn)發(fā)至不可靠群組,對可靠群組影響極小,從而進一步保證了正常用戶請求的網(wǎng)絡(luò)訪問性能。
[1]Liu X,Yang X,Xia Y.NetFence:Preventing Internet Denial of Service from Inside Out[J].Acm Sigcomm Computer Communication Review,2010,40(4):255-266.
[2]Compagno A,Conti M,Gasti P,et al.Poseidon:Mitigating interest flooding DDoS attacks in Named Data Networking[J].Computer Science,2013:630-638.
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種NDN中惡意請求興趣包攻擊的防御方法,以有效實現(xiàn)惡意請求的消除,同時有力保障正常用戶的網(wǎng)絡(luò)訪問性能。
為了解決以上技術(shù)問題,本發(fā)明基于惡意請求流匯聚,根據(jù)當前用戶請求到達接口的興趣包滿足率和請求內(nèi)容類別,設(shè)置轉(zhuǎn)發(fā)概率,概率選擇下一跳節(jié)點,將惡意請求大概率匯聚到非可靠群組的上行轉(zhuǎn)發(fā)接口上;之后,再對上行轉(zhuǎn)發(fā)接口進行限速處理,由于惡意請求已經(jīng)匯聚到少數(shù)上行轉(zhuǎn)發(fā)接口上,而對這些上行接口限速可以有效實現(xiàn)惡意請求的消除。對于剩余沒有被限速機制消除掉的惡意請求興趣包,由于大概率轉(zhuǎn)發(fā)至非可靠群組,因此對轉(zhuǎn)發(fā)至可靠群組的正常用戶請求影響極小,因此本發(fā)明中的轉(zhuǎn)發(fā)策略也有力保障了正常用戶的網(wǎng)絡(luò)訪問性能。
從保證網(wǎng)絡(luò)的整體性能的角度,本發(fā)明將來自非可靠接口的用戶請求,大概率轉(zhuǎn)發(fā)至非可靠群組;而將來自可靠接口的用戶請求轉(zhuǎn)發(fā)至可靠群組。在此基礎(chǔ)上,本發(fā)明對上行轉(zhuǎn)發(fā)接口進行限速處理,提出了一種NDN中惡意請求興趣包攻擊的防御方法。具體技術(shù)方案如下:
一種NDN中惡意請求興趣包攻擊的防御方法,其特征在于包括以下步驟:
步驟一,針對存在用戶惡意請求的非安全NDN網(wǎng)絡(luò),將下一跳所有可選節(jié)點劃分為可靠群組與非可靠群組,根據(jù)當前接收到請求興趣包到達接口的興趣包滿足率以及所請求內(nèi)容類別,設(shè)置對應(yīng)的上行轉(zhuǎn)發(fā)概率,概率選擇下一跳轉(zhuǎn)發(fā)節(jié)點,實現(xiàn)上行轉(zhuǎn)發(fā)請求興趣包的分流調(diào)節(jié),使得接收到的惡意請求興趣包大概率轉(zhuǎn)發(fā)至非可靠群組,實現(xiàn)惡意請求流的匯聚;
步驟二,對于上行接口的轉(zhuǎn)發(fā)流量,根據(jù)其轉(zhuǎn)發(fā)目標群組的丟包率進行限速,并按照請求興趣包的來源接口滿足率確定其在限速后轉(zhuǎn)發(fā)流中的比率,實現(xiàn)用戶惡意請求的有效消除,同時殘留的用戶惡意請求由于已經(jīng)大概率匯聚轉(zhuǎn)發(fā)至不可靠群組,對可靠群組影響極小,從而進一步保證了正常用戶請求的網(wǎng)絡(luò)訪問性能;所述上行接口的轉(zhuǎn)發(fā)流量由未命中的請求興趣包組成。
所述步驟一具體包括以下過程:
過程一,在具有I層的NDN網(wǎng)絡(luò)拓撲環(huán)境中,每一層均具有R個節(jié)點,即R個路由,所有節(jié)點都存在n個接口,每個節(jié)點均與下一層任一節(jié)點存在連通路徑;由于用戶惡意請求的存在,節(jié)點接收到的興趣包有一定比例是虛假的,因此產(chǎn)生興趣包丟包現(xiàn)象;設(shè)在觀測時間T內(nèi),第i層的第r個節(jié)點接收到的興趣包丟包率為S(i,r),其中1≤i≤I,1≤r≤R;
過程二,第i層的節(jié)點周期性輪詢第i+1層所有可選節(jié)點的興趣包丟包率,并以此為依據(jù)計算出第i+1層所有可選節(jié)點的平均興趣包丟包率所述進而,第i層節(jié)點采用為閾值,把第i+1層所有可選節(jié)點劃分為可靠群組與非可靠群組;
過程三,用戶發(fā)出的請求興趣包在第i層節(jié)點沒有命中,將需要向第i+1層節(jié)點進行轉(zhuǎn)發(fā);為了進一步計算轉(zhuǎn)發(fā)概率,第i層節(jié)點需要對自身各個下行接口的興趣包滿足率進行統(tǒng)計,在觀測時間T內(nèi),第i層節(jié)點第r個路由器第j個下行接口請求內(nèi)容流行度為k的興趣包滿足率可以表示為γ(i,r,j,k),這里γ(i,r,j,k)定義為在時間區(qū)間T內(nèi),第j個下行接口到達的第k類興趣包中被滿足的比例,即被滿足的第k類興趣包數(shù)量除以到達的第k類興趣包數(shù)量;
過程四,在完成各個下行接口的興趣包滿足率統(tǒng)計之后,第i層節(jié)點根據(jù)各個下行接口的興趣包滿足率以及需要轉(zhuǎn)發(fā)的請求興趣包的內(nèi)容類別,設(shè)置該請求興趣包的上行轉(zhuǎn)發(fā)概率。該請求興趣包轉(zhuǎn)發(fā)至可靠群組的上行轉(zhuǎn)發(fā)概率為grel(i,r,j,k),定義為:該請求興趣包轉(zhuǎn)發(fā)至不可靠群組的上行轉(zhuǎn)發(fā)概率為gunrel(i,r,j,k),定義為:其中a表示上行接口轉(zhuǎn)發(fā)流量的分流配比系數(shù),a的建議取值區(qū)間為[0.075,0.085];這一上行轉(zhuǎn)發(fā)概率的設(shè)計,將使得接收到的用戶惡意請求大概率轉(zhuǎn)發(fā)至不可靠群組,實現(xiàn)惡意請求流的匯聚;由于可靠群組和不可靠群組均包含若干個節(jié)點,在可靠群組和不可靠群組中,請求興趣包將等概率隨機選擇其中一個節(jié)點轉(zhuǎn)發(fā)。
所述步驟二具體包括以下過程:
所述上行接口的轉(zhuǎn)發(fā)流量根據(jù)其轉(zhuǎn)發(fā)目標群組的平均興趣包丟包率進行限速,實現(xiàn)用戶惡意請求的有效抑制。轉(zhuǎn)發(fā)至可靠群組的上行接口的轉(zhuǎn)發(fā)流量設(shè)置為原先的轉(zhuǎn)發(fā)至非可靠群組的上行接口流量設(shè)置為原先的
限速后的所述上行接口的轉(zhuǎn)發(fā)流量,進一步按照請求興趣包的來源接口滿足率確定其在限速后轉(zhuǎn)發(fā)流中的比率;即限速后,上行接口的轉(zhuǎn)發(fā)流量中,來自于第j個接口的未命中請求興趣包的比例設(shè)置為由于低接口滿足率意味著該接口的用戶惡意請求比例較大,這一設(shè)置可以更有效地限制用戶惡意請求在上行接口轉(zhuǎn)發(fā)流中的比例。
所述將下一跳所有可選節(jié)點劃分為可靠群組與非可靠群組的具體劃分規(guī)則為:對于第i+1層的第r個節(jié)點,若則該節(jié)點劃入不可靠群組;若則該節(jié)點劃入可靠群組。在完成可靠群組與非可靠群組劃分后,第i層節(jié)點計算出可靠群組的平均興趣包丟包率以及非可靠群組的平均興趣包丟包率
本發(fā)明具有有益效果。本發(fā)明針對存在用戶惡意請求的非安全NDN網(wǎng)絡(luò),根據(jù)當前用戶請求接口的興趣包滿足率以及請求內(nèi)容類別,設(shè)置轉(zhuǎn)發(fā)概率,概率選擇下一跳節(jié)點,并對于上行轉(zhuǎn)發(fā)接口進行限速處理,實現(xiàn)惡意請求的有效消除。本發(fā)明將來自可靠接口、請求內(nèi)容流行度高的興趣包大概率轉(zhuǎn)發(fā)至下一跳的可靠群組,來自非可靠接口、請求內(nèi)容流行度低的興趣包大概率轉(zhuǎn)發(fā)至下一跳的非可靠群組。通過進行合理上行轉(zhuǎn)發(fā)限速,以及精細化控制上行接口中來自不同下行接口的興趣包請求流比例,有效保證了網(wǎng)絡(luò)的整體可靠性。
與下行接口限速方法相比較,本發(fā)明可以更好地降低下一跳節(jié)點的請求興趣包丟包率。當請求興趣包中惡意請求比例固定為0.2時,采用下行接口限速方法,第二層節(jié)點請求興趣包丟包率下降了8%,第三層節(jié)點請求興趣包丟包率下降了13%;而采用本發(fā)明提出的上行接口分流限速方法,第二層節(jié)點請求興趣包丟包率下降了21%,第三層節(jié)點請求興趣包丟包率下降了30%。
附圖說明
圖1是本發(fā)明的分層網(wǎng)絡(luò)拓撲場景;
圖2是本發(fā)明方法流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的技術(shù)方案做進一步詳細說明。
設(shè)NDN網(wǎng)絡(luò)場景如圖1所示,設(shè)置網(wǎng)絡(luò)拓撲為5層結(jié)構(gòu),網(wǎng)絡(luò)的每層有20個節(jié)點,每個節(jié)點有10個下行接口。數(shù)據(jù)源可以提供內(nèi)容總數(shù)5000,根據(jù)內(nèi)容流行度可以劃分為50類,即每類包含內(nèi)容數(shù)100,緩存大小與網(wǎng)絡(luò)內(nèi)容總量比例為0.01。緩存置換策略采取最近最少置換策略(LRU),用戶發(fā)送的請求興趣包服從α=1.2的Zipf-like分布,接口路由節(jié)點用戶請求興趣包的到達率104個/秒,內(nèi)容獲取的網(wǎng)絡(luò)平均往返時延8ms,路由節(jié)點PIT的條目生存時間24ms,接口分流配比系數(shù)a=0.08。
本發(fā)明的方法流程圖如圖2所示。
現(xiàn)設(shè)置用戶請求興趣包中惡意興趣包的比例為0.2,采用本發(fā)明所提出的基于惡意請求流匯聚的NDN上行接口限速方法,對第二層和第三層節(jié)點的興趣包丟包率進行計算,與隨機轉(zhuǎn)發(fā)策略下的結(jié)果進行比較。
本發(fā)明在以上實施條件下步驟為:
步驟1:在非安全NDN網(wǎng)絡(luò)環(huán)境中,用戶發(fā)出的請求興趣包在邊緣第一層的第一個節(jié)點沒有命中,需要向第二層節(jié)點進行轉(zhuǎn)發(fā)。首先統(tǒng)計第二層20個節(jié)點的丟包率,統(tǒng)計結(jié)果為S(2,r)=[0.325、0.142、......0.083、0.092],,1≤r≤20。計算第二層節(jié)點的平均興趣包丟包率根據(jù)可靠與非可靠群組劃分規(guī)則將第二層節(jié)點的20個路由器劃分為兩個群組,計算出第二層節(jié)點可靠群組和不可靠群組節(jié)點的平均興趣包丟包率,計算結(jié)果為和
步驟2:第一層的第一個節(jié)點對當前10個下行接口的興趣包滿足率進行獨立統(tǒng)計,請求第一類內(nèi)容的統(tǒng)計結(jié)果為γ(1,1,j,1)=[0.82、0.75......0.54、0.21],,1≤j≤10;請求第二類內(nèi)容的統(tǒng)計結(jié)果為γ(1,1,j,2)=[0.53、0.92......0.41、0.63],1≤j≤10,依此類推,得到50類內(nèi)容的下行接口興趣包滿足率。
步驟3:根據(jù)第一層第一個節(jié)點的10個下行接口興趣包滿足率和請求內(nèi)容類別設(shè)置轉(zhuǎn)發(fā)概率。來自第j個接口,請求第一類內(nèi)容的興趣包轉(zhuǎn)發(fā)至可靠群組的轉(zhuǎn)發(fā)概率為grel(1,1,j,1)=[0.77、0.62......0.43、0.16],1≤j≤10;轉(zhuǎn)發(fā)至不可靠群組的轉(zhuǎn)發(fā)概率為gunrel(1,1,j,1)=[0.23、0.38......0.57、0.84],1≤j≤10;依此類推,得到來自不同下行接口的每一類內(nèi)容請求興趣包轉(zhuǎn)發(fā)概率。由于網(wǎng)絡(luò)第二層存在20個節(jié)點,在可靠群組和不可靠群組中,請求興趣包均服從等概率轉(zhuǎn)發(fā)。
步驟4:上行接口轉(zhuǎn)發(fā)流量首先分別按其轉(zhuǎn)發(fā)目標群組的平均興趣包丟包率進行限速,轉(zhuǎn)發(fā)至可靠群組的上行接口流量設(shè)置為原先的0.897,轉(zhuǎn)發(fā)至非可靠群組的上行接口流量設(shè)置為原先的0.719。進而按照組成流量來源下行接口的請求興趣包滿足率確定其在限速后轉(zhuǎn)發(fā)流中的比率。來源于10個下行接口的流量根據(jù)當前接口請求興趣包滿足率,在限速后轉(zhuǎn)發(fā)流中的比率設(shè)置為[0.263、0.212......0.086、0.051]。