基于单机加密狗的网络软件应用系统加密方案转让专利

申请号 : CN201010557574.0

文献号 : CN102006293B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙践知贠冰戴明利曹健陈丹

申请人 : 北京工商大学

摘要 :

本发明涉及一种使用单机硬件加密狗为网络软件进行加密保护的方案,所要解决的问题是使用一只单机加密狗为整个网络软件系统提供加密保护。本发明解决了目前网络加密狗仅能对C/S结构网络软件进行加密保护,不能对B/S结构网络软件进行加密保护的问题,具有很好的安全性、灵活性,且硬件部分仅需使用一只单机加密狗,成本低廉。本方案不对客户端程序加密保护,将服务器端程序分为业务逻辑层和数据访问层,仅对数据访问层进行加密保护,并将数据访问层代码和一只单机加密狗部署在同一台计算机上,该计算机被称为狗服务器,狗服务器负责检测加密狗的状态及对数据库的访问工作,若加密狗存在且状态正常,狗服务器执行对数据库访问,否则放弃访问。

权利要求 :

1.一种基于单机加密狗的网络软件应用系统加密保护方法,其特征在于,包括该方法的原理和工作过程,目的是保护网络软件应用系统不被非授权使用,该方法是用一只单机加密狗来实现的,需要专门的驻留在服务器上的始终处于运行状态的伺服程序和加密狗配合,加密狗是被插在运行伺服程序的服务器上,该服务器被称为狗服务器,通过加密狗提供的加密手段仅对伺服程序进行加密保护,伺服程序并非被保护的网络应用系统本身,该方法不对网络应用系统本身进行加密保护,该方法的原理是网络软件应用系统的客户端对数据库所有或者部分访问首先提交给伺服程序,首先由伺服程序判断狗服务器上的加密狗是否存在,状态是否正常,若正常则对数据库进行操作,否则将放弃对数据库操作,这样将导致客户端请求失败,其所述单机加密狗是一个硬件产品,是指为专门单机版软件提供加密保护的加密狗,是为了和专门的网络加密狗相区别,其所述狗服务器在物理上可以是一台单独的计算机,也可以和数据库服务器使用同一台计算机,该方法不限定加单机密狗的生产商和类型,该方法仅适用于有后台数据库支持的基于网络的软件应用系统,网络软件应用系统可以是C/S结构也可以是B/S结构,该方法可以通过加密狗和伺服程序的配合实现分级权限,当加密狗存在且状态正常,客户端用户可以使用网络软件的全部功能,当加密狗不存在或状态不正常,仅允许客户端用户使用网络软件的部分功能。

说明书 :

基于单机加密狗的网络软件应用系统加密方案

技术领域

[0001] 本发明涉及基于网络的软件应用系统加密保护,本发明的作用是在低成本前提下避免基于网络的软件应用系统被非授权复制使用。

背景技术

[0002] 在实际运行的软件应用系统中,有大量的基于网络的软件应用系统(在后面的叙述中简称为网络软件),该类应用系统从硬件角度说,包含有客户机和服务器,且通常有多个客户机,客户机会使用服务器上的资源;从软件的角度说,可以分为C/S结构和B/S结构。
[0003] 在实际应用中有大量的网络软件需要加密保护,以防止网络软件被非授权用户使用。目前对网络软件的加密保护有两种方式,第一种方式是为每台客户机配置一只单机加密狗,对每个客户端程序分别进行加密保护,显然该方式成本高且灵活性差,加密保护的操作也比较复杂;第二种方式是使用专门的网络加密狗,典型产品如赛孚耐信息技术有限公司的网络狗,赛孚耐是全球最大的加密狗厂商,该公司网络狗是目前网络软件加密保护方案的代表产品。
[0004] 赛孚耐网络狗的基本工作原理如图1所示,是在网络中某台机器上安装网络狗,所有客户端上需安装被加密保护后的客户端程序,每个客户端程序执行时,其中特定的代码会首先查找网络指定位置上的网络狗,若网络狗存在且状态正常,则客户端程序继续执行完成相应的操作,否则客户端程序执行失败,该方案可很好地保护网络软件。但该方案有两个显著的缺点,一是仅能保护C/S结构的网络软件,不能保护B/S结构的网络软件;二是网络狗的成本要远远高于单机加密狗。
[0005] 本发明设计了与赛孚耐网络狗方案完全不同加密保护方案,同时解决了C/S结构和B/S结构两类网络软件加密保护的问题,非常适用于目前流行的三层结构应用体系,具有很好的安全性、灵活性,且硬件部分仅需要使用一只单机加密狗,成本非常低廉。

发明内容

[0006] 本发明涉及一种使用硬件单机加密狗为网络软件进行加密保护的方案,该方案所要解决的问题是使用一只单机加密狗为整个网络软件系统提供加密保护。
[0007] 本方案使用一只单机加密狗实现为网络软件加密保护,且不限定使用特定厂商的单机加密狗,即所有产生商的各种型号的单机加密狗都可以为网络软件提供加密保护。
[0008] 本方案要求被加密保护的网络软件采用三层结构,三层分别为表示层、业务逻辑层和数据访问层。本方案对数据访问层进行加密保护,业务逻辑层是否进行加密保护可根据网络软件的具体应用情况由用户来决定,并以此来保护整个网络软件,而表示层不做加密保护,加密保护后的网络软件的具体结构如图2所示,其中:被加密保护后的数据访问层代码作为伺服程序始终处于运行状态,准备随时接收和处理业务逻辑层代码发送过来的对数据库的访问请求。
[0009] 本方案采用单机加密狗提供的通常的加密手段来实现对数据访问层和业务逻辑层的加密保护,单机加密狗的加密手段有两种,一是提供外壳保护,外壳保护除了保证程序不被非法使用外,还可以防止程序被进行逆向工程分析,被反汇编等,二是可以在被保护程序代码中加入加密狗厂商提供的API函数,进一步提高被加密保护软件的安全性。
[0010] 本方案采用了图3所示结构,将伺服程序和一只单机加密狗部署在同一台计算机上,该计算机在本方案中被称为狗服务器,狗服务器负责判定用户是否是授权用户及对数据库的访问工作。
[0011] 在本方案中,网络软件的执行流程如图4所示,具体为:客户端向服务器端发出请求,该请求可能包含数据请求和处理请求,服务端业务逻辑层对请求进行处理,若不无需对数据库访问作则直接向客户端返回结果,若需要进行数据库访问,则由运行在狗服务器上的伺服程序进行加密狗状态判别,若加密狗存在且状态正常,则执行对数据库访问,访问结束后向业务逻辑层返回访问结果;若加密狗不存在或状态不正常,放弃对数据库的访问,向业务逻辑层返回错误代码。伺服程序操作完成后,业务逻辑层根据伺服程序返回的状态,向客户端返回结果,此结果可以是错误代码,也可以是正常处理结果。采用上述方法可以保护C/S结构和B/S结构的网路软件不被非授权复制使用。
[0012] 本方案允许将部分对数据库访问操作置于业务逻辑层中,如将对数据库的查询放在业务逻辑层中,而将对数据库写入、修改操作放到狗服务器中,这样未被授权的用户可使用网络软件的部分功能,而授权用户可以使用网络软件的全部功能,以此来实现基于加密狗的网络软件的分级权限。
[0013] 在实际应用中完全不涉及数据库操作的网络软件非常少,对于完全不涉及数据库操作的网络软件,对此类网络软件可以人为地设置数据库,并强制软件系统访问,并以此来实现对整个网络软件的加密保护。

附图说明

[0014] 图1现有的网络狗加密原理(以赛孚耐网络狗为例)
[0015] 图2加密保护后的网络软件结构
[0016] 图3本方案原理图
[0017] 图4加密保护后网络软件执行流程
[0018] 图5C/S结构软件加密保护示例
[0019] 图6B/S结构软件加密保护示例

具体实施方式

[0020] 以下对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0021] 第一实施例
[0022] 图4是本发明第一实施例的一种结构图,如图4所示,在该实例中描述了对C/S结构网络软件的加密保护方案,其中:1是服务器(Server),2是客户端(Client),3是狗服务器,服务器、客户端均未加密保护,仅对狗服务器进行了加密保护。
[0023] 本实施例中,狗服务器中仅包含对数据库写操作,对数据库的查询操作被放置在服务器中,即未授权用户还可以使用该网络软件部分功能,允许未被授权的用户对数据库中已有数据进行查询,但涉及对数据中数据进行修改、添加、删除操作的功能时,非授权用户均不能使用。本实施例实现了基于加密狗的分级权限。
[0024] 第二实施例
[0025] 图5是本发明第二实施例的一种结构图,如图5所示,在该实施例中描述了对B/S结构网络软件的加密保护方案,其中3是狗服务器,本实施例中,仅对狗服务器进行了加密保护。
[0026] 本实施例中,狗服务器中包含了对数据库所有操作,即对未授权用户可以使用被加密保护的网络软件,但所有涉及数据库操作的功能均不能使用。