一种Web系统许可证验证方法转让专利

申请号 : CN201410226500.7

文献号 : CN104023009B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 莫展鹏杨松季统凯

申请人 : 国云科技股份有限公司

摘要 :

本发明涉及软件许可证技术领域,特别是指一种Web系统许可证验证机制。本发明首先识别请求URL;然后以URL为标识,写到许可证文件中;然后加密成密文并保存在Web系统中;Web系统初始化时把密文解密并输出到内存,然后通过许可证中的功能的URL建立一个多叉树;Web系统接收到对特定功能的请求,把请求的URL作为查找值在多叉树中进行匹配查找,如果查找到对应的URL,说明功能已被授权,请求进行下一步的处理,一直到最后返回响应;否则,对请求进行拦截,立即返回功能请求未被授权的响应。本发明提供了一种基于多叉树查找的Web系统许可证验证机制,适用于功能多并且需要对功能进行细粒度的授权许可的Web系统。

权利要求 :

1.一种Web系统许可证验证方法,其特征在于:具体包括如下步骤:步骤1:识别每一个功能对应的请求URL;

步骤2:以功能的URL为标识,把这个标识写到许可证文件中;

步骤3:通过非对称加密算法将许可证文件加密成密文并保存在Web系统中;

步骤4:Web系统初始化时通过对应的非对称解密算法将密文解密并输出到内存;

步骤5:通过许可证中授权功能的URL建立一个多叉树;

步骤6:Web系统接收到对特定功能的请求,将请求的URL作为查找值在多叉树中进行匹配查找;如果查找到对应的URL,说明功能已被授权,请求进行下一步的处理,一直到最后返回响应;否则,对请求进行拦截,立即返回功能请求未被授权的响应;

所述的通过许可证中的授权功能的URL建立一个多叉树步骤如下:步骤1:将许可证中各个功能的URL按照分号“/”分割成不同级的标识符;

步骤2:首先有一个多叉树的根节点“/”,按级别把标识符作为树节点插入到多叉树中;

步骤3:插入时如果同一个根节点下已经有相同的节点时,那么不重新插入,如此循环,直到所有的URL处理完为止;处理完以后,建立多叉树;

所述的请求URL是访问Web系统某个页面或调用Web系统某个接口对应的唯一标识符;

请求URL采用多级的结构,级之间以分号隔开;

所述的非对称加密算法加密和解密是指使用公钥文件对许可证文件进行加密,使用私钥文件对许可证文件进行解密;

所述的将密文解密并输出到内存是指密文的许可证文件解密成明文以后,保存成内存中的一个对象;

所述的将请求的URL作为查找值在多叉树中进行匹配查找的步骤如下:步骤1:将请求的URL按照分号“/”分割成不同级的标识符;

步骤2:在多叉树的二层节点中查找请求URL的一级标识符,如果找不到,那么说明请求的URL未被授权;如果能找到,继续在多叉树的三层节点中查找请求URL的二级标识符,如果找不到,那么说明请求的URL未被授权;如果能找到,继续在多叉树的四层节点中查找请求URL的三级标识符,如此一直往下,如果最后一级的标识符都能被找到,那么说明请求的URL已经被授权,对应的功能也被授权。

说明书 :

一种Web系统许可证验证方法

技术领域

[0001] 本发明涉及软件许可证技术领域,特别是指一种Web系统许可证验证方法。

背景技术

[0002] 在用户购买软件以后,软件系统一般通过许可证验证的方式来限制用户可以使用的功能,一般的软件许可证的验证机制是这样的:
[0003] 1、用户提供给软件厂商一些信息,如购买的版本信息,许可证有效期等;
[0004] 2、厂商为用户生成一个许可证,用户把许可证打开,然后把信息输入到软件中进行验证;
[0005] 3、在软件运行过程中,软件获取到许可证中的软件版本的信息,如商业版,然后对该版本的一个功能组合进行授权,在使用功能组合以外的功能时进行拦截。
[0006] 这种方法会有如下的问题:
[0007] 1、厂商返回的许可证文件中包含明文的信息,这部分信息容易泄露;
[0008] 2、具体版本的功能组合信息包含在软件当中,只要对这部分信息进行修改,用户就可以使用版本授权功能以外的功能;
[0009] 3、软件授权的灵活性低,可以控制的粒度不够小。

发明内容

[0010] 本发明解决的技术问题在于提供一种Web系统许可证验证方法,解决传统Web系统许可证验证机制安全性低,授权粒度过大等问题。
[0011] 本发明解决上述技术问题的技术方案是:
[0012] 具体包括如下步骤:
[0013] 步骤1:识别每一个功能对应的请求URL;
[0014] 步骤2:以功能的URL为标识,把这个标识写到许可证文件中;
[0015] 步骤3:通过非对称加密算法将许可证文件加密成密文并保存在Web系统中;
[0016] 步骤4:Web系统初始化时通过对应的非对称解密算法将密文解密并输出到内存;
[0017] 步骤5:通过许可证中授权功能的URL建立一个多叉树;
[0018] 步骤6:Web系统接收到对特定功能的请求,将请求的URL作为查找值在多叉树中进行匹配查找;如果查找到对应的URL,说明功能已被授权,请求进行下一步的处理,一直到最后返回响应;否则,对请求进行拦截,立即返回功能请求未被授权的响应;
[0019] 所述的通过许可证中的授权功能的URL建立一个多叉树步骤如下:
[0020] 步骤1:将许可证中各个功能的URL按照分号“/”分割成不同级的标识符;
[0021] 步骤2:首先有一个多叉树的根节点“/”,按级别把标识符作为树节点插入到多叉树中;
[0022] 步骤3:插入时如果同一个根节点下已经有相同的节点时,那么不重新插入,如此循环,直到所有的URL处理完为止;处理完以后,建立多叉树。
[0023] 所述的请求URL是访问Web系统某个页面或调用Web系统某个接口对应的唯一标识符;请求URL采用多级的结构,级之间以分号隔开。
[0024] 所述的非对称加密算法加密和解密是指使用公钥文件对许可证文件进行加密,使用私钥文件对许可证文件进行解密。
[0025] 所述的将密文解密并输出到内存是指密文的许可证文件解密成明文以后,保存成内存中的一个对象。
[0026] 所述的将请求的URL作为查找值在多叉树中进行匹配查找的步骤如下:
[0027] 步骤1:将请求的URL按照分号“/”分割成不同级的标识符;
[0028] 步骤2:在多叉树的二层节点中查找请求URL的一级标识符,如果找不到,那么说明请求的URL未被授权;如果能找到,继续在多叉树的三层节点中查找请求URL的二级标识符,如果找不到,那么说明请求的URL未被授权;如果能找到,继续在多叉树的四层节点中查找请求URL的三级标识符,如此一直往下,如果最后一级的标识符都能被找到,那么说明请求的URL已经被授权,对应的功能也被授权。
[0029] 本发明方案的有益效果如下:
[0030] 1、本发明的方法的许可证以密文的形式保存,并且在解密以后不容易被窃取,具有较高的安全性。
[0031] 2、本发明的方法能进行细粒度的授权,对功能比较多的大型Web系统的授权验证比较适用。
[0032] 3、本发明的方法根据Web系统的特点对比较功能集建立多叉树模型,能显著提高功能授权的验证效率,优于一般逐个比较机制算法复杂度的O(n),本发明采用的多叉树查找的算法复杂度与二叉树的查找算法复杂度O(log2n)相近。

附图说明

[0033] 下面结合附图对本发明进一步说明:
[0034] 附图1是本发明的流程图;
[0035] 附图2是本发明采用的多叉树的示例图。

具体实施方式

[0036] 如图所示,非对称加密算法有多种,这里采用RSA算法。
[0037] 首先把id/path的键值对写入到License.properties文件中,比如:
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044] 对查找不到的URL进行拦截:
[0045]
[0046]