CN110890962B - 认证密钥协商方法、装置、存储介质及设备 - Google Patents
认证密钥协商方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN110890962B CN110890962B CN201911327323.0A CN201911327323A CN110890962B CN 110890962 B CN110890962 B CN 110890962B CN 201911327323 A CN201911327323 A CN 201911327323A CN 110890962 B CN110890962 B CN 110890962B
- Authority
- CN
- China
- Prior art keywords
- key
- parameter
- server
- memory area
- client
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例公开一种认证密钥协商方法、装置、存储介质及设备,服务端上基于可信执行环境的安全内存区域与客户端之间的密钥协商过程,是根据服务端和客户端各自基于随机参数生成的各自密钥参数,进而基于对方传递的密钥参数与本端的随机数生成会话密钥,通过安全内存区域的主密钥对进行签名及验签服务端生成的密钥参数,保证了与客户端进行密钥协商的对象是服务端上相应的安全内存区域,协商出的会话密钥用于保障客户端向安全内存区域传递隐私数据的安全性,从而可以应用于保护用户隐私,其中,服务端可以是基于SGX(software guard extensions,软件保护扩展)技术的服务端。
Description
技术领域
本说明书实施例涉及安全计算领域,尤其涉及一种认证密钥协商方法、装置、存储介质及设备。
背景技术
随着云计算的快速发展,越来越多的关键***和高价值数据被迁移到了云端。然而,用户隐私的保护和防止敏感信息的泄露成为云计算新的挑战。云安全也因此成为学术界和工业界关注的一个焦点。云安全领域最重要的一项技术进展名为机密计算(Confidential Computing),保证使用中数据和程序的安全。而TEE(Trusted ExecutionEnvironment,可信执行环境)技术是进行机密计算的有力工具,可在一个安全区域内进行外包计算或多方安全计算,保护使用中数据的机密性和完整性。
其中,基于Intel SGX(Software Guard Extensions, 软件保护扩展)的TEE技术,多个客户端分别与服务端结点的安全内存区域进行协商密钥,进而建立服务端与每个客户端之间安全的通信信道。每个客户端在自己的可信域对隐私数据加密,密文发送至服务端,服务端在安全内存区域(Enclave)中用协商的密钥对密文进行解密。
发明内容
本说明书实施例提供一种认证密钥协商方法、装置、存储介质及设备,实现了隐私数据的前向安全。
第一方面,本说明书实施例提供一种认证密钥协商方法,应用于服务端,所述服务端上包含基于可信执行环境的安全内存区域,所述方法包括远程认证过程和密钥协商过程,其中,在所述远程认证过程中生成所述安全内存区域的主密钥对,所述主密钥对包括第一公钥与第一私钥,所述密钥协商过程包括:接收客户端发送的第一密钥参数,其中,所述第一密钥参数由所述客户端根据第一随机参数生成;在所述安全内存区域,生成第二随机参数,以及根据所述第一密钥参数与所述第二随机参数生成第一会话密钥,所述第一会话密钥用于所述安全内存区域从所述客户端接收隐私数据;在所述安全内存区域,根据所述第二随机参数生成第二密钥参数,以及根据所述第一私钥对所述第二密钥参数进行数字签名;向所述客户端发送所述第二密钥参数和所述数字签名,使得所述客户端基于验证通过的所述第一公钥对所述数字签名进行验证,并在所述数字签名验证通过后,根据所述第二密钥参数与所述第一随机参数生成第二会话密钥,所述第二会话密钥用于所述客户端向所述安全内存区域发送所述隐私数据。
第二方面,本说明书实施例一种认证密钥协商方法,应用于客户端,所述客户端与服务端建立有通信连接,所述服务端上包含基于可信执行环境的安全内存区域,所述方法包括远程认证过程和密钥协商过程,其中,在所述远程认证过程中生成所述安全内存区域的主密钥对,所述主密钥对包括第一公钥与第一私钥,所述密钥协商过程包括:生成第一随机参数,并根据所述第一随机参数生成第一密钥参数;向服务端发送所述第一密钥参数,使得所述服务端根据所述第一密钥参数与第二随机参数在所述安全内存区域生成第一会话密钥,所述第一会话密钥用于所述安全内存区域从所述客户端接收隐私数据;接收所述服务端发送的第二密钥参数和数字签名,所述第二密钥参数是所述服务端根据所述第二随机参数生成,所述数字签名是所述服务端根据所述第一私钥对所述第二密钥参数的签名;根据验证通过的所述第一公钥对所述数字签名进行验证,若所述数字签名验证通过,则根据所述第二密钥参数与所述第一随机参数生成第二会话密钥,所述第二会话密钥用于所述客户端向所述安全内存区域发送所述隐私数据。
第三方面,本说明书实施例提供一种认证密钥协商装置,应用于服务端,所述服务端上包含基于可信执行环境的安全内存区域,所述装置用于执行远程认证过程和密钥协商过程,其中,在所述远程认证过程中生成所述安全内存区域的主密钥对,所述主密钥对包括第一公钥与第一私钥,所述装置用于执行所述密钥协商过程的部分包括:第一接收单元,用于接收客户端发送的第一密钥参数,其中,所述第一密钥参数由所述客户端根据第一随机参数生成;第一密钥生成单元,用于在所述安全内存区域,生成第二随机参数,以及根据所述第一密钥参数与所述第二随机参数生成第一会话密钥,所述第一会话密钥用于所述安全内存区域从所述客户端接收隐私数据;第一参数生成单元,用于在所述安全内存区域,根据所述第二随机参数生成第二密钥参数;第一签名单元,用于根据所述第一私钥对所述第二密钥参数进行数字签名;第一发送单元,用于向所述客户端发送所述第二密钥参数和所述数字签名,使得所述客户端基于验证通过的第一公钥对所述数字签名进行验证,并在所述数字签名验证通过后,根据所述第二密钥参数与所述第一随机参数生成第二会话密钥,所述第二会话密钥用于所述客户端向所述安全内存区域发送所述隐私数据。
第四方面,本说明书实施例提供一种认证密钥协商装置,应用于客户端,所述客户端与服务端建立有通信连接,所述服务端上包含基于可信执行环境的安全内存区域,所述装置用于执行远程认证过程和密钥协商过程,其中,在所述远程认证过程中生成所述安全内存区域的主密钥对,所述主密钥对包括第一公钥与第一私钥,所述装置用于执行所述密钥协商过程的部分包括:
第二参数生成单元,用于生成第一随机参数,并根据所述第一随机参数生成第一密钥参数;第二发送单元,用于向服务端发送所述第一密钥参数,使得所述服务端根据所述第一密钥参数与第二随机参数在所述安全内存区域生成第一会话密钥,所述第一会话密钥用于所述安全内存区域从所述客户端接收隐私数据;第二接收单元,用于接收所述服务端发送的第二密钥参数和数字签名,所述第二密钥参数是所述服务端根据所述第二随机参数生成,所述数字签名是所述服务端根据所述第一私钥对所述第二密钥参数的签名;第二密钥生成单元,用于根据验证通过的所述第一公钥对所述数字签名进行验证,若所述数字签名验证通过,则根据所述第二密钥参数与所述第一随机参数生成第二会话密钥,所述第二会话密钥用于所述客户端向所述安全内存区域发送所述隐私数据。
第五方面,本说明书实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述任一所述方法的步骤。
第六方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一所述方法的步骤。
本说明书实施例提供的一种或者多种技术方案,至少具有如下技术效果或者优点:
服务端上基于可信执行环境的安全内存区域与客户端,基于本说明书实施例提供的密钥协商方法协商出的会话密钥中,包含服务端和客户端生成的随机参数,而不是一个固定密钥或者有变化规律的密钥,因此,攻击者很难攻破会话密钥。基于此,通过安全内存区域的主密钥对签名及验签服务端生成的第二密钥参数,保证了与客户端进行密钥协商的对象是相应的安全内存区域,且会话密钥不会通过网络传输,即使第一私钥泄露,获得第一私钥的攻击者仅仅能够伪造与客户端之间新的会话密钥,并获取伪造会话密钥所加密的数据,但是攻击者无法知晓之前是基于哪个随机参数生成的会话密钥,也无法截获到之前协商的会话密钥,进而也无法获取这些之前协商的会话密钥加密的数据,即在一个时间点丢失私钥开始泄漏数据,但是在此之前的数据不会泄漏,达到了隐私数据的前向安全,并且,目前对用户隐私保障有诉求,应用本说明书实施例提供的认证密钥协商方案,能够更好的保护计算中的隐私数据和代码,进而实现对用户隐私的更好保护。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本说明书的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本说明书实施例中认证密钥协商方法的***架构图;
图2为本说明书实施例中应用于服务端的认证密钥协商方法的流程图;
图3为本说明书实施例中应用于客户端的认证密钥协商方法的流程图;
图4为本说明书实施例中应用于服务端的功能模块图;
图5为本说明书实施例中应用于客户端的功能模块图;
图6为本说明书实施例中电子设备的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
本说明书实施例提供的认证密钥协商方法,应用于如图1所示的***架构中:
服务端,服务端上包括一个以上可信组件--安全内存区域(Enclave),图1中示意出两个安全内存区域:Enclave 1、Enclave 2,以及在安全内存区域之外的不可信组件--服务端APP。每个安全内存区域与不可信组件之间通过跨 Enclave 的函数调用通信,安全内存区域不能执行IO(输入/输出,Input/Output)操作和访问网络,通过服务端的服务端APP执行对安全内存区域内隐私数据的发送、接收和IO操作。
多个客户端,每个客户端均与服务端通信连接,每个客户端分别与服务端的安全内存区域进行密钥协商,各方客户端在自己的可信域,基于协商的会话密钥对自己的隐私数据加密,加密后的密文发送至服务端,服务端的安全内存区域,基于与各方客户端协商的会话密钥,分别对各方客户端发来的密文进行解密并计算。
具体的,在服务端可以创建一个或者多个安全内存区域,安全内存区域与客户端之间一一对应、或者多个客户端对应使用同一个安全内存区域,或者一个安全内存区域提供给多个客户端使用。
具体的,所有安全内存区域中包含的执行代码和数据均存在于一段被保护的物理内存区域中,该物理内存区域叫做enclave page cache(EPC)。并将每个安全内存区域的地址空间映射到物理内存EPC中。只有在安全内存区域中的执行代码被允许去访问物理内存EPC,而安全内存区域中的代码还可以访问物理内存EPC的内存区域。
认证服务器,与服务端通信连接,认证服务器用于对服务端的安全内存区域进行认证。需要说明的是,认证服务器对多个服务端中的每个服务端的安全内存区域进行远程认证。
当然,在实际实施过程中,认证服务器与每个服务端之间通过SP(ServiceProvider,服务提供商)进行通信。
具体来讲,在基于Intel SGX(Software Guard Extensions, 软件保护扩展)的TEE技术下,服务端对应是SGX服务端,当然,也可以是应用于其他TEE技术下,客户端与服务端的安全内存区域之间的认证密钥协商,在此不再详述。
下面结合图1、图2和图3所示,对本说明书实施例中认证密钥协商***进行描述,任意一个客户端与服务端的一个安全内存区域之间均可以基于图2、3所示的密钥协商方法以及如下描述的认证密钥协商***进行认证密钥协商。
其中,任意一个客户端与服务端的一个安全内存区域(如没有特殊说明,后续所描述的安全内存区域都是指同一个安全内存区域)之间进行认证密钥协商的过程包括远程认证过程和密钥协商过程两个阶段。在远程认证过程中会生成安全内存区域的密钥对,生成的密钥对包括第一公钥和第一私钥。
在本说明书实施例中,在服务端和/或客户端进行触发条件监测,在监测到满足远程认证触发条件时执行远程认证过程。在监测到满足密钥协商触发条件时执行密钥协商过程。
下面,对远程认证过程和密钥协商过程分别进行描述:
远程认证过程:认证服务器远程认证服务端的安全内存区域,可以认证安全内存区域中代码的完整性和真实性,以及新生成针对安全内存区域的密钥对。具体来讲,在每次满足远程认证触发条件时,触发服务端向认证服务器发起针对安全内存区域的远程认证过程。
具体来讲,远程认证触发条件包括多个,满足多个远程认证触发条件中的任意一个时,服务端向认证服务器发起针对安全内存区域的远程认证过程。在具体实施过程中,远程认证过程具体包括如下步骤11~13:
步骤11、服务端向认证服务器发起针对安全内存区域的远程认证报告(即Quote报告)。
具体来讲,步骤11具体包括:在满足远程认证触发条件时,服务端在安全内存区域生成针对安全内存区域的远程认证报告,通过服务端App发送远程认证报告。
在本说明书实施例中,针对在安全内存区域生成远程认证报告的过程,进行详细描述:
步骤11A、满足远程认证触发条件时,在安全内存区域生成针对安全内存区域的主密钥对,替换原来的主密钥对,其中,生成的主密钥包括第一公钥和第一私钥。比如,主密钥对可以是RAS公私钥对,RSA是一种非对称加密算法,在满足远程认证触发条件时,作废原RSA公私钥对,生成新的RSA公私钥对,将新生成的RSA公私钥对作为安全内存区域的主密钥对。当然,在执行步骤11A时也可以使用其他非对称加密算法。
步骤11B、对第一私钥进行保存。具体的,将第一私钥直接保存在安全内存区域或者加密后保存在安全内存区域之外,从而在密钥协商过程中,能够基于第一私钥对服务端发送给客户端的第二密钥参数进行数字签名。
具体来讲,为了减少对安全内存区域的空间占用,将第一私钥进行加密后保存在安全内存区域之外,需要使用时再解密至安全内存区域之中。
步骤11C、公开主密钥对中的第一公钥,使得客户端能够获得公开的第一公钥,在密钥协商过程中能够根据公开的第一公钥对第二密钥参数的数字签名进行验证。
步骤11D、根据主密钥中的第一公钥,在安全内存区域生成远程认证报告。
具体来讲,根据主密钥对中的第一公钥生成目标消息摘要;根据目标消息摘要生成远程认证报告,以及生成针对远程认证报告的报告签名,报告签名用于认证服务器对远程认证报告进行验证。
更具体来讲,根据主密钥对中的第一公钥生成目标消息摘要,具体是:向原始报告中加入根据第一公钥生成的目标消息摘要、以及安全内存区域中代码的消息摘要,生成远程认证报告。
更具体来讲,生成针对远程认证报告的报告签名,具体是:对已加入目标消息摘要、安全内存区域中代码的消息摘要之后的远程认证报告进行签名,得到针对远程认证报告的报告签名。具体的,针对远程认证报告的报告签名是基于认证服务器公开的根密钥对远程认证报告进行签名。
在具体实施过程中,可以是直接根据预设的消息摘要算法对第一公钥进行摘要处理,得到第一公钥的消息摘要,作为目标消息摘要。或者可以是将所述第一公钥添加至当前公钥链,形成新的公钥链;对新的公钥链进行摘要处理,得到目标消息摘要。
步骤11E、向认证服务器发送远程认证报告。
具体的,安全内存区域将生成的远程认证报告给服务端App,通过服务端的不可信组件(即服务端App)将远程认证报告发送给认证服务器。通过在远程认证报告时生成的报告签名,使得不可信组件(即服务端App)无法更改远程认证报告中的内容。具体来讲,远程认证报告的报告签名是基于认证服务器提供的根密钥进行的签名。具体来讲,如果服务端是基于intel SGX的SGX服务端,对应的认证服务器是IAS(intel Attestation Service)服务器。
步骤12、认证服务器接收服务端发送的远程认证报告,对远程认证报告进行验证,若远程认证报告验证通过,认证服务器向该服务端返回认证反馈报告(即Report报告)。
针对远程认证报告的报告签名是基于认证服务器公开的根密钥对远程认证报告进行签名。则远程认证报告对远程认证报告的验证,具体是:验证远程认证报告是否是基于认证服务器的根密钥进行的报告签名,如果是,则对远程认证报告的验证通过,否则验证不通过。
认证服务器在验证通过的远程认证报告中附加标识信息,具体的,标识信息用于标识远程认证报告已经被认证服务器验证通过,对包含标识信息的远程认证报告再次进行签名,生成一个针对远程认证报告的认证反馈报告。认证服务器向发起该远程认证报告的服务端发送认证反馈报告。
经过上述远程认证过程得到的认证反馈报告中,包含:远程认证报告的所有信息,即包含:目标消息摘要、安全内存区域中代码的消息摘要,还包括新加入的标识信息和针对认证反馈报告的报告签名。
步骤13、服务端接收并缓存认证服务器返回的针对远程认证报告的认证反馈报告。
在一可选的实施方式,服务端可以直接对接收到的认证反馈报告进行缓存,在满足密钥协商触发条件时,服务端将缓存的认证反馈报告发送给用户端。在这种实施方式下,在服务端仅仅缓存一个认证反馈报告。
为了保证每次缓存的是最新的认证反馈报告,可以采用另外两种实施方式:
实施方式一、接收到当前认证反馈报告时,将当前认证反馈报告与历史时段内缓存的每个认证反馈报告进行对比;如果所述历史时段内缓存的认证反馈报告中,不存在与所述当前认证反馈报告相同的报告,表征当前认证反馈报告是最新的认证反馈报告,则将当前认证反馈报告作为针对远程认证报告的认证反馈报告进行缓存;否则,抛弃当前认证反馈报告。
实施方式二、如果目标消息摘要是最新公钥链进行消息摘要得到;所述接收并缓存针对所述远程认证报告的认证反馈报告,包括:接收到当前认证反馈报告时,判断所述当前认证反馈报告中公钥链的消息摘要是否与所述目标消息摘要相同,如果相同,表征所述当前认证反馈报告是最新的认证反馈报告,则将当前认证反馈报告作为针对所述远程认证报告的认证反馈报告进行缓存;否则,抛弃当前认证反馈报告。
通过这两种实施方式,均能够保证当前缓存的认证反馈报告是最新的,避免对无效认证反馈报告的缓存。
在具体实施过程中,远程认证触发条件包括如下一个或者多个:
1、预设认证时间间隔,服务端根据预设的认证时间间隔,周期性触发服务端向认证服务器发起针对安全内存区域的远程认证过程。需要说明的是,主密钥对是服务端的安全内存区域长期使用的密钥。因此,在没有泄露主密钥对中私钥的情况下,按照较长的更新周期进行对主密钥对进行更新。比如,一年进行一次对主密钥对的更新,即预设的认证时间间隔,触发执行步骤11~13:实现更新主密钥对,基于更新后的主密钥对进行一次针对安全内存区域的远程认证过程。
2、服务端监测到泄漏主密钥对中第一私钥的相关信息时,触发服务端向认证服务器发起针对安全内存区域的远程认证过程。若存在泄漏主密钥对中私钥的情况,也会触发执行步骤11~13,实现对主密钥对进行更新,基于更新后的主密钥对进行一次针对安全内存区域的远程认证过程。
每一次远程认证过程,不仅仅对主密钥对进行了更新和认证,还对安全内存区域中的代码进行了认证,确保是用户端想要执行的代码,在后续将缓存的认证反馈报告给客户端的时候,客户端能够计算本地代码的消息摘要,与认证反馈报告中的安全内存区域中代码的消息摘要进行对比,如果相同,则表征该安全内存区域中代码是客户端想要执行的代码。
前面介绍了阶段一,即远程认证过程。进行完远程认证过程后,即进入
阶段二,即密钥协商过程。且会多次执行密钥协商过程。下面对密钥协商过程进行详细介绍。
客户端远程认证服务端并与服务端进行密钥协商,协商出该客户端与服务端的安全内存区域之间进行通信的会话密钥。在每次满足密钥协商触发条件时,客户端与服务端的安全内存区域进行密钥协商,协商出该客户端与该安全内存区域之间进行通信的会话密钥(用于安全内存区域从客户端接收隐私数据的第一会话密钥,用于客户端向安全内存区域发送隐私数据的第一会话密钥,第一会话密钥与第二会话密钥相同)。具体来讲,密钥协商过程包括如下步骤21~26:
步骤21:客户端向服务端发送第一密钥参数。客户端是可信域,客户端根据第一随机参数生成第一密钥参数。具体的,可以是基于ECC(Elliptic curve cryptography,椭圆曲线密码学)计算出第一密钥参数,即:客户端生成第一随机参数的第二ECC点乘结果,作为第一密钥参数。或者,也可以选择其他加密算法对第一随机参数进行处理,来得到第一密钥参数。
具体来讲,客户端生成第一随机参数,将第一随机参数作为ECC点乘的标量,与椭圆曲线上的一个点进行点乘,得到的第二ECC点乘结果仍然是椭圆曲线上的一个点,即第一密钥参数是椭圆曲线上的一个点。举例来讲,客户端随机取一个大整数b,将b与椭圆曲线上的一个点G进行ECC点乘计算:b*G=bG,得到的ECC点乘结果bG是椭圆曲线上的一个点,客户端将计算得到的bG作为第一密钥参数,发送给服务端的安全内存区域。
步骤22:服务端接收客户端发送的第一密钥参数。具体来讲,服务端通过服务端App接收到第一密钥参数,再给服务端的安全内存区域。
步骤23:服务端在安全内存区域生成第二随机参数,以及根据第一密钥参数与第二随机参数生成第一会话密钥,第一会话密钥用于安全内存区域从客户端接收隐私数据。
具体来讲,服务端在安全内存区域生成第二随机参数,并在安全内存区域将第二随机参数作为ECC点乘的标量与第一密钥参数进行ECC点乘,得到第一ECC点乘结果。在安全内存区域生成第一 ECC点乘结果的消息摘要,作为第一会话密钥。举例来讲,服务端随机取一个大整数a,将a与第一加密参数bG进行ECC点乘计算:a*bG=abG,对得到的abG取消息摘要,得到的Hash(abG)作为服务端的安全内存区域与客户端之间进行通信的第一会话密钥,以解密客户端发送的密文。
步骤24:服务端在安全内存区域,根据第二随机参数生成第二密钥参数,并基于主密钥对中的第一私钥对第二密钥参数进行数字签名。
具体来讲,在安全内存区域,将第二随机参数作为ECC点乘的标量,与椭圆曲线上的一个点进行点乘,得到的第三ECC点乘结果作为第二密钥参数。举例来讲,服务端在安全内存区域内随机取一个大整数a,将a与椭圆曲线上的一个点G进行ECC点乘计算:a*G=aG,得到的ECC点乘结果aG作为第二密钥参数。具体的,客户端与服务端选取椭圆曲线上的点为同一个点。
步骤25:服务端向客户端发送第二密钥参数和第二密钥参数的数字签名。
步骤26:客户端基于验证通过的第一公钥验证第二密钥参数的数字签名,并在数字签名验证通过后,客户端在可信域根据第二密钥参数与第一随机参数生成第二会话密钥,第二会话密钥用于客户端向安全内存区域发送隐私数据时加密隐私数据。
在具体实施过程中,服务端将缓存的认证反馈报告发送给客户端,客户端首先验证认证反馈报告的报告签名,如果认证反馈报告的报告签名验签通过,表征发送该认证反馈报告的服务端可信,则再基于认证反馈报告对公开的第一公钥进行验证,如果第一公钥验证通过,表征客户端接收到的第一公钥是可信的,得到验证通过的第一公钥。
其中,验证认证反馈报告的报告签名,具体是:认证服务器用它对外的公私钥对的第二私钥对认证反馈报告进行的签名,从而客户端用认证服务器对外的公私钥中公开的第二公钥对认证反馈报告的报告签名进行验证。
其中,基于认证反馈报告对公开的第一公钥进行验证,具体可以是如下一种方式:
如果认证反馈报告中的目标消息摘要是第一公钥的消息摘要,则对应方式一:生成公开的第一公钥的消息摘要,获取认证反馈报告中的目标消息摘要,将当前生成的第一公钥的消息摘要与目标消息摘要进行对比,如果相同 ,则对第一公钥验证通过,否则验证不通过。
如果认证反馈报告中的目标消息摘要是公钥链的消息摘要,则对应方式二:生成公开的公钥链的消息摘要,获取认证反馈报告中的目标消息摘要,将当前生成的公钥链的消息摘要与目标消息摘要进行对比,如果相同,则表征公钥链验证通过,否则公钥链验证不通过。获取验证通过的公钥链中指定位置的公钥,即获得验证通过的第一公钥。比如,第一公钥是加入至公钥链的最后,则对应是获取验证通过的公钥链中最后一个公钥,即得到验证通过的第一公钥。
客户端根据验证通过的第一公钥对从服务端接收到的第二密钥参数的数字签名进行验证,如果验证通过,客户端根据第二密钥参数与第一随机参数之间的第四ECC点乘结果生成第二会话密钥,举例来讲,结合前文举例的基础上,即第二会话密钥是通过:b*aG=baG,对得到的baG取消息摘要,得到的Hash(baG)作为服务端的安全内存区域与客户端之间进行通信的第二会话密钥,以加密客户端向SGX服务端发送的隐私数据。
需要说明的是,基于ECC得到的abG和baG,知晓G和aG,是无法计算出a的,同样,知晓G和bG,是无法计算出b的,进而攻击者即使知道了第一私钥,也无法得到abG和baG,进而第一会话密钥hash(abG)、第二会话密钥hash(baG)无法被破解密钥,而abG与baG是相同的计算结果,因此,哈希值也相同。服务端、客户端均不需要告知对方会话密钥是什么,仅仅是交换了用于生成会话密钥的一个参数,就实现了协商出共享密钥(会话密钥),以此能够避免会话密钥的网络传输,避免因第一私钥的泄露而导致会话密钥的泄露,以之前协商的会话密钥加密的隐私数据均是安全的,从而保证了会话密钥的前向安全性。
每次触发执行阶段一,生成新的主密钥对,之前的主密钥对作废,从而确定或怀疑主密钥对泄漏时,能够更新长期使用的主密钥对,每次触发执行阶段二都能够基于长期使用的主密钥协商出新的会话密钥,达到隐私数据的前向安全,进而更好的保护计算中的隐私数据和机密代码,实现更好的保护用户隐私。
密钥协商触发条件有一个或者多个,在满足任意一个密钥协商触发条件时,触发执行密钥协商过程。下面给出如下两个密钥协商触发条件的举例:
1、预设的密钥协商时间间隔,服务端根据预设的密钥协商时间间隔,周期性触发执行密钥协商过程。需要说明的是,会话密钥是直接加密隐私数据的密钥。因此,在没有泄露主密钥对中私钥的情况下,按照较短的更新周期进行对会话密钥进行更新。比如,一周或者一天进行一次对会话密钥的更新。则在一次远程认证过程之后,会执行多次密钥协商过程。
2、监测到第一私钥泄露的情况下,在触发执行远程认证过程之后立即执行触发执行密钥协商过程。从而能够在第一私钥泄露之后,重新生成密钥对,攻击者基于旧的第一私钥与客户端进行密钥协商时,由于客户端已经获得了新的第一公钥,客户端抛弃旧的第一公钥,基于新的第一公钥对根据第一私钥进行签名的第二密钥参数进行验证,则不会被客户端验证通过。从而保证了隐私数据的后向安全。
基于同一发明构思,本说明书实施例提供一种认证密钥协商方法,应用于服务端,服务端上包含基于可信执行环境的安全内存区域,方法包括远程认证过程和密钥协商过程,其中,在远程认证过程中生成安全内存区域的主密钥对,主密钥对包括第一公钥与第一私钥,参考图2所示,密钥协商过程包括:
S200、接收客户端发送的第一密钥参数,其中,第一密钥参数由客户端根据第一随机参数生成;
S202、在安全内存区域,生成第二随机参数,以及根据第一密钥参数与第二随机参数生成第一会话密钥,第一会话密钥用于安全内存区域从客户端接收隐私数据;
S204、在安全内存区域,根据第二随机参数生成第二密钥参数,以及根据第一私钥对第二密钥参数进行数字签名;
S206、向客户端发送第二密钥参数和数字签名,使得客户端基于验证通过的第一公钥对数字签名进行验证,并在数字签名验证通过后,根据第二密钥参数与第一随机参数生成第二会话密钥,第二会话密钥用于客户端向安全内存区域发送隐私数据。
在一可选的实施方式下,根据第一密钥参数与第二随机参数生成第一会话密钥,包括:
生成第一密钥参数与第二随机参数之间的第一椭圆曲线密码 ECC点乘结果,其中,第一密钥参数是客户端对第一随机参数的第二ECC点乘结果;
生成第一 ECC点乘结果的消息摘要,将第一 ECC点乘结果的消息摘要作为第一会话密钥。
在一可选的实施方式下,根据第二随机参数生成第二密钥参数,包括:
生成第二随机参数的第三ECC点乘结果,作为第二密钥参数,使得客户端根据第二密钥参数与第一随机参数之间的第四ECC点乘结果生成第二会话密钥。
在一可选的实施方式下,远程认证过程,包括:
满足远程认证触发条件时,在安全内存区域生成主密钥对,公开第一公钥以及在服务端保存第一私钥;
在安全内存区域,根据第一公钥生成远程认证报告;
通过服务端的不可信组件,向认证服务器发送远程认证报告;
接收并缓存针对远程认证报告的认证反馈报告,其中,认证反馈报告是认证服务器对远程认证报告验证通过后返回的报告。
在一可选的实施方式下,根据第一公钥生成远程认证报告,包括:
根据主密钥对中的第一公钥,生成目标消息摘要;
根据目标消息摘要生成远程认证报告,以及生成针对远程认证报告的报告签名,报告签名用于认证服务器对远程认证报告进行验证。
在一可选的实施方式下,接收并缓存针对远程认证报告的认证反馈报告,包括:
接收到当前认证反馈报告时,将当前认证反馈报告与历史时段内缓存的每个认证反馈报告进行对比;
如果历史时段内缓存的认证反馈报告中,不存在与当前认证反馈报告相同的报告,表征当前认证反馈报告是最新的认证反馈报告,则将当前认证反馈报告作为针对远程认证报告的认证反馈报告进行缓存;否则,抛弃当前认证反馈报告。
在一可选的实施方式下,根据主密钥对中的第一公钥,生成目标消息摘要,包括:
将第一公钥添加至当前公钥链,形成新的公钥链;
对新的公钥链进行摘要处理,得到目标消息摘要;
接收并缓存针对远程认证报告的认证反馈报告,包括:
接收到当前认证反馈报告时,判断当前认证反馈报告中公钥链的消息摘要是否与目标消息摘要相同,如果相同,则将当前认证反馈报告作为针对远程认证报告的认证反馈报告进行缓存;否则,抛弃当前认证反馈报告。
在一可选的实施方式下,在监测到满足密钥协商触发条件时,触发执行密钥协商过程,以及在密钥协商过程中将缓存的认证反馈报告发送给客户端,使得客户端基于认证反馈报告对第一公钥进行验证。
基于同一发明构思,本说明书实施例提供一种认证密钥协商方法,应用于客户端,客户端与服务端建立有通信连接,服务端上包含基于可信执行环境的安全内存区域,方法包括远程认证过程和密钥协商过程,其中,在远程认证过程中生成安全内存区域的主密钥对,主密钥对包括第一公钥与第一私钥,参考图3所示,密钥协商过程包括:
S300、生成第一随机参数,并根据第一随机参数生成第一密钥参数;
S302、向服务端发送第一密钥参数,使得服务端根据第一密钥参数与第二随机参数在安全内存区域生成第一会话密钥,第一会话密钥用于安全内存区域从客户端接收隐私数据;
S304、接收服务端发送的第二密钥参数和数字签名,第二密钥参数是服务端根据第二随机参数生成,数字签名是服务端根据第一私钥对第二密钥参数的签名;
S306、根据验证通过的第一公钥对数字签名进行验证,若数字签名验证通过,则根据第二密钥参数与第一随机参数生成第二会话密钥,第二会话密钥用于客户端向安全内存区域发送隐私数据。
在一可选的实施方式下,根据第一随机参数生成第一密钥参数,包括:
生成第一随机参数的第二ECC点乘结果,作为第一密钥参数,使得服务端根据第一密钥参数与第二随机参数之间的第一ECC点乘结果生成第一会话密钥,第二随机参数由服务端在安全内存区域生成。
在一可选的实施方式下,根据第二密钥参数与第一随机参数生成第二会话密钥,包括:
生成第二密钥参数与第一随机参数之间的第四ECC点乘结果,其中,第二密钥参数是服务端对第二随机参数的第三ECC点乘结果;
生成第四ECC点乘结果的消息摘要,作为第二会话密钥。
在一可选的实施方式下,在根据验证通过的第一公钥对数字签名进行验证之前,还包括:
接收到服务端发送的认证反馈报告时,对认证反馈报告进行验证;
若认证反馈报告验证通过,根据认证反馈报告对第一公钥进行验证,得到验证通过的第一公钥。
基于同一发明构思,本说明书实施例提供一种认证密钥协商装置,应用于服务端,服务端上包含基于可信执行环境的安全内存区域,装置用于执行远程认证过程和密钥协商过程,其中,在远程认证过程中生成安全内存区域的主密钥对,主密钥对包括第一公钥与第一私钥,参考图4所示,装置用于执行密钥协商过程的部分包括:
第一接收单元401,用于接收客户端发送的第一密钥参数,其中,第一密钥参数由客户端根据第一随机参数生成;
第一密钥生成单元402,用于在安全内存区域,生成第二随机参数,以及根据第一密钥参数与第二随机参数生成第一会话密钥,第一会话密钥用于安全内存区域从客户端接收隐私数据;
第一参数生成单元403,用于在安全内存区域,根据第二随机参数生成第二密钥参数;
第一签名单元404,用于根据第一私钥对第二密钥参数进行数字签名;
第一发送单元405,用于向客户端发送第二密钥参数和数字签名,使得客户端基于验证通过的第一公钥对数字签名进行验证,并在数字签名验证通过后,根据第二密钥参数与第一随机参数生成第二会话密钥,第二会话密钥用于客户端向安全内存区域发送隐私数据。
在一可选的实施方式下,第一密钥生成单元402,具体用于:
生成第一密钥参数与第二随机参数之间的第一椭圆曲线密码 ECC点乘结果,其中,第一密钥参数是客户端对第一随机参数的第二ECC点乘结果;
生成第一 ECC点乘结果的消息摘要,将第一 ECC点乘结果的消息摘要作为第一会话密钥。
在一可选的实施方式下,第一参数生成单元403,具体用于:
生成第二随机参数的第三ECC点乘结果,作为第二密钥参数,使得客户端根据第二密钥参数与第一随机参数之间的第四ECC点乘结果生成第二会话密钥。
基于同一发明构思,本说明书实施例提供一种认证密钥协商装置,应用于客户端,客户端与服务端建立有通信连接,服务端上包含基于可信执行环境的安全内存区域,装置用于执行远程认证过程和密钥协商过程,其中,在远程认证过程中生成安全内存区域的主密钥对,主密钥对包括第一公钥与第一私钥,参考图5所示,装置用于执行密钥协商过程的部分包括:
第二参数生成单元501,用于生成第一随机参数,并根据第一随机参数生成第一密钥参数;
第二发送单元502,用于向服务端发送第一密钥参数,使得服务端根据第一密钥参数与第二随机参数在安全内存区域生成第一会话密钥,第一会话密钥用于安全内存区域从客户端接收隐私数据;
第二接收单元503,用于接收服务端发送的第二密钥参数和数字签名,第二密钥参数是服务端根据第二随机参数生成,数字签名是服务端根据第一私钥对第二密钥参数的签名;
第二密钥生成单元504,用于根据验证通过的第一公钥对数字签名进行验证,若数字签名验证通过,则根据第二密钥参数与第一随机参数生成第二会话密钥,第二会话密钥用于客户端向安全内存区域发送隐私数据。
在一可选的实施方式下,第二参数生成单元501,具体用于:
生成第一随机参数的第二ECC点乘结果,作为第一密钥参数,使得服务端根据第一密钥参数与第二随机参数之间的第一ECC点乘结果生成第一会话密钥,第二随机参数由服务端在安全内存区域生成。
在一可选的实施方式下,第二密钥生成单元504,具体用于:
生成第二密钥参数与第一随机参数之间的第四ECC点乘结果,其中,第二密钥参数是服务端对第二随机参数的第三ECC点乘结果;
生成第四ECC点乘结果的消息摘要,作为第二会话密钥。
关于上述装置,其中各个模块的具体功能已经在本说明书实施例提供的认证密钥协商***实施例中进行了详细描述,此处将不做详细阐述说明。
基于与前述实施例中认证密钥协商方法同样的发明构思,本说明书还提供一种电子设备,如图6所示,包括存储器604、处理器602及存储在存储器604上并可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现前文所述认证密钥协商方法的任一实施方式下的步骤。
其中,在图6中,总线架构(用总线600来代表),总线600可以包括任意数量的互联的总线和桥,总线600将包括由处理器602代表的一个或多个处理器和存储器604代表的存储器的各种电路链接在一起。总线600还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口606在总线600和接收器601和发送器603之间提供接口。接收器601和发送器603可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器602负责管理总线600和通常的处理,而存储器604可以被用于存储处理器602在执行操作时所使用的数据。
基于与前述实施例中认证密钥协商方法同样的发明构思,本说明书还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述基于认证密钥协商方法中任一实施方式下的步骤。
本说明书是参照根据本说明书实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。
Claims (21)
1.一种认证密钥协商方法,应用于服务端,所述服务端上包含基于可信执行环境的安全内存区域,所述方法包括远程认证过程和密钥协商过程,其中,在所述远程认证过程中生成所述安全内存区域的主密钥对,所述主密钥对包括第一公钥与第一私钥,监测到满足预设的密钥协商时间间隔,周期性触发执行所述密钥协商过程,监测到第一私钥泄露的情况下,触发执行所述远程认证过程之后,执行触发执行密钥协商过程;所述密钥协商过程包括:
接收客户端发送的第一密钥参数,其中,所述第一密钥参数由所述客户端根据第一随机参数生成,所述第一密钥参数是所述第一随机参数的第二椭圆曲线密码学ECC点乘结果;
在所述安全内存区域,生成第二随机参数,以及根据所述第一密钥参数与所述第二随机参数生成第一会话密钥,所述第一会话密钥用于所述安全内存区域从所述客户端接收隐私数据;
在所述安全内存区域,根据所述第二随机参数生成第二密钥参数,以及根据所述第一私钥对所述第二密钥参数进行数字签名,所述第二密钥参数是所述第二随机参数的第三ECC点乘结果;
向所述客户端发送所述第二密钥参数和所述数字签名,使得所述客户端基于验证通过的所述第一公钥对所述数字签名进行验证,并在所述数字签名验证通过后,根据所述第二密钥参数与所述第一随机参数生成第二会话密钥,所述第二会话密钥用于所述客户端向所述安全内存区域发送所述隐私数据。
2.如权利要求1所述的方法,所述根据所述第一密钥参数与所述第二随机参数生成第一会话密钥,包括:
生成所述第一密钥参数与所述第二随机参数之间的第一ECC点乘结果,其中,所述第一密钥参数是所述客户端对所述第一随机参数的第二ECC点乘结果;
生成所述第一 ECC点乘结果的消息摘要,将所述第一 ECC点乘结果的消息摘要作为所述第一会话密钥。
3.如权利要求1所述的方法,所述根据所述第二随机参数生成第二密钥参数,包括:
生成所述第二随机参数的第三ECC点乘结果,作为所述第二密钥参数,使得所述客户端根据所述第二密钥参数与所述第一随机参数之间的第四ECC点乘结果生成所述第二会话密钥。
4.如权利要求1所述的方法,所述远程认证过程,包括:
满足远程认证触发条件时,在所述安全内存区域生成所述主密钥对,公开所述第一公钥以及在所述服务端保存所述第一私钥;
在所述安全内存区域,根据所述第一公钥生成远程认证报告;
通过所述服务端的不可信组件,向认证服务器发送所述远程认证报告;
接收并缓存针对所述远程认证报告的认证反馈报告,其中,所述认证反馈报告是所述认证服务器对所述远程认证报告验证通过后返回的报告。
5.如权利要求4所述的方法,所述根据所述第一公钥生成远程认证报告,包括:
根据所述主密钥对中的第一公钥,生成目标消息摘要;
根据所述目标消息摘要生成所述远程认证报告,以及生成针对所述远程认证报告的报告签名,所述报告签名用于所述认证服务器对所述远程认证报告进行验证。
6.如权利要求4所述的方法,所述接收并缓存针对所述远程认证报告的认证反馈报告,包括:
接收到当前认证反馈报告时,将所述当前认证反馈报告与历史时段内缓存的每个认证反馈报告进行对比;
如果所述历史时段内缓存的认证反馈报告中,不存在与所述当前认证反馈报告相同的报告,表征所述当前认证反馈报告是最新的认证反馈报告,则将所述当前认证反馈报告作为针对所述远程认证报告的认证反馈报告进行缓存;否则,抛弃所述当前认证反馈报告。
7.如权利要求5所述的方法,
所述根据所述主密钥对中的第一公钥,生成目标消息摘要,包括:
将所述第一公钥添加至当前公钥链,形成新的公钥链;
对所述新的公钥链进行摘要处理,得到所述目标消息摘要;
所述接收并缓存针对所述远程认证报告的认证反馈报告,包括:
接收到当前认证反馈报告时,判断所述当前认证反馈报告中公钥链的消息摘要是否与所述目标消息摘要相同,如果相同,则将所述当前认证反馈报告作为针对所述远程认证报告的认证反馈报告进行缓存;否则,抛弃所述当前认证反馈报告。
8.如权利要求4-7中任一所述的方法,在监测到满足密钥协商触发条件时,触发执行所述密钥协商过程,以及在所述密钥协商过程中将缓存的所述认证反馈报告发送给所述客户端,使得所述客户端基于所述认证反馈报告对所述第一公钥进行验证。
9.一种认证密钥协商方法,应用于客户端,所述客户端与服务端建立有通信连接,所述服务端上包含基于可信执行环境的安全内存区域,所述方法包括远程认证过程和密钥协商过程,其中,在所述远程认证过程中生成所述安全内存区域的主密钥对,所述主密钥对包括第一公钥与第一私钥,监测到满足预设的密钥协商时间间隔,周期性触发执行所述密钥协商过程,监测到第一私钥泄露的情况下,触发执行所述远程认证过程之后,执行触发执行密钥协商过程;所述密钥协商过程包括:
生成第一随机参数,并根据所述第一随机参数生成第一密钥参数,所述第一密钥参数是所述第一随机参数的第二椭圆曲线密码学ECC点乘结果;
向服务端发送所述第一密钥参数,使得所述服务端根据所述第一密钥参数与第二随机参数在所述安全内存区域生成第一会话密钥,所述第一会话密钥用于所述安全内存区域从所述客户端接收隐私数据;
接收所述服务端发送的第二密钥参数和数字签名,所述第二密钥参数是所述服务端根据所述第二随机参数生成,所述数字签名是所述服务端根据所述第一私钥对所述第二密钥参数的签名,所述第二密钥参数是所述第二随机参数的第三ECC点乘结果;
根据验证通过的所述第一公钥对所述数字签名进行验证,若所述数字签名验证通过,则根据所述第二密钥参数与所述第一随机参数生成第二会话密钥,所述第二会话密钥用于所述客户端向所述安全内存区域发送所述隐私数据。
10.如权利要求9所述的方法,所述根据所述第一随机参数生成第一密钥参数,包括:
生成所述第一随机参数的第二ECC点乘结果,作为所述第一密钥参数,使得所述服务端根据所述第一密钥参数与第二随机参数之间的第一ECC点乘结果生成所述第一会话密钥,所述第二随机参数由所述服务端在所述安全内存区域生成。
11.如权利要求9所述的方法,所述根据所述第二密钥参数与所述第一随机参数生成第二会话密钥,包括:
生成所述第二密钥参数与所述第一随机参数之间的第四ECC点乘结果,其中,所述第二密钥参数是所述服务端对所述第二随机参数的第三ECC点乘结果;
生成所述第四ECC点乘结果的消息摘要,作为所述第二会话密钥。
12.如权利要求9所述的方法,在所述根据验证通过的第一公钥对所述数字签名进行验证之前,还包括:
接收到所述服务端发送的认证反馈报告时,对所述认证反馈报告进行验证;
若所述认证反馈报告验证通过,根据所述认证反馈报告对第一公钥进行验证,得到所述验证通过的第一公钥。
13.一种认证密钥协商装置,应用于服务端,所述服务端上包含基于可信执行环境的安全内存区域,所述装置用于执行远程认证过程和密钥协商过程,其中,在所述远程认证过程中生成所述安全内存区域的主密钥对,所述主密钥对包括第一公钥与第一私钥,所述装置用于监测到满足预设的密钥协商时间间隔,周期性触发执行所述密钥协商过程,监测到第一私钥泄露的情况下,触发执行所述远程认证过程之后,执行触发执行密钥协商过程;所述装置用于执行所述密钥协商过程的部分包括:
第一接收单元,用于接收客户端发送的第一密钥参数,其中,所述第一密钥参数由所述客户端根据第一随机参数生成,所述第一密钥参数是所述第一随机参数的第二椭圆曲线密码学ECC点乘结果;
第一密钥生成单元,用于在所述安全内存区域,生成第二随机参数,以及根据所述第一密钥参数与所述第二随机参数生成第一会话密钥,所述第一会话密钥用于所述安全内存区域从所述客户端接收隐私数据;
第一参数生成单元,用于在所述安全内存区域,根据所述第二随机参数生成第二密钥参数;
第一签名单元,用于根据所述第一私钥对所述第二密钥参数进行数字签名;
第一发送单元,用于向所述客户端发送所述第二密钥参数和所述数字签名,使得所述客户端基于验证通过的第一公钥对所述数字签名进行验证,并在所述数字签名验证通过后,根据所述第二密钥参数与所述第一随机参数生成第二会话密钥,所述第二会话密钥用于所述客户端向所述安全内存区域发送所述隐私数据,所述第二密钥参数是所述第二随机参数的第三ECC点乘结果。
14.如权利要求13所述的装置,所述第一密钥生成单元,具体用于:
生成所述第一密钥参数与所述第二随机参数之间的第一ECC点乘结果,其中,所述第一密钥参数是所述客户端对所述第一随机参数的第二ECC点乘结果;
生成所述第一ECC点乘结果的消息摘要,将所述第一 ECC点乘结果的消息摘要作为所述第一会话密钥。
15.如权利要求13所述的装置,所述第一参数生成单元,具体用于:
生成所述第二随机参数的第三ECC点乘结果,作为所述第二密钥参数,使得所述客户端根据所述第二密钥参数与所述第一随机参数之间的第四ECC点乘结果生成所述第二会话密钥。
16.一种认证密钥协商装置,应用于客户端,所述客户端与服务端建立有通信连接,所述服务端上包含基于可信执行环境的安全内存区域,所述装置用于执行远程认证过程和密钥协商过程,其中,在所述远程认证过程中生成所述安全内存区域的主密钥对,所述主密钥对包括第一公钥与第一私钥,所述装置用于监测到满足预设的密钥协商时间间隔,周期性触发执行所述密钥协商过程,监测到第一私钥泄露的情况下,触发执行所述远程认证过程之后,执行触发执行密钥协商过程;所述装置用于执行所述密钥协商过程的部分包括:
第二参数生成单元,用于生成第一随机参数,并根据所述第一随机参数生成第一密钥参数,所述第一密钥参数是所述第一随机参数的第二椭圆曲线密码学ECC点乘结果;
第二发送单元,用于向服务端发送所述第一密钥参数,使得所述服务端根据所述第一密钥参数与第二随机参数在所述安全内存区域生成第一会话密钥,所述第一会话密钥用于所述安全内存区域从所述客户端接收隐私数据;
第二接收单元,用于接收所述服务端发送的第二密钥参数和数字签名,所述第二密钥参数是所述服务端根据所述第二随机参数生成,所述数字签名是所述服务端根据所述第一私钥对所述第二密钥参数的签名,所述第二密钥参数是所述第二随机参数的第三ECC点乘结果;
第二密钥生成单元,用于根据验证通过的所述第一公钥对所述数字签名进行验证,若所述数字签名验证通过,则根据所述第二密钥参数与所述第一随机参数生成第二会话密钥,所述第二会话密钥用于所述客户端向所述安全内存区域发送所述隐私数据。
17.如权利要求16所述的装置,所述第二参数生成单元,具体用于:
生成所述第一随机参数的第二ECC点乘结果,作为所述第一密钥参数,使得所述服务端根据所述第一密钥参数与第二随机参数之间的第一ECC点乘结果生成所述第一会话密钥,所述第二随机参数由所述服务端在所述安全内存区域生成。
18.如权利要求16所述的装置,所述第二密钥生成单元,具体用于:
生成所述第二密钥参数与所述第一随机参数之间的第四ECC点乘结果,其中,所述第二密钥参数是所述服务端对所述第二随机参数的第三ECC点乘结果;
生成所述第四ECC点乘结果的消息摘要,作为所述第二会话密钥。
19.一种认证密钥协商***,包括客户端和服务端,所述服务端上包含基于可信执行环境的安全内存区域,所述***用于执行远程认证过程和密钥协商过程,其中,在所述远程认证过程中生成所述安全内存区域的主密钥对,所述主密钥对包括第一公钥与第一私钥,由所述客户端和/或所述服务端监测到满足预设的密钥协商时间间隔,周期性触发执行所述密钥协商过程,监测到第一私钥泄露的情况下,触发执行所述远程认证过程之后,执行触发执行密钥协商过程;在执行所述密钥协商过程中:
所述客户端,用于根据第一随机参数生成第一密钥参数,并向服务端发送所述第一密钥参数,所述第一密钥参数是所述第一随机参数的第二椭圆曲线密码学ECC点乘结果;
所述服务端,用于在安全内存区域进行如下操作:生成第二随机参数,根据所述第一密钥参数与所述第二随机参数生成第一会话密钥,根据所述第二随机参数生成第二密钥参数,所述第二密钥参数是所述第二随机参数的第三ECC点乘结果,根据所述第一私钥对所述第二密钥参数进行数字签名,向所述客户端发送所述第二密钥参数和所述数字签名,其中,所述第一会话密钥用于所述安全内存区域从所述客户端接收隐私数据,所述安全内存区域是所述服务端上包含的基于可信执行环境的内存区域;
所述客户端还用于:基于验证通过的所述第一公钥对所述数字签名进行验证,并在所述数字签名验证通过后,根据所述第二密钥参数与所述第一随机参数生成第二会话密钥,所述第二会话密钥用于所述客户端向所述安全内存区域发送所述隐私数据。
20.一种电子设备,包括存储器和处理器,其中,在存储器上存储了可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-12中任一所述方法的步骤。
21.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-12中任一所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911327323.0A CN110890962B (zh) | 2019-12-20 | 2019-12-20 | 认证密钥协商方法、装置、存储介质及设备 |
PCT/CN2020/124416 WO2021120871A1 (zh) | 2019-12-20 | 2020-10-28 | 认证密钥协商方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911327323.0A CN110890962B (zh) | 2019-12-20 | 2019-12-20 | 认证密钥协商方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110890962A CN110890962A (zh) | 2020-03-17 |
CN110890962B true CN110890962B (zh) | 2021-04-13 |
Family
ID=69752673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911327323.0A Active CN110890962B (zh) | 2019-12-20 | 2019-12-20 | 认证密钥协商方法、装置、存储介质及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110890962B (zh) |
WO (1) | WO2021120871A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110890962B (zh) * | 2019-12-20 | 2021-04-13 | 支付宝(杭州)信息技术有限公司 | 认证密钥协商方法、装置、存储介质及设备 |
CN111614686B (zh) * | 2020-05-26 | 2023-01-17 | 牛津(海南)区块链研究院有限公司 | 一种密钥管理方法、控制器及*** |
CN114006691B (zh) * | 2020-07-13 | 2023-02-28 | 华为技术有限公司 | 远程证明的方法和装置 |
CN112000493B (zh) * | 2020-08-24 | 2023-04-18 | 成都卫士通信息产业股份有限公司 | 一种数据处理***、方法及电子设备和存储介质 |
CN112784249B (zh) * | 2021-01-25 | 2024-03-22 | 公安部第三研究所 | 实现无标识情形下进行移动终端认证处理的方法、***、处理器及其计算机可读存储介质 |
CN113849815B (zh) * | 2021-08-26 | 2022-04-22 | 兰州大学 | 一种基于零信任和机密计算的统一身份认证平台 |
CN114553412B (zh) * | 2022-02-28 | 2024-02-23 | 百果园技术(新加坡)有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN117235693B (zh) * | 2023-11-14 | 2024-02-02 | 杭州安恒信息技术股份有限公司 | 一种可信执行环境的可信认证和安全通道建立方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106571912A (zh) * | 2016-10-31 | 2017-04-19 | 全球能源互联网研究院 | 一种面向电力***的两方认证方法 |
WO2019120317A2 (en) * | 2019-03-26 | 2019-06-27 | Alibaba Group Holding Limited | Program execution and data proof scheme using multiple key pair signatures |
WO2019137564A2 (en) * | 2019-04-26 | 2019-07-18 | Alibaba Group Holding Limited | Securely executing smart contract operations in a trusted execution environment |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425897B (zh) * | 2007-10-29 | 2011-05-18 | 上海交通大学 | 一种用户认证方法、***、服务器和用户节点 |
CN103298157A (zh) * | 2013-06-19 | 2013-09-11 | 中国地质大学(武汉) | 一种无线物联网数据安全智能传输*** |
DE102018101307A1 (de) * | 2017-02-22 | 2018-08-23 | Intel Corporation | Techniken für SGX-Enklaven-Fernauthentifizierung |
US10726132B2 (en) * | 2018-03-08 | 2020-07-28 | Hewlett Packard Enterprise Development Lp | Enclave launch and authentication |
CN110011801B (zh) * | 2018-11-16 | 2020-10-20 | 创新先进技术有限公司 | 可信应用程序的远程证明方法及装置、电子设备 |
CN110890962B (zh) * | 2019-12-20 | 2021-04-13 | 支付宝(杭州)信息技术有限公司 | 认证密钥协商方法、装置、存储介质及设备 |
-
2019
- 2019-12-20 CN CN201911327323.0A patent/CN110890962B/zh active Active
-
2020
- 2020-10-28 WO PCT/CN2020/124416 patent/WO2021120871A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106571912A (zh) * | 2016-10-31 | 2017-04-19 | 全球能源互联网研究院 | 一种面向电力***的两方认证方法 |
WO2019120317A2 (en) * | 2019-03-26 | 2019-06-27 | Alibaba Group Holding Limited | Program execution and data proof scheme using multiple key pair signatures |
WO2019137564A2 (en) * | 2019-04-26 | 2019-07-18 | Alibaba Group Holding Limited | Securely executing smart contract operations in a trusted execution environment |
Also Published As
Publication number | Publication date |
---|---|
CN110890962A (zh) | 2020-03-17 |
WO2021120871A1 (zh) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110890962B (zh) | 认证密钥协商方法、装置、存储介质及设备 | |
US10652015B2 (en) | Confidential communication management | |
CN109600350B (zh) | 用于车辆网络中的控制器间的安全通信的***和方法 | |
CN109309565B (zh) | 一种安全认证的方法及装置 | |
CN109034796B (zh) | 基于联盟链的交易监管方法、电子装置及可读存储介质 | |
US20180131511A1 (en) | Systems and Methods for Dynamic Cypher Key Management | |
CN106788989B (zh) | 一种建立安全加密信道的方法及设备 | |
AU2016287732A1 (en) | Mutual authentication of confidential communication | |
JP2012050066A (ja) | セキュアなフィールドプログラマブルゲートアレイ(fpga)アーキテクチャ | |
CN106941404B (zh) | 密钥保护方法及装置 | |
TW202015378A (zh) | 密碼運算、創建工作密鑰的方法、密碼服務平台及設備 | |
KR101608815B1 (ko) | 폐쇄형 네트워크에서 암복호화 서비스 제공 시스템 및 방법 | |
JP2022521525A (ja) | データを検証するための暗号方法 | |
CN110383755B (zh) | 网络设备和可信第三方设备 | |
CN115065472B (zh) | 基于多密钥加密解密的安全芯片加密解密方法及装置 | |
CN109005184A (zh) | 文件加密方法及装置、存储介质、终端 | |
US20230299971A1 (en) | Data protection apparatus, electronic apparatus, method, and storage medium | |
CN114143117A (zh) | 数据处理方法及设备 | |
US11153344B2 (en) | Establishing a protected communication channel | |
CN114785527B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN114866244A (zh) | 基于密文分组链接加密的可控匿名认证方法、***及装置 | |
CN115344882A (zh) | 基于可信计算环境的多方计算方法、装置及存储介质 | |
CN110572257A (zh) | 基于身份的抗量子计算数据来源鉴别方法和*** | |
CN112702420B (zh) | 线上和线下数据交互的处理方法及*** | |
CN113676462B (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 |