一种对软件的正版性进行远程验证的方法

文档序号:7694807阅读:306来源:国知局
专利名称:一种对软件的正版性进行远程验证的方法
技术领域
本发明涉及软件保护技术,特别涉及一种远程对软件的正版性进行验证 的方法。
背景技术
使用軟件保护装置是实现软件安全保护和版权保护的主要手段。装置中 存储着软件的使用许可,例如决定软件是否可以被使用,那些模块被使用等 等。软件保护装置特指一种附加在计算机接口 (比如,USB接口、串口、并 口等接口 )上的硬件设备,对运行在计算机上的特定的软件进行软件安全保 护和版权保护。现代的软件保护装置,例如USB加密锁,采用高强度智能 卡芯片和先进的密码学技术,具有一定的运算和存储能力,同时难以被破解 和复制,在高强度软件版权保护中具有广泛的应用。
为了最大程度保护软件不被盗版,最先进的软件保护装置采用了代码移 植的功能,即允许软件开发商将软件的 一部分功能移植到软件保护装置内部 去执行。因为软件保护装置本身为一种高度安全的设备,例如采用了智能卡 芯片,所以硬件本身几乎不可能被复制,而其中保存的被移植的软件功能也 不可能被读出来。这样,只要破解者不能成功猜出软件保护装置内部的移植 代码,就不可能让软件离开软件保护装置而独立运行,从而保护软件不被盗 版。
但是,并非所有软件开发商都能充分使用软件保护装置的先进功能,要 么是因为开发商在加密过程中所采用的技术含量较低,要么开发商的软件本 身不适合采用高强度的加密。在一些情况下,软件开发商的软件可能被破解, 盗版者可以制作出与软件开发商外观极为相似甚至完全相同的盗版软件保护装置,并进行非法销售。这种方式已经成为商业软件领域中最普遍的盗版 形式,由于利益的驱使,软件开发商的代理商也往往加入到销售盗版的队伍 中来。
蒙受损失的不仅仅是软件开发商,最终用户因此所蒙受的损失更大最 终用户经常花费了正版软件的成本结果购买了盗版软件。 一方面绝大多数软 件没有实现实名注册,即便有注册过程软件其注册信息也往往是虚假的,另 一方面销售盗版的角色往往是合法代理或者最终用户无法鉴别的仿冒代理, 所以最终用户通常很难鉴别自己所购买的软件是否为正版。

发明内容
为了解决上述问题,本发明提出了一种远程对软件正版性进行验证的方 法。通过在软件保护装置中增加一个正版验证模块,并架设一个远程验证服 务器,用户可以自行对所购买的软件进行正版性验证,防止购买假冒盗版产品。
根据本发明的一个方面,提供一种对软件的正版性进行远程验证的方 法,其特征在于,该方法包括步骤
(1) 将软件保护装置与本地计算机相连接;
(2) 本地计算机上运行的软件与远程服务器通过网络连接;
(3) 通过正版验证模块对远程服务器作出响应;
(4) 远程服务器验证响应结果,确定软件是否为正版。 根据本发明的一个方面,其特征还在于,在步骤(3)中,通过正版验
证模块对远程服务器的挑战作出响应。
根据本发明的一个方面,其特征还在于,在步骤(3)中,正版验证模 块接受远程服务器发来的挑战数据,对挑战数据作出响应。
根据本发明的一个方面,其特征还在于,所述的挑战数据是随机数或者 不重复的数据。
根据本发明的一个方面,其特征还在于,不重复的数据是时间戳。根据本发明的一个方面,其特征还在于,对应的响应过程是对挑战数 据进行密码学运算处理。
根据本发明的一个方面,其特征还在于,处理算法包括数字签名、计 算MAC验证码、对数据进行加密运算。
根据本发明的一个方面,其特征还在于,对应的服务器验证过程为对 正版验证模块计算出来的响应进行验证,如果验证正确则认为软件为正版。
根据本发明的一个方面,其特征还在于,验证方法与正版验证模块所采 用的密码学处理算法相对应。
根据本发明的一个方面,其特征还在于,远程服务器与正版验证模块所 使用的密码学算法的密钥是相同的或者成对的。
根据本发明的一个方面,其特征还在于,在步骤(2)中,本地计算机 与远程服务器之间的连接采用C/S结构或者B/S结构。


图1为本发明的示意图。
图2为根据本发明的一种实施方式的流程图。
具体实施例方式
本发明中的软件保护装置功能模块为对软件实现保护的模块,例如深思 洛克精锐系列产品的代码移植功能模块。软件保护装置的功能模块分为多 种,都属于行业内成熟和公开的技术。
本发明的具体验证过程为
A、 用户将软件保护装置连接到本地计算机上;
B、 本地运行的软件与远程服务器进行连接,通过正版验证模块来对远 程服务器的挑战(challenge)作出响应;
C、 远程服务器验证响应结果,确定软件是否为正版。
其中,所述的正版验证模块可以是一个专用的硬件模块,也可以是软件保护程序中的一段固件代码。在步骤B中正版验证模块完成的功能为接受 远程服务器发来的挑战数据,对挑战数据作出响应。
所述的挑战数据可以是一个随机数,也可以是一段不会重复的数据,如 时间戳。
对应的响应过程为对挑战数据进行密码学运算处理。处理算法包括 数字签名、计算MAC验证码、对数据进行加密运算。
对应的服务器验证过程为对正版验证才莫块计算出来的响应进行验证, 如果验证正确则认为软件为正版。验证方法与正版验证模块所采用的密码学 处理算法相对应。
远程服务器与正版验证模块所使用的密码学算法的密钥是相同的或者 成对的,能够实现互相验证的目标。
步骤B中,本地与远程服务器之间的连接既可以采用C/S结构,也可 以采用B/S结构。
下面结合附图对本发明的具体实施例进行详细描述。
本实施例中,软件保护装置中包含一对专用的RSA密钥,其中私钥Kr 被软件保护装置中的正版验证模块所使用,用于对远程服务器所发出的挑战 数据进行数字签名。公钥Kp远程服务器保留有备份,用于对数字签名进行 验证。
所述的正版模块为一段固件程序代码,可以通过命令的方式被访问。代 码的功能为接收一段定长的数据,并对数据进行数字签名。
本实施例中远程服务器提供Web服务,即验证过程为B/S架构。 参考图2,本实施例的具体操作步骤为
步骤101:将软件保护装置连接到本地计算机上,启动浏览器软件连接 远程验证服务器;
步骤102:如果用户为首次使用,可能需要下载相关的控件以实现对软 件保护装置的访问;否则直接跳入步骤103;步骤103:远程服务器将当前的服务器时间组成时间戳,格式为8字节 时间数据格式,将时间戳发送给用户浏览器;
步骤104:浏览器通过控件调用软件保护装置中的正版验证模块,将时 间戳传入正版验证模块要求计算响应;
步骤105:正版验证模块利用Kr对时间戳进行数李签名处理,将签名 结果返回给浏览器作为响应数据;
步骤106:浏览器将响应数据发送给远程服务器;
步骤107:远程服务器利用Kp对响应结果进行验证,如果验证通过则 在浏览器上显示正版信息,否则显示为盗版。
由于软件保护装置的不可复制性,所以盗版者即使能够破解软件使之正 常运行,但无法得到有效的RSA私钥Kr,所以盗版软件保护装置不可能通 过正版验证。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等, 均应包含在本发明的保护范围之内。
权利要求
1. 一种对软件的正版性进行远程验证的方法,其特征在于,该方法包括步骤(1)将软件保护装置与本地计算机相连接;(2)本地计算机上运行的软件与远程服务器通过网络连接;(3)通过正版验证模块对远程服务器作出响应;(4)远程服务器验证响应结果,确定软件是否为正版。
2、 根据权利要求1所述的方法,其特征在于,在步骤(3)中,通过正 版验证模块对远程服务器的挑战作出响应。
3、 根据权利要求2所述的方法,其特征在于,在步骤(3)中,正版验 证模块接受远程服务器发来的挑战数据,对挑战数据作出响应。
4、 根据权利要求3所述的方法,其特征在于,所述的挑战数据是随机 数或者不重复的数据。
5、 根据权利要求4所述的方法,其特征在于,不重复的数据是时间戳。
6、 根据权利要求1-5所述的任一方法,其特征在于,对应的响应过程 是对挑战数据进行密码学运算处理。
7、 根据权利要求6所述的方法,其特征在于,处理算法包括数字签 名、计算MAC-睑证码、对数据进行加密运算。
8、 根据权利要求1-5所述的任一方法,其特征在于,对应的服务器验 证过程为对正版验证模块计算出来的响应进行验证,如果验证正确则认为 软件为正版。
9、 根据权利要求8所述的方法,其特征在于,— 睑i正方法与正版验证才莫 块所采用的密码学处理算法相对应。
10、 根据权利要求9所述的方法,其特征在于,远程服务器与正版验证 模块所使用的密码学算法的密钥是相同的或者成对的。
11、 根据权利要求1所述的方法,其特征在于,在步骤(2)中,本地 计算机与远程服务器之间的连接采用C/S结构或者B/S结构。
全文摘要
本发明公开了一种远程验证软件正版性的技术方法。本发明通过在软件保护装置中增加一个正版验证模块,并架设一个远程验证服务器,可以在没有客户信息数据库的情况下对软件的正版性进行验证。由于验证的过程不要求客户进行注册,因此实施非常简便但可靠性远远高于现有的验证方法,有效防止对最终用户欺骗行为的发生。
文档编号H04L29/06GK101290648SQ20081011194
公开日2008年10月22日 申请日期2008年5月19日 优先权日2008年5月19日
发明者孙吉平, 勇 韩 申请人:北京深思洛克数据保护中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1