王莉
(宿州職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)信息系, 安徽 宿州 234101)
分布式網(wǎng)絡(luò)攻擊的應(yīng)用研究
王莉
(宿州職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)信息系, 安徽 宿州 234101)
本文深入討論了通過(guò)分布式計(jì)算進(jìn)行的網(wǎng)絡(luò)攻擊,重點(diǎn)討論了通過(guò)分布式網(wǎng)絡(luò)進(jìn)行的暴力破解攻擊,同時(shí)分析了其他的一些分布式網(wǎng)絡(luò)的攻擊方法,并最終以 DES 和 MD5 為例設(shè)計(jì)并實(shí)現(xiàn)了分布式網(wǎng)絡(luò)攻擊系統(tǒng),通過(guò)該系統(tǒng)模擬出暴力破解的 DES和 MD5的過(guò)程.
暴力破解;分布式計(jì)算;DES;MD5
密碼分析的一個(gè)基本方向就是暴力破解,暴力破解已成為密碼學(xué)的一個(gè)重要分支.隨著網(wǎng)絡(luò)并行計(jì)算和分布式計(jì)算等新技術(shù)的產(chǎn)生,人們開(kāi)始研究在新計(jì)算平臺(tái)下的暴力破解技術(shù),尤其是對(duì)一些目前常用的對(duì)稱(chēng)密碼的暴力破解技術(shù).新一輪的基于分布式環(huán)境的暴力破解熱潮逐漸發(fā)展起來(lái).與此同時(shí),在新的分布式網(wǎng)絡(luò)環(huán)境中的其他一些分布式網(wǎng)絡(luò)攻擊也相繼出現(xiàn),研究分布式環(huán)境下的網(wǎng)絡(luò)攻擊,對(duì)于提高我國(guó)密碼算法的理論研究,改進(jìn)密碼算法有著重要的意義.
2.1 軟件開(kāi)發(fā)與測(cè)試環(huán)境
系統(tǒng)基于 Socket通信方式,采用 C/S模式進(jìn)行設(shè)計(jì),開(kāi)發(fā)軟件為 Microsoft提供的 VisualStudio 2010,開(kāi)發(fā)語(yǔ)言采用C#,開(kāi)發(fā)系統(tǒng)環(huán)境選擇 Windows XP.測(cè)試時(shí),客戶端和服務(wù)器端安裝在不同的計(jì)算機(jī)上,這些計(jì)算機(jī)使用的操作系統(tǒng)也是 Windows XP.
2.2 界面設(shè)計(jì)
服務(wù)器端界面如圖1所示:
圖1 服務(wù)器端
服務(wù)器主界面主要包括四個(gè)部分,DES加密,MD5哈希,客戶端反饋信息,破解進(jìn)度.在破解時(shí),點(diǎn)擊界面左上方的“啟動(dòng)服務(wù)器”,等待客戶端的連接請(qǐng)求,在建立連接后,可以給客戶端分配任務(wù),進(jìn)行密碼破解或是 MD5攻擊.通信數(shù)據(jù)右側(cè)的文本框用于向客戶端發(fā)送響應(yīng)消息或是分發(fā)破解任務(wù),“查看結(jié)果”按鈕主要用于當(dāng)鼠標(biāo)單擊客戶端反饋信息時(shí),顯示詳細(xì)的破解內(nèi)容.客戶端反饋信息跟破解進(jìn)度使用 ListBox控件進(jìn)行顯示.
客戶端界面如圖2所示:
圖2 客戶端
“服務(wù)器地址”用于輸入服務(wù)器所在主機(jī)的 IP,點(diǎn)擊“連接”可以跟服務(wù)器建立連接.“連接”按鈕左邊的文本框用于向服務(wù)器發(fā)送消息,包括連接測(cè)試跟破解進(jìn)度等信息.當(dāng)連接成功后,服務(wù)器 IP地址輸入框自動(dòng)消失,同時(shí)“連接”按鈕變成“接收 /發(fā)送”按鈕,實(shí)現(xiàn)操作的簡(jiǎn)潔性.
2.3 系統(tǒng)功能模塊實(shí)現(xiàn)
系統(tǒng)實(shí)現(xiàn)的主要功能有字符串 DES加密,文件加密,生成 MDS哈希,DES分布式破解,MD5分布式破解.其中字符串 DES加密、文件加密、生成 MDS哈希直接采用開(kāi)發(fā)軟件提供的內(nèi)置函數(shù)調(diào)用,而 DES分布式破解,MD5分布式破解涉及到客戶端與服務(wù)器端的數(shù)據(jù)傳輸、密鑰分片,通信處理等.下面將具體介紹每個(gè)功能是如何實(shí)現(xiàn)的.
2.3.1 DES加密.
DES加密分為對(duì)字符串加密和文件加密,在微軟的VisualStudio 2010中,提供了許多加密函數(shù),明白其原理后,我們只需要直接調(diào)用即可.以下語(yǔ)句為 DES加密字符串的功能函數(shù)關(guān)鍵代碼及分析,文件加密與其類(lèi)似,在此不再贅述.
byte[]btKey=Encoding.Default.GetBytes(key);//指定密鑰
byte[]btIV=Encoding.Default.GetBytes(iv); //初始化向量
DESCryptoServiceProvider des = new DESCryptoServiceProvider();//DES加密類(lèi)
MemoryStream ms=new MemoryStream();//內(nèi)存流
byte[]inData=Encoding.Default.GetBytes(sourceString); //編碼需要加密的字符串
CryptoStream cs=new CryptoStream(ms,des. CreateEncryptor(btKey,btIV),CryptoStreamMode.Write)//創(chuàng)建加密流
cs.Write(inData,0,inData.Length);//寫(xiě)入加密數(shù)據(jù)cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());//返回加密后的字符串
2.3.2 MD5哈希
MD5哈希值的計(jì)算方法代碼如下,其中 textBox4為輸入明文的文本框,textBox5為顯示 MD5值的文本框.
byte[]result=Encoding.Default.GetBytes(this.textBox4.Text. Trim());
MD5 md5=new MD5CryptoServiceProvider();//實(shí)例化MD5類(lèi)
byte[]output=md5.ComputeHash(result);//計(jì)算 Hash值
this.textBox5.Text=BitConverter.ToString(output).Replace ("-","");//顯示結(jié)果
2.3.3 DES破解
服務(wù)器端的主要任務(wù)是將加密后的密文發(fā)送給客戶端,因此破解 DES的功能主要由客戶端實(shí)現(xiàn),由于 DES為對(duì)稱(chēng)加密,其破解過(guò)程跟加密過(guò)程相同,在此不再附上代碼.
2.3.4 MD5破解
MD5破解時(shí),服務(wù)器端任務(wù)主要是將需要破解的哈希值發(fā)給客戶端,并將數(shù)據(jù)進(jìn)行分片,即將要破解的數(shù)字從小到大分段發(fā)送給不同的客戶端進(jìn)行處理,客戶端即時(shí)反饋破解情況,接收新的任務(wù)處理,直到破解完成.其中客戶端的破解程序如下:
start_num=Get_StartNumber();//獲取分片開(kāi)始數(shù)字
mm=listBox1.Selected Item.ToString();//mm為需要破解的哈希值
long temp=0;//臨時(shí)變量
bool Success=false;//布爾變量
end_num=start_num+100; //分片破解范圍
for(long t=start_num;t<=end_num;t++)
{
string ss=t.ToString();
byte[]InPut=Encoding.Default.GetBytes(ss);
MD5 md5=new MD5CryptoServiceProvider();
byte[]OutPut=md5.ComputeHash(InPut);//計(jì)算 Hash值
end=BitConverter.ToString(OutPut).Replace("-","");
if(end==mm)//與需要破解的哈希值進(jìn)行比較
{
temp=t;
listBox3.Items.Add(Convert.ToString(DateTime.Now));
listBox3.Items.Add("破解成功,結(jié)果為:"+temp. ToString());
textBox1.Text="md5ok"+temp.ToString();//返回成功消息
Success=true;
break;
}
}
If(Success==false)
listBox3.Items.Add("該分片破解完成,請(qǐng)求新的任務(wù) ");
textBox1.Text="任務(wù)請(qǐng)求 ";//請(qǐng)求新的分片
在實(shí)驗(yàn)過(guò)程中,假設(shè)明文為:33445566,那么該密鑰空間具有 108個(gè)數(shù)據(jù);將密鑰空間分為 10片,那么每片有 107個(gè)數(shù)據(jù).MD5(16進(jìn)制)為:
D36C71408784D8123DE29768F24DF75E.
根據(jù)不同客戶端數(shù)量,MD5破解時(shí)間的不同,繪制出下表 3-1:
表 3-1 破解時(shí)間
從表中可以看出,對(duì)于同一個(gè) MD5值,在密鑰空間一定,分片數(shù)一定的情況下,隨著客戶端數(shù)量的增加,MD5破解時(shí)間逐漸減少.如果只有一臺(tái)客戶機(jī),破解時(shí)間需要 363秒,當(dāng)客戶端數(shù)量增加時(shí),破解時(shí)間明顯縮短.可見(jiàn),分布式計(jì)算在暴力破解中具有明顯的優(yōu)越性.同時(shí),它使得需要巨大計(jì)算量的任務(wù)在分解成顆粒度合適的子任務(wù)后在時(shí)間上具有優(yōu)越性,能縮短完成任務(wù)的時(shí)間.
本文在充分研究了分布式的基本理論與算法的基礎(chǔ)上,以對(duì)稱(chēng)密碼學(xué)算法 DES與消息摘要函數(shù) MD5為切入點(diǎn),研究了基于分布式網(wǎng)絡(luò)密鑰破解,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)適于小密鑰空間的密碼破解系統(tǒng).系統(tǒng)軟件具有很強(qiáng)的通用性,只要對(duì)軟件中的數(shù)據(jù)庫(kù)模塊與解密算法修改之后就可以對(duì)另外一種密碼學(xué)算法進(jìn)行暴力破解.
〔1〕周宇昌,熊之凡.空間信息站初探[J].空間電子技術(shù),2004 (1):7-15.
〔2〕汪軍,豐洪才.高校校園網(wǎng)帶寬優(yōu)化管理的實(shí)踐與探討[J].計(jì)算機(jī)安全,2008(6):78-80.
〔3〕SANGFOR AC4.3 用戶手冊(cè)[EB/OL]2012-09-01.http: //www.sangfor.com/product_doc/manual/SANGFOR_ AC_v4.3_Manual_CN_201 20901_PDF.zipSETI Institute Online,http://www.seti-inst.edu/science/setiathome.htm l.
〔4〕龍崇劍.分布式環(huán)境下密碼計(jì)算平臺(tái)的研究[D].上海:上海交通大學(xué),2007.
〔5〕Eugene.H.Spafford.The Internet Worm Program:An Analysis[J].ACM Computer Communication Review, 1989.
TP393.08
A
1673-260X(2014)08-0018-02