CN116781292A - 一种数据处理方法、装置、设备以及可读存储介质 - Google Patents
一种数据处理方法、装置、设备以及可读存储介质 Download PDFInfo
- Publication number
- CN116781292A CN116781292A CN202210225128.2A CN202210225128A CN116781292A CN 116781292 A CN116781292 A CN 116781292A CN 202210225128 A CN202210225128 A CN 202210225128A CN 116781292 A CN116781292 A CN 116781292A
- Authority
- CN
- China
- Prior art keywords
- key
- client
- server
- random number
- program
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 36
- 238000003672 processing method Methods 0.000 title abstract description 12
- 238000004891 communication Methods 0.000 claims abstract description 78
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 48
- 230000005540 biological transmission Effects 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 93
- 238000012545 processing Methods 0.000 claims description 30
- 238000012795 verification Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 13
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 40
- 239000010410 layer Substances 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 239000002355 dual-layer Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000007789 sealing Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- QZXCCPZJCKEPSA-UHFFFAOYSA-N chlorfenac Chemical compound OC(=O)CC1=C(Cl)C=CC(Cl)=C1Cl QZXCCPZJCKEPSA-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
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
本申请公开了一种数据处理方法、装置、设备以及可读存储介质,方法包括:服务器获取客户端发送的密钥协商请求,基于密钥协商请求向客户端返回密钥协商响应信息;密钥协商响应信息包括第一随机数、服务器公钥以及目标密码套件;接收客户端发送的客户端加密信息;在可信执行环境中基于服务器私钥对客户端加密信息进行解密,得到第二随机数;基于第一随机数、第二随机数以及密钥协商请求中所携带的第三随机数,生成会话密钥;会话密钥用于在与客户端之间传输应用数据的过程中,对应用数据进行加密或解密。采用本申请,可以在协商会话密钥的场景中,提高私钥的安全性,从而提高通信安全性。本申请实施例可以应用于车载场景。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备以及可读存储介质。
背景技术
当前,在两个设备期望通过安全传输层协议(Transport Layer Security,TLS)进行加密传输数据时,需要共同协商出一个会话密钥,用于对传输的数据进行加密。
对于会话密钥的协商,需要使用到设备的私钥,然而目前对于设备的私钥,主要是明文保存在设备上,私钥存在被第三方窃取的风险,窃取后对于会话密钥即可被第三方解密获取,从而可以获取到通信传输中的数据。可见,在TLS传输场景中,私钥的存储和使用方式存在风险,传输数据的安全性很低。
发明内容
本申请实施例提供一种数据处理方法、装置、设备以及可读存储介质,可以在协商会话密钥的场景中,提高私钥的安全性,从而提高通信安全性。
本申请实施例一方面提供了一种数据处理方法,包括:
服务器获取客户端发送的密钥协商请求,基于密钥协商请求向客户端返回密钥协商响应信息;密钥协商响应信息包括第一随机数、服务器公钥以及目标密码套件;
接收客户端发送的客户端加密信息;客户端加密信息是指客户端基于服务器公钥对第二随机数进行加密后所得到的信息,第二随机数由客户端基于目标密码套件所生成;
在可信执行环境中获取服务器私钥,在可信执行环境中基于服务器私钥对客户端加密信息进行解密,得到第二随机数;可信执行环境是指密钥管理软件开发工具包中的可信程序,密钥管理软件开发工具包是指将密钥管理逻辑程序进行封装后所得到的软件开发工具包;可信执行环境与服务器的操作***相互隔离;
基于第一随机数、第二随机数以及密钥协商请求中所携带的第三随机数,生成会话密钥;会话密钥用于在与客户端之间传输应用数据的过程中,对应用数据进行加密或解密。
本申请实施例一方面提供了一种数据处理装置,包括:
请求获取模块,用于获取客户端发送的密钥协商请求;
响应返回模块,用于基于所述密钥协商请求向所述客户端返回密钥协商响应信息;所述密钥协商响应信息包括第一随机数、服务器公钥以及目标密码套件;
加密信息接收模块,用于接收所述客户端发送的客户端加密信息;所述客户端加密信息是指所述客户端基于所述服务器公钥对第二随机数进行加密后所得到的信息,所述第二随机数由所述客户端基于所述目标密码套件所生成;
私钥获取模块,用于在可信执行环境中获取服务器私钥;
解密模块,用于在所述可信执行环境中基于所述服务器私钥对所述客户端加密信息进行解密,得到所述第二随机数;所述可信执行环境是指密钥管理软件开发工具包中的可信程序,所述密钥管理软件开发工具包是指将密钥管理逻辑程序进行封装后所得到的软件开发工具包;所述可信执行环境与所述服务器的操作***相互隔离;
会话密钥生成模块,用于基于所述第一随机数、所述第二随机数以及所述密钥协商请求中所携带的第三随机数,生成会话密钥;所述会话密钥用于在与所述客户端之间传输应用数据的过程中,对所述应用数据进行加密或解密。
在一个实施例中,所述密钥协商请求携带所述客户端的可用密码套件列表;
响应返回模块,包括:
随机数生成单元,用于基于所述密钥协商请求生成所述第一随机数;
套件选择单元,用于在所述可用密码套件列表中选择所述目标密码套件;
证书获取单元,用于获取由可信节点为所述服务器所签发的第一数字证书;所述第一数字证书包括所述服务器公钥;
响应返回单元,用于将所述第一随机数、所述第一数字证书以及所述目标密码套件确定为所述密钥协商响应信息,向所述客户端返回所述密钥协商响应信息。
在一个实施例中,所述可用密码套件列表中的每个可用密码套件包括所述客户端所能支持的加密算法;所述第二随机数是由所述客户端基于所述目标密码套件中所包括的加密算法所生成的;所述第一数字证书中还包括采用所述可信节点的节点私钥对所述第一数字证书进行签名的第一签名信息,所述第一签名信息用于所述客户端基于所述可信节点的节点公钥对所述第一数字证书进行验证,并在验证通过后获取到所述服务器公钥。
在一个实施例中,所述密钥协商响应信息中还包括证书验证请求,所述证书验证请求用于请求所述客户端向所述服务器发送所述客户端的第二数字证书;所述客户端加密信息还携带所述客户端基于所述证书验证请求向所述服务器所发送的所述第二数字证书;所述第二数字证书由所述可信节点为所述客户端所签发,所述第二数字证书包括所述由可信节点的节点私钥对所述第二数字证书进行签名的第二签名信息;
私钥获取模块,包括:
证书验证单元,用于基于所述可信节点的节点公钥以及所述第二签名信息,对所述第二数字证书进行验证;
私钥获取单元,用于在验证通过时,在可信执行环境中获取服务器私钥。
在一个实施例中,所述服务器支持安全传输层协议,所述密钥协商请求是基于所述安全传输层协议所生成的;
该数据处理装置还包括:
程序获取模块,用于获取密钥管理逻辑程序、所述密钥管理逻辑程序对应的通信接口以及所述密钥管理逻辑程序对应的调用函数;
程序封装模块,用于将所述密钥管理逻辑程序作为可信程序,将所述调用函数作为普通程序,将所述可信程序、所述通信接口以及所述普通程序进行封装,得到所述密钥管理软件开发工具包;
工具包集成模块,用于将所述密钥管理软件开发工具包集成于所述服务器的安全协议库中,将所述安全协议库中所集成的所述密钥管理软件开发工具包中的所述可信程序,确定为所述可信执行环境;所述安全协议库是指所述安全传输层协议对应的协议库。
在一个实施例中,所述普通程序包括解密函数;所述通信接口用于所述普通程序与所述可信程序之间进行通信,所述通信接口包括解密功能通信接口;所述可信程序包括解密功能逻辑程序;
解密模块,包括:
函数调用单元,用于调用所述普通程序中的所述解密函数,通过所述解密函数在所述通信接口中获取所述解密功能通信接口,通过所述解密功能通信接口将所述客户端加密信息发送至所述解密功能逻辑程序;
解密单元,用于在所述解密功能逻辑程序中采用所述服务器私钥对所述客户端加密信息进行解密,得到所述第二随机数;所述解密功能逻辑程序用于通过所述解密功能通信接口将所述第二随机数返回至所述普通程序;
随机数接收单元,用于接收所述普通程序返回的所述第二随机数。
在一个实施例中,所述会话密钥中包括加密秘钥与解密密钥;
数据处理装置还包括:
加密数据接收模块,用于接收所述客户端发送的加密数据;所述加密数据是由所述客户端采用所述加密密钥对所述应用数据进行加密后,所得到的数据;
数据解密模块,用于采用所述解密密钥对所述加密数据进行解密,得到所述应用数据。
在一个实施例中,数据处理装置还包括:
私钥存储模块,用于获取由可信节点为所述服务器所签发的所述服务器私钥,将所述服务器私钥存储至所述可信执行环境;所述可信执行环境用于基于所述可信执行环境对应的环境加密密钥对所述服务器私钥进行加密,得到加密服务器私钥;所述环境加密密钥由所述可信执行环境对应的环境根密钥所衍生得到。
在一个实施例中,所述客户端为区块链网络中的数据节点,所述服务器为所述区块链网络中的共识节点集群中的目标共识节点;
数据处理装置还包括:
区块生成模块,用于接收所述数据节点发送的与目标业务相关联的业务交易数据,根据所述业务交易数据生成交易区块;
区块签名模块,用于在所述可信执行环境中,基于所述服务器私钥对所述交易区块进行签名,得到区块数字签名;
区块发送模块,用于将所述交易区块以及是区块数字签名发送至剩余共识节点;所述剩余共识节点为所述共识节点集群中除所述目标共识节点以外的共识节点;所述区块数字签名用于所述剩余共识节点获取所述目标共识节点对应的服务器公钥,基于所述服务器公钥对所述区块数字签名进行验签,并在验签通过后与所述目标共识节点共同对所述交易区块进行共识;
区块共识模块,用于接收所述剩余共识节点返回的投票信息;所述投票信息是所述剩余共识节点在获取到所述目标共识节点对应的服务器公钥,基于所述服务器公钥对所述区块数字签名进行验签,且在验签通过后才确定的;
区块上链模块,用于基于所述投票信息确定所述交易区块的共识结果;
区块上链模块,还用于在所述交易区块的共识结果为共识通过结果时,将所述目标区块进行上链。
在一个实施例中,所述剩余共识节点的数量为至少两个,所述投票信息的数量为至少两个;
区块上链模块包括:
数量确定单元,用于将至少两个投票信息中投票类型为通过类型的投票信息,确定为投票通过信息;
数量确定单元,还用于获取所述目标共识节点与所述剩余共识节点对应的节点总数量,所述目标共识节点对应的节点数量,以及所述投票通过信息对应的通过数量;
数量确定单元,还用于将所述目标共识节点对应的节点数量与所述通过数量进行相加处理,得到节点通过总数量;
结果确定单元,用于根据所述节点通过总数量与所述节点总数量,确定所述交易区块的共识结果。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本申请实施例中的方法。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
在本申请实施例中,将密钥管理逻辑程序进行封装得到软件开发工具包后,可以根据软件开发工具包中的可信程序确定出可信执行环境,对于服务器的服务器私钥,可以存储在该可信执行环境中,且在使用服务器私钥进行解密时,也是在可信执行环境中进行解密。可见,本申请在客户端与服务器进行会话密钥的协商时,服务器私钥无需再保存在服务器的硬盘上,由于可信执行环境与服务器的操作***相互隔离,服务器私钥存储到可信执行环境中时,无法被外部所窥探到,在可信执行环境中采用私钥进行解密得到的数据,也无法被外部所获取得到,那么基于私钥所协商的会话密钥,也无法被外部所得知,可以很好地保护私钥的安全性,也可以很好地提高会话密钥的安全性,从而可以很好地提高传输数据的安全性。综上,本申请可以在协商会话密钥的场景中,提高私钥的安全性,从而提高通信安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构图;
图2是本申请实施例提供的一种数据处理方法的流程示意图;
图3是本申请实施例提供的一种密钥管理软件开发工具包的结构示意图;
图4是本申请实施例提供的一种区块链双层链进行TLS通信的示意图;
图5是本申请实施例提供的一种基于可信执行环境上链区块的流程示意图;
图6是本申请实施例提供的一种数据处理装置的结构示意图;
图7是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种网络架构图。如图1所示,该网络架构可以包括业务服务器1000和终端设备集群,终端设备集群可以包括一个或者多个终端设备,这里将不对终端设备的数量进行限制。如图1所示,多个终端设备可以包括终端设备100a、终端设备100b、终端设备100c、…、终端设备100n;如图1所示,终端设备100a、终端设备100b、终端设备100c、…、终端设备100n可以分别与业务服务器1000进行网络连接,以便于每个终端设备可以通过该网络连接与业务服务器1000之间进行数据交互。
可以理解的是,如图1所示的每个终端设备均可以安装有目标应用,当该目标应用运行于各终端设备中时,可以分别与图1所示的业务服务器1000之间进行数据交互,使得业务服务器1000可以接收来自于每个终端设备的业务数据。其中,该目标应用可以包括具有显示文字、图像、音频以及视频等数据信息功能的应用。如,应用可以为多媒体类应用(例如,视频应用)、娱乐类应用(例如,游戏应用)、社交应用、教育应用等等。应当理解,本申请中的业务数据可以为应用对应的应用相关数据,例如,当目标应用为视频应用时,该业务数据可以是指视频相关数据;目标应用为游戏应用时,该业务数据可以是指游戏相关数据,这里将不进行一一举例说明。
应当理解,在终端设备与业务服务器之间进行数据交互时,对于普通的、可以公开的数据,可以采用超文本传输协议(Hyper Text Transfer Protocol,HTTP)的传输通道进行传输。其中,超文本传输协议(HTTP)是一个简单的请求-响应协议,它通常运行在传输控制协议(Transmission Control Protocol,TCP)之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。而对于特殊的、具有私密性的、需要进行加密传输的数据,可以采用安全传输层协议(Transport Layer Security,TLS)的安全传输通道进行传输。其中,本申请实施例所涉及的TLS用于在两个通信应用程序之间提供保密性和数据完整性,该协议由两层组成,这两层包括TLS记录协议(TLS Record)和TLS握手协议(TLS Handshake)。
TLS协议的优势是与高层的应用层协议(如HTTP协议、FTP协议、Telent协议等)无耦合。应用层协议能够透明地运行在TLS协议之上,由TLS协议进行创建加密通道需要的协商和认证。应用层协议传送的数据在通过TLS协议时都会被加密,从而保证通信的私密性。可以理解的是,对于TLS协议,需要配置客户端和服务器才能使用,本申请实施例中的终端设备可以为客户端,服务器可以为业务服务器。通过前期部署,一旦客户端和服务器都同意使用TLS协议进行数据传输,则可以通过使用一个TLS握手过程,来协商出一个有状态的连接以传输应用数据。通过TLS握手,客户端和服务器可以协商各种参数用于创建安全连接。其中,对于客户端与服务器之间进行TLS握手过程的过程,实际上可以理解为客户端与服务器协商会话密钥的过程,用于在后续传输应用数据时,对应用数据进行加密与解密。
可以理解的是,在客户端与服务器协商会话密钥的过程中,需要使用到服务器的私钥,而本申请实施例为了增强服务器私钥的安全性,从而提高通信的安全性,对TLS协议进行了改造,使用私钥的地方可以在可信执行环境(Trusted Execution Environments,TEE)中执行,通过将私钥放在可信执行环境中存储和使用,可以避免TLS中的相关私钥被外部所获取得到。其中,本申请实施例涉及的可信执行环境,是基于硬件保护数据和算法的一项技术,是一个处理器和内存的隔离环境,只有中央处理器(Central Processing Unit,CPU)可以访问可信执行环境中的应用程序,其它层(如其它硬件、内核、其它应用程序等等)对可信执行环境的访问,均会被CPU所阻拦。所以,通过在可信执行环境中来存储私钥和使用私钥,可以很好地提高私钥的安全性,减少私钥被泄露的可能性,由此可以保护会话密钥的安全性,进而可以再采用TLS协议传输应用数据时,提高应用数据的传输安全性。
为便于理解,以下将对客户端和服务器基于可信执行环境进行TLS握手,协商各种参数创建安全连接的过程(即通过TLS握手协商会话密钥的过程)进行具体阐述,对于客户端和服务器基于可信执行环境,来进行TLS握手过程可以具体包括以下步骤1-步骤6:
步骤1:当客户端连接到支持TLS协议的服务器要求创建安全连接,并列出了可理解支持的密码套件(包括加密密码算法、加密哈希函数散列函数等等)列表,以及客户端所随机生成得到随机数,握手开始。
步骤2:服务器从该密码套件列表中选择决定出目标密码套件,并通知客户端该目标密码套件,以及服务器随机生成的随机数。
步骤3,服务器发回其数字证书,此证书通常包含服务器的名称、受信任的证书颁发机构(Certification Authority,CA)和服务器的公钥。
步骤4,客户端确认其颁发的证书的有效性,在验证通过后,为了生成会话密钥用于安全连接,客户端可以采用目标密码套件生成又一个随机数(可称之为随机密钥),客户端可以使用服务器的公钥加密随机生成的随机密钥,客户端可以将该加密后的随机密钥发送到服务器。
步骤5,服务器从可信执行环境中获取到服务器的私钥,并将其解密,得到客户端生成的随机密钥。应当理解,由于私钥存储在可信执行环境中,外部无法窥探得到,那么只有服务器能够使用私钥将其解密,具备极高的安全性。
步骤6,服务器和客户端利用双方的随机数以及随机密钥,生成用于加密和解密的对称密钥,该对称密钥即可为双方协商的会话密钥。在后续传输应用数据时,可以采用该对称密钥进行加密或解密。
应当理解,上述步骤1-步骤6即为TLS协议握手过程,握手完毕后的连接是非常安全的,直到连接被关闭。如果上述任何一个步骤失败,则TLS握手过程也会失败,并且断开所有的连接。其中,对于在服务器中部署可信执行环境的具体实现方式,可以参见后续图2所对应实施例中的描述。
本申请实施例可以在多个终端设备中选择一个终端设备作为目标终端设备,该终端设备可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视、智能音箱、台式计算机、智能手表、智能语音交互设备、车载设备等携带多媒体数据处理功能(例如,视频数据播放功能、音乐数据播放功能)的智能终端,但并不局限于此。例如,本申请实施例可以将图1所示的终端设备100a作为该目标终端设备,该目标终端设备中可以集成有上述目标应用,此时,该目标终端设备可以通过该目标应用与业务服务器1000之间进行数据交互。
可以理解的是,本申请实施例提供的方法可以由计算机设备执行,计算机设备包括但不限于终端设备或业务服务器。其中,业务服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,终端设备以及业务服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
可选的,可以理解的是,上述计算机设备(如上述业务服务器1000、终端设备100a、终端设备100b等等)可以是一个分布式***中的一个节点,其中,该分布式***可以为区块链***,该区块链***可以是由该多个节点通过网络通信的形式连接形成的分布式***。为便于理解,以下将对区块链进行具体阐述:区块链是一种分布式数据存储、点对点(P2P,Peer To Peer)传输、共识机制、加密算法等计算机技术的新型应用模式;其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块。此处的数据块又可称为区块,其本质上是一个用于记录数据信息的有效性(即防伪)的区块。基于区块链和点对点网络(P2P网络)所构成的网络可称为区块链网络。应当理解,区块链网络中的任一计算机设备(即节点)可以是终端设备,也可以是服务器。区块链网络中的节点也可以包括可信执行环境,对于节点的私钥,也可以存储在可信执行环境中;对于节点的私钥的使用,可以在可信执行环境中执行,由此可以保护节点之间的通信安全。
需要说明的是,区块链网络中进行证书签发的计算机设备可称为节点签发设备(简称签发节点)。为了更好地实现证书签发,本申请实施例中的签发节点可以是指区块链网络中在可信执行环境中,通过执行可信计算(Trusted Computing,TC)来提供证书签发服务器的节点;所谓的可行执行环境可以是指位于签发节点中,且与签发节点的操作***(Systemon Chip,Soc)相互隔离的安全区域;所谓的可信计算又可称为可信用计算,是一项由可信计算组(可信计算集群,简称为TCPA)推动和开发的技术。
应当理解,在物理部署区块链网络时,可选择区块链网络中所涉及的关键部门(如企业的管理部门)所对应的节点作为签发节点。签发节点中可至少包括:可信执行环境、其他区域以及支撑签发节点的硬件。其中,可信执行环境可包括可信应用(TrustedApplication,TA)、可信执行环境的API(Application Programming Interface,应用程序接口)以及安全***;可信执行环境通过硬件和软件的结合,能够保证相关数据安全传输、存储和处理,以及保证TA执行的机密性和完整性。其他区域可包括其他模块、其他API接口以及操作***(如安卓***);硬件则可以包括用于通信的视频发射器、中央处理器(CPU)、硬盘等。可以理解的是,通过签发节点中的可信执行环境、以及各个节点中的可信执行环境,可以在保护证书安全签发的同时,保护节点私钥的安全性。
需要说明的是,在本申请的具体实施方式中,若涉及到用户信息、用户数据等相关的数据(如上述传输的应用数据包含用户信息或用户数据等相关的数据),对于这些用户信息、用户数据等相关的数据,需要经过用户授权同意才能获取。也就是说,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且用户相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
为便于理解,请一并参见图2,图2是本申请实施例提供的一种数据处理方法的流程示意图。其中,该数据处理方法可由计算机设备执行,这里的计算机设备可以是指服务器(如,上述图1所对应实施例中的业务服务器),也可以是指终端设备(如,上述图1所对应实施例中终端设备集群中的任一终端设备)。如图3所示,该数据处理方法的流程可以至少包括以下步骤S101-步骤S104:
步骤S101,服务器获取客户端发送的密钥协商请求,基于密钥协商请求向客户端返回密钥协商响应信息;密钥协商响应信息包括第一随机数、服务器公钥以及目标密码套件。
本申请中,当客户端与服务器之间需要传输一些特殊的、具备私密性的数据时,可以采用TLS协议的数据传输通道将应用数据进行加密传输。一旦客户端和服务器都同意使用TLS协议进行数据传输,那么基于TLS协议,在客户端与服务器之间进行通信前,需要进行TLS握手,以创建一个安全连接,即共同协商出一个会话密钥,用于在后续传输应用数据时,对应用数据进行加密,或者对加密后的应用数据进行解密。当客户端连接到支持TLS协议的服务器要求创建安全连接,并列出了可理解支持的密码套件(包括加密密码算法、加密哈希函数散列函数等等)列表,以及客户端所随机生成的随机数,握手开始。
那么这里的密钥协商请求实际上可以理解为客户端向服务器发送的要求创建安全连接的请求,该密钥协商请求可以携带有客户端可理解的密钥套件列表(可称之为可用密码套件列表),其中,可用密码套件列表中的每个可用密码套件可以包含有加密密钥算法、加密哈希函数、散列函数等等。该密钥协商请求还可以携带有客户端所随机生成的一个随机数(可称之为第三随机数)。当客户端向服务器端发送携带有可用密码套件列表、第三随机数的密钥协商请求时,可以表征客户端与服务器的TLS握手开始(即开始在客户端与服务器之间创建安全连接)。
进一步地,服务器可以基于该密钥协商请求,向客户端返回一个响应信息(可称之为密钥协商响应信息)。其具体实现方式可为:可以基于密钥协商请求生成第一随机数;可以在可用密码套件列表中选择目标密码套件;可以获取由可信节点为服务器所签发的第一数字证书;其中,第一数字证书包括服务器公钥;随后,可以将第一随机数、第一数字证书以及目标密码套件确定为密钥协商响应信息,向客户端返回密钥协商响应信息。
可以理解的是,该密钥协商响应信息可以包括服务器在上述可用密码套件列表中所选择的目标密码套件、服务器的数字证书(为便于区别,这里可以将服务器的数字证书称之为第一数字证书)、以及服务器所生成的随机数(这里为便于区别,可以将服务器所生成的随机数称之为第一随机数)。在接收到密钥协商请求时,服务器可以在可用密码套件列表中选择出一个密码套件作为目标密码套件,也可以获取到服务器的数字证书,以及生成一个随机数,可以基于目标密码套件、第一数字证书以及第一随机数,组成密钥协商响应信息,服务器可以将该密钥协商响应信息返回给客户端。其中,服务器的数字证书可以由可信节点所签发,这里的可信节点可以是指受客户端、服务器、浏览器所信任的个体或组织。
步骤S102,接收客户端发送的客户端加密信息;客户端加密信息是指客户端基于服务器公钥对第二随机数进行加密后所得到的信息,第二随机数由客户端基于目标密码套件所生成。
本申请中,对于每个数字证书,可以包括有上述可信节点采用节点私钥对数字证书进行签名的签名信息,那么对于服务器的第一数字证书,也包括采用可信节点的节点私钥对第一数字证书进行签名的签名信息(可称之为第一签名信息),在客户端接收到密钥协商信息后,可以基于可信节点的节点公钥,对该第一数字证书进行验证,在验证通过后,可以获取到服务器公钥。此外,由于每个密码套件中包括有客户端所能支持的加密算法,则客户端可以基于密钥协商响应信息中的目标密码套件中的加密算法,生成一个新的随机数(可称之为第二随机数,也可称之为随机预备密钥),客户端可以采用上述获取到的服务器公钥对该第二随机数进行加密,即可得到一个加密信息(可称之为客户端加密信息),该客户端加密信息只有采用服务器的私钥,才能够将其进行解密。
也就是说,上述可用密码套件列表中的每个可用密码套件包括客户端所能支持的加密算法;而第二随机数是由客户端基于目标密码套件中所包括的加密算法所生成的;且第一数字证书中还包括采用可信节点的节点私钥对第一数字证书进行签名的第一签名信息,第一签名信息用于客户端基于可信节点的节点公钥对第一数字证书进行验证,并在验证通过后获取到服务器公钥,客户端在获取到服务器公钥后,再采用服务器公钥对第二随机数进行加密,得到客户端加密信息。
步骤S103,在可信执行环境中获取服务器私钥,在可信执行环境中基于服务器私钥对客户端加密信息进行解密,得到第二随机数;可信执行环境包含密钥管理软件开发工具包中的可信程序,密钥管理软件开发工具包是指将密钥管理逻辑程序进行封装后所得到的软件开发工具包;可信执行环境与服务器的操作***相互隔离。
本申请中,在客户端返回客户端加密信息后,服务器可以从可信执行环境中获取到服务器私钥,并基于该服务器私钥在可信执行环境中将该客户端加密信息进行解密,得到该第二随机数。其中,这里的可信执行环境可以包含软件开发工具包中的可信程序,为了提高TLS通信场景中对于私钥的安全性,本申请实施例可以对TLS协议进行改造,可以采用可信黑盒来安全管理密钥的方式,通过软件层的实现,将密钥管理的相关逻辑程序(如,密钥初始化逻辑程序、密封密钥逻辑程序、解封密钥逻辑程序、采用私钥进行签名的逻辑程序、采用私钥进行解密的逻辑程序等等)进行封装,得到密钥管理软件开发工具包(即密钥管理sdk);随后,可以将该密钥管理软件开发工具包集成到TLS库(即TLS协议对应的开源库,也可称之为安全协议库)中,而TLS库中所集成的该软件开发工具包中的可信程序,即可作为服务器的可信执行环境,对于服务器的私钥的存储以及使用,都可以在该可信程序中进行执行。
通过上述可知,该服务器可以支持安全传输层协议(TLS协议),密钥协商请求是基于安全传输层协议所生成的,对于封装密钥管理sdk,并将其集成到TLS库中得到可信执行环境的具体实现方式可为:可以获取密钥管理逻辑程序、密钥管理逻辑程序对应的通信接口以及密钥管理逻辑程序对应的调用函数;随后,可以将密钥管理逻辑程序作为可信程序,将调用函数作为普通程序,可以将可信程序、通信接口以及普通程序进行封装,得到密钥管理软件开发工具包;随后,可以将密钥管理软件开发工具包集成于服务器的安全协议库中,可以将安全协议库中所集成的密钥管理软件开发工具包中的可信程序,确定为可信执行环境;其中,安全协议库是指安全传输层协议对应的协议库。
可以理解的是,本申请可以将硬件安全机制中的可信部分(在安全环境中执行的密钥管理逻辑程序)、不可信部分(在普通应用程序中执行的代码)以及通信接口进行封装,得到密钥管理sdk。可信部分可以操作密钥(如私钥初始化、私钥存储、私钥解密等),不可信部分可以通过通信接口来与可信部分进行通信,从而可以调用可信部分的相关程序,来处理相关逻辑。其中,在硬件安全机制中,可以将可信部分理解为一个黑盒,黑盒中的内容外部不可窥探,该黑盒即可理解为硬件安全机制中的可信执行环境。硬件安全机制中的可信部分仅暴露数据计算相关的通信接口(如,对于密钥来说,可以仅暴露密钥初始化相关的通信接口,采用密钥进行签名的通信接口、采用密钥进行解密的通信接口等等),对于私密数据(如私钥)永远不会离开黑盒(可信部分),从而可以保证私钥的安全性。黑盒中的数据仅CPU可见,操作***、普通应用程序、CPU之外的硬件均无法窥探到黑盒中的内容。
而本申请实施例可以采用硬件安全机制来实现密钥管理sdk,可以将硬件安全机制中的可信部分程序(即在黑盒中执行的密钥管理逻辑程序)进行封装,密钥管理sdk也可以分为可信程序(即密钥管理逻辑程序)与不可信程序(可称之为普通程序,即包含调用函数之类的普通代码)。密钥管理逻辑程序可以操作私钥,而普通程序可以通过通信接口与可信程序进行通信,普通程序通过通信接口来调用可信程序中的相关密钥功能程序。也就是说,密钥管理sdk中,包含有可信程序(密钥管理逻辑程序)、普通程序(包含调用函数)以及通信接口(用于普通程序与可信程序之间进行通信),由于可信程序只能运行于CPU中,不能进行***调用,那么所有相关的文件操作、网络操作等均需要在普通程序中实现。在期望使用私钥时,可以通过调用普通程序中的相关功能函数,而普通程序可以通过相关的通信接口,将待处理数据发送至可信程序,再可信程序中,即可采用私钥对待处理数据进行相关操作。
为便于理解,请一并参见图3,图3是本申请实施例提供的一种密钥管理软件开发工具包的结构示意图。如图3所示,该密钥管理软件开发工具包中可以包括有可信部分(即可信程序)与不可信部分(即普通程序),该可信程序可以包括有密钥管理逻辑程序(如,密钥初始化逻辑程序、密封密钥逻辑程序、解密密钥逻辑程序、签名功能逻辑程序、解密功能逻辑程序等等),普通程序可以包括调用函数(密钥初始化逻辑程序、密封密钥逻辑程序、解密密钥逻辑程序、签名功能逻辑程序、解密功能逻辑程序分别对应的调用函数等等),该密钥管理软件开发工具包中还可以包括有用于可信程序与不可惜程序之间进行通信的通信接口。其中,对于密钥管理软件开发工具包中的可信程序,外部(如,其他应用程序、操作***、CPU以外的硬件均无法访问),外部只能访问普通程序,再由普通程序通过通信接口与可信程序之间进行通信。当密钥管理软件开发工具包部署于TLS库中后,密钥管理软件开发工具包即可作为服务器的可信执行环境,所有与服务器私钥相关的操作,均在可信执行环境中执行,可以很好地保护服务器私钥的安全性。
通过上述可知,所有与私钥相关的操作,均在可信执行环境(可信程序)中进行,那么本申请实施例中的普通程序可以包括解密函数;通信接口用于普通程序与可信程序之间进行通信,通信接口可以包括解密功能通信接口;可信程序可以包括解密功能逻辑程序;对于在可信执行环境中基于服务器私钥对客户端加密信息进行解密,得到第二随机数的具体实现方式可为:可以调用普通程序中的解密函数,通过解密函数可以在通信接口中获取解密功能通信接口,随后,可以通过解密功能通信接口将客户端加密信息发送至解密功能逻辑程序;在解密功能逻辑程序中可以采用服务器私钥对客户端加密信息进行解密,得到第二随机数;其中,解密功能逻辑程序还用于通过解密功能通信接口将第二随机数返回至普通程序;随后,服务器即可接收普通程序返回的第二随机数。
可选的,在一种可行的实施例中,服务器还可以对客户端的数字证书进行验证,那么在上述密钥协商响应信息中,还可以包括证书验证请求,其中,该证书验证请求可以用于请求客户端向服务器发送客户端的第二数字证书;而客户端可以基于该证书验证请求,向服务器返回客户端的第二数字证书,也就是说,上述客户端加密信息还可以携带客户端基于证书验证请求向服务器所发送的第二数字证书;其中,这里的第二数字证书可以由可信节点为客户端所签发,第二数字证书包括由可信节点的节点私钥对第二数字证书进行签名的第二签名信息。
可以理解的是,在此种情况下,对于服务器在可信执行环境中获取服务器私钥的具体实现方式可为:可以基于可信节点的节点公钥以及第二签名信息,对第二数字证书进行验证;在验证通过时,再在可信执行环境中获取服务器私钥。
步骤S104,基于第一随机数、第二随机数以及密钥协商请求中所携带的第三随机数,生成会话密钥;会话密钥用于在与客户端之间传输应用数据的过程中,对应用数据进行加密或解密。
本申请中,服务器在解密得到第二随机数后,此时服务器可以基于上述第一随机数、第二随机数以及第三随机数,生成会话密钥。同样,客户端也可以基于第一随机数、第二随机数以及第三随机数,生成该会话密钥,然后客户端可以向服务器发一个密钥加密通知信息,同于通知服务器后续将开始采用会话密钥加密的加密方式来发送数据。
可以理解的是,本申请中的会话密钥可以是对称密钥,可以是密钥对,该会话密钥可以包括第一密钥与第二密钥,该第一密钥与第二密钥可以进行相互加解密,即采用第一密钥加密的数据,只能采用第二密钥进行解密;或者采用第二密钥加密的数据,只能采用第一密钥进行解密。该第一密钥与第二密钥中的任一一个密钥可以作为加密密钥,另一个则作为解密密钥。也就是说,会话密钥中可以包括加密密钥与解密密钥,客户端可以采用加密密钥对应用数据进行加密,得到加密数据;随后,客户端可以将该加密数据发送至服务器;而服务器在接收到客户端发送的加密数据后,可以采用对应的解密密钥对该加密数据进行解密,得到该应用数据。
应当理解,在客户端与服务器之间进行TLS通信时,本申请实施例对TLS协议进行了改造,将密钥管理sdk集成到TLS库中。本申请实施例可以再TLS库中注册使用私钥的相关函数,所有使用私钥的逻辑可以调用密钥管理sdk中的可信程序进行执行。对于私钥,可以将其存储至密钥管理sdk的可信执行环境(可信程序)中,而可信执行环境可以对该私钥进行密封,由此无法被外部所窥探,即使相关文件被拷贝到其他机器上,也无法恢复出明文,无法查看到私钥。可信执行环境保证了被可信执行环境硬件加密后的数据,无法在其他硬件上解密出来。
以存储服务器私钥为例,对于私钥存储的具体实现方式可为:可以获取由可信节点为服务器所签发的服务器私钥,随后,可以将服务器私钥存储至可信执行环境;其中,可信执行环境用于基于可信执行环境对应的环境加密密钥对服务器私钥进行加密,得到加密服务器私钥;其中,环境加密密钥由可信执行环境对应的环境根密钥所衍生得到。也就是说,可信执行环境可以通过所属的可信硬件的根密钥,衍生出加密密钥,可以采用该加密密钥对服务器私钥进行加密,得到加密服务器私钥,该加密服务器私钥永远不离开可信执行环境,无法被外部窥探,即使可以拷贝到其他机器上,也无法恢复出明文。
在本申请实施例中,可以基于可信计算,将密钥管理逻辑程序进行封装得到软件开发工具包,可以根据软件开发工具包中的可信程序确定出可信执行环境,对于服务器的服务器私钥,可以存储在该可信执行环境中,且在使用服务器私钥进行解密时,也是在可信执行环境中进行解密。可见,本申请在客户端与服务器进行会话密钥的协商时,服务器私钥无需再保存在服务器的硬盘上,由于可信执行环境与服务器的操作***相互隔离,服务器私钥存储到可信执行环境中时,无法被外部所窥探到,在可信执行环境中采用私钥进行解密得到的数据,也无法被外部所获取得到,那么基于私钥所协商的会话密钥,也无法被外部所得知,可以很好地保护私钥的安全性,也可以很好地提高会话密钥的安全性,从而可以很好地提高传输数据的安全性。综上,本申请可以在协商会话密钥的场景中,提高私钥的安全性,从而提高通信安全性。
本申请中,上述服务器或终端设备还可以是一个分布式***中的一个节点,该分布式***可以是指区块链***。可以理解的是,在区块链***的双层链架构中,也可以采用加强的TLS通信。为便于理解,请一并参见图4,图4是本申请实施例提供的一种区块链双层链进行TLS通信的示意图。如图4所示,
在该双层链结构中,可以包括见证网络层与共识网络层,在该见证网络中,可以包括不同的数据节点(如数据节点1与数据节点2),在该共识网络中,可以包括有不同的共识节点(如共识节点1、共识节点2、共识节点3以及共识节点4)。如图4所示,在每个共识节点中,可以部署有可信执行环境(如,将密钥管理sdk集成于TLS库中,将TLS库中的密钥管理sdk中的可信程序作为可信执行环境)。可以将共识节点的节点私钥存储在可信执行环境,且后续使用私钥时,均在可信执行环境中执行。在数据节点与共识节点之间进行TLS会话时,共识节点可以在可信执行环境中获取私钥,并在可信执行环境中使用私钥。由此可以保护区块链中共识节点私钥的安全性,加强通信安全。
可以理解的是,上述客户端可以为区块链网络中的数据节点,服务器可以为区块链网络中的共识节点集群中的某个共识节点(可称之为目标共识节点)。当数据节点向目标共识节点发送某个交易数据时,目标共识节点也可以生成区块,并基于可信执行环境中的私钥对区块进行签名,再将区块进行广播共识,在通过共识后将区块添加到区块链中。为便于理解,请一并参见图5,图5是本申请实施例提供的一种基于可信执行环境上链区块的流程示意图。如图5所示,该流程可以至少包括以下步骤S201-步骤S205:
步骤S201,接收数据节点发送的与目标业务相关联的业务交易数据,根据业务交易数据生成交易区块。
具体的,目标业务可以包含转账、存储等交易业务,数据节点可将交易数据发送至目标共识节点,目标共识节点可以根据业务交易数据生成区块(可称之为交易区块)。
步骤S202,在可信执行环境中,基于服务器私钥对交易区块进行签名,得到区块数字签名。
具体的,目标共识节点中可部署有可信执行环境,目标共识节点可以再可信执行环境中,基于服务器私钥(即目标共识节点的节点私钥)对交易区块进行签名,得到数字签名(为便于区别,可将该数字签名称为区块数字签名)。具体的,可信执行环境可以是指TLS库中,所集成的密钥管理软件工具包中的可信程序,在该可信程序中可以包括签名功能逻辑程序,密钥管理软件工具包中的普通程序可以包括签名函数,密钥管理软件工具包中的通信接口可以包括签名功能通信接口。那么目标共识节点可以调用普通程序中的该签名函数,通过该签名函数可以在通信接口中获取到该签名功能接口,通过签名通信接口可以将交易区块发送至签名功能逻辑程序;在签名功能程序中,可以采用服务器私钥对该交易区块进行签名,得到区块数字签名。该签名功能逻辑程序,也可以通过签名功能通信接口将该区块数字签名返回至普通程序;而目标共识节点可以接收到该全盔数字签名。
步骤S203,将交易区块以及是区块数字签名发送至剩余共识节点;剩余共识节点为共识节点集群中除目标共识节点以外的共识节点;区块数字签名用于剩余共识节点获取目标共识节点对应的服务器公钥,基于服务器公钥对区块数字签名进行验签,并在验签通过后与目标共识节点共同对交易区块进行共识。
具体的,目标共识节点可以将该交易区块广播至其他共识节点(即剩余共识节点)以进行共识。其他共识节点可以获取目标共识节点对应的服务器公钥对区块数字签名进行验签,在验签通过后,即可与目标共识节点共同对交易区块进行共识。
步骤S204,接收剩余共识节点返回的投票信息;投票信息是剩余共识节点在获取到目标共识节点对应的服务器公钥,基于服务器公钥对区块数字签名进行验签,且在验签通过后才确定的。
具体的,每个剩余共识节点可以向目标共识节点返回投票信息,该投票信息的类型可以包括通过类型、拒绝通过类型以及待定类型。
步骤S205,基于投票信息确定交易区块的共识结果,在交易区块的共识结果为共识通过结果时,将目标区块进行上链。
具体的,目标共识节点可以基于每个剩余共识节点的投票信息,确定交易区块的共识结果。以剩余共识节点的数量为至少两个,投票信息的数量为至少两个为例,对于基于投票信息确定交易区块的共识结果的具体实现方式可为:可以将至少两个投票信息中投票类型为通过类型的投票信息,确定为投票通过信息;随后,可以获取目标共识节点与剩余共识节点对应的节点总数量,目标共识节点对应的节点数量,以及投票通过信息对应的通过数量;可以将目标共识节点对应的节点数量与通过数量进行相加处理,得到节点通过总数量;根据节点通过总数量与节点总数量,确定交易区块的共识结果。
其中,对于根据节点通过总数量与节点总数量,确定交易区块的共识结果的具体实现方式可为:可以确定节点通过总数量与节点总数量之间的比例值;若该比例值大于或等于比例阈值,则可以将该交易区块的共识结果确定为共识通过结果;若该比例值小于比例阈值,则可以将该交易区块的共识结果确定为共识失败结果。其中,该比例阈值可为认为规定值(如2/3、3/4等)。也就是说,当共识节点集群中有超过一定比例的共识节点,投票信息均为通过时,即可将共识结果确定为共识通过结果。
在本申请实施例中,可以基于可信计算,将密钥管理逻辑程序进行封装得到软件开发工具包,可以根据软件开发工具包中的可信程序确定出可信执行环境,对于服务器的服务器私钥,可以存储在该可信执行环境中,且在使用服务器私钥进行解密时,也是在可信执行环境中进行解密。可见,本申请在客户端与服务器进行会话密钥的协商时,服务器私钥无需再保存在服务器的硬盘上,由于可信执行环境与服务器的操作***相互隔离,服务器私钥存储到可信执行环境中时,无法被外部所窥探到,在可信执行环境中采用私钥进行解密得到的数据,也无法被外部所获取得到,那么基于私钥所协商的会话密钥,也无法被外部所得知,可以很好地保护私钥的安全性,也可以很好地提高会话密钥的安全性,从而可以很好地提高传输数据的安全性。综上,本申请可以在协商会话密钥的场景中,提高私钥的安全性,从而提高通信安全性。
进一步地,请参见图6,图6是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该数据处理装置可以用于执行图3所示的方法。如图6所示,该数据处理装置1可以包括:请求获取模块11、响应返回模块12、加密信息接收模块13、私钥获取模块14、解密模块15以及会话密钥生成模块16。
请求获取模块11,用于获取客户端发送的密钥协商请求;
响应返回模块12,用于基于所述密钥协商请求向所述客户端返回密钥协商响应信息;所述密钥协商响应信息包括第一随机数、服务器公钥以及目标密码套件;
加密信息接收模块13,用于接收所述客户端发送的客户端加密信息;所述客户端加密信息是指所述客户端基于所述服务器公钥对第二随机数进行加密后所得到的信息,所述第二随机数由所述客户端基于所述目标密码套件所生成;
私钥获取模块14,用于在可信执行环境中获取服务器私钥;
解密模块15,用于在所述可信执行环境中基于所述服务器私钥对所述客户端加密信息进行解密,得到所述第二随机数;所述可信执行环境是指密钥管理软件开发工具包中的可信程序,所述密钥管理软件开发工具包是指将密钥管理逻辑程序进行封装后所得到的软件开发工具包;所述可信执行环境与所述服务器的操作***相互隔离;
会话密钥生成模块16,用于基于所述第一随机数、所述第二随机数以及所述密钥协商请求中所携带的第三随机数,生成会话密钥;所述会话密钥用于在与所述客户端之间传输应用数据的过程中,对所述应用数据进行加密或解密。
其中,请求获取模块11、响应返回模块12、加密信息接收模块13、私钥获取模块14、解密模块15以及会话密钥生成模块16的具体实现方式,可以参见上述图2所对应实施例中步骤S101-步骤S104的描述,这里将不再进行赘述。
在一个实施例中,所述密钥协商请求携带所述客户端的可用密码套件列表;
响应返回模块12可以包括:随机数生成单元121、套件选择单元122、证书获取单元123以及响应返回单元124。
随机数生成单元121,用于基于所述密钥协商请求生成所述第一随机数;
套件选择单元122,用于在所述可用密码套件列表中选择所述目标密码套件;
证书获取单元123,用于获取由可信节点为所述服务器所签发的第一数字证书;所述第一数字证书包括所述服务器公钥;
响应返回单元124,用于将所述第一随机数、所述第一数字证书以及所述目标密码套件确定为所述密钥协商响应信息,向所述客户端返回所述密钥协商响应信息。
其中,随机数生成单元121、套件选择单元122、证书获取单元123以及响应返回单元124的具体实现方式,可以参见上述图2所对应实施例中步骤S101的描述,这里将不再进行赘述。
在一个实施例中,所述可用密码套件列表中的每个可用密码套件包括所述客户端所能支持的加密算法;所述第二随机数是由所述客户端基于所述目标密码套件中所包括的加密算法所生成的;所述第一数字证书中还包括采用所述可信节点的节点私钥对所述第一数字证书进行签名的第一签名信息,所述第一签名信息用于所述客户端基于所述可信节点的节点公钥对所述第一数字证书进行验证,并在验证通过后获取到所述服务器公钥。
在一个实施例中,所述密钥协商响应信息中还包括证书验证请求,所述证书验证请求用于请求所述客户端向所述服务器发送所述客户端的第二数字证书;所述客户端加密信息还携带所述客户端基于所述证书验证请求向所述服务器所发送的所述第二数字证书;所述第二数字证书由所述可信节点为所述客户端所签发,所述第二数字证书包括所述由可信节点的节点私钥对所述第二数字证书进行签名的第二签名信息;
私钥获取模块14可以包括:证书验证单元141以及私钥获取单元142。
证书验证单元141,基于所述可信节点的节点公钥以及所述第二签名信息,对所述第二数字证书进行验证;
私钥获取单元142,用于在验证通过时,在可信执行环境中获取服务器私钥。
其中,证书验证单元141以及私钥获取单元142的具体实现方式,可以参见上述图2所对应实施例中步骤S103的描述,这里将不再进行赘述。
在一个实施例中,所述服务器支持安全传输层协议,所述密钥协商请求是基于所述安全传输层协议所生成的;
该数据处理装置1还可以包括:程序获取模块17、程序封装模块18以及工具包集成模块19。
程序获取模块17,用于获取密钥管理逻辑程序、所述密钥管理逻辑程序对应的通信接口以及所述密钥管理逻辑程序对应的调用函数;
程序封装模块18,用于将所述密钥管理逻辑程序作为可信程序,将所述调用函数作为普通程序,将所述可信程序、所述通信接口以及所述普通程序进行封装,得到所述密钥管理软件开发工具包;
工具包集成模块19,用于将所述密钥管理软件开发工具包集成于所述服务器的安全协议库中,将所述安全协议库中所集成的所述密钥管理软件开发工具包中的所述可信程序,确定为所述可信执行环境;所述安全协议库是指所述安全传输层协议对应的协议库。
其中,程序获取模块17、程序封装模块18以及工具包集成模块19的具体实现方式,可以参见上述图2所对应实施例中步骤S103的描述,这里将不再进行赘述。
在一个实施例中,所述普通程序包括解密函数;所述通信接口用于所述普通程序与所述可信程序之间进行通信,所述通信接口包括解密功能通信接口;所述可信程序包括解密功能逻辑程序;
解密模块15可以包括:函数调用单元151、解密单元152以及随机数接收单元153。
函数调用单元151,用于调用所述普通程序中的所述解密函数,通过所述解密函数在所述通信接口中获取所述解密功能通信接口,通过所述解密功能通信接口将所述客户端加密信息发送至所述解密功能逻辑程序;
解密单元152,用于在所述解密功能逻辑程序中采用所述服务器私钥对所述客户端加密信息进行解密,得到所述第二随机数;所述解密功能逻辑程序用于通过所述解密功能通信接口将所述第二随机数返回至所述普通程序;
随机数接收单元153,用于接收所述普通程序返回的所述第二随机数。
其中,函数调用单元151、解密单元152以及随机数接收单元153的具体实现方式,可以参见上述图2所对应实施例中步骤S103的描述,这里将不再进行赘述。
在一个实施例中,所述会话密钥中包括加密秘钥与解密密钥;
数据处理装置1还可以包括:加密数据接收模块21以及数据解密模块22。
加密数据接收模块21,用于接收所述客户端发送的加密数据;所述加密数据是由所述客户端采用所述加密密钥对所述应用数据进行加密后,所得到的数据;
数据解密模块22,用于采用所述解密密钥对所述加密数据进行解密,得到所述应用数据。
其中,加密数据接收模块21以及数据解密模块22的具体实现方式,可以参见上述图2所对应实施例中步骤S104的描述,这里将不再进行赘述。
在一个实施例中,数据处理装置1还可以包括:私钥存储模块23。
私钥存储模块23,用于获取由可信节点为所述服务器所签发的所述服务器私钥,将所述服务器私钥存储至所述可信执行环境;所述可信执行环境用于基于所述可信执行环境对应的环境加密密钥对所述服务器私钥进行加密,得到加密服务器私钥;所述环境加密密钥由所述可信执行环境对应的环境根密钥所衍生得到。
其中,私钥存储模块23的具体实现方式,可以参见上述图2所对应实施例中步骤S104的描述,这里将不再进行赘述。
在一个实施例中,所述客户端为区块链网络中的数据节点,所述服务器为所述区块链网络中的共识节点集群中的目标共识节点;
数据处理装置1还可以包括:区块生成模块24、区块发送模块25、区块共识模块26以及区块上链模块27。
区块生成模块24,用于接收所述数据节点发送的与目标业务相关联的业务交易数据,根据所述业务交易数据生成交易区块;
区块签名模块24,用于在所述可信执行环境中,基于所述服务器私钥对所述交易区块进行签名,得到区块数字签名;
区块发送模块25,用于将所述交易区块以及是区块数字签名发送至剩余共识节点;所述剩余共识节点为所述共识节点集群中除所述目标共识节点以外的共识节点;所述区块数字签名用于所述剩余共识节点获取所述目标共识节点对应的服务器公钥,基于所述服务器公钥对所述区块数字签名进行验签,并在验签通过后与所述目标共识节点共同对所述交易区块进行共识;
区块共识模块26,用于接收所述剩余共识节点返回的投票信息;所述投票信息是所述剩余共识节点在获取到所述目标共识节点对应的服务器公钥,基于所述服务器公钥对所述区块数字签名进行验签,且在验签通过后才确定的;
区块上链模块27,用于基于所述投票信息确定所述交易区块的共识结果;
区块上链模块27,还用于在所述交易区块的共识结果为共识通过结果时,将所述目标区块进行上链。
其中,区块生成模块24、区块发送模块25、区块共识模块26以及区块上链模块27的具体实现方式,可以参见上述图5所对应实施例中步骤S201-步骤S205的描述,这里将不再进行赘述。
在一个实施例中,所述剩余共识节点的数量为至少两个,所述投票信息的数量为至少两个;
区块上链模块27可以包括:数量确定单元271以及结果确定单元272。
数量确定单元271,用于将至少两个投票信息中投票类型为通过类型的投票信息,确定为投票通过信息;
数量确定单元271,还用于获取所述目标共识节点与所述剩余共识节点对应的节点总数量,所述目标共识节点对应的节点数量,以及所述投票通过信息对应的通过数量;
数量确定单元271,还用于将所述目标共识节点对应的节点数量与所述通过数量进行相加处理,得到节点通过总数量;
结果确定单元272,用于根据所述节点通过总数量与所述节点总数量,确定所述交易区块的共识结果。
其中,数量确定单元271以及结果确定单元272的具体实现方式,可以参见上述图5所对应实施例中步骤S205的描述,这里将不再进行赘述。
在本申请实施例中,将密钥管理逻辑程序进行封装得到软件开发工具包后,可以根据软件开发工具包中的可信程序确定出可信执行环境,对于服务器的服务器私钥,可以存储在该可信执行环境中,且在使用服务器私钥进行解密时,也是在可信执行环境中进行解密。可见,本申请在客户端与服务器进行会话密钥的协商时,服务器私钥无需再保存在服务器的硬盘上,由于可信执行环境与服务器的操作***相互隔离,服务器私钥存储到可信执行环境中时,无法被外部所窥探到,在可信执行环境中采用私钥进行解密得到的数据,也无法被外部所获取得到,那么基于私钥所协商的会话密钥,也无法被外部所得知,可以很好地保护私钥的安全性,也可以很好地提高会话密钥的安全性,从而可以很好地提高传输数据的安全性。综上,本申请可以在协商会话密钥的场景中,提高私钥的安全性,从而提高通信安全性。
进一步地,请参见图7,图7是本申请实施例提供的一种计算机设备的结构示意图。如图7所示,上述图6所对应实施例中的装置1可以应用于上述计算机设备8000,上述计算机设备8000可以包括:处理器8001,网络接口8004和存储器8005,此外,上述计算机设备8000还包括:用户接口8003,和至少一个通信总线8002。其中,通信总线8002用于实现这些组件之间的连接通信。其中,用户接口8003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口8003还可以包括标准的有线接口、无线接口。网络接口8004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器8005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器8005可选的还可以是至少一个位于远离前述处理器8001的存储装置。如图7所示,作为一种计算机可读存储介质的存储器8005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在图7所示的计算机设备8000中,网络接口8004可提供网络通讯功能;而用户接口8003主要用于为用户提供输入的接口;而处理器8001可以用于调用存储器8005中存储的设备控制应用程序,以实现:
获取客户端发送的密钥协商请求,基于密钥协商请求向客户端返回密钥协商响应信息;密钥协商响应信息包括第一随机数、服务器公钥以及目标密码套件;
接收客户端发送的客户端加密信息;客户端加密信息是指客户端基于服务器公钥对第二随机数进行加密后所得到的信息,第二随机数由客户端基于目标密码套件所生成;
在可信执行环境中获取服务器私钥,在可信执行环境中基于服务器私钥对客户端加密信息进行解密,得到第二随机数;可信执行环境是指密钥管理软件开发工具包中的可信程序,密钥管理软件开发工具包是指将密钥管理逻辑程序进行封装后所得到的软件开发工具包;可信执行环境与服务器的操作***相互隔离;
基于第一随机数、第二随机数以及密钥协商请求中所携带的第三随机数,生成会话密钥;会话密钥用于在与客户端之间传输应用数据的过程中,对应用数据进行加密或解密。
应当理解,本申请实施例中所描述的计算机设备8000可执行前文图2到图5所对应实施例中对该数据处理方法的描述,也可执行前文图6所对应实施例中对该数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理的计算机设备1000所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图2到图5所对应实施例中对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (14)
1.一种数据处理方法,其特征在于,包括:
服务器获取客户端发送的密钥协商请求,基于所述密钥协商请求向所述客户端返回密钥协商响应信息;所述密钥协商响应信息包括第一随机数、服务器公钥以及目标密码套件;
接收所述客户端发送的客户端加密信息;所述客户端加密信息是指所述客户端基于所述服务器公钥对第二随机数进行加密后所得到的信息,所述第二随机数由所述客户端基于所述目标密码套件所生成;
在可信执行环境中获取服务器私钥,在所述可信执行环境中基于所述服务器私钥对所述客户端加密信息进行解密,得到所述第二随机数;所述可信执行环境包含密钥管理软件开发工具包中的可信程序,所述密钥管理软件开发工具包是指将密钥管理逻辑程序进行封装后所得到的软件开发工具包;所述可信执行环境与所述服务器的操作***相互隔离;
基于所述第一随机数、所述第二随机数以及所述密钥协商请求中所携带的第三随机数,生成会话密钥;所述会话密钥用于在与所述客户端之间传输应用数据的过程中,对所述应用数据进行加密或解密。
2.根据权利要求1所述的方法,其特征在于,所述密钥协商请求携带所述客户端的可用密码套件列表;
所述基于所述密钥协商请求向所述客户端返回密钥协商响应信息,包括:
基于所述密钥协商请求生成所述第一随机数;
在所述可用密码套件列表中选择所述目标密码套件;
获取由可信节点为所述服务器所签发的第一数字证书;所述第一数字证书包括所述服务器公钥;
将所述第一随机数、所述第一数字证书以及所述目标密码套件确定为所述密钥协商响应信息,向所述客户端返回所述密钥协商响应信息。
3.根据权利要求2所述的方法,其特征在于,所述可用密码套件列表中的每个可用密码套件包括所述客户端所能支持的加密算法;所述第二随机数是由所述客户端基于所述目标密码套件中所包括的加密算法所生成的;所述第一数字证书中还包括采用所述可信节点的节点私钥对所述第一数字证书进行签名的第一签名信息,所述第一签名信息用于所述客户端基于所述可信节点的节点公钥对所述第一数字证书进行验证,并在验证通过后获取到所述服务器公钥。
4.根据权利要求1所述的方法,其特征在于,所述密钥协商响应信息中还包括证书验证请求,所述证书验证请求用于请求所述客户端向所述服务器发送所述客户端的第二数字证书;所述客户端加密信息还携带所述客户端基于所述证书验证请求向所述服务器所发送的所述第二数字证书;所述第二数字证书由所述可信节点为所述客户端所签发,所述第二数字证书包括所述由可信节点的节点私钥对所述第二数字证书进行签名的第二签名信息;
所述在可信执行环境中获取服务器私钥,包括:
基于所述可信节点的节点公钥以及所述第二签名信息,对所述第二数字证书进行验证;
在验证通过时,在可信执行环境中获取服务器私钥。
5.根据权利要求1所述的方法,其特征在于,所述服务器支持安全传输层协议,所述密钥协商请求是基于所述安全传输层协议所生成的;
所述方法还包括:
获取密钥管理逻辑程序、所述密钥管理逻辑程序对应的通信接口以及所述密钥管理逻辑程序对应的调用函数;
将所述密钥管理逻辑程序作为可信程序,将所述调用函数作为普通程序,将所述可信程序、所述通信接口以及所述普通程序进行封装,得到所述密钥管理软件开发工具包;
将所述密钥管理软件开发工具包集成于所述服务器的安全协议库中,将所述安全协议库中所集成的所述密钥管理软件开发工具包中的所述可信程序,确定为所述可信执行环境;所述安全协议库是指所述安全传输层协议对应的协议库。
6.根据权利要求5所述的方法,其特征在于,所述普通程序包括解密函数;所述通信接口用于所述普通程序与所述可信程序之间进行通信,所述通信接口包括解密功能通信接口;所述可信程序包括解密功能逻辑程序;
所述在所述可信执行环境中基于所述服务器私钥对所述客户端加密信息进行解密,得到所述第二随机数,包括:
调用所述普通程序中的所述解密函数,通过所述解密函数在所述通信接口中获取所述解密功能通信接口,通过所述解密功能通信接口将所述客户端加密信息发送至所述解密功能逻辑程序;
在所述解密功能逻辑程序中采用所述服务器私钥对所述客户端加密信息进行解密,得到所述第二随机数;所述解密功能逻辑程序用于通过所述解密功能通信接口将所述第二随机数返回至所述普通程序;
接收所述普通程序返回的所述第二随机数。
7.根据权利要求1所述的方法,其特征在于,所述会话密钥中包括加密秘钥与解密密钥;
所述方法还包括:
接收所述客户端发送的加密数据;所述加密数据是由所述客户端采用所述加密密钥对所述应用数据进行加密后,所得到的数据;
采用所述解密密钥对所述加密数据进行解密,得到所述应用数据。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取由可信节点为所述服务器所签发的所述服务器私钥,将所述服务器私钥存储至所述可信执行环境;所述可信执行环境用于基于所述可信执行环境对应的环境加密密钥对所述服务器私钥进行加密,得到加密服务器私钥;所述环境加密密钥由所述可信执行环境对应的环境根密钥所衍生得到。
9.根据权利要求1所述的方法,其特征在于,所述客户端为区块链网络中的数据节点,所述服务器为所述区块链网络中的共识节点集群中的目标共识节点;
所述方法还包括:
接收所述数据节点发送的与目标业务相关联的业务交易数据,根据所述业务交易数据生成交易区块;
在所述可信执行环境中,基于所述服务器私钥对所述交易区块进行签名,得到区块数字签名;
将所述交易区块以及是区块数字签名发送至剩余共识节点;所述剩余共识节点为所述共识节点集群中除所述目标共识节点以外的共识节点;所述区块数字签名用于所述剩余共识节点获取所述目标共识节点对应的服务器公钥,基于所述服务器公钥对所述区块数字签名进行验签,并在验签通过后与所述目标共识节点共同对所述交易区块进行共识;
接收所述剩余共识节点返回的投票信息;所述投票信息是所述剩余共识节点在获取到所述目标共识节点对应的服务器公钥,基于所述服务器公钥对所述区块数字签名进行验签,且在验签通过后才确定的;
基于所述投票信息确定所述交易区块的共识结果,在所述交易区块的共识结果为共识通过结果时,将所述目标区块进行上链。
10.根据权利要求9所述的方法,其特征在于,所述剩余共识节点的数量为至少两个,所述投票信息的数量为至少两个;
所述基于所述投票信息确定所述交易区块的共识结果,包括:
将至少两个投票信息中投票类型为通过类型的投票信息,确定为投票通过信息;
获取所述目标共识节点与所述剩余共识节点对应的节点总数量,所述目标共识节点对应的节点数量,以及所述投票通过信息对应的通过数量;
将所述目标共识节点对应的节点数量与所述通过数量进行相加处理,得到节点通过总数量;
根据所述节点通过总数量与所述节点总数量,确定所述交易区块的共识结果。
11.一种数据处理装置,其特征在于,包括:
请求获取模块,用于获取客户端发送的密钥协商请求;
响应返回模块,用于基于所述密钥协商请求向所述客户端返回密钥协商响应信息;所述密钥协商响应信息包括第一随机数、服务器公钥以及目标密码套件;
加密信息接收模块,用于接收所述客户端发送的客户端加密信息;所述客户端加密信息是指所述客户端基于所述服务器公钥对第二随机数进行加密后所得到的信息,所述第二随机数由所述客户端基于所述目标密码套件所生成;
私钥获取模块,用于在可信执行环境中获取服务器私钥;
解密模块,用于在所述可信执行环境中基于所述服务器私钥对所述客户端加密信息进行解密,得到所述第二随机数;所述可信执行环境是指密钥管理软件开发工具包中的可信程序,所述密钥管理软件开发工具包是指将密钥管理逻辑程序进行封装后所得到的软件开发工具包;所述可信执行环境与所述服务器的操作***相互隔离;
会话密钥生成模块,用于基于所述第一随机数、所述第二随机数以及所述密钥协商请求中所携带的第三随机数,生成会话密钥;所述会话密钥用于在与所述客户端之间传输应用数据的过程中,对所述应用数据进行加密或解密。
12.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供网络通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以使所述计算机设备执行权利要求1-10任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行权利要求1-10任一项所述的方法。
14.一种计算机程序产品或计算机程序,其特征在于,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,所述计算机指令适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210225128.2A CN116781292A (zh) | 2022-03-07 | 2022-03-07 | 一种数据处理方法、装置、设备以及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210225128.2A CN116781292A (zh) | 2022-03-07 | 2022-03-07 | 一种数据处理方法、装置、设备以及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116781292A true CN116781292A (zh) | 2023-09-19 |
Family
ID=87984644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210225128.2A Pending CN116781292A (zh) | 2022-03-07 | 2022-03-07 | 一种数据处理方法、装置、设备以及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116781292A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116980128A (zh) * | 2023-09-22 | 2023-10-31 | 北京数盾信息科技有限公司 | 一种应用间数据传输处理方法及装置 |
-
2022
- 2022-03-07 CN CN202210225128.2A patent/CN116781292A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116980128A (zh) * | 2023-09-22 | 2023-10-31 | 北京数盾信息科技有限公司 | 一种应用间数据传输处理方法及装置 |
CN116980128B (zh) * | 2023-09-22 | 2023-12-26 | 北京数盾信息科技有限公司 | 一种应用间数据传输处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110933108B (zh) | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 | |
CN111181720B (zh) | 基于可信执行环境的业务处理方法及装置 | |
US8495383B2 (en) | Method for the secure storing of program state data in an electronic device | |
CN101573936B (zh) | 使用可信处理技术的数字版权管理 | |
CN110287654B (zh) | 使用硬件信任根的媒体客户端装置鉴权 | |
CN108566381A (zh) | 一种安全升级方法、装置、服务器、设备和介质 | |
US9559737B2 (en) | Telecommunications chip card | |
CN109302369B (zh) | 一种基于密钥验证的数据传输方法及装置 | |
WO2023143037A1 (zh) | 密钥管理和业务处理 | |
CN112041838A (zh) | 安全区交互 | |
CN111131416A (zh) | 业务服务的提供方法和装置、存储介质、电子装置 | |
CN114584307A (zh) | 一种可信密钥管理方法、装置、电子设备和存储介质 | |
CN107920060A (zh) | 基于账号的数据访问方法和装置 | |
CN116781292A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN116455572B (zh) | 数据加密方法、装置及设备 | |
CN117560150A (zh) | 密钥确定方法、装置、电子设备和计算机可读存储介质 | |
CN116346341A (zh) | 私钥保护和服务端访问方法、***、设备及存储介质 | |
CN114338091B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN111786955B (zh) | 用于保护模型的方法和装置 | |
CN114221784A (zh) | 数据传输方法和计算机设备 | |
CN114124440A (zh) | 安全传输方法、装置、计算机设备和存储介质 | |
CN112350922A (zh) | 一种邮件处理的方法、装置、服务器及存储介质 | |
CN115296934B (zh) | 基于工控网络入侵的信息传输方法、装置、电子设备 | |
CN115996126B (zh) | 信息交互方法、应用设备、辅助平台及电子设备 | |
CN115361168B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40091952 Country of ref document: HK |