Blurry Box 密码技术

Share:

Kerckhoffs’ Principle

奥古斯特· 柯克霍夫早在19世纪就提出:“即使密码系统的任何细节已为人悉知,只要密匙(key,又称金钥或密钥)未泄漏,它也应是安全的。” 该理论被称为柯克霍夫原则。这意味着一个有效的安全方法并不需要绝对保密。原因是什么呢?

德国威步多年来一直坚信该理论。当市面上其他加密狗都基于专有算法设计时,威步已经开始使用著名的公有FEAL算法,并在1992年,首次推出WibuKey产品时,即在WibuBox产品使用手册中即公布了密钥源的组成。一些未公开的密码系统早在初期就已经被破解,WibuKey则经受住了时间的考验,一直到40位密钥(由于输出限制使用)因为太简单才可以暴力破解。目前WibuBox使用长为64位的密钥,至今仍未被破解。随后在2003年,CodeMeter首次发布,其采用的是AES 128位加密算法,该算法也是公开算法。同样CmDongle至今仍未被破解。

概念

与在加密锁(Dongle)中执行的加密过程不同,迄今为止,尚未有将安全保护机制集成到软件中的方法被公开发表。这导致了所谓的“隐晦式安全”(Security by Obscurity),与柯克霍夫原则(Kerckhoffs' Principle)的主张完全背道而驰。这些未公开的方法既无法进行评估,也无法相互比较。在此背景下,威步一直通过其讲座与活动,为业界提供探讨 CodeMeter Protection Suite 方法与功能的机会。

借助 Blurry Box,密码技术被提升到了一个全新的高度。Blurry Box 密码技术提供了一种完全基于公开方法的软件保护方案,因此它是可以被客观评估和比较的。毋庸置疑,Blurry Box 密码技术完全可以与 CodeMeter Protection Suite 的传统方法相结合。

Blurry Box 密码技术的基本原理是利用加密锁(Dongle)中的一个或多个安全密钥,并结合软件通常具有高度复杂性这一事实。其目标是使非法复制软件所耗费的精力,高于完全重写同一款软件所需的工作量。本质上,如果攻击者了解某款特定软件的工作原理,没有人能阻止他们直接开发出一款类似的软件——能够阻止他们的,唯有其背后所需的庞大工作量。

方法

Blurry Box 密码技术由七种方法组成,这些方法极大地增加了制造盗版所需的工作量,以至于从零开始重新开发该软件反而会变得更简单、更快捷。

变体的创建

为了增加软件的复杂性,软件函数(Functions)被复制为多个函数变体。封装函数(Wrapper function)会根据给定的函数输入参数,选择执行哪一个变体。

变体的修改

对各个变体进行修改,使其仅在对每个变体有效的数值范围内工作。这可以防止攻击者通过修补(Patching)封装函数来使其每次都执行同一个变体。

变体的加密

所有变体均被加密,以阻止攻击者在未先进行解密的情况下对代码进行逆向工程。

插入陷阱

除了已经生成的变体之外,还会插入更多的变体作为陷阱并进行加密。陷阱中包含一个锁定代码,这意味着如果通过加密锁(Dongle)解密该陷阱,加密锁将会自锁,并且无法再用于解密。这可防止攻击者在不进行逆向工程的情况下尝试解密所有方法。

在加密锁中选择变体

封装函数利用加密锁来选择变体。为此,输入参数会被发送至加密锁,并返回需要使用的变体。这使得攻击者不再能够仅仅通过对解密后的封装函数进行逆向工程来区分所需的变体。他必须针对所有可能的输入参数运行代码,才能绝对确定地精准定位所需的变体。

加密锁中的状态机

开发者知晓函数只能按照其设定的顺序执行。上一次的解密方法将作为一种状态(State)存储在加密锁中。随后的下一次解密将检查是否满足此状态。如果不满足,则会触发陷阱,以防止攻击者在软件的任何特定点尝试所有变体。他将不得不每次都退回到起点,这进一步增加了攻击的复杂性。

解密延迟

在正常运行状态下,每 30 秒只能执行特定次数的解密操作。该数值作为解密阈值存储在加密锁中。加密锁会据此控制其解密工作的节奏。除了使整个过程变得更加复杂之外,这种机制还能有效延缓任何攻击者的行动步伐。

总结

Blurry Box 密码技术使用了七种已公开的方法,这些方法极大地增加了攻击成功所需的复杂性与时间消耗。最终,对于潜在的攻击者而言,从零开始开发一款类似的软件反而会更简单且成本更低。

Blurry Box 密码技术完全可以与 CodeMeter Protection Suite 中典型的反调试(Anti-debug)与混淆(Obfuscation)方法相结合。借助 Blurry Box,软件保护变得可衡量且可比较。无需盲目信任:您所购买的是一款经过彻底测试并被业内专家广泛认可的解决方案。

 

获取 CodeMeter 专属定制报价?只需回答几个简单问题,技术团队将尽快跟进,并提供所需的全部详尽资料。

提交

To top