当前位置:文档之家› 软件加密与解密技术

软件加密与解密技术

通信网的安全—理论与技术结课作业 1 题 目 软件的加密与解密技术 软件加密与解密技术

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

是网络不发达时代的产物,是一种纯客户端的技术,缺乏管理和统计功能,硬件的存在也带来了生产、物流、驱动安装等诸多不便,不仅成本高,而且无法实现软件的网络化发行和销售,正在逐渐走向衰落。而目前电子授权的发展可以说是方兴未艾。电子授权保护方式越来越多融入互联网技术、云计算技术和SaaS理念,不仅更加方便使用和管理,而且能够实现软件电子化发行,又符合当今绿色低碳的发展理念,大有取代加密锁独占软件加密市场的趋势。世界上比较著名的公司,Microsoft、IBM、Autodesk、SIEMENS、Adobe等,使用的都是电子授权软件保护方式。 在国内,软件开发商使用加密锁的比率较高,实际上,随着网络环境的日益改善,联网激活对大多数国内用户来说已经不是问题。而且前面也提到了,认为加密锁比电子授权安全的观点是偏面的、不正确的。从现实情况看,加密锁更容易通过硬件复制来破解,而且已经形成了完成的盗版产业链。反而是电子授权方式因为没有硬件无法复制,又需要网络激活和验证,实际上具有非常好的保护效果。另外,国内也已经出现了一些提供电子授权产品的公司,他们中的2-3家公司一定会随着中国软件行业的发展而成长和壮大起来。所以,软件加密行业的发展趋势是无硬件化、网络化和信息化。下面,首先对软件加密和解密方法进行一定的介绍。

一、软件加密方法 前面提到过,软件加密技术分为基于硬件的加密方式和基于软件的加密方式。 1.基于硬件的加密方式 基于硬件的加密方式主要是加密锁,一些重要信息,如加密密钥、通信网的安全—理论与技术结课作业 3 敏感数据、授权文件、自定义算法等都可以存储在加密锁中。加密锁

从接口形式分为并口和USB口两种。并口是早期的使用的形式,因为插拔不方便和与打印机冲突,现在已较少使用。目前大多数开发商使用的都是USB接口的加密锁。加密锁从CPU类型来说分两种,一种使用单片机作CPU,另一种使用智能卡芯片作CPU。单片机硬件本身容易被破解或复制,因此中高端的加密锁越来越多地使用智能卡芯片作CPU,以防止硬件被破解。但智能卡加密锁的破解也越来越多,一是因为芯片分析技术和仪器越来越先进;二是智能卡程序写好后要交给芯片厂去制造,在这个环节程序有可能被泄漏出去;三是同一品牌的加密锁,CPU程序是相同的,不同的只是开发商数据和密钥等,如果这些文件流传出去,是很容易复制的。 加密锁虽然具有一定的安全强度,但也有不少缺点: 1)适用于传统的一次性永久授权,无法方便实现试用版本和按需购买 2)硬件的存在带来了生产、物流、安装和维护成本 3)无法实现基于互联网的电子化发行、升级、跟踪和管理 4)一旦被破解,就可以大批量复制,难以补救 2.基于软件的加密 基于软件的加密方式主要是电子授权技术,具体还分为注册码和许可证文件两种:注册码也称为序列号或授权码,通过对软件用户计算机软硬件信息的某种变换得到,可用的软硬件信息包括:CPU序列号、BIOS序列号、网卡号、硬盘序列号、计算机名称等。使用的变换算法有自定义算法或标准的加密算法等。用户在软件安装过程或第一次使用前,需要输入注册码进行验证。验证通过后,软件就可以正常使用了。注册码保护方式的优点是使用简单,缺点是安全性不高、通信网的安全—理论与技术结课作业 4 无法实现复杂的授权需求。

许可证文件和注册码绑定的计算机软硬件信息相同,只是注册码由于长度限制只能使用一两个软硬件信息,而许可证文件可以使用多个软硬件信息。而且,许可证文件可以包含更多的信息,因此可以实现复杂的授权需求,甚至可以存储一些用户信息。典型的许可证文件实现方法是使用非对称算法的私钥对许可证文件进行签名,而公钥嵌在软件代码中。因为加解密过程不对称,私钥又存在授权服务器上,所以很难通过分析授权文件进行破解。 电子授权保护方式的优点是不需要额外的硬件设备,因此也不需要安装驱动和客户端组件,可以实现软件的电子化发行。电子授权保护方式的缺点是对不能联网的用户,需要手工提取计算机信息,获得注册码或许可证后再手工导入,使用上不是很方便。另外,国内提供电子授权产品的开发商寥寥无几,这也限制了电子授权保护技术的普及和推广。

二、软件解密方法 如同软件加密的方式千差万别,软件解密的办法也多种多样。但从根本上,无外乎三种主要手段: 1. 逆向工程 采用软件代码分析和跟踪的方法,找到软件中调用加密验证或判断验证结果的代码,并进行修改或替换,以绕过保护。 2. 通讯欺骗 在软件代码调用验证机制的通道上对通讯指令截取和分析,并通过修改或回放的方法欺骗软件,使之产生错误的判断。通讯欺骗往往通过监视、修改及复制系统功能调用的结果来实现。它需要破解者有能力在不影响软件正常运行的情况下截获及修改与软件保护相关的通信网的安全—理论与技术结课作业 5 系统调用。要能正常实现通讯欺骗,必须要满足以下几个条件:

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

工程的破解方法与底层采用何种加密机制的关系不大,破解难度主要由软件代码的复杂程度以及核心安全库的防护机制决定。下面主要分析通讯欺骗和指纹复制的破解方法对软加密和硬加密的难易程度。软加密的安全指纹由所运行的软、硬件环境获取;而硬加密的指纹就是加密锁本身。与普遍的认知相反,对计算机运行环境指纹的复制要比想象中困难得多,而对加密锁硬件的复制则要比想象中的更容易也更危险。

三、软加密的新技术及四大优势 通过利用网络通讯和服务器认证,软加密方式在实际应用中可以获得比上述分析好得多的安全应用效果。所谓服务器认证,是指软件安全系统首次运行的时候在服务器端“备案”,存储客户端硬件特征,并获取开发商授权的过程。除了首次运行的激活过程外,服务器认证还可以在今后再次进行,以核查及升级授权内容。由北京比特安索公司开发的比特平台除了支持服务器认证技术,还提供了将授权运行于服务器系统之上的“云授权”保护方案。云授权采用客户端与服务器实时连接的验证方案,安全系统指纹始终依附在服务器上,因此具有更高的安全性。集成了服务器认证的软加密方案具有硬加密不具备的四大优势。 1)双因素验证 无论是传统的硬加密还是软加密,安全验证都是单因素的,即基于加密锁或本机硬件指纹。集成了服务器认证之后,加密方案本身是双因素的:既与本机硬件指纹相关,又与服务器相关。双因素验证大大加强了系统整体的安全性,破解者无法通过破解其中的一个因素实通信网的安全—理论与技术结课作业 7 现完整的盗版。它使新一代的软加密技术的安全性实质上超过传统硬

加密成为现实。 2)破解追踪 世上没有绝对可靠的保护技术,而运行于客户环境的软件代码总是可以被跟踪和分析。与硬加密不同的是,实现双因素验证的软加密方案中很容易实现对破解应用的追踪。除非通过逆向工程的办法把所有与服务器通讯相关的代码完全替换——这个工作比软件破解本身的难度还要大——否则服务器将有可能对软件的破解拷贝进行追踪。以比特平台为例,通过设置授权模版的“强制认证”或“智能连接”属性,客户端软件将定期或不定期地尝试与服务器进行连接验证,服务器因此可以发现是否有授权盗用的情况,并且可以根据相应的授权码找到盗用源头,解后进行封锁。也就是说,新一代的软加密技术本身通过服务器验证的机制,不再是单纯的本地安全技术。它是包含了本地安全与网络安全的综合性系统架构。 3)补救措施 软加密的一个明显优势是可以方便地推出对破解版本的补救措施。当基于硬加密的应用程序被破解后,一般来说,为保证升级后的应用程序与旧版本程序使用的加密锁不兼容,软件开发商在应用升级的时候必须同时升级应用程序代码并提供新的加密锁。这样的升级措施需要很大的成本,开发商实际上往往无法实施。而软加密的补救措施是零成本的。当开发商发现现有版本被破解后,可以在平台上为现有产品添加新的特征项(即功能模块),或升级已有的功能算法;开发商相应地升级应用程序代码,制作升级补丁,并发送给合法用户。合法用户拿到升级补丁并升级应用程序后,应用软件可以自动连接到授权服务器进行算法更新并升级本地授权文件,从而完成升级。而盗

相关主题