亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于gpu集群的wpa共享密鑰破解系統(tǒng)的制作方法

文檔序號(hào):7778950閱讀:328來(lái)源:國(guó)知局
一種基于gpu集群的wpa共享密鑰破解系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明涉及密碼破解【技術(shù)領(lǐng)域】,本發(fā)明公開(kāi)了一種基于GPU集群的WPA共享密鑰破解系統(tǒng),其具體包括一個(gè)控制節(jié)點(diǎn)和多個(gè)GPU計(jì)算節(jié)點(diǎn);所述控制節(jié)點(diǎn)截獲WPA數(shù)據(jù)包,特征值提取模塊提取出破解特征值,控制節(jié)點(diǎn)的用戶(hù)交互模塊接收用戶(hù)定義的破解口令的范圍;口令空間劃分模塊給每個(gè)GPU計(jì)算節(jié)點(diǎn)劃分一定范圍的口令區(qū)間,并傳送給每個(gè)對(duì)應(yīng)的GPU計(jì)算節(jié)點(diǎn);GPU計(jì)算節(jié)點(diǎn)計(jì)算得到臨時(shí)的校驗(yàn)參數(shù)MIC_TMP,當(dāng)臨時(shí)的校驗(yàn)參數(shù)MIC_TMP與校驗(yàn)參數(shù)MIC值相同時(shí),則認(rèn)為此破解口令passphrase為共享密鑰,密碼破解完成。本發(fā)明采用GPU集群對(duì)WPA/WPA2-PSK的口令進(jìn)行破解,支持多節(jié)點(diǎn)的GPU集群,可根據(jù)需求適當(dāng)?shù)剡M(jìn)行擴(kuò)展,較好地提升破解性能,同時(shí)針對(duì)GPU集群的異構(gòu)特點(diǎn),設(shè)計(jì)了可靠的任務(wù)調(diào)度系統(tǒng),現(xiàn)負(fù)載均衡,提高了破解速度。
【專(zhuān)利說(shuō)明】—種基于GPU集群的WPA共享密鑰破解系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及密碼破解【技術(shù)領(lǐng)域】,尤其涉及一種基于GPU集群的WPA共享密鑰破解系統(tǒng)。
【背景技術(shù)】
[0002]近年來(lái),隨著智能手機(jī)、平板電腦等移動(dòng)終端的急速發(fā)展,無(wú)線局域網(wǎng)WLAN (Wireless Local Area Network)的發(fā)展也極為迅猛,甚至有代替有線網(wǎng)絡(luò)成為主要上網(wǎng)方式的趨勢(shì)。因此WLAN也成為偵查取證的一個(gè)重要目標(biāo)。
[0003]WLAN的標(biāo)準(zhǔn)IEEE 802.11中規(guī)定了對(duì)于無(wú)線網(wǎng)絡(luò)數(shù)據(jù)的保護(hù)方案:WEP、WPA和WPA2。其中WEP是最早的方案,已被發(fā)現(xiàn)有較多的漏洞,可以在很快的時(shí)間內(nèi)被成功攻擊,因此現(xiàn)在對(duì)于WLAN的保護(hù)一般都是采用WPA或WPA2。WPA/WPA2采用兩種身份認(rèn)證方式:共享密鑰PSK (Pre-Share Key)認(rèn)證和IEEE 802.1X認(rèn)證。前者模式比較簡(jiǎn)單,只需要一個(gè)密鑰(或口令)即可實(shí)現(xiàn),通常在家庭、小企業(yè)和公共區(qū)域的熱點(diǎn)上使用,后者需要提供有效憑證,通過(guò)特定的認(rèn)證服務(wù)器來(lái)實(shí)現(xiàn),具有相對(duì)更高的安全性。
[0004]隨著人們安全意識(shí)的提高,越來(lái)越多地用戶(hù)選擇使用WPA/WPA2-PSK對(duì)無(wú)線上網(wǎng)進(jìn)行保護(hù),由于目前尚未發(fā)現(xiàn)WPA/WPA2-PSK協(xié)議的明顯缺陷,因此只能依靠暴力攻擊的方法對(duì)WPA/WPA2-PSK進(jìn)行破解(即將密碼進(jìn)行逐個(gè)推算直到找出真正的密碼為止),以獲取共享密鑰從而進(jìn)一步獲取所需的通信數(shù)據(jù)。很顯然這樣的密碼破解方式需要的計(jì)算量是相當(dāng)大的。
[0005]對(duì)于WPA/WPA2-PSK的破解已有不少的研究成果,都是通過(guò)窮舉法來(lái)進(jìn)行暴力攻擊。最有名的軟件是Aircrack-ng,它支持CPU上的計(jì)算,在單核CPU上的破解速度為1500
個(gè)口令/秒左右。
[0006]圖像處理器GPU(Graphic Process Unit)的高性能數(shù)據(jù)處理能力的發(fā)展,為WPA/WPA2-PSK的高速破解提供了新的解決途徑。GPU將大量的晶體管用作計(jì)算單元,適合高計(jì)算強(qiáng)度的應(yīng)用。GPU在高性能運(yùn)算方面具有三個(gè)突出優(yōu)點(diǎn):第一,數(shù)據(jù)的并行處理能力強(qiáng)大,NVIDIA公司目前最新的GPU K20峰值浮點(diǎn)運(yùn)算能力超過(guò)3TFL0PS,這幾乎和一個(gè)小型CPU集群相當(dāng);第二,GPU擁有出色的高密集運(yùn)算能力,K20的帶寬超過(guò)200 GB/s ;第三,GPU擁有良好的可編程性,支持多種高級(jí)語(yǔ)言編程,NVIDIA開(kāi)發(fā)的CUDA架構(gòu)支持C/C++和Fortran。
[0007]俄羅斯Elcomsoft公司的 WPA/WPA2-PSK 破解軟件Elcomsoft Wireless SecurityAuditor可以支持GPU,其基于Python開(kāi)發(fā)的開(kāi)源軟件Pyrit支持多核CPU和GPU。它們的破解速度在每片GPU上能夠達(dá)到5萬(wàn)到7萬(wàn)個(gè)口令/秒。但是這些軟件僅支持單機(jī)系統(tǒng),最多包含4片GPU,對(duì)于破解速度要求非常高的場(chǎng)合性能仍然顯得非常有限。
[0008]綜上,基于CPU的破解方式破解速度低,基于GPU的破解方式僅能支持單機(jī)系統(tǒng),破解能力同樣有限且擴(kuò)展性差。
【發(fā)明內(nèi)容】

[0009]針對(duì)現(xiàn)有技術(shù)中的密碼破解系統(tǒng)破解速度低,破解能力有限,擴(kuò)展性差的技術(shù)問(wèn)題,本發(fā)明公開(kāi)了一種基于GPU集群的WPA共享密鑰破解系統(tǒng)。
[0010]本發(fā)明公開(kāi)了一種基于GPU集群的WPA共享密鑰破解系統(tǒng),其具體包括一個(gè)控制節(jié)點(diǎn)和多個(gè)GPU計(jì)算節(jié)點(diǎn),所述控制節(jié)點(diǎn)包括用戶(hù)交互模塊、特征值提取模塊和口令空間劃分模塊;所述控制節(jié)點(diǎn)截獲WPA數(shù)據(jù)包,將WPA數(shù)據(jù)包發(fā)送到特征值提取模塊,特征值提取模塊提取出WPA數(shù)據(jù)包中的破解特征值,其中破解特征值包括接入點(diǎn)的名稱(chēng)SSID、接入點(diǎn)的MAC地址AP_MAC、客戶(hù)端的MAC地址STA_MAC、兩個(gè)隨機(jī)數(shù)SNonce和Anonce、以及校驗(yàn)參數(shù)MIC;所述控制節(jié)點(diǎn)的用戶(hù)交互模塊用于接收用戶(hù)定義的破解口令的范圍;所述口令空間劃分模塊根據(jù)接收的破解口令的范圍給每個(gè)GPU計(jì)算節(jié)點(diǎn)劃分一定范圍的口令區(qū)間,并通過(guò)消息傳遞接口 MPI傳送給每個(gè)對(duì)應(yīng)的GPU計(jì)算節(jié)點(diǎn);GPU計(jì)算節(jié)點(diǎn)根據(jù)接入點(diǎn)的名稱(chēng)SSID、接入點(diǎn)的MAC地址AP_MAC、客戶(hù)端的MAC地址STA_MAC、兩個(gè)隨機(jī)數(shù)SNonce和Anonce、以及分配給GPU計(jì)算節(jié)點(diǎn)的破解口令passphrase進(jìn)行計(jì)算得到臨時(shí)的校驗(yàn)參數(shù)MIC_TMP,當(dāng)臨時(shí)的校驗(yàn)參數(shù)MIC_TMP與校驗(yàn)參數(shù)MIC值相同時(shí),則認(rèn)為此破解口令passphrase為共享密鑰,并將破解的結(jié)果返回給控制節(jié)點(diǎn),密碼破解完成;當(dāng)計(jì)算得到的臨時(shí)的校驗(yàn)參數(shù)MIC_TMP與校驗(yàn)參數(shù)MIC值不相同時(shí),則更換破解口令,以新的破解口令進(jìn)行計(jì)算得到新的臨時(shí)的校驗(yàn)參數(shù),直到所有的破解口令逐一計(jì)算并比較后完成。
[0011]更進(jìn)一步地,上述GPU計(jì)算節(jié)點(diǎn)包括主機(jī)端CPU和設(shè)備端GPU ;所述所述主機(jī)端(PU用于為GPU設(shè)備端破解進(jìn)行前期破解數(shù)據(jù)準(zhǔn)備和后期破解結(jié)果收集;所述設(shè)備端GPU用于破解計(jì)算。
[0012]更進(jìn)一步地,上述主機(jī)端CPU包括初始化模塊、數(shù)據(jù)傳輸模塊和破解配置模塊;所述初始化模塊用于初始化CPU主機(jī)端的線程,所述數(shù)據(jù)傳輸模塊用于將從控制節(jié)點(diǎn)中接收到的破解特征值通過(guò)PCIE總線從CPU主機(jī)端傳遞到GPU設(shè)備端,所述破解配置模塊用于根據(jù)每個(gè)GPU計(jì)算節(jié)點(diǎn)中每張GPU卡實(shí)際的參數(shù)信息來(lái)設(shè)置破解的配置參數(shù)。
[0013]更進(jìn)一步地,上述設(shè)備端GPU包括口令生成模塊和口令破解模塊,所述口令生成模塊根據(jù)偏移量、GPU線程ID號(hào)以及字符集長(zhǎng)度生成破解口令,所述口令破解模塊根據(jù)破解特征值和破解口令,計(jì)算得到校驗(yàn)參數(shù)MIC_TMP。
[0014]更進(jìn)一步地,上述口令空間劃分模塊劃分口令的過(guò)程具體為使用靜態(tài)負(fù)載均衡的方法為每個(gè)GPU計(jì)算節(jié)點(diǎn)中的每張GPU卡劃分一定范圍的口令區(qū)間。
[0015]更進(jìn)一步地,上述MIC值寫(xiě)到GPU的常量?jī)?nèi)存中,接入點(diǎn)的名稱(chēng)SSID、接入點(diǎn)的MAC地址AP_MAC、客戶(hù)端的MAC地址STA_MAC以及兩個(gè)隨機(jī)數(shù)SNonce和Anonce寫(xiě)入GPU的全局內(nèi)存中。
[0016]更進(jìn)一步地,上述根據(jù)破解特征值和破解口令,計(jì)算得到校驗(yàn)參數(shù)MIC_TMP的具體過(guò)程為:首先SSID和passphrase作為pdkdf2_SHAl函數(shù)的輸入?yún)?shù)生成預(yù)共享密鑰PSK,PSK的值等同于預(yù)共享主密鑰PMK ;然后,產(chǎn)生的PMK和STA_MAC、AP_MAC、SNonce、ANonce通過(guò)SHAl_prf生成一個(gè)PTK,取PTK的前16個(gè)字節(jié)即為MIC_KEY,最后通過(guò)HMAC_MD5或者HMAC-SHA1生成最后的MIC_TMP值。WPA和WPA2的區(qū)別在僅在于于生成MIC值的最后一步中WPA使用HMAC-MD5算法,而WPA2使用HMAC-SHA1算法。本發(fā)明的破解方法可以適用于WPA和WPA2。[0017]通過(guò)采用以上的技術(shù)方案,本發(fā)明的有益效果為:本發(fā)明采用GPU集群對(duì)WPA/WPA2-PSK的口令進(jìn)行破解,支持多節(jié)點(diǎn)的GPU集群,可根據(jù)需求適當(dāng)?shù)剡M(jìn)行擴(kuò)展,較好地提升破解性能,同時(shí)針對(duì)GPU集群的異構(gòu)特點(diǎn),設(shè)計(jì)了可靠的任務(wù)調(diào)度系統(tǒng),現(xiàn)負(fù)載均衡,提高了破解速度。
【專(zhuān)利附圖】

【附圖說(shuō)明】
[0018]圖1為整個(gè)密鑰破解系統(tǒng)的拓?fù)鋱D。
[0019]圖2為基于GPU集群密鑰破解流程圖。
[0020]圖3為口令生成模塊的生成示意圖。
[0021 ] 圖4為WPA密碼破解的具體實(shí)現(xiàn)過(guò)程。
【具體實(shí)施方式】
[0022]下面結(jié)合說(shuō)明書(shū)附圖,詳細(xì)說(shuō)明本發(fā)明的【具體實(shí)施方式】。
[0023]一個(gè)WLAN至少包含1個(gè)無(wú)線接入點(diǎn)AP和一個(gè)用戶(hù)(客戶(hù)端)。WPA/WPA2-PSK的認(rèn)證過(guò)程為一個(gè)四步握手過(guò)程,客戶(hù)端通過(guò)輸入的密鑰、AP的名稱(chēng)(SSID)、用戶(hù)的MAC地址、隨機(jī)數(shù)Nonce等數(shù)據(jù)生成校驗(yàn)值MIC發(fā)送給AP,AP與已存儲(chǔ)的正確MIC值進(jìn)行比對(duì),若一致則通過(guò)身份認(rèn)證,否則拒絕。WPA和WPA2的主要區(qū)別在于生成MIC值的最后一步中WPA使用HMAC-MD5算法,而WPA2使用HMAC-SHA1算法。因此,本發(fā)明的方法可適用于WPA和WPA2。
[0024]GPU集群,即基于GPU計(jì)算節(jié)點(diǎn)構(gòu)成的集群系統(tǒng),其主要的計(jì)算工作由各個(gè)節(jié)點(diǎn)的GPU完成。GPU集群最主要的特征是其可擴(kuò)展性和異構(gòu)性:可擴(kuò)展性是指一個(gè)集群的計(jì)算資源是可以動(dòng)態(tài)變化的,根據(jù)實(shí)際需求可以增加或減少GPU計(jì)算節(jié)點(diǎn),而且這不會(huì)影響計(jì)算任務(wù)的編程;異構(gòu)性在于對(duì)集群進(jìn)行擴(kuò)展時(shí),可能會(huì)選用新型號(hào)的計(jì)算硬件,使得各個(gè)節(jié)點(diǎn)的計(jì)算能力并不完全相同,存在一定的差異。這給GPU集群的任務(wù)調(diào)度和負(fù)載均衡帶來(lái)一定的難度。對(duì)于GPU集群的應(yīng)用研究目前主要在傳統(tǒng)領(lǐng)域,如氣象測(cè)繪、地質(zhì)勘探、生物研究等,在密碼分析領(lǐng)域特別是對(duì)WPA/WPA2-PSK的破解尚未見(jiàn)到。
[0025]本發(fā)明是基于MPI + Posix Pthread + CUDA設(shè)計(jì)出的一種基于GTO集群的暴力破解通用系統(tǒng)。其中MPI (Message Passing Interface)消息傳遞接口是應(yīng)用的最廣泛的并行編程環(huán)境。MPI具有很好的跨平臺(tái)特性,幾乎可以在所有的并行環(huán)境中使用,同時(shí)具有很好的可擴(kuò)展性和完備的異步通信功能。P0SIX定義了幾乎所有的Pthread線程庫(kù)都必須遵守的API,幾乎所有的UNIX供應(yīng)商都按照此標(biāo)準(zhǔn)進(jìn)行開(kāi)發(fā),而且?guī)缀跛械腢NIX或LINUX供應(yīng)商都發(fā)布了各自的線程庫(kù)。
[0026]本發(fā)明公開(kāi)了一種基于GPU集群的WPA共享密鑰破解系統(tǒng),其具體包括控制節(jié)點(diǎn)和至少一個(gè)GPU計(jì)算節(jié)點(diǎn),所述控制節(jié)點(diǎn)包括用戶(hù)交互模塊、特征值提取模塊和口令空間劃分模塊,所述GPU計(jì)算節(jié)點(diǎn)包括GPU計(jì)算節(jié)點(diǎn)CPU端和GPU計(jì)算節(jié)點(diǎn)GPU端,所述GPU計(jì)算節(jié)點(diǎn)CPU端包括初始化模塊、數(shù)據(jù)傳輸模塊和破解配置模塊,所述GPU計(jì)算節(jié)點(diǎn)GPU端包括口令生成模塊和破解執(zhí)行模塊;所述控制節(jié)點(diǎn)截取WPA數(shù)據(jù)包,將WA數(shù)據(jù)包發(fā)送到控制節(jié)點(diǎn)的特征值提取模塊,特征值提取模塊提取出WPA數(shù)據(jù)包中有效的字段信息,其中有效的字段信息包括接入點(diǎn)的名稱(chēng)SSID、接入點(diǎn)的MAC地址AP_MAC、客戶(hù)端的MAC地址STA_MAC、兩個(gè)隨機(jī)數(shù)SNonce和Anonce以及校驗(yàn)參數(shù)MIC ;所述控制節(jié)點(diǎn)的用戶(hù)交互模塊接收用戶(hù)定義的破解口令的范圍;其中破解口令的范圍包括字符集的指定(比如數(shù)字、字母或者符號(hào)集或者其中幾個(gè)的結(jié)合等)、口令的長(zhǎng)度區(qū)間范圍(比如8-20字節(jié)長(zhǎng)度等)以及是否包括一些自定義的字符集等等;所述口令空間劃分模塊根據(jù)接收的破解口令的范圍給每個(gè)GPU計(jì)算節(jié)點(diǎn)劃分一定范圍的口令區(qū)間,并通過(guò)消息傳遞接口 MPI傳送給對(duì)應(yīng)的GPU計(jì)算節(jié)點(diǎn);GPU計(jì)算節(jié)點(diǎn)根據(jù)接入點(diǎn)的名稱(chēng)SSID、接入點(diǎn)的MAC地址AP_MAC、客戶(hù)端的MAC地址STA_MAC、兩個(gè)隨機(jī)數(shù)SNonce和Anonce和口令生成模塊生成的破解口令passphrase進(jìn)行計(jì)算得到臨時(shí)的MIC_TMP值,當(dāng)臨時(shí)的MIC_TMP值與校驗(yàn)參數(shù)MIC值相同,則認(rèn)為此破解口令passphrase為正確的口令,密碼破解完成,并將破解的結(jié)果返回給控制節(jié)點(diǎn)。通過(guò)在GPU集群中實(shí)現(xiàn)WPA的密碼破解,通過(guò)控制節(jié)點(diǎn)將計(jì)算任務(wù)進(jìn)行分解,整個(gè)暴力破解系統(tǒng)的拓?fù)淙鐖D1所示,由1個(gè)控制節(jié)點(diǎn)和4個(gè)GPU計(jì)算節(jié)點(diǎn)組成。其中A是控制節(jié)點(diǎn),主要的功能是將一個(gè)破解任務(wù)進(jìn)行分解,劃分成四個(gè)子任務(wù),并且使用MPI將子任務(wù)傳遞給各個(gè)GPU計(jì)算節(jié)點(diǎn)。圖1中所示的B、C、D、E是GPU計(jì)算節(jié)點(diǎn),主要的功能是對(duì)控制節(jié)點(diǎn)下發(fā)的子任務(wù)進(jìn)行執(zhí)行,并且將破解的結(jié)果返回給控制節(jié)點(diǎn)??刂乒?jié)點(diǎn)將用戶(hù)下發(fā)的破解任務(wù)根據(jù)用戶(hù)的配置信息和集群中各個(gè)GPU計(jì)算節(jié)點(diǎn)的配置信息劃分成若干個(gè)子任務(wù),并根據(jù)GPU計(jì)算節(jié)點(diǎn)的實(shí)際情況來(lái)進(jìn)行合理的資源配置,最大化整個(gè)破解過(guò)程的并發(fā)度。
[0027]圖2所示的是基于GPU集群密碼破解流程圖,包括控制節(jié)點(diǎn)和GPU計(jì)算節(jié)點(diǎn)。在控制節(jié)點(diǎn)中主要有以下幾個(gè)模塊:用戶(hù)交互模塊、特征值提取模塊、口令空間劃分模塊。而GPU計(jì)算節(jié)點(diǎn)又進(jìn)一步分成計(jì)算CPU主機(jī)端和GPU設(shè)備端,CPU主機(jī)端主為GPU設(shè)備端的破解做前期的數(shù)據(jù)準(zhǔn)備和后期的結(jié)果收集,而GPU設(shè)備主要負(fù)責(zé)大規(guī)模數(shù)據(jù)的并行計(jì)算。GPU計(jì)算節(jié)點(diǎn)主要包括了初始化模塊、數(shù)據(jù)傳輸模塊、破解配置模塊、口令配置模塊和破解模塊。每個(gè)模塊具體的功能如下:
(1)用戶(hù)交互模塊為用戶(hù)提供了暴力破解任務(wù)基本信息的輸入接口,包括破解口令的字符集指定、口令的長(zhǎng)度區(qū)間范圍(最小口令長(zhǎng)度、最大口令長(zhǎng)度)、自定義字符集等。該模塊為用戶(hù)提供了友好的系統(tǒng)操作接口,更加方便用戶(hù)根據(jù)實(shí)際情況對(duì)暴力破解進(jìn)行配置。
[0028](2)特征值提取模塊從待破解的WPA/WPA2數(shù)據(jù)包中提取有效的字段信息,這些字段將為破解操作提供重要的輸入?yún)?shù)和校驗(yàn)參數(shù)。在WPA/WPA2的破解當(dāng)中,輸入?yún)?shù)包括AP名稱(chēng)SSID、AP的MAC地址AP_MAC、客戶(hù)端MAC地址STA_MAC、兩個(gè)隨機(jī)數(shù)SNonce和ANonce這些字段,校驗(yàn)參數(shù)是MIC。如果輸入?yún)?shù)和某個(gè)口令在經(jīng)過(guò)一系列的計(jì)算之后生成的結(jié)果與校驗(yàn)參數(shù)MIC值相同,則認(rèn)為此口令為正確的口令,破解成功。
[0029]更進(jìn)一步地,上述口令空間劃分模塊劃分口令的過(guò)程具體為使用靜態(tài)負(fù)載均衡的方法為每個(gè)GPU計(jì)算節(jié)點(diǎn)中的每張GPU卡劃分一定范圍的口令區(qū)間。比如在同構(gòu)GPU平臺(tái)下,每張GPU卡分配到的口令區(qū)間的算法如下:首先根據(jù)用戶(hù)輸入的字符集計(jì)算出此次暴力破解所需的總口令數(shù)量N,已知GPU計(jì)算節(jié)點(diǎn)的數(shù)量為N1,每個(gè)GPU計(jì)算節(jié)點(diǎn)GPU卡的數(shù)量為N2,每張GPU卡一次并行的線程數(shù)量(口令數(shù)量)為M,那么第一個(gè)GPU計(jì)算節(jié)點(diǎn)上第一張GPU卡分配到的口令區(qū)間就是[0,N/N1/N2),第二張GPU卡分配到的口令區(qū)間是[N/N1/N2,2 X (N/N1/N2)),依次類(lèi)推,第一個(gè)GPU計(jì)算節(jié)點(diǎn)上的第N2張GPU卡分配到的口令區(qū)間是[(N2-1)N/N1/N2,N/N1)。然而,在異構(gòu)GPU平臺(tái)下,我們需要為兩種類(lèi)型的GPU卡A和B分配口令區(qū)間,這兩種類(lèi)型的GPU卡因?yàn)橛?jì)算能力有差別,在單位時(shí)間內(nèi)窮舉的口令有差異。這樣一來(lái),假設(shè)GPU卡A —次窮舉的口令區(qū)間數(shù)量為Ml,破解速度為S1,GPU卡B —次窮舉的口令區(qū)間數(shù)量為M2,破解速度為S2,需要保證M1/S1=M2/S2。這樣靜態(tài)劃分的好處是最小化了每個(gè)GPU計(jì)算節(jié)點(diǎn)中每張GPU卡之間同步所消耗的時(shí)間,避免了動(dòng)態(tài)劃分中額外的內(nèi)存消耗和數(shù)據(jù)傳輸,提高了破解的效率。
[0030]GPU計(jì)算節(jié)點(diǎn)可分成兩個(gè)部分主機(jī)端CPU和設(shè)備端GPU。其中主要破解計(jì)算是由設(shè)備端來(lái)完成,而CPU主機(jī)端主要負(fù)責(zé)為GPU設(shè)備端破解進(jìn)行前期破解數(shù)據(jù)準(zhǔn)備和后期
破解結(jié)果收集。進(jìn)一步劃分,主機(jī)端CPU包含初始化模塊、數(shù)據(jù)傳輸模塊、破解配置模塊,設(shè)備端GPU主要分為口令生成模塊和口令破解模塊。
[0031](1)初始化模塊主要是初始化CPU主機(jī)端的線程。在GPU計(jì)算節(jié)點(diǎn)中是通過(guò)P0SIX的Pthread多線程技術(shù)來(lái)實(shí)現(xiàn)多GPU卡的控制技術(shù)(這里的CPU線程是指P0SIX線程,區(qū)別于后面所說(shuō)的GPU線程),初始化每張GPU卡中共同的和不同的破解資源,創(chuàng)建多線程的破解例程。
[0032](2)數(shù)據(jù)傳輸模塊主要是將從控制節(jié)點(diǎn)中接收到的破解特征值通過(guò)PCIE總線從CPU主機(jī)端傳遞到GPU設(shè)備端。在GPU計(jì)算節(jié)點(diǎn)中,GPU設(shè)備端有不同類(lèi)型的內(nèi)存:全局內(nèi)存、共享內(nèi)存、常量?jī)?nèi)存、紋理內(nèi)存。不同類(lèi)型的內(nèi)存的訪問(wèn)所需要的訪問(wèn)周期是不同的。
[0033](3)破解配置模塊主要的功能主要是根據(jù)每個(gè)GPU計(jì)算節(jié)點(diǎn)中每張GPU卡實(shí)際的參數(shù)信息來(lái)設(shè)置破解的配置參數(shù),主要包括GPU設(shè)備端的線程格、線程塊以及線程數(shù)量進(jìn)行設(shè)置,這三個(gè)參數(shù)的設(shè)置將直接決定GPU卡的破解性能。
[0034](4) 口令生成模塊根據(jù)偏移量、GPU線程ID號(hào)以及字符集長(zhǎng)度這三個(gè)參數(shù)來(lái)生成口令,這樣生成算法保證了每個(gè)線程生成的口令都是唯一的,如圖3所示的口令生成模塊的生成示意圖。其中偏移量是和用戶(hù)輸入的口令長(zhǎng)度、GPU卡的ID號(hào)、破解輪數(shù)以及每張GPU卡一次性可以窮舉的口令數(shù)量這些參數(shù)來(lái)生成的。此外,這個(gè)口令生成模塊保證了每個(gè)GPU線程在每次產(chǎn)生的口令都是唯一的,并且能遍歷口令區(qū)間中的所有口令。
[0035]破解過(guò)程如圖4所示,在整個(gè)破解過(guò)程中所需要的參數(shù)SSID、AP_MAC、STA_MAC、SNonce、ANonce、MIC以及口令passphrase。除了 passphrase是口令生成模塊產(chǎn)生的之外,其它的參數(shù)都是控制節(jié)點(diǎn)從待破解數(shù)據(jù)包中提取的破解特征值。SSID、AP_MAC、STA_MAC、SNonce、ANonce這些特征值和passphrase是用于產(chǎn)生一個(gè)臨時(shí)的MIC_TMP值,這個(gè)MIC_TMP值用于和MIC值進(jìn)行比對(duì),如果相同則認(rèn)為passphrase為正確的口令。
[0036]整個(gè)驗(yàn)證過(guò)程如圖4所示,首先SSID和passphrase作為pdkdf2_SHAl函數(shù)的輸入?yún)?shù)來(lái)生成一個(gè)預(yù)共享密鑰PSK,這個(gè)PSK的值等同于預(yù)共享主密鑰PMK,其中SSID表示W(wǎng)PA/WPA2接入點(diǎn)的名稱(chēng),passphrase表示口令生成模塊產(chǎn)生的口令。然后,產(chǎn)生的PMK和STA_MAC、AP_MAC、SNonce、ANonce 通過(guò) SHAl_prf 生成一個(gè) PTK,取 PTK 的前 16 個(gè)字節(jié)即為MIC_KEY,最后通過(guò)HMAC_MD5或者HMAC-SHA1生成最后的MIC_TMP值。
[0037]其具體可以為:1.根據(jù)破解口令passphrase,接入點(diǎn)的名稱(chēng)SSID生成PMK,即PMK=pdkdf2_SHAl (passphrase, SSID, SSID length, 4096) ;2.根據(jù)數(shù)據(jù)包中有效的字段信息計(jì)算 PTK,即 PTK = PRF-X (PMK, Len (PMK), “Pairwise key expansion”,Min (AA, SA)
I Max (AA, SA) | | Min (ANonce, SNonce) | | Max (ANonce, SNonce)) ;3.取PTK 的前 16 個(gè)字節(jié)即為 MIC Key,使用 MIC Key 計(jì)算 EAP0L 報(bào)文的 MIC_TMP,即 MIC_TMP = HMAC_MD5 (MICKey, 16, 802.lx data)。[0038]更進(jìn)一步地,由于每個(gè)線程都會(huì)計(jì)算出一個(gè)MIC_KEY值,并將此MIC_KEY值與正確的MIC進(jìn)行比對(duì),因此正確的MIC值會(huì)被每個(gè)GPU線程反復(fù)地讀取,造成頻繁地訪問(wèn)內(nèi)存,從而會(huì)影響破解性能。因此優(yōu)選的方法是將MIC值寫(xiě)到GPU的常量?jī)?nèi)存當(dāng)中,而SSID、AP_MAC、STA_MAC、SNonce、ANonce這些變量只需要在GPU計(jì)算節(jié)點(diǎn)準(zhǔn)備破解的時(shí)候一次性的傳輸?shù)紾PU設(shè)備端,線程不需要經(jīng)常讀取,因此直接將這些特征值寫(xiě)到GPU的全局內(nèi)存里面即可。
[0039]我們可以將線程塊的數(shù)量設(shè)置為多核流處理器個(gè)數(shù)的整數(shù)倍,并將線程數(shù)量設(shè)置為多核流處理器CUDA核心個(gè)數(shù)的整數(shù)倍。GPU芯片中的每個(gè)線程塊是在一個(gè)多核流處理器SM (Streaming Multiprocessor)中運(yùn)行的,而每個(gè)線程塊在運(yùn)行時(shí)都是被劃分為一個(gè)warp來(lái)進(jìn)行的,每個(gè)warp中有32個(gè)線程。為了保證線程的最大并行化,就應(yīng)保證在每個(gè)多核流處理器中同時(shí)有大量的線程運(yùn)行,在NVIDIA公司目前最新的GPU K20K20中有13個(gè)多核流處理器,因此在我們將線程塊數(shù)量的值設(shè)置為13的倍數(shù)。與此同時(shí),每個(gè)SM中有192個(gè)CUDA核心,每個(gè)線程都運(yùn)行在一個(gè)CUDA核心當(dāng)中,因此我們將線程數(shù)量設(shè)置為192的倍數(shù)。一個(gè)warp是最基本的調(diào)度單位,而大量的warp數(shù)量可以隱藏讀寫(xiě)內(nèi)存帶來(lái)的延遲,因此在滿(mǎn)足上面兩個(gè)條件的基礎(chǔ)上我們應(yīng)保證線程的總數(shù)盡量大。這樣,在一個(gè)時(shí)間點(diǎn)上就可以保證每個(gè)SM中的CUDA核心中都有線程在運(yùn)行,從而保證了并行的最大化。還可以通過(guò)修改GPU卡的編譯選項(xiàng)將計(jì)算能力設(shè)定為3.5以最大化地利用其計(jì)算性能。NVIDIA公司的GPU卡自問(wèn)世一來(lái)就一直在進(jìn)行體系結(jié)構(gòu)的優(yōu)化。從第一代的Tesla架構(gòu)、第二代的Fermi架構(gòu)一直到第三代的Kepler架構(gòu),計(jì)算性能在不斷的提升,同時(shí)也不斷改進(jìn)編譯器來(lái)優(yōu)化GPU設(shè)備端的代碼。我們通過(guò)修改編譯選項(xiàng)將計(jì)算能力設(shè)定為3.5以最大化地利用其計(jì)算性能。同時(shí)還包括內(nèi)存的對(duì)齊訪問(wèn),從而減少GPU端函數(shù)的調(diào)用。
[0040]上述的實(shí)施例中所給出的系數(shù)和參數(shù),是提供給本領(lǐng)域的技術(shù)人員來(lái)實(shí)現(xiàn)或使用發(fā)明的,發(fā)明并不限定僅取前述公開(kāi)的數(shù)值,在不脫離發(fā)明的思想的情況下,本領(lǐng)域的技術(shù)人員可以對(duì)上述實(shí)施例作出種種修改或調(diào)整,因而發(fā)明的保護(hù)范圍并不被上述實(shí)施例所限,而應(yīng)該是符合權(quán)利要求書(shū)提到的創(chuàng)新性特征的最大范圍。
【權(quán)利要求】
1.一種基于GPU集群的WPA共享密鑰破解系統(tǒng),其特征在于具體包括一個(gè)控制節(jié)點(diǎn)和多個(gè)GPU計(jì)算節(jié)點(diǎn),所述控制節(jié)點(diǎn)包括用戶(hù)交互模塊、特征值提取模塊和口令空間劃分模塊;所述控制節(jié)點(diǎn)截獲WPA數(shù)據(jù)包,將WPA數(shù)據(jù)包發(fā)送到特征值提取模塊,特征值提取模塊提取出WPA數(shù)據(jù)包中的破解特征值,其中破解特征值包括接入點(diǎn)的名稱(chēng)SSID、接入點(diǎn)的MAC地址AP_MAC、客戶(hù)端的MAC地址STA_MAC、兩個(gè)隨機(jī)數(shù)SNonce和Anonce、以及校驗(yàn)參數(shù)MIC ;所述控制節(jié)點(diǎn)的用戶(hù)交互模塊用于接收用戶(hù)定義的破解口令的范圍;所述口令空間劃分模塊根據(jù)接收的破解口令的范圍給每個(gè)GPU計(jì)算節(jié)點(diǎn)劃分一定范圍的口令區(qū)間,并通過(guò)消息傳遞接口 MPI傳送給每個(gè)對(duì)應(yīng)的GPU計(jì)算節(jié)點(diǎn);GPU計(jì)算節(jié)點(diǎn)根據(jù)接入點(diǎn)的名稱(chēng)SSID、接入點(diǎn)的MAC地址AP_MAC、客戶(hù)端的MAC地址STA_MAC、兩個(gè)隨機(jī)數(shù)SNonce和Anonce、以及分配給GPU計(jì)算節(jié)點(diǎn)的破解口令passphrase進(jìn)行計(jì)算得到臨時(shí)的校驗(yàn)參數(shù)MIC_TMP,當(dāng)臨時(shí)的校驗(yàn)參數(shù)MIC_TMP與校驗(yàn)參數(shù)MIC值相同時(shí),則認(rèn)為此破解口令passphrase為共享密鑰,并將破解的結(jié)果返回給控制節(jié)點(diǎn),密碼破解完成;當(dāng)計(jì)算得到的臨時(shí)的校驗(yàn)參數(shù)MIC_TMP與校驗(yàn)參數(shù)MIC值不相同時(shí),則更換破解口令,以新的破解口令進(jìn)行計(jì)算得到新的臨時(shí)的校驗(yàn)參數(shù),直到所有的破解口令逐一計(jì)算并比較后完成。
2.如權(quán)利要求1所述的基于GPU集群的WPA共享密鑰破解系統(tǒng),其特征在于所述GPU計(jì)算節(jié)點(diǎn)包括主機(jī)端CPU和設(shè)備端GPU ;所述所述主機(jī)端CPU用于為GPU設(shè)備端破解進(jìn)行前期破解數(shù)據(jù)準(zhǔn)備和后期破解結(jié)果收集;所述設(shè)備端GPU用于破解計(jì)算。
3.如權(quán)利要求2所述的基于GPU集群的WPA共享密鑰破解系統(tǒng),其特征在于所述主機(jī)端CPU包括初始化模塊、數(shù)據(jù)傳輸模塊和破解配置模塊;所述初始化模塊用于初始化CPU主機(jī)端的線程,所述數(shù)據(jù)傳輸模塊用于將從控制節(jié)點(diǎn)中接收到的破解特征值通過(guò)PCIE總線從CPU主機(jī)端傳遞到GPU設(shè)備端,所述破解配置模塊用于根據(jù)每個(gè)GPU計(jì)算節(jié)點(diǎn)中每張GPU卡實(shí)際的參數(shù)信息來(lái)設(shè)置破解的配置參數(shù)。
4.如權(quán)利要求3所述的基于GPU集群的WPA共享密鑰破解系統(tǒng),其特征在于所述設(shè)備端GPU包括口令生成模塊和口令破解模塊,所述口令生成模塊根據(jù)偏移量、GPU線程ID號(hào)以及字符集長(zhǎng)度生成破解口令,所述口令破解模塊根據(jù)破解特征值和破解口令,計(jì)算得到校驗(yàn)參數(shù)MIC_TMP。
5.如權(quán)利要求1所述的基于GPU集群的WPA共享密鑰破解系統(tǒng),其特征在于所述口令空間劃分模塊劃分口令的過(guò)程具體為使用靜態(tài)負(fù)載均衡的方法為每個(gè)GPU計(jì)算節(jié)點(diǎn)中的每張GPU卡劃分一定范圍的口令區(qū)間。
6.如權(quán)利要求1所述的基于GPU集群的WPA共享密鑰破解系統(tǒng),其特征在于所述MIC值寫(xiě)到GPU的常量?jī)?nèi)存中,接入點(diǎn)的名稱(chēng)SSID、接入點(diǎn)的MAC地址AP_MAC、客戶(hù)端的MAC地址STA_MAC以及兩個(gè)隨機(jī)數(shù)SNonce和Anonce寫(xiě)入GPU的全局內(nèi)存中。
7.如權(quán)利要求4所述的基于GPU集群的WPA共享密鑰破解系統(tǒng),其特征在于所述根據(jù)破解特征值和破解口令,計(jì)算得到校驗(yàn)參數(shù)MIC_TMP的具體過(guò)程為:首先SSID和passphrase作為pdkdf2_SHAl函數(shù)的輸入?yún)?shù)生成預(yù)共享密鑰PSK,PSK的值等同于預(yù)共享主密鑰 PMK ;然后,產(chǎn)生的 PMK 和 STA_MAC、AP_MAC、SNonce、ANonce 通過(guò) SHAl_prf 生成一個(gè)PTK,取PTK的前16個(gè)字節(jié)即為MIC_KEY,最后通過(guò)HMAC_MD5或者HMAC-SHA1生成最后的 MIC_TMP 值。
【文檔編號(hào)】H04L9/08GK103684754SQ201310645391
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年12月3日 優(yōu)先權(quán)日:2013年12月3日
【發(fā)明者】吉慶兵, 于飛, 蘭天, 張李軍 申請(qǐng)人:中國(guó)電子科技集團(tuán)公司第三十研究所
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1