一种软件保护方法及装置制造方法及图纸

技术编号:20993013 阅读:25 留言:0更新日期:2019-04-29 22:52
本发明专利技术提供了一种软件保护方法及装置,通过客户端侧的挂失列表检查软件保护装置是否被挂失,若未挂失则进一步对软件保护装置的脱机使用次数和/或时间限制等风险因子进行检查,若超出预设阈值范围,则通过服务器与软件保护装置进行双向签名验证,以确保软件保护装置的真实性,服务器若验证通过则进一步检查服务器侧的挂失列表中软件保护装置是否被挂失,确保软件保护装置的安全性。采用本发明专利技术提供的方法,即使软件保护装置丢失,也不能继续非法使用软件保护装置,从而保证了软件厂商和用户的利益。

A Software Protection Method and Device

The invention provides a software protection method and device, which checks whether the software protection device is lost through the loss list on the client side, further checks the risk factors such as the number of off-line use and/or time limit of the software protection device if it is not lost, and verifies the bidirectional signature between the server and the software protection device if it exceeds the preset threshold range, so as to ensure that the software protection device is lost. The authenticity of the software protection device. If the server passes the verification, it will further check whether the software protection device is lost in the loss list on the server side to ensure the security of the software protection device. The method provided by the invention can not continue to illegally use the software protection device even if the software protection device is lost, thus guaranteeing the interests of software manufacturers and users.

【技术实现步骤摘要】
一种软件保护方法及装置
本专利技术涉及计算机软件
,尤其涉及一种软件保护方法及装置。
技术介绍
目前,使用软件保护装置实现软件安全保护和版权保护成为了最主要的手段。软件保护装置特指一种附加在计算机接口(比如,USB接口、串口、并口等接口)上的硬件设备,对运行在计算机上的特定的软件进行软件安全保护和版权保护。通常,软件保护装置是由软件厂商提供给用户的,为了防止用户丢失软件保护装置从而造成诸多损失,因此,软件厂商提供了一种将丢失的软件保护装置能够挂失的方式,通常是将软件保护装置的设定数据信息添加到挂失列表中,使用软件保护装置时,需要检查挂失列表中是否存在当前软件保护装置的设定数据信息。挂失列表通常是软件从服务器中定期下载的,软件通过对比当前主机的时间与挂失列表的更新时间来确保挂失列表的有效性,然而一旦软件保护装置丢失被他人捡到,即使用户将装置设定数据信息添加到挂失列表中,他人也可以通过篡改主机时间以保持挂失列表有效,从而非法使用软件保护装置和软件,这样会给用户造成巨大的损失。
技术实现思路
为了解决现有技术中存在的问题,本专利技术实施例提供了一种软件保护方法及装置,能够使得软件和软件保护装置更安全,用户的利益进一步得到保障。其中,本专利技术实施例提供的一种软件保护方法包括:步骤S1、软件保护装置等待接收客户端发送命令;步骤S2、软件保护装置接收客户端发送的命令,解析命令,获取当前自身的工作状态,若解析得到的命令为启动命令,且自身的工作状态为未启动状态时,则执行步骤S3;若解析得到的命令为联机认证响应命令,且自身的工作状态为等待联机认证状态时,则执行步骤S4;步骤S3、软件保护装置获取风险因子,判断风险因子是否在预设阈值范围内,若不在所述预设阈值范围内则生成联机认证请求,将自身的工作状态修改为等待联机认证状态,向客户端返回联机认证请求;步骤S4、软件保护装置根据联机认证响应命令获取第二认证数据,验证第二认证数据,若验证通过则执行步骤S5,若验证不通过则执行步骤S6;步骤S5、软件保护装置根据联机认证响应命令获取软件保护装置的工作状态设定数据,若工作状态设定数据为启动则将自身的工作状态修改为已启动状态,向客户端返回状态数据,若工作状态设定数据为锁定则将自身的工作状态修改为已锁定状态,向客户端返回状态数据;步骤S6、软件保护装置生成联机认证失败数据,将自身的工作状态修改为未启动状态,向客户端返回联机认证失败数据。本专利技术实施例提供的一种软件保护装置包括:接收模块:用于接收客户端发送的命令;解析模块:用于解析接收模块接收到的客户端发送的命令;获取模块:用于获取当前自身的工作状态;获取模块:还用于当接收模块接收到客户端发送的启动命令,且获取模块获取到的当前自身的工作状态为未启动状态时,获取风险因子;判断模块:用于判断获取模块获取的风险因子是否在预设阈值范围内;生成模块:用于当判断模块判断风险因子不在预设阈值范围内时,生成联机认证请求;修改模块:用于当生成模块生成联机认证请求后,将自身的工作状态修改为等待联机认证状态;发送模块:用于向客户端发送生成模块生成的联机认证请求;获取模块:还用于当接收模块接收到客户端发送的联机认证响应命令,且获取模块获取到的当前自身的工作状态为等待联机认证状态时,根据联机认证响应命令获取第二认证数据;验证模块:用于验证获取模块获取的第二认证数据;获取模块:还用于当验证模块验证通过时,根据联机认证响应命令获取工作状态设定数据;修改模块:还用于当获取模块获取的工作状态设定数据为启动时将自身的工作状态修改为已启动状态;修改模块:还用于当获取模块获取的工作状态设定数据为锁定时将自身的工作状态修改为已锁定状态;发送模块:还用于当修改模块将自身的工作状态修改为已启动或已锁定状态时,向客户端发送状态数据;生成模块:还用于当验证模块验证不通过时,生成联机认证失败数据;修改模块:还用于当生成模块生成联机认证失败数据时,将自身的工作状态修改为未启动状态;发送模块:还用于向客户端发送生成模块生成的联机认证失败数据。本专利技术实施例提供的技术方案的有益效果是:本专利技术通过客户端侧的挂失列表检查软件保护装置是否被挂失,若未挂失则进一步对软件保护装置的脱机使用次数和/或时间限制等风险因子进行检查,若超出预设阈值范围,则通过服务器与软件保护装置进行双向签名验证,以确保软件保护装置的真实性,服务器若验证通过则进一步检查服务器侧的挂失列表中软件保护装置是否被挂失,确保软件保护装置的安全性。采用本专利技术提供的方法,即使软件保护装置丢失,也不能继续非法使用软件保护装置,从而保证了软件厂商和用户的利益。附图说明图1是本专利技术实施例1提供的一种软件保护方法流程图;图2-1、图2-2是本专利技术实施例2提供的一种软件保护方法流程图;图3是本专利技术实施例3提供的一种软件保护装置框图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1本专利技术实施例一提供了一种软件保护方法,本专利技术中客户端软件需要与软件保护装置交互才能正常运行,在软件保护装置启动之前首先需要客户端检查软件保护装置是否被挂失,客户端本地保存有第一挂失列表,当客户端确定软件保护装置在第一挂失列表中时客户端软件停止运行,当客户端确定软件保护装置不在第一挂失列表时执行本专利技术提出的方法。如图1所示,本实施例的方法包括:101、软件保护装置等待接收客户端发送命令;在本专利技术实施例中,软件保护装置可以是加密锁,还可以是软件许可锁等。客户端侧的软件通过与软件保护装置交互才能正常运行。102、软件保护装置接收客户端发送的命令,解析命令,获取当前自身的工作状态,若解析得到的命令为启动命令,且自身的工作状态为未启动状态时,则执行步骤103;若解析得到的命令为联机认证响应命令,且自身的工作状态为等待联机认证状态时,则执行步骤107;在本实施例中,客户端发送的命令具体为:启动命令、联机认证响应命令、读取命令等软件保护装置能够执行的命令;软件保护装置的工作状态可以有:未启动、等待联机认证、已锁定、已启动状态;具体地,软件保护装置根据工作状态标识获取当前工作状态。软件保护装置获取当前自身的工作状态为已锁定状态时,向客户端返回已锁定数据。103、软件保护装置获取风险因子;在本实施例中,风险因子是在软件保护装置出厂时预先设定的;具体地,风险因子可以是软件保护装置的脱机认证次数,可以是软件保护装置的联机认证的时间间隔,还可以是软件保护装置脱机认证的次数和软件保护装置的联机认证时间间隔;其中,软件保护装置的脱机认证次数是通过在软件保护装置中预置的脱机认证次数计时器得到的,软件保护装置的联机认证时间间隔具体为:软件保护装置通过获取当前时间和预存的联机认证时间,计算当前时间和预存的联机认证时间的差值,将当前时间和预存的联机认证时间的差值作为软件保护装置联机认证的时间间隔。104、软件保护装置判断获取的风险因子是否在预设阈值范围内,若在则执行105,若不在则执行106;具本文档来自技高网...

【技术保护点】
1.一种软件保护方法,其特征在于,所述方法包括:步骤S1、软件保护装置等待接收客户端发送命令;步骤S2、所述软件保护装置接收所述客户端发送的命令,解析所述命令,获取当前自身的工作状态,若解析得到的命令为启动命令,且自身的工作状态为未启动状态时,则执行步骤S3;若解析得到的命令为联机认证响应命令,且自身的工作状态为等待联机认证状态时,则执行步骤S4;步骤S3、所述软件保护装置获取风险因子,判断所述风险因子是否在预设阈值范围内,若不在所述预设阈值范围内则生成联机认证请求,将自身的工作状态修改为等待联机认证状态,向所述客户端返回所述联机认证请求;步骤S4、所述软件保护装置根据联机认证响应命令获取第二认证数据,验证所述第二认证数据,若验证通过则执行步骤S5,若验证不通过则执行步骤S6;步骤S5、所述软件保护装置根据联机认证响应命令获取所述软件保护装置的工作状态设定数据,若工作状态设定数据为启动则将自身的工作状态修改为已启动状态,向客户端返回状态数据,若工作状态设定数据为锁定则将自身的工作状态修改为已锁定状态,向客户端返回状态数据;步骤S6、所述软件保护装置生成联机认证失败数据,将自身的工作状态修改为未启动状态,向客户端返回联机认证失败数据。...

【技术特征摘要】
1.一种软件保护方法,其特征在于,所述方法包括:步骤S1、软件保护装置等待接收客户端发送命令;步骤S2、所述软件保护装置接收所述客户端发送的命令,解析所述命令,获取当前自身的工作状态,若解析得到的命令为启动命令,且自身的工作状态为未启动状态时,则执行步骤S3;若解析得到的命令为联机认证响应命令,且自身的工作状态为等待联机认证状态时,则执行步骤S4;步骤S3、所述软件保护装置获取风险因子,判断所述风险因子是否在预设阈值范围内,若不在所述预设阈值范围内则生成联机认证请求,将自身的工作状态修改为等待联机认证状态,向所述客户端返回所述联机认证请求;步骤S4、所述软件保护装置根据联机认证响应命令获取第二认证数据,验证所述第二认证数据,若验证通过则执行步骤S5,若验证不通过则执行步骤S6;步骤S5、所述软件保护装置根据联机认证响应命令获取所述软件保护装置的工作状态设定数据,若工作状态设定数据为启动则将自身的工作状态修改为已启动状态,向客户端返回状态数据,若工作状态设定数据为锁定则将自身的工作状态修改为已锁定状态,向客户端返回状态数据;步骤S6、所述软件保护装置生成联机认证失败数据,将自身的工作状态修改为未启动状态,向客户端返回联机认证失败数据。2.根据权利要求1所述的方法,其特征在于,所述风险因子具体为:所述软件保护装置的脱机认证次数;所述软件保护装置获取风险因子,判断所述风险因子是否在预设阈值范围内,具体为:所述软件保护装置获取脱机认证次数,将脱机认证次数作为风险因子,判断脱机认证次数是否在第一预设阈值范围内。3.根据权利要求2所述的方法,其特征在于,所述若工作状态设定数据为启动则修改为已启动状态,具体为:若工作状态设定数据为启动,所述软件保护装置将脱机认证次数计数器置为零,并将自身的工作状态修改为已启动状态。4.根据权利要求2所述的方法,其特征在于,所述风险因子还包括:所述软件保护装置联机认证的时间间隔;所述软件保护装置获取风险因子,判断风险因子是否在预设阈值范围内,具体为:所述软件保护装置获取脱机认证的次数、当前时间和预存的联机认证时间,根据当前时间和预存的联机认证时间获取软件保护装置联机认证的时间间隔;判断所述脱机认证次数是否在第一预设阈值范围内、且所述软件保护装置联机认证的时间间隔是否在第二预设阈值范围内。5.根据权利要求4所述的方法,其特征在于,所述若工作状态设定数据为启动则修改为已启动,具体为:若工作状态设定数据为启动,所述软件保护装置将脱机认证次数计数器置为零,且,从第二认证数据中获取服务器签名时间,将预存的联机认证时间更新为服务器签名时间,并将自身的工作状态修改为已启动。6.根据权利要求1所述的方法,其特征在于,所述风险因子具体为:软件保护装置联机认证的时间间隔;所述软件保护装置获取风险因子,判断所述风险因子是否在预设阈值范围内,具体为:所述软件保护装置获取当前时间和预存的联机认证时间;计算当前时间和预存的联机认证时间的差值,将当前时间和预存的联机认证时间的差值作为软件保护装置联机认证的时间间隔;判断所述联机认证的时间间隔是否在第二预设阈值范围内。7.根据权利要求6所述的方法,其特征在于,所述若工作状态设定数据为启动则修改为已启动,具体为:若工作状态设定数据为启动,所述软件保护装置从第二认证数据中获取服务器签名时间,将预存的联机认证时间更新为服务器签名时间,并将自身的工作状态修改为已启动。8.根据权利要求4或6所述的方法,其特征在于,所述软件保护装置获取当前时间具体为:所述软件保护装置获取所述客户端的当前主机时间;或,所述软件保护装置从所述启动命令中获取所述客户端传入的主机时间;或,所述软件保护装置获取软件保护装置内部时钟的当前时间。9.根据权利要求1所述的方法,其特征在于,所述联机认证请求中包括:所述软件保护装置生成的第一认证数据;所述软件保护装置生成联机认证请求具体为:所述软件保护装置生成第一随机数,使用私钥对所述第一随机数进行签名得到第一签名结果,将所述第一随机数和第一签名结果组合得到第一认证数据,根据所述第一认证数据生成联机认证请求。10.根据权利要求9所述的方法,其特征在于,所述软件保护装置验证所述第二认证数据具体为:所述软件保护装置使用服务器侧公钥对第二认证数据中的第二随机数、服务器的签名时间和第二签名结果进行验证签名。11.根据权利要求9所述的方法,其特征在于,所述步骤S5中,所述根据联机认证响应命令获取所述软件保护装置的工作状态设定数据,具体为:所述软件保护装置根据联机认证响应命令获取第二认证数据,从第二认证数据中获取所述软件保护装置的工作状态设定数据。12.根据权利要求11所述的方法,其特征在于,所述软件保护装置验证所述第二认证数据具体为:所述软件保护装置使用服务器侧公钥对第二认证数据中的第二随机数、服务器的签名时间、所述软件保护装置的工作状态设定数据和第二签名结果进行验证签名。13.根据权利要求1所述的方法,其特征在于,所述软件保护装置判断所述风险因子是否在预设阈值范围内,若在预设阈值范围内所述软件保护装置将自身的工作状态修改为已启动,向客户端返回状态数据。14.根据权利要求1所述的方法,其特征在于,所述联机认证响应命令具体为:所述客户端根据服务器发送的包含有第二认证数据的联机认证成功数据生成的。15.根据权利要求1所述的方法,其特征在于,所述步骤S2中还包括:若解析得到的命令为执行操作命令,且自身的工作状态为已启动状态时,则执行相应的操作,向客户端返回相应的结果。16.根据权利要求1所述的方法,其特征在于,所述步骤S2中,所述获取当前自身的工作状态为已锁定状态时,向客户端返回已锁定数据。17.一种软件保护装置,其特征在于,所述装置包括:接收模块:用于接收客户端发送的命令;解析模块:用于解析所述接收模块接收到的客户端发送的命令;获取模块:用于获取当前自身的工作状态;所述获取模块:还用于当所述接收模块接收到客户端发送的启动命令,且所述获取模块获取到的当前自身的工作状态为未...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1