软件加密与解密技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目软件的加密与解密技术

软件加密与解密技术

软件开发商通常都会使用某种加密技术来保护其软件,以防止非法使用。另外,还需要通过软件加密来实现软件的按购买内容授权,以实现销售利润的最大化。软件加密技术根据是否使用专用的硬件设备分为基于硬件的加密方式和基于软件的加密方式。基于硬件的加密方式是指加密需要与一个专用的硬件设备绑定,目前主要的硬件加密方式是加密锁,俗称加密狗。基于软件的加密方式是指不需要专用硬件设备的加密方式,一般采用与终端设备软硬件信息绑定的数字许可证,也称电子授权形式。单纯认为基于硬件的加密方式比基于软件的加密方式安全是不正确的,因为软件的安全性涉及的内容比较多,包括加密产品的安全性、加密策略的设计、应用软件本身、操作系统、驱动、硬件、数据通讯等等,是一个综合的技术范畴,不能够简单地由某个方面来断定其是否安全。

在国外,电子授权和加密锁的市场占有率是旗鼓相当。因为使用

习惯和历史原因,加密锁目前还占有一定的市场份额。但是,加密锁是网络不发达时代的产物,是一种纯客户端的技术,缺乏管理和统计功能,硬件的存在也带来了生产、物流、驱动安装等诸多不便,不仅成本高,而且无法实现软件的网络化发行和销售,正在逐渐走向衰落。而目前电子授权的发展可以说是方兴未艾。电子授权保护方式越来越多融入互联网技术、云计算技术和SaaS理念,不仅更加方便使用和管理,而且能够实现软件电子化发行,又符合当今绿色低碳的发展理念,大有取代加密锁独占软件加密市场的趋势。世界上比较著名的公司,Microsoft、IBM、Autodesk、SIEMENS、Adobe等,使用的都是电子授权软件保护方式。

在国内,软件开发商使用加密锁的比率较高,实际上,随着网络环境的日益改善,联网激活对大多数国内用户来说已经不是问题。而且前面也提到了,认为加密锁比电子授权安全的观点是偏面的、不正确的。从现实情况看,加密锁更容易通过硬件复制来破解,而且已经形成了完成的盗版产业链。反而是电子授权方式因为没有硬件无法复制,又需要网络激活和验证,实际上具有非常好的保护效果。另外,国内也已经出现了一些提供电子授权产品的公司,他们中的2-3家公司一定会随着中国软件行业的发展而成长和壮大起来。所以,软件加密行业的发展趋势是无硬件化、网络化和信息化。下面,首先对软件加密和解密方法进行一定的介绍。

一、软件加密方法

前面提到过,软件加密技术分为基于硬件的加密方式和基于软件的加密方式。

1.基于硬件的加密方式

基于硬件的加密方式主要是加密锁,一些重要信息,如加密密钥、

敏感数据、授权文件、自定义算法等都可以存储在加密锁中。加密锁从接口形式分为并口和USB口两种。并口是早期的使用的形式,因为插拔不方便和与打印机冲突,现在已较少使用。目前大多数开发商使用的都是USB接口的加密锁。加密锁从CPU类型来说分两种,一种使用单片机作CPU,另一种使用智能卡芯片作CPU。单片机硬件本身容易被破解或复制,因此中高端的加密锁越来越多地使用智能卡芯片作CPU,以防止硬件被破解。但智能卡加密锁的破解也越来越多,一是因为芯片分析技术和仪器越来越先进;二是智能卡程序写好后要交给芯片厂去制造,在这个环节程序有可能被泄漏出去;三是同一品牌的加密锁,CPU程序是相同的,不同的只是开发商数据和密钥等,如果这些文件流传出去,是很容易复制的。

加密锁虽然具有一定的安全强度,但也有不少缺点:

1)适用于传统的一次性永久授权,无法方便实现试用版本和按需购买

2)硬件的存在带来了生产、物流、安装和维护成本

3)无法实现基于互联网的电子化发行、升级、跟踪和管理

4)一旦被破解,就可以大批量复制,难以补救

2.基于软件的加密

基于软件的加密方式主要是电子授权技术,具体还分为注册码和许可证文件两种:注册码也称为序列号或授权码,通过对软件用户计算机软硬件信息的某种变换得到,可用的软硬件信息包括:CPU序列号、BIOS序列号、网卡号、硬盘序列号、计算机名称等。使用的变换算法有自定义算法或标准的加密算法等。用户在软件安装过程或第一次使用前,需要输入注册码进行验证。验证通过后,软件就可以正常使用了。注册码保护方式的优点是使用简单,缺点是安全性不高、

无法实现复杂的授权需求。

许可证文件和注册码绑定的计算机软硬件信息相同,只是注册码由于长度限制只能使用一两个软硬件信息,而许可证文件可以使用多个软硬件信息。而且,许可证文件可以包含更多的信息,因此可以实现复杂的授权需求,甚至可以存储一些用户信息。典型的许可证文件实现方法是使用非对称算法的私钥对许可证文件进行签名,而公钥嵌在软件代码中。因为加解密过程不对称,私钥又存在授权服务器上,所以很难通过分析授权文件进行破解。

电子授权保护方式的优点是不需要额外的硬件设备,因此也不需要安装驱动和客户端组件,可以实现软件的电子化发行。电子授权保护方式的缺点是对不能联网的用户,需要手工提取计算机信息,获得注册码或许可证后再手工导入,使用上不是很方便。另外,国内提供电子授权产品的开发商寥寥无几,这也限制了电子授权保护技术的普及和推广。

二、软件解密方法

如同软件加密的方式千差万别,软件解密的办法也多种多样。但从根本上,无外乎三种主要手段:

1. 逆向工程

采用软件代码分析和跟踪的方法,找到软件中调用加密验证或判断验证结果的代码,并进行修改或替换,以绕过保护。

2. 通讯欺骗

在软件代码调用验证机制的通道上对通讯指令截取和分析,并通过修改或回放的方法欺骗软件,使之产生错误的判断。通讯欺骗往往通过监视、修改及复制系统功能调用的结果来实现。它需要破解者有能力在不影响软件正常运行的情况下截获及修改与软件保护相关的

系统调用。要能正常实现通讯欺骗,必须要满足以下几个条件:1)有能力找到所有与软件保护相关的系统调用。

这对硬加密非常容易——所有对加密锁硬件的IO操作;但对软加密则不太容易,任何系统调用,包括文件、注册表、系统信息、时间的调用都可能与软件保护操作相关。

2)能够分析了解系统调用的输入、输出参数所代表的意义,能够伪造返回结果。

3)能够在不影响系统及应用程序正常工作的条件下修改返回结果。

设计精良的硬加密产品可以在软件代码和硬件加密锁之间构建所谓的“安全通道”,使得破解者虽然能够截获通讯命令,却无法分析得到其中的原始数据,也无法伪造通讯命令,从而基本无法进行通讯欺骗。对于软加密来说,破解者总是可以得到系统调用命令的原始数据,但要想在不影响系统以及应用程序功能的情况下修改系统调用结果则并不容易。一方面,破解者必须能够了解哪些系统调用与软件保护机制有关;另一方面,系统调用的结果并不总是容易截获——很多获取硬件指纹的命令基于系统中断调用;最后,修改系统调用结果在很多情况下将会影响系统和软件的运行,使得破解过程无法正常进行。从理论上来说,除非破解者能够营造一个有能力任意监视并改写所有系统调用结果的独立环境,否则将无法完全实现通讯欺骗,而这样做的工作要比逆向工程还要复杂,从而导致对软加密采用通讯欺骗的破解方法失去意义。从本质上来说,软加密基于系统功能调用,而硬加密基于对硬件本身功能的调用。因此软加密实现与系统本身的结合程度要比硬加密高得多。

3. 指纹复制

相关文档
最新文档