CN109684791A - 一种软件保护方法及装置 - Google Patents

一种软件保护方法及装置 Download PDF

Info

Publication number
CN109684791A
CN109684791A CN201811600811.XA CN201811600811A CN109684791A CN 109684791 A CN109684791 A CN 109684791A CN 201811600811 A CN201811600811 A CN 201811600811A CN 109684791 A CN109684791 A CN 109684791A
Authority
CN
China
Prior art keywords
online
protecting equipment
working condition
module
software protecting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811600811.XA
Other languages
English (en)
Other versions
CN109684791B (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jianshi Chengxin Technologies Co.,Ltd.
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201811600811.XA priority Critical patent/CN109684791B/zh
Publication of CN109684791A publication Critical patent/CN109684791A/zh
Application granted granted Critical
Publication of CN109684791B publication Critical patent/CN109684791B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种软件保护方法及装置
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种软件保护方法及装置。
背景技术
目前,使用软件保护装置实现软件安全保护和版权保护成为了最主要的手段。软件保护装置特指一种附加在计算机接口(比如,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;
具体地,当风险因子为软件保护装置的脱机认证次数时,
判断获取的风险因子是否在预设阈值范围内,具体为:软件保护装置根据脱机认证计数器获取软件保护装置的脱机认证次数,将脱机认证次数作为风险因子,判断脱机认证次数是否在第一预设阈值范围内;
例如,第一预设阈值可以设置为10次;软件保护装置判断脱机认证次数是否在第一预设阈值范围内,具体为:软件保护装置获取软件保护装置的脱机认证次数,当获取的脱机认证次数为3时,则认定脱机认证次数在第一预设阈值范围内,当获取的脱机认证的次数为11时,则认定脱机认证次数不在第一预设阈值范围内;
具体地,当风险因子为软件保护装置联机认证的时间间隔时;
判断获取的风险因子是否在预设阈值范围内,具体为:软件保护装置获取当前时间和预存的联机认证时间,计算当前时间和预存的联机认证时间的差值,将当前时间和预存的联机认证时间的差值作为软件保护装置联机认证的时间间隔;判断联机认证的时间间隔是否在第二预设阈值范围内;
例如,第二预设阈值可以设置为7天;软件保护装置判断联机认证的时间间隔是否在第二预设阈值范围内,具体为:软件保护装置获取当前时间和预存联机认证时间,计算获取的当前时间和预存联机认证时间之间的差值,将差值作为联机认证的时间间隔,判断差值是否超过7天,若获取的当前时间为2015年2月1日,预存的联机认证时间为2015年2月5日,则认定联机认证时间间隔在第二预设阈值范围内,若获取的当前时间为2015年2月1日,预存的联机认证时间为2015年2月10日,则认定联机认证时间间隔不在第二预设阈值范围内;
具体地,当风险因子为软件保护装置的脱机认证次数和联机认证的时间间隔时;
判断获取的风险因子是否在预设阈值范围内,具体为:软件保护装置获取脱机认证的次数、当前时间和预存的联机认证时间,根据当前时间和预存的联机认证时间获取软件保护装置联机认证的时间间隔;判断脱机认证次数是否在第一预设阈值范围内、且软件保护装置联机认证的时间间隔是否在第二预设阈值范围内;
例如,第一预设阈值具体为:10次,第二预设阈值具体为:7天;软件保护装置判断脱机认证次数和联机认证时间间隔是否在预设阈值范围内,具体为:软件保护装置获取当前脱机认证次数、当前时间和预存联机认证时间,计算获取的当前时间和预存联机认证时间之间的差值,将计算得到的差值作为软件保护装置的联机认证时间间隔,当获取的当前脱机认证次数为3,差值未超过7天,则认定脱机认证次数在预设阈值范围内;当获取的当前脱机认证次数为3,差值超过7天,则认定脱机认证次数不在预设阈值范围内;当获取的当前脱机认证的次数为11时,差值未超过7天,则认定脱机认证次数不在预设阈值范围内;
具体地,软件保护装置获取当前时间具体为:软件保护装置获取客户端的当前主机时间,或,软件保护装置从启动命令中获取客户端传入的主机时间,或,软件保护装置获取软件保护装置内部时钟的当前时间。
105、软件保护装置正常启动,将自身的工作状态修改为已启动状态;
在本实施例中,软件保护装置正常启动具体为:软件保护装置将自身的工作状态修改为已启动状态,生成成功响应数据,发送给客户端,使得客户端软件正常运行。
106、软件保护装置生成联机认证请求,将自身工作状态修改为等待联机认证状态,向客户端返回联机认证请求;
在本实施例中,联机认证请求中包括:软件保护装置生成的第一认证数据;
软件保护装置生成联机认证请求具体为:软件保护装置生成第一随机数,使用私钥对第一随机数进行签名得到第一签名结果,将第一随机数和第一签名结果组合得到第一认证数据,根据第一认证数据生成联机认证请求;
其中,软件保护装置将自身工作状态修改为等待联机认证状态,具体为:软件保护装置根据工作状态标识将未启动状态修改为等待联机认证状态。
107、软件保护装置根据联机认证响应命令获取第二认证数据;
在本实施例中,联机认证响应命令具体为:客户端根据服务器发送的包含有第二认证数据的联机认证成功数据生成的命令。
第二认证数据具体为:服务器使用私钥对生成的第二随机数和服务器的签名时间进行签名得到第二签名结果,将第二随机数、服务器的签名时间和第二签名结果组合得到第二认证数据;
第二认证数据还可以具体为:服务器使用私钥对生成的第二随机数、服务器的签名时间和软件保护装置的工作状态设定数据进行签名得到第三签名结果,将第二随机数、服务器的签名时间和第三签名结果组合得到第二认证数据。
108、软件保护装置验证第二认证数据,若验证不通过则执行109,若验证通过则执行步骤110;
在本实施例中,软件保护装置验证第二认证数据具体为:软件保护装置使用服务器侧公钥对第二认证数据中的第二随机数、服务器的签名时间和第二签名结果进行验证签名。
109、软件保护装置生成联机认证失败数据,将自身工作状态修改为未启动状态,向客户端返回联机认证失败数据;
在本实施例中,软件保护装置将自身工作状态修改为未启动状态,具体为:软件保护装置根据工作状态标识将等待联机认证状态修改为未启动状态。
110、软件保护装置根据联机认证响应命令获取软件保护装置的工作状态设定数据;
在本实施例中,根据联机认证响应命令获取工作状态设定数据,还可以为:软件保护装置根据联机认证响应命令获取第二认证数据,从第二认证数据中获取软件保护装置的工作状态设定数据。
111、软件保护装置根据工作状态设定数据修改自身的工作状态,若工作状态设定数据为启动则修改为已启动状态,若工作状态设定数据为锁定则修改为已锁定状态,向客户端返回状态数据;
在本实施例中,根据工作状态设定数据修改自身的工作状态具体为:软件保护装置根据工作状态设定数据中的工作状态标识修改自身的工作状态。在本实施例中,若工作状态设定数据为启动则修改为已启动状态之后还包括:当风险因子为软件保护装置的脱机认证次数时,软件保护装置将脱机认证次数计数器置为零;
当风险因子为软件保护装置联机认证的时间间隔时,软件保护装置从第二认证数据中获取服务器的签名时间,将预存的联机认证时间更新为服务器的签名时间;
当风险因子为软件保护装置的脱机认证次数和联机认证的时间间隔时,软件保护装置将脱机认证次数计数器置为零,且,软件保护装置从第二认证数据中获取服务器的签名时间,将预存的联机认证时间更新为服务器的签名时间。
在本实施例中,若工作状态设定数据为锁定则修改为已锁定状态之后还包括:软件保护装置生成已锁定数据发送给客户端,客户端软件收到数据后提示错误数据,或自动退出。
在本实施例中,软件保护装置生成的第一随机数和接收到的服务器生成的第二随机数是根据预设算法生成的。
在本实施例中,软件保护装置接收客户端发送的命令还包括:读取文件、加解密、删除、修改等命令,当软件保护装置接收到客户端发送的上述命令,且获取到的自身工作状态为已启动时,执行上述命令对应的操作得到执行结果,向客户端返回执行结果。
在本实施例中,软件保护装置接收客户端发送的命令还包括关闭命令,当软件保护装置接收到客户端发送的关闭命令,且获取到的自身工作状态为已启动时,软件保护装置将已启动状态修改为未启动,并关机。
在本实施例中,软件保护装置若遇到断电情况时,例如:客户端主机重启或者软件保护装置重新插拔,软件保护装置重新上电时,软件保护装置的工作状态为未启动状态。
在本实施例中,软件保护装置的工作状态为未启动状态时,若接收到的命令不是启动命令,则向客户端返回错误数据;软件保护装置的工作状态为等待联机认证状态时,若接收到的命令不是联机认证响应命令,则向客户端返回错误数据。
实施例二
本发明实施例二提供了一种软件保护方法,适用于具有客户端、软件保护装置和服务器的系统,本发明中客户端软件需要与软件保护装置交互才能正常运行。
如图2所示,本实施例的方法具体包括:
201、客户端获取软件保护装置的第一标识信息;
在本实施例中,客户端获取的软件保护装置的第一标识信息包括:软件保护装置的唯一标识号,还可以包括:软件保护装置厂商编号和软件保护装置用户信息。
202、客户端确定获取的第一标识信息是否存在于第一挂失列表中,若存在则执行203,若不存在则执行204;
在本实施例中,第一挂失列表具体为:客户端通过服务器下载,并保存在客户端指定位置;
其中,第一挂失列表可以是客户端定期或不定期通过服务器下载保存;
第一挂失列表中具体包括:软件保护装置标识信息、软件保护装置挂失时间。
203、客户端软件停止运行,结束。
204、客户端向软件保护装置发送启动命令;
205、软件保护装置接收客户端发送的启动命令,获取当前自身的工作状态,若获取的工作状态为已锁定状态,则执行206,若获取的工作状态为未启动状态,则执行207,若获取的工作状态为其他状态,则返回错误;
在本实施例中,软件保护装置的其他状态包括:等待联机认证状态,已启动状态。
206、软件保护装置向客户端提示软件保护装置已锁定数据,结束。
207、软件保护装置根据启动命令获取风险因子;
在本实施例中,风险因子是在软件保护装置出厂时预先设定的;具体地,风险因子可以是软件保护装置的脱机认证次数,可以是软件保护装置的联机认证的时间间隔,还可以是软件保护装置脱机认证的次数和软件保护装置的联机认证时间间隔;其中,软件保护装置的脱机认证次数是通过在软件保护装置中预置的脱机认证次数计时器得到的,软件保护装置的联机认证时间间隔具体为:软件保护装置通过获取当前时间和预存的联机认证时间,计算当前时间和预存的联机认证时间的差值,将当前时间和预存的联机认证时间的差值作为软件保护装置联机认证的时间间隔。
208、软件保护装置判断风险因子是否在预设阈值范围内,若在则执行209,若不在则执行210;
具体地,当风险因子为软件保护装置的脱机认证次数时,
判断风险因子是否在预设阈值范围内,具体为:软件保护装置根据脱机认证计数器获取软件保护装置的脱机认证次数,将脱机认证次数作为风险因子,判断脱机认证次数是否在第一预设阈值范围内;
例如,第一预设阈值可以设置为10次;软件保护装置判断脱机认证次数是否在第一预设阈值范围内,具体为:软件保护装置获取软件保护装置的脱机认证次数,当获取的脱机认证次数为3时,则认定脱机认证次数在第一预设阈值范围内,当获取的脱机认证的次数为11时,则认定脱机认证次数不在第一预设阈值范围内;
具体地,当风险因子为软件保护装置联机认证的时间间隔时;
判断风险因子是否在预设阈值范围内,具体为:软件保护装置获取当前时间和预存的联机认证时间,计算当前时间和预存的联机认证时间的差值,将当前时间和预存的联机认证时间的差值作为软件保护装置联机认证的时间间隔;判断联机认证的时间间隔是否在第二预设阈值范围内;
例如,第二预设阈值可以设置为7天;软件保护装置判断联机认证的时间间隔是否在第二预设阈值范围内,具体为:软件保护装置获取当前时间和预存联机认证时间,计算获取的当前时间和预存联机认证时间之间的差值,将差值作为联机认证的时间间隔,判断差值是否超过7天,若获取的当前时间为2015年2月1日,预存的联机认证时间为2015年2月5日,则认定联机认证时间间隔在第二预设阈值范围内,若获取的当前时间为2015年2月1日,预存的联机认证时间为2015年2月10日,则认定联机认证时间间隔不在第二预设阈值范围内;
具体地,当风险因子为软件保护装置的脱机认证次数和联机认证的时间间隔时;
判断风险因子是否在预设阈值范围内,具体为:软件保护装置获取脱机认证的次数、当前时间和预存的联机认证时间,根据当前时间和预存的联机认证时间获取软件保护装置联机认证的时间间隔;判断脱机认证次数是否在第一预设阈值范围内、且软件保护装置联机认证的时间间隔是否在第二预设阈值范围内;
例如,第一预设阈值具体为:10次,第二预设阈值具体为:7天;软件保护装置判断脱机认证次数和联机认证时间间隔是否在预设阈值范围内,具体为:软件保护装置获取当前脱机认证次数、当前时间和预存联机认证时间,计算获取的当前时间和预存联机认证时间之间的差值,将计算得到的差值作为软件保护装置的联机认证时间间隔,当获取的当前脱机认证次数为3,差值未超过7天,则认定脱机认证次数在预设阈值范围内;当获取的当前脱机认证次数为3,差值超过7天,则认定脱机认证次数不在预设阈值范围内;当获取的当前脱机认证的次数为11时,差值未超过7天,则认定脱机认证次数不在预设阈值范围内;
具体地,软件保护装置获取当前时间具体为:软件保护装置获取客户端的当前主机时间,或,软件保护装置从启动命令中获取客户端传入的主机时间,或,软件保护装置获取软件保护装置内部时钟的当前时间。
209、软件保护装置正常启动;
在本实施中,软件保护装置正常启动具体为:软件保护装置将自身的工作状态修改为已启动状态,生成成功响应数据,发送给客户端,使得客户端软件正常运行。
210、软件保护装置生成联机认证请求;
在本实施例中,软件保护装置生成的联机认证请求中具体包括:软件保护装置生成的第一认证数据;
其中,软件保护装置生成第一认证数据具体为:软件保护装置生成第一随机数,使用私钥对第一随机数计算签名得到第一签名结果,将第一随机数和第一签名结果组合得到第一认证数据;
软件保护装置生成联机认证请求具体为:软件保护装置根据第一认证数据生成联机认证请求。
211、软件保护装置向客户端发送联机认证请求,将自身的工作状态修改为等待联机认证状态;
在本实施例中,软件保护装置向客户端发送联机认证请求之后,还包括:软件保护装置将自身的工作状态(未启动状态)修改为等待联机认证状态。
212、客户端根据联机认证请求生成联机认证数据;
213、客户端将联机认证数据发送给服务器;
214、服务器根据联机认证数据获取第一认证数据;
215、服务器验证第一认证数据,若验证不通过则执行216,若验证通过则执行217;
216、服务器向客户端返回联机认证失败的数据,结束。
217、服务器根据联机认证数据获取软件保护装置的第二标识信息;
具体地,软件保护装置生成的联机认证请求中还包括软件保护装置的第二标识信息,服务器根据联机认证数据获取软件保护装置的第二标识信息具体为:服务器根据联机认证数据获取联机认证请求中的第二标识信息;
另一方面,客户端根据联机认证请求生成联机认证数据具体为:客户端根据获取的软件保护装置的第一标识信息和联机认证请求生成联机认证数据;服务器根据联机认证数据获取软件保护装置的第二标识信息,具体为:服务器根据联机认证数据中的第一标识信息获取软件保护装置的第二标识信息。
218、服务器确定第二标识信息是否存在于第二挂失列表中,若存在则执行219,若不存在则执行220;
在本实施例中,第二挂失列表具体包括:软件保护装置标识信息、软件保护装置挂失时间。
通常,第二挂失列表由软件保护装置厂商管理人员根据软件保护装置持有者发起的挂失申请进行更新。
219、服务器生成包含有设定已锁定工作状态数据的联机认证响应数据,执行221;
220、服务器生成包含有设定已启动工作状态数据的联机认证响应数据,执行221;
221、服务器向客户端返回联机认证响应数据;
在本实施例中,服务器向客户端返回的联机认证响应数据中具体包括:第二认证数据;
一方面,服务器生成联机认证响应数据具体为:服务器生成第二随机数,获取服务器当前时间作为服务器签名时间,使用服务器私钥对第二随机数和服务器签名时间计算签名,得到第二签名结果,将第二随机数、服务器签名时间和第二签名结果组合生成第二认证数据,服务器根据第二认证数据和工作状态设定数据生成联机认证响应数据发送给客户端;
另一方面,服务器生成联机认证响应数据具体为:服务器生成第二随机数,获取服务器当前时间作为服务器签名时间,使用服务器私钥对第二随机数、服务器签名时间、工作状态设定数据计算签名,得到第二签名结果,将第二随机数、工作状态设定数据、服务器签名时间和第二签名结果组合生成第二认证数据,服务器根据第二认证数据生成联机认证响应数据发送给客户端。
222、客户端根据联机认证响应数据向软件保护装置发送联机认证响应命令;
223、软件保护装置接收联机认证响应命令,并获取自身工作状态,若获取的自身工作状态为等待联机认证时,执行224;
224、软件保护装置根据联机认证响应命令获取第二认证数据;
225、软件保护装置验证第二认证数据,验证失败则执行226,验证成功则执行228;
在本实施例中,软件保护装置验证第二认证数据具体为:软件保护装置使用服务器侧公钥对第二认证数据中的第二随机数、服务器的签名时间和第二签名结果进行验证签名;
软件保护装置验证第二认证数据还具体为:软件保护装置使用服务器侧公钥对第二认证数据中的第二随机数、服务器的签名时间、工作状态设定数据和第二签名结果进行验证签名。
226、软件保护装置生成联机认证失败数据,将自身工作状态修改为未启动状态;
227、软件保护装置向客户端返回联机认证失败数据,结束。
228、软件保护装置根据联机认证响应命令获取软件保护装置的工作状态设定数据;
在本实施例中,根据联机认证响应命令获取工作状态设定数据,还可以为:软件保护装置根据联机认证响应命令获取第二认证数据,从第二认证数据中获取软件保护装置的工作状态设定数据。
229、软件保护装置根据工作状态设定数据修改自身的工作状态,若工作状态设定数据为启动则修改为已启动状态,若工作状态设定数据为锁定则修改为已锁定状态;
230、软件保护装置向客户端返回状态数据。
在本实施例中,若工作状态设定数据为启动则修改为已启动状态之后还包括:当风险因子为软件保护装置的脱机认证次数时,软件保护装置将脱机认证次数计数器置为零;
当风险因子为软件保护装置联机认证的时间间隔时,软件保护装置从第二认证数据中获取服务器的签名时间,将预存的联机认证时间更新为服务器的签名时间;
当风险因子为软件保护装置的脱机认证次数和联机认证的时间间隔时,软件保护装置将脱机认证次数计数器置为零,且,软件保护装置从第二认证数据中获取服务器的签名时间,将预存的联机认证时间更新为服务器的签名时间。
在本实施例中,若工作状态设定数据为锁定则修改为已锁定状态之后还包括:软件保护装置生成已锁定数据发送给客户端,客户端软件收到数据后提示错误数据,或自动退出。
本实施例中,客户端发送的命令还包括:读取文件、加解密、删除、修改等命令,当软件保护装置接收到客户端发送的上述命令,且获取到的自身工作状态为已启动时,执行上述命令对应的操作得到执行结果,向客户端返回执行结果。
实施例三
本发明实施例一提供了一种软件保护装置,该装置需要与客户端软件交互才能正常运行。如图3所示,该装置包括:
接收模块301:用于接收客户端发送的命令;
解析模块302:用于解析接收模块301接收到的客户端发送的命令;
获取模块303:用于获取当前自身的工作状态;
获取模块303:还用于当接收模块301接收到客户端发送的启动命令,且获取模块303获取到的当前自身的工作状态为未启动状态时,获取风险因子;
判断模块304:用于判断获取模块303获取的风险因子是否在预设阈值范围内;
在本实施例中,风险因子具体为:软件保护装置的脱机认证次数;
当获取模块303用于获取风险因子时,获取模块303具体用于:获取脱机认证次数,将脱机认证次数作为风险因子;
判断模块304具体用于:判断获取模块303获取的脱机认证次数是否在第一预设阈值范围内;
具体地,风险因子还包括:软件保护装置联机认证的时间间隔;
当获取模块303用于获取风险因子时,获取模块303具体用于:获取脱机认证次数、当前时间和预存的联机认证时间,根据当前时间和预存的联机认证时间获取软件保护装置联机认证的时间间隔,将脱机认证次数和联机认证的时间间隔作为风险因子;
判断模块304具体用于:判断获取模块303获取的脱机认证次数是否在第一预设阈值范围内、且软件保护装置联机认证的时间间隔是否在第二预设阈值范围内;
可选地,风险因子具体为:软件保护装置联机认证的时间间隔;
当获取模块303用于获取风险因子时,获取模块303具体用于:获取当前时间和预存的联机认证时间,计算当前时间和预存的联机认证时间的差值,将差值作为软件保护装置联机认证的时间间隔;
判断模块304具体用于:判断软件保护装置联机认证的时间间隔是否在第二预设阈值范围内;
具体地,当获取模块303用于获取当前时间时,获取模块303具体用于:获取客户端的当前主机时间;或,从启动命令中获取客户端传入的主机时间;或,获取内部时钟的当前时间。
生成模块305:用于当判断模块304判断为风险因子不在预设阈值范围内时,生成联机认证请求;
在本实施例中,生成模块305生成的联机认证请求中包括:第一认证数据;
当生成模块305用于生成联机认证请求时,生成模块305具体用于:生成第一随机数,使用私钥对第一随机数进行签名得到第一签名结果,将第一随机数和第一签名结果组合得到第一认证数据,根据第一认证数据生成联机认证请求。
修改模块306:用于当生成模块305生成联机认证请求后,将自身的工作状态修改为等待联机认证状态;
发送模块307:用于向客户端发送生成模块305生成的联机认证请求;
获取模块303:还用于当接收模块301接收到客户端发送的联机认证响应命令,且获取模块303获取到的当前自身的工作状态为等待联机认证状态时,根据联机认证响应命令获取第二认证数据;
验证模块308:用于验证获取模块303获取的第二认证数据;
具体地,验证模块308具体用于:使用服务器侧公钥对第二认证数据中的第二随机数、服务器的签名时间和第二签名结果进行验证签名;
可选地,验证模块308具体用于:使用服务器侧公钥对第二认证数据中的第二随机数、服务器的签名时间、工作状态设定数据和第二签名结果进行验证签名。
获取模块303:还用于当验证模块308验证通过时,根据联机认证响应命令获取工作状态设定数据;
具体地,当获取模块303用于获取工作状态设定数据时,获取模块303具体用于:根据联机认证响应命令获取第二认证数据,从第二认证数据中获取工作状态设定数据。
修改模块306:还用于当获取模块303获取的工作状态设定数据为启动时将自身的工作状态修改为已启动状态;
在本实施例中,当修改模块306用于将自身的工作状态修改为已启动状态时,修改模块306具体用于:当第四获取模块303获取的工作状态设定数据为启动时,将脱机认证次数计数器置为零,并将自身的工作状态修改为已启动;
可选地,获取模块303还用于从第二认证数据中获取服务器签名时间;
当修改模块306用于将自身的工作状态修改为已启动状态时,修改模块306具体用于:当获取模块303获取的工作状态设定数据为启动时,将脱机认证次数计数器置为零,且将预存的联机认证时间更新为获取模块303获取的服务器签名时间,并将自身的工作状态修改为已启动;
进一步地,获取模块303还用于从第二认证数据中获取服务器签名时间;
当修改模块306用于将自身的工作状态修改为已启动状态时,修改模块306具体用于:当获取模块303获取的工作状态设定数据为启动时,将预存的联机认证时间更新为获取模块303获取的服务器签名时间,并将自身的工作状态修改为已启动。
修改模块306:还用于当获取模块303获取的工作状态设定数据为锁定时将自身的工作状态修改为已锁定状态;
发送模块307:还用于当修改模块306将自身的工作状态修改为已启动或已锁定状态时,向客户端发送状态数据;
生成模块305:还用于当验证模块308验证不通过时,生成联机认证失败数据;
修改模块306:还用于当生成模块305生成联机认证失败数据时,将自身的工作状态修改为未启动状态;
发送模块307:还用于向客户端发送生成模块305生成的联机认证失败数据;
在本实施例中,当判断模块304判断获取模块303获取的风险因子在预设阈值范围内时,
修改模块306还用于:将自身的工作状态修改为已启动;
发送模块307还用于:向客户端发送状态数据。
在本实施例中,联机认证响应命令具体为:客户端根据服务器发送的包含有第二认证数据的联机认证成功数据生成的。
可选地,该装置还包括:执行模块;
执行模块:用于当解析模块302解析得到的命令为执行操作命令,且获取模块303获取到的自身的工作状态为已启动时,执行相应的操作;
发送模块307:还用于向客户端发送执行模块执行得到的相应结果;
可选地,发送模块307还用于:当获取模块303获取到当前自身的工作状态为已锁定状态时,向客户端发送已锁定数据。
本实施例通过客户端侧的挂失列表检查软件保护装置是否被挂失,若未挂失则进一步对软件保护装置的脱机使用次数和/或时间限制等风险因子进行检查,若超出预设阈值范围,则通过服务器与软件保护装置进行双向签名验证,以确保软件保护装置的真实性,服务器若验证通过则进一步检查服务器侧的挂失列表中软件保护装置是否被挂失,确保软件保护装置的安全性。采用本发明提供的方法,即使软件保护装置丢失,也不能继续非法使用软件保护装置,从而保证了软件厂商和用户的利益。
以上对本发明所提供的一种软件保护方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (32)

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.一种软件保护装置,其特征在于,所述装置包括:
接收模块:用于接收客户端发送的命令;
解析模块:用于解析所述接收模块接收到的客户端发送的命令;
获取模块:用于获取当前自身的工作状态;
所述获取模块:还用于当所述接收模块接收到客户端发送的启动命令,且所述获取模块获取到的当前自身的工作状态为未启动状态时,获取风险因子;
判断模块:用于判断所述获取模块获取的风险因子是否在预设阈值范围内;
生成模块:用于当所述判断模块判断为所述风险因子不在预设阈值范围内时,生成联机认证请求;
修改模块:用于当所述生成模块生成联机认证请求后,将自身的工作状态修改为等待联机认证状态;
发送模块:用于向客户端发送所述生成模块生成的联机认证请求;
所述获取模块:还用于当所述接收模块接收到客户端发送的联机认证响应命令,且所述获取模块获取到的当前自身的工作状态为等待联机认证状态时,根据联机认证响应命令获取第二认证数据;
验证模块:用于验证所述获取模块获取的第二认证数据;
所述获取模块:还用于当所述验证模块验证通过时,根据联机认证响应命令获取所述工作状态设定数据;
所述修改模块:还用于当所述获取模块获取的工作状态设定数据为启动时将自身的工作状态修改为已启动状态;
所述修改模块:还用于当所述获取模块获取的工作状态设定数据为锁定时将自身的工作状态修改为已锁定状态;
所述发送模块:还用于当所述修改模块将自身的工作状态修改为已启动或已锁定状态时,向客户端发送状态数据;
所述生成模块:还用于当所述验证模块验证不通过时,生成联机认证失败数据;
所述修改模块:还用于当所述生成模块生成联机认证失败数据时,将自身的工作状态修改为未启动状态;
所述发送模块:还用于向客户端发送所述生成模块生成的联机认证失败数据。
18.根据权利要求17所述的装置,其特征在于,所述风险因子具体为:所述软件保护装置的脱机认证次数;
当所述获取模块用于获取风险因子时,所述获取模块具体用于:获取脱机认证次数,将脱机认证次数作为风险因子;
所述判断模块具体用于:判断所述获取模块获取的脱机认证次数是否在第一预设阈值范围内。
19.根据权利要求18所述的装置,其特征在于,当所述修改模块用于将自身的工作状态修改为已启动状态时,所述修改模块具体用于:当所述第四获取模块获取的工作状态设定数据为启动时,将脱机认证次数计数器置为零,并将自身的工作状态修改为已启动状态。
20.根据权利要求18所述的装置,其特征在于,所述风险因子还包括:所述软件保护装置联机认证的时间间隔;
当所述获取模块用于获取风险因子时,所述获取模块具体用于:获取脱机认证次数、当前时间和预存的联机认证时间,根据当前时间和预存的联机认证时间获取软件保护装置联机认证的时间间隔,将脱机认证次数和联机认证的时间间隔作为风险因子;
所述判断模块具体用于:判断所述获取模块获取的脱机认证次数是否在第一预设阈值范围内、且所述软件保护装置联机认证的时间间隔是否在第二预设阈值范围内。
21.根据权利要求20所述的装置,其特征在于,所述获取模块还用于从第二认证数据中获取服务器签名时间;
当所述修改模块用于将自身的工作状态修改为已启动状态时,所述修改模块具体用于:当所述获取模块获取的工作状态设定数据为启动时,将脱机认证次数计数器置为零,且将预存的联机认证时间更新为所述获取模块获取的服务器签名时间,并将自身的工作状态修改为已启动状态。
22.根据权利要求17所述的装置,其特征在于,所述风险因子具体为:软件保护装置联机认证的时间间隔;
当所述获取模块用于获取风险因子时,所述获取模块具体用于:获取当前时间和预存的联机认证时间,计算当前时间和预存的联机认证时间的差值,将所述差值作为软件保护装置联机认证的时间间隔;
所述判断模块具体用于:判断所述软件保护装置联机认证的时间间隔是否在第二预设阈值范围内。
23.根据权利要求22所述的装置,其特征在于,所述获取模块还用于从第二认证数据中获取服务器签名时间;
当所述修改模块用于将自身的工作状态修改为已启动状态时,所述修改模块具体用于:当所述获取模块获取的工作状态设定数据为启动时,将预存的联机认证时间更新为所述获取模块获取的服务器签名时间,并将自身的工作状态修改为已启动。
24.根据权利要求20或22所述的装置,其特征在于,当所述获取模块用于获取当前时间时,所述获取模块具体用于:获取所述客户端的当前主机时间;或,从所述启动命令中获取所述客户端传入的主机时间;或,获取内部时钟的当前时间。
25.根据权利要求17所述的装置,其特征在于,所述生成模块生成的联机认证请求中包括:第一认证数据;
当所述生成模块用于生成联机认证请求时,所述生成模块具体用于:生成第一随机数,使用私钥对所述第一随机数进行签名得到第一签名结果,将所述第一随机数和第一签名结果组合得到第一认证数据,根据所述第一认证数据生成联机认证请求。
26.根据权利要求25所述的方法,其特征在于,所述验证模块具体用于:使用服务器侧公钥对第二认证数据中的第二随机数、服务器的签名时间和第二签名结果进行验证签名。
27.根据权利要求25所述的方法,其特征在于,当所述获取模块用于获取所述工作状态设定数据时,所述获取模块具体用于:根据所述联机认证响应命令获取第二认证数据,从所述第二认证数据中获取所述工作状态设定数据。
28.根据权利要求27所述的方法,其特征在于,所述验证模块具体用于:使用服务器侧公钥对第二认证数据中的第二随机数、服务器的签名时间、所述工作状态设定数据和第二签名结果进行验证签名。
29.根据权利要求17所述的装置,其特征在于,当所述判断模块判断所述获取模块获取的风险因子在预设阈值范围内时,
所述修改模块还用于:将自身的工作状态修改为已启动;
所述发送模块还用于:向客户端发送状态数据。
30.根据权利要求17所述的装置,其特征在于,所述联机认证响应命令具体为:所述客户端根据服务器发送的包含有第二认证数据的联机认证成功数据生成的。
31.根据权利要求17所述的装置,其特征在于,所述装置还包括:执行模块;
所述执行模块:用于当所述解析模块解析得到的命令为执行操作命令,且所述获取模块获取到的自身的工作状态为已启动时,执行相应的操作;
所述发送模块:还用于向客户端发送所述执行模块执行得到的相应结果。
32.根据权利要求17所述的装置,其特征在于,所述发送模块还用于:当所述获取模块获取到当前自身的工作状态为已锁定状态时,向客户端发送已锁定数据。
CN201811600811.XA 2018-12-26 2018-12-26 一种软件保护方法及装置 Active CN109684791B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811600811.XA CN109684791B (zh) 2018-12-26 2018-12-26 一种软件保护方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811600811.XA CN109684791B (zh) 2018-12-26 2018-12-26 一种软件保护方法及装置

Publications (2)

Publication Number Publication Date
CN109684791A true CN109684791A (zh) 2019-04-26
CN109684791B CN109684791B (zh) 2020-09-15

Family

ID=66188492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811600811.XA Active CN109684791B (zh) 2018-12-26 2018-12-26 一种软件保护方法及装置

Country Status (1)

Country Link
CN (1) CN109684791B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988147A (zh) * 2020-08-20 2020-11-24 上海万向区块链股份公司 组合签名及验证签名方法、系统及存储介质
CN114884993A (zh) * 2022-05-07 2022-08-09 杭州天宽科技有限公司 增强数据安全性的虚拟化安卓系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110321153A1 (en) * 2010-06-25 2011-12-29 Research In Motion Limited Security mechanism for increased personal data protection
CN102982264A (zh) * 2012-12-24 2013-03-20 上海斐讯数据通信技术有限公司 一种嵌入式设备软件保护方法
CN103116727A (zh) * 2012-01-19 2013-05-22 上海全湾信息科技有限公司 免安装文件安全性控管软件的受保护文件访问方法及系统
CN104537284A (zh) * 2014-12-19 2015-04-22 葛胜锦 一种基于远程服务的软件保护系统和方法
CN104935555A (zh) * 2014-03-20 2015-09-23 华为技术有限公司 客户端证书认证方法、服务器、客户端及系统
CN105187450A (zh) * 2015-10-08 2015-12-23 飞天诚信科技股份有限公司 一种基于认证设备进行认证的方法和设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110321153A1 (en) * 2010-06-25 2011-12-29 Research In Motion Limited Security mechanism for increased personal data protection
CN103116727A (zh) * 2012-01-19 2013-05-22 上海全湾信息科技有限公司 免安装文件安全性控管软件的受保护文件访问方法及系统
CN102982264A (zh) * 2012-12-24 2013-03-20 上海斐讯数据通信技术有限公司 一种嵌入式设备软件保护方法
CN104935555A (zh) * 2014-03-20 2015-09-23 华为技术有限公司 客户端证书认证方法、服务器、客户端及系统
CN104537284A (zh) * 2014-12-19 2015-04-22 葛胜锦 一种基于远程服务的软件保护系统和方法
CN105187450A (zh) * 2015-10-08 2015-12-23 飞天诚信科技股份有限公司 一种基于认证设备进行认证的方法和设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988147A (zh) * 2020-08-20 2020-11-24 上海万向区块链股份公司 组合签名及验证签名方法、系统及存储介质
CN111988147B (zh) * 2020-08-20 2022-06-03 上海万向区块链股份公司 组合签名及验证签名方法、系统及存储介质
CN114884993A (zh) * 2022-05-07 2022-08-09 杭州天宽科技有限公司 增强数据安全性的虚拟化安卓系统
CN114884993B (zh) * 2022-05-07 2023-12-22 杭州天宽科技有限公司 增强数据安全性的虚拟化安卓系统

Also Published As

Publication number Publication date
CN109684791B (zh) 2020-09-15

Similar Documents

Publication Publication Date Title
CN100365641C (zh) 利用一次性密码保护计算机登录的方法
CN101291228B (zh) 一种超级密码的生成、认证方法和系统、设备
CN107222476B (zh) 一种认证服务方法
CN105162797B (zh) 一种基于视频监控系统的双向认证方法
CN100495421C (zh) 一种基于usb设备的认证保护方法
CN106452721A (zh) 一种基于标识公钥的智能设备指令鉴别方法及系统
EP2378414A2 (en) Remote update method for firmware
US10263782B2 (en) Soft-token authentication system
CN102215221A (zh) 从移动设备对计算机的安全远程唤醒、引导及登录的方法和系统
CN111162911B (zh) 一种plc固件升级系统及方法
CN106372487A (zh) 一种服务器操作系统可信增强方法及系统
CN111143856A (zh) 一种plc远程固件升级系统及方法
CN102609656A (zh) 一种基于图片验证的USB Key安全增强方法及系统
CN102567685A (zh) 基于非对称公钥密码体系的软件版权保护方法
CN110417808A (zh) 防篡改方法、装置、系统以及终端
CN109598104A (zh) 基于时间戳和秘密鉴权文件的软件授权保护系统及其方法
CN109684791A (zh) 一种软件保护方法及装置
CN112102524A (zh) 开锁方法和开锁系统
CN101854357B (zh) 网络认证监控方法及系统
CN102842000A (zh) 通用软件注册系统的实现方法
CN109474431A (zh) 客户端认证方法及计算机可读存储介质
CN102592101A (zh) 一种led显示管理软件安全的方法与系统
CN104899480A (zh) 一种基于cpk标识认证技术的软件版权保护管理方法
CN113676446B (zh) 通信网络安全防误控制方法、系统、电子设备及介质
CN115455379A (zh) 一种对个人电脑的软件使用授权的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230927

Address after: 100085 room 205, B / F, Huizhi building, 9 Xueqing Road, Haidian District, Beijing

Patentee after: Beijing Jianshi Chengxin Technologies Co.,Ltd.

Address before: 17th floor, building B, Huizhi building, No.9, Xueqing Road, Haidian District, Beijing 100085

Patentee before: Feitian Technologies Co.,Ltd.