《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 一種自定義動(dòng)態(tài)密鑰預(yù)防DDoS攻擊的算法
一種自定義動(dòng)態(tài)密鑰預(yù)防DDoS攻擊的算法
來(lái)源:微型機(jī)與應(yīng)用2013年第20期
張祖蓮,,王命全,,李景林,,顧雅文
(新疆氣象局 新疆興農(nóng)網(wǎng)信息中心,,新疆 烏魯木齊830002)
摘要: DDoS攻擊表現(xiàn)形式有多種,主要造成后果是導(dǎo)致Web服務(wù)器無(wú)法提供網(wǎng)絡(luò)服務(wù),,最終造成一系列損失,。針對(duì)通過(guò)某一網(wǎng)頁(yè)端口進(jìn)行的DDosS攻擊,提出了一種預(yù)防算法,,自定義動(dòng)態(tài)密鑰,,并采用自定義算法調(diào)用,動(dòng)態(tài)改變被攻擊端口處的文件名,。該算法使得攻擊者無(wú)法通過(guò)加密后的文件來(lái)得到原文件名稱,,從而達(dá)到預(yù)防此種DDoS攻擊的目的。實(shí)驗(yàn)證明,,此算法有效,。
Abstract:
Key words :

摘  要:DDoS攻擊表現(xiàn)形式有多種,主要造成后果是導(dǎo)致Web服務(wù)器無(wú)法提供網(wǎng)絡(luò)服務(wù),,最終造成一系列損失,。針對(duì)通過(guò)某一網(wǎng)頁(yè)端口進(jìn)行的DDosS攻擊,提出了一種預(yù)防算法,,自定義動(dòng)態(tài)密鑰,,并采用自定義算法調(diào)用,動(dòng)態(tài)改變被攻擊端口處的文件名,。該算法使得攻擊者無(wú)法通過(guò)加密后的文件來(lái)得到原文件名稱,,從而達(dá)到預(yù)防此種DDoS攻擊的目的。實(shí)驗(yàn)證明,,此算法有效,。
關(guān)鍵詞: DDoS攻擊;黑客,;預(yù)防算法,;密鑰;網(wǎng)絡(luò)攻擊

    根據(jù)美國(guó)計(jì)算機(jī)應(yīng)急響應(yīng)中心的報(bào)告,到目前為止,,還沒(méi)有很好的辦法真正解決分布式拒絕服務(wù)(DDoS)攻擊問(wèn)題,。一般認(rèn)為,除非修改TCP/IP協(xié)議的內(nèi)核,,否則,,從理論上沒(méi)有辦法徹底解決DDoS攻擊[1]。已有不少學(xué)者對(duì)DDoS攻擊進(jìn)行了一些研究工作[2-6],,但效果不甚理想。
1 相關(guān)研究
    對(duì)源目的IP地址對(duì)進(jìn)行累積分析,,當(dāng)訪問(wèn)網(wǎng)絡(luò)中出現(xiàn)的IP地址在一定時(shí)期內(nèi)重復(fù)出現(xiàn)次數(shù)增多,,這就隱含著可以根據(jù)歷史IP記錄檢測(cè)異常的出現(xiàn)來(lái)檢測(cè)出DDoS攻擊[7]。DDoS攻擊所造成的網(wǎng)絡(luò)擁塞必須在路由器上進(jìn)行處理,,這就是基于IP擁塞控制來(lái)實(shí)現(xiàn)的預(yù)防DDoS攻擊[8],。但目前經(jīng)過(guò)最新DDoS攻擊統(tǒng)計(jì),大部分通過(guò)端口發(fā)布的是虛擬IP,,重復(fù)的概率相當(dāng)小,,采用這些方法進(jìn)行很多次攻擊但并未檢測(cè)出來(lái)。
    對(duì)網(wǎng)絡(luò)流量進(jìn)行分析處理的方法,,即對(duì)網(wǎng)絡(luò)流量進(jìn)行高頻統(tǒng)計(jì),,然后對(duì)其相鄰時(shí)刻進(jìn)行相似度分析,根據(jù)相似度的變化來(lái)發(fā)現(xiàn)異常,,在大流量背景下,,此方法更適合大規(guī)模網(wǎng)絡(luò)的異常檢測(cè)[9]。異常流量聚集,、協(xié)議分析和流量處理,,即過(guò)濾異常流量并測(cè)試當(dāng)前聚積流量的擁塞控制特性,恢復(fù)被誤判的流量[10],。在研究 DDoS攻擊對(duì)網(wǎng)絡(luò)流量自相似性影響的基礎(chǔ)上,,提出了小波分析檢測(cè) DDoS 攻擊的方法[11]。引入非線性預(yù)處理網(wǎng)絡(luò)流量預(yù)測(cè)方法NLPP檢測(cè)DDoS攻擊[12],。
    目前大部分研究是通過(guò)針對(duì)網(wǎng)絡(luò)流量分析和對(duì)IP分析來(lái)檢測(cè)DDoS攻擊提出的,。本文從預(yù)防的角度提出預(yù)防算法,使攻擊者找不到攻擊的入口,,達(dá)不到攻擊的目的,,從而為網(wǎng)絡(luò)服務(wù)提供商減少損失。
2 本文算法
2.1 動(dòng)態(tài)密鑰
2.1.1 自定義字母值

    自定義字母值如表1所示,。文件名加密前是6個(gè)數(shù)字串+6個(gè)字母串(如:123456abcDEF,、658742AsbkKg),文件名加密后是6個(gè)與原文不同的數(shù)字+12個(gè)由字母經(jīng)過(guò)密鑰轉(zhuǎn)化的數(shù)字串。如當(dāng)天是2012-6-11(120611),,動(dòng)態(tài)獲取當(dāng)天年月日,,原文為(123456abcDEF),加密后為(239477283029100607),;如當(dāng)天是2012-11-16(121116),,動(dòng)態(tài)獲取當(dāng)天年月日,原文為(123456abcDEF),,加密后為(734577283030050612),。


2.1.2 自定義加密算法
    動(dòng)態(tài)生成的字符(6個(gè)數(shù)字串+6個(gè)字母串)從左向右順序加密如表2所示。
2.1.3 自定義解密算法
    加密后生成的18位數(shù)字(前6位數(shù)字+后12位數(shù)字)解密算法如表3所示,。


2.1.4 設(shè)計(jì)思想
    攻擊者不能確定文件名是否全是數(shù)字串,,而且文件名每天都在變化。不易攻擊有幾點(diǎn):
    (1)每天12個(gè)字符都是動(dòng)態(tài)隨機(jī)生成的,;
    (2)攻擊者只能看到入庫(kù)文件名是一串?dāng)?shù)字,,如果按照數(shù)字去破解是無(wú)法破解并找到真正的文件名;
    (3)每天密鑰也是動(dòng)態(tài)變化的,,而且前后密鑰不統(tǒng)一,;
    (4)字符轉(zhuǎn)成定義值是自定義的,也可以更換,,隨便換兩個(gè)值,,就無(wú)法知道,不是常規(guī)ASCII,;
    (5)密鑰也是動(dòng)態(tài)自定義的,,其他相關(guān)研究人員借鑒可以換順序。
    自定義字母值一是為了安全,,自定的順序,;二是為了方便計(jì)算、減少算法的復(fù)雜度,。字符不用ASCII碼最主要的原因是ASCII碼中有些字符不能作為文件名,。
    如果想讓加密更復(fù)雜些,完全可以把自定義的字符打亂順序,,在本機(jī)保存起來(lái),,方便計(jì)算。每個(gè)字符加減值也可按照其他規(guī)律來(lái)設(shè)定,,隨機(jī)生成數(shù)據(jù),。
    加密解決之所以要有規(guī)律,主要是為方便網(wǎng)站管理等人員隨時(shí)可以查到今天文件名是否與配置文件名同步,,一旦出現(xiàn)異?,F(xiàn)象能及時(shí)查到原因,盡快解決。
2.2 算法調(diào)用實(shí)現(xiàn)過(guò)程
    自定義動(dòng)態(tài)密鑰實(shí)現(xiàn)過(guò)程:?jiǎn)为?dú)開(kāi)發(fā)一個(gè)程序軟件,,生成單獨(dú)文件,,文件中記錄原文件名、加密后文件名,、修改時(shí)間,,每天0:00啟動(dòng)一次。服務(wù)器做好任務(wù)計(jì)劃,。程序?qū)崿F(xiàn)過(guò)程如圖1所示,。
    算法調(diào)用主要思想是:攻擊者無(wú)法訪問(wèn)服務(wù)器上web.config文件,借助這一點(diǎn)將原文件名和加密后密鑰字符共同存到web.config里做一個(gè)中轉(zhuǎn)點(diǎn),,可以使網(wǎng)頁(yè)顯示器的文件名和瀏覽器調(diào)用的文件名達(dá)到分離,,這樣攻擊的黑客無(wú)法找到能入庫(kù)文件的真正文件名,無(wú)法找到真正的入口,,從而無(wú)法用程序去攻擊。
3 實(shí)驗(yàn)
    按數(shù)據(jù)庫(kù)設(shè)計(jì)的結(jié)構(gòu),,準(zhǔn)備一批數(shù)據(jù)包,。選用3臺(tái)性能較高的主機(jī)。
    主機(jī)1:安裝上DDoS攻擊軟件,,向另兩臺(tái)電腦上的交互頁(yè)面同時(shí)發(fā)送相同的數(shù)據(jù)包,。同時(shí)還有兩個(gè)文件分別存儲(chǔ)返回的信息報(bào)告(成功發(fā)送或發(fā)送失敗),;
    主機(jī)2:建好數(shù)據(jù)庫(kù),、表、存儲(chǔ)過(guò)程,,數(shù)據(jù)庫(kù)設(shè)置為1 024 MB且不自動(dòng)增長(zhǎng),,建一個(gè)常規(guī)的交互的網(wǎng)頁(yè)(表單頁(yè)),可以向數(shù)據(jù)庫(kù)提交數(shù)據(jù),。同時(shí)建一個(gè)頁(yè)面P顯示數(shù)據(jù)庫(kù)信息,;
    主機(jī)3:建好數(shù)據(jù)庫(kù)、表,、存儲(chǔ)過(guò)程,,數(shù)據(jù)庫(kù)設(shè)置為1 024 MB且不自動(dòng)增長(zhǎng),建一個(gè)常規(guī)的交互的網(wǎng)頁(yè)(表單頁(yè)),,采用本文提出的自定義動(dòng)態(tài)加密及調(diào)用算法,。同時(shí)建立一個(gè)頁(yè)面P顯示數(shù)據(jù)庫(kù)信息。
    數(shù)據(jù)包里有10 000條信息,,每條信息容量大約20 KB,。設(shè)置發(fā)送頻率為15條/min(通過(guò)反復(fù)實(shí)驗(yàn)發(fā)現(xiàn),頻率設(shè)置太大,常會(huì)有返回信息報(bào)錯(cuò),,個(gè)別信息沒(méi)入庫(kù),;設(shè)置太小,實(shí)驗(yàn)周期長(zhǎng),,不符合一般黑客攻擊的頻率),。
    通過(guò)主機(jī)1上兩個(gè)文件返回的信息報(bào)告,同時(shí)參考主機(jī)2,、3數(shù)據(jù)庫(kù)中的數(shù)據(jù),。1 h內(nèi)主機(jī)1攻擊信息:
    60 min×15條/min=900條。
    設(shè)信息條數(shù)為函數(shù)y,,天數(shù)為x,,數(shù)據(jù)庫(kù)容量為z,則y=24x×900,;z=20×y
    主機(jī)2,、主機(jī)3中測(cè)試頁(yè)面P主要是為測(cè)試網(wǎng)頁(yè)顯示本主機(jī)數(shù)據(jù)庫(kù)中數(shù)據(jù)時(shí)打開(kāi)網(wǎng)頁(yè)的速度。由于網(wǎng)頁(yè)打開(kāi)速度受多方面因素影響(數(shù)據(jù)庫(kù)容量,、CPU占有率,、網(wǎng)絡(luò)流量、數(shù)據(jù)處理速度等),,每天定時(shí)測(cè)試主機(jī)2,、主機(jī)3中測(cè)試頁(yè)P(yáng)打開(kāi)速度,分析網(wǎng)頁(yè)打開(kāi)速度的走向,。
    實(shí)驗(yàn)時(shí)間為10天,,顯示結(jié)果如圖2、圖3所示,。

    分析圖2,,主機(jī)2受到主機(jī)1的攻擊,到第3天及以后數(shù)據(jù)庫(kù)容量不再增長(zhǎng),。容量已達(dá)到最大值,。主機(jī)3在實(shí)驗(yàn)的10天內(nèi)一直沒(méi)有受到主機(jī)1攻擊的數(shù)據(jù),數(shù)據(jù)庫(kù)容量幾乎沒(méi)有改變,。
    分析圖3可知,,主機(jī)2隨時(shí)間推移頁(yè)面打開(kāi)速度越來(lái)越慢,到最后是無(wú)限慢,,就是打不開(kāi),,無(wú)法連接到數(shù)據(jù)庫(kù),根據(jù)實(shí)驗(yàn)數(shù)據(jù)顯示,,快到第3天(即數(shù)據(jù)庫(kù)容量快達(dá)到設(shè)定值)時(shí),,頁(yè)面打開(kāi)速度快速變慢,,當(dāng)在快到20 s左右的連接速度時(shí),即已經(jīng)連接不上數(shù)據(jù)庫(kù),,數(shù)據(jù)庫(kù)超過(guò)容量,,此時(shí)自動(dòng)報(bào)錯(cuò),服務(wù)停止,,后面的天數(shù)一直就是連接不上,,用虛線表示。主機(jī)3在實(shí)驗(yàn)的10天內(nèi),,沒(méi)有受到攻擊,。數(shù)據(jù)庫(kù)沒(méi)有影響,頁(yè)面打開(kāi)速度也沒(méi)有受到影響,。以上實(shí)驗(yàn)結(jié)果證明了本文提出算法的有效性,。
    自定義動(dòng)態(tài)密鑰打破傳統(tǒng)公用的加密方法,同時(shí)采用明碼密鑰,,而非傳統(tǒng)的一串不認(rèn)識(shí)的字符串,,方便其他研究人員、開(kāi)發(fā)人員借鑒,。

 


    如果攻擊想把密鑰破解出來(lái),,僅看計(jì)算所有字符串時(shí)間,一臺(tái)性能不錯(cuò)的電腦(計(jì)算機(jī)速度按40億次/s)去計(jì)算106×526,,要花137.295 9 h,這個(gè)時(shí)間僅排列組合計(jì)算時(shí)間,,每一次組合完要連接一次文件測(cè)試,,當(dāng)連接不上返回連接失敗信息,這個(gè)時(shí)間差不多1 s左右,,把連接時(shí)間加上,,要花的時(shí)間是相當(dāng)驚人的(5.492E×1012 h)。也就是說(shuō)想破解密鑰找出文件名,,一臺(tái)計(jì)算機(jī)最長(zhǎng)時(shí)間是這兩個(gè)時(shí)間加起來(lái),。每天零點(diǎn)重新隨機(jī)生成一批新的數(shù)據(jù)串,就會(huì)有一批新的密碼,。攻擊者必須在24 h內(nèi)找到密鑰,。而且前提是要了解密碼真正的原文組成。從理論上來(lái)說(shuō)幾乎不能攻破,。
    本文提出的算法已應(yīng)用到網(wǎng)絡(luò)中,,已有10個(gè)月時(shí)間無(wú)異常現(xiàn)象,,解決了網(wǎng)站以前受數(shù)據(jù)包攻擊煩惱,。希望本算法給其他科研人員,、數(shù)據(jù)安全研究人員及程序開(kāi)發(fā)人員以借鑒。
參考文獻(xiàn)
[l] 李德全.拒絕服務(wù)攻擊[M].北京:電子工業(yè)出版社,,2007:161-180.
[2] MIRKOVIC J.Attacking DDoS at the source[C].Proceedings of the 10th IEEE International Conference on Network  Protocols,,Paris,F(xiàn)rance,,2002:366-369.
[3] FERGUSON P,,SENIE D.Network ingress filtering:defeating  de-nial of service attacks which employ IP source address  spoofing[R].Internet Best Current Practice,RFC 2827,,2000.
[4] WALFISH M,,VUTUKURU M.DDoS defense by offense[C]. ACM SIGCOMM 2006,2006:1635-1639.
[5] 李德全,,蘇璞睿,,魏東梅,等.基于路由器編碼的自適應(yīng)包標(biāo)記[J].軟件學(xué)報(bào),,2007,,18(10):2652-2661.
[6] 曹曉梅,韓志杰,,陳貴海.基于流量預(yù)測(cè)的傳感器網(wǎng)絡(luò)拒絕服務(wù)攻擊檢測(cè)方案[J].計(jì)算機(jī)學(xué)報(bào),,2007,30(10):1798-1805.
[7] 孫知信,,李清東.基于源目的IP地址對(duì)數(shù)據(jù)庫(kù)的防范DDoS攻擊策略[J].軟件學(xué)報(bào),,2007,18(10):2613-2623.
[8] 吳國(guó)鋼.DDoS攻擊與IP擁塞控制研究[J].電子科技大學(xué)學(xué)報(bào),,2007,,36(3):614-655.
[9] 何慧,張宏莉,,張偉哲,,等.一種基于相似度的DDoS攻擊檢測(cè)方法[J].通信學(xué)報(bào),2004,,25(7):176-184.
[10] 孫知信,,姜舉良,焦琳.DDoS攻擊檢測(cè)和防御模型[J]. 軟件學(xué)報(bào),,2007,,18(9):2245-2258.
[11] 任勛益,王汝傳,,王海艷.基于自相似檢測(cè)DDoS攻擊的小波分析方法[J].通信學(xué)報(bào),,2006,27(5):6-11.
[12] 楊新宇,,楊樹(shù)森,,李娟.基于非線性預(yù)處理網(wǎng)絡(luò)流量預(yù)測(cè)方法的泛洪型DDoS攻擊檢測(cè)算法[J].計(jì)算機(jī)學(xué)報(bào),,2011,34(2):395-405.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。