乔丽平
(邢台职业技术学院,河北 邢台 054035)
网络软件浮动管理技术的研究
乔丽平
(邢台职业技术学院,河北邢台054035)
目前软件行业所面临的最大问题就是软件安全问题,本文提出一种基于网络环境采用许可证技术验证软件安全的方法来进行软件管理。软件许可管理是用于商业软件与共享软件版权保护以及自由软件、开源软件开发管理的最主要技术。软件许可证在部署形式上分为浮动许可证和结点许可证两大类。浮动许可证需要在网络环境中部署一个或多个许可证服务器为其他的客户端提供许可证服务,从而保护软件版权。
浮动管理;许可证文件;软件加密;
软件许可证是一种格式合同,由软件作者与用户签订,用以规定和限制软件用户使用软件(或其源代码)的权利,以及作者应尽的义务。对于提供软件保护的浮动许可证管理技术,目前已有国内公司自主研发成功软件许可证管理相关产品,以及能释放“占而不用”软件许可证动态控制器等产品。但是,针对安全方面的漏洞并不能有效解决,一般都是软件开发商研发自己的浮动许可证管理系统,难以实现其它软件的兼容,并且对数据统计和分析方面束手无策,与国外的技术仍有很大差别。
影响基于软件许可证管理软件方法的最重要因素就是数据安全问题和软件管理问题,本文正是从这两个因素出发,研究基于客户端数据验证、服务端加密技术验证以及硬件加密信息验证的三重交叉验证方式的网络软件浮动管理技术,旨在一个浮动管理的网络平台,为用户计算机上不同软件产品、不同软件版本同时进行管理的一种技术。同时,本课题提出了在网络环境中三重交叉验证技术的应用,以及在这一技术的支持下如何对所提供的应用软件进行更有效、更安全的管理策略,从而达到更好保护软件的目的。
本文将从客户端数据验证、服务端浮动管理策略以及基于TCP/IP的通信模式三个方面进行研究和分析?。
1.客户端数据验证
用户在客户端启动软件后就会触发客户端的数据验证,验证的信息格式如下:
struct softwareInformation
{
string name;//软件名称
string beta;//软件版本
string date;//软件有效期
string language;//软件支持的语言
string m_allname;//软件全称
bool IsEnable;//软件是否可以启动
}
需要判断用户启动的软件名称及版本是否浮动管理的对象,并比较它的有效期是否失效。数据验证的整个过程如图1所示:
图1 客户端数据验证流程图
从图1中可知,启动信息验证后,一方面获取打开的软件名称及版本信息,并解析相应的信息,另一方面读取许可证文件,由于许可证文件采用加密技术,因此进行数据解密。然后比较两者的信息,并返回验证结果,验证通过后需要远程访问服务器,并由服务器进行第二次验证以及浮动管理。
2.服务端浮动管理策略
服务端系统包含两部分,一部分是信息验证,另一部分是客户端的浮动管理。其中信息验证又分软件加密技术验证与软件狗硬件信息比对验证。对于验证通过的客户端进行浮动管理,其管理策略如图 2所示。
图2 服务端浮动管理策略图
图 2中可以看到服务端程序启动后,首先进行服务端信息验证,本文研究的网络软件浮动管理平台需要绑定服务器,因此会进行软件硬件综合验证,以防止用户私自篡改服务器的违规行为。对于服务端信息验证的方式包括:验证服务端的MAC地址、验证服务端的许可证文件信息、验证服务端安装的软件狗信息以及对服务端机器时间进行校对。
服务端信息验证合格后,服务端平台才正式运行,然后进入客户端请求资源的浮动管理状态,需要对请求资源的客户端进行软件信息验证,验证完毕后,返回相应结果,客户端的软件会正常打开。由于服务端的管理策略是浮动许可证个数管理,因此需要在线统计当前获取资源的客户端个数,并遵循三个规则:同时在线的客户端资源个数不能超过设定的许可证个数;如果已超过个数,新客户端需要等待资源空闲,进入队列管理;对正常退出的客户端,立即释放资源,并从队列中取出最先等待资源的客户端,进行信息验证完毕后,客户端便可以获取访问资源。
3.基于TCP/IP的通信模式
客户端与服务端的请求和相应是基于 TCP/IP协议的 socket通信套接字完成的,其通信模式如图 3所示:
图3 基于TCP/IP通信模式设计图
由图 3可知,多个客户端通过网络与服务端进行通信,其通信方式包括:客户端请求资源、服务端响应拒绝客户端请求、客户端退出请求以及服务端对客户端网络环境的异常检测。其主要目的是为了完成服务端对客户端在线请求访问资源的浮动管理方式。对于网络异常的客户端,服务端会从资源管理中释放客户端的访问资源,并在日志记录中记录客户端的网络异常现象。
基于网络进行的客户端与服务端的信息验证和比较的载体就是软件许可证,本文研究的软件浮动管理平台所采用的许可证格式如图4所示。
图4 license文件格式
本文针对目前软件行业的软件盗版问题进行分析,并考察当前相应的软件保护技术,然后提出网络软件浮动管理技术的研究方案,该方案在网络环境中通过 C/S结构,进行客户端的验证,管理和注销,采用数字加密和软件狗加密的安全策略,服务器能够及时地监测客户端软件的异常退出,而且能够定时地保护机器时间的准确性和license文件的合法性,从而有效地控制软件的运行和保护软件的安全,有效地解决软件盗版的问题,这一成果在IT行业中有较大的应用前景。
[1]乔丽平,陈晓纪.基于license文件的软件加密技术的研究与应用[J].邢台职业技术学院学报,2013(1).
[2]伍晓宇.浮动许可证加密系统的研制[J].计算机应用,1999(10).
[3]刘佳娜,张林龙,钱松荣.基于ACE的软件许可证系统设计和实现[J].计算机工程,2006(9).
[4]候俊杰.深入浅出MFC[M].武汉:华中科技大学出版社,2001.
(责任编辑 李建武)
Research on the Technology of Network Software Floating Management
QIAO Li-ping
(Xingtai Polytechnic College, Xingtai, Hebei 054035, China)
At present,the biggest problem in the software industry is software security.In this paper,a method which can verify the security of the software on the basis of the network is proposed to carry out software management.Software license management is the most important technology for the protection of the copyright protection of the commercial software and the shared software and free software and open source software development and management.Software licenses are divided into two categories:floating licenses and node licenses in the form of deployment.The floating license requires that one or more licenses be deployed in a network environment to provide a license for other clients,thereby protecting software copyright.
floating management;license file;software encryption
TP311
A
1008—6129(2016)01—0092—04
2016—01—05
河北省科技支撑计划项目——“基于三重交叉验证的网络软件浮动管理技术的研究与应用”,项目编号:15210133。
乔丽平(1984—),河北邢台人,邢台市职业技术学院信息工程系,讲师。