一个水桶无论有多高,它盛水的高度取决于其中最低的那块木板。这样说来,加密狗的作用不止一点,相反,还有很大的发挥空间。
又称水桶原理或短板理论,水桶短板管理理论,所谓“水桶理论”也即“水桶定律”,其核心内容为:一只水桶盛水的多少,并不取决于桶壁上最高的那块木块,而恰恰取决于桶壁上最短的那块。
根据这一核心内容,“水桶理论”还有两个推论:其一,只有桶壁上的所有木板都足够高,那水桶才能盛满水。
其二,只要这个水桶里有一块不够高度,水桶里的水就不可能是满的。
那么软件加密又是由哪些板块组成的呢?01 软件加密的第一块板——代码加密软件代码包含软件的知识产权及核心技术。
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程序集,提供真正意义的软件代码加密,防止软件代码被反编译、被逆向工程。
保护好了软件代码并不意味着软件版权就安全了。
由于软件代码反编译及逆向工程需要有大量的破解技术及经验,要求精通汇编语言,真正意义破解源代码的成本高之又高,破解花费的时间也会非常长。
因此无论是破解者本身或者是购买破解版别有用心的“软件商”都不愿意花费大价钱或者花费可能一年的时间去破解代码本身。
破解授权或者复制硬件狗就成为相对成本低的破解方式。
因此授权的安全性成为软件加密安全木桶的另外一块板。
02 软件加密的第二块板——授权安全相对而言,如果只是采用注册机的方式进行软件授权,对破解者来说就是小菜一碟。
破解者随意破解一下注册机即可轻而易举的获得注册码,从而获得盗版授权。
普通单片机或非安全智能卡的硬件复制成本从原来的上万元到现在的几百元。
采用普通加密狗存放授权则成为软件加密的短板。
codemeter以32位安全智能卡芯片为硬件基础,以其独有的硬件安全特性和创新的设计思路,充分保证了加密锁的安全。
由于codemeter硬件本身几乎能够抵制所有的知名的硬件攻击如dpa等技术,以及codemeter本身的硬件随机发生器能够产生随机安全密钥,因此保证了存储codemeter硬件中的密钥绝对安全。
很多软件商认为只要用最安全的硬件狗(锁)就可以万无一失了,或者有些软件加密工程师超强的外壳工具,但是最终的结果都是软件很快被破解。
花费了时间、花费了精力、花费了金钱,最终的结果可能是不堪一击!这是因为软件代码安全保护完全可以运用到木桶定律。
一套真正安全的软件保护方案是不应该出现任何短板的,否则花再长时间做的方案都将功亏一篑。
那么还有哪块板可以帮助我们解决问题呢?03 软件加密的第三块板——软件通讯国内外技术领先的硬件加密锁(狗)厂商摒弃了原有的单片机作为加密芯片,取而代之的是各类专用asic芯片、安全智能卡芯片,使得硬件克隆成本一再提高,从而保证了加密硬件的安全。
破解者则会通过大量的经验寻找软件加密的另一板块:通讯通道。
目前加密锁(加密狗)的解密破解工作主要集中在应用程序与加密动态库之间的通讯拦截,这种方法成本较低。
由于加密锁(加密狗)的应用程序接口(api)基本上都是公开的,因此从网上可以很容易下载到加密狗的编程接口api、用户手册和其它相关资料,还可以了解加密狗技术的最新进展。
很多硬件狗的dll或驱动已被破解者熟知,网上各类加密模拟器层出不穷。
有了这些模拟器,即使新手工程师也可能轻松操作。
你会发现,原来不起眼的软件通讯通道极有可能成为软件加密环节中的“短板”。
codemeter支持128位aes对称算,224位ecc和2048位rsa非对称算法对。
软件与codemeter加密锁之间的通讯采用了aes算法、tdes算法,从而避免了通讯数据被侦听,使得二者之前的通讯不可能被模拟;codemeter加密锁与cmexe之间运用了ecc、rsa公私钥认证技术,从而真正达到加密锁不能被替换的目的;wibucmdll被axprotector静态打包到软件当中,破解者无从分析dll库,从而达到了非常高的加密效果;另外codemeter提供wupienginelib(静态库),可以完全封装到应用程序中,可以更好的提高加密强度。
04 软件加密的第四块板——授权管理安全通常软件加密及软件授权为两个独立的环节。
烧写授权俗称“烧狗”,传统的加密狗都会打上开发商编码,成为某些软件独有定制的硬件,由于部分加密狗的代理商唯利是图,监守自盗,从源头对软件进行盗版。
另外,部分授权以文件形式存在,通过工具导入到硬件锁硬件之中,由于管理不善,该文件会流失出去,代价而沽。
随便买一只相同型号的硬件狗即可导入该授权文件,即得到所谓的“正版狗”。
可见,授权管理,即烧狗环节一不小心也会成为软件加密的“短板”,而且危害之大比代码破解、模拟工具要大得多。
codemeter采用母锁授权的管理方式,只有拥有母锁才能够加密、写授权或者修改授权。
一旦母锁失窃或者内部流失,可以要求复制相同码的母锁,只需要改变一些参数,即可对软件重新加密,而流失的母锁不能再写授权,从而从源头保证授权的安全。
有了代码加密、授权安全、通讯通道安全及授权管理安全这四块“板”,相信木桶可以放心的盛水,软件可以放心地应用于各个领域,软件企业不再担心知识产权的安全问题。
符合“木桶理论”的加密安全方案真正为软件产品打造一道坚固的铜墙铁壁。