随着互联网应用需求的不断增加,软件行业得到了迅猛发展,保护软件知识产权。除了靠立法和提高用户软件版权意识外,利用技术限制软件的非法使用也是一个重要的手段。常用的技术主要有不依赖硬件的软加密方法和依赖硬件的硬加密方法,考虑对软件版权的有效保护以及用户体验,本文采用了硬加密技术,提出并实现了一种基于本机MAC地址和硬盘序列号的“一机一码”软件版权保护方案,能有效地保护软件知识产权。

一、基本原理

计算机的硬件通常具有惟一的标识,比如MAC地址。硬盘序列号,CPU序列号和主板ID等,这些信息被统称为机器码,软件用户一般无法轻易改变它们。软件开发者利用系统提供的接口可以编程获取机器码,这些机器码通过简单的组合变换可以作为用户的本机注册信息闭。建立机器码与计算机的一一对应关系,并不需要所有的硬件信息,综合考虑效率和安全性,本方案仅选择MAC地址和硬盘序列号这两种硬件信息作为原始注册信息。

一台计算机有时会有多个MAC地址,最基本的是以太网卡MAC地址,笔记本通常还会有无线网卡MAC地址,安装了虚拟机的主机会有虚拟网卡MAC地址,通过3G上网卡连网的主机还会有一个3G网
卡MAC地址,本方案仅获取所有主机都有的以太网卡MAC地址。计算机通常只有一块硬盘,对于有多块硬盘的主机,本方案仅获取当前系统所在硬盘的序列号。MAC地址通过改变网卡的高级属性中的值就能修改,而硬盘的序列号(非逻辑序列号)一般是无法轻易修改的,所以,以太网卡MAC地址和硬盘序列号通常可以惟一地标识一台计算机。

单表代换加密是古典密码学中一种经典的加密算法,实现简单便捷,对于统计特性不明显的短明文,有较好的加密效果,以太网卡MAC地址和硬盘序列。号字符串经过单表代换加密。再转换成二进制流,这样在不过多增加方案复杂性的同时又可以很好地隐藏原始的信息。

MD5是一种Hash算法,不同的输入会产生完全不同的散列值,这样,基于计算机独有的以太网卡MAC地址和硬盘序列号生成的注册信息,经过MD5处理,能产生与该主机惟一匹配的注册码。

二、方案设计

用户安装软件后,利用软件提供的注册机生成基于本机MAC地址和硬盘序列号的注册信息文件Register.dat,将其通过邮件。拷贝或者其他渠道提交给软件开发者,软件开发者利用自身独有的注册码生成器生成与注册信息对应的注册码文件Register.lic。并将其反馈给用户,用户将Register.liC保存在软件安装目录,软件每次运行时对注册码进行检测,若有误,软件将被限制使用。

方案的流程如图1所示。

基于机器码加密的软件版权保护方案

注册机工作流程如图2所示。

基于机器码加密的软件版权保护方案

注册码生成器工作流程如图3所示。

基于机器码加密的软件版权保护方案

注册码检测流程如图4所示。

基于机器码加密的软件版权保护方案

方案对软件版权的保护主要体现在以下几个方面:

(1)用户对于注册机生成注册文件RegIster.dat的原理是未知的。

(2)Regfster .dat中的信息是单表代换加密后的二进制串。原始的注册信息难以分析。

(3)仅并发者拥有注册码生成器j‘而且用户对于注册码生成器生成注册码文件Register.liC的原理也是未知的。

(4)基于MAC地址和硬盘序列号生成的注册码对应唯一的主机,这样就保证了。“一机一码”,使得盗用注册码无效。

三、具体实现

本文在Windows XP系统下利用VC++6.0对以上方案进行了具体实现。获取以太网MAC地址需要利用系统提供的“iphlpapi.lib"库。通过“GetAd aptersinfo”。函数获取网卡信息,读取到的第一个类型为"MIB_IF_TYPE一ETHERNET”网卡。即为本机以太网卡MAC地址。获取硬盘序列号则需要利用系统提供的CreateFile函数打开设备,然后利用DeviceIoC ontrol函数与驱动程序交互来读取硬盘信息,再取出序列号字段。开发出的注册机和注册码生成器两个软件如图5所示。

本文设计并实现了一种基手本机MAC地址和硬盘序列号“一机一码”软件版权保护方案,实践证明:该方案简洁实用,可广泛应用于软件版权保护,根据软件版权保护级别的要求,可对该方案进行扩展按需加入对称加密技术,非对称加密技术或者数字签名技术进而增强安全性。

小知识之MAC位址

MAC(Media Access Control)地址,或称为 MAC位址、硬件位址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC位址。因此一个主机会有一个IP地址,而每个网络位置会有一个专属于它的MAC地址。