

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