摘 要 基于分布式計(jì)算的暴力破解密碼系統(tǒng)長(zhǎng)久以來(lái)承擔(dān)著檢驗(yàn)密碼強(qiáng)度和安全性的重要任務(wù),但隨著系統(tǒng)規(guī)模的進(jìn)一步加大以及密碼強(qiáng)度的不斷升級(jí),系統(tǒng)出現(xiàn)一定程度的效率下降問(wèn)題。本文的主要工作是對(duì)傳統(tǒng)分布式暴力破解密碼系統(tǒng)流程進(jìn)行完善和創(chuàng)新,以便達(dá)到克服以上問(wèn)題的目的。
【關(guān)鍵詞】暴力破解 密碼 分布式系統(tǒng)
1 引言
隨著社會(huì)經(jīng)濟(jì)的發(fā)展,特別是Internet的發(fā)展,社會(huì)信息化進(jìn)程越來(lái)越快,互聯(lián)網(wǎng)絡(luò)環(huán)境下的信息安全由于涉及到國(guó)家政治、經(jīng)濟(jì)、軍事等領(lǐng)域的安全和社會(huì)穩(wěn)定,已日益成為國(guó)家安全領(lǐng)域中的重中之重,2014年中央網(wǎng)絡(luò)安全和信息化領(lǐng)導(dǎo)小組宣布成立以及2016年《中華人民共和國(guó)網(wǎng)絡(luò)安全法》的頒布已經(jīng)充分說(shuō)明了網(wǎng)絡(luò)安全的重要性。而密碼技術(shù)作為信息安全領(lǐng)域中的重要內(nèi)容,它的安全性是不言而喻。而暴力破解密碼系統(tǒng)是測(cè)試密碼安全性的重要方法,所以提高暴力破解密碼的效率便是人們一直追求的目標(biāo)。但是隨著計(jì)算規(guī)模的不斷增大,傳統(tǒng)的分布式密碼暴力破解系統(tǒng)出現(xiàn)各種各樣的問(wèn)題。本文在傳統(tǒng)的分布式密碼暴力破解流程的基礎(chǔ)上進(jìn)行了改進(jìn)和研究,期望能有效的解決上述問(wèn)題。
2 分布式計(jì)算和暴力破解簡(jiǎn)介
2.1 分布式計(jì)算
與分布式計(jì)算相對(duì)的是集中式計(jì)算。集中式計(jì)算的代表就是世界各國(guó)所研制的超級(jí)計(jì)算機(jī),而分布式計(jì)算就是利用散布在世界各地的連接在Internet上的微型計(jì)算機(jī)以達(dá)到可以媲美超級(jí)計(jì)算機(jī)計(jì)算能力的一種計(jì)算方法。在計(jì)算機(jī)剛出現(xiàn)的早期,因?yàn)橛布Y源的昂貴,計(jì)算機(jī)經(jīng)歷了從早期的一臺(tái)服務(wù)器、多臺(tái)客戶機(jī)的C/S架構(gòu)逐步發(fā)展到現(xiàn)在的分布式計(jì)算,同時(shí)也出現(xiàn)了以Hadoop為代表的優(yōu)秀的分布式計(jì)算平臺(tái)。
所謂的分布式計(jì)算就是把需要一個(gè)龐大計(jì)算量的任務(wù)按一定的規(guī)則分解成一個(gè)個(gè)彼此獨(dú)立的小型子任務(wù),然后將這些子任務(wù)分發(fā)到分布式平臺(tái)上的節(jié)點(diǎn)計(jì)算機(jī)進(jìn)行相應(yīng)的計(jì)算以及處理,最后將這些節(jié)點(diǎn)計(jì)算機(jī)的計(jì)算結(jié)果進(jìn)行匯總處理以得到最終的結(jié)果。
分布式計(jì)算有如下優(yōu)點(diǎn):
(1)數(shù)據(jù)處理能力媲美超級(jí)計(jì)算機(jī)。
(2)強(qiáng)大的容錯(cuò)能力,一個(gè)節(jié)點(diǎn)失效和出錯(cuò),可以迅速由另一個(gè)節(jié)點(diǎn)取代。
(3)便于管理,分布式節(jié)點(diǎn)的加入和退出非常方便。
(4)在所有節(jié)點(diǎn)上實(shí)現(xiàn)平衡負(fù)載,得以把任務(wù)放到最適合處理它的節(jié)點(diǎn)上進(jìn)行處理。
正是具有了這些優(yōu)點(diǎn),分布式計(jì)算以其強(qiáng)大的計(jì)算能力和具有一定彈性機(jī)制的擴(kuò)展性被視為新一代互聯(lián)網(wǎng)發(fā)展的基礎(chǔ)和趨勢(shì)。
2.2 暴力破解
暴力破解(Brute Force Attack)就是通過(guò)搜索密鑰空間中所有密鑰的方法來(lái)找到正確的密鑰以達(dá)到破解密碼的目的。
暴力破解的循環(huán)工作流程如圖1所示:
(1)從密鑰空間中提取一個(gè)密鑰;
(2)將此密鑰送入破解程序進(jìn)行驗(yàn)證;
(3)判斷此密鑰是否正確;
(4)如果正確則運(yùn)算結(jié)束,否則返回第一步。
從理論上說(shuō),暴力破解一定會(huì)奏效,但在現(xiàn)實(shí)生活中暴力破解所需要的金錢成本和時(shí)間成本非常巨大。但是當(dāng)暴力破解結(jié)合了分布式計(jì)算的強(qiáng)大計(jì)算能力,暴力破解就顯示出了它巨大的優(yōu)勢(shì)。
3 系統(tǒng)架構(gòu)以及流程圖
3.1 系統(tǒng)架構(gòu)
暴力破解系統(tǒng)的實(shí)現(xiàn)一般采用Server/Client模式,我們借鑒經(jīng)典的C/S架構(gòu),并在此基礎(chǔ)上做出一點(diǎn)改進(jìn):增加一個(gè)控制端(Controller)的角色,改進(jìn)后的C/S架構(gòu)如圖2所示。
服務(wù)器端主要負(fù)責(zé)任務(wù)的分塊、分發(fā)以及計(jì)算結(jié)果的接收等;控制端主要負(fù)責(zé)客戶端的注冊(cè)、向服務(wù)器端提供客戶端節(jié)點(diǎn)信息等;客戶端主要負(fù)責(zé)任務(wù)塊的計(jì)算。
3.2 服務(wù)器端(Server)
服務(wù)器端的主要功能包括任務(wù)的分塊、任務(wù)塊的狀態(tài)跟蹤、任務(wù)的分發(fā)以及計(jì)算結(jié)果的接收。并且可以隨時(shí)暫停和取消客戶端的任務(wù)。
3.2.1 任務(wù)分塊
服務(wù)器端內(nèi)部集成了任務(wù)分片算法,可以將一個(gè)或者多個(gè)大任務(wù)分成多個(gè)小型子任務(wù)。任務(wù)塊的劃分與具體的密碼算法有關(guān)。
3.2.2 任務(wù)塊狀態(tài)跟蹤
在給客戶端分發(fā)任務(wù)塊前,服務(wù)器需要跟蹤任務(wù)塊的狀態(tài)。我們把任務(wù)塊狀態(tài)分成三種情況:
(1)尚未分配給客戶端;
(2)已經(jīng)分配給客戶端,但尚未返回結(jié)果;
(3)計(jì)算完畢。
我們可以根據(jù)不同的任務(wù)設(shè)定不同的超時(shí)時(shí)間,在規(guī)定的時(shí)間內(nèi)仍未返回結(jié)果的任務(wù)塊將被賦予更高的優(yōu)先級(jí)。
3.2.3 任務(wù)分發(fā)
服務(wù)器端把任務(wù)塊狀態(tài)是A或者B的任務(wù)塊分發(fā)給客戶端,我們可以根據(jù)任務(wù)的精密程度將任務(wù)塊分發(fā)到兩個(gè)或者多個(gè)客戶端。
3.2.4 結(jié)果接收
當(dāng)服務(wù)器接收到兩個(gè)(或者多個(gè))客戶端上傳的計(jì)算結(jié)果后進(jìn)行結(jié)果比對(duì),將認(rèn)定計(jì)算錯(cuò)誤的結(jié)果丟棄,同時(shí)將計(jì)算錯(cuò)誤的客戶端加入黑名單,以防止惡意節(jié)點(diǎn)的破壞。如果計(jì)算結(jié)果正確,則停止任務(wù)分發(fā),任務(wù)成功結(jié)束。
3.3 控制端(Controler)
控制端是整個(gè)計(jì)算任務(wù)的協(xié)調(diào)者,負(fù)責(zé)協(xié)同一致性等處理,它的主要工作包括:負(fù)責(zé)客戶端節(jié)點(diǎn)的注冊(cè)、把客戶端節(jié)點(diǎn)信息介紹給服務(wù)器端,與客戶端節(jié)點(diǎn)保持心跳連接。
(1)客戶端節(jié)點(diǎn)的注冊(cè):當(dāng)客戶端節(jié)點(diǎn)加入到系統(tǒng)中時(shí)首先在控制端進(jìn)行登記注冊(cè),之后便與客戶端節(jié)點(diǎn)保持松散耦合的關(guān)系,當(dāng)客戶端節(jié)點(diǎn)退出或者被加入黑名單之后都會(huì)在控制端進(jìn)行登記。
(2)把客戶端節(jié)點(diǎn)信息介紹給服務(wù)器端:當(dāng)服務(wù)器節(jié)點(diǎn)需要分配新的計(jì)算任務(wù)時(shí)便去控制端查詢可用的客戶端節(jié)點(diǎn),然后進(jìn)行任務(wù)的分配。
(3)與客戶端節(jié)點(diǎn)保持心跳連接:在一定的心跳間隔時(shí)間內(nèi)與客戶端節(jié)點(diǎn)進(jìn)行一次通信,如果客戶端節(jié)點(diǎn)死掉則剔除它,以便每次服務(wù)器端查詢客戶端節(jié)點(diǎn)的時(shí)候都能得到最新的可以調(diào)用的客戶端信息。
3.4 客戶端(Client)
客戶端作為分布式計(jì)算的運(yùn)算節(jié)點(diǎn)執(zhí)行真正的破解任務(wù),是計(jì)算任務(wù)的真正承擔(dān)者。
客戶端節(jié)點(diǎn)在控制端上進(jìn)行注冊(cè),之后服務(wù)器為每個(gè)注冊(cè)成功的節(jié)點(diǎn)分配一個(gè)已知結(jié)果的測(cè)試任務(wù)塊:如果客戶端節(jié)點(diǎn)計(jì)算正確則為它們分配真正需要計(jì)算的任務(wù)塊和解密算法進(jìn)行計(jì)算;如果客戶端節(jié)點(diǎn)沒(méi)有返回正確的計(jì)算結(jié)果,則將它加入黑名單??蛻舳斯?jié)點(diǎn)完成計(jì)算任務(wù)后向服務(wù)器端返回任務(wù)結(jié)果——同樣測(cè)試返回結(jié)果的正確性來(lái)決定是否繼續(xù)給客戶端節(jié)點(diǎn)分發(fā)任務(wù)還是將其加入黑名單。如果計(jì)算的過(guò)程中客戶端節(jié)點(diǎn)發(fā)生故障,控制端則在規(guī)定的心跳間隔時(shí)間內(nèi)與客戶端節(jié)點(diǎn)進(jìn)行一次通信,如果客戶端仍然沒(méi)有回應(yīng),控制端就會(huì)刪除此客戶端節(jié)點(diǎn)信息。上述執(zhí)行過(guò)程循環(huán)往復(fù)一直進(jìn)行下去直到計(jì)算任務(wù)的完成。
4 結(jié)論
分布式計(jì)算以其強(qiáng)大的計(jì)算能力被廣泛應(yīng)用于科學(xué)研究以及生產(chǎn)生活的各個(gè)方面。本文在傳統(tǒng)的分布式暴力破解密碼的計(jì)算架構(gòu)基礎(chǔ)上進(jìn)行了改進(jìn)和創(chuàng)新,以期望獲得更好的并發(fā)性和效率,為暴力破解密碼系統(tǒng)的研究提供了一個(gè)新的思路。本文的內(nèi)容只是一個(gè)開(kāi)始,接下來(lái)的計(jì)劃是在局域網(wǎng)中甚至互聯(lián)網(wǎng)中利用這一思想進(jìn)行驗(yàn)證分析。
參考文獻(xiàn)
[1]付安民,張玉清.對(duì)稱密碼算法暴力破解的研究現(xiàn)狀和進(jìn)展[A].2006.
[2]姜峰.基于分布式GPU密碼破譯平臺(tái)的研究與實(shí)現(xiàn)[D].北京郵電大學(xué),2013.
[3]蔣秉天.基于分布式計(jì)算的密碼恢復(fù)系統(tǒng)研究[D].上海交通大學(xué),2010.
[4]張麗麗,張玉清.基于分布式計(jì)算的RC4加密算法的暴力破解[J].計(jì)算機(jī)工程與科學(xué),2008(07):15-17+20.
[5]蔣秉天.基于分布式計(jì)算的密碼恢復(fù)系統(tǒng)研究[D].上海交通大學(xué),2010.
作者簡(jiǎn)介
陳萬(wàn)里(1989-),男,河南省安陽(yáng)市人?,F(xiàn)為貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院在讀研究生。主要研究方向?yàn)榫W(wǎng)絡(luò)與信息安全。
吳紹華(1989-),男,黑龍江省綏化市人?,F(xiàn)為貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院在讀研究生。主要研究方向?yàn)閿?shù)據(jù)挖掘,高維數(shù)據(jù)聚類。
作者單位
貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 貴州省貴陽(yáng)市 550025