CN110535628A - 通过证书签发进行多方安全计算的方法及装置 - Google Patents

通过证书签发进行多方安全计算的方法及装置 Download PDF

Info

Publication number
CN110535628A
CN110535628A CN201910808822.5A CN201910808822A CN110535628A CN 110535628 A CN110535628 A CN 110535628A CN 201910808822 A CN201910808822 A CN 201910808822A CN 110535628 A CN110535628 A CN 110535628A
Authority
CN
China
Prior art keywords
certificate
task
computing unit
tls
trusted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910808822.5A
Other languages
English (en)
Other versions
CN110535628B (zh
Inventor
余超凡
王磊
周爱辉
张宁
田洪亮
肖俊贤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910808822.5A priority Critical patent/CN110535628B/zh
Publication of CN110535628A publication Critical patent/CN110535628A/zh
Priority to PCT/CN2020/072112 priority patent/WO2021036183A1/zh
Priority to US16/813,524 priority patent/US11038699B2/en
Application granted granted Critical
Publication of CN110535628B publication Critical patent/CN110535628B/zh
Priority to US17/244,854 priority patent/US11228450B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • H04L9/3265Cryptographic 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 using certificate chains, trees or paths; Hierarchical trust model

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

本说明书实施例提供一种通过分发证书实现多方安全计算的方法和装置。根据该方案,预先配置形成任务分组,并分配组标识。可信证书生成器针对一个组标识生成一套证书链和一个私钥,其中证书链包括根证书和对应的公钥证书,公钥证书与私钥相匹配,构成证书对。然后,可信证书生成器将根证书和证书对分发给经过认证的、运行该组标识对应的各个计算任务的各个可信计算单元。另一方面,还将上述根证书分发给请求该任务分组的计算服务的用户终端。于是,具有根证书的用户终端、具有根证书和证书对的可信计算单元之间,可以通过TLS协议的方式,进行多方安全通信。

Description

通过证书签发进行多方安全计算的方法及装置
技术领域
本说明书一个或多个实施例涉及分布式计算和安全计算领域,尤其涉及多方安全计算的方法和装置。
背景技术
为了计算和数据传输的安全,常常使用可信执行环境TEE(Trusted ExecutionEnvironment)中的可信计算单元进行可信计算和数据处理,其中可信计算单元可以保证其中的代码执行是安全的,外界包括操作***或驱动等都无法获取内部的运行时内存等秘密。例如,可以利用可信计算单元来运行程序代码,执行计算任务,以保证程序代码的执行安全以及与外界的隔离。
出于可信执行环境的安全需要,在可信计算单元与其他方通信之前,例如与用户终端通信,或与其他可信计算单元通信之前,通常首先通过协商得到一个共同的加密秘钥,该秘钥除了通信的双方,其他任何人都不可能破解。双方之间的数据发送均通过该协商得出的秘钥来进行加密,如此,我们称为,可信计算单元与其他方建立了可信通道,可以在该可信通道上安全传输保密数据。
在许多情况下,需要基于多个可信计算单元进行多方安全计算。例如,一些分布式任务需要在多个可信计算单元中执行多个计算任务合作完成,例如需要任务1,任务2和任务3共同协作完成。在这样的情况下,用户终端可能需要与运行上述多个计算任务的多个可信计算单元进行通信来获取计算服务,这多个可信计算单元之间也需要彼此通信,以完成计算任务。那么,出于上述安全需要,用户终端与可信计算单元之间,以及多个可信计算单元彼此之间,都需要建立可信通道。如果分别进行秘钥协商,分别建立单独的可信通道,那么当可信计算单元数目增多,数量庞大时,多方计算的通信过程会变得复杂繁琐,成本高昂。
因此,希望能有改进的方案,便于多个参与方进行多方安全计算,提供相应的计算服务。
发明内容
本说明书一个或多个实施例描述了多方安全计算的方法及装置,其中通过为运行任务分组中各个计算任务的各个可信计算单元和请求该任务分组的计算服务的用户终端分发证书链中的对应证书,确保用户终端与各个可信计算单元之间进行安全的多方通信和计算。
根据第一方面,提供了一种获取证书以进行多方安全计算的方法,通过运行第一计算任务的第一计算单元执行,所述第一计算任务预先被配置为属于第一任务分组,所述第一任务分组还包括至少一个其他计算任务;所述方法包括:
向可信证书生成器发送第一证书请求,所述第一证书请求包括所述第一任务分组的第一组标识,以及第一认证信息,所述第一认证信息用于对第一计算单元进行可信认证,并包括所述第一计算任务的第一代码哈希;
从所述可信证书生成器接收第一证书报告,所述第一证书报告包括针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书以及对应的第一公钥证书,所述第一公钥证书与所述第一私钥相匹配,构成第一证书对;
以所述第一计算单元作为提供所述第一计算任务的计算服务的TLS服务端,将所述第一证书对设置为所述TLS服务端的证书对,并且以所述第一计算单元作为与所述至少一个其他计算任务连接的TLS客户端,将所述第一根证书设置为所述TLS客户端的可信根证书。
在第一方面的一个实施例中,所述第一计算单元实现为可信围圈Enclave。
根据第一方面的一个实施例,在向可信证书生成器发送第一认证请求之前,方法还包括:
生成第一计算单元的单元报告文件,所述单元报告文件包括所述第一代码哈希,以及所述第一计算单元的签名信息;
将所述单元报告文件发送至第三方认证机构,以获得认证结果文件,所述认证结果文件包含所述第三方认证机构的签名信息;
将所述认证结果文件作为所述第一认证信息包含在所述第一证书请求中。
根据第一方面的另一实施例,在向可信证书生成器发送第一认证请求之前,方法还包括:
生成第一计算单元的单元报告文件,所述单元报告文件包括所述第一代码哈希,所述第一计算单元的签名信息;
将所述单元报告文件作为所述第一认证信息包含在所述第一证书请求中。
根据一种实施方式,在向可信证书生成器发送第一认证请求之前,第一计算单元与所述可信证书生成器进行秘钥协商,建立可信通道,所述可信通道用于发送所述第一证书请求,以及接收所述第一证书报告。
根据第二方面,提供了一种为计算单元分发证书的方法,通过可信证书生成器执行,所述方法包括:
从运行第一计算任务的第一计算单元接收第一证书请求,所述第一证书请求包括第一任务分组的第一组标识,以及第一认证信息,所述第一认证信息用于对所述第一计算单元进行认证,且包括所述第一计算任务的第一代码哈希;
根据所述第一认证信息对所述第一计算单元进行认证;
在认证通过的情况下,根据所述第一代码哈希判断所述第一计算任务是否属于所述第一任务分组;
在确认所述第一计算任务属于所述第一任务分组的情况下,获取预先针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书和对应的第一公钥证书,所述第一公钥证书与所述第一私钥相匹配,构成第一证书对;
向所述第一计算单元发送第一证书报告,所述第一证书报告包括所述第一根证书和所述第一证书对,使得所述第一计算单元以自身为提供计算服务的TLS服务端和与其他计算任务连接的TLS客户端,将所述第一证书对设置为TLS服务端的证书对,将所述第一根证书设置为TLS客户端的可信根证书。
根据第二方面的一个实施例,所述第一认证信息为经过第三方认证机构认证的认证结果文件,该认证结果文件包含该第三方认证机构的签名信息;在这样的情况下,对所述第一计算单元进行认证包括:
校验所述签名信息,在校验成功的情况下,确定所述第一计算单元认证通过。
根据第二方面的另一实施例,所述第一认证信息为所述第一计算单元生成的单元报告文件,所述单元报告文件包括所述第一代码哈希,以及所述第一计算单元的签名信息;在这样的情况下,对所述第一计算单元进行认证包括:
将所述单元报告文件发送至第三方认证机构,以获得认证结果文件,所述认证结果文件包含所述第三方认证机构的签名信息;
校验所述签名信息,在校验成功的情况下,确定所述第一计算单元认证通过。
根据第二方面的一种实施方式,在从运行第一计算任务的第一计算单元接收第一证书请求之前,所述可信证书管理器从配置管理器接收第一生成命令,所述第一生成命令包括,所述第一组标识,以及与所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希;针对所述第一组标识,生成所述第一证书链和第一私钥。
根据第二方面的一个实施例,通过以下方式判断所述第一计算任务是否属于所述第一任务分组:
获取预先配置的、与所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希;
判断所述第一代码哈希是否位于所述第一哈希列表中,如果是,则确认所述第一计算任务属于所述第一任务分组。
根据第二方面的一个具体实施例,所述第一公钥证书包括针对所述第一组标识生成的第一公钥,以及所述可信证书生成器签名的第一签名信息,其中所述第一公钥和所述第一私钥构成密钥对;所述第一根证书中包括针对所述第一组标识生成的第二公钥,以及所述可信证书生成器自签名的第二签名信息;所述第二公钥用于对所述第一签名信息和第二签名信息进行校验。
根据第二方面的另一具体实施例,所述第一公钥证书包括针对所述第一组标识生成的第一公钥,以及所述可信证书生成器签名的第一签名信息,其中所述第一公钥和所述第一私钥构成密钥对;所述第一根证书包括所述第一公钥,以及所述可信证书生成器自签名的第二签名信息;所述第一公钥用于对所述第一签名信息和第二签名信息进行校验。
根据第二方面的一种实施方式,在从运行第一计算任务的第一计算单元接收第一证书请求之前,可信证书生成器与所述第一计算单元进行秘钥协商,建立可信通道,所述可信通道用于接收所述第一证书请求,以及发送所述第一证书报告。
根据第三方面,提供了一种获取证书以进行多方安全计算的方法,通过用户终端执行,所述方法包括:
向可信证书生成器发送第二证书请求,所述第二证书请求中包括,期望连接的第一任务分组的第一组标识;
从所述可信证书生成器接收第二证书报告,所述第二证书报告至少包括针对所述第一组标识生成的第一证书链中的第一根证书,所述第一证书链还包括与所述第一根证书对应的第一公钥证书;所述第一公钥证书和匹配的第一私钥构成第一证书对,被预先分发给经过认证的、运行所述第一任务分组中各个计算任务的至少一个计算单元;
以所述用户终端为TLS客户端,将所述第一根证书设置为所述TLS客户端的可信根证书,从而与具有所述第一证书对、且作用为TLS服务端的所述至少一个计算单元通信。
根据第三方面的一种实施方式,在向可信证书生成器发送第二证书请求之前,还包括:
获取所述可信证书生成器的第二认证信息;
根据所述第二认证信息,对所述可信证书生成器进行认证。
根据一个进一步的实施例,所述第二认证信息为经过第三方认证机构认证的认证结果文件,该认证结果文件包含该第三方认证机构的签名信息;
所述根据所述第二认证信息,对所述可信证书生成器进行认证包括:
校验所述签名信息,在校验成功的情况下,确定所述可信证书生成器认证通过。
根据另一个进一步的实施例,所述第二认证信息为所述可信证书生成器生成的报告文件,所述报告文件包括所述可信证书生成器自身的代码哈希和签名信息;
所述根据所述第二认证信息,对所述可信证书生成器进行认证包括:
将所述报告文件发送至第三方认证机构,以获得认证结果文件,所述认证结果文件包含所述第三方认证机构的签名信息;
校验所述签名信息,在校验成功的情况下,确定所述证书生成器认证通过。
根据第三方面的一种实施方式,所述第二证书报告还包括,所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希;
在将所述第一根证书设置为所述TLS客户端的可信根证书之前,所述方法还包括,判断所述第一哈希列表是否符合预期。
根据第三方面的一个实施例,在将所述第一根证书设置为所述TLS客户端的可信根证书之后,还包括,
与所述至少一个计算单元进行TLS握手,建立TLS可信通道;
通过TLS可信通道,从所述至少一个计算单元获取所述第一任务分组的计算服务。
根据第三方面的一个实施例,所述第二证书报告还包括,所述第一公钥证书,所述方法还包括:利用所述第一公钥证书加密所述用户终端的用户数据,并将加密的用户数据存入数据平台,以供所述至少一个计算单元利用所述第一证书对进行解密获取。
根据第四方面,提供了一种为用户终端分发证书的方法,通过可信证书生成器执行,所述方法包括:
接收用户终端发送的第二证书请求,所述第二证书请求中包括,所述用户终端期望连接的第一任务分组的第一组标识;
获取预先针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书和与其对应的第一公钥证书,所述第一公钥证书与所述第一私钥匹配,构成第一证书对;至少所述第一证书对被预先分发给经过认证的、运行所述第一任务分组中各个计算任务的至少一个计算单元;
向所述用户终端发送第二证书报告,所述第二证书报告至少包括所述第一根证书,以使得所述用户终端以自身为TLS客户端,将所述第一根证书作为TLS客户端的可信根证书,从而与具有所述第一证书对、且作用为TLS服务端的所述至少一个计算单元通信。
根据第四方面的一种实施方式,在接收用户终端发送的第二证书请求之前,还包括:
响应于所述用户终端的认证请求,向所述用户终端提供第二认证信息,以供所述用户终端进行认证。
根据一个进一步的实施例,向所述用户终端提供第二认证信息包括:
生成报告文件,所述报告文件包括所述可信证书生成器自身的代码哈希和签名信息;
将所述报告文件发送至第三方认证机构,以获得认证结果文件,所述认证结果文件包含所述第三方认证机构的签名信息;
将所述认证结果文件作为所述第二认证信息提供给所述用户终端。
根据另一个进一步的实施例,向所述用户终端提供第二认证信息包括:
生成报告文件,所述报告文件包括所述可信证书生成器自身的代码哈希和签名信息;
将所述报告文件作为所述第二认证信息提供给所述用户终端。
根据第四方面的一个实施例,所述第二证书报告还包括,所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希。
根据第四方面的一个实施例,所述第二证书报告还包括所述第一公钥证书,以使得所述用户终端利用所述第一公钥证书加密用户数据。
根据第五方面,提供了一种通过数字证书进行多方安全计算的方法,通过运行第一计算任务的第一计算单元执行,其中:
所述第一计算任务预先被配置为属于第一任务分组,所述第一任务分组还包括第二计算单元所运行的第二计算任务;
所述第一计算单元预先被分发有针对所述第一任务分组生成的第一证书对和第一根证书,所述第一证书对包括第一公钥证书和匹配的第一私钥,所述第一公钥证书和第一根证书构成第一证书链;
并且,所述第一计算单元被配置作为提供所述第一计算任务的计算服务的第一TLS服务端,该第一TLS服务端以所述第一证书对作为其证书对;所述第一计算单元还被配置作为至少与所述第二计算单元连接的第一TLS客户端,所述第一TLS客户端以所述第一根证书作为其可信根证书;
所述方法包括:
利用所述第一TLS服务端与作用为第二TLS客户端的用户终端进行TLS握手,建立第一TLS可信通道;其中所述第二TLS客户端将所述第一根证书作为其可信根证书;
通过所述第一TLS可信通道接收第一用户数据;
对所述第一用户数据进行第一处理,得到第一应用数据;
利用所述第一TLS客户端与作用为第二TLS服务端的第二计算单元进行TLS握手,建立第二TLS可信通道;其中所述第二TLS服务端将所述第一证书对作为其证书对;
通过所述第二TLS可信通道将所述第一应用数据传送给所述第二计算单元。
在第五方面的一个实施例中,所述方法还包括,从数据平台读取第二用户数据,所述第二用户数据由所述用户终端使用所述第一公钥证书加密产生;
使用所述第一私钥解密所述第二用户数据。
在第五方面的一种实施方式中,所述方法还包括:
生成第二应用数据;
使用所述第一公钥证书加密所述第二应用数据,得到第二加密应用数据;
将所述第二加密应用数据存入数据平台,以供所述第二计算单元利用所述第一证书对进行解密获取。
根据第六方面,提供了一种获取证书以进行多方安全计算的装置,部署在运行第一计算任务的第一计算单元中,所述第一计算任务预先被配置为属于第一任务分组,所述第一任务分组还包括至少一个其他计算任务;所述装置包括:
第一证书请求模块,配置为向可信证书生成器发送第一证书请求,所述第一证书请求包括所述第一任务分组的第一组标识,以及第一认证信息,所述第一认证信息用于对第一计算单元进行可信认证,并包括所述第一计算任务的第一代码哈希;
第一报告接收模块,配置为从所述可信证书生成器接收第一证书报告,所述第一证书报告包括针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书以及对应的第一公钥证书,所述第一公钥证书与所述第一私钥相匹配,构成第一证书对;
第一设置模块,配置为以所述第一计算单元作为提供所述第一计算任务的计算服务的TLS服务端,将所述第一证书对设置为所述TLS服务端的证书对;并且以所述第一计算单元作为与所述至少一个其他计算任务连接的TLS客户端,将所述第一根证书设置为所述TLS客户端的可信根证书。
根据第七方面,提供了一种为计算单元分发证书的装置,部署在可信证书生成器中,所述装置包括:
第一请求接收模块,配置为从运行第一计算任务的第一计算单元接收第一证书请求,所述第一证书请求包括第一任务分组的第一组标识,以及第一认证信息,所述第一认证信息用于对所述第一计算单元进行认证,且包括所述第一计算任务的第一代码哈希;
单元认证模块,配置为根据所述第一认证信息对所述第一计算单元进行认证;
分组判断模块,配置为在认证通过的情况下,根据所述第一代码哈希判断所述第一计算任务是否属于所述第一任务分组;
证书获取模块,配置为在确认所述第一计算任务属于所述第一任务分组的情况下,获取预先针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书和对应的第一公钥证书,所述第一公钥证书与所述第一私钥相匹配,构成第一证书对;
第一报告发送模块,配置为向所述第一计算单元发送第一证书报告,所述第一证书报告包括所述第一根证书和所述第一证书对,使得所述第一计算单元以自身为提供计算服务的TLS服务端和与其他计算任务连接的TLS客户端,将所述第一证书对设置为TLS服务端的证书对,将所述第一根证书设置为TLS客户端的可信根证书。
根据第八方面,提供了一种获取证书以进行多方安全计算的装置,部署在用户终端中,所述装置包括:
第二请求发送模块,配置为向可信证书生成器发送第二证书请求,所述第二证书请求中包括,期望连接的第一任务分组的第一组标识;
第二报告接收模块,配置为从所述可信证书生成器接收第二证书报告,所述第二证书报告至少包括针对所述第一组标识生成的第一证书链中的第一根证书,所述第一证书链还包括与所述第一根证书对应的第一公钥证书;所述第一公钥证书和匹配的第一私钥构成第一证书对,被预先分发给经过认证的、运行所述第一任务分组中各个计算任务的至少一个计算单元;
第二配置模块,配置为以所述用户终端为TLS客户端,将所述第一根证书设置为所述TLS客户端的可信根证书,从而与具有所述第一证书对、且作用为TLS服务端的所述至少一个计算单元通信。
根据第九方面,提供了一种为用户终端分发证书的装置,部署在可信证书生成器中,所述装置包括:
第二请求接收模块,配置为接收用户终端发送的第二证书请求,所述第二证书请求中包括,所述用户终端期望连接的第一任务分组的第一组标识;
证书获取模块,配置为获取预先针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书和与其对应的第一公钥证书,所述第一公钥证书与所述第一私钥匹配,构成第一证书对;至少所述第一证书对被预先分发给经过认证的、运行所述第一任务分组中各个计算任务的至少一个计算单元;
第二报告发送模块,配置为向所述用户终端发送第二证书报告,所述第二证书报告至少包括所述第一根证书,以使得所述用户终端以自身为TLS客户端,将所述第一根证书作为TLS客户端的可信根证书,从而与具有所述第一证书对、且作用为TLS服务端的所述至少一个计算单元通信。
根据第十方面,提供了一种通过数字证书进行多方安全计算的装置,部署在运行第一计算任务的第一计算单元中,其中:
所述第一计算任务预先被配置为属于第一任务分组,所述第一任务分组还包括第二计算单元所运行的第二计算任务;
所述第一计算单元预先被分发有针对所述第一任务分组生成的第一证书对和第一根证书,所述第一证书对包括第一公钥证书和匹配的第一私钥,所述第一公钥证书和第一根证书构成第一证书链;
并且,所述第一计算单元被配置作为提供所述第一计算任务的计算服务的第一TLS服务端,该第一TLS服务端以所述第一证书对作为其证书对;所述第一计算单元还被配置作为至少与所述第二计算单元连接的第一TLS客户端,所述第一TLS客户端以所述第一根证书作为其可信根证书;
所述装置包括:
第一握手模块,配置为利用所述第一TLS服务端与作用为第二TLS客户端的用户终端进行TLS握手,建立第一TLS可信通道;其中所述第二TLS客户端将所述第一根证书作为其可信根证书;
数据接收模块,配置为通过所述第一TLS可信通道接收第一用户数据;
数据处理模块,配置为对所述第一用户数据进行第一处理,得到第一应用数据;
第二握手模块,配置为利用所述第一TLS客户端与作用为第二TLS服务端的第二计算单元进行TLS握手,建立第二TLS可信通道;其中所述第二TLS服务端将所述第一证书对作为其证书对;
数据发送模块,配置为通过所述第二TLS可信通道将所述第一应用数据传送给所述第二计算单元。
根据第十一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面到第五方面的方法。
根据第十二方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面到第五方面的方法。
根据本说明书实施例提供的方法和装置,通过可信证书生成器生成并分发证书,实现安全认证和校验,便于用户终端与可信计算单元之间进行多方安全通信和计算。具体的,预先将计算任务进行分组,形成任务分组。可信证书生成器通过组标识区分不同任务分组,针对一个组标识生成一套证书链和一个私钥,其中证书链中包括根证书和对应的公钥证书,公钥证书与私钥相匹配,构成一个证书对。然后,可信证书生成器将该上述根证书和证书对分发给经过认证的、运行该组标识对应的各个计算任务的各个可信计算单元。于是,运行同一任务分组中各个计算任务的多个可信计算单元会获得同样的根证书和证书对。另一方面,可信证书生成器将上述根证书分发给请求该任务分组的计算服务的用户终端。于是,具有根证书的用户终端、具有根证书和证书对的可信计算单元之间,可以通过TLS协议的方式,进行多方安全通信。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例通过配置管理器进行分组配置的过程示意图;
图3示出一个示例中的数字证书的证书链和证书对;
图4示出根据一个实施例为计算单元签发证书的过程示意图;
图5示出在一个实施例中的第一证书链;
图6示出在另一实施例中的第一证书链;
图7示出在执行图4所示的过程之后各个计算单元的状态;
图8示出根据一个实施例为用户终端分发证书的过程示意图;
图9示出在执行图4和图8所示的过程之后***的状态;
图10示出在一个实施例中进行多方安全计算的方法流程图;
图11示出在一个实施例中部署在第一计算单元中的获取证书的装置的示意性框图;
图12示出在一个实施例中为计算单元分发证书的装置的示意性框图;
图13示出在一个实施例中部署在用户终端中的获取证书的装置的示意性框图;
图14示出在一个实施例中为用户终端分发证书的装置的示意性框图;
图15示出在一个实施例中部署在第一计算单元中的进行多方计算的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。如图所示,可以通过可信执行环境TEE中的可信计算单元执行所需的计算任务。可信计算单元可以是具有一定隔离能力从而保证计算安全性的计算模块或计算设备,例如是可信的计算围圈Enclave,比如采用SGX或Trust Zone等技术而实现。例如,根据SGX技术,通过提供一系列CPU指令码,允许用户代码创建具有高访问权限的私有内存区域而形成计算围圈Enclave。其他应用程序,包括操作***OS,BIOS***,虚拟机***等,均不能访问围圈Enclave中的数据,也就不能窥探和篡改其中应用程序的状态和数据。因此,通过例如围圈Enclave的可信计算单元执行计算任务,可以保证任务代码与外界的隔离,确保任务程序的运行安全。
在图1的示例中,各个可信计算单元(例如各个围圈Enclave)分别执行各自的计算任务,例如,可信计算单元11,12,13,14分别执行不同的计算任务,任务1,任务2,任务3和任务4。可以理解,这仅仅是一个示例。还可以存在其他可信计算单元执行其他任务,也可以存在多个可信计算单元执行同一任务的多个副本。
在分布式任务的情况下,会需要运行多个计算任务的多个可信计算单元共同协作,进行多方计算。例如,在一个例子中,假定需要任务1,任务2和任务3协同计算,共同提供一套计算服务。
如前所述,由于可信执行环境的安全需要,这就要求在用户终端与各个可信计算单元,以及各个可信计算单元之间,均建立可信通道才能进行数据的传输和交换。
为了便于在分布式任务的场景下进行多方安全计算,根据本说明书的一个实施例,预先为各个计算任务进行分组,将执行同一分布式任务的计算任务划分到同一分组。然后,采用可信证书生成器20基于任务分组来生成数字证书并管理数字证书,通过证书的生成和分发管理,促使用户终端和多个可信计算单元进行多方安全计算。
具体地,可信证书生成器20根据组标识区分各个任务分组。针对某一任务分组,例如称为第一任务分组,可信证书生成器为其生成一套证书链和一个私钥,其中证书链中包括公钥证书和对应的根证书,公钥证书与上述私钥相匹配,构成一个证书对。然后,可信证书生成器将该根证书和证书对分发给经过认证的、运行该第一任务分组中各个计算任务的各个可信计算单元。于是,运行同一任务分组中各个计算任务的多个可信计算单元会获得同样的证书对和根证书。另一方面,可信证书生成器将上述证书链中的根证书分发给请求该第一任务分组的计算服务的用户终端30。
接下来,对于运行第一任务分组中某个计算任务的某个可信计算单元,可以将其作为提供计算服务的传输层安全协议TLS服务端,将上述证书对设置为该TLS服务端的证书对,还可以将该可信计算单元作为与同一任务分组中其他计算单元连接的TLS客户端,将上述根证书设置为TLS客户端的可信根证书。
对于请求该第一任务分组的计算服务的用户终端,可以将其作为TLS客户端,将分发给用户终端的根证书设置为TLS客户端的可信根证书。
由于上述证书对和根证书构成一套证书链,而TLS客户端只会与拥有同一证书链中对应证书对的TLS服务端握手,于是保证了,请求第一任务分组的用户终端,只会与运行第一任务分组中各计算任务的可信计算单元进行握手,且运行第一任务分组中各计算任务的各个可信计算单元之间彼此可以进行握手,建立可信通道,从而实现多方安全计算。
下面描述以上构思的具体实现方式。
首先,在配置阶段,为各个计算任务设置分组,使得执行同一分布式任务的多个计算任务构成一个任务分组。对于形成的任务分组,为其分配组标识。于是,每个任务分组对应具有一个组标识。之后,使得各个计算任务获知其所属的任务分组的组标识,此外,还使得可信证书生成器获知分组信息,以便针对各个分组生成证书链。
在一个实施例中,通过配置管理器进行上述任务分组配置,并由配置管理器将分组配置信息通知可信证书生成器以及各个计算任务。
图2示出根据一个实施例通过配置管理器进行分组配置的过程示意图。如图所示,在步骤201,配置管理器可以接收配置人员进行的分组配置请求或配置操作,其中指示将多个计算任务划归为一个任务分组,简单起见称为第一任务分组。上述配置人员可以是配置管理器的管理员,分布式计算***的管理员,甚至可以是请求计算服务的用户。在接收到上述配置请求或配置操作后,配置管理器为划归形成的第一任务分组分配组标识,称为第一组标识,并建立该第一组标识与第一任务分组中包含的上述多个计算任务的对应关系。
具体的,在一个例子中,假定图1中的三个计算任务,任务1,任务2和任务3用于执行同一分布式任务,那么配置人员可以在配置管理器中设定,将该三个计算任务划归为一个任务分组。于是,配置管理器为该任务分组分配组标识GID1,并建立组标识GID1与任务1,任务2和任务3的对应关系。
接着,在步骤202,配置管理器将上述第一组标识通知给第一任务分组中包含的多个计算任务。例如,将组标识GID1分别通知给任务1,任务2和任务3。
另一方面,在步骤203,配置管理器向可信证书生成器发出配置通知,该通知中包括,第一组标识,以及与第一组标识对应的第一哈希列表,该第一哈希列表包括属于第一任务分组的所有计算任务的代码哈希。
延续上例,对于任务1,任务2和任务3形成的任务分组GID1,配置管理器可以形成与组标识GID1对应的哈希列表1,其中包括,上述三个计算任务,任务1,任务2和任务3各自的代码哈希H1,H2和H3。于是,配置管理器可以向可信证书生成器发出针对上述任务分组的配置通知,其中包括组标识GID1,以及对应的哈希列表1:{H1,H2,H3}。
可以理解,步骤202和203可以以任意顺序执行。
在一个实施例中,可信证书生成器在接收到上述配置通知后,记录其中第一组标识和第一哈希列表的对应关系,以用于后续验证,并在后续证书签发阶段生成对应的证书。
更优选的,在另一实施例中,可信证书生成器将上述配置通知作为证书生成请求,相应地生成证书。具体的,在步骤204,可信证书生成器判断是否存在与第一组标识对应的证书链;如果存在,则拒绝生成请求,不再生成;如果没有,则针对该第一组标识,生成第一证书链和第一私钥,其中第一证书链包括第一根证书和对应的第一公钥证书,第一公钥证书与第一私钥相匹配,构成第一证书对。
下面对证书链和证书对进行简单的介绍。
数字证书是由证书认证机构CA(Certificate Authority)签发的、用来认证持有者身份合法性的电子文档,以防止第三方的冒充行为。一般地,数字证书中包括,持有者信息,持有者公钥,签发者信息,以及签发者的签名。由于数字证书中包含为持有者生成的公钥,因此也将这样的数字证书称为公钥证书。相应的,签发机构还会生成一个与持有者公钥对应匹配的私钥,该公钥和私钥构成非对称加密的秘钥对。此时,公钥证书与私钥构成一个证书对。
图3示出一个示例中的数字证书的证书链和证书对。假定其中的数字证书33是签发机构CA1颁发给持有者U1的公钥证书,那么证书33中包括,持有者U1信息,持有者U1公钥K1,签发者CA1信息,以及签发者CA1的签名。签发者CA1还会生成与公钥K1对应的私钥k1,于是证书33和私钥k1构成证书对。
当验证者想要验证该证书33时,可以利用签发者CA1的公钥进行验证。然而,如果验证者对于签发者CA1不够信任的话,那么就需要向上追溯,获取CA1的证书,来验证CA1是否合法可信。于是,可以向上追溯到证书32,该证书32是签发机构CA2颁发给CA1的证书,其中包括,CA1信息(此时CA1是证书持有者),CA1公钥,签发者CA2信息,签发者CA2的签名。验证者可以利用证书32中的CA1公钥,验证证书33中的CA1签名。然而,如果验证者对于签发机构CA2仍然不够信任的话,就需要继续向上追溯,直到最终的根证书30。
根证书是根CA自己给自己颁发的证书,其中根CA一般是最高权威的CA中心,必须给予信任。如图所示,根证书30包括,根CA信息(此时根CA既是持有者,也是签发者),根CA公钥,以及根CA自己给自己的签名信息。
如此,根证书30和各个公钥证书构成一个证书链或信任链,其中根证书由根CA签发给自己,后续的各个公钥证书由根CA以及根CA逐级授权的各级CA签发产生。根证书是证书链的起点,证书链的层级数根据实际情况而定。
回到图2,与上述证书链类似的,在步骤204,证书生成器针对当前请求的第一任务分组生成第一证书链,该证书链中包括针对第一组标识生成的第一公钥证书,以及可信证书生成器作为根CA自签名的第一根证书,第一根证书和第一公钥证书形成证书链。可信证书生成器还生成第一私钥,该第一私钥与第一公钥证书中的公钥相匹配,构成第一证书对。这样的第一证书链和第一私钥,用于后续分发给用户终端和运行第一任务分组中各计算任务的可信计算单元。
可以理解,图2示出了通过配置管理器进行任务分组配置的过程。然而,任务分组配置还可以通过其他方式实现。例如,可以由配置人员直接对可信证书生成器和各个计算任务进行配置。
具体地,在一个实施例中,可信证书生成器具有配置接口,配置人员可以通过该配置接口,直接向可信证书生成器输入计算任务的分组信息,包括任务分组的组标识和对应的哈希列表,以使得可信证书生成器记录上述分组信息,并可选地针对各个组标识生成相应的证书链。配置人员还可以通过配置计算任务的启动项或可信计算单元的启动项,在其中设置各个计算任务所属的任务分组的组标识。如此,将任务分组信息配置到各个计算任务和可信证书生成器。
在进行任务分组配置之后,可信证书生成器可以分别为可信计算单元和用户终端签发证书,以实现其间的多方安全计算。
图4示出根据一个实施例为计算单元签发证书的过程示意图。通过图4的过程,可信证书生成器向运行第一计算任务的第一计算单元分发数字证书,便于其后续参与与计算服务相关的多方计算。可以理解,第一计算任务可以是任何计算任务,第一计算单元可以是执行该任务的任意可信计算单元。并且,在分组配置阶段该第一计算任务预先被配置为属于某个任务分组,在此称为第一任务分组。可以理解,该第一任务分组还可以包括至少一个其他计算任务。
例如,延续之前的例子,假定图1中所示的任务1,任务2,任务3被配置为形成一个任务分组。那么,图4中的第一计算任务可以是任务1,任务2,任务3中的任一个,相应的,第一计算单元可以是可信计算单元11,12,13中的任一个。更具体的,可以假定第一计算任务为任务1,第一计算单元为可信计算单元11。
下面描述签发证书的过程。
在步骤401,当第一计算任务在第一计算单元中启动时,生成第一认证信息,用于其他方对第一计算单元进行可信认证。该可信认证一般是通过远程认证RA(RemoteAttestation)实现,因此,又将生成的认证信息称为RA信息或RA报告。
在一个实施例中,第一计算单元生成本计算单元的单元报告文件作为上述第一认证信息,其中单元报告文件用于描述第一计算单元自身配置状况和运行状况。具体的,该单元报告文件至少包括,其中运行的第一计算任务的代码哈希,称为第一代码哈希。可以理解,第一代码哈希可以唯一地标识出所运行的第一计算任务。可选的,该单元报告中还可以包括其中运行的第一计算任务的其他描述信息,例如名称、版本、属性信息等等。
上述单元报告文件还包括该第一计算单元的签名信息,以此保证单元报告文件的真实可靠,防止伪造和篡改。签名信息可以通过各种签名方式得到,例如哈希算法,加密算法等。在一个具体实施例中,签名信息依赖于对应第一计算单元的硬件秘钥,该硬件秘钥唯一对应于实体硬件,如此确保单元报告文件中的签名信息确实是由基于该硬件的可信计算单元产生。
在一个实施例中,上述单元报告文件还包括第一计算单元的硬件信息,例如CPU主频,内存容量等等。在一个实施例中,上述单元报告文件还包括第一计算单元的运行时环境信息,从而更全面地描述当前的运行状况。在又一实施例中,单元报告文件还可以包括其他用户自定义的数据,以根据需要描述和定义可信计算单元的其他信息。
如此,上述生成的单元报告文件可以作为第一认证信息,用于其他方对第一计算单元进行可信认证。
在一个实施例中,第一计算单元在生成上述单元报告文件后,将该单元报告文件发送至第三方认证机构进行认证,以获得认证结果文件,从而将认证结果文件作为第一认证信息。
可以理解,上述第三方认证机构是可信的、具有认证能力的权威认证机构。通常,假定各个可信计算单元在投入使用之前,会向该第三方认证机构进行注册,因此,该第三方认证结构登记有各个可信计算单元的配置状况,从而后续可以对其进行认证。
例如,在上述第一计算单元是通过Intel SGX实现的可信围圈Enclave的情况下,该第三方认证机构即为Intel认证服务器(Attestation Service)。在第一计算单元通过其他方式实现的情况下,该第三方认证机构可以是生产、部署对应计算单元的机构或其关联机构。
在接收到第一计算单元的单元报告文件后,第三方认证机构可以基于该单元报告,对第一计算单元的安全性和可信性进行认证。具体地,第三方认证机构首先根据单元报告文件中的签名信息,认证该单元报告文件是否真实无篡改,并根据维护的各个可信计算单元预先注册的信息,判断第一计算单元是否确实可信。此外,第三方认证机构还根据单元报告文件中的第一计算任务的相关信息,验证第一计算任务的程序代码是否运行在可信执行环境中,并验证第一代码哈希是否符合预期。
在对上述单元报告文件进行验证且验证通过的情况下,第三方机构可以在该单元报告文件上添加自身的签名,生成认证结果文件。也就是说,该认证结果文件中包含第三方认证机构的签名信息。
在获取到第三方认证机构返回的认证结果文件后,第一计算单元可以将该认证结果文件作为第一认证信息,作为可信计算单元的证明。
此外,在步骤402,第一计算单元与可信证书生成器进行秘钥协商,建立可信通道,又称为RA通道。
具体地,第一计算单元与可信证书生成器可以采用各种秘钥协商方式,确定出共同的秘钥或秘钥对。例如,采用DH(Diffie-Hellman)密钥交换方法,或者采用基于椭圆曲线的ECDH秘钥交换方式,等等。利用协商得到的秘钥或秘钥对,可以建立可信通道,确保通过该可信通道传输的数据只有双方可以获取。
需要理解,步骤401和步骤402可以不限于图4所示的顺序,两者可以交换顺序执行,也可以并行执行。
接着,在步骤403,利用上述RA通道,第一计算单元向可信证书生成器发送获取证书的请求,以下称为第一证书请求。该第一证书请求中包括,第一计算任务所属的第一任务分组的组标识,称为第一组标识,以及步骤401中得到的第一认证信息,其中包含有第一计算任务的第一代码哈希。其中,第一组标识在如前所述的任务分组配置阶段,已经通知或配置给第一计算任务,因此,在第一计算单元中启动第一计算任务时,可以直接获取到之前配置的第一组标识,将其包含在第一证书请求中。
在接收到第一证书请求后,在步骤404,可信证书生成器首先基于上述第一认证信息,对第一计算单元进行认证。
如前所述,在一个实施例中,上述第一认证信息可以是第一计算单元生成的单元报告文件。在这样的情况下,可信证书生成器将该单元报告文件发送至上述第三方认证机构,由该第三方认证机构进行验证。在验证通过的情况下,返回认证结果文件,其中包含有该第三方认证机构的签名信息。于是,可信证书生成器进一步验证该签名信息,验证通过,则认为第一计算单元认证通过。
在另一实施例中,上述第一认证信息也可以是第一计算单元从第三方认证机构收到的认证结果文件。在这样的情况下,可信证书生成器只需要验证该认证结果文件中的签名信息。验证通过,则认为第一计算单元认证通过。
如果对第一计算单元的认证通过,那么在步骤405,可信证书生成器根据第一代码哈希判断第一计算任务是否属于第一任务分组。
如前所述,在任务分组配置阶段,可信证书生成器会通过配置管理器或通过配置接口,获取到各个任务分组对应的哈希列表,其中包括属于对应任务分组的所有计算任务的代码哈希。于是,在步骤405,可信证书生成器可以读取预先配置的、与第一组标识对应的第一哈希列表,该第一哈希列表包括属于第一任务分组的所有计算任务的代码哈希。然后,判断第一认证信息中包含的第一代码哈希是否位于第一哈希列表中,如果是,则确认该第一计算任务属于第一任务分组。
例如,假定步骤403中的第一证书请求中包含第一组标识GID1,第一认证信息中包含第一代码哈希H1。那么在步骤405,可信证书生成器可以根据该组标识GID1读取到配置阶段获得的对应的哈希列表1:{H1,H2,H3}。然后判断第一代码哈希H1是否包含在哈希列表1中,据此判断第一计算任务是否属于第一任务分组。
如果第一计算任务不属于第一任务分组,那么拒绝该证书请求,返回错误信息。如果确认第一计算任务属于第一任务分组,那么继续执行后续步骤。
接下来,在步骤406,可信证书生成器获取针对第一组标识生成的第一证书链和第一私钥。
在一个实施例中,在前述的分组配置阶段,可信证书生成器已经针对各个任务分组各自的组标识,生成对应的证书链。在这样的情况下,在步骤406,可信证书生成器读取预先针对第一组标识生成的第一证书链和第一私钥。
在另一实施例中,在分组配置阶段,可信证书生成器只是记录各个任务分组的组标识和对应的哈希列表。在证书分发阶段,可信证书生成器针对各个组标识生成证书链。相应的,在步骤406,可信证书生成器判断是否存在与第一组标识对应的证书链,如果存在(例如运行同一任务分组中其他计算任务的其他计算单元先于第一计算单元发出了证书请求),则读取该已经生成的证书链作为第一证书链。如果不存在,那么可信证书生成器针对该第一组标识生成第一证书链和第一私钥。
如前所述,第一证书链包括第一根证书和对应的第一公钥证书,第一根证书是可信证书生成器作为根CA自签名的证书,第一公钥证书是第一根证书的下游公钥证书,并与第一私钥相匹配,构成第一证书对。
在不同实施例中,第一公钥证书和第一根证书可以采用多种格式,例如,采用密码学中公钥证书的标准格式X.509证书。
此外,需要理解的是,可信证书生成器会针对不同任务分组,也就是不同组标识,生成不同证书链,一个证书链中的根证书和公钥证书具有对应关系,不同证书链中的根证书彼此不同。
相应地,对于第一证书链来说,第一根证书是信任链起点,与第一公钥证书相对应。在不同实施例中,第一公钥证书与第一根证书以不同的方式相对应。
图5示出在一个实施例中的第一证书链。在图5中,证书51为第一公钥证书,其中包括,作为证书持有者的第一任务分组(例如记为GID1)信息,第一公钥K1(为组标识GID1生成的公钥),作为签发者的证书生成器的信息,以及证书生成器签名的第一签名信息。第一私钥k1与第一公钥K1相匹配。证书50为第一根证书,其中包括证书生成器的信息(既作为证书持有者又作为签发者),第二公钥K2(证书生成器对外的签名公钥),以及证书生成器自签名的第二签名信息。其中,第一公钥证书51中的第一签名信息和第一根证书50中的第二签名信息,均使用第二公钥K2进行校验。并且,该第二公钥K2是针对第一任务分组的第一组标识生成的,如此,第一根证书50和第一公钥证书51均唯一地对应于第一组标识。
图6示出在另一实施例中的第一证书链。在图6中,证书61为第一公钥证书,其中包括,作为证书持有者的第一任务分组(例如记为GID1)信息,第一公钥K1(为组标识GID1生成的公钥),作为签发者的证书生成器的信息,以及证书生成器签名的第一签名信息。证书60为第一根证书,其中包括证书生成器的信息(既作为证书持有者又作为签发者),第一公钥K1,以及证书生成器自签名的第二签名信息。
可以看到,图6不同于图5之处在于,在图6的第一根证书60中,同样使用为组标识GID1生成的第一公钥K1作为证书生成器对外的签名公钥。于是,第一公钥证书61中的第一签名信息和第一根证书60中的第二签名信息,均使用第一公钥K1进行校验。如此,简化了证书链的公钥生成。并且,由于第一公钥K1针对GID1而生成,第一根证书60和第一公钥证书61均唯一地对应于第一组标识。
在其他例子中,第一公钥证书和第一根证书还可以相隔更多层级(如图3中的证书33和30)而互相对应。
如此,可信证书生成器获取针对第一组标识生成的第一根证书,第一公钥证书和第一私钥。
接着,在步骤407,可信证书生成器通过之前建立的可信通道,即RA通道,向第一计算单元发送证书报告,称为第一证书报告。该第一证书报告中包括,第一根证书,以及第一公钥证书和第一私钥构成的第一证书对。通过RA通道,第一证书报告的内容不会被其他计算单元获得。
在第一计算单元获取到第一证书报告后,在步骤408,使用其中的证书以TLS安全协议的方式来加固在线服务接口,从而为后续进行与计算服务相关的多方计算提供基础。
传输层安全协议TLS(Transport Layer Security)是与上层应用层解耦合的安全协议,用于在两个通信应用程序之间提供保密性和数据完整性。应用层协议,例如HTTP/RPC协议等,能透明地运行在TLS协议之上,由TLS协议进行创建加密通道需要的协商和认证。应用层协议传送的数据在通过TLS协议时都会被加密,从而保证通信的私密性。
具体的,TLS安全协议支持客户端和服务端通信方式,其中TLS客户端和TLS服务端利用证书进行握手,建立加密通道,以此加固上层的网络服务,例如HTTP/RPC网络服务。
相应的,在步骤408,第一计算单元可以以自身作为提供第一计算任务的计算服务的TLS服务端,将接收到的第一证书对设置为TLS服务端的证书对。此外,为了与同一任务分组中其他计算任务协作,第一计算单元还将自身作为与其他计算任务连接的TLS客户端,并将第一根证书设置为TLS客户端的可信根证书。于是,第一计算单元后续可以作为TLS服务端,向具有对应的第一根证书的其他TLS客户端提供第一计算任务的计算服务,还可以作为TLS客户端,与具有第一证书对的其他TLS服务端通信,与其进行协同计算。这将在后续进行详细描述。
如此,通过图4的过程,运行第一计算任务的第一计算单元从可信证书生成器获得针对第一任务分组生成的证书和私钥。可以理解,其他各个计算单元均可以执行图4所示的过程,分别获得与运行的计算任务所属任务分组所对应的证书。
图7示出在执行图4所示的过程之后各个计算单元的状态。如图7所示,由于可信计算单元11,12,13分别执行任务1,任务2和任务3,假定任务1,任务2和任务3同属于第一任务分组,那么,可信计算单元11,12,13均可以获取到针对第一任务分组的组标识GID1生成的第一根证书、第一公钥证书和第一私钥。可信计算单元14运行任务4,假定任务4属于第二任务分组,因此可信计算单元14可以获得针对第二任务分组生成的第二根证书、第二公钥证书和第二私钥。如此,各个计算单元可以获得与其运行的计算任务对应的证书和私钥。
在此基础上,可信证书生成器还响应于用户终端的请求,为用户终端分发对应的证书,以便于用户终端和可信计算单元进行通信。
图8示出根据一个实施例为用户终端分发证书的过程示意图。
首先,在步骤801,用户终端向可信证书生成器发出认证请求,请求对可信证书生成器进行RA认证。
于是,在步骤802,可信证书生成器向用户终端提供自身的RA信息,称为第二认证信息,以供用户终端进行认证。
相应的,在步骤803,用户终端基于该第二认证信息,对可信证书生成器进行认证。
与可信计算单元的认证类似的,在一个实施例中,可信证书生成器生成自身的报告文件,该报告文件包括可信证书生成器自身的代码哈希和签名信息。可选的,该报告文件还包括可信证书生成器的其他配置描述信息。于是,在步骤802,可信证书生成器将该报告文件作为上述第二认证信息,发送给用户终端。
在步骤803,用户终端将上述报告文件发送给第三方认证机构。与前述类似的,第三方认证机构基于该报告文件的签名信息和代码哈希进行验证,在验证通过后,在报告文件上添加上签名,作为认证结果文件。因此,该认证结果文件包含第三方认证机构的签名信息。于是,用户终端可以对该签名信息进行验证,据此对可信证书生成器进行认证。
或者,在另一实施例中,可信证书生成器在生成上述报告文件后,将该报告文件发送至第三方认证机构,并从该第三方认证机构获得认证结果文件。在步骤802,可信证书生成器将该认证结果文件作为第二认证信息,提供给用户终端。相应的,在步骤803,用户终端仅需要对认证结果文件中的签名信息进行验证,据此实现对可信证书生成器的认证。
在对可信证书生成器认证通过后,在步骤804,用户终端向可信证书生成器发送证书请求,称为第二证书请求,该第二证书请求中包括,用户终端期望连接的第一任务分组的第一组标识。在一个具体例子中,用户终端可以向配置管理器查询期望连接的任务分组的组标识,将其包含在第二证书请求中。
例如,在图1的示意图中,用户终端想要连接到任务1,任务2和任务3所形成的第一任务分组,则在上述证书请求中包含该任务分组的组标识,例如GID1。
可信证书生成器在接收到上述第二证书请求后,在步骤805,获取预先针对该第一组标识生成的第一证书链和第一私钥,其中第一证书链包括第一根证书和与其对应的第一公钥证书,第一公钥证书与第一私钥构成第一证书对。并且,如图4所示,可信证书生成器已经预先将第一证书对分发给经过认证的、运行第一任务分组中各个计算任务的至少一个计算单元。
然后,在步骤806,可信证书生成器向用户终端返回证书报告,称为第二证书报告,其中至少包括上述第一证书链中的第一根证书。
可选的,在一个实施例中,第二证书报告中还包括,第一组标识对应的第一哈希列表,该第一哈希列表包括属于第一任务分组的所有计算任务的代码哈希。
在这样的情况下,在步骤807,用户终端判断所述第一哈希列表是否符合预期。具体地,用户终端判断第一哈希列表中包括的每个代码哈希是否符合预期,也就是,每个代码哈希是否是期望连接的任务分组中计算任务的代码哈希。据此,用户终端判断可信证书生成器中的任务分组信息是否符合预期,该任务分组中的任务程序代码行为是否符合预期。
如果第一哈希列表中包含任何一个非预期的代码哈希,那么用户终端会认为,任务分组信息不一致,拒绝信任可信证书生成器发送的证书。
如果第一哈希列表符合预期,那么接着在步骤808,用户终端将自身作为TLS客户端,将接收到的第一根证书设置为TLS客户端的可信根证书。
而另一方面,如图4中步骤408所示以及如图7所示,运行第一任务分组中各个计算任务的各个计算单元在通过认证之后,会获得第一根证书和第一证书对,并进行相应的TLS设置,也就是以自身为TLS客户端和TLS服务端,将第一根证书作为TLS客户端信任的根证书,将第一证书对作为TLS服务端证书对。在用户终端和各个计算单元均进行相应TLS设置之后,用户终端与运行第一任务分组的各个计算单元之间,以及该各个计算单元彼此之间,就可以使用TLS安全协议进行安全的多方计算。
如前所述,TLS安全协议支持客户端和服务端通信方式。具体来说,在第一根证书与第一公钥证书形成证书链的情况下,将第一根证书作为唯一可信根证书的TLS客户端就可以,并且仅可以,与具有第一证书对的TLS服务端进行握手,进而建立TLS可信通道。具有第一根证书的TLS客户端与具有第一证书对的TLS服务端可以通过以下方式实现TLS握手。
首先,TLS客户端发起握手请求,TLS服务端将第一公钥证书和生成的随机数N1返回给TLS客户端。
由于TLS客户端已经将第一根证书设置为唯一可信根证书,而第一公钥证书为该第一根证书信任链中的证书,因此,TLS客户端会认为第一公钥证书可信。于是TLS客户端生成另一随机数N2,并使用第一公钥证书中的第一公钥加密该随机数N2,发送给TLS服务端。
TLS服务端利用第一证书对中的第一私钥解密出随机数N2,并根据之前的随机数N1,N2和约定的加密算法,生成用于加密后续传输数据的会话密钥。TLS客户端在确认该会话秘钥后,双方就握手成功,利用该会话秘钥建立了TLS可信通道。在握手成功后,TLS客户端就可以与TLS服务端通过TLS可信通道交换数据。
利用以上的TLS客户端和服务端的通信机制,用户终端以及运行第一任务分组的计算单元之间就可以进行多方安全计算。具体的,由于用户终端作为TLS客户端,将第一根证书设置为可信根证书,而运行第一任务分组中各个计算任务的各个计算单元均可以作为TLS服务端,且将第一证书对作为服务端证书对,因此,请求第一任务分组的计算服务的用户终端,可以与运行第一任务分组中各个计算任务的各个计算单元建立TLS可信通道,进行安全通信。此外,各个计算单元本身又可以作为TLS客户端,且也将第一根证书设置为可信根证书,因此,作为TLS客户端的一个计算单元可以与作为TLS服务端的另一计算单元建立TLS可信通道,并且,该另一计算单元必然是运行同一任务分组中计算任务的计算单元。如此,在用户终端和多个计算单元之间实现安全的多方计算。
可以看到,在图8的过程中,用户终端只是对可信证书生成器进行了RA认证,而没有对各个计算单元进行RA认证。但是应理解,根据图4的过程,可信证书生成器在分发证书前,会首先对计算单元进行RA认证,认证通过的情况下,才为计算单元分发证书。因此,用户终端对可信证书生成器进行RA认证,就意味着,对可信计算单元间接地进行了RA认证。并且,综合图4和
图8的过程,证书链中证书的各自分发相当于同时实现了RA认证和TLS校验,简化了安全认证的过程。
在一个实施例中,第一任务分组的计算服务不仅需要在多方之间进行数据交换,还需要存储和读取持久化的数据。在这样的情况下,在图8的步骤806中,可信证书生成器可以在返回给用户终端的第二证书报告中进一步包括第一公钥证书。于是,用户终端可以利用该第一公钥证书加密用户数据,并将加密的用户数据持久化存入数据平台。而如前所述,运行第一任务分组中各个计算任务的各个计算单元均获取有第一证书对,其中包含第一私钥。因此,上述各个计算单元可以利用第一证书对中的第一私钥解密获取上述用户数据。此外,各个计算单元也可以利用第一证书对中的第一公钥加密产生的中间数据,存入数据平台,其他计算单元可以利用第一私钥解密获得该中间数据。如此,确保需要持久化存储的数据仅可以由同一任务分组中的计算单元获得。
图9示出在执行图4和图8所示的过程之后***的状态。如图9所示,运行同一任务分组中各个计算任务的各个计算单元,均获得该任务分组对应的根证书和证书对。例如,任务1,任务2,任务3同属于第一任务分组,那么分别运行这3个计算任务的可信计算单元11,12,13均获取到针对第一任务分组生成的第一根证书和第一证书对。而运行另一任务分组中计算任务4的可信计算单元14则获得到不同的第二根证书和第二证书对。另一方面,请求第一任务分组的计算服务的用户终端也从可信证书生成器获取到第一根证书,其中第一根证书与第一证书对中的第一公钥证书相对应,构成证书链。可选的,用户终端也可以获取到第一公钥证书,用于加密持久化数据。
基于图9所示的***状态,用户终端和多个计算单元之间可以利用TLS协议进行安全计算。下面结合图9,描述运行第一任务分组中某个计算任务的计算单元,仍称为第一计算单元,进行多方计算的过程。
图10示出在一个实施例中进行多方安全计算的方法流程图。需要说明的是,图10的方法由运行第一任务分组中第一计算任务的第一计算单元执行,且运行第一任务分组中各个计算任务的各个计算单元,以及用户终端,已经进行了相应的TLS设置,如图9所示。
在这样的情况下,在步骤101,第一计算单元作为TLS服务端,与作用为TLS客户端的用户终端进行TLS握手,建立第一TLS可信通道。握手的过程如前所述,不复赘述。
在步骤102,第一计算单元通过第一TLS可信通道,从用户终端接收第一用户数据。
在步骤103,第一计算单元运行的第一计算任务对第一用户数据进行第一处理,得到第一应用数据。
在步骤104,第一计算单元作为TLS客户端,与作用为TLS服务端的第二计算单元进行TLS握手,建立第二TLS可信通道;其中第二计算单元是运行第一任务分组中另一计算任务,即第二计算任务,的计算单元。
在步骤105,第一计算单元通过第二TLS可信通道,将上述第一应用数据传送给第二计算单元。
通过以上过程,利用TLS可信通道,第一计算单元从用户终端接收用户数据,对其处理之后,传输给运行同一任务分组中计算任务的第二计算单元,从而至少在用户终端、第一计算单元和第二计算单元之间实现多方安全传输和计算。
进一步的,在一个实施例中,第一任务分组的计算服务需要存储持久化数据。在这样的情况下,在一个例子中,图10的方法还包括,第一计算单元从数据平台读取第二用户数据,该第二用户数据由用户终端使用第一公钥证书加密产生。于是,第一计算单元可以使用第一私钥解密该第二用户数据,从而得到对应的数据明文。
在另一实施例中,第一计算单元自身会产生中间数据,并将其持久化进行存储,同一任务分组中的其他计算单元可以读取该持久化数据。具体的,在一个例子中,图10的方法还包括以下步骤。第一计算单元生成第二应用数据,然后使用第一公钥证书加密该第二应用数据,得到第二加密应用数据。第一计算单元于是将该第二加密应用数据存入数据平台,以供其他计算单元,例如第二计算单元利用第一证书对进行解密获取。
通过以上过程,第一计算单元可以与用户终端,以及与同一任务分组中的其他计算单元进行多方安全计算。
基于图9回顾整个过程,在本说明书的一个实施例中,通过可信证书生成器生成并分发证书,实现安全认证和校验,便于用户终端与可信计算单元之间进行多方安全通信和计算。具体的,预先将计算任务进行分组,形成任务分组。可信证书生成器通过组标识区分不同任务分组,针对一个组标识生成一套证书链和一个私钥,其中证书链中包括根证书和对应的公钥证书,公钥证书与私钥相匹配,构成一个证书对。然后,可信证书生成器将该上述根证书和证书对分发给经过认证的、运行该组标识对应的各个计算任务的各个可信计算单元。于是,运行同一任务分组中各个计算任务的多个可信计算单元会获得同样的根证书和证书对。另一方面,可信证书生成器将上述根证书分发给请求该任务分组的计算服务的用户终端。于是,具有根证书的用户终端、具有根证书和证书对的可信计算单元之间,可以通过TLS协议的方式,进行多方安全通信。
根据另一方面的实施例,提供了一种获取证书以进行多方安全计算的装置,该装置部署在运行第一计算任务的第一计算单元中。所述第一计算任务预先被配置为属于第一任务分组,所述第一任务分组还包括至少一个其他计算任务。图11示出在一个实施例中部署在第一计算单元中的获取证书的装置的示意性框图。如图11所示,该装置110包括:
第一证书请求模块111,配置为向可信证书生成器发送第一证书请求,所述第一证书请求包括所述第一任务分组的第一组标识,以及第一认证信息,所述第一认证信息用于对第一计算单元进行可信认证,并包括所述第一计算任务的第一代码哈希;
第一报告接收模块113,配置为从所述可信证书生成器接收第一证书报告,所述第一证书报告包括针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书以及对应的第一公钥证书,所述第一公钥证书与所述第一私钥相匹配,构成第一证书对;
第一设置模块115,配置为以所述第一计算单元作为提供所述第一计算任务的计算服务的TLS服务端,将所述第一证书对设置为所述TLS服务端的证书对;并且以所述第一计算单元作为与所述至少一个其他计算任务连接的TLS客户端,将所述第一根证书设置为所述TLS客户端的可信根证书。
在一个具体实施例中,所述第一计算单元实现为可信围圈Enclave。
根据一个实施例,上述装置110还包括认证信息生成模块(未示出),用于生成上述第一认证信息。
在一个具体的实施例中,所述认证信息生成模块配置为:
生成第一计算单元的单元报告文件,所述单元报告文件包括所述第一代码哈希,所述第一计算单元的签名信息;
将所述单元报告文件发送至第三方认证机构,以获得认证结果文件,所述认证结果文件包含所述第三方认证机构的签名信息;
将所述认证结果文件作为所述第一认证信息包含在所述第一证书请求中。
在另一具体的实施例中,所述认证信息生成模块配置为:
生成第一计算单元的单元报告文件,所述单元报告文件包括所述第一代码哈希,所述第一计算单元的签名信息;
将所述单元报告文件作为所述第一认证信息包含在所述第一证书请求中。
根据一种实施方式,该装置110还包括秘钥协商模块,配置为在向可信证书生成器发送第一认证请求之前,与所述可信证书生成器进行秘钥协商,建立可信通道,所述可信通道用于发送所述第一证书请求,以及接收所述第一证书报告。
根据另一方面的实施例,提供了一种为计算单元分发证书的装置,部署在可信证书生成器中。该可信证书生成器可以通过任何具有计算、处理能力的设备、平台或设备集群实现。图12示出在一个实施例中为计算单元分发证书的装置的示意性框图。如图12所示,该装置120包括:
第一请求接收模块121,配置为从运行第一计算任务的第一计算单元接收第一证书请求,所述第一证书请求包括第一任务分组的第一组标识,以及第一认证信息,所述第一认证信息用于对所述第一计算单元进行认证,且包括所述第一计算任务的第一代码哈希;
单元认证模块123,配置为根据所述第一认证信息对所述第一计算单元进行认证;
分组判断模块125,配置为在认证通过的情况下,根据所述第一代码哈希判断所述第一计算任务是否属于所述第一任务分组;
证书获取模块127,配置为在确认所述第一计算任务属于所述第一任务分组的情况下,获取预先针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书和对应的第一公钥证书,所述第一公钥证书与所述第一私钥相匹配,构成第一证书对;
第一报告发送模块129,配置为向所述第一计算单元发送第一证书报告,所述第一证书报告包括所述第一根证书和所述第一证书对,使得所述第一计算单元以自身为提供计算服务的TLS服务端和与其他计算任务连接的TLS客户端,将所述第一证书对设置为TLS服务端的证书对,将所述第一根证书设置为TLS客户端的可信根证书。
在一个实施例中,第一请求接收模块121接收的第一认证信息为经过第三方认证机构认证的认证结果文件,该认证结果文件包含该第三方认证机构的签名信息;在这样的情况下,所述单元认证模块123配置为:
校验所述签名信息,在校验成功的情况下,确定所述第一计算单元认证通过。
在另一实施例中,第一请求接收模块121接收的第一认证信息为所述第一计算单元生成的单元报告文件,所述单元报告文件包括所述第一代码哈希,以及所述第一计算单元的签名信息;在这样的情况下,所述单元认证模块123配置为:
将所述单元报告文件发送至第三方认证机构,以获得认证结果文件,所述认证结果文件包含所述第三方认证机构的签名信息;
校验所述签名信息,在校验成功的情况下,确定所述第一计算单元认证通过。
根据一种实施方式,装置120还包括证书生成模块(未示出),配置为:
从配置管理器接收第一生成命令,所述第一生成命令包括,所述第一组标识,以及与所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希;
针对所述第一组标识,生成所述第一证书链和第一私钥。
根据一个实施例,所述分组判断模块125配置为,获取预先配置的、与所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希;
判断所述第一代码哈希是否位于所述第一哈希列表中,如果是,则确认所述第一计算任务属于所述第一任务分组。
根据一个具体实施例,所述第一公钥证书包括针对所述第一组标识生成的第一公钥,以及所述可信证书生成器签名的第一签名信息,其中所述第一公钥和所述第一私钥构成密钥对;所述第一根证书中包括针对所述第一组标识生成的第二公钥,以及所述可信证书生成器自签名的第二签名信息;所述第二公钥用于对所述第一签名信息和第二签名信息进行校验。
根据另一具体实施例,所述第一公钥证书包括针对所述第一组标识生成的第一公钥,以及所述可信证书生成器签名的第一签名信息,其中所述第一公钥和所述第一私钥构成密钥对;所述第一根证书包括所述第一公钥,以及所述可信证书生成器自签名的第二签名信息;所述第一公钥用于对所述第一签名信息和第二签名信息进行校验。
根据一种实施方式,装置120还包括秘钥协商模块(未示出),用于在接收第一证书请求之前,与所述第一计算单元进行秘钥协商,建立可信通道,所述可信通道用于接收所述第一证书请求,以及发送所述第一证书报告。
根据又一方面的实施例,提供了一种获取证书以进行多方安全计算的装置,部署在用户终端中。该用户终端可以通过任何具有计算、处理能力的设备实现。图13示出在一个实施例中部署在用户终端中的获取证书的装置的示意性框图。如图13所示,该装置130包括:
第二请求发送模块131,配置为向可信证书生成器发送第二证书请求,所述第二证书请求中包括,期望连接的第一任务分组的第一组标识;
第二报告接收模块133,配置为从所述可信证书生成器接收第二证书报告,所述第二证书报告至少包括针对所述第一组标识生成的第一证书链中的第一根证书,所述第一证书链还包括与所述第一根证书对应的第一公钥证书;所述第一公钥证书和匹配的第一私钥构成第一证书对,被预先分发给经过认证的、运行所述第一任务分组中各个计算任务的至少一个计算单元;
第二设置模块135,配置为以所述用户终端为TLS客户端,将所述第一根证书设置为所述TLS客户端的可信根证书,从而与具有所述第一证书对、且作用为TLS服务端的所述至少一个计算单元通信。
根据一种实施方式,上述装置130还包括认证模块(未示出),配置为:
获取所述可信证书生成器的第二认证信息;
根据所述第二认证信息,对所述可信证书生成器进行认证。
进一步的,根据一个实施例,上述第二认证信息为经过第三方认证机构认证的认证结果文件,该认证结果文件包含该第三方认证机构的签名信息;相应的,认证模块配置为:校验所述签名信息,在校验成功的情况下,确定所述可信证书生成器认证通过。
根据另一实施例,所述第二认证信息为所述可信证书生成器生成的报告文件,所述报告文件包括所述可信证书生成器自身的代码哈希和签名信息;相应的,认证模块配置为:
将所述报告文件发送至第三方认证机构,以获得认证结果文件,所述认证结果文件包含所述第三方认证机构的签名信息;
校验所述签名信息,在校验成功的情况下,确定所述证书生成器认证通过。
根据一种实施方式,第二证书报告还包括,所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希;相应的,装置130还包括哈希确认模块(未示出),配置为,在所述第二配置模块135将所述第一根证书设置为所述TLS客户端的可信根证书之前,判断所述第一哈希列表是否符合预期。
根据一种实施方式,上述装置130还包括通信模块(未示出),在第二配置模块135将所述第一根证书设置为所述TLS客户端的可信根证书之后,所述通信模块用于与所述至少一个计算单元进行TLS握手,建立TLS可信通道;通过TLS可信通道,从所述至少一个计算单元获取所述第一任务分组的计算服务。
根据一个实施例,第二证书报告还包括第一公钥证书;相应的,装置130还包括加密模块,配置为,利用所述第一公钥证书加密所述用户终端的用户数据,并将加密的用户数据存入数据平台,以供所述至少一个计算单元利用所述第一证书对进行解密获取。
根据另一方面的实施例,还提供了一种为用户终端分发证书的装置,部署在可信证书生成器中。该可信证书生成器可以通过任何具有计算、处理能力的设备、平台或设备集群实现。图14示出在一个实施例中为用户终端分发证书的装置的示意性框图。如图14所示,该装置140包括:
第二请求接收模块141,配置为接收用户终端发送的第二证书请求,所述第二证书请求中包括,所述用户终端期望连接的第一任务分组的第一组标识;
证书获取模块143,配置为获取预先针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书和与其对应的第一公钥证书,所述第一公钥证书与所述第一私钥匹配,构成第一证书对;至少所述第一证书对被预先分发给经过认证的、运行所述第一任务分组中各个计算任务的至少一个计算单元;
第二报告发送模块145,配置为向所述用户终端发送第二证书报告,所述第二证书报告至少包括所述第一根证书,以使得所述用户终端以自身为TLS客户端,将所述第一根证书作为TLS客户端的可信根证书,从而与具有所述第一证书对、且作用为TLS服务端的所述至少一个计算单元通信。
根据一种实施方式,上述装置140还包括认证信息提供模块(未示出),在第二请求接收模块141接收用户终端发送的第二证书请求之前,该认证信息提供模块响应于所述用户终端的认证请求,向所述用户终端提供第二认证信息,以供所述用户终端进行认证。
在一个进一步的实施例中,所述认证信息提供模块配置为:
生成报告文件,所述报告文件包括所述可信证书生成器自身的代码哈希和签名信息;
将所述报告文件发送至第三方认证机构,以获得认证结果文件,所述认证结果文件包含所述第三方认证机构的签名信息;
将所述认证结果文件作为所述第二认证信息提供给所述用户终端。
在另一个进一步的实施例中,所述认证信息提供模块配置为:
生成报告文件,所述报告文件包括所述可信证书生成器自身的代码哈希和签名信息;
将所述报告文件作为所述第二认证信息提供给所述用户终端。
在一个实施例中,第二报告发送模块145发送的第二证书报告还包括,所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希。
在一种实施方案中,第二报告发送模块145发送的第二证书报告还包括所述第一公钥证书,以使得所述用户终端利用所述第一公钥证书加密用户数据。
根据另一方面的实施例,提供了一种通过数字证书进行多方安全计算的装置,该装置部署在运行第一计算任务的第一计算单元中。图15示出在一个实施例中部署在第一计算单元中的进行多方计算的装置的示意性框图,其中:
第一计算任务预先被配置为属于第一任务分组,所述第一任务分组还包括第二计算单元所运行的第二计算任务;
所述第一计算单元预先被分发有针对所述第一任务分组生成的第一证书对和第一根证书,所述第一证书对包括第一公钥证书和匹配的第一私钥,所述第一公钥证书和第一根证书构成第一证书链;
并且,所述第一计算单元被配置作为提供所述第一计算任务的计算服务的第一TLS服务端,该第一TLS服务端以所述第一证书对作为其证书对;所述第一计算单元还被配置作为至少与所述第二计算单元连接的第一TLS客户端,所述第一TLS客户端以所述第一根证书作为其可信根证书。
如图15所示,该装置150包括:
第一握手模块151,配置为利用所述第一TLS服务端与作用为第二TLS客户端的用户终端进行TLS握手,建立第一TLS可信通道;其中所述第二TLS客户端将所述第一根证书作为其可信根证书;
数据接收模块153,配置为通过所述第一TLS可信通道接收第一用户数据;
数据处理模块155,配置为对所述第一用户数据进行第一处理,得到第一应用数据;
第二握手模块157,配置为利用所述第一TLS客户端与作用为第二TLS服务端的第二计算单元进行TLS握手,建立第二TLS可信通道;其中所述第二TLS服务端将所述第一证书对作为其证书对;
数据发送模块159,配置为通过所述第二TLS可信通道将所述第一应用数据传送给所述第二计算单元。
在一个实施例中,上述装置150还包括数据获取模块(未示出),配置为:从数据平台读取第二用户数据,所述第二用户数据由所述用户终端使用所述第一公钥证书加密产生;使用所述第一私钥解密所述第二用户数据。
在一种实施方式中,上述装置150还包括,数据加密存储模块(未示出),配置为:生成第二应用数据;使用所述第一公钥证书加密所述第二应用数据,得到第二加密应用数据;将所述第二加密应用数据存入数据平台,以供所述第二计算单元利用所述第一证书对进行解密获取。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图4、图8和图10所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图4、图8和图10所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (36)

1.一种获取证书以进行多方安全计算的方法,通过运行第一计算任务的第一计算单元执行,所述第一计算任务预先被配置为属于第一任务分组,所述第一任务分组还包括至少一个其他计算任务;所述方法包括:
向可信证书生成器发送第一证书请求,所述第一证书请求包括所述第一任务分组的第一组标识,以及第一认证信息,所述第一认证信息用于对第一计算单元进行可信认证,并包括所述第一计算任务的第一代码哈希;
从所述可信证书生成器接收第一证书报告,所述第一证书报告包括针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书以及对应的第一公钥证书,所述第一公钥证书与所述第一私钥相匹配,构成第一证书对;
以所述第一计算单元作为提供所述第一计算任务的TLS服务端,将所述第一证书对设置为所述TLS服务端的证书对,并且以所述第一计算单元作为与所述至少一个其他计算任务连接的TLS客户端,将所述第一根证书设置为所述TLS客户端的可信根证书。
2.根据权利要求1所述的方法,其中,所述第一计算单元实现为可信围圈Enclave。
3.根据权利要求1所述的方法,还包括,在向可信证书生成器发送第一认证请求之前:
生成第一计算单元的单元报告文件,所述单元报告文件包括所述第一代码哈希,以及所述第一计算单元的签名信息;
将所述单元报告文件发送至第三方认证机构,以获得针对第一计算单元的第一认证结果文件,所述第一认证结果文件包含所述第三方认证机构的签名信息;
将所述第一认证结果文件作为所述第一认证信息包含在所述第一证书请求中。
4.根据权利要求1所述的方法,还包括,在向可信证书生成器发送第一认证请求之前:
生成第一计算单元的单元报告文件,所述单元报告文件包括所述第一代码哈希,所述第一计算单元的签名信息;
将所述单元报告文件作为所述第一认证信息包含在所述第一证书请求中。
5.根据权利要求1所述的方法,还包括,在向可信证书生成器发送第一认证请求之前:
与所述可信证书生成器进行秘钥协商,建立可信通道,所述可信通道用于发送所述第一证书请求,以及接收所述第一证书报告。
6.一种为计算单元分发证书的方法,通过可信证书生成器执行,所述方法包括:
从运行第一计算任务的第一计算单元接收第一证书请求,所述第一证书请求包括第一任务分组的第一组标识,以及第一认证信息,所述第一认证信息用于对所述第一计算单元进行认证,且包括所述第一计算任务的第一代码哈希;
根据所述第一认证信息对所述第一计算单元进行认证;
在认证通过的情况下,根据所述第一代码哈希判断所述第一计算任务是否属于所述第一任务分组;
在确认所述第一计算任务属于所述第一任务分组的情况下,获取预先针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书和对应的第一公钥证书,所述第一公钥证书与所述第一私钥相匹配,构成第一证书对;
向所述第一计算单元发送第一证书报告,所述第一证书报告包括所述第一根证书和所述第一证书对,使得所述第一计算单元以自身为提供计算服务的TLS服务端和与其他计算任务连接的TLS客户端,将所述第一证书对设置为TLS服务端的证书对,将所述第一根证书设置为TLS客户端的可信根证书。
7.根据权利要求6所述的方法,其中,所述第一认证信息为第三方认证机构针对所述第一计算单元认证的第一认证结果文件,该第一认证结果文件包含该第三方认证机构的签名信息;
所述根据所述第一认证信息对所述第一计算单元进行认证包括:
校验所述第三方认证机构的签名信息,在校验成功的情况下,确定所述第一计算单元认证通过。
8.根据权利要求6所述的方法,其中,所述第一认证信息为所述第一计算单元生成的单元报告文件,所述单元报告文件包括所述第一代码哈希,以及所述第一计算单元的签名信息;
所述根据所述第一认证信息对所述第一计算单元进行认证包括:
将所述单元报告文件发送至第三方认证机构,以获得针对第一计算单元的第一认证结果文件,所述第一认证结果文件包含所述第三方认证机构的签名信息;
校验所述第三方认证机构的签名信息,在校验成功的情况下,确定所述第一计算单元认证通过。
9.根据权利要求6所述的方法,其中,从运行第一计算任务的第一计算单元接收第一证书请求之前,还包括:
从配置管理器接收第一生成命令,所述第一生成命令包括,所述第一组标识,以及与所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希;
针对所述第一组标识,生成所述第一证书链和第一私钥。
10.根据权利要求6所述的方法,其中,根据所述第一代码哈希判断所述第一计算任务是否属于所述第一任务分组,包括:
获取预先配置的、与所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希;
判断所述第一代码哈希是否位于所述第一哈希列表中,如果是,则确认所述第一计算任务属于所述第一任务分组。
11.根据权利要求6所述的方法,其中,所述第一公钥证书包括针对所述第一组标识生成的第一公钥,以及所述可信证书生成器签名的第一签名信息,其中所述第一公钥和所述第一私钥构成密钥对;所述第一根证书中包括针对所述第一组标识生成的第二公钥,以及所述可信证书生成器自签名的第二签名信息;所述第二公钥用于对所述第一签名信息和第二签名信息进行校验。
12.根据权利要求6所述的方法,其中,所述第一公钥证书包括针对所述第一组标识生成的第一公钥,以及所述可信证书生成器签名的第一签名信息,其中所述第一公钥和所述第一私钥构成密钥对;所述第一根证书包括所述第一公钥,以及所述可信证书生成器自签名的第二签名信息;所述第一公钥用于对所述第一签名信息和第二签名信息进行校验。
13.根据权利要求6所述的方法,其中,在从运行第一计算任务的第一计算单元接收第一证书请求之前,还包括:
与所述第一计算单元进行秘钥协商,建立可信通道,所述可信通道用于接收所述第一证书请求,以及发送所述第一证书报告。
14.一种获取证书以进行多方安全计算的方法,通过用户终端执行,所述方法包括:
向可信证书生成器发送第二证书请求,所述第二证书请求中包括,期望连接的第一任务分组的第一组标识;
从所述可信证书生成器接收第二证书报告,所述第二证书报告至少包括针对所述第一组标识生成的第一证书链中的第一根证书,所述第一证书链还包括与所述第一根证书对应的第一公钥证书;所述第一公钥证书和匹配的第一私钥构成第一证书对,被预先分发给经过认证的、运行所述第一任务分组中各个计算任务的至少一个计算单元;
以所述用户终端为TLS客户端,将所述第一根证书设置为所述TLS客户端的可信根证书,从而与具有所述第一证书对、且作用为TLS服务端的所述至少一个计算单元通信。
15.根据权利要求14所述的方法,其中,在向可信证书生成器发送第二证书请求之前,还包括:
获取所述可信证书生成器的第二认证信息;
根据所述第二认证信息,对所述可信证书生成器进行认证。
16.根据权利要求15所述的方法,其中,所述第二认证信息为第三方认证机构针对所述可信证书生成器认证的第二认证结果文件,该第二认证结果文件包含该第三方认证机构的签名信息;
所述根据所述第二认证信息,对所述可信证书生成器进行认证包括:
校验所述第三方认证机构的签名信息,在校验成功的情况下,确定所述可信证书生成器认证通过。
17.根据权利要求15所述的方法,其中,所述第二认证信息为所述可信证书生成器生成的报告文件,所述报告文件包括所述可信证书生成器自身的代码哈希和签名信息;
所述根据所述第二认证信息,对所述可信证书生成器进行认证包括:
将所述报告文件发送至第三方认证机构,以获得针对所述可信证书生成器的第二认证结果文件,所述第二认证结果文件包含所述第三方认证机构的签名信息;
校验所述第三方认证机构的签名信息,在校验成功的情况下,确定所述证书生成器认证通过。
18.根据权利要求14所述的方法,其中,所述第二证书报告还包括,所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希;
在将所述第一根证书设置为所述TLS客户端的可信根证书之前,所述方法还包括,判断所述第一哈希列表是否符合预期。
19.根据权利要求14所述的方法,其中,在将所述第一根证书设置为所述TLS客户端的可信根证书之后,还包括,
与所述至少一个计算单元进行TLS握手,建立TLS可信通道;
通过TLS可信通道,从所述至少一个计算单元获取所述第一任务分组的计算服务。
20.根据权利要求14所述的方法,其中,所述第二证书报告还包括,所述第一公钥证书,所述方法还包括:
利用所述第一公钥证书加密所述用户终端的用户数据,并将加密的用户数据存入数据平台,以供所述至少一个计算单元利用所述第一证书对进行解密获取。
21.一种为用户终端分发证书的方法,通过可信证书生成器执行,所述方法包括:
接收用户终端发送的第二证书请求,所述第二证书请求中包括,所述用户终端期望连接的第一任务分组的第一组标识;
获取预先针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书和与其对应的第一公钥证书,所述第一公钥证书与所述第一私钥匹配,构成第一证书对;至少所述第一证书对被预先分发给经过认证的、运行所述第一任务分组中各个计算任务的至少一个计算单元;
向所述用户终端发送第二证书报告,所述第二证书报告至少包括所述第一根证书,以使得所述用户终端以自身为TLS客户端,将所述第一根证书作为TLS客户端的可信根证书,从而与具有所述第一证书对、且作用为TLS服务端的所述至少一个计算单元通信。
22.根据权利要求21的方法,其中,在接收用户终端发送的第二证书请求之前,还包括:
响应于所述用户终端的认证请求,向所述用户终端提供第二认证信息,以供所述用户终端进行认证。
23.根据权利要求22所述的方法,其中,向所述用户终端提供第二认证信息包括:
生成报告文件,所述报告文件包括所述可信证书生成器自身的代码哈希和签名信息;
将所述报告文件发送至第三方认证机构,以获得针对所述可信证书生成器的第二认证结果文件,所述第二认证结果文件包含所述第三方认证机构的签名信息;
将所述第二认证结果文件作为所述第二认证信息提供给所述用户终端。
24.根据权利要求22所述的方法,其中,向所述用户终端提供第二认证信息包括:
生成报告文件,所述报告文件包括所述可信证书生成器自身的代码哈希和签名信息;
将所述报告文件作为所述第二认证信息提供给所述用户终端。
25.根据权利要求22所述的方法,其中,所述第二证书报告还包括,所述第一组标识对应的第一哈希列表,该第一哈希列表包括属于所述第一任务分组的所有计算任务的代码哈希。
26.根据权利要求22所述的方法,其中,所述第二证书报告还包括所述第一公钥证书,以使得所述用户终端利用所述第一公钥证书加密用户数据。
27.一种通过数字证书进行多方安全计算的方法,通过运行第一计算任务的第一计算单元执行,其中:
所述第一计算任务预先被配置为属于第一任务分组,所述第一任务分组还包括第二计算单元所运行的第二计算任务;
所述第一计算单元预先被分发有针对所述第一任务分组生成的第一证书对和第一根证书,所述第一证书对包括第一公钥证书和匹配的第一私钥,所述第一公钥证书和第一根证书构成第一证书链;
并且,所述第一计算单元被配置作为提供所述第一计算任务的计算服务的第一TLS服务端,该第一TLS服务端以所述第一证书对作为其证书对;所述第一计算单元还被配置作为至少与所述第二计算单元连接的第一TLS客户端,所述第一TLS客户端以所述第一根证书作为其可信根证书;
所述方法包括:
利用所述第一TLS服务端与作用为第二TLS客户端的用户终端进行TLS握手,建立第一TLS可信通道;其中所述第二TLS客户端将所述第一根证书作为其可信根证书;
通过所述第一TLS可信通道接收第一用户数据;
对所述第一用户数据进行第一处理,得到第一应用数据;
利用所述第一TLS客户端与作用为第二TLS服务端的第二计算单元进行TLS握手,建立第二TLS可信通道;其中所述第二TLS服务端将所述第一证书对作为其证书对;
通过所述第二TLS可信通道将所述第一应用数据传送给所述第二计算单元。
28.根据权利要求27所述的方法,还包括:
从数据平台读取第二用户数据,所述第二用户数据由所述用户终端使用所述第一公钥证书加密产生;
使用所述第一私钥解密所述第二用户数据。
29.根据权利要求27所述的方法,还包括:
生成第二应用数据;
使用所述第一公钥证书加密所述第二应用数据,得到第二加密应用数据;
将所述第二加密应用数据存入数据平台,以供所述第二计算单元利用所述第一证书对进行解密获取。
30.一种获取证书以进行多方安全计算的装置,部署在运行第一计算任务的第一计算单元中,所述第一计算任务预先被配置为属于第一任务分组,所述第一任务分组还包括至少一个其他计算任务;所述装置包括:
第一证书请求模块,配置为向可信证书生成器发送第一证书请求,所述第一证书请求包括所述第一任务分组的第一组标识,以及第一认证信息,所述第一认证信息用于对第一计算单元进行可信认证,并包括所述第一计算任务的第一代码哈希;
第一报告接收模块,配置为从所述可信证书生成器接收第一证书报告,所述第一证书报告包括针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书以及对应的第一公钥证书,所述第一公钥证书与所述第一私钥相匹配,构成第一证书对;
第一设置模块,配置为以所述第一计算单元作为提供所述第一计算任务的计算服务的TLS服务端,将所述第一证书对设置为所述TLS服务端的证书对;并且以所述第一计算单元作为与所述至少一个其他计算任务连接的TLS客户端,将所述第一根证书设置为所述TLS客户端的可信根证书。
31.一种为计算单元分发证书的装置,部署在可信证书生成器中,所述装置包括:
第一请求接收模块,配置为从运行第一计算任务的第一计算单元接收第一证书请求,所述第一证书请求包括第一任务分组的第一组标识,以及第一认证信息,所述第一认证信息用于对所述第一计算单元进行认证,且包括所述第一计算任务的第一代码哈希;
单元认证模块,配置为根据所述第一认证信息对所述第一计算单元进行认证;
分组判断模块,配置为在认证通过的情况下,根据所述第一代码哈希判断所述第一计算任务是否属于所述第一任务分组;
证书获取模块,配置为在确认所述第一计算任务属于所述第一任务分组的情况下,获取预先针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书和对应的第一公钥证书,所述第一公钥证书与所述第一私钥相匹配,构成第一证书对;
第一报告发送模块,配置为向所述第一计算单元发送第一证书报告,所述第一证书报告包括所述第一根证书和所述第一证书对,使得所述第一计算单元以自身为提供计算服务的TLS服务端和与其他计算任务连接的TLS客户端,将所述第一证书对设置为TLS服务端的证书对,将所述第一根证书设置为TLS客户端的可信根证书。
32.一种获取证书以进行多方安全计算的装置,部署在用户终端中,所述装置包括:
第二请求发送模块,配置为向可信证书生成器发送第二证书请求,所述第二证书请求中包括,期望连接的第一任务分组的第一组标识;
第二报告接收模块,配置为从所述可信证书生成器接收第二证书报告,所述第二证书报告至少包括针对所述第一组标识生成的第一证书链中的第一根证书,所述第一证书链还包括与所述第一根证书对应的第一公钥证书;所述第一公钥证书和匹配的第一私钥构成第一证书对,被预先分发给经过认证的、运行所述第一任务分组中各个计算任务的至少一个计算单元;
第二设置模块,配置为以所述用户终端为TLS客户端,将所述第一根证书设置为所述TLS客户端的可信根证书,从而与具有所述第一证书对、且作用为TLS服务端的所述至少一个计算单元通信。
33.一种为用户终端分发证书的装置,部署在可信证书生成器中,所述装置包括:
第二请求接收模块,配置为接收用户终端发送的第二证书请求,所述第二证书请求中包括,所述用户终端期望连接的第一任务分组的第一组标识;
证书获取模块,配置为获取预先针对所述第一组标识生成的第一证书链和第一私钥,所述第一证书链包括第一根证书和与其对应的第一公钥证书,所述第一公钥证书与所述第一私钥匹配,构成第一证书对;至少所述第一证书对被预先分发给经过认证的、运行所述第一任务分组中各个计算任务的至少一个计算单元;
第二报告发送模块,配置为向所述用户终端发送第二证书报告,所述第二证书报告至少包括所述第一根证书,以使得所述用户终端以自身为TLS客户端,将所述第一根证书作为TLS客户端的可信根证书,从而与具有所述第一证书对、且作用为TLS服务端的所述至少一个计算单元通信。
34.一种通过数字证书进行多方安全计算的装置,部署在运行第一计算任务的第一计算单元中,其中:
所述第一计算任务预先被配置为属于第一任务分组,所述第一任务分组还包括第二计算单元所运行的第二计算任务;
所述第一计算单元预先被分发有针对所述第一任务分组生成的第一证书对和第一根证书,所述第一证书对包括第一公钥证书和匹配的第一私钥,所述第一公钥证书和第一根证书构成第一证书链;
并且,所述第一计算单元被配置作为提供所述第一计算任务的计算服务的第一TLS服务端,该第一TLS服务端以所述第一证书对作为其证书对;所述第一计算单元还被配置作为至少与所述第二计算单元连接的第一TLS客户端,所述第一TLS客户端以所述第一根证书作为其可信根证书;
所述装置包括:
第一握手模块,配置为利用所述第一TLS服务端与作用为第二TLS客户端的用户终端进行TLS握手,建立第一TLS可信通道;其中所述第二TLS客户端将所述第一根证书作为其可信根证书;
数据接收模块,配置为通过所述第一TLS可信通道接收第一用户数据;
数据处理模块,配置为对所述第一用户数据进行第一处理,得到第一应用数据;
第二握手模块,配置为利用所述第一TLS客户端与作用为第二TLS服务端的第二计算单元进行TLS握手,建立第二TLS可信通道;其中所述第二TLS服务端将所述第一证书对作为其证书对;
数据发送模块,配置为通过所述第二TLS可信通道将所述第一应用数据传送给所述第二计算单元。
35.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-29中任一项的所述的方法。
36.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-29中任一项所述的方法。
CN201910808822.5A 2019-08-29 2019-08-29 通过证书签发进行多方安全计算的方法及装置 Active CN110535628B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910808822.5A CN110535628B (zh) 2019-08-29 2019-08-29 通过证书签发进行多方安全计算的方法及装置
PCT/CN2020/072112 WO2021036183A1 (zh) 2019-08-29 2020-01-15 通过证书签发进行多方安全计算的方法及装置
US16/813,524 US11038699B2 (en) 2019-08-29 2020-03-09 Method and apparatus for performing multi-party secure computing based-on issuing certificate
US17/244,854 US11228450B2 (en) 2019-08-29 2021-04-29 Method and apparatus for performing multi-party secure computing based-on issuing certificate

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910808822.5A CN110535628B (zh) 2019-08-29 2019-08-29 通过证书签发进行多方安全计算的方法及装置

Publications (2)

Publication Number Publication Date
CN110535628A true CN110535628A (zh) 2019-12-03
CN110535628B CN110535628B (zh) 2020-07-17

Family

ID=68665426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910808822.5A Active CN110535628B (zh) 2019-08-29 2019-08-29 通过证书签发进行多方安全计算的方法及装置

Country Status (2)

Country Link
CN (1) CN110535628B (zh)
WO (1) WO2021036183A1 (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131336A (zh) * 2020-03-30 2020-05-08 腾讯科技(深圳)有限公司 多方授权场景下的资源访问方法、装置、设备及存储介质
CN111291369A (zh) * 2020-01-20 2020-06-16 北京无限光场科技有限公司 一种信息检测方法和电子设备
US10790979B1 (en) 2019-08-29 2020-09-29 Alibaba Group Holding Limited Providing high availability computing service by issuing a certificate
CN111726782A (zh) * 2020-05-22 2020-09-29 浙江吉利汽车研究院有限公司 一种安全认证方法及***
WO2021036183A1 (zh) * 2019-08-29 2021-03-04 创新先进技术有限公司 通过证书签发进行多方安全计算的方法及装置
WO2021036186A1 (zh) * 2019-08-29 2021-03-04 创新先进技术有限公司 通过证书签发提供高可用计算服务的方法及装置
CN112491847A (zh) * 2020-07-08 2021-03-12 支付宝(杭州)信息技术有限公司 区块链一体机及其自动建链方法、装置
US11038699B2 (en) 2019-08-29 2021-06-15 Advanced New Technologies Co., Ltd. Method and apparatus for performing multi-party secure computing based-on issuing certificate
CN113810382A (zh) * 2021-08-24 2021-12-17 东北大学秦皇岛分校 一种用于抵御sgx侧信道攻击的密文加载方法
CN114143034A (zh) * 2021-11-01 2022-03-04 清华大学 一种网络访问安全性检测方法及装置
CN114168924A (zh) * 2022-02-10 2022-03-11 亿次网联(杭州)科技有限公司 一种基于数字证书的群成员相互认证的方法和***
CN114282237A (zh) * 2021-12-21 2022-04-05 北京百度网讯科技有限公司 一种通信方法、装置、设备及存储介质
CN114762288A (zh) * 2019-12-05 2022-07-15 华为技术有限公司 用于在分布式***中建立信任关系的***和方法
US11424942B2 (en) 2020-07-08 2022-08-23 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain integrated stations and automatic node adding methods and apparatuses
US11451404B2 (en) 2020-07-08 2022-09-20 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain integrated stations and automatic node adding methods and apparatuses
CN117097487A (zh) * 2023-10-19 2023-11-21 翼方健数(北京)信息科技有限公司 一种利用数字证书认证简化可信执行环境远程认证方法、***和介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104378374A (zh) * 2014-11-14 2015-02-25 国家超级计算深圳中心(深圳云计算中心) 一种基于安全套接层建立通信的方法及***
CN107959656A (zh) * 2016-10-14 2018-04-24 阿里巴巴集团控股有限公司 数据安全保障***及方法、装置
CN108282466A (zh) * 2017-12-29 2018-07-13 北京握奇智能科技有限公司 用于在tee中提供数字证书功能的方法、***
CN109074449A (zh) * 2016-06-03 2018-12-21 英特尔公司 在安全飞地中灵活地供应证明密钥
US20190065406A1 (en) * 2017-11-17 2019-02-28 Intel Corporation Technology For Establishing Trust During A Transport Layer Security Handshake
CN109861980A (zh) * 2018-12-29 2019-06-07 阿里巴巴集团控股有限公司 一种建立可信计算集群的方法和装置
CN109873801A (zh) * 2018-12-12 2019-06-11 阿里巴巴集团控股有限公司 在用户和可信计算集群之间建立可信通道的方法及装置
CN110011988A (zh) * 2019-03-21 2019-07-12 平安科技(深圳)有限公司 基于区块链的证书验证方法及装置、存储介质、电子装置
CN110034925A (zh) * 2019-01-07 2019-07-19 阿里巴巴集团控股有限公司 跨机房可信计算集群形成及通信方法和装置
CN110120869A (zh) * 2019-03-27 2019-08-13 上海隔镜信息科技有限公司 密钥管理***及密钥服务节点

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4504099B2 (ja) * 2003-06-25 2010-07-14 株式会社リコー デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法、更新手順決定方法およびプログラム
CN110493273B (zh) * 2018-06-28 2021-03-16 腾讯科技(深圳)有限公司 身份认证数据处理方法、装置、计算机设备和存储介质
CN110677240B (zh) * 2019-08-29 2020-07-10 阿里巴巴集团控股有限公司 通过证书签发提供高可用计算服务的方法、装置及介质
CN110535628B (zh) * 2019-08-29 2020-07-17 阿里巴巴集团控股有限公司 通过证书签发进行多方安全计算的方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104378374A (zh) * 2014-11-14 2015-02-25 国家超级计算深圳中心(深圳云计算中心) 一种基于安全套接层建立通信的方法及***
CN109074449A (zh) * 2016-06-03 2018-12-21 英特尔公司 在安全飞地中灵活地供应证明密钥
CN107959656A (zh) * 2016-10-14 2018-04-24 阿里巴巴集团控股有限公司 数据安全保障***及方法、装置
US20190065406A1 (en) * 2017-11-17 2019-02-28 Intel Corporation Technology For Establishing Trust During A Transport Layer Security Handshake
CN108282466A (zh) * 2017-12-29 2018-07-13 北京握奇智能科技有限公司 用于在tee中提供数字证书功能的方法、***
CN109873801A (zh) * 2018-12-12 2019-06-11 阿里巴巴集团控股有限公司 在用户和可信计算集群之间建立可信通道的方法及装置
CN109861980A (zh) * 2018-12-29 2019-06-07 阿里巴巴集团控股有限公司 一种建立可信计算集群的方法和装置
CN110034925A (zh) * 2019-01-07 2019-07-19 阿里巴巴集团控股有限公司 跨机房可信计算集群形成及通信方法和装置
CN110011988A (zh) * 2019-03-21 2019-07-12 平安科技(深圳)有限公司 基于区块链的证书验证方法及装置、存储介质、电子装置
CN110120869A (zh) * 2019-03-27 2019-08-13 上海隔镜信息科技有限公司 密钥管理***及密钥服务节点

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11228450B2 (en) 2019-08-29 2022-01-18 Advanced New Technologies Co., Ltd. Method and apparatus for performing multi-party secure computing based-on issuing certificate
US10972272B2 (en) 2019-08-29 2021-04-06 Advanced New Technologies Co., Ltd. Providing high availability computing service by issuing a certificate
US11206137B2 (en) 2019-08-29 2021-12-21 Advanced New Technologies Co., Ltd. Providing high availability computing service by issuing a certificate
US11038699B2 (en) 2019-08-29 2021-06-15 Advanced New Technologies Co., Ltd. Method and apparatus for performing multi-party secure computing based-on issuing certificate
WO2021036183A1 (zh) * 2019-08-29 2021-03-04 创新先进技术有限公司 通过证书签发进行多方安全计算的方法及装置
WO2021036186A1 (zh) * 2019-08-29 2021-03-04 创新先进技术有限公司 通过证书签发提供高可用计算服务的方法及装置
US10790979B1 (en) 2019-08-29 2020-09-29 Alibaba Group Holding Limited Providing high availability computing service by issuing a certificate
CN114762288A (zh) * 2019-12-05 2022-07-15 华为技术有限公司 用于在分布式***中建立信任关系的***和方法
CN111291369A (zh) * 2020-01-20 2020-06-16 北京无限光场科技有限公司 一种信息检测方法和电子设备
CN111291369B (zh) * 2020-01-20 2022-05-20 北京无限光场科技有限公司 一种信息检测方法和电子设备
CN111131336A (zh) * 2020-03-30 2020-05-08 腾讯科技(深圳)有限公司 多方授权场景下的资源访问方法、装置、设备及存储介质
CN111131336B (zh) * 2020-03-30 2020-07-17 腾讯科技(深圳)有限公司 多方授权场景下的资源访问方法、装置、设备及存储介质
CN111726782A (zh) * 2020-05-22 2020-09-29 浙江吉利汽车研究院有限公司 一种安全认证方法及***
CN111726782B (zh) * 2020-05-22 2023-12-29 浙江吉利汽车研究院有限公司 一种安全认证方法及***
CN112491847A (zh) * 2020-07-08 2021-03-12 支付宝(杭州)信息技术有限公司 区块链一体机及其自动建链方法、装置
US11424942B2 (en) 2020-07-08 2022-08-23 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain integrated stations and automatic node adding methods and apparatuses
US11451404B2 (en) 2020-07-08 2022-09-20 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain integrated stations and automatic node adding methods and apparatuses
CN112491847B (zh) * 2020-07-08 2022-02-22 支付宝(杭州)信息技术有限公司 区块链一体机及其自动建链方法、装置
CN113810382A (zh) * 2021-08-24 2021-12-17 东北大学秦皇岛分校 一种用于抵御sgx侧信道攻击的密文加载方法
CN113810382B (zh) * 2021-08-24 2023-07-11 东北大学秦皇岛分校 一种用于抵御sgx侧信道攻击的密文加载方法
CN114143034A (zh) * 2021-11-01 2022-03-04 清华大学 一种网络访问安全性检测方法及装置
CN114282237A (zh) * 2021-12-21 2022-04-05 北京百度网讯科技有限公司 一种通信方法、装置、设备及存储介质
CN114282237B (zh) * 2021-12-21 2023-01-17 北京百度网讯科技有限公司 一种通信方法、装置、设备及存储介质
CN114168924A (zh) * 2022-02-10 2022-03-11 亿次网联(杭州)科技有限公司 一种基于数字证书的群成员相互认证的方法和***
CN117097487B (zh) * 2023-10-19 2024-01-26 翼方健数(北京)信息科技有限公司 一种利用数字证书认证简化可信执行环境远程认证方法、***和介质
CN117097487A (zh) * 2023-10-19 2023-11-21 翼方健数(北京)信息科技有限公司 一种利用数字证书认证简化可信执行环境远程认证方法、***和介质

Also Published As

Publication number Publication date
CN110535628B (zh) 2020-07-17
WO2021036183A1 (zh) 2021-03-04

Similar Documents

Publication Publication Date Title
CN110535628A (zh) 通过证书签发进行多方安全计算的方法及装置
US11900368B2 (en) Method and system for zero-knowledge and identity based key management for decentralized applications
WO2021036186A1 (zh) 通过证书签发提供高可用计算服务的方法及装置
CN110581854B (zh) 基于区块链的智能终端安全通信方法
KR100872099B1 (ko) 컴퓨터 그리드에 대한 싱글-사인-온 액세스를 위한 방법 및시스템
Adams et al. Understanding PKI: concepts, standards, and deployment considerations
JP4304362B2 (ja) Pki対応の証明書確認処理方法及びその装置、並びにpki対応の証明書確認処理プログラム
US7366905B2 (en) Method and system for user generated keys and certificates
US8806206B2 (en) Cooperation method and system of hardware secure units, and application device
US11228450B2 (en) Method and apparatus for performing multi-party secure computing based-on issuing certificate
CN112087428B (zh) 一种基于数字证书的抗量子计算身份认证***及方法
CN111756530B (zh) 量子服务移动引擎***、网络架构及相关设备
JP6571890B1 (ja) 電子署名システム、証明書発行システム、証明書発行方法及びプログラム
CN105978906A (zh) 一种基于身份的通信握手协议
CN114884698B (zh) 基于联盟链的Kerberos与IBC安全域间跨域认证方法
CN111917543B (zh) 用户接入云平台安全接入认证***及其应用方法
CN110493272A (zh) 使用多重密钥的通信方法和通信***
JP6465426B1 (ja) 電子署名システム、証明書発行システム、鍵管理システム及び電子証明書発行方法
JP2010191801A (ja) 認証システムおよび認証方法
CN113626794A (zh) 客户/服务器模式下的认证及密钥协商方法、***及应用
CN111131160B (zh) 一种用户、服务及数据认证***
CN112235276A (zh) 主从设备交互方法、装置、***、电子设备和计算机介质
JP4499575B2 (ja) ネットワークセキュリティ方法およびネットワークセキュリティシステム
JP2000261428A (ja) 分散処理システムにおける認証装置
Boeyen et al. Liberty trust models guidelines

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40018246

Country of ref document: HK

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.