路由發現中的黑洞攻擊防禦方法與流程
2023-06-03 03:29:03 1
本發明屬於無線網絡通信技術領域,特別涉及一種路由發現中的黑洞攻擊防禦方法,可用於無線自組織網中。
背景技術:
隨著網際網路及數位技術的飛速發展,人們對網絡帶寬的需求量逐年增加,並且在網絡接入的便捷性和安全性上有更高的需求。無線自組織網絡作為一種新型組網形式,與傳統的有線網絡相比,具有移動性強、覆蓋區域大、部署靈活、部署成本低等特點,無線自組織網絡接入將會成為人們訪問網際網路最主要的方式。然而,無線自組織網絡具有各個節點地位平等、節點能量受限、節點計算能力受限等固有缺陷,且在設計之初其路由協議並沒有考慮內部安全問題,因此上述問題造成在路由發現階段極易受到黑洞攻擊。黑洞攻擊可以輕易的假冒目的節點或謊稱自己有到目的節點的最優路由,而不被其他正常節點懷疑。並且除了惡意節點的黑洞攻擊,對於因為能量耗盡等情況不能轉發數據包的節點也會造成對網絡的黑洞攻擊。對於遭受黑洞攻擊的網絡,因為各個節點地位平等,使得源節點發送的數據包都會經過黑洞節點,造成嚴重的隱私洩露、網絡可用性變差等問題。
在正常的無線自組織網絡路由發現過程中,源節點在網絡中通過廣播RREQ包,查找目的節點;中間節點收到RREQ包後首先建立到源節點的反向路由,然後查找自己的路由表,如果自己的路由表存在到目的節點的路由,則通過反向路由向源節點發送RREP包,否則繼續廣播轉發收到的RREQ包;直到真正的目的節點收到RREQ包後,並按照到源節點的反向路由發送RREP包給源節點;源節點收到RREP包後,提取目的序列號,如果該序列號大於自己的序列號,就把該路由添加為到目的節點的路由,否則不添加。但在網絡環境中存在各個節點的地位平等,引入第三方困難等問題。因此,在自組織網絡路由發現階段如何高效、準確的檢測出可能存在的內部惡意節點,是無線自組織網絡在路由發現階段防禦黑洞攻擊的關鍵。
在路由發現階段針對無線自組織網絡的黑洞攻擊分為兩種,分別為單節點黑洞攻擊和多節點合謀黑洞攻擊。單節點黑洞攻擊是指在路由發現階段,惡意節點在接收到源節點的RREQ包後,單獨向源節點發送RREP包,使得源節點誤認為惡意節點有到目的節點的最優路由,誘騙源節點與自己建立從源節點到目的節點的通信鏈路。當鏈路建立好後,源節點發往目的節點的數據包將會全部經過惡意節點,惡意節點可以對這些數據包採取丟棄、篡改、重放等一系列攻擊行為,形成一個數據包「黑洞」;多節點合謀黑洞攻擊是指在路由發現階段,多個惡意節點合謀發起攻擊,一個或多個惡意節點在接收到源節點的RREQ包後,共同向源節點發送RREP包,共同誘騙源節點把其中一個惡意節點當作真正的目的節點,並建立到該惡意節點的路由,在之後的數據發送過程中,惡意節點可以通過丟棄、篡改等方式進行攻擊,對無線自組織網絡安全造成嚴重影響。
在黑洞攻擊中,黑洞節點為讓自己發送的RREP包成為最新鮮的RREP包,並讓源節點依據該RREP包建立到目的節點的路由,黑洞節點會故意將自己發送的RREP包的序列號設置成儘可能大的值。這樣會造成在路由發現階段,網絡中真正目的節點和黑洞節點發送的RREP包序列號的值具有較大差別。
為在路由發現階段防禦黑洞攻擊,研究人員提出了為RREP包的序列號設置靜態閾值或動態閾值的方法。
靜態閾值方法,是將閾值設定為一個不隨網絡狀態變化的值,當源節點收到的RREP包的目的序列號大於該閾值時,源節點認為有黑洞攻擊發生,就丟棄該RREP包;否則認為沒有黑洞攻擊發生。但是這種靜態閾值的方法靈活性太差,當網絡具有較大通信量時,RREP包的目的序列號會增加很快,使得該方法產生大量誤報。
動態閾值方法,是將閾值設定為一個隨著網絡流量變化的值,其計算公式為:2×N+max(seqRREP),其中N為網絡中節點的個數,seqRREP為RREP包的序列號,max(x)為取所有x的最大值。該方法的主要缺點是閾值過大,特別是在網絡具有較小通信量情況下會出現的漏報過多的問題。
在現有專利中,面向無線自組織網絡黑洞攻擊的防禦方法有主動探測方法、可信第三方檢測方法。
主動探測方法,是通過建立多條探測路由,節點記錄是否受到了黑洞攻擊,如果受到了黑洞攻擊則降低其信任度,而對成功路由的節點則提高其信任度。但是這種主動探測方法建立多條探測路由,過多消耗節點能量,降低網絡的可用性。
可信第三方檢測方法,是在分簇自組織網絡中,將可信節點部署在所有簇頭附近,利用可信節點對所有簇頭區域進行實時監測,若簇頭節點數據流量的變化異常,則存在黑洞攻擊,否則不存在黑洞攻擊。但是在無線自組織網絡中,引入可信第三方困難,因此該方法的實際應用性很低。
技術實現要素:
本發明的目的在於針對上述現有技術的不足,提出一種路由發現中的黑洞攻擊防禦方法,以降低自組織網絡防禦機制在具有不同通信量的情況下對黑洞節點的漏報或誤報,確保源節點可以建立一條到目的節點正確的路由。
為實現上述目的,本發明的技術方案包括:
1.一種路由發現中的黑洞攻擊防禦方法,其特徵在於,包括:
(1)獲取可疑節點步驟:
(1a)網絡中的每個節點建立兩張表,分別為接收路由請求表Tq、接收路由響應表Tp;
(1b)在路由建立階段每隔一個時間間隔Δti比較一次接收路由請求表Tq和接收路由響應表Tp:若Tp中的IP位址均在Tq中,則路由建立階段沒有黑洞攻擊發生,並將Tp和Tq中的IP位址進行排列,形成信任表Tt;否則存在黑洞攻擊發生的可能性,記錄下可疑節點,執行步驟(2);
(2)確認網絡狀態步驟:
(2a)建立一個訓練集TR={tr|tr=Ai},其中Ai為路由響應包的目的序列號的閾值,tr為訓練集TR的元素;
(2b)設訓練集中的最後一個元素A'=ATR,每當節點收到一個路由響應包後,提取包中的目的序列號D,並與訓練集中的最後一個元素A'進行比較,若D>A',則認為路由發現階段發生黑洞攻擊,節點記錄發送該路由響應包的節點的IP位址,執行步驟(3),否則認為沒有發生黑洞攻擊,使用訓練集TR中的全部元素和目的序列號D計算當前時刻路由請求包的目的序列號閾值其中λs=e-(s-i-1)表示記憶曲線函數,As為前i個時刻所有路由請求包的目的序列號閾值,得到Ai+1後將其放到訓練集TR的末尾;
(3)發現、刪除黑洞節點步驟:
(3a)在所有節點的接收路由響應表Tp中查找(2b)中記錄下的IP位址,若某個節點node在接收路由響應表Tp中能找到(2b)中記錄下的IP位址,則該IP位址對應的節點為黑洞節點;
(3b)節點node將黑洞節點從網絡中剔除,即把黑洞節點的IP位址進行排列,形成黑名單Tb,將接收路由響應表Tp和接收路由請求表Tq中除了黑洞節點IP位址的其他IP位址進行排列,形成信任表Tt,並在之後的路由發現過程中不再向黑名單中的節點轉發路由請求包,也不接收黑名單中節點發送的路由響應包。
本發明具有以下優點:
1.具有自驗證性
本發明引入內部節點間的分布式驗證方法,不需要引入額外可信第三方或可信節點來進行驗證,在獲取可疑節點、確認網絡狀態和發現黑洞節點的各項驗證信息都是在各個內部節點上分布式進行的,只要不是所有節點被攻破後,就可以保證全局路由信息的安全,從而防止引入可信第三方或可信節點後,其被攻破後造成所有路由信息的洩露。
2.具有很強的適應性
本發明引入機器學習算法對閾值進行訓練,保證閾值能根據網絡繁忙程度的變化而變化。當網絡負載小時,網絡中序列號的最大值比較小,這時計算得出的閾值也比較小;當網絡負載高時,網絡中序列號的最大值比較大,這時計算得出的閾值也比較大。因此,本發明的動態閾值算法具有良好的適應性,能保證適用於多種繁忙程度的網絡。
3.具有檢測內部攻擊的能力
黑洞攻擊可以從內部發起,而目前多數的黑洞攻擊防禦方法都無能為力,本發明利用動態閾值,源節點通過比較RREP包的目的序列號和閾值,可以判斷網絡中是否存在黑洞攻擊,實現在路由發現階段防禦從內部發起的黑洞攻擊的目標。
4.可擴展性強
本發明提出的防禦方法均部署在內部節點上,不用引入額外的節點,因此在擴大網絡規模的時候不需要對方法本身進行改變,只需要簡單的將防禦方法配置到新部署的節點上即可,具有良好的可擴展性。
5.具有在路由發現階段防禦黑洞攻擊的能力
現有的在無線自組織網絡中防禦黑洞攻擊的安全機制均是以路由能正確建立為前提條件,在路由正確建立後的數據傳輸階段發揮作用,本發明實現了在路由發現階段防禦黑洞攻擊的方法,不需要特別設定一個前提條件。
6.提高了網絡可用性
本發明採用分布式的方法比較RREP包目的序列號和閾值,而不是像現有方法那樣將RREP包目的序列號和閾值的比較交由源節點處理。這個改進可以在有效降低源節點負載,節約源節點能量的基礎上,還可以提高處理速度,提高網絡的可用性。
附圖說明
圖1是本發明的實現流程圖;
圖2是本發明中計算閾值的子流程圖;
圖3是本發明中機器學習示意圖。
具體實施方式
本發明使用基於接收路由請求表Tq和接收路由響應表Tp比較的方法得到可疑節點集合,之後利用機器學習算法獲取路由響應包的目的序列號閾值,然後源節點利用接收到的路由響應包的目的序列號與閾值進行比較判斷黑洞攻擊是否發生,並且再次利用上述兩表的比較得到黑洞節點。
本發明在接收路由請求表Tq、接收路由響應表Tp比較的步驟和應用機器學習算法動態計算序列號閾值的步驟中應用了集合論和工程優化的知識,所使用的符號如表1所示。
註:0<i<N
以下結合附圖對本發明作進一步詳細描述。
參照圖1,本發明的實現如下:
步驟1,獲取可疑節點
(1a)節點接收到鄰居節點發送過來的路由請求包後,將發送該路由請求包的鄰居節點的IP位址加入到接收路由請求表集合Q中,形成接收路由請求表Tq;
(1b)節點接收到鄰居節點發送過來的路由響應包後,將發送該路由響應包的鄰居節點的IP位址加入到接收路由響應表集合P中,形成接收路由響應表Tp;
(1c)在每個時刻,所有節點對各自的接收路由請求表集合Q和接收路由響應表集合P進行一次比較,並根據比較結果判斷是否存在黑洞攻擊;
(1c1)所有節點計算各自接收路由響應表集合P和接收路由請求表集合Q的差C=P-Q,若C=Φ,則表明當前路由發現階段沒有發生黑洞攻擊,令集合E=P∪Q,將集合E中的元素進行排列,形成信任表Tt,若C≠Φ,則表明當前路由發現階段可能發生了黑洞攻擊,記錄下可疑節點,形成可疑集合S,即S=C;
步驟2,確認網絡狀態
(2a)使用PCA算法獲得初始閾值A1:
參照圖2,本步驟的實現步驟如下:
(2a1)為路由發現剛開始的階段創造一段安全時間Ts,該Ts包含k個時間片Δti,設在每一個時間片Δti內的網絡序列號狀態向量為xi=(xi1,xi2,xi3),0≤i<k;
(2a2)計算安全時間Ts內的網絡序列號狀態向量xi均值
(2a3)計算安全時間Ts內所有網絡序列號狀態向量xi到網絡序列號狀態向量均值的距離d(x)i:
(2a4)根據步驟(2a3)中計算出的k個距離d(x)i,計算出初始閾值A1:
A1=d(x)I,I=argmaxd(x)i,
(2b)令訓練集TR={tr|tr=Ai},基於機器學習算法計算出每個時間片的閾值;
參照圖3,本步驟的實現如下:
(2b1)把(2a4)計算出的初始閾值A1加入到訓練集TR中,作為訓練集TR的初始元素;
(2b2)設訓練集中的最後一個元素A'=A|TR|,當安全時間結束後,網絡進入安全性未知的路由發現階段,其每一個時間片為Δti;
(2b3)在每個時間片Δti中,節點提取接收到的每個路由請求包的目的序列號D,並與訓練集TR中的最後一個元素A'進行比較,若D>A',則認為路由發現階段出現黑洞攻擊,節點記錄發送該路由響應包的節點的IP位址,執行步驟(3),否則認為路由發現階段沒有出現黑洞攻擊,執行步驟(2b4);
(2b4)計算當前網絡序列號閾值Ai+1:
其中As為前i個時刻所有路由請求包的目的序列號閾值,λs=e-(s-i-1)表示記憶曲線函數,得到當前網絡序列號閾值Ai+1後將其放入訓練集TR中,即Ai+1∈TR。
步驟3,刪除黑洞節點
(3a)在所有節點的接收路由響應表Tp中查找(2b3)中記錄下的IP位址,若某個節點node在接收路由響應表Tp中能找到(2b3)中記錄下的IP位址,則該IP位址對應的節點為黑洞節點;
(3b)節點node將黑洞節點的IP位址進行排列,形成黑名單Tb;
(3c)節點node將接收路由響應表Tp和接收路由請求表Tq中除了黑洞節點IP位址的其他IP位址進行排列,形成信任表Tt;
(3d)節點node刪除黑洞節點,即節點node在之後的路由發現過程中只接收信任表Tt中IP位址對應的節點發送的路由響應包,只向信任表Tt中IP位址對應的節點發送路由請求包,而不再向黑名單Tb中IP位址對應的節點發送路由請求包,也不接收黑名單Tb中IP位址對應的節點發送的路由響應包,實現對黑洞攻擊的防禦。
以上描述僅是本發明的一個具體實例,不構成對本發明的任何限制。顯然對本領域的專業人員來說,在了解了本發明內容和原理後,都可能在不背離本發明原理、結構的情況下,進行形式和細節上的各種修正和改變,但是這些基於本發明思想的修正和改變仍在本發明的權利要求保護範圍之內。