天天看点

深入解析CodeMeter:确保软件安全的强大工具

作者:威步上海

在当今的数字化世界中,保护你的软件以及其知识产权变得越来越重要。由于黑客技术的日新月异和破解工具的广泛传播,软件和数据安全已经成为任何组织不容忽视的问题。这就是为什么威步的CodeMeter应运而生,提供了一种高效且灵活的保护解决方案。

CodeMeter是一个高度集成的技术解决方案,旨在通过加密技术、许可管理和IP保护功能来保护您的软件产品和数据。这个系统通过使用安全存储容器,来保存和管理加密密钥,为您提供了一个高度安全的密钥存储环境。

深入解析CodeMeter:确保软件安全的强大工具

CmDongle使用AES 256位加密,以实现最优化的性能与安全性的平衡。在你想要加密软件时,会创建一个或多个伪随机软件密钥。这些密钥用来加密你的应用程序或它的部分内容。然后,这些密钥本身也被加密,并且和多个CodeMeter密钥一起存储在软件中。当应用程序运行或访问其被加密的部分时,其中一个CodeMeter密钥被选取来解密软件密钥,从而解密软件。如果缺少正确的许可证,就无法获得必要的软件密钥,也就无法解密或执行软件。

一些人可能会问,CmActLicense是否比硬件dongle更安全?CmDongle使用熟悉的USB接口,而CmActLicense可以使用不对称过程。实际上,不论是使用CmDongle,还是CmActLicense,或者CmCloudContainer,对于大量的数据加密,如应用程序,都需要使用对称加密,如AES 256位。而且,如果你希望一个安装包适用于每一个客户,那么所有许可证的密钥都必须相同。这些对称密钥通过一个不对称过程被传送到容器中,并在其中存储。

深入解析CodeMeter:确保软件安全的强大工具

然而,可能有人试图通过窃听USB接口,模拟CmDongle的行为。对此,CodeMeter也有应对之策。首先,CodeMeter Runtime与CmDongle之间的通信始终是加密的。其次,许可证总是包含一个不对称密钥,以及对称密钥。受保护的应用程序创建一个随机挑战,CmDongle必须使用私钥回应。然后,软件使用公钥检查这个挑战。没有私钥,就无法伪造这个检查。

但这还不是全部:CodeMeter使用多个密钥来加密一个软件密钥,创建大量可能性,实际选择一个当软件启动时。选择过程被设计为避免所有可能的密钥都被使用,即使软件被启动上千次。在实践中,这意味着一个通过记录所有序列创建的模拟器永远不会是完整的,并且其功能会受到严重的限制。

深入解析CodeMeter:确保软件安全的强大工具

另外,对于软件更新,是否需要使用相同的密钥?或者,即使是小的更新,也最好创建一个新的许可证?答案是不需要。你可以使用同一许可证保护每一次更新。这就是CodeMeter的关键:它不仅提供安全的保护,而且简化了许可过程。每一个许可证背后,都有一个根密钥,也就是产品密钥(PISK),在加密时创建所需的CodeMeter密钥。这些密钥是由你想要保护的应用程序的校验和派生出来的。

当然,无论有多强大的保护系统,可能还是有些人通过侧信道攻击来读取我们的密钥。针对这个问题,CodeMeter采取了一系列反制措施。首先,我们使用的是一个安全的智能卡芯片,该芯片由制造商配备了抵抗侧信道攻击的手段。其次,我们在固件中也有一些独家的技巧。最后,PISK不能直接使用,所以不能直接攻击根密钥。

深入解析CodeMeter:确保软件安全的强大工具

在最高的保护级别上,CodeMeter推出了AxProtector新的混淆类型,称为CTP (编译时保护)。它通过在编译时改变应用程序,使其结构无法识别。这种技术远远超越了IP保护模式,可以与或者没有CodeMeter许可证一起使用。然而,你需要一个Clang编译器来实现这个功能。如果你使用CmDongle或CmCloudContainer,建议将特别敏感的代码移入CmContainer。这些代码由你编写,加密,并移入CmContainer进行解密和执行。这种机制被称为CodeMoving,是我们防止反向工程的最有力武器,因为任何潜在的攻击者都无法看到这个从未以未加密形式触碰过计算机内存的代码。

总的来说,威步的CodeMeter提供了全面且灵活的软件保护解决方案,不论是对密钥的保护,还是对代码的保护,都做得极为出色。无论你是一个个人开发者,还是一家大型公司,如果你想要保护你的软件,那么CodeMeter绝对值得你的信赖。

继续阅读