新聞資訊
加密狗原理及如何對抗破解
更新時間:2018-07-06 14:15:43 點擊量:

簡介
"加密狗"是一種插在計算機USB口或者主板上的軟硬件結合的加密產(chǎn)品(也有一種是用一個加密的文件存放在電腦硬盤特殊位置,在電腦中虛擬出一個加密狗,俗稱軟鎖)。一般都有幾百或幾k字節(jié)的非易失性存儲空間可供讀寫,來檢查加密狗是否插在接口上;或者直接用加密狗附帶的工具加密自己EXE和DLL文件(外殼加密)。這樣,軟件開發(fā)者可以在軟件中設置多處軟件鎖,利用加密狗做為鑰匙來打開這些鎖;如果沒插加密狗或加密狗不對應,軟件將不能正常執(zhí)行。
加密狗的工作原理:
我們舉個例子說明單片機算法的使用。 比如一段程序中有這樣一句:A=Fx(3)。程序要根據(jù)常量3來得到變量A的值。于是,我們就可以把原程序這樣改寫:A=Fx(DogConvert(1)-12342)。那么原程序中就不會出現(xiàn)常量3,而取之以DogConvert(1)-12342。這樣,只有軟件編寫者才知道實際調(diào)用的常量是3。而如果沒有加密狗,DogConvert函數(shù)就不能返回正確結果,結果算式A=Fx(DogConvert(1)-12342)結果也肯定不會正確。這種使盜版用戶得不到軟件使用價值的加密方式,要比一發(fā)現(xiàn)非法使用就警告、中止的加密方式更溫和、更隱蔽、更令解密者難以琢磨。此外,加密狗還有讀寫函數(shù)可以用作對加密狗內(nèi)部的存儲器的讀寫。于是我們可以把上算式中的12342也寫到軟件加密狗的存儲器中去,令A的值完全取決于DogConvert()和DogRead()函數(shù)的結果,令解密難上加難。
加密狗如何對抗破解
- -硬件對抗復制
現(xiàn)在市面上的加密狗廠家,一般采用購買第三方加密芯片的方式來生產(chǎn)加密狗,這種方式的優(yōu)點是成本比較低,技術也相對成熟。第三方芯片一般都是大廠生產(chǎn),有很好的防硬件克隆手段,但使用這種芯片的用戶量非常大,使用方法也是公開的,受攻擊的概率也很高,難免有不法分子在利益驅(qū)動下投入很大成本對這種芯片進行破解,一旦芯片被破,受影響的是所有使用該芯片的用戶,包括加密狗。還有一些有實力的廠家會自己研發(fā)芯片,比如金雅拓生產(chǎn)的加密狗,它是自己設計的加密狗芯片,再找外協(xié)廠生產(chǎn)加工,這種芯片產(chǎn)量極低,只應用于加密狗,市面上是單獨買不到了,大大降低了受攻擊的概率,當然這樣的做法是增加了加密狗的成本。

- -通訊層對抗仿真破解
早期的加密狗,一般采用8位單片機作為處理器,受運算能力限制,加密狗廠家通常采用自己定義的一個算法,如彩虹天地加密狗用隨機噪聲來干擾破解者的跟蹤。隨著芯片技術技術的不斷完善,加密狗所使用的芯片也由原來的單片機改為智能卡芯片,所使用的算法也跟主流的加密算法相同。目前最新的圣天諾LDK加密狗就是采用32位智能卡芯片,使用的是雙算法白盒加密安全通道技術,在通訊中同時采用128位AES算法及160位ECC算法作為通訊加密手段,每一次數(shù)據(jù)傳輸都用128位隨機密鑰AES算法對其加密,而這個隨機的密鑰又用160位ECC算法加密,在隨后傳輸。由于ECC是非對稱算法,加密和解密的密鑰并不相同,如果其中一組密鑰可以用黑客手段從內(nèi)存中獲得,那么另外一組燒錄在硬件狗中的密鑰,黑客無法獲得。無法獲得兩對ECC密鑰,也就無法破解ECC加密的數(shù)據(jù),從而無法獲得AES密鑰,也就無法破解整個通訊過程。這一雙算法安全通道技術徹底解決了通訊監(jiān)聽破解的難題,傳統(tǒng)的對稱算法加密,黑客只要從內(nèi)存中獲得其加密密鑰,就可以破解整個通訊過程。
- -應用層對抗分析破解
理論上來說,所有加密過的數(shù)據(jù),在內(nèi)存中都將被解密還原,對于黑客來說,他可以不去理會通訊層有多復雜的算法,而是在內(nèi)存中找到加密狗的最終的解密數(shù)據(jù),或者找到程序識別加密狗后的跳轉(zhuǎn)算法,將它修改為一個永遠為“真”值的識別結果,以達到繞開加密狗的目的。基于這種破解理論,加密狗提供的外殼加密工具會很好地彌補這個漏洞。
外殼加密,即對用戶已經(jīng)編譯生成的exe或dll,自動加了一層保護殼,程序運行時先運行殼代碼,殼代碼有一套加密狗核驗和干擾指令組成,同時加入了大量的垃圾跳轉(zhuǎn)代碼在里面,達到迷惑跟蹤者的作用,即所謂的迷宮技術。通常一個正常的可執(zhí)行文件經(jīng)外殼加密后,其文件大小會增加好幾倍,就是因為加入了很多的干擾指令。程序經(jīng)過外殼加密后,原來一個解密點或者一個加密狗判斷點,會被擴展到幾十幾百個點,最終的迷宮出口還是只有一個,黑客要把所有的干擾代碼全部理清了才能找到程序的出口,其工作量是可想而知的?,F(xiàn)在很多外殼加密工具,其外殼部分代碼還與程序?qū)嶋H代碼還有對應的相互校驗機制,以對抗脫殼工具的暴力脫殼,外殼被脫掉了,受保護的實際代碼處于加密狀態(tài),無法正常運行。最新版的圣天諾LDK7.8外殼加密工具還引入了一個“自毀”裝置,它能判斷出程序是正常運行還是被跟蹤運行,當程序發(fā)現(xiàn)當前運行環(huán)境有被跟蹤的情況,就會自動鎖住加密狗,使它處于失效狀態(tài),失效后的加密狗必須由開發(fā)商才能解鎖,這樣就大大增加黑客破解的風險。
關于廣州唯賽
廣州市唯賽計算機有限公司是金雅拓軟件貨幣化產(chǎn)品中國區(qū)核心代理商,已有十余年從業(yè)經(jīng)驗,為軟件開發(fā)商、系統(tǒng)集成商以及設備制造商提供專業(yè)的軟件加密保護方案,主要的產(chǎn)品有:賽孚耐加密狗、圣天諾加密鎖等。