陳圳爍++廖海聰++曾水發(fā)
摘 要:研究針對當(dāng)前IPv6網(wǎng)絡(luò)地址穩(wěn)定性所帶來的安全防護威脅,分析了目前普遍成熟的地址攻擊技術(shù),提出針對IPv6網(wǎng)絡(luò)的一種保持TCP連接不中斷的IPv6地址動態(tài)變更方案,并提供配套的安全機制與地址更新算法,保證地址的隨機性與安全性。從而在不大量損失系統(tǒng)性能的前提下,通過主動變更通信參數(shù),增大攻擊者的地址搜索范圍以及耗費時間,使得基于目標(biāo)地址的長時間攻擊中斷或失敗,增大攻擊者流量監(jiān)聽難度,理論分析該方案可大幅提高IPv6網(wǎng)絡(luò)的整體安全性與抗攻擊能力。整體技術(shù)方案均基于現(xiàn)今大規(guī)模應(yīng)用的成熟可擴展協(xié)議與安全技術(shù),且向下兼容,因此可行性較高,在低代價條件下,對依賴IPv6地址展開的攻擊從根源阻斷。
關(guān)鍵詞:IPv6網(wǎng)絡(luò) 地址安全 動態(tài)更新 TCP協(xié)議 不中斷連接
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1672-3791(2017)03(b)-0032-04
IPv6針對IPv4在安全性[1]上做出了較大的改進,例如自身集成IPsec等,通過IPsec中ESP+AH的方式對消息源進行驗證,對協(xié)議承載的數(shù)據(jù)進行多種可選手段的高強度加密,從而對目前針對IPv6報文傳輸內(nèi)容的攻擊方式有了不錯的抗攻擊能力。但IPv6本身針對地址攻擊技術(shù)的抗攻擊能力依然薄弱[2],尤其在現(xiàn)今計算機計算能力快速提升的環(huán)境下,面對大量地址偵聽技術(shù),數(shù)據(jù)竊聽技術(shù),流分析技術(shù)并沒有相應(yīng)的對抗機制,這也導(dǎo)致了運行IPv6的終端機在錯綜復(fù)雜的網(wǎng)絡(luò)環(huán)境中暴露無遺,一旦被攻擊者鎖定,在網(wǎng)絡(luò)層將成為定向的攻擊目標(biāo)。為了在根源上阻止攻擊者獲取到穩(wěn)定的目標(biāo)機地址,該文提出一種保持TCP連接不終端的IPv6地址動態(tài)更新方案,通過不定時對主機的IPv6地址進行協(xié)商更新,可以在不中斷數(shù)據(jù)連接的前提下,實現(xiàn)地址動態(tài)變更。從而令攻擊者的地址偵聽手段失效或大大增加其攻擊成本,如耗費時間等,進而令攻擊者無法進行連續(xù)有效的數(shù)據(jù)竊聽或目標(biāo)跟蹤,最終有效保護了通訊雙方的信息安全。
1 研究背景
TCP連接依靠雙端IP地址與端口號建立可靠連接,每對由(本端IP地址+本端端口號+對端IP地址+對端端口號)組成的四元組唯一標(biāo)識了一個TCP會話。因此,根據(jù)原來的TCP協(xié)議,四元組中任意一項發(fā)生變化必將導(dǎo)致原有TCP會話解散,從而導(dǎo)致雙端TCP連接斷開。若要繼續(xù)原有的會話內(nèi)容與保持?jǐn)?shù)據(jù)傳輸將需要TCP連接的重新建立,影響用戶使用,也導(dǎo)致相關(guān)安全設(shè)備,如防火墻中的會話表發(fā)生震蕩。因此需要對TCP協(xié)議做適當(dāng)擴展,實現(xiàn)保持連接的地址更新機制,這將為網(wǎng)絡(luò)體驗的順暢與靈活提供理論基礎(chǔ),未來具有廣泛的應(yīng)用空間。
地址協(xié)商更新過程中要求保證新地址保密以及消息源可靠,故應(yīng)有配套的安全機制,采用成熟的安全技術(shù)來確保有效性及可行性,保證通信安全的同時盡量簡化安全機制,降低復(fù)雜性。
IPv6地址更新算法要求代價合理,能在大部分運行IPv6的設(shè)備上高速完成,減少系統(tǒng)資源的占用與消耗,同時保證每次生成的新地址與使用中的地址不重復(fù),在遇到地址沖突的情況有相應(yīng)的修正機制重新生成新的IPv6地址。
2 基礎(chǔ)知識
2.1 TCP連接保持機制
TCP作為一種可擴展的傳輸層協(xié)議,在TCP頭部中包含選項字段,可供添加新的擴展功能以滿足未來網(wǎng)絡(luò)發(fā)展所需,如最初規(guī)定的MSS選項,即最長報文段長度,以及后來增加的選項表結(jié)束,無操作,最大報文段長度,窗口擴大因子,時間戳選項等。該機制同樣通過增加新的TCP選項來實現(xiàn)[3],共新增四個選項:請求變更IPv6地址選項、確認(rèn)IPv6地址可變更選項、IPv6地址數(shù)據(jù)更新選項、IPv6地址數(shù)據(jù)更新確認(rèn)選項。四個選項均以標(biāo)準(zhǔn)TCP選項TLV(TYPE+LENGTH+VALUE)結(jié)構(gòu)構(gòu)造(kind字段根據(jù)TCP標(biāo)準(zhǔn)均設(shè)為1字節(jié))。以下數(shù)值單位均為字節(jié)(Bytes),用于IPv6方案如下,IPv4地址與端口號更新同理,此處不描述。
(1)請求變更IPv6地址選項。
使用TCP自定義選項kind值20,長度字段length為20,data字段填寫A端的公鑰信息,使用TCP標(biāo)準(zhǔn)padding填充完成格式對齊。
(2)確認(rèn)IPv6地址可變更選項。
使用TCP自定義選項kind值21,長度字段length為20,data字段填寫B(tài)端公鑰信息,若B端不支持地址變更,data字段置全1,使用TCP標(biāo)準(zhǔn)padding填充完成格式對齊。
(3)IPv6地址數(shù)據(jù)更新選項。
使用TCP自定義選項kind值22,長度字段length為48,data字段填寫加密的新IPv6地址信息與數(shù)字簽名信息,使用TCP標(biāo)準(zhǔn)padding填充完成格式對齊。
(4)IPv6地址數(shù)據(jù)更新確認(rèn)選項。
使用TCP自定義選項kind值23,長度字段length為1,data字段填寫1表示確認(rèn),使用TCP標(biāo)準(zhǔn)padding填充完成格式對齊。
2.2 相關(guān)研究
針對IPv6網(wǎng)絡(luò)的安全防護問題,亦已有相關(guān)文獻提出多種主動防御模型[4],但普遍存在邏輯過于復(fù)雜,可擴展性差,實現(xiàn)難度大等劣勢,更適合在小規(guī)模網(wǎng)絡(luò)環(huán)境部署。如文獻[5]中,立足于IPv6主動網(wǎng)絡(luò)防護利用多穴主機多條鏈路接入網(wǎng)絡(luò)的特點,借鑒跳頻通信的思想,將多穴主機的數(shù)據(jù)通信在其與外部相連的多個地址域內(nèi)進行跳變,提出基于多穴跳變的IPv6網(wǎng)絡(luò)主動防御模型。此模型安全性佳,但是對于主機與鏈路有嚴(yán)格要求,不適合大規(guī)模網(wǎng)絡(luò)環(huán)境下部署。文獻[6]同樣從跳頻通信中得到啟發(fā),引入了端信息跳變的概念,認(rèn)為端信息跳變技術(shù)可以實現(xiàn)較好的主動網(wǎng)絡(luò)防護。文獻[7]提出了一種基于地址跳變的信息隱藏技術(shù),通過采用多路由轉(zhuǎn)發(fā)來提高對等節(jié)點之間數(shù)據(jù)傳輸?shù)陌踩?。另外有基于地址池的地址更新方案,但存在地址重?fù)率高,安全特性不持續(xù)的弱點。文獻[3]提出了一種動態(tài)切換TCP連接IP地址的實現(xiàn)方法,該方案可擴展性高,但沒有合理的安全機制與地址更新算法與其配套工作,這也是該方案要重點解決的問題所在。 因此,該研究旨在提出一種模型邏輯相對簡單,基于已有的成熟TCP協(xié)議,具備一定可擴展性,高安全性,系統(tǒng)資源占用少,實現(xiàn)難度較低的IPv6網(wǎng)絡(luò)主動防護方案,即該文所述保持TCP連接不中斷的IPv6地址動態(tài)更新方案。
3 保持TCP連接不中斷的IPv6地址動態(tài)更新方案
3.1 整體方案說明
該方案主要包含三部分內(nèi)容,TCP連接保持機制,動態(tài)更新過程的安全機制以及IPv6地址動態(tài)更新算法,第一部分內(nèi)容主要通過當(dāng)前標(biāo)準(zhǔn)的TCP協(xié)議擴展選項來完成,第二部分采用公鑰加密配合數(shù)字簽名來保證,第三部分參考RFC4941[8],適當(dāng)簡化來獲取更新的IPv6地址。
(1)請求變更階段。
A端準(zhǔn)備更新某TCP連接使用的本地IPv6地址時,向該TCP連接B端發(fā)送帶此選項的TCP報文,并填充A端公鑰信息以支撐后續(xù)階段的數(shù)字簽名,實現(xiàn)安全的信息交互,等待B端回復(fù),若B端回復(fù)拒絕報文則取消變更準(zhǔn)備。
(2)確認(rèn)變更階段。
B端收到某TCP連接A端發(fā)送來的選項kind字段為20的TCP報文后,接收A端公鑰信息,回復(fù)A端用于地址更新數(shù)據(jù)加密的B端公鑰信息,表示本地支持IPv6地址動態(tài)變更且已準(zhǔn)備好更新相關(guān)TCP連接的IPv6地址參數(shù)。若本地不支持IPv6地址參數(shù)動態(tài)變更,則data填充全1并發(fā)回表示拒絕。
(3)數(shù)據(jù)更新階段。
A端在收到B端發(fā)送的選項kind字段為21的TCP報文之后,接收B端公鑰,使用B端提供公鑰對新IPv6地址進行加密,并使用A端私鑰進行簽名,向B端回復(fù)包含加密地址數(shù)據(jù)和數(shù)字簽名信息的TCP更新報文。A端啟動超時定時器,若超時(3 s),則再次發(fā)送,并歸零計時器,最多發(fā)送三次,超過三次超時,認(rèn)為B端出錯或拒絕,A端取消變更。A端在收到B端發(fā)送的地址數(shù)據(jù)更新確認(rèn)報文后,更新本地TCP連接參數(shù),開始使用新的IPv6地址用于原TCP連接通信。
(4)完成變更階段。
B端收到A端發(fā)送的IPv6地址更新數(shù)據(jù)報文后,使用A端公鑰對簽名進行驗證,若數(shù)字簽名驗證通過,則使用B端私鑰解密獲得新IPv6地址數(shù)據(jù),確認(rèn)新地址不存在沖突后,向A端回復(fù)此確認(rèn)報文并更新相關(guān)TCP連接地址參數(shù),此后使用新IPv6地址進行相關(guān)TCP連接通信。若簽名驗證失敗,或經(jīng)檢測新地址存在沖突,則不回復(fù),使A端計時器三次超時自動放棄地址變更。
3.2 地址更新過程的信息安全機制
地址更新過程的信息安全機制采用公鑰加密(非對稱密鑰加密)配合數(shù)字簽名[9]來完成,兩者均由采用160位密鑰長度的ECC橢圓曲線加密算法[10]來完成。
以下記發(fā)送地址變更請求方為A端,接收地址變更請求方為B端。
A端先對新IPv6地址采用B端提供的ECC公鑰進行加密,然后A端用自己的ECC私鑰進行簽名。B端收到數(shù)據(jù)包后先用A端提供的ECC公鑰驗證簽名是否有效,如果有效再通過B端的ECC私鑰對數(shù)據(jù)包里面的IP地址進行解密提取,從而保證通訊過程消息源的可靠性與新IPv6地址保密。
3.3 IPv6地址更新算法
該算法參考RFC4941[8],算法為迭代算法。符號記法參照表1,算法描述如下。
步驟一:取出R,將其與S的前64位拼接,得到128位比特長度值N。
步驟二:對N做SM3運算,結(jié)果記為G,取前64位,將第七位置0,記為M.將M與系統(tǒng)IPv6地址保留段和已用段做比較,若無沖突則進入步驟三,若沖突,對N做MD5運算,計算結(jié)果的后64位作為R新的賦值,重新開始步驟一。
步驟三:用M取代現(xiàn)有IPv6地址的前64位,并將G的后64比特位作為R新的賦值,供下一輪迭代使用。
3.4 方案工作流程與狀態(tài)機
方案工作流程如圖1所示,終端A為地址變更請求方,終端B為地址變更被請求方。
方案工作狀態(tài)機如圖2所示,終端在內(nèi)存中保存當(dāng)前狀態(tài),并根據(jù)當(dāng)前狀態(tài)與收發(fā)判斷數(shù)據(jù)包內(nèi)容決定下一狀態(tài)。注意超時定時器為3 s,共計3次超時將之間進入失敗狀態(tài),若有變更需要將重新從開始狀態(tài)進行請求,簡化模型邏輯,降低實現(xiàn)難度。
4 結(jié)語
該方案通過一種保持TCP連接不中斷的IPv6地址動態(tài)更新方案實現(xiàn)了IPv6通信過程中IPv6地址的安全平滑切換,方案基于當(dāng)前成熟的TCP協(xié)議選項擴展,使得該方案可擴展性強,實現(xiàn)難度較低。數(shù)據(jù)加密以及數(shù)字簽名由ECC橢圓曲線加密技術(shù)支撐,保證了該方案運行速度高,資源占用少,對運行設(shè)備的要求不高。對比相關(guān)研究已提出的IP地址動態(tài)更新機制,該方案在安全性上做出了較為完整的補充,并針對IPv6網(wǎng)絡(luò)提供一套合理的IPv6地址動態(tài)更新算法,保證了地址更新數(shù)據(jù)的安全性與數(shù)據(jù)來源的可靠性,從而使得該方案具備進行現(xiàn)實推廣的意義與可能。對比其他基于地址池的地址更新方案,該方案在系統(tǒng)資源節(jié)省上具有優(yōu)勢,針對依賴目標(biāo)IPv6地址展開攻擊的攻擊技術(shù),如嗅探攻擊,拒絕服務(wù)攻擊等,該方案可在低系統(tǒng)資源消耗的條件下,通過動態(tài)平滑切換通信IPv6地址,較大增強IPv6通信安全性。
參考文獻
[1] S. Kent, K. Seo. Security Architecture for the Internet Protocol[M].RFC Editor,2005.
[2] Scott Hogg,Eric Vyncke.IPv6安全[M].北京:電子郵電出版社,2011.
[3] 溫澤輝.一種動態(tài)切換TCP連接IP地址的實現(xiàn)方法[J].科技信息,2011,2011(12):633-634.
[4] M. Dunlop, S. Groat, R. Marchany, J. Tront. Implementing an IPv6 Moving Target Defense on a Live Network[C]//Military Communications Conference.2011.
[5] 劉慧生.一種基于多穴跳變的IPv6主動防御模型[J].電子與信息學(xué)報,2012,2012(7):1715-1720.
[6] 石樂義.基于端信息跳變的主動網(wǎng)絡(luò)防護研究[J].通信學(xué)報,2008(2):106-110.
[7] Sidalakis M, Schmid S, Hutchison D. Network address hopping: a mechanism to enhance data protection for packet communications[C]//ICC.2005.
[8] T. Narten, R. Draves, S. Krishnan. Privacy Extensions for Stateless Address Autoconfiguration in IPv6[M].RFC Editor,2001.
[9] 王昭,袁春.信息安全原理與應(yīng)用[M].北京:電子工業(yè)出版社,2010.
[10] William Stallings.密碼編碼學(xué)與網(wǎng)絡(luò)安全原理與實踐[M].北京:電子工業(yè)出版社,2015.