一個水桶無論有多高,它盛水的高度取決於其中最低的那塊木板。又稱水桶原理或短板理論,水桶短板管理理論,所謂「水桶理論」也即「水桶定律」,其核心內容為:一隻水桶盛水的多少,並不取決於桶壁上最高的那塊木塊,而恰恰取決於桶壁上最短的那塊。根據這一核心內容,「水桶理論」還有兩個推論:其一,只有桶壁上的所有木板都足夠高,那水桶才能盛滿水。其二,只要這個水桶裡有一塊不夠高度,水桶裡的水就不可能是滿的。那麼軟體加密又是由哪些板塊組成的呢?
軟體加密的第一塊板---代碼加密
軟體代碼包含軟體的智慧財產權及核心技術。.Net是構架於作業系統之上的平臺,由於其解釋型的開發語言上手簡單、效率高,成為軟體開發商及程式設計師的重要開發工具。採用Reflector或ildasm可以輕而易舉的對.net程序進行反編譯,並且反編譯得到代碼也極具權威。Reflector及ildasm工具的使用無需高深的破解技術,也無需掌握深奧的彙編語言,普通程式設計師即可輕鬆掌握。而一般的破解高手則可以通過反彙編、代碼調試、逆向工程等方式破解Native程序代碼。
一旦軟體代碼被反編譯、逆向工程,則意味著軟體開發者數年的心血付諸東流。盜版者可以隨心所欲的以低價傾銷盜版軟體,讓真正的軟體開發者不再具備競爭力。或者軟體開發者的競爭對手通過破解原始碼,以非常低的成本盜取軟體開發者的獲取核心技術,從而獲得商業先機。因此代碼保護是軟體加密安全木桶中級為重要的一板。
來自德國威步信息系統的CodeMeter提供AxProtector、IxProtector、CoreAPI等加密工具,保護軟體核心代碼安全。
AxProtector外殼加密技術採用了按需解密的先進技術,不僅改變了OEP指向,並把代碼層的部份代碼進行了加密,把IAT地址重新指向,破解者如果試圖在OEP斷點處進行內存DUMP時,程序將會崩潰;同時威步的AXAN技術可以在代碼執行過程中在內存中解密該代碼,執行完畢馬上加密,這是目前安全標準中世界領先的技術。
IxProtector可以與AxProtector完美結合,部分代碼或函數在內存中按需解密、即時加密,能真正防止代碼在內存段中被Dump。AxProtector及IxProtector支持Native 程序、.net程序集或Java程序集,提供真正意義的軟體代碼加密,防止軟體代碼被反編譯、被逆向工程。
保護好了軟體代碼並不意味著軟體版權就安全了。由於軟體代碼反編譯及逆向工程需要有大量的破解技術及經驗,要求精通彙編語言,真正意義破解原始碼的成本高之又高,破解花費的時間也會非常長。因此無論是破解者本身或者是購買破解版別有用心的「軟體商」都不願意花費大價錢或者花費可能一年的時間去破解代碼本身。破解授權或者複製硬體狗就成為相對成本低的破解方式。因此授權的安全性成為軟體加密安全木桶的另外一板。
軟體加密的第二塊板----授權安全
相對而言,如果只是採用註冊機的方式進行軟體授權,對破解者來說就是小菜一碟。破解者隨意破解一下註冊機即可輕而易舉的獲得註冊碼,從而獲得盜版授權。普通單片機或非安全智慧卡的硬體複製成本從原來的上萬元到現在的3、500元。採用普通加密狗存放授權則成為軟體加密的短板。
CodeMeter以32位安全智慧卡晶片為硬體基礎,以其獨有的硬體安全特性和創新的設計思路,充分保證了加密鎖的安全。由於CodeMeter硬體本身幾乎能夠抵制所有的知名的硬體攻擊如DPA等技術,以及CodeMeter本身的硬體隨機發生器能夠產生隨機安全密鑰,因此保證了存儲CodeMeter硬體中的密鑰絕對安全。
很多軟體商認為只要用最安全的硬體狗(鎖)就可以萬無一失了,或者有些軟體加密工程師超強的外殼工具,但是最終的結果都是軟體很快被破解。花費了時間、花費了精力、花費了金錢,最終的結果可能是不堪一擊!這是因為軟體代碼安全保護完全可以運用到木桶定律。一套真正安全的軟體保護方案是不應該出現任何短板的,否則花再長時間做的方案都將功虧一簣。那麼還有哪塊板可以幫助我們解決問題呢?
軟體加密的第三塊板——通訊通道
國內外技術領先的硬體加密鎖(狗)廠商摒棄了原有的單片機作為加密晶片,取而代之的是各類專用ASIC晶片、安全智慧卡晶片,使得硬體克隆成本一再提高,從而保證了加密硬體的安全。破解者則會通過大量的經驗尋找軟體加密的另一板塊:通訊通道。目前加密鎖(加密狗)的解密破解工作主要集中在應用程式與加密動態庫之間的通訊攔截,這種方法成本較低。由於加密鎖(加密狗)的應用程式接口(API)基本上都是公開的,因此從網上可以很容易下載到加密狗的編程接口API、用戶手冊和其它相關資料,還可以了解加密狗技術的最新進展。很多硬體狗的Dll或驅動已被破解者熟知,網上各類加密模擬器層出不窮。有了這些破解高手「嘔心力作「的模擬器,即使剛畢業的菜鳥工程師也可成為」汪洋大盜「。你會發現,原來不起眼的通訊通道及有可能成為軟體加密環節中的「短板」。
CodeMeter支持128位AES對稱算,224位ECC和2048位RSA非對稱算法對。軟體與CodeMeter加密鎖之間的通訊採用了AES算法、TDES算法,從而避免了通訊數據被偵聽,使得二者之前的通訊不可能被模擬;CodeMeter加密鎖與CM.exe之間運用了ECC、RSA公私鑰認證技術,從而真正達到加密鎖不能被替換的目的;WibuCM.dll被AxProtector靜態打包到軟體當中,破解者無從分析Dll庫,從而達到了非常高的加密效果;另外CodeMeter提供WUPIEngine.lib(靜態庫),可以完全封裝到應用程式中,可以更好的提高加密強度。
軟體加密的第四塊板——授權管理安全
通常軟體加密及軟體授權為兩個獨立的環節。燒寫授權俗稱「燒狗」,傳統的加密狗都會打上開發商編碼,成為某些軟體獨有定製的硬體,由於部分加密狗的代理商唯利是圖,監守自盜,從源頭對軟體進行盜版。另外,部分授權以文件形式存在,通過工具導入到硬體鎖硬體之中,由於管理不善,該文件會流失出去,代價而沽。隨便買一隻相同型號的硬體狗即可導入該授權文件,即得到所謂的「正版狗」。可見,授權管理,即燒狗環節一不小心也會成為軟體加密的「短板」,而且危害之大比代碼破解、模擬工具要大得多。
CodeMeter採用母鎖授權的管理方式,只有擁有母鎖才能夠加密、寫授權或者修改授權。一旦母鎖失竊或者內部流失,可以要求複製相同公司碼的母鎖,只需要改變一些參數,即可對軟體重新加密,而流失的母鎖不能再寫授權,從而從源頭保證授權的安全。
有了威步的代碼加密、授權安全、通訊通道安全及授權管理安全這四塊「板」,相信木桶可以放心的盛水,軟體可以放心地應用於各個領域,軟體企業不再擔心智慧財產權的安全問題。威步作為全球技術領先的加密方案提供商,將不斷提供創新技術,為企業帶來更可靠的服務!