CN109670289B - 一种识别后台服务器合法性的方法及系统 - Google Patents
一种识别后台服务器合法性的方法及系统 Download PDFInfo
- Publication number
- CN109670289B CN109670289B CN201811382367.9A CN201811382367A CN109670289B CN 109670289 B CN109670289 B CN 109670289B CN 201811382367 A CN201811382367 A CN 201811382367A CN 109670289 B CN109670289 B CN 109670289B
- Authority
- CN
- China
- Prior art keywords
- background server
- certificate
- identification code
- server
- signature information
- 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.)
- Active
Links
Images
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2103—Challenge-response
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种识别后台服务器合法性的方法及系统,其方法包括以下步骤:发送挑战值至后台服务器,以使得后台服务器对所述挑战值进行签名后得到签名信息;接收后台服务器发送的签名信息及证书;根据所述签名信息、证书中的公钥及证书中的标识码,验证所述后台服务器的合法性。本发明通过上述方法,无需在终端上预存与后台服务器对应的对称密钥,解决了在终端中预安装多个对称密钥,管理对称密钥难度较大的问题,以及解决了无法定向识别后台服务器的问题。
Description
技术领域
本发明涉及签名认证技术领域,尤其涉及一种识别后台服务器合法性的方法及系统。
背景技术
在电子支付行业,终端和后台服务器是两个相当重要的角色,基本上所有的金融交易都是基于终端和后台服务器之间的通信完成的,终端发送给后台服务器的数据往往是机密数据,这就要求终端在和后台服务器进行数据交互之前,需要验证后台服务器身份的合法性,即终端应做到只对合法的后台服务器发送数据,而不该对不合法的后台服务器发送数据。终端如何识别合法的后台服务器,目前通常有以下几种方式:
方式一:采用对称技术,终端和后台服务器共享对称密钥,终端向后台服务器发送挑战值,由后台服务器使用对称密钥加密挑战值后发送给终端,终端验证后台的应答值是否正确,来判断后台服务器的合法性;
方式二:采用非对称技术,终端预置一本上级证书UpCert,后台服务器预置UpCert的下级证书以及对应的私钥,首先由终端使用上级证书验证后台服务器证书的合法性,然后向后台服务器发送挑战值,由后台服务器使用私钥对挑战值签名后发送给终端,终端验证后台服务器的签名信息是否正确,来判断后台服务器的合法性。
但上述方式存在以下缺点:
缺点1:
假设有N个后台服务器,如果终端和每个后台都共享唯一的对称密钥,则终端需要预装N个对称密钥,如果N值较大,则造成终端管理对称密钥的难度增大。
缺点2:
方式二使用了非对称技术,终端只需要预置一本上级证书,比方式一简单,但无法解决终端定向识别后台服务器的问题。因为后台服务器1、2、3…使用的都是同一个上级证书的下级证书,对于终端而言,这些证书都可以验证通过,无法定向识别哪个才是合法的后台。
发明内容
本发明所要解决的技术问题是:本发明提供了一种识别后台服务器合法性的方法及系统,解决了方式一中多个对称密钥管理难度较大,以及方式二中无法定向识别后台服务器的问题。
为了解决上述技术问题,本发明提供了一种识别后台服务器合法性的方法,包括以下步骤:
S1:发送挑战值至后台服务器,以使得后台服务器对所述挑战值进行签名后得到签名信息;
S2:接收后台服务器发送的签名信息及证书;
S3:根据所述签名信息、证书中的公钥及证书中的标识码,验证所述后台服务器的合法性。
本发明还提供一种识别后台服务器合法性的系统,包括终端和后台服务器,所述终端包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1:发送挑战值至后台服务器,以使得后台服务器对所述挑战值进行签名后得到签名信息;
S2:接收后台服务器发送的签名信息及证书;
S3:根据所述签名信息、证书中的公钥及证书中的标识码,验证所述后台服务器的合法性。
本发明的有益效果为:
本发明提供的一种识别后台服务器合法性的方法及系统,通过发送挑战值至后台服务器,接收后台服务器对所述挑战值进行签名后的签名信息,以及后台服务器的证书;根据签名信息和证书中的公钥及标识码,判断后台服务器的合法性。本发明通过上述方法,无需在终端上预存与后台服务器对应的对称密钥,解决了方式一中在终端中预安装多个对称密钥,管理对称密钥难度较大的问题,根据证书中的公钥即可验证签名信息的合法性,同时证书中的标识码即可辅助验证证书的合法性,又能够定向识别后台服务器,解决了方式二中无法定向识别后台服务器的问题。
附图说明
图1为根据本发明实施例的一种识别后台服务器合法性的方法的主要步骤示意图;
图2为根据本发明实施例的一种识别后台服务器合法性的系统的结构示意图;
图3为根据本发明实施例三中的一种识别后台服务器合法性的方法的数据流图;
图4为根据本发明实施例四中的一种识别后台服务器合法性的方法的数据流图;
标号说明:
1、存储器;2、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思为:发送挑战值至后台服务器,接收后台服务器对所述挑战值进行签名后的签名信息,以及后台服务器的证书;根据签名信息和证书中的公钥及标识码,判断后台服务器的合法性。
请参照图1,本发明提供了一种识别后台服务器合法性的方法,包括以下步骤:
S1:发送挑战值至后台服务器,以使得后台服务器对所述挑战值进行签名后得到签名信息;
S2:接收后台服务器发送的签名信息及证书;
S3:根据所述签名信息、证书中的公钥及证书中的标识码,验证所述后台服务器的合法性。
从上述描述可在,本发明提供的一种识别后台服务器合法性的方法,通过发送挑战值至后台服务器,接收后台服务器对所述挑战值进行签名后的签名信息,以及后台服务器的证书;根据签名信息和证书中的公钥及标识码,判断后台服务器的合法性。本发明通过上述方法,无需在终端上预存与后台服务器对应的对称密钥,解决了方式一中在终端中预安装多个对称密钥,管理对称密钥难度较大的问题,根据证书中的公钥即可验证签名信息的合法性,同时证书中的标识码即可辅助验证证书的合法性,又能够定向识别后台服务器,解决了方式二中无法定向识别后台服务器的问题。
进一步的,所述S1之前还包括:
S01:通过后台服务器生成一公私钥对,并控制后台服务器发送公钥及签发证书请求至CA认证中心,以使得CA认证中心响应所述签发证书请求后,根据公钥生成对应的证书;
S02:安装所述证书至后台服务器。
从上述描述可知,通过上述方法,能够生成后台服务器对应的合法的证书,并在后台服务器中进行安装。
进一步的,所述S01和S02之间还包括:
通过CA认证中心分配所述后台服务器一个唯一的标识码;
将所述标识码写入证书的扩展域中。
从上述描述可知,通过上述方法,能够便得终端根据标识码有效识别后台服务器的身份。
进一步的,所述S1之前还包括:
安装所述证书的上级证书。
从上述描述可知,后台服务器安装证书的同时,在终端上安装所述证书的上级证书,以便终端验证后台服务器的证书的合法性。
进一步的,所述S1具体为:
生成一随机数,得到所述挑战值;
发送挑战值至后台服务器,以使得后台服务器接收所述挑战值,得到第一挑战值,并通过私钥对所述第一挑战值进行签名后得到签名信息。
从上述描述可知,通过上述方法,能够使发送的挑战值具有随机性,不容易被找到规律。
进一步的,所述S2具体为:
接收后台服务器发送的第一挑战值、签名信息及证书。
进一步的,生成一随机数之后,还包括存储所述随机数。
从上述描述可知,通过将随机数存储于终端上,以便后续对后台服务器回发的挑战值进行验证,防止挑战值被篡改,提高了系统的安全性。
进一步的,所述S3具体为:
S31:验证所述第一挑战值是否与所述随机数相同,若否,则输出所述后台服务器为非法服务器;若是,则执行S32;
S32:通过上级证书判断所述证书是否合法;若否,则输出所述后台服务器为非法服务器;若是,则执行S33;
S33:解析所述证书;若解析失败,则输出所述后台服务器为非法服务器;否则,提取证书扩展域中的标识码,得到第一标识码;提取证书中的公钥,得到第一公钥,并执行S34;
S34:判断所述第一标识码是否合法,若否,则输出所述后台服务器为非法服务器;若是,则执行S35;
S35:判断所述签名信息是否合法,若否,则输出所述后台服务器为非法服务器;若是,则输出所述后台服务器为合法服务器。
从上述描述可知,通过对第一挑战值、证书本身、证书是否能解析、证书中的标识码以及签名信息进行多重验证的方式,提高了对后台服务器合法验证的准确性,在终端传输重要数据至后台服务器前,能够有效对后台服务器的合法性进行有效验证,保障了终端及终端上的数据的安全性。
进一步的,通过私钥对所述第一挑战值进行签名后得到签名信息,具体为:
将所述第一挑战值通过哈希运算,得到第一哈希值;
将所述第一哈希值通过私钥加密,得到所述签名信息。
进一步的,判断所述签名信息是否合法,具体为:
将所述随机数进行哈希运算,得到第二哈希值,
通过公钥对所述签名信息进行解密,得到第三哈希值;
判断所述第二哈希值与第三哈希值是否相同。
从上述描述可知,通过上述方法,能够有效验证签名信息是否合法,提高了验证的准确性。
进一步的,判断所述第一标识码是否合法,之前还包括:
将合法的后台服务器的标识码写入应用程序底层;
安装所述应用程序。
进一步的,判断所述第一标识码是否合法,具体为:
调用底层API,获取已安装的应用程序底层中的标识码,得到第二标识码;
根据第二标识码,判断所述第一标识码是否合法。
从上述描述可知,通过上述方法,能够有效快速地判断第一标识码是否合法,并且从终端内的应用程序的底层获取数据,数据获取速度快,提高了数据处理及判断的效率。
进一步的,所述S02具体为:
通过CA认证中心发送所述证书至后台服务器,以使得后台服务器解析所述证书,得到第二公钥,并生成第一随机数;通过所述第二公钥加密所述第一随机数,得到加密结果;通过所述私钥解密该加密结果,得到解密结果,若该解密结果等于所述第一随机数,则安装所述证书。
从上述描述可知,通过上述方法,使得后台服务器能够对证书的合法性进行有效验证,保证安装在后台服务器上的证书是安全有效的。
请参照图2,本发明提供了一种识别后台服务器合法性的系统,包括终端和后台服务器,所述终端包括存储器1、处理器2及存储在存储器1上并可在处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现以下步骤:
S1:发送挑战值至后台服务器,以使得后台服务器对所述挑战值进行签名后得到签名信息;
S2:接收后台服务器发送的签名信息及证书;
S3:根据所述签名信息、证书中的公钥及证书中的标识码,验证所述后台服务器的合法性。
进一步的,所述的一种识别后台服务器合法性的系统,所述S1之前还包括:
S01:通过后台服务器生成一公私钥对,并控制后台服务器发送公钥及签发证书请求至CA认证中心,以使得CA认证中心响应所述签发证书请求后,根据公钥生成对应的证书;
S02:安装所述证书至后台服务器。
进一步的,所述的一种识别后台服务器合法性的系统,所述S01和S02之间还包括:
通过CA认证中心分配所述后台服务器一个唯一的标识码;
将所述标识码写入证书的扩展域中。
进一步的,所述的一种识别后台服务器合法性的系统,所述S1之前还包括:
安装所述证书的上级证书。
进一步的,所述的一种识别后台服务器合法性的系统,所述S1具体为:
生成一随机数,得到所述挑战值;
发送挑战值至后台服务器,以使得后台服务器接收所述挑战值,得到第一挑战值,并通过私钥对所述第一挑战值进行签名后得到签名信息。
进一步的,所述的一种识别后台服务器合法性的系统,所述S2具体为:
接收后台服务器发送的第一挑战值、签名信息及证书。
进一步的,所述的一种识别后台服务器合法性的系统,生成一随机数之后,还包括存储所述随机数。
进一步的,所述的一种识别后台服务器合法性的系统,所述S3具体为:
S31:验证所述第一挑战值是否与所述随机数相同,若否,则输出所述后台服务器为非法服务器;若是,则执行S32;
S32:通过上级证书判断所述证书是否合法;若否,则输出所述后台服务器为非法服务器;若是,则执行S33;
S33:解析所述证书;若解析失败,则输出所述后台服务器为非法服务器;否则,提取证书扩展域中的标识码,得到第一标识码;提取证书中的公钥,得到第一公钥,并执行S34;
S34:判断所述第一标识码是否合法,若否,则输出所述后台服务器为非法服务器;若是,则执行S35;
S35:判断所述签名信息是否合法,若否,则输出所述后台服务器为非法服务器;若是,则输出所述后台服务器为合法服务器。
进一步的,所述的一种识别后台服务器合法性的系统,通过私钥对所述第一挑战值进行签名后得到签名信息,具体为:
将所述第一挑战值通过哈希运算,得到第一哈希值;
将所述第一哈希值通过私钥加密,得到所述签名信息。
进一步的,所述的一种识别后台服务器合法性的系统,判断所述签名信息是否合法,具体为:
将所述随机数进行哈希运算,得到第二哈希值,
通过公钥对所述签名信息进行解密,得到第三哈希值;
判断所述第二哈希值与第三哈希值是否相同。
进一步的,所述的一种识别后台服务器合法性的系统,判断所述第一标识码是否合法,之前还包括:
将合法的后台服务器的标识码写入应用程序底层;
安装所述应用程序。
进一步的,所述的一种识别后台服务器合法性的系统,判断所述第一标识码是否合法,具体为:
调用底层API,获取已安装的应用程序底层中的标识码,得到第二标识码;
根据第二标识码,判断所述第一标识码是否合法。
进一步的,所述的一种识别后台服务器合法性的系统,所述S02具体为:
通过CA认证中心发送所述证书至后台服务器,以使得后台服务器解析所述证书,得到第二公钥,并生成第一随机数;通过所述第二公钥加密所述第一随机数,得到加密结果;通过所述私钥解密该加密结果,得到解密结果,若该解密结果等于所述第一随机数,则安装所述证书。
本发明的实施例一为:
本发明提供了一种识别后台服务器合法性的方法,包括以下步骤:
S01:通过后台服务器生成一公私钥对,并控制后台服务器发送公钥及签发证书请求至CA认证中心,以使得CA认证中心响应所述签发证书请求后,根据公钥生成对应的证书;
S015:通过CA认证中心分配所述后台服务器一个唯一的标识码;将所述标识码写入证书的扩展域中;
S02:安装所述证书至后台服务器;
其中,所述S02具体为:
通过CA认证中心发送所述证书至后台服务器,以使得后台服务器解析所述证书,得到第二公钥,并生成第一随机数;通过所述第二公钥加密所述第一随机数,得到加密结果;通过所述私钥解密该加密结果,得到解密结果,若该解密结果等于所述第一随机数,则安装所述证书。
S03:安装所述证书的上级证书;
S04:将合法的后台服务器的标识码写入应用程序底层;安装所述应用程序;
S1:发送挑战值至后台服务器,以使得后台服务器对所述挑战值进行签名后得到签名信息;
其中,所述S1具体为:
生成一随机数,得到所述挑战值;
存储所述随机数;
发送挑战值至后台服务器,以使得后台服务器接收所述挑战值,得到第一挑战值,并将所述第一挑战值通过哈希运算,得到第一哈希值;将所述第一哈希值通过私钥加密,得到签名信息。
S2:接收后台服务器发送的签名信息及证书;
其中,所述S2具体为:
接收后台服务器发送的第一挑战值、签名信息及证书。
S3:根据所述签名信息、证书中的公钥及证书中的标识码,验证所述后台服务器的合法性;
其中,所述S3具体为:
所述验证所述第一挑战值是否与所述随机数相同,若否,则输出所述后台服务器为非法服务器;
若是,则通过上级证书判断所述证书是否合法;若否,则输出所述后台服务器为非法服务器;
若是,则解析所述证书;若解析失败,则输出所述后台服务器为非法服务器;
否则,提取证书扩展域中的标识码,得到第一标识码;提取证书中的公钥,得到第一公钥;
判断所述第一标识码是否合法,若否,则输出所述后台服务器为非法服务器;
若是,则判断所述签名信息是否合法,若否,则输出所述后台服务器为非法服务器;若是,则输出所述后台服务器为合法服务器。
其中,判断所述第一标识码是否合法,具体为:
调用底层API,获取已安装的应用程序底层中的标识码,得到第二标识码;
根据第二标识码,判断所述第一标识码是否合法。
其中,判断所述签名信息是否合法,具体为:
将所述随机数进行哈希运算,得到第二哈希值,
通过公钥对所述签名信息进行解密,得到第三哈希值;
判断所述第二哈希值与第三哈希值是否相同。
本发明的实施例二为:
本发明提供了一种识别后台服务器合法性的系统,包括终端和后台服务器,所述终端包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S01:通过后台服务器生成一公私钥对,并控制后台服务器发送公钥及签发证书请求至CA认证中心,以使得CA认证中心响应所述签发证书请求后,根据公钥生成对应的证书;
S015:通过CA认证中心分配所述后台服务器一个唯一的标识码;将所述标识码写入证书的扩展域中;
S02:安装所述证书至后台服务器;
其中,所述S02具体为:
通过CA认证中心发送所述证书至后台服务器,以使得后台服务器解析所述证书,得到第二公钥,并生成第一随机数;通过所述第二公钥加密所述第一随机数,得到加密结果;通过所述私钥解密该加密结果,得到解密结果,若该解密结果等于所述第一随机数,则安装所述证书。
S03:安装所述证书的上级证书;
S04:将合法的后台服务器的标识码写入应用程序底层;安装所述应用程序;
S1:发送挑战值至后台服务器,以使得后台服务器对所述挑战值进行签名后得到签名信息;
其中,所述S1具体为:
生成一随机数,得到所述挑战值;
存储所述随机数;
发送挑战值至后台服务器,以使得后台服务器接收所述挑战值,得到第一挑战值,并将所述第一挑战值通过哈希运算,得到第一哈希值;将所述第一哈希值通过私钥加密,得到签名信息。
S2:接收后台服务器发送的签名信息及证书;
其中,所述S2具体为:
接收后台服务器发送的第一挑战值、签名信息及证书。
S3:根据所述签名信息、证书中的公钥及证书中的标识码,验证所述后台服务器的合法性;
其中,所述S3具体为:
所述验证所述第一挑战值是否与所述随机数相同,若否,则输出所述后台服务器为非法服务器;
若是,则通过上级证书判断所述证书是否合法;若否,则输出所述后台服务器为非法服务器;
若是,则解析所述证书;若解析失败,则输出所述后台服务器为非法服务器;
否则,提取证书扩展域中的标识码,得到第一标识码;提取证书中的公钥,得到第一公钥;
判断所述第一标识码是否合法,若否,则输出所述后台服务器为非法服务器;
若是,则判断所述签名信息是否合法,若否,则输出所述后台服务器为非法服务器;若是,则输出所述后台服务器为合法服务器。
其中,判断所述第一标识码是否合法,具体为:
调用底层API,获取已安装的应用程序底层中的标识码,得到第二标识码;
根据第二标识码,判断所述第一标识码是否合法。
其中,判断所述签名信息是否合法,具体为:
将所述随机数进行哈希运算,得到第二哈希值,
通过公钥对所述签名信息进行解密,得到第三哈希值;
判断所述第二哈希值与第三哈希值是否相同。
请参照图3,本发明的实施例三为:
为解决上述终端管理密钥难度较大、或者无法定向识别后台服务器的问题,本发明提供了一种识别后台服务器身份合法性的方法。其基本原理是:CA中心管理“服务器的标识码”,用来唯一区分后台服务器。后台服务器需要预装一对私钥和对应的证书,其中证书由CA中心签发,CA中心给合法的后台服务器签发证书(Server_WCRT)时,需要给该后台服务器分配一个唯一的“服务器的标识码”,并将该“服务器的标识码”写入到证书的扩展域中。同时,终端出厂预装Server_WCRT的上级证书。在终端和后台服务器建立通道前,由终端发送挑战值给后台服务器,后台服务器使用私钥对挑战值签名后发送给终端,由终端的合法应用程序验证Server_WCRT的扩展域的“服务器的标识码”是否正确,以及签名信息是否正确,来验证后台服务器身份的合法性。
使用该方法,具体包括如下步骤:
S1:后台服务器预装一对私钥和对应的证书(Server_WCRT),其中证书由认证中心CA签发。CA给合法的后台服务器签发证书时,会给该后台服务器分配一个唯一的“服务器的标识码”,并将该“服务器的标识码”写入到证书的扩展域中;
S2:终端出厂预装Server_WCRT的上级证书(为简单起见,采用两级的证书结构,则Server_WCRT的上级证书为CA根证书);
S3:由终端应用程序维护合法的“服务器的标识码”,并且应用程序需要签名;
S4:终端下载应用程序时需要对其进行验签,只有合法的应用程序才能正常运行;
S5:当终端和后台服务器建立通道前,先由终端产生随机数R发送给后台服务器,后台接收到随机数后,使用Server_WCRT对应的私钥对R进行签名得到签名数据S,并将R、Server_WCRT和S发送至终端;
S6:终端根据出厂预装的CA根证书验证Server_WCRT的合法性,同时提取出Server_WCRT中的“服务器的标识码”,和合法的应用程序维护的服务器的标识码进行比较。若比较一致,再使用Server_WCRT验证S的合法性。验证通过后,完成了终端对后台服务器的身份识别。
请参照图4,本发明的实施例四为:
本发明提供了一种识别后台服务器合法性的方法的,其步骤包括:
步骤S101,后台服务器生成一对公私钥,其中私钥记为PRK,公钥记为PUK;
步骤S102,后台服务器将步骤S101中生成的公钥PUK,发送到CA中心,请求CA中心对PUK进行证书签发;
步骤S103,CA中心对步骤S102中的PUK进行证书签发时,先给该收单服务器分配唯一的服务器的标识码(Server_ID),并将Server_ID写入到证书扩展域,得到后台服务器证书Server_WCRT。Server_WCRT的格式推荐使用标准的x509格式。
步骤S104,将步骤S103生成的Server_WCRT导入到后台服务器,后台服务器需要验证Server_WCRT是否正确。验证方法为:
1)按证书格式解析Server_WCRT,获取公钥值PUK1;
2)使用1)中提取出的公钥值PUK1对一段随机值Rnd进行公钥运算,得到公钥运算结果DATA,使用步骤S101中生成的PRK对DATA进行私钥运算,判断其结果是否等于Rnd,若相等,则说明Server_WCRT对应的公钥确实是后台服务器在步骤S101中生成的,可以导入;若不等,则拒绝导入,提示报错。
至此,后台服务器预装了非对称密钥,此时服务器有随机生成的私钥PRK以及对应的服务器证书Server_WCRT。
步骤S2,终端出厂预装服务器证书的上级证书(为简单起见,这里采用两级的证书结构,则上级证书为CA根证书)。具体做法不在本发明的讨论范围。一种简单的方式就是将CA根证书固化在终端代码。
步骤S3,由终端应用程序维护该终端对应的合法的“服务器的标识码”,并且应用程序需要签名;
终端的软件结构分为底层程序和应用程序,底层程序以API的形式提供基本功能供应用程序使用。软件分层的目的是针对不同的用户需求,只需要开发不同的应用程序即可,而底层程序可以保持统一。比如,用户A、B、C的需求不同,可以给用户A、B、C各开发一套应用程序,但是这三个客户的底层程序可以用同一个。如此做的好处是将基本的、共性的功能剥离出来集中维护,在此基础上实现应用程序的敏捷开发。
上述步骤S2,以及下述步骤S4、S5、S6全部由底层程序实现,但为了实现不同的用户(对应不同的应用程序)能定向识别对应的后台服务器,所以在步骤S6(具体是第4)步)中需要该用户的应用程序传入对应的“服务器的标识码”,这就要求应用程序需要维护合法的“服务器的标识码”。具体维护步骤为:
1)不同的用户对应不同的后台服务器,根据上述所述,后台服务器都由CA中心分配唯一的Server_ID;
2)不同的用户一般需要开发不同的应用程序,应用程序调用底层API实现步骤S5、S6中的功能,特别地,在步骤S6中,需要传入该用户对应的合法后台服务器的Server_ID。即下述对应关系成立:
后台服务器(唯一Server_ID)<——用户——>应用程序(对应后台服务器的Server_ID)
3)上述2)中,应用程序调用底层API时,需要将对应的合法后台服务器的Server_ID作为API入参传入。具体做法不限,可在程序中写死,亦可通过菜单设置。
步骤S4,终端下载应用程序时需要对进行合法性验证,即验签,只有验签通过的应用程序才允许下载至终端并正常运行;
步骤S3、S4所述的签名、验签技术为通用的数字签名技术,签名步骤是先对应用程序原文进行摘要运算,再用私钥运算得到签名信息。应用程序原文和签名信息一起下载至终端,验签步骤是先使用对应的公钥对签名信息进行公钥运算得到摘要信息,然后对应用程序原文进行摘要运算,比较两次的摘要是否相同。如果相同,则说明应用程序是完整的,未经篡改,因此证明了应用程序的合法性。
步骤S501,终端在和后台服务器建立通道前,先产生随机数R;
步骤S502,终端将步骤S501中生成的随机数R发送给后台服务器;
步骤S503,后台服务器接收到步骤S502中的随机数后,使用步骤S101中生成的PRK对R进行签名,得到签名数据S,则S=Sign(PRK,R)。具体签名步骤如下;
1)对R计算摘要值HASH;
2)使用PRK对上述HASH进行私钥运算,运算结果即为签名数据S;
步骤S504,后台服务器将上述R、S、Server_WCRT发送给终端;
步骤S6,终端接收到步骤S504中的数据后,验证后台服务器的合法性。具体步骤包括:
1)判断后台服务器发送的数据中的R是否等于步骤S501中产生的随机数,若不等,则为非法服务器,拒绝建立通道;若相等,则继续;
2)使用步骤S2中预装的上级证书验证Server_WCRT的合法性(该方法为上级证书验证下级证书的通用做法),若验证失败,则为非法服务器,拒绝建立通道;若验证成功,则继续;
3)按证书格式解析Server_WCRT,提取证书扩展域中的Server_ID值以及证书里的公钥值PUK2,若解析失败,则为非法服务器,拒绝建立通道;若解析成功,则继续;
4)判断上述3)中的Server_ID是否等于步骤S3中终端应用程序维护的合法的“服务器的标识码”,若不等,则为非法服务器,拒绝建立通道;若相等,则继续;
5)使用上述3)中的公钥PUK2对S进行公钥运算,得到HASH1值;
6)对步骤S501中产生的随机数R计算摘要值HASH2,与5)中计算得到的HASH1值进行比较,若不一致,则为非法服务器,拒绝建立通道;若一致,则验证通过,说明后台服务器合法。
通过上述步骤,验证了后台服务器的合法性。
安全分析:
1、终端应用程序的真实性
本方案由终端应用程序维护合法的“服务器标识码”,使用数字签名技术确保了终端应用程序的合法性,只有合法的应用程序才允许下载至终端,确保了终端应用程序的真实性。
2、服务器密钥正确性
服务器的非对称密钥对由服务器的加密机随机生成,生成的私钥安全存储,公钥导出给CA中心签发证书,将生成的服务器证书导入到服务器时,会使用私钥验证该证书是否是一对,保证了服务器证书的正确性。
3、服务器真实性
终端验证后台服务器的真实性包括两方面:一是使用上级证书验证服务器证书的合法性;二是解析服务器证书的“服务器标识码”,判断是否与合法的应用程序维护的“服务器标识码”一致,在同一套证书树下实现了对后台服务器的定向识别。
综上所述,本发明提供的一种识别后台服务器合法性的方法及系统,通过发送挑战值至后台服务器,接收后台服务器对所述挑战值进行签名后的签名信息,以及后台服务器的证书;根据签名信息和证书中的公钥及标识码,判断后台服务器的合法性。本发明通过上述方法,无需在终端上预存与后台服务器对应的对称密钥,解决了方式一中在终端中预安装多个对称密钥,管理对称密钥难度较大的问题,根据证书中的公钥即可验证签名信息的合法性,同时证书中的标识码即可辅助验证证书的合法性,又能够定向识别后台服务器,解决了方式二中无法定向识别后台服务器的问题。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (14)
1.一种识别后台服务器合法性的方法,其特征在于,包括以下步骤:
S1:发送挑战值至后台服务器,以使得后台服务器对所述挑战值进行签名后得到签名信息;
S2:接收后台服务器发送的签名信息及证书;
S3:根据所述签名信息、证书中的公钥及证书中的标识码,验证所述后台服务器的合法性;
所述S1之前还包括:
S01:通过后台服务器生成一公私钥对,并控制后台服务器发送公钥及签发证书请求至CA认证中心,以使得CA认证中心响应所述签发证书请求后,根据公钥生成对应的证书;
S02:安装所述证书至后台服务器;
S03:安装所述证书的上级证书;
所述S1具体为:
生成一随机数,得到所述挑战值,存储所述随机数;
发送挑战值至后台服务器,以使得后台服务器接收所述挑战值,得到第一挑战值,并通过私钥对所述第一挑战值进行签名后得到签名信息;
所述S2具体为:
接收后台服务器发送的第一挑战值、签名信息及证书;
所述S3具体为:
S31:验证所述第一挑战值是否与所述随机数相同,若否,则输出所述后台服务器为非法服务器;若是,则执行S32;
S32:通过上级证书判断所述证书是否合法;若否,则输出所述后台服务器为非法服务器;若是,则执行S33;
S33:解析所述证书;若解析失败,则输出所述后台服务器为非法服务器;否则,提取证书扩展域中的标识码,得到第一标识码;提取证书中的公钥,得到第一公钥,并执行S34;
S34:判断所述第一标识码是否合法,若否,则输出所述后台服务器为非法服务器;若是,则执行S35;
S35:判断所述签名信息是否合法,若否,则输出所述后台服务器为非法服务器;若是,则输出所述后台服务器为合法服务器。
2.根据权利要求1所述的一种识别后台服务器合法性的方法,其特征在于,所述S01和S02之间还包括:
通过CA认证中心分配所述后台服务器一个唯一的标识码;
将所述标识码写入证书的扩展域中。
3.根据权利要求1所述的一种识别后台服务器合法性的方法,其特征在于,通过私钥对所述第一挑战值进行签名后得到签名信息,具体为:
将所述第一挑战值通过哈希运算,得到第一哈希值;
将所述第一哈希值通过私钥加密,得到所述签名信息。
4.根据权利要求3所述的一种识别后台服务器合法性的方法,其特征在于,判断所述签名信息是否合法,具体为:
将所述随机数进行哈希运算,得到第二哈希值,
通过公钥对所述签名信息进行解密,得到第三哈希值;
判断所述第二哈希值与第三哈希值是否相同。
5.根据权利要求1所述的一种识别后台服务器合法性的方法,其特征在于,判断所述第一标识码是否合法,之前还包括:
将合法的后台服务器的标识码写入应用程序底层;
安装所述应用程序。
6.根据权利要求5所述的一种识别后台服务器合法性的方法,其特征在于,判断所述第一标识码是否合法,具体为:
调用底层API,获取已安装的应用程序底层中的标识码,得到第二标识码;
根据第二标识码,判断所述第一标识码是否合法。
7.根据权利要求1所述的一种识别后台服务器合法性的方法,其特征在于,所述S02具体为:
通过CA认证中心发送所述证书至后台服务器,以使得后台服务器解析所述证书,得到第二公钥,并生成第一随机数;通过所述第二公钥加密所述第一随机数,得到加密结果;通过所述私钥解密该加密结果,得到解密结果,若该解密结果等于所述第一随机数,则安装所述证书。
8.一种识别后台服务器合法性的系统,包括终端和后台服务器,所述终端包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1:发送挑战值至后台服务器,以使得后台服务器对所述挑战值进行签名后得到签名信息;
S2:接收后台服务器发送的签名信息及证书;
S3:根据所述签名信息、证书中的公钥及证书中的标识码,验证所述后台服务器的合法性,所述标识码用于与合法的应用程序维护的后台服务器的标识码进行比较,若比较一致,再验证签名信息的合法性,来完成了终端对后台服务器的身份识别;
所述S1之前还包括:
S01:通过后台服务器生成一公私钥对,并控制后台服务器发送公钥及签发证书请求至CA认证中心,以使得CA认证中心响应所述签发证书请求后,根据公钥生成对应的证书;
S02:安装所述证书至后台服务器;
S03:安装所述证书的上级证书;
所述S1具体为:
生成一随机数,得到所述挑战值,存储所述随机数;
发送挑战值至后台服务器,以使得后台服务器接收所述挑战值,得到第一挑战值,并通过私钥对所述第一挑战值进行签名后得到签名信息;
所述S2具体为:
接收后台服务器发送的第一挑战值、签名信息及证书;
所述S3具体为:
S31:验证所述第一挑战值是否与所述随机数相同,若否,则输出所述后台服务器为非法服务器;若是,则执行S32;
S32:通过上级证书判断所述证书是否合法;若否,则输出所述后台服务器为非法服务器;若是,则执行S33;
S33:解析所述证书;若解析失败,则输出所述后台服务器为非法服务器;否则,提取证书扩展域中的标识码,得到第一标识码;提取证书中的公钥,得到第一公钥,并执行S34;
S34:判断所述第一标识码是否合法,若否,则输出所述后台服务器为非法服务器;若是,则执行S35;
S35:判断所述签名信息是否合法,若否,则输出所述后台服务器为非法服务器;若是,则输出所述后台服务器为合法服务器。
9.根据权利要求8所述的一种识别后台服务器合法性的系统,其特征在于,所述S01和S02之间还包括:
通过CA认证中心分配所述后台服务器一个唯一的标识码;
将所述标识码写入证书的扩展域中。
10.根据权利要求8所述的一种识别后台服务器合法性的系统,其特征在于,通过私钥对所述第一挑战值进行签名后得到签名信息,具体为:
将所述第一挑战值通过哈希运算,得到第一哈希值;
将所述第一哈希值通过私钥加密,得到所述签名信息。
11.根据权利要求10所述的一种识别后台服务器合法性的系统,其特征在于,判断所述签名信息是否合法,具体为:
将所述随机数进行哈希运算,得到第二哈希值,
通过公钥对所述签名信息进行解密,得到第三哈希值;
判断所述第二哈希值与第三哈希值是否相同。
12.根据权利要求8所述的一种识别后台服务器合法性的系统,其特征在于,判断所述第一标识码是否合法,之前还包括:
将合法的后台服务器的标识码写入应用程序底层;
安装所述应用程序。
13.根据权利要求12所述的一种识别后台服务器合法性的系统,其特征在于,判断所述第一标识码是否合法,具体为:
调用底层API,获取已安装的应用程序底层中的标识码,得到第二标识码;
根据第二标识码,判断所述第一标识码是否合法。
14.根据权利要求13所述的一种识别后台服务器合法性的系统,其特征在于,所述S02具体为:
通过CA认证中心发送所述证书至后台服务器,以使得后台服务器解析所述证书,得到第二公钥,并生成第一随机数;通过所述第二公钥加密所述第一随机数,得到加密结果;通过所述私钥解密该加密结果,得到解密结果,若该解密结果等于所述第一随机数,则安装所述证书。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811382367.9A CN109670289B (zh) | 2018-11-20 | 2018-11-20 | 一种识别后台服务器合法性的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811382367.9A CN109670289B (zh) | 2018-11-20 | 2018-11-20 | 一种识别后台服务器合法性的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109670289A CN109670289A (zh) | 2019-04-23 |
CN109670289B true CN109670289B (zh) | 2020-12-15 |
Family
ID=66141787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811382367.9A Active CN109670289B (zh) | 2018-11-20 | 2018-11-20 | 一种识别后台服务器合法性的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109670289B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764771A (zh) * | 2019-11-06 | 2021-05-07 | 中磊电子(苏州)有限公司 | 固件更新方法与能够执行固件更新的装置 |
EP3902012A4 (en) * | 2020-02-29 | 2022-02-23 | Huawei Technologies Co., Ltd. | FAILURE DIAGNOSTIC METHOD AND APPARATUS, AND VEHICLE |
CN112995213B (zh) * | 2021-04-23 | 2021-08-03 | 北京紫光安芯科技有限公司 | 一种安全认证方法及其应用装置 |
CN113726742B (zh) * | 2021-07-30 | 2023-07-21 | 昆山丘钛微电子科技股份有限公司 | 测试认证方法、装置、电子设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU3076501A (en) * | 1999-12-22 | 2001-07-03 | Transnexus, Inc. | Rate provisioning method and system for an internet telephony clearinghouse system |
CN103716153B (zh) * | 2013-03-15 | 2017-08-01 | 福建联迪商用设备有限公司 | 终端主密钥tmk安全下载方法及系统 |
CN108337093A (zh) * | 2017-12-26 | 2018-07-27 | 福建联迪商用设备有限公司 | Pos设备身份识别方法、pos设备及服务器 |
-
2018
- 2018-11-20 CN CN201811382367.9A patent/CN109670289B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109670289A (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359691B (zh) | 基于区块链的身份验证方法和系统 | |
EP2999189B1 (en) | Network authentication method for secure electronic transactions | |
JP6586446B2 (ja) | 通信端末および関連システムのユーザーの識別情報を確認するための方法 | |
US10523441B2 (en) | Authentication of access request of a device and protecting confidential information | |
CN111404696B (zh) | 协同签名方法、安全服务中间件、相关平台及系统 | |
CN110138562B (zh) | 智能设备的证书签发方法、装置及系统 | |
CN109670289B (zh) | 一种识别后台服务器合法性的方法及系统 | |
CN110677376B (zh) | 认证方法、相关设备和系统及计算机可读存储介质 | |
US12008145B2 (en) | Method and server for certifying an electronic document | |
AU2016287728A1 (en) | Confidential authentication and provisioning | |
KR101817152B1 (ko) | 신뢰된 권한 정보 제공 방법, 신뢰된 권한 정보를 포함하는 사용자 크리덴셜 발급 방법 및 사용자 크리덴셜 획득 방법 | |
CN114218548B (zh) | 身份验证证书生成方法、认证方法、装置、设备及介质 | |
CN108496323B (zh) | 一种证书导入方法及终端 | |
CN111130798A (zh) | 一种请求鉴权方法及相关设备 | |
CN112565265A (zh) | 物联网终端设备间的认证方法、认证系统及通讯方法 | |
Abraham et al. | SSI Strong Authentication using a Mobile-phone based Identity Wallet Reaching a High Level of Assurance. | |
KR102160892B1 (ko) | 공개키 기반의 서비스 인증 방법 및 시스템 | |
CN115460019B (zh) | 基于数字身份的目标应用提供方法和装置、设备和介质 | |
CN108234125B (zh) | 用于身份认证的系统和方法 | |
US20090210719A1 (en) | Communication control method of determining whether communication is permitted/not permitted, and computer-readable recording medium recording communication control program | |
CN113890738A (zh) | 一种电子签名方法和装置 | |
KR20130100032A (ko) | 코드 서명 기법을 이용한 스마트폰 어플리케이션 배포 방법 | |
CN107241341B (zh) | 访问控制方法及装置 | |
CN107919960A (zh) | 一种应用程序的认证方法和系统 | |
CN109525401B (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 |