CN105678115A - 一种软件认证方法及相关设备与系统 - Google Patents
一种软件认证方法及相关设备与系统 Download PDFInfo
- Publication number
- CN105678115A CN105678115A CN201511032481.5A CN201511032481A CN105678115A CN 105678115 A CN105678115 A CN 105678115A CN 201511032481 A CN201511032481 A CN 201511032481A CN 105678115 A CN105678115 A CN 105678115A
- Authority
- CN
- China
- Prior art keywords
- server
- software
- softdog
- certified
- serial number
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000004044 response Effects 0.000 claims abstract description 67
- 238000012545 processing Methods 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000013475 authorization Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种软件认证方法及相关设备与系统,第一服务器若确定待认证软件的认证方式为远端认证,则可向安装有加密狗的第二服务器发送认证请求,并在接收到所述第二服务器返回的携带有加密狗的序列号的第一响应消息时,根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;其中,所述第一响应消息是所述第二服务器在确定所述第一服务器为与所述第二服务器相绑定的指定服务器时,返回给所述第一服务器的。从而在确保软件授权安全性的基础上,扩展了加密狗认证的应用场景,提高了系统兼容性。
Description
技术领域
本发明涉及软件认证领域,尤其涉及一种软件认证方法及相关设备与系统。
背景技术
为了维护软件等产品的版权以及厂商的利益,用户在计算机等上安装与使用软件时,通常需要进行软件认证,只有认证成功,用户才可使用软件。
目前,业内常用的软件认证方法有以下两种:
第一种、出售证书序列号,即,用户在购买软件时,厂商会提供有效的序列号,使得用户在安装软件时,可凭借购买的序列号,进行软件的认证,从而保证软件的版权以及厂商的利益。但是,通常情况下,用户可通过在网络上的搜索,得到大量的可用序列号,或者,可通过破解工具对软件进行破解,从而使得软件授权的安全性较低,且严重的侵犯了软件的版权、损害了厂商的利益。
第二种、出售证书与加密狗,即,用户在购买软件时,厂商会提供有效的证书与加密狗,用户在安装软件之后,可通过与加密狗之间进行交互,来验证证书内的序列号是否与加密狗内的序列号相匹配,在二者相匹配时,才能正常使用软件,从而有效地提高了软件授权的安全性,且保证了软件的版权以及厂商的利益。但是,由于传统的加密狗只能通过USB接口与服务器相连,以对其所在服务器内安装的软件进行认证,对于无法支持USB接口的场景(例如,云环境等),则无法实现基于加密狗的认证,从而极大地限制了加密狗的应用场景。
也就是说,现有的软件认证方式存在安全性较低、或者应用场景有限等的问题。
发明内容
本发明实施例提供了一种软件认证方法及相关设备与系统,用以解决现有的软件认证方式存在的安全性较低、或者应用场景有限等的问题。
本发明实施例提供了一种软件认证方法,包括:
第一服务器确定待认证软件的认证方式是否为远端认证;
若为远端认证,则向安装有加密狗的第二服务器发送认证请求;
若接收到所述第二服务器返回的携带有加密狗的序列号的第一响应消息,则根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;
其中,所述第一响应消息是所述第二服务器在确定所述第一服务器为与所述第二服务器相绑定的指定服务器时,返回给所述第一服务器的。
本发明实施例还提供了另一种软件认证方法,包括:
第二服务器接收第一服务器在确定待认证软件的认证方式为远端认证时发送的认证请求;所述第二服务器本地安装有加密狗;
若确定所述第一服务器为与所述第二服务器相绑定的指定服务器,则获取所述加密狗的序列号,并向所述第一服务器返回携带有所述加密狗的序列号的第一响应消息,以使得所述第一服务器根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致。
本发明实施例还提供了一种服务器,包括:
判断模块,用于确定所述服务器内的待认证软件的认证方式是否为远端认证;
处理模块,用于若根据所述判断模块的判断结果,确定所述待认证软件的认证方式为远端认证,则向安装有加密狗的远端服务器发送认证请求;并若接收到所述远端服务器返回的携带有加密狗的序列号的第一响应消息,则根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;
其中,所述第一响应消息是所述远端服务器在确定所述服务器为与所述远端服务器相绑定的指定服务器时,返回给所述服务器的。
本发明实施例还提供了另一种服务器,包括::
接收模块,用于接收远端服务器在确定待认证软件的认证方式为远端认证时发送的认证请求;所述服务器本地安装有加密狗;
处理模块,用于若确定所述远端服务器为与所述服务器相绑定的指定服务器,则获取所述加密狗的序列号,并向所述远端服务器返回携带有所述加密狗的序列号的第一响应消息,以使得所述远端服务器根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致。
本发明实施例还提供了一种软件认证系统,包括:
第一服务器,用于确定所述第一服务器内的待认证软件的认证方式是否为远端认证;若为远端认证,则向安装有加密狗的第二服务器发送认证请求;并若接收到所述第二服务器返回的携带有加密狗的序列号的第一响应消息,则根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;
第二服务器,用于接收第一服务器发送的认证请求;并若确定所述第一服务器为与所述第二服务器相绑定的指定服务器,则获取所述第二服务器本地安装的加密狗的序列号,并向所述第一服务器返回携带有所述加密狗的序列号的第一响应消息。
本发明有益效果如下:
本发明实施例提供了一种软件认证方法及相关设备与系统,第一服务器若确定待认证软件的认证方式为远端认证,则可向安装有加密狗的第二服务器发送认证请求,并在接收到所述第二服务器返回的携带有加密狗的序列号的第一响应消息时,根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;其中,所述第一响应消息是所述第二服务器在确定所述第一服务器为与所述第二服务器相绑定的指定服务器时,返回给所述第一服务器的。从而在确保软件授权安全性的基础上,扩展了加密狗认证的应用场景,提高了系统兼容性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本发明实施例一中所述的软件认证方法的流程示意图;
图2所示为本发明实施例二中所述的软件认证方法的流程示意图;
图3所示为本发明实施例三中所述的服务器的结构示意图;
图4所示为本发明实施例四中所述的服务器的结构示意图;
图5所示为本发明实施例五中所述的软件认证系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一:
为了解决现有的软件认证方式所存在的安全性较低、应用场景有限等的问题,本发明实施例一提供了一种软件认证方法,如图1所示,其为本发明实施例一中所述的软件认证方法的流程示意图,由图1可知,本发明实施例一中所述的软件认证方法可包括以下步骤:
步骤101:第一服务器确定待认证软件的认证方式是否为远端认证。
其中,所述待认证软件通常可为已安装在所述第一服务器内的软件,如已安装的BSA业务软件等,此处不再赘述。
可选地,在执行步骤101之前,可在软件安装完成之后,根据用户的实际需求选择进行远端认证还是本地认证,或者,可根据设备本身的特性,选择进行远端认证还是本地认证。例如,若所述第一服务器不具备USB接口,进而无法通过USB接口连接有加密狗,则可将安装在所述第一服务器内的各软件设置为远端认证。
具体地,可通过更改软件特定目录下的文件,如更改Type标签的取值(1表示是远端认证,0表示是本地认证)等方式,来设置该软件为远端认证或者本地认证。
另外,需要说明的是,所述第一服务器可为任一能够安装并运行相应软件的设备,如平板电脑、个人计算机、手机等,对此不作任何限定。
步骤102:若确定所述待认证软件的认证方式为远端认证,则向安装有加密狗的第二服务器发送认证请求。
其中,本发明实施例中所述的安装有加密狗通常可指的是可通过USB接口等有线连接方式连接有相应的加密狗,此处不再赘述。
可选地,在本实施例中,在执行步骤101之前,在根据用户的实际需求选择进行远端认证还是本地认证时,若确定为远端认证,还可根据用户的实际需求设置远端认证时所述第一服务器所绑定的第二服务器的标识,如IP地址、端口号等信息。
例如,具体地,可通过更改软件特定目录下的文件,如在IP标签内设置绑定的第二服务器的IP(InternetProtocolAddress,网际互联)地址,和/或,在Port标签内设置绑定的端口号(默认可为12340等)等方式设置远端认证时所述第一服务器所绑定的第二服务器的标识。另外,需要说明的是,IP标签以及Port标签内的信息只在远端认证时有效,此处均不再赘述。
相应地,若确定所述待认证软件的认证方式为远端认证,则向安装有加密狗的第二服务器发送认证请求,可执行为:
根据设置的远端认证时所述第一服务器所绑定的第二服务器的标识,向对应的第二服务器发送认证请求。
当然,本实施例中,若确定所述待认证软件的认证方式为远端认证,则所述第一服务器还可向任一安装有加密狗的第二服务器发送认证请求,对此不作任何限定。
另外,需要说明的是,所述第二服务器可为任一能够通过USB接口等连接有加密狗,并能成功调用该加密狗中内容的设备,如平板电脑、个人计算机等,对此不作限定。
步骤103:若接收到所述第二服务器返回的携带有加密狗的序列号的第一响应消息,则根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;其中,所述第一响应消息是所述第二服务器在确定所述第一服务器为与所述第二服务器相绑定的指定服务器时,返回给所述第一服务器的。
也就是说,第一服务器在确定待认证软件的认证方式为远端认证之后,可向安装有加密狗的第二服务器发送认证请求,并可在接收到第二服务器返回的携带有加密狗的序列号的第一响应消息后,判断所述第一响应消息中携带的加密狗的序列号与所述待认证软件的软件证书的序列号是否一致,若一致,则确定所述待认证软件认证成功。从而可通过两个服务器之间的交互来实现待认证软件的远端认证,增强软件认证的安全性,且不必依赖USB接口实现软件认证,使得软件认证的应用场景更广泛、适用环境更丰富、兼容性更强,解决了现有的软件认证方式所存在的安全性较低、应用场景有限等的问题。
需要说明的是,本实施例中的加密狗可以是在Windows环境下,利用开发工具(如KeilC等)开发并生产的;所述开发工具的作用主要为生产出带有全球唯一序列号、且使用时长(通常以天为单位)为0的加密狗。其中,各加密狗的序列号是通过MD5算法(MessageDigestAlgorithm,消息摘要算法)等对加密狗内部的硬件ID(Identification,唯一编码)进行演算所得到的。
也就是说,开发工具在进行本实施例中所述的加密狗的生产时,除了烧写存放序列号的文件在加密狗内部指定位置,如0x000c等之外,还可烧写存放软件已使用天数的文件至加密狗内部指定位置,如0x000d等;再有,其还可烧写通用接口文件到加密狗内部指定位置,如0x000a等,此处不再赘述。
另外,需要说明的是,为了实现与加密狗之间的良好交互,本实施例中还设置了一系列用于操作加密狗的接口(这些接口可设置在相应的服务器或服务器安装的软件内),其中包括:用于检查加密狗是否存在的接口;用于获取加密狗内的序列号的接口;用于获取加密狗内的软件已使用时长的接口;用于设置加密狗内的软件已使用时长的接口等。服务器或服务器中安装的软件具体可通过上述接口来和加密狗内部进行交互,另外,这些接口对于用户来说都是隐藏的,用户并不知晓但可直接使用。
再有,需要说明的是,软件证书是在软件出售之前,根据与所述软件证书相匹配的加密狗的序列号生产的,且软件证书里存储有软件证书的序列号以及软件使用期限,该软件证书的序列号和与该软件证书唯一匹配的加密狗的序列号一致。通常情况下,在软件成功安装后,可自动导入软件证书,并进行软件证书的解密以提取软件证书内的序列号。
进一步地,为了实现远端认证,在进行远端认证之前,除了对第一服务器内安装的软件的特定目录文件进行相应配置之外,还需对各第二服务器进行相应配置,如:配置好第二服务器的本地IP,确保各第一服务器能够与第二服务器路由可达,并开放第二服务器的相应端口;绑定指定且唯一的第一服务器的IP地址等;启动远程认证服务等。
完成上述配置后,第二服务器会建立一个TCP连接监听绑定端口,如默认的12340端口,等待其他设备来连接,当其他设备连接后,第二服务器即会进行相应的数据处理,如:
根据来连接的设备的IP等,判断来连接的设备是否为与所述第二服务器相绑定的设备,若是,则解析接收到的消息,并根据接收到的消息,调用操作加密狗的接口,如,用于获取加密狗的序列号的接口等,获取加密狗的序列号等信息,并应答给来连接的设备;
若确定不是与所述第二服务器相绑定的设备,则可构建特定信息(如,可导致连接而来的设备内的软件由远端认证改变为本地认证等的特定信息),并将特定信息应答给连接而来的设备。
也就是说,所述方法还可包括:
若接收到所述第二服务器返回的用于表明所述第一服务器不为与所述第二服务器相绑定的指定服务器的第二响应消息,则确定无法基于所述第二服务器安装的加密狗对所述待认证软件进行认证。
其中,所述第二响应消息具体可为用于将第一服务器中待认证软件的认证方式从远端认证更改为本地认证的消息。因而,可避免非法复用加密狗等的情况,保证了一支加密狗只能匹配一套软件证书,即一只加密狗只能同时给一套集群使用,从而提高了认证方法的安全性以及可靠性。
进一步地,在确定所述待认证软件认证成功之后,所述方法还可包括:
每隔设定时长,获取所述加密狗(即所述待认证软件认证成功时所使用的加密狗)内部存储的软件已使用时长;例如,若为本地认证,则调用用于获取加密狗内部存储的软件已使用时长的接口,获取所述加密狗内部存储的软件已使用时长;若为远端认证,则向第二服务器发送时长获取指令,指示第二服务器根据该时长获取指令,调用用于获取加密狗内部存储的软件已使用时长的接口,获取所述加密狗内部存储的软件已使用时长;当然,需要说明的是,当为远端认证时,所述第二服务器也可自动每隔设定时长,调用用于获取加密狗内部存储的软件已使用时长的接口,获取相应软件的软件已使用时长并返回给第一服务器,此处不作赘述。
确定所述加密狗内部存储的软件已使用时长是否未超出所述待认证软件的设定使用期限,若是,则确定所述待认证软件能够正常使用,否则,停止使用所述待认证软件;
其中,所述加密狗内部存储的软件已使用时长跟随所述待认证软件的实际已使用时长而变化。
也就是说,软件的软件已使用时长是存储在加密狗内部的,可基本无视系统时间,即,所述软件的软件已使用时长不可能丢失或被非法修改,避免了在软件过期后,用户通过修改系统时间等方式来继续使用该软件或执行其他非法操作等的情况,此处不再赘述。
其中,需要说明的是,本发明实施例中所述的软件已使用时长通常可以天为单位,如,在购买软件且认证成功后一天,可设置所述软件已使用时长为1天等。当然,所述软件已使用时长也可以分钟、小时等其他数值为单位,此处不再赘述。
另外,需要说明的是,所述设定时长可根据用户的实际需求进行灵活设置,如正常情况下可为30分钟、1小时、1天等,非正常情况下可为30分钟、5分钟、1秒等,对此不作任何限定。
进一步地,需要说明的是,可通过以下方式使得所述加密狗内部存储的软件已使用时长跟随所述待认证软件的实际已使用时长而变化:
若确定所述待认证软件的认证方式为本地认证,则通过每隔设定时长,调用用于设置加密狗内部存储的软件已使用时长的接口,更新所述加密狗内部存储的软件已使用时长;
若确定所述待认证软件的认证方式为远端认证,则通过每隔设定时长,向所述第二服务器发送时长更新指令(其中可携带有软件已使用时长等信息),指示所述第二服务器根据所述时长更新指令,调用用于设置加密狗内部存储的软件已使用时长的接口,更新所述加密狗内部存储的软件已使用时长;
其中,所述加密狗内部所存储的软件已使用时长只增不减。
当然,需要说明的是,当为远端认证时,所述第二服务器也可自动每隔设定时长,获取相应软件的软件已使用时长,并自动调用用于设置加密狗内部存储的软件已使用时长的接口,更新所述加密狗内部存储的软件已使用时长,此处不作赘述。
进一步地,为了进一步提高软件授权的安全性,本实施例中,可实时或每隔设定时长,进行软件证书与加密狗之间数据的交互,保证加密狗实时在线且与软件证书唯一匹配,以进一步保证一支加密狗、一套软件证书只能被一套集群使用。如可每隔5分钟进行一次交互,检查加密狗是否存在(具体可调用用于检查加密狗是否存在的接口来实现)、以及检查加密狗内的序列号是否和软件证书内的序列号相匹配等;或者,每隔3分钟进行一次交互等,对此不再赘述。
进一步地,本实施例中,所述方法还可包括:
若根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号不与所述加密狗的序列号相一致,则确定所述待认证软件未认证成功并停止使用所述待认证软件。
进一步地,本实施例中,所述方法还可包括:
若确定所述待认证软件的认证方式为本地认证,则获取安装在所述第一服务器本地的加密狗的序列号;
根据获取到的加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功(若不一致,则确定所述待认证软件未认证成功并停止使用所述待认证软件)。
本发明实施例提供了一种软件认证方法,第一服务器在确定待认证软件的认证方式为远端认证之后,可向安装有加密狗的第二服务器发送认证请求,并可在接收到第二服务器返回的携带有加密狗的序列号的第一响应消息后,判断所述第一响应消息中携带的加密狗的序列号与所述待认证软件的软件证书的序列号是否一致,若一致,则确定所述待认证软件认证成功。从而可通过两个服务器之间的交互来实现待认证软件的远端认证,增强软件认证的安全性,且不必依赖USB接口实现软件认证,使得软件认证的应用场景更广泛、适用环境更丰富、兼容性更强,解决了现有的软件认证方式所存在的安全性较低、应用场景有限等的问题。
另外,由于本发明所述实施例中,软件的软件已使用时长是存储在加密狗内部的,可基本无视系统时间,即,所述软件的软件已使用时长不可能丢失或被非法修改,因而,避免了在软件过期后,用户通过修改系统时间等方式来继续使用该软件或执行其他非法操作等的情况。
实施例二:
基于与本发明实施例一相同的发明构思,本发明实施例二提供了另一种软件认证方法,如图2所示,其为本发明实施例二中所述的软件认证方法的流程示意图,由图2可知,本发明实施例二中所述的软件认证方法可包括以下步骤:
步骤201:第二服务器接收第一服务器在确定待认证软件的认证方式为远端认证时发送的认证请求;所述第二服务器本地安装有加密狗;
其中,所述待认证软件通常可为已安装在所述第一服务器内的软件,如已安装的BSA业务软件等,此处不再赘述。
需要说明的是,所述第二服务器可为任一能够通过USB接口等连接有加密狗,并能成功调用该加密狗中内容的设备,如平板电脑、个人计算机等,对此不作限定。
另外,需要说明的是,本发明实施例中所述的安装有加密狗通常可指的是可通过USB接口等有线连接方式连接有相应的加密狗,此处不再赘述。
步骤202:若确定所述第一服务器为与所述第二服务器相绑定的指定服务器,则获取所述加密狗的序列号,并向所述第一服务器返回携带有所述加密狗的序列号的第一响应消息,以使得所述第一服务器根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致。
其中,与所述第二服务器相绑定的指定服务器是指与第二服务器进行IP绑定和/或相应端口绑定、且安装有待认证软件的第一服务器。
也就是说,第二服务器若接收到第一服务器在确定待认证软件的认证方式为远端认证时发送的认证请求,且,确定所述第一服务器为与所述第二服务器相绑定的指定服务器,则可获取本地安装的加密狗的序列号,并向所述第一服务器返回携带有所述加密狗的序列号的第一响应消息,以使得所述第一服务器根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致。从而可通过两个服务器之间的交互来实现待认证软件的远端认证,增强软件认证的安全性,且不必依赖USB接口实现软件认证,使得软件认证的应用场景更广泛、适用环境更丰富、兼容性更强,解决了现有的软件认证方式所存在的安全性较低、应用场景有限等的问题。
进一步地,若第二服务器确定所述第一服务器不为与所述第二服务器相绑定的指定服务器,则可构建特定信息(如,可导致连接而来的设备内的软件由远端认证改变为本地认证等的特定信息),并将特定信息应答给连接而来的设备。
也就是说,所述方法还可包括:
若确定所述第一服务器不为与所述第二服务器相绑定的指定服务器,则向所述第一服务器返回用于表明所述第一服务器不为与所述第二服务器相绑定的指定服务器的第二响应消息,以使得所述第一服务器根据所述第二响应消息,确定无法基于所述第二服务器安装的加密狗对所述待认证软件进行认证。
这样,可避免非法复用加密狗等的情况的发生,保证了一支加密狗只能匹配一套软件证书,即一只加密狗只能同时给一套集群使用,从而提高了认证方法的安全性以及可靠性。
进一步地,所述方法还可包括:
若接收到第一服务器在待认证软件认证成功后,每隔设定时长发送的可携带有待认证软件的软件已使用时长的时长设置指令,则可根据所述时长设置指令,调用用于设置加密狗内部存储的软件已使用时长的接口,设置加密狗内部存储的相应软件的软件已使用时长。
相应地,所述方法还可包括:
若接收到第一服务器在待认证软件认证成功后,每隔设定时长发送的时长获取指令,则可根据所述时长获取指令,调用用于获取加密狗内部存储的软件已使用时长的接口,获取所述加密狗内部存储的软件已使用时长,并将获取到的软件已使用时长返回给第一服务器,以使得第一服务器可根据该软件已使用时长,确定所述加密狗内部存储的软件已使用时长是否未超出所述待认证软件的设定使用期限,若是,则确定所述待认证软件能够正常使用,否则,停止使用所述待认证软件。
也就是说,软件的软件已使用时长是存储在加密狗内部的,可基本无视系统时间,即,所述软件的软件已使用时长不可能丢失或被非法修改的,避免了在软件过期后,用户通过修改系统时间等方式来继续使用该软件或执行其他非法操作等的情况。
另外,需要说明的是,第二服务器也可在待认证软件认证成功后,每隔设定时长,主动进行设置加密狗内部存储的相应软件的软件已使用时长;和/或主动进行获取加密狗内部存储的软件已使用时长,并将获取到的软件已使用时长返回给第一服务器等的操作,此处不再赘述。
实施例三:
基于与本发明实施例一相同的发明构思,本发明实施例三提供了一种服务器,如图3所示,其为本发明实施例三中所述的服务器的结构示意图,由图3可知,本发明实施例三中所述的服务器可包括:
判断模块31,用于确定所述服务器内的待认证软件的认证方式是否为远端认证;
处理模块32,用于若根据所述判断模块31的判断结果,确定所述待认证软件的认证方式为远端认证,则向安装有加密狗的远端服务器发送认证请求;并若接收到所述远端服务器返回的携带有加密狗的序列号的第一响应消息,则根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;其中,所述第一响应消息是所述远端服务器在确定所述服务器为与所述远端服务器相绑定的指定服务器时,返回给所述服务器的。
进一步地,所述处理模块32,还用于若接收到所述远端服务器返回的用于表明所述服务器不为与所述远端服务器相绑定的指定服务器的第二响应消息,则确定无法基于所述远端服务器安装的加密狗对所述待认证软件进行认证。
进一步地,所述处理模块32,还用于若确定所述待认证软件的认证方式为本地认证,则获取安装在所述服务器本地的加密狗的序列号;并根据获取到的加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功。
进一步地,所述处理模块32,还用于在确定所述待认证软件认证成功之后,每隔设定时长,获取所述加密狗内部存储的软件已使用时长;确定所述加密狗内部存储的软件已使用时长是否未超出所述待认证软件的设定使用期限,若是,则确定所述待认证软件能够正常使用,否则,停止使用所述待认证软件;其中,所述加密狗内部存储的软件已使用时长跟随所述待认证软件的实际已使用时长而变化。
进一步地,所述处理模块32具体用于通过以下方式使得所述加密狗内部存储的软件已使用时长跟随所述待认证软件的实际已使用时长而变化:
若确定所述待认证软件的认证方式为本地认证,则通过每隔设定时长,调用用于设置加密狗内部存储的软件已使用时长的接口,更新所述加密狗内部存储的软件已使用时长;
若确定所述待认证软件的认证方式为远端认证,则通过每隔设定时长,向所述远端服务器发送时长更新指令,指示所述远端服务器根据所述时长更新指令,调用用于设置加密狗内部存储的软件已使用时长的接口,更新所述加密狗内部存储的软件已使用时长;其中,所述加密狗内部所存储的软件已使用时长只增不减。
实施例四:
基于与本发明实施例二相同的发明构思,本发明实施例四提供了一种服务器,如图4所示,其为本发明实施例四中所述的服务器的结构示意图,由图4可知,本发明实施例四中所述的服务器可包括:
接收模块41,用于接收远端服务器在确定待认证软件的认证方式为远端认证时发送的认证请求;所述服务器本地安装有加密狗;
处理模块42,用于若确定所述远端服务器为与所述服务器相绑定的指定服务器,则获取所述加密狗的序列号,并向所述远端服务器返回携带有所述加密狗的序列号的第一响应消息,以使得所述远端服务器根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致。
进一步地,所述处理模块42,还用于若确定所述远端服务器不为与所述服务器相绑定的指定服务器,则向所述远端服务器返回用于表明所述远端服务器不为与所述服务器相绑定的指定服务器的第二响应消息,以使得所述远端服务器根据所述第二响应消息,确定无法基于所述服务器安装的加密狗对所述待认证软件进行认证。
实施例五:
基于与本发明实施例一或二等相同的发明构思,本发明实施例五提供了一种软件认证系统,如图5所示,其为本发明实施例五中所述的软件认证系统的结构示意图,由图5可知,本发明实施例五中所述的软件认证系统可包括:
第一服务器51,用于确定所述第一服务器51内的待认证软件的认证方式是否为远端认证;若为远端认证,则向安装有加密狗的第二服务器52发送认证请求;并若接收到所述第二服务器52返回的携带有加密狗的序列号的第一响应消息,则根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;
第二服务器52,用于接收第一服务器51发送的认证请求;并若确定所述第一服务器51为与所述第二服务器52相绑定的指定服务器,则获取所述第二服务器52本地安装的加密狗的序列号,并向所述第一服务器51返回携带有所述加密狗的序列号的第一响应消息。
其中,需要说明的是,所述第一服务器51以及第二服务器52的具体结构和功能可参见本发明实施例三以及实施例四中的相关描述,此处不再赘述。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种软件认证方法,其特征在于,包括:
第一服务器确定待认证软件的认证方式是否为远端认证;
若为远端认证,则向安装有加密狗的第二服务器发送认证请求;
若接收到所述第二服务器返回的携带有加密狗的序列号的第一响应消息,则根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;
其中,所述第一响应消息是所述第二服务器在确定所述第一服务器为与所述第二服务器相绑定的指定服务器时,返回给所述第一服务器的。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
若接收到所述第二服务器返回的用于表明所述第一服务器不为与所述第二服务器相绑定的指定服务器的第二响应消息,则确定无法基于所述第二服务器安装的加密狗对所述待认证软件进行认证。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
若确定所述待认证软件的认证方式为本地认证,则获取安装在所述第一服务器本地的加密狗的序列号;
根据获取到的加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功。
4.如权利要求1~3任一所述的方法,其特征在于,在确定所述待认证软件认证成功之后,所述方法还包括:
每隔设定时长,获取所述加密狗内部存储的软件已使用时长;
确定所述加密狗内部存储的软件已使用时长是否未超出所述待认证软件的设定使用期限,若是,则确定所述待认证软件能够正常使用,否则,停止使用所述待认证软件;
其中,所述加密狗内部存储的软件已使用时长跟随所述待认证软件的实际已使用时长而变化。
5.如权利要求4所述的方法,其特征在于,通过以下方式使得所述加密狗内部存储的软件已使用时长跟随所述待认证软件的实际已使用时长而变化:
若确定所述待认证软件的认证方式为本地认证,则通过每隔设定时长,调用用于设置加密狗内部存储的软件已使用时长的接口,更新所述加密狗内部存储的软件已使用时长;
若确定所述待认证软件的认证方式为远端认证,则通过每隔设定时长,向所述第二服务器发送时长更新指令,指示所述第二服务器根据所述时长更新指令,调用用于设置加密狗内部存储的软件已使用时长的接口,更新所述加密狗内部存储的软件已使用时长;
其中,所述加密狗内部所存储的软件已使用时长只增不减。
6.一种软件认证方法,其特征在于,包括:
第二服务器接收第一服务器在确定待认证软件的认证方式为远端认证时发送的认证请求;所述第二服务器本地安装有加密狗;
若确定所述第一服务器为与所述第二服务器相绑定的指定服务器,则获取所述加密狗的序列号,并向所述第一服务器返回携带有所述加密狗的序列号的第一响应消息,以使得所述第一服务器根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
若确定所述第一服务器不为与所述第二服务器相绑定的指定服务器,则向所述第一服务器返回用于表明所述第一服务器不为与所述第二服务器相绑定的指定服务器的第二响应消息,以使得所述第一服务器根据所述第二响应消息,确定无法基于所述第二服务器安装的加密狗对所述待认证软件进行认证。
8.一种服务器,其特征在于,包括:
判断模块,用于确定所述服务器内的待认证软件的认证方式是否为远端认证;
处理模块,用于若根据所述判断模块的判断结果,确定所述待认证软件的认证方式为远端认证,则向安装有加密狗的远端服务器发送认证请求;并若接收到所述远端服务器返回的携带有加密狗的序列号的第一响应消息,则根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;
其中,所述第一响应消息是所述远端服务器在确定所述服务器为与所述远端服务器相绑定的指定服务器时,返回给所述服务器的。
9.如权利要求8所述的服务器,其特征在于,
所述处理模块,还用于若接收到所述远端服务器返回的用于表明所述服务器不为与所述远端服务器相绑定的指定服务器的第二响应消息,则确定无法基于所述远端服务器安装的加密狗对所述待认证软件进行认证。
10.如权利要求8所述的服务器,其特征在于,
所述处理模块,还用于若确定所述待认证软件的认证方式为本地认证,则获取安装在所述服务器本地的加密狗的序列号;并根据获取到的加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功。
11.如权利要求8~10任一所述的服务器,其特征在于,
所述处理模块,还用于在确定所述待认证软件认证成功之后,每隔设定时长,获取所述加密狗内部存储的软件已使用时长;确定所述加密狗内部存储的软件已使用时长是否未超出所述待认证软件的设定使用期限,若是,则确定所述待认证软件能够正常使用,否则,停止使用所述待认证软件;
其中,所述加密狗内部存储的软件已使用时长跟随所述待认证软件的实际已使用时长而变化。
12.如权利要求11所述的服务器,其特征在于,所述处理模块具体用于通过以下方式使得所述加密狗内部存储的软件已使用时长跟随所述待认证软件的实际已使用时长而变化:
若确定所述待认证软件的认证方式为本地认证,则通过每隔设定时长,调用用于设置加密狗内部存储的软件已使用时长的接口,更新所述加密狗内部存储的软件已使用时长;
若确定所述待认证软件的认证方式为远端认证,则通过每隔设定时长,向所述远端服务器发送时长更新指令,指示所述远端服务器根据所述时长更新指令,调用用于设置加密狗内部存储的软件已使用时长的接口,更新所述加密狗内部存储的软件已使用时长;
其中,所述加密狗内部所存储的软件已使用时长只增不减。
13.一种服务器,其特征在于,包括:
接收模块,用于接收远端服务器在确定待认证软件的认证方式为远端认证时发送的认证请求;所述服务器本地安装有加密狗;
处理模块,用于若确定所述远端服务器为与所述服务器相绑定的指定服务器,则获取所述加密狗的序列号,并向所述远端服务器返回携带有所述加密狗的序列号的第一响应消息,以使得所述远端服务器根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致。
14.如权利要求13所述的服务器,其特征在于,
所述处理模块,还用于若确定所述远端服务器不为与所述服务器相绑定的指定服务器,则向所述远端服务器返回用于表明所述远端服务器不为与所述服务器相绑定的指定服务器的第二响应消息,以使得所述远端服务器根据所述第二响应消息,确定无法基于所述服务器安装的加密狗对所述待认证软件进行认证。
15.一种软件认证系统,其特征在于,包括:
第一服务器,用于确定所述第一服务器内的待认证软件的认证方式是否为远端认证;若为远端认证,则向安装有加密狗的第二服务器发送认证请求;并若接收到所述第二服务器返回的携带有加密狗的序列号的第一响应消息,则根据所述第一响应消息中携带的所述加密狗的序列号,确定所述待认证软件的软件证书的序列号是否与所述加密狗的序列号相一致,若一致,则确定所述待认证软件认证成功;
第二服务器,用于接收第一服务器发送的认证请求;并若确定所述第一服务器为与所述第二服务器相绑定的指定服务器,则获取所述第二服务器本地安装的加密狗的序列号,并向所述第一服务器返回携带有所述加密狗的序列号的第一响应消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032481.5A CN105678115B (zh) | 2015-12-31 | 2015-12-31 | 一种软件认证方法及相关设备与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032481.5A CN105678115B (zh) | 2015-12-31 | 2015-12-31 | 一种软件认证方法及相关设备与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105678115A true CN105678115A (zh) | 2016-06-15 |
CN105678115B CN105678115B (zh) | 2018-05-25 |
Family
ID=56298586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511032481.5A Active CN105678115B (zh) | 2015-12-31 | 2015-12-31 | 一种软件认证方法及相关设备与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105678115B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214221A (zh) * | 2018-08-23 | 2019-01-15 | 武汉普利商用机器有限公司 | 一种身份证阅读器验证方法、上位机和身份证阅读器 |
CN109951454A (zh) * | 2019-02-26 | 2019-06-28 | 深圳飞马机器人科技有限公司 | 无人机身份认证方法、系统及终端 |
CN110008659A (zh) * | 2019-03-29 | 2019-07-12 | 深圳华锐金融技术股份有限公司 | 软件许可的离线管理方法、装置、计算机设备及存储介质 |
CN112347428A (zh) * | 2020-11-20 | 2021-02-09 | 浙江百应科技有限公司 | 一种分布式软件产品离线授权方法 |
CN112559981A (zh) * | 2020-12-11 | 2021-03-26 | 北京深思数盾科技股份有限公司 | 一种软件保护方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101471915A (zh) * | 2007-12-29 | 2009-07-01 | 科骏康电子(深圳)有限公司 | 一种加密方法及加密装置 |
CN102780699A (zh) * | 2012-07-09 | 2012-11-14 | 广州杰赛科技股份有限公司 | 认证服务器软件版权保护方法和系统 |
US20150066417A1 (en) * | 2012-06-04 | 2015-03-05 | Advantest Corporation | Test system |
-
2015
- 2015-12-31 CN CN201511032481.5A patent/CN105678115B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101471915A (zh) * | 2007-12-29 | 2009-07-01 | 科骏康电子(深圳)有限公司 | 一种加密方法及加密装置 |
US20150066417A1 (en) * | 2012-06-04 | 2015-03-05 | Advantest Corporation | Test system |
CN102780699A (zh) * | 2012-07-09 | 2012-11-14 | 广州杰赛科技股份有限公司 | 认证服务器软件版权保护方法和系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214221A (zh) * | 2018-08-23 | 2019-01-15 | 武汉普利商用机器有限公司 | 一种身份证阅读器验证方法、上位机和身份证阅读器 |
CN109951454A (zh) * | 2019-02-26 | 2019-06-28 | 深圳飞马机器人科技有限公司 | 无人机身份认证方法、系统及终端 |
CN110008659A (zh) * | 2019-03-29 | 2019-07-12 | 深圳华锐金融技术股份有限公司 | 软件许可的离线管理方法、装置、计算机设备及存储介质 |
CN112347428A (zh) * | 2020-11-20 | 2021-02-09 | 浙江百应科技有限公司 | 一种分布式软件产品离线授权方法 |
CN112559981A (zh) * | 2020-12-11 | 2021-03-26 | 北京深思数盾科技股份有限公司 | 一种软件保护方法及装置 |
CN112559981B (zh) * | 2020-12-11 | 2021-09-17 | 北京深思数盾科技股份有限公司 | 一种软件保护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105678115B (zh) | 2018-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105678115A (zh) | 一种软件认证方法及相关设备与系统 | |
CN109829296B (zh) | 基于联盟链的智能合约的沙箱实现方法 | |
CN103152400B (zh) | 通过移动终端进行登录的方法、系统和云端服务器 | |
CN103744686B (zh) | 智能终端中应用安装的控制方法和系统 | |
CN103729597A (zh) | 系统启动校验方法、系统启动校验装置和终端 | |
CN104160653A (zh) | 多因素证书授权机构 | |
US8458448B2 (en) | Method of installing a wireless network | |
CN103561006B (zh) | 基于安卓系统的应用认证方法和装置及应用认证服务器 | |
CN105871794A (zh) | 分布式文件系统数据存储的方法、客户端、服务器及系统 | |
CN104253833A (zh) | 远端进程操作方法及系统 | |
CN107168699A (zh) | 应用程序修复方法及终端设备 | |
KR20160110276A (ko) | 다이나믹 보안모듈 생성방법 및 생성장치 | |
CN102158483A (zh) | 智能电视的接入认证方法、系统、智能电视及认证服务器 | |
CN104580235A (zh) | 用于设备连接的认证方法和认证系统 | |
CN106992859A (zh) | 一种堡垒机私钥管理方法及装置 | |
CN101800985B (zh) | 鉴权方法及系统、终端、服务器与数据下载方法及装置 | |
US9158926B2 (en) | Engine control unit configuration security | |
CN105430649A (zh) | Wifi接入方法及设备 | |
CN102571349B (zh) | 智能密码钥匙信息更新方法、智能密码钥匙及系统 | |
CN109858235B (zh) | 一种便携式设备及其暗码获取方法和装置 | |
CN107633390B (zh) | 一种云钱包管理方法及服务器 | |
CN105279414A (zh) | 一种基于指纹应用的验证装置及方法 | |
CN111475198B (zh) | 一种网络服务器的拟态化方法及装置 | |
CN103346884A (zh) | 快速登录方法及装置 | |
CN107491669A (zh) | 超级用户权限的获取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Patentee after: NSFOCUS Technologies Group Co.,Ltd. Patentee after: NSFOCUS TECHNOLOGIES Inc. Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd. Patentee before: NSFOCUS TECHNOLOGIES Inc. |