多模块软件用软件狗加密方法探讨 -电脑资料

时间:2011-08-02 07:14:38
染雾
分享
WORD下载 PDF下载 投诉

标 题:转贴2:多模块软件用软件狗加密方法探讨

发信人:toye

时 间:2000-12-22 19:07:32

详细信息:

多模块软件用软件狗加密方法探讨

宣伟良 韩明

摘要:本文探讨了用微狗对多模块软件进行加密的方案,并举例说明了实现方案,

多模块软件用软件狗加密方法探讨

一、概述

在多模块化的商品化软件中,使软件开发商感到头疼的事

是如何对多模块化的软件进行加密工作。比如,一个企业的全

面管理信息系统可能包括人事管理信息系统、工资管理信息系

统、材料库房管理信息系统、产品销售管理信息系统等等模块

若对每一个分管理信息系统用一个微狗进行加密,这对客户

是十分不利的。若客户第一次购买了一种模块(如人事管理信

息系统),而后又要购买其它模块(如工资管理信息系统),此

时客户的计算机上将有两个微狗。若再购买其它模块呢?

当然这里指的是不同时购买不同模块而引出的问题。当然这个

问题的解决方案可以有多种,比如可以要求客户在再次购买

新模块时将原先购买的软盘及软件狗寄回,软件开发商将不同

模块的软件同时使用的许可做在软件狗中后再寄回给客户。但

问题是客户可能不能中断原先购买的软件的使用,也可能客户

原先是在代理商处购买的,客户也就无法在代理商处得到这种

服务。

在竞争日益激烈的计算机软件市场,软件开发商为了争取

用户,在多模块化的软件产品中,如何做到在客户购买一种模

块后再次购买另外的模块,方便用户选购,做到购买不同模块

后,不用邮寄软盘及加密用软件狗,而只要告诉用户许可使用

该模块的密码即可,用户可自行对新购模块进行许可使用操作,

大大方便了客户及软件开发商。实际上,这种处理方式是在客

户第一次购买软件时,就将所有的模块都提供给了客户,只是

没有将所有模块的使用许可授予客户,客户不能使用所有模块

而已,而只能使用所购买的模块(已将该模块的使用许可授予

客户)。当然软件开发商为了争取客户再次购买其它模块,可

以开放未授予使用许可的模块的一般性功能,而对重要功能限

制其使用。

二、解决方案

微狗是一种插在计算机并口上的软硬件结合的软件加密

产品,为多数软件开发商所采用。软件狗一般都有几十或几百

字节的非易失性存储空间可供被加密的软件进行读写,开发商

可以在微狗中预先写入一定信息,在加密软件中要校验或使

用这些信息。所以如果没插微狗或微狗不对应,加密软件

就不能正常运行,软件也就得到了加密。

软件开发商可以对软件狗中的几十或几百字节的非易失性

存储空间适当地进行合理安排,使之适用于多模块化的商品化

软件中。

首先指定某个字节为各模块使用许可标志,这样可以管理

多达8个模块的多模块软件。这个字节我们称为许可标志字节,

内容可以安排如下:

八位许可标志字节

b7 b6 b5 b4 b3 b2 b1 b0

分别对应:

模块A 模块B 模块C 模块D 模块E 模块F 模块G 模块H

=1 许可

=0 未许可

图1 许可标志字节的内容

为了使客户后续购买的模块可以使用,应使许可标志字节

能够在客户处进行修改,软件开发商可以在客户第一次购买软件

时同时提供一套软件,这套软件可以修改该许可标志字节,但又

不能使客户随意修改。这样既保证了软件开发商的合法利益又方

便了客户在新购软件模块后就很方便能投入使用。解决这个问题

方案可以是这样的:在微狗的其它地址开辟一个修改各模块许

可标志字节的密码区。即该软件要修改许可标志字节时,首先要

求客户输入密码,该软件从密码区中读出相应的密码,并进行密

码比较,若一致可以修改许可标志字节的对应位,也就是新购模

块的许可使用标志位。这样,在客户新购买新的模块后

(付费后),只要客户报出自己原先所购软件的系列号,软件开

发商就可告知客户修改许可使用标志的密码,客户自己就可以用

许可标志修改软件修改该许可标志,从而达到了上述的功能要求,

电脑资料

《多模块软件用软件狗加密方法探讨》()。

当然为了能达到使其它用户(原先也购买过同类软件模块,

但未购买该模块的用户)不能利用修改许可标志软件来修改该用

户的许可标志字节的目的,在微狗模块许可标志字节的密码区

中的密码对不同的用户应该是不同的,即用户甲的密码不能用于

修改用户乙的许可标志字节。这样就产生了一个密码如何产生及

如何管理的问题。

对于密码如何产生的问题,可以有多种方法。比如,方

法1:若是使用微狗(一种智能型微狗,内含单片机),可以

将用户的软件系列号加模块号作为微狗变换功能的输入数据,微

狗的变换结果就可以作为该用户的该模块的密码,存入密码区。

方法2:可以以产生密码的软件当时的系统时间作为产生随机数

的种子,随机产生密码,存入密码区。软件开发商们还可以想出

很多方法来产生这种密码。

对于密码的管理问题,软件开发商应该建立一个密码管理系

统,记录各个软件系列号所对应的所有模块的密码,以便于密码

的管理和密码的发放。当然这个密码管理系统在软件开发商处也

应该是保密的,不是任何人都能随便得到。

三、解决方案举例

1. 存储区安排

我们是用微狗对多模块软件进行加密,微狗内含200字节非易

失性存储区。多模块软件包含4个模块,分

别为模块A,模块B,模

块C及模块D。首先指定地址199为许可标志字节。密码区的每个密

码长度为4字节,所以密码区总长度为16字节。选择微狗地址100

至115为密码区。地址100至103为模块A许可标志修改的密码,地

址104至107为模块B许可标志修改的密码,地址108至111为模块C

许可标志修改的密码,地址112至115为模块D许可标志修改的密码。

此外,另外选择地址0~9为模块A的数据读写区,地址10~19为模块

B的数据读写区,地址20~29为模块C的数据读写区,地址30~39为

模块D的数据读写区。数据读写区可用于软件进行参数传递,运行

关键数据的事先设定等等。

这样微狗的非易失性存储区的安排如下:

地址

0 ~ 910~1920~2930~39 100 ~ 115 199

模块A 模块B 模块C 模块D 保留 ~ A B C D 保留 ~

数据读写区 密码区 许可标志

图2: 微狗存储区的安排

这样的安排在真正的用户模块软件中将没有对大于地址100

的存储区的写操作,以保证软件的安全性。

2. 修改许可标志字节软件程序框图

程序开始

提示所有模块名称

提示用户选择新购买的模块名称

提示用户输入该模块的密码

从密码区中读出相应模块的密码

比较两个密码

结束

读出许可标志字节

判断相应位的状态

若需修改,修改后写回许可标志字节

3. 微狗变换法产生密码程序

程序开始

提示输入用户名称及模块名称

将用户名称及模块名称加入数据库

合并字符串

将合并的字符串作为微狗变换功能的输入数据

得到的变换结果即为密码

将该模块的密码记录于数据库

↓是

继续产生密码吗?

结束

四、结论

本文探讨了多模块软件用软件狗进行加密的方法,提出了一种

可行的方案。该方案可以做到在客户购买一种模块后再次购买另外

的模块时,不用寄回软盘及加密用软件狗,而付费后由软件开发商

告诉用户许可使用该模块的密码,用户可自行对新购模块进行许可

使用操作,大大方便了客户及软件开

发商。

多模块软件用软件狗加密方法探讨 -电脑资料

手机扫码分享

Top