数字音视频编码器在数字电视系统中占有核心地位,对其进行软件保护具有非常重要的现实意义。在对数字电视系统整体结构进行分析的基础上,深入研究了数字电视中编码器软件的加密技术。针对现有编码器中加密方法的不足,提出了一种基于硬件信息的软加密技术,以具有唯一性的多项硬件信息为加密依据,采用MD5算法对获得的信息进行加密,充分考虑了编码器“一机一码”的需求,从而可以有效防止非法注册。

一、软件加密技术简介

软件加密是解决非法复制的有效手段,根据加密原理和方式的不同,软件加密技术可分为软加密、硬加密和网络加密3类。

软加密是指不依赖于特别硬件,用纯软件方式来实现对软件的加密保护,最大优势在于极低的加密成本。

目前主要有序列号法、时间限制、功能限制、警告(NAG)窗口、注册文件法和加壳法等。

序列号保护法是软加密的一种,是以复杂的数学算法为核心的软件加密技术,也是应用最为广泛的方法之一,为达到识别用户身份的目的,用户必须到软件公司去注册后才能继续使用。序列号保护法加密比较简单,不需要额外的成本,用户购买也非常方便,网络上80%的软件都是按照这种方式进行保护的,微软的操作系统也曾使用过这种方法。

硬加密是通过硬件和软件结合的方式,将加密信息固化到某个硬件中作为软件的附加设备来实现软件加密的。加密后运行软件时,需要访问相应的硬件,这类加密方式主要依赖于硬件信息不易被更改和复制的特点。主要有光盘加密、加密狗、加密芯片和软盘加密等。

网络加密技术被誉为是最安全的加密方式,但缺点也很明显。用户必须一直在线,一旦网络不稳定,被加密的软件将无法使用。国外曾有一些游戏软件使用过网络加密方式,要求玩家必须在线,一旦网络不稳定或是掉线,程序就会自动关闭,给用户带来了极大的不便。

在数字电视的系统中,为了保证音视频的有效传输,需要高效的编码算法:编码器在系统中具有核心的地位,所以一旦被不法分子拷贝将会对设备制造商、运营商以及研发人员的权益造成极大的损失。不同于其他应用软件,编码器一般应用于广播网且需快速注册,所以传统的加密方法并不能很好地达到系统的要求岱针对“一机一码”的需求,本文提出了一种基于硬件信息的软加密技术,通过数字签名,散列、密钥交换等多个可靠的密码学算法进行多重加密保护,保证了编码器软件的安全。

1

二、基于硬件信息的软件加密系统

1、系统设计

基于硬件信息的软件加密方案,当用户获得软件进行安装时,首先通过机器码获取模块从用户的计算机上取得该机器的一些硬件信息(如硬盘序列号、网卡MAC地址、CPU ID等)。然后,对这些信息进行计算获得序列号,从而达到软件与硬件信息绑定石用户需要把这一序列号用Internet、Email或邮寄等方法告知软件发行商,软件发行商利用注册码生成模块(即注册机)生成相应的注册码寄给用户,用户根据安装提示输入注册码进行软件注册。由于不同计算机的硬件信息不相同,即使用户信息被盗用,验证模块可保证其他计算机不能成功注册使用软件,从而使软件加密的可靠性和安全性大大提高,真正实现“一机一码”的软件注册。系统流程图如图2所示。

1

2、加密系统模块设计

如图2所示加密系统按照功能划分模块主要可以分为ID码生成模块、注册码生成模块、注册模块和验证模块4个部分。基于硬件信息的软件加密系统采用计算主机的多个硬件信息,如CPU序列号、MAC地址、主板序列号等作为注册源,经过散列函数计算得到散列值进行签名。软件只有在注册后才能使用,且获取的硬件信息具有唯一性,经过单向函数加密可以保证用户信息的保密性,同时方便软件发行商使用注册机产生唯一的注册码,实现“一机一码”的注册机制a使用非对称密码对注册码进行注册,使攻击者无法得到注册码,写出注册机程序,保证软件的安全。

1) ID码生成模块

ID码获取模块主要完成两个功能:自动获取计算机硬件信息,对硬件信息进行加密生成ID码。

每台计算机都有内存、硬盘、CPU、显示器等配件,这些信息有很多都是相同的,不具唯一性,对软件加密没有意义口网卡MAC地址、CPU ID、硬盘的出厂序列号、显卡型号以及BIOS序列号等信息,对于不同计算机是不相同的。可以选取这些信息并将它们组合起来,这样信息相同的几率就会很小,基本可以保证用户身份的唯一性,从而有效地防止软件的非法使用,保护软件发行商的合法权益。

因此在选取硬件信息对软件进行加密的过程中,可以选取计算机CPU ID、主板序列号、MAC地址等多个硬件信息,构成计算机特征值。由于这些信息本身就具有唯一性,通过多个硬件信息组合得到的计算机特征值可以说完全具备了唯一性的要求,满足“一机一码”条件。为避免攻击者对其他计算机硬件信息的修改,需要将自动获取的计算机硬件信息用特定加密算法进行加密,以保证用户信息的安全,具有单向性的Hash函数是最合适的选择。

Hash函数也称为散列函数,是一种单向密码体制,是一个从明文到密文的不可逆映射,只有加密过程,不能解密。同时,HaBh函数可以将任意长度的输入经过变换后得到固定长度的输出。MD5算法就是Hash函数的一种,在这里选取MD5算法4lXt硬件信息进行加密,得到ID码。

MD5算法可简单描述为:将任意长度的字节串(即需要产生摘要的硬件信息)映射为一个128位的信息摘要,即使可看到源程序和加密算法描述,也无法将一个MD5的值反推导回原来的字符串。算法实现如图3所示。

1

MD5算法是一种单向加密算法,数据只能加密,不能被解密,也就是说攻击者不能由消息摘要推得用户计算机信息,保证了用户信息的安全参另外任意一段数据,经过加密后,其结果永远是相同的;任意两段数据加密之后的密文是不相同的,可以保证每个用户信息经MD5算法加密后生成各不相同的ID码。用户需要将该模块生成的ID码发送给软件发行商。

2)注册码生成模块

软件发行商提供唯一的软件注册码给用户进行安装与注册,安装时注册信息将写入注册表,用以验证每次运行时的信息是否存在与正确,在使用注册码进行软件授权机制中,注册码是整套软件保护方案中最重要的部分。

注册码是根据用户信息生成的,具有唯一性。软件发行商在给用户分发注册码时通过某种算法尉等用户信息换算成注册码(用SN表示),注册码生成过程可表示为:

注册码SN=以用户信息) (1)

注册码生成过程与注册码合法性验证环节有着密切的联系,常见的软件合法性验证计算方式可表示为:

用户信息_g(注册码SN) (2)

软件破解的难易程度与换算关系设计有直接关系;因为验证过程是在用户计算机上运行的,攻击者可以使用工具软件对其进行分析,可能造成合法注册码泄露,并在网上传播,任何复制了这个软件的人都可以使用这个注册码进行软件认证,造成软件盗版Q破解者也可能会通过进一步分析换算方法g,写出非法注册机,这样软件就能被随意复制并使用,并被非法的通过认证,同样会造成软件保护的失效,严重损害了软件发行商的利益。针对这些情况,本文采用“一机一码”制,即一台计算机对应一个注册码,那么即使此注册码被破解,也不能在其他计算机上使用。另外,在合法性验证环节采用注册码算法的逆算法,即:

用户信息=fl(注册码SN) (3)

软件合法性验证过程是在用户计算机上进行,容易被攻击者破解,如果采用非对称加密算法,那么就可以进一步限制盗版的可能。RSA算法巧作为非对称加密算法的一种,是第一个既能用于加密又能用于数字签名的算法,加解密原理简单,易于理解和操作,具有良好的安全性,目前已成为公钥密码的国际标准。在本系统中选用RSA算法进行加密生成软件注册码。算法步骤如下:

步骤一,RSA加解密算法的初始化。

(1)随意选择两个互异的大素数p和q,要求p不等于q;

(2)计算n=pxq,根据欧拉公式得φ(n)=(p -1)(q -1);

(3)选择一个整数e,满足e与(p(n)互素,且e小于φ(n);

(5)为安全起见将p和q的记录销毁,返回n,d。

步骤二,RSA加解密变换。 将明文划分成块,使得每个明文报文长度满足m<,然后对每个数据块m进行加密和解密变换。

(1)加密变换,对于待加密消息m,其对应的密文为m=E (m)=me modn;

(2)解密变换,m=D(c)= Cd modn。

注册码生成模块是一个独立于应用软件的模块,不应用软件一起发布,软件发行商独立拥有,用于产生用注册密码。使用非对称RSA算法对用户ID码进行加获得注册码,攻击者即使得到了公钥,也无法推算得到钥,不可能自行根据消息摘要计算得到注册码。保证攻击者不能写出注册机程序。

3)注册模块

注册模块的主要功能是用户端在接收到软件发行商回的注册码后自动完成注册并将其写入注册表,供以每次运行软件时验证模块使用。

4)验证模块

注册码验证实际上就是验证签名的过程,判断用户不是已注册为合法用户。验证模块主要完成在用户每运行软件时,用软件开发商提供的公钥,也就是RSA算的公钥还原出计算机的ID码,将还原得到的ID码与原用户ID码进行比较和签名验证,只有一致的情况下软才能正常运行,否则无法注册。

1

系统测试分析

本文加密系统设计主要采用了数据加密技术和注册操作技术,运用多重加密算法对用户信息进行保护。用户注册软件时,软件自动采集计算机的硬件信息(如硬序列号、网卡MAC地址、CPU ID等)作为信息源,经过定算法得到扰乱后的ID码,发送给软件发行商,软件行商利用RSA非对称加密算法生成注册码对用户授,用户利用注册码进行认证注册。软件安装时将注册息写入注册表,用于以后使用软件时检查注册表中的息是否正确,若正确则编码器正常编码,否则编码器对频进行不正常编码,终端解码得到的节目流将会非常清晰,用户不能得到正常信息,这将迫使用户重新注册码器软件。

为了验证有效性,将该加密系统的方案成功用于编器软件进行测试。图4是采用加密算法获得的用户计机的ID码,可以看出图中的码字为不规则的乱码。图是采用非对称RSA加密算法获得的注册码,由此可知算法有效可行。

通过测试分析,得出基于硬件信息的编码器软件加密方法具有以下优点:

1)与多数软件注册方式不同,本设计采用“一机一码啦册,保护了软件发行商的合法权益;

2)直接选取计算机硬件信息作为注册依据,不需要添加外置软盘、硬盘等设备;

3)在没有正确注册的情况下,允许编码器工作;

4)采用特别技术,攻击者很难找到产生注册码的规律,不会出现非法注册码;

5)纯软件实现,可实现批量处理,方便使用,价格低。

小知识之硬加密

硬加密是目前广泛采用的加密手段。所谓硬加密就是通过硬件和软件结合的方式来实现软件的加密,加密后软件执行时需访问相应的硬件,如插在计算机扩展槽上的卡或插在计算机并口上的“狗”。