新聞資訊
加密狗原理及如何對抗破解
更新時(shí)間:2018-07-06 14:15:43 點(diǎn)擊量:
簡介
"加密狗"是一種插在計(jì)算機(jī)USB口或者主板上的軟硬件結(jié)合的加密產(chǎn)品(也有一種是用一個(gè)加密的文件存放在電腦硬盤特殊位置,在電腦中虛擬出一個(gè)加密狗,俗稱軟鎖)。一般都有幾百或幾k字節(jié)的非易失性存儲空間可供讀寫,來檢查加密狗是否插在接口上;或者直接用加密狗附帶的工具加密自己EXE和DLL文件(外殼加密)。這樣,軟件開發(fā)者可以在軟件中設(shè)置多處軟件鎖,利用加密狗做為鑰匙來打開這些鎖;如果沒插加密狗或加密狗不對應(yīng),軟件將不能正常執(zhí)行。
加密狗的工作原理:
我們舉個(gè)例子說明單片機(jī)算法的使用。 比如一段程序中有這樣一句:A=Fx(3)。程序要根據(jù)常量3來得到變量A的值。于是,我們就可以把原程序這樣改寫:A=Fx(DogConvert(1)-12342)。那么原程序中就不會(huì)出現(xiàn)常量3,而取之以DogConvert(1)-12342。這樣,只有軟件編寫者才知道實(shí)際調(diào)用的常量是3。而如果沒有加密狗,DogConvert函數(shù)就不能返回正確結(jié)果,結(jié)果算式A=Fx(DogConvert(1)-12342)結(jié)果也肯定不會(huì)正確。這種使盜版用戶得不到軟件使用價(jià)值的加密方式,要比一發(fā)現(xiàn)非法使用就警告、中止的加密方式更溫和、更隱蔽、更令解密者難以琢磨。此外,加密狗還有讀寫函數(shù)可以用作對加密狗內(nèi)部的存儲器的讀寫。于是我們可以把上算式中的12342也寫到軟件加密狗的存儲器中去,令A(yù)的值完全取決于DogConvert()和DogRead()函數(shù)的結(jié)果,令解密難上加難。
加密狗如何對抗破解
- -硬件對抗復(fù)制
現(xiàn)在市面上的加密狗廠家,一般采用購買第三方加密芯片的方式來生產(chǎn)加密狗,這種方式的優(yōu)點(diǎn)是成本比較低,技術(shù)也相對成熟。第三方芯片一般都是大廠生產(chǎn),有很好的防硬件克隆手段,但使用這種芯片的用戶量非常大,使用方法也是公開的,受攻擊的概率也很高,難免有不法分子在利益驅(qū)動(dòng)下投入很大成本對這種芯片進(jìn)行破解,一旦芯片被破,受影響的是所有使用該芯片的用戶,包括加密狗。還有一些有實(shí)力的廠家會(huì)自己研發(fā)芯片,比如金雅拓生產(chǎn)的加密狗,它是自己設(shè)計(jì)的加密狗芯片,再找外協(xié)廠生產(chǎn)加工,這種芯片產(chǎn)量極低,只應(yīng)用于加密狗,市面上是單獨(dú)買不到了,大大降低了受攻擊的概率,當(dāng)然這樣的做法是增加了加密狗的成本。
- -通訊層對抗仿真破解
早期的加密狗,一般采用8位單片機(jī)作為處理器,受運(yùn)算能力限制,加密狗廠家通常采用自己定義的一個(gè)算法,如彩虹天地加密狗用隨機(jī)噪聲來干擾破解者的跟蹤。隨著芯片技術(shù)技術(shù)的不斷完善,加密狗所使用的芯片也由原來的單片機(jī)改為智能卡芯片,所使用的算法也跟主流的加密算法相同。目前最新的圣天諾LDK加密狗就是采用32位智能卡芯片,使用的是雙算法白盒加密安全通道技術(shù),在通訊中同時(shí)采用128位AES算法及160位ECC算法作為通訊加密手段,每一次數(shù)據(jù)傳輸都用128位隨機(jī)密鑰AES算法對其加密,而這個(gè)隨機(jī)的密鑰又用160位ECC算法加密,在隨后傳輸。由于ECC是非對稱算法,加密和解密的密鑰并不相同,如果其中一組密鑰可以用黑客手段從內(nèi)存中獲得,那么另外一組燒錄在硬件狗中的密鑰,黑客無法獲得。無法獲得兩對ECC密鑰,也就無法破解ECC加密的數(shù)據(jù),從而無法獲得AES密鑰,也就無法破解整個(gè)通訊過程。這一雙算法安全通道技術(shù)徹底解決了通訊監(jiān)聽破解的難題,傳統(tǒng)的對稱算法加密,黑客只要從內(nèi)存中獲得其加密密鑰,就可以破解整個(gè)通訊過程。
- -應(yīng)用層對抗分析破解
理論上來說,所有加密過的數(shù)據(jù),在內(nèi)存中都將被解密還原,對于黑客來說,他可以不去理會(huì)通訊層有多復(fù)雜的算法,而是在內(nèi)存中找到加密狗的最終的解密數(shù)據(jù),或者找到程序識別加密狗后的跳轉(zhuǎn)算法,將它修改為一個(gè)永遠(yuǎn)為“真”值的識別結(jié)果,以達(dá)到繞開加密狗的目的。基于這種破解理論,加密狗提供的外殼加密工具會(huì)很好地彌補(bǔ)這個(gè)漏洞。
外殼加密,即對用戶已經(jīng)編譯生成的exe或dll,自動(dòng)加了一層保護(hù)殼,程序運(yùn)行時(shí)先運(yùn)行殼代碼,殼代碼有一套加密狗核驗(yàn)和干擾指令組成,同時(shí)加入了大量的垃圾跳轉(zhuǎn)代碼在里面,達(dá)到迷惑跟蹤者的作用,即所謂的迷宮技術(shù)。通常一個(gè)正常的可執(zhí)行文件經(jīng)外殼加密后,其文件大小會(huì)增加好幾倍,就是因?yàn)榧尤肓撕芏嗟母蓴_指令。程序經(jīng)過外殼加密后,原來一個(gè)解密點(diǎn)或者一個(gè)加密狗判斷點(diǎn),會(huì)被擴(kuò)展到幾十幾百個(gè)點(diǎn),最終的迷宮出口還是只有一個(gè),黑客要把所有的干擾代碼全部理清了才能找到程序的出口,其工作量是可想而知的?,F(xiàn)在很多外殼加密工具,其外殼部分代碼還與程序?qū)嶋H代碼還有對應(yīng)的相互校驗(yàn)機(jī)制,以對抗脫殼工具的暴力脫殼,外殼被脫掉了,受保護(hù)的實(shí)際代碼處于加密狀態(tài),無法正常運(yùn)行。最新版的圣天諾LDK7.8外殼加密工具還引入了一個(gè)“自毀”裝置,它能判斷出程序是正常運(yùn)行還是被跟蹤運(yùn)行,當(dāng)程序發(fā)現(xiàn)當(dāng)前運(yùn)行環(huán)境有被跟蹤的情況,就會(huì)自動(dòng)鎖住加密狗,使它處于失效狀態(tài),失效后的加密狗必須由開發(fā)商才能解鎖,這樣就大大增加黑客破解的風(fēng)險(xiǎn)。
關(guān)于廣州唯賽
廣州市唯賽計(jì)算機(jī)有限公司是金雅拓軟件貨幣化產(chǎn)品中國區(qū)核心代理商,已有十余年從業(yè)經(jīng)驗(yàn),為軟件開發(fā)商、系統(tǒng)集成商以及設(shè)備制造商提供專業(yè)的軟件加密保護(hù)方案,主要的產(chǎn)品有:賽孚耐加密狗、圣天諾加密鎖等。