本發(fā)明涉及隨機跳變技術(shù)領(lǐng)域,特別是一種網(wǎng)絡(luò)屬性隨機跳變的控制方法。
背景技術(shù):
網(wǎng)絡(luò)屬性隨機跳變技術(shù)的最初思想是來源于跳頻通信技術(shù),是指在網(wǎng)絡(luò)通信中,通信一方或雙方按照協(xié)定的策略隨機地改變通信時的地址和端口信息,從而防止被攻擊者發(fā)現(xiàn),破壞攻擊者的攻擊和干擾,主動防護網(wǎng)絡(luò)通信過程中的安全。
國外對網(wǎng)絡(luò)屬性隨機跳變技術(shù)的研究起步較早,已經(jīng)取得了一定的成果。在2000年,基于端口地址跳變的防御策略第一次由美國國防部高級研究計劃署(DARPA)在其主導(dǎo)的APOD項目中提出。隨后,國內(nèi)研究者對于網(wǎng)絡(luò)屬性隨機跳變技術(shù)也開展了不少研究工作。目前,國內(nèi)外研究者已經(jīng)提出了一些支持網(wǎng)絡(luò)屬性隨機跳變的通信方案,通過不斷改變通信地址、端口的方式來抵抗攻擊。文獻【Port Hopping for Resilient Networks】等提出的方案采用嚴格的時間同步策略,客戶端通過與服務(wù)器保持在時間上的嚴格同步,根據(jù)共享的算法同樣可以得知當前服務(wù)器提供服務(wù)的端口號,從而完成通信;但這一類方案有一個缺點,就是在網(wǎng)絡(luò)通信中,由于網(wǎng)絡(luò)延遲和擁塞的存在,無法真正意義上到達時間同步。文獻【Keeping Denial of Service Attackers in the Dark】提出的方案采用發(fā)送ACK報文的方式來保持同步,不要求嚴格意義上的時間同步;但這一類方案的缺點是ACK報文容易被攻擊者截獲,從而分析出相應(yīng)的跳變信息。文獻【OpenFlow Random Host Mutation:Transparent MovingTarget Defense using Software Defined Networking】提出的方案采用了基于Openflow技術(shù)的跳變控制方法;但是由于是集中式的控制,這一類方案在可靠性、擴展性方面還需要進行加強。
綜上所述,目前業(yè)界還缺少不依賴于嚴格的時間同步、不易被截獲、采用分布式控制方式的網(wǎng)絡(luò)屬性隨機跳變控制方法,在實用性、安全性、可靠性、可擴展性方面都具有良好的表現(xiàn)。
網(wǎng)絡(luò)屬性隨機跳變是指在通信網(wǎng)絡(luò)中,通信一方或雙方按照協(xié)定的策略隨機地改變通信時的地址、端口等網(wǎng)絡(luò)屬性,或者按照協(xié)定的策略隨機地改變網(wǎng)絡(luò)報文中攜帶的地址、端口等網(wǎng)絡(luò)屬性,從而防止被攻擊者發(fā)現(xiàn),阻礙攻擊者進行攻擊和干擾,主動防護網(wǎng)絡(luò)通信過程中的安全性。為了保證網(wǎng)絡(luò)屬性跳變過程的安全性,防止被攻擊者預(yù)測到,網(wǎng)絡(luò)屬性跳變往往是隨機的、無規(guī)律的。但這種隨機跳變會給正常的網(wǎng)絡(luò)通信形成干擾。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:針對上述存在的問題,提供了一種網(wǎng)絡(luò)屬性隨機跳變的控制方法。
本發(fā)明采用的技術(shù)方案如下:一種網(wǎng)絡(luò)屬性隨機跳變的控制方法,具體包括以下過程:
步驟1、將進行隨機跳變的網(wǎng)絡(luò)節(jié)點組成同步組;
步驟2、同步組中所有節(jié)點內(nèi)置相同的二進制偽隨機序列發(fā)生器、固定的驗證碼V和兩組計算R(A,B)與R′(A,B)、T(A,B)與T′(A,B),其中,R′(R(A,B),B)=A,T′(T(A,B),B)=A;
步驟3、同步組中所有節(jié)點進行時鐘同步;
步驟4、同步組中每個節(jié)點以與當前時刻小時數(shù)H有關(guān)的函數(shù)F(H)為種子,生成二進制偽隨機序列;
步驟5、同步組中每個節(jié)點以當前時刻小時數(shù)H有關(guān)的函數(shù)G(H)為起點,從二進制偽隨機序列中截取長度為L的一段Sn,作為當前周期的跳變碼;
步驟6、同步組中每個節(jié)點與鄰居節(jié)點進行跳變碼的同步設(shè)置;
步驟7、同步組中每個節(jié)點與達成跳變碼同步后,恢復(fù)原始的網(wǎng)絡(luò)屬性值;
步驟8、設(shè)置跳變的更新周期,經(jīng)過更新周期后,每個節(jié)點從二進制偽隨機序列中截取下一段長度為L的部分Sn+1作為新的跳變碼,重復(fù)步驟6-7。
進一步的,步驟6的具體過程為:
(1)同步組中每個節(jié)點根據(jù)自己的當前周期的跳變碼Sn生成同步碼Hn=H(Sn),并發(fā)送給鄰居節(jié)點;
(2)同步組中每個節(jié)點將收到的來自鄰居節(jié)點的同步碼H′n與自己當前周期的同步碼Hn、自己下一個周期的同步碼Hn+1進行比較:如果H′n=Hn或者不能做出比較,則自己當前周期的跳變碼不變,進行下一步操作;如果H′n=Hn+1,則把自己當前周期的跳變碼更新為Sn+1,跳轉(zhuǎn)到第(2)步;
(3)同步組中每個節(jié)點根據(jù)驗證碼V和自己當前周期的跳變碼Sn生成同步驗證碼Rv=R(V,Sn),并發(fā)送給鄰居節(jié)點;
(4)同步組中每個節(jié)點對收到的來自鄰居節(jié)點的同步驗證碼R′v進行逆向計算R′(R′v,Sn),并與自己的同步驗證碼Rv進行比較,如果R′(R′v,Sn)不等于Rv,則持續(xù)等待鄰居節(jié)點的下一個同步驗證碼,如果R′(R′v,Sn)=Rv,則鄰居節(jié)點與當前節(jié)點已經(jīng)達成了跳變碼同步。
進一步的,所述步驟7的具體過程為:
(1)當鄰居節(jié)點與當前節(jié)點達成跳變碼同步后,網(wǎng)絡(luò)節(jié)點使用當前的跳變碼,對需要進行隨機跳變的網(wǎng)絡(luò)屬性P進行變換計算,得到Tp=T(P,Sn),并用Tp改寫網(wǎng)絡(luò)報文中攜帶的網(wǎng)絡(luò)屬性P,再發(fā)送給鄰居節(jié)點;
(2)網(wǎng)絡(luò)節(jié)點首先對來自鄰居節(jié)點的網(wǎng)絡(luò)報文中攜帶的屬性Tp進行逆計算,得到P=T′(Tp,Sn),并用P改寫網(wǎng)絡(luò)報文中攜帶的屬性Tp。
進一步的,所述函數(shù)F(H)采用以H為種子的隨機數(shù)生成算法。
進一步的,所述函數(shù)G(H)采用以H為種子的隨機數(shù)生成算法。
進一步的,所述函數(shù)H(Sn)采用難以逆向計算的Hash算法。
進一步的,每個節(jié)點將同步碼Hn發(fā)送給鄰居節(jié)點采用的報文格式依次為鏈路層頭部、IP頭部、同步碼Hn和標志位;
進一步的,每個節(jié)點將驗證碼Rv發(fā)送給鄰居節(jié)點的報文格式依次為鏈路層頭部、IP頭部、傳輸層頭部、同步驗證碼和應(yīng)用層凈荷。
與現(xiàn)有技術(shù)相比,采用上述技術(shù)方案的有益效果為:本發(fā)明提出的網(wǎng)絡(luò)屬性隨機跳變控制方法能夠支持網(wǎng)絡(luò)通信的雙方按照協(xié)定的策略對網(wǎng)絡(luò)報文中攜帶的地址、端口等網(wǎng)絡(luò)屬性進行隨機跳變,同時能夠確保參與跳變的網(wǎng)絡(luò)節(jié)點之間共享一致的控制參數(shù),使得報文傳輸路徑沿途各節(jié)點能夠正確的理解跳變后的網(wǎng)絡(luò)屬性,并恢復(fù)出原始的網(wǎng)絡(luò)屬性值,從而確保正常的網(wǎng)絡(luò)通信得以開展。本發(fā)明有利于防止真實的網(wǎng)絡(luò)通信地址、端口信息被攻擊者以嗅探、監(jiān)聽等方式獲取,阻礙攻擊者進行分析、攻擊和干擾,從而提升網(wǎng)絡(luò)通信的安全性。
本發(fā)明提出的網(wǎng)絡(luò)屬性隨機跳變控制方法不依賴于嚴格的時間同步,采用分布式控制方式,并且采用密碼技術(shù)防止被截獲,因此具有良好的實用性、可靠性、可擴展性與安全性。
附圖說明
圖1是本發(fā)明發(fā)送同步碼采用的報文格式示意圖。
圖2是本發(fā)明插入同步驗證碼的報文格式示意圖。
圖3是本發(fā)明節(jié)點與鄰居節(jié)點同步流程示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步描述。
一種網(wǎng)絡(luò)屬性隨機跳變的控制方法,具體包括以下過程:
步驟1、將進行隨機跳變的網(wǎng)絡(luò)節(jié)點組成同步組,同步組是根據(jù)具有相互通信需求,并且網(wǎng)絡(luò)地址、端口等屬性進行隨機跳變的網(wǎng)絡(luò)節(jié)點組成的;
步驟2、同步組中所有節(jié)點內(nèi)置相同的二進制偽隨機序列發(fā)生器、固定的驗證碼V和兩組計算R(A,B)與R′(A,B)、T(A,B)與T′(A,B),R(A,B)與R′(A,B)采用以B為密鑰的一組對稱加解密算法,R(A,B)為加密計算、R′(A,B)為解密計算,T(A,B)與T′(A,B)采用以B為密鑰的一組對稱加解密算法,T(A,B)為加密計算、T′(A,B)為解密計算,其中,R′(R(A,B),B)=A,T′(T(A,B),B)=A;
步驟3、同步組中所有節(jié)點進行時鐘同步;
步驟4,每個節(jié)點以與當前時刻小時數(shù)H有關(guān)的函數(shù)F(H)為種子,生成二進制偽隨機序列,函數(shù)F(H)可采用以H為種子的隨機數(shù)生成算法;
步驟5、同步組中每個節(jié)點以當前時刻小時數(shù)H有關(guān)的函數(shù)G(H)為起點,函數(shù)G(H)可采用以H為種子的隨機數(shù)生成算法,從二進制偽隨機序列中截取長度為L的一段Sn,作為當前周期的跳變碼;
步驟6,同步組中每個節(jié)點與鄰居節(jié)點進行跳變碼的同步設(shè)置;
步驟7、同步組中每個節(jié)點與達成跳變碼同步后,恢復(fù)原始的網(wǎng)絡(luò)屬性值;
步驟8、設(shè)置跳變的更新周期,經(jīng)過更新周期后,每個節(jié)點從二進制偽隨機序列中截取下一段長度為L的部分Sn+1作為新的跳變碼,重復(fù)步驟6-7。
如圖3所述,步驟6中,同步組中每個節(jié)點與鄰居節(jié)點進行跳變碼的同步設(shè)置的具體過程為:
(1)同步組中節(jié)點A根據(jù)自己的當前周期的跳變碼Sn(A)生成同步碼Hn(A),Hn(A)可采用難以逆向計算的Hash算法得到,并發(fā)送給鄰居節(jié)點B,節(jié)點A將同步碼Hn(A)發(fā)送給鄰居節(jié)點B采用的報文格式如圖1所示,依次為鏈路層頭部、IP頭部、同步碼Hn和標志位;其中,同步碼Hn(A):長度為128位,填寫節(jié)點A根據(jù)自己當前周期的跳變碼Sn(A)生成的同步碼Hn(A);標志位:長度為2位,節(jié)點B根據(jù)自己收到的來自鄰居節(jié)點A的同步碼Hn(A)與自己當前周期的同步碼Hn(B)、自己下一個周期的同步碼Hn+1(B)的比較結(jié)果來填寫:如果Hn(A)=Hn(B),則標志位填寫01;如果Hn(A)=Hn+1(B),則標志位填寫11;如果未比較或不能做出比較,則標志位填寫00。
(2)同步組中節(jié)點B將收到的來自鄰居節(jié)點的同步碼Hn(A)與自己當前周期的同步碼Hn(B)、自己下一個周期的同步碼Hn+1(B)進行比較:如果Hn(A)=Hn(B)或者不能做出比較,則自己當前周期的跳變碼不變,標志位填寫01或者00,進入下一步;如果Hn(A)=Hn+1(B),則把自己當前周期的跳變碼更新為Sn+1,標志位填寫11,并重復(fù)第(2)步;同步組中每一個節(jié)點通過步驟(1)-(2)的過程與鄰居節(jié)點進行比較。
(3)同步組中每個節(jié)點根據(jù)驗證碼V和自己當前周期的跳變碼Sn生成同步驗證碼Rv=R(V,Sn),每個節(jié)點可以在常規(guī)IP報文凈荷的開始位置插入同步驗證碼Rv,并發(fā)送給鄰居節(jié)點;將驗證碼Rv發(fā)送給鄰居節(jié)點的報文格式如圖2所示,依次為鏈路層頭部、IP頭部、傳輸層頭部、同步驗證碼Rv和應(yīng)用層凈荷,同步驗證碼Rv長度為128位;
(4)同步組中每個節(jié)點對收到的來自鄰居節(jié)點的同步驗證碼R′v進行逆向計算R′(R′v,Sn),并與自己的同步驗證碼Rv進行比較,如果R′(R′v,Sn)不等于Rv,則持續(xù)等待鄰居節(jié)點的下一個同步驗證碼,如果R′(R′v,Sn)=Rv,則鄰居節(jié)點與當前節(jié)點已經(jīng)達成了跳變碼同步。
進一步的,所述步驟7的具體過程為:
(1)當鄰居節(jié)點與當前節(jié)點達成跳變碼同步后,網(wǎng)絡(luò)節(jié)點使用當前的跳變碼,對需要進行隨機跳變的網(wǎng)絡(luò)屬性P進行變換計算,得到Tp=T(P,Sn),并用Tp改寫網(wǎng)絡(luò)報文中攜帶的網(wǎng)絡(luò)屬性P,再發(fā)送給鄰居節(jié)點;
(2)網(wǎng)絡(luò)節(jié)點首先對來自鄰居節(jié)點的網(wǎng)絡(luò)報文中攜帶的屬性Tp進行逆計算,得到P=T′(Tp,Sn),并用P改寫網(wǎng)絡(luò)報文中攜帶的屬性Tp。
本發(fā)明并不局限于前述的具體實施方式。本發(fā)明擴展到任何在本說明書中披露的新特征或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合。如果本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神所做的非實質(zhì)性改變或改進,都應(yīng)該屬于本發(fā)明權(quán)利要求保護的范圍。