针对黑客行为采取反击措施:保护软件产品免受8大盗版威胁

2013-04-12 软件货币化 292

 

当今,独立软件供应商(ISV)必须实施某种类型的保护以确保他们能够从付费用户身上获得完整收益。

任何软件保护解决方案背后的基本原理都是通过某种许可授权方式来限制未许可软件的使用。可以通过硬件锁、软许可证或自己开发的解决方案来实现这一目 标。总的来说,基于硬件锁形式的保护可以提供强效的保护,而基于软许可证的形式则可以为试用版软件和电子软件分发(ESD)方式提供更好的支持。

基于外部硬件的解决方案可以提供当今可用的高水平的保护。但是黑客行为是软件业内的一个顽疾,导致范围内软件供应商有数十亿美元的收益损失。因此,选择合适的方案来保护好每一个有可能被黑客攻击的入口点是很重要的。

本白皮书研究了多种常见的黑客攻击技术以及保护应用程序免受盗版危害的反黑客攻击方法。

【黑客行为1】修补可执行文件或动态链接库
在这种情境下,软件黑客会尝试破解和/或调试可执行文件或动态连接库以获取受保护的代码。可执行文件随后会被修补从而更改运行逻辑或者在代码内移除查询请 求。通常情况下,软件黑客会发送一个小的独立补丁可执行文件(被称为“破解程序”),让终端用户运行,从而修补被许可的软件。

应对措施
目标是让修补可执行文件的过程比购买软件更复杂而且代价更高。受保护文件数量和软件黑客破解保护所需时间是呈正比的。保护大量可执行文件和动态连接库的 便利的方式是使用自动保护工具,被称为“加壳工具(packers)”。将保护代码插入到编辑后的可执行文件中会缩短对单个文件实施繁复写保护代码所需的 时间。有效的工具也会提供特定的反盗版措施,如反调试机制,可执行文件保护和数据文件保护机制允许受保护的应用程序实时的加密和解密数据。

【黑客行为2】:暴力攻击
暴力攻击情境包括(无论一般的还是特定的)包括黑客费尽心力地尝试冲破每一道保护机密数据的安全防线。通用攻击是指硬件锁本身被破解,任何实施改进措施都不能阻止这通用攻击,被破解的硬件锁所保护的所有应用程序都会受到威胁。。

特定攻击只会对一种特定软件应用程序破坏一个特定的硬件锁保护,这不会对使用相同硬件锁的其他软件供应商带来风险。

应对措施
如果受保护的数据足够大的话可以克服暴力攻击问题,例如破解所有保护几乎是不可能的。为了保护核心的算法,硬件锁应该有一个受保护的内核和通信通道,用来 存储算法密钥。硬件锁的保护内核包含128位AES加解密密钥,该密钥能够对加密狗的 运算进行保护。

【黑客行为3】:仿制安全密钥
在仿制(记录/回放)攻击环境下,在应用程序和硬件锁之间交换的所有信息都会被记录下来,尝试替代设备驱动器。

中间件的使用(常常是一个软件应用程序)会提供一个平台,该平台会尝试模拟请求和主机发出的响应。如果实际密钥返回查询/响应的话,硬件锁会回放先前记录的信息。

有限功能仿制程序只会记录并回放先前记录的查询/响应,而完整功能仿制程序也会仿制密钥,包括其受保护设置。

为了创建一个完整功能的模拟器,软件破解者要求访问加解密密钥。成功地模仿双通道通信意味着该应用程序已被破解。模仿加解密密钥并不是通用的攻击,它只会影响密钥其所存在的应用程序,可以被轻松的修改。

应对措施
安全密钥依赖于应用程序和硬件密钥之间的一个受保护的通道。在受保护应用程序和密钥之间交换的数据都会被保护。芯片内置的128位随机AES确保通信通道 受到可靠保护。通道会对每个对话使用不同的安全密钥。 这意味着尝试记录通道中所交换数据的黑客不能重放数据,因为用于对数据进行保护的密钥与用于对数据进行解密的密钥是不同的。此外,通过使用硬件锁保护引擎 来解密硬件编码数据,受保护的应用程序可以检测到有限功能仿制程序。仿制程序本身不能正确解密此类数据,因为它并不能访问受安全密钥。

【黑客行为4】:修改硬件锁内的内存
许可数据一般会被保存在软件保护锁内的特定内存中。在这种情境下,软件黑客会尝试访问硬件锁内存以修改其许可条款。例如,黑客会尝试将一个到期的基于执行 次数的许可更改为一个永久许可,或者激活一个并未付费购买的功能。这会显著降低软件发行商的当前和未来的软件许可收益。

应对措施
为了防止硬件锁内存被修改,许可实施必须包括……

欲了解全部内容,请注册并下载完整白皮书《针对黑客行为采取反击措施》

电话咨询
邮件咨询
在线地图
QQ客服