CN113556230B - 数据安全传输方法、证书相关方法、服务端、系统及介质 - Google Patents

数据安全传输方法、证书相关方法、服务端、系统及介质 Download PDF

Info

Publication number
CN113556230B
CN113556230B CN202010334336.7A CN202010334336A CN113556230B CN 113556230 B CN113556230 B CN 113556230B CN 202010334336 A CN202010334336 A CN 202010334336A CN 113556230 B CN113556230 B CN 113556230B
Authority
CN
China
Prior art keywords
party
public key
certificate
information
verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010334336.7A
Other languages
English (en)
Other versions
CN113556230A (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.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing Co 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 Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN202010334336.7A priority Critical patent/CN113556230B/zh
Publication of CN113556230A publication Critical patent/CN113556230A/zh
Application granted granted Critical
Publication of CN113556230B publication Critical patent/CN113556230B/zh
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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请的数据安全传输方法、证书相关方法、服务端、系统及介质,应用于不同通信装置所分别具备的隔离执行模块之间的数据安全传输;其中,第一通信装置的隔离执行模块和第二通信装置的隔离执行模块分别为相互通信的第一方和第二方,所述数据安全传输方法包括:在执行任务时,若第一方同第二方间相互可信认证为可信,则第一方通过与第二方间形成安全传输通道,以对应所述任务执行由第一方向第二方传输数据、或执行由第二方向第一方传输数据。本申请基于隔离执行模块其本身的可信性为基础,结合通信时隔离执行模块之间的相互可信认证为基础实现安全通信,解决现有技术中对通信方身份可信认证的问题,而能被可靠应用于网络远程通信。

Description

数据安全传输方法、证书相关方法、服务端、系统及介质
技术领域
本申请涉及数据安全技术领域,特别是涉及数据安全传输方法、证书相关方法、服务端、系统及介质。
背景技术
随着计算机技术的快速发展,越来越多的商业运行、社会基础设施运行,以及个人操作越来越依赖于计算环境,而计算机系统的扩展和复杂化使整个系统变得越来越脆弱,安全性越来越低。与此同时,网络的发展将计算机变成网络中的一个组成部分,在连接上突破了例如机房等地理隔离,信息的交互扩大到了整个网络。由于因特网络缺少足够的安全设计,处于网络环境中的计算机时刻都有可能受到安全威胁。目前,人们只能证明和验证一些简单的网络协议,无法避免在网络协议中存在的安全缺陷。
目前的计算机系统缺乏相应的安全机制,计算机系统中的程序执行可以不通过认证,程序和系统区域的数据也可以随意被修改,并且整个计算平台很容易被攻击而进入一个不可控状态,导致重要数据或隐私数据被病毒、木马、恶意程序等监听、复制、替换或篡改等,从而造成重要数据或隐私数据的严重泄露和经济上的巨大损失。
在现有技术中,会采用加解密手段来保障传输信息的安全,且依靠密钥来验证通信方的可信性,如果一旦密钥失窃,则各方将不再可信,这就存在了巨大的安全风险。尤其在互联网络中,通信方之间身份的远程可信验证对安全机制的要求更高,已成为业界亟待解决的技术问题。
发明内容
鉴于以上所述现有技术的缺点,本申请的主要目的在于提供数据安全传输方法、证书相关方法、服务端、系统及介质,用于解决现有技术中存在对通信方的可信验证的问题。
为实现上述目的及其他相关目的,本申请提供一种数据安全传输方法,应用于不同通信装置所分别具备的隔离执行模块之间的数据安全传输;其中,第一通信装置的隔离执行模块和第二通信装置的隔离执行模块分别为相互通信的第一方和第二方,所述数据安全传输方法包括:在执行任务时,若第一方同第二方间相互可信认证为可信,则第一方通过与第二方间形成安全传输通道,以对应所述任务执行由第一方向第二方传输数据、或执行由第二方向第一方传输数据。
在本申请的实施例中,所述相互可信认证为可信的有效时间与任务的生命周期一致。
在本申请的实施例中,隔离执行模块具有公钥证书,所述公钥证书由证书管理服务端发放、并在所述相互可信认证中供对方验证;其中,所述公钥证书中包括所述隔离执行模块的公钥、及可信计算基础信息。
在本申请的实施例中,在所述相互可信认证的过程中,所述第一方或第二方作为被验证方时产生有远程证明信息;所述第一方及第二方中的验证方根据被验证方公钥证书在证书管理服务端的验证结果、以及被验证方的远程证明信息在远程验证服务端的验证结果,以获得被验证方公钥证书和远程证明信息中的可信计算基础信息的比较结果,据以判断被验证方是否可信。
在本申请的实施例中,所述相互可信认证包括:第一方产生认证请求以传输至第二方;其中,所述认证请求包括:第一方的第一签名及其被签名内容;其中,所述第一签名的被签名内容包括认证请求标识、第一方公钥证书、及第一特征标识信息;第二方根据所述认证请求得到所述第一方公钥证书,以传输至所述证书管理服务端进行验证;在所述第一方公钥证书验证通过的情形下,第二方使用第一方公钥验证所述第一签名;在第一签名验证通过的情形下,第二方产生包含第二签名及其被签名内容的回复消息以传输至所述第一方第一回复消息;其中,所述第二签名包括:第二方公钥证书、第二方远程证明信息、及第二特征标识信息;其中,所述第二方远程证明信息包括:所述第一特征标识信息、认证请求标识、及第二方的可信计算基础信息;在所述第二签名验证通过的情形下,第一方将公钥证书传输至证书管理服务端进行验证,并对第二方远程证明信息进行验证;在所述第二方公钥证书验证通过的情形下,第一方使用第二方公钥验证所述第二签名、并验证所述第二方远程证明信息中内容;若所述第二方公钥证书验证通过,在第一方根据第二方公钥证书和第二方远程证明信息判断第二方可信的情形下,第一方产生第一方远程证明信息、及包括所述第一方远程证明信息的第三签名,以传输包括所述第三签名及其被签名内容的第二回复消息至第二方;其中,所述第一方远程证明信息包括:所述第二特征标识信息、认证请求标识、及第一方的可信计算基础信息;第二方通过所述第一方公钥从第三签名获取第一方远程证明信息,并在第二方根据第一方公钥证书和第一方远程证明信息判断第一方可信的情形下,形成所述安全传输通道。
为实现上述目的及其他相关目的,本申请提供一种通信装置,包括:通信器,用于与外部通信;存储器;处理器,耦接于所述存储器及通信器,用于运行指令以在所述存储器形成隔离执行模块;所述隔离执行模块,用于作为第一方或第二方而执行所述的数据安全传输方法;和/或,执行证书请求方法,所述证书请求方法包括:获得公私钥对,并用于生成签名;其中,所述签名包括所述隔离执行模块的可信计算基础信息、公私钥对中的公钥、及特征标识信息;其中,所述签名及其被签名内容被包括在一公钥证书申请请求中而传输至证书管理服务端;获得含有证书管理服务端分配的公钥证书请求标识的引用信息;通过所述引用信息封装所述公钥证书请求标识、所述隔离执行模块的可信计算基础信息、及所述签名以形成远程证明信息;对外传输所述远程证明信息供以被验证;接收并存储公钥证书;其中,所述公钥证书包括所述隔离执行模块的可信计算基础信息。
为实现上述目的及其他相关目的,本申请提供一种证书管理服务端,包括:通信器,用于与外部通信;存储器,存储有至少一计算机程序;处理器,耦接于所述存储器及通信器,用于运行所述至少一计算机程序,以执行证书发放方法,所述证书发放方法包括:接收公钥证书申请请求;其中,所述公钥证书申请请求中包括签名及其被签名内容,所述签名是由隔离执行模块使用其公私钥对加密生成的,所述签名包括所述隔离执行模块的可信计算基础信息、所述公私钥对中的公钥、及特征标识信息;在使用所述公钥验证所述签名通过的情形下,对应所述公钥证书申请请求生成公钥证书请求标识并发送;获得对应所述公钥证书请求标识形成的远程证明信息;其中,所述远程证明信息中包括所述公钥证书请求标识、隔离执行模块的可信计算基础信息、及所述签名;获得所述远程证明信息的验证结果并在验证通过后生成公钥证书并发放;和/或所述处理器执行证书验证方法,所述证书验证方法包括:接收相互通信的各隔离执行模块中的验证方对被验证方公钥证书发起的公钥证书验证请求;验证所述公钥证书是否有效;在公钥证书有效的情形下,获得公钥证书中的可信计算基础信息的验证结果;根据可信计算基础信息的验证结果形成证书验证结果,发送给所述验证方。
为实现上述目的及其他相关目的,本申请提供一种远程验证服务端,包括:通信器,用于与外部通信;存储器,存储有至少一计算机程序;处理器,耦接于所述存储器及通信器,用于运行所述至少一计算机程序,以执行信息验证方法,所述信息验证方法包括:验证来自通信装置的隔离执行模块的公钥证书或远程证明信息中的可信计算基础信息;发送验证结果。
为实现上述目的及其他相关目的,本申请提供一种数据安全传输系统,包括:多个所述的通信装置;所述的证书管理服务端,用于与所述多个通信装置通信;所述的远程验证服务端,用于与所述证书管理服务端、及所述多个通信装置中的任意一或多个通信。
为实现上述目的及其他相关目的,本申请提供一种计算机可读存储介质,存储有至少一计算机程序,所述至少一计算机程序用于被运行以执行所述的数据安全传输方法中第一方或第二方的各步骤;或者,执行所述的证书请求方法;或者,执行所述的证书发放方法;或者,执行所述的证书验证方法;或者,执行所述的信息验证方法。
如上所述,本申请的数据安全传输方法、证书相关方法、服务端、系统及介质,应用于不同通信装置所分别具备的隔离执行模块之间的数据安全传输;其中,第一通信装置的隔离执行模块和第二通信装置的隔离执行模块分别为相互通信的第一方和第二方,所述数据安全传输方法包括:在执行任务时,若第一方同第二方间相互可信认证为可信,则第一方通过与第二方间形成安全传输通道,以对应所述任务执行由第一方向第二方传输数据、或执行由第二方向第一方传输数据。本申请基于隔离执行模块其本身的可信性为基础,结合通信时隔离执行模块之间的相互可信认证为基础实现安全通信,解决现有技术中对通信方身份可信认证的问题,而能被可靠应用于网络远程通信。
附图说明
图1显示为本申请实施例中数据安全传输方法的流程示意图。
图2显示为本申请实施例中通信装置的电路结构示意图。
图3显示为本申请实施例中数据安全传输系统的结构示意图。
图4显示为本申请实施例中第一方或第二方公钥证书的证书请求与发放的流程示意图。
图5显示为本申请实施例中隔离执行模块间进行相互可信认证的流程示意图。
图6显示为本申请实施例中电子装置的电路结构示意图。
图7显示为本申请实施例中证书发放系统的功能模块示意图。
图8显示为本申请实施例中证书验证系统的功能模块示意图。
图9显示为本申请实施例中信息验证系统的功能模块示意图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本公开的精神和范围的情况下进行模块或单元组成、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件、信息或参数,但是这些元件或参数不应当被这些术语限制。这些术语仅用来将一个元件或参数与另一个元件或参数进行区分。例如,第一元件可以被称作第二元件,并且类似地,第二元件可以被称作第一元件,而不脱离各种所描述的实施例的范围。第一元件和第二元件均是在描述一个元件,但是除非上下文以其他方式明确指出,否则它们不是同一个元件。取决于语境,比如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
基于现有技术在通信会话中通信方身份可信认证方案上的缺失,本申请实施例中提供基于通信方的隔离执行模块的相互可信认证方案,从而实现高可信度的数据安全传输,从而解决现有技术的问题。
如图1所示,展示本申请实施例中数据安全传输方法的流程示意图。
在该通信场景中存在通信装置A和通信装置B,两者之间要进行通信以实现数据传输。例如,通信装置A需要将其数据传输给通信装置B,或者,通信装置B要将数据传输给通信装置A。
在本实施例中,所述通信装置A和通信装置B均需要具备隔离执行模块(A1、B1),才能实现相互之间的认证以及完成数据安全传输。在可能的示例中,所述隔离执行模块本身实现了隔离可信的执行空间,以使外部请求无法访问隔离执行模块中的数据,从而保障了隔离执行模块中运行的数据的安全性,例如保护内部运行的程序无法被篡改。
在可能的示例中,所述隔离执行模块可以是基于可信运行环境中的可信容器实现的。所述可信运行环境可以是基于软件、电子硬件或软硬件结合的。基于高安全度考量,会通过硬件或硬软件结合来实现隔离执行模块。举例来说,所述电子硬件可以包括处理器(如CPU),以处理器安全为核心的硬件安全技术有例如虚拟化技术如Intel VT(Intelvirtualization technology)与AMD SVM(AMD secure virtual machine)技术;基于可信平台模块(trusted platform module,简称TPM)的可信计算技术如Intel TXT(Inteltrusted execution technology)、ARM处理器的嵌入式平台基于ARM Trust Zone安全扩展实现的TEE(Trusted Execution Environment)等。
在一优选实施例中,所述可信运行环境可以包括:支持SGX技术的硬件和/或软件环境。具体的,所述硬件包括具备SGX指令集扩展的中央处理器(CPU),而软件环境则包括:支持SGX技术运行的内存管理器、BIOS、驱动程序(如Intel ME)、运行程序(如英特尔SGX平台软件(PSW)、SGX SDK等)。相应的,在此实施例中,所述隔离执行模块可以是基于SGX技术(software guard extensions,软件)实现的可信容器,如在内存空间中分配被保护物理内存区域EPC。该可信容器中对应应用程序创建enclave,enclave外部的应用程序不能访问enclave的内存,enclave内部的代码在EPC范围内只能访问属于自身的内存区域,而不能访问其他enclave的内存,以及一些其它的安全机制,有效保护enclave中的代码不会被盗取隐私或篡改。
需特别说明的是,基于SGX技术实现隔离执行模块的方式仅为举例,在实际应用中可以通过其它方式来进行替代,并且对应不同的平台实现亦不同,例如嵌入式平台就可以采用TEE来实现隔离执行模块,或者可信执行环境(TEE)故并非以SGX技术为限。
另外需说明的是,隔离执行模块之间的通信并不需要限定是端到端的,而可以是通过对应的应用程序间的通信来实现通信。例如,通信装置A上的应用程序A2对应的隔离执行模块A1,通信装置B上的应用程序B2对应的隔离执行模块B1,隔离执行模块A1将待发送的数据传递给应用程序A2,并由A2传输给B2,再由B2传递给B1,从而实现A1到B1的数据传输。在之后的实施例的举例流程中,同样适用这样的场景。
在图1的实施例中,通信装置A具备的隔离执行模块为第一方,以通信装置B具备的隔离执行模块为第二方,两者之间进行以下交互流程:
步骤S101:在执行任务时,第一方同第二方间相互可信认证以判断对方是否可信。
所述任务的执行会需要第一方和第二方之间进行通信,如需要第一方传输数据至第二方,或者需要第二方传输数据给第一方。在一些实施例中,所述任务可以包括计算任务。示例性地,在一种计算任务中,第一方要将数据发给第二方;该数据可以是待计算数据,第二方根据该待计算数据进行计算并得到计算结果,所述计算结果可以由第二方向第三方传输,也可以传输给第一方;又或者,在另一种计算任务中,第二方要将数据发给第一方。
为保障第一方和第二方之间通信时的安全性,所述第一方和第二方之间会进行加密通信,即利用所持有的密钥进行加密及解密。如果在第一方和第二方位于同一设备的场景中,则两者间可以采用对称密钥进行加密及解密;而如果在第一方和第二方属于网络中不同通信设备,而要相互进行加密通信时,可以各自持有公私钥对,相互间通过各自的公私钥对进行加密通信。可以理解的是,在非对称加密机制中,采用公钥加密而通过私钥解密,或者私钥签名而通过公钥验签。
举例来说明验签过程,第一方可以将待传输的数据C通过其私钥加密生成签名C’,并将C和C’发给第二方,第二方利用第一方的公钥解密接收到的C’得到C1,将C和C1进行对比,若两者比对一致,则说明签名C’可信。
在一些实施例中,每个隔离执行模块所持有的公私钥对可以由其自身生成,并可以存储在其内部存储区域而令公私钥对始终无法被外部的非可信环境中的程序访问到,以尽可能保障所述公私钥对的安全性。在一些实施例中,所述公私钥对可以被重复使用;或者,所述公私钥对也可以具有生命周期,该公私钥对的生命周期可以是自行设定,例如x分钟、x小时、x天、x周、x月或x年等,或者也可以是根据任务的生命周期来确定,例如在某一次的任务中使用并在该任务完成时失效等。
第一方或第二方要获得对方的公钥才能进行签名验证,而如何保证所获得的对方的公钥的可信性又是一个问题。在一些实施例中,隔离执行模块具有公钥证书,所述公钥证书可以由证书管理服务端发放、并在所述相互可信认证中供对方验证,若该公钥证书验证可信,则说明对应的公钥可信。其中,所述公钥证书中包括所述隔离执行模块的公钥、及可信计算基础信息。其中,在SGX技术中,可信计算基础信息可以为TCB信息,即可信计算基(trusted computing base),当然如果采用其它安全技术可以为相应的其它信息所替换,并非限制于SGX技术。
在一些实施例中,所述可信计算基础信息包括:所述隔离执行模块的身份特征信息、及运行环境信息。举例来说,所述身份特征信息包括例如CPU的身份标识信息、CPU所在平台的身份标识信息、运行软件的版本号及可信容器唯一的测量信息等中的一种或多种组合的原始信息或其映射信息。其中,所述CPU所在平台的身份标识信息例如为CPU芯片的CPUID的原始信息或其映射信息,所述映射指的是例如为哈希、或其它信息转换的算法;所述CPU所在平台的身份标识信息,例如为CPU所在计算机的主板ID、硬盘ID、内存ID、MAC地址、唯一的IP地址、操作系统密钥等中的任意一种或多种组合的原始信息或其映射信息;所述可信容器唯一的度量信息等,可以通过对可信容器中被加载的代码和数据进行度量得到,用于被参考以确定代码和数据的完整性或未被篡改等;而所述运行环境信息可以是隔离执行模块所在的软硬件环境的配置信息。
在一些实施例中,公钥证书内的可信计算基础信息是基于公私钥生成时的可信计算基础信息得到的。可以理解的是,通过生成可信计算基础信息就能表示当时隔离执行模块的特征,从而用于隔离执行模块的可信验证,安全可靠。
在一些实施例中,在所述相互可信认证的过程中,通信装置A和B间相互通信以在双方的隔离执行模块间传输所述相互可信认证所需要的资料(如公钥证书、远程证明信息等)以供对方验证。其中,所述远程证明信息例如为SGX远程验证过程中产生的Quote等,其中也包含所述可信计算基础信息可供验证,所述远程证明信息可以作为存证数据被可信地存储,例如存储在区块链系统或其它可信存储介质中,以在将来需要查证相关的事件(例如用户行为等)时被访问;此外可选的,第一方或第二方的远程证明信息和公钥证书中的可信计算基础信息之间也可以进行比对是否一致,以验证该方是否符合证书持有方的软硬件计算环境的特征而是否可信。
若第一方同第二方间相互可信认证为可信,则进入步骤S102;而只要第二方和第二方中有一方不可信,则不再继续流程。
步骤S102:若第一方同第二方间相互可信认证为可信,则第一方通过与第二方间形成安全传输通道,以对应所述任务执行由第一方向第二方传输数据、或执行由第二方向第一方传输数据。
在一些实施例中,在每个安全传输通道形成时,第一方同第二方间密钥协商以得到所述安全传输通道的共享密钥,用于对所述安全传输通道所传输的数据进行加密及解密。
示例性地,所述密钥协商可以例如为DH Key Exchange算法等;所述共享密钥可以实现第一方和第二方之间对所传输数据的对称加密。举例来说,在执行第一任务时,若第一方和第二方之间相互认证可信而产生安全传输通道,第一方使用共享密钥SK1对数据data进行加密,生成密文Enc(data)后传输给第二方,第二方使用该共享密钥SK1解密该密文,得到数据data。
在一些实施例中,为增强安全性,可以对每次执行任务时,第一方和第二方之间相互认证可信的结果设置有效时间。示例性地,该有效时间可以与该任务的生命周期一致。举例来说,当第一任务为第一方传输数据给第二方时,双方之间进行相互可信认证且得到了第一可信结果,当任务执行完成时,该第一可信结果失效;之后,若要执行第二任务,如第二方传输数据给第一方时,双方之间再进行相互可信认证并得到第二可信结果,当第二任务执行完成时,该第二可信结果失效。
同理可选的,对所述共享密钥也可以设置有效时间,例如与所执行任务的生命周期一致。例如,在执行所述第一任务时生成的是共享密钥1,那么第一任务完成后,共享密钥1失效;在执行所述第二任务时,需要再生成共享密钥2,当第二任务完成后,共享密钥2失效。
在一些具体应用场景中,通信节点之间的安全传输可以采用本申请的方法。尤其在分布式系统中,不同节点之间的数据安全传输也可以采用本申请的方法。举例来说,在多方安全计算(MPC)的应用场景中,通信装置A可以作为例如多方安全计算节点,通信装置B可以作为数据源;若数据源要将待计算数据发给多方安全计算节点进行计算,则当两者的隔离执行模块之间互证可信时,通信装置B将待计算数据安全地发给通信装置A,以供计算。又或者,所述通信装置A是多方安全计算节点,通信装置B是计算结果获取节点,则通信装置A计算获得结果后,可将计算结果安全发送给B等。
在上述应用场景中,可能会用到的多方安全计算的技术有秘密共享(secretsharing)、同态加密(homomorphic encryption)、及混淆电路(Garbled circuits)等中的一种或多种组合,则所述待计算数据包括:用于秘密共享计算的分片数据、用于同态加密计算的加密数据、以及基于混淆电路的混淆结果或混淆表中的一种或多种。
如图2所示,展示本申请实施例中通信装置的电路结构示意图。
所述通信装置200包括:
通信器201,用于与外部通信。在一些实施例中,所述通信器基于有线通信电路和/或无线通信电路实现,所述有线通信电路例如包括:以太网的有线网卡、USB接口电路、RS232接口电路等;所述无线通信电路例如包括:移动网络(3G、4G、5G等)模块、近距离无线通信模块WiFi、蓝牙等)。
存储器202,包括但不限于RAM、ROM或其它类型的存储介质。
处理器203,耦接于所述存储器202及通信器201,用于运行指令以在所述存储器202形成隔离执行模块204,图中以虚线箭头示例性地表示。所述隔离执行模块204可以用于作为图1实施例中的第一方或第二方。所述通信装置200可以用于作为图1实施例中的通信装置A或B。
在本实施例中,所述处理器203需要支持隔离执行模块204的建立,例如集成有支持隔离执行模块的安全交互机制的指令集等。以SGX技术举例来说,从Intel 6代i5及i7中的一些型号、及Xeon E3 V5的一些型号开始往后的中央处理器(CPU)才支持SGX技术,例如Core i7-6700K SR2L0,/>E3-1280 v5 SR2LC等。
具体的,在SGX技术中,在存储器中划分一安全隔离的内存区域以运行enclave,用于实现所述隔离执行模块。当然,也可以通过其它安全技术来实现隔离执行模块,并非以此为限。
在一些实施例中,在第一方和第二方进行相互可信认证的过程中,可以通过证书管理服务端来进行公钥证书的验证,并通过远程验证服务端进行可信计算基础信息的验证,从而判断对方是否可信。
例如图3所示,展示本申请实施例中数据安全传输系统的结构示意图。
本实施例是基于图1实施例的扩展实施例,除了通信装置A和B外,还展示了证书管理服务端C和远程验证服务端D。通信装置A和B可以与证书管理服务端C通信而将获取到的对方隔离执行模块的公钥证书传输给证书管理服务端C进行验证,而证书管理服务端C可以与远程验证服务端D通信以传输证书中的可信计算基础信息以进行验证;此外,通信装置A和B也可以与远程验证服务端D通信,以将对方隔离执行模块的远程证明信息(包含对方隔离执行模块的可信计算基础信息)发送给远程验证服务端D以进行认证。
当通信装置A中的第一方和通信装置B中的第二方之间通过相互可信认证而验证对方可信时,两者间建立所述安全传输通道,以用于第一方和第二方之间的数据安全传输。
所述通信装置A、B可以是具备支持隔离执行模块实现的软硬件环境、并具有数据处理能力和通信能力的电子装置实现。示例性地,所述电子装置可以由服务器/服务器组、台式机、笔记本电脑、智能手机、及平板电脑等中的任意一个实现,或者由其中多个通信连接成协同工作的分布式系统实现。所述证书管理服务端C和远程验证服务端D则可以通过服务器/服务器组实现,可以是基于中心化的架构,也可以是基于分布式的架构,例如公共云(PublicCloud)服务端与私有云(PrivateCloud)服务端,其中,所述公共或私有云服务端包括Software-as-a-Service(软件即服务,简称SaaS)、Platform-as-a-Service(平台即服务,简称PaaS)及Infrastructure-as-a-Service(基础设施即服务,简称IaaS)等。所述私有云服务端例如Intel服务端、阿里云计算服务平台、亚马逊(Amazon)云计算服务平台、百度云计算平台、腾讯云计算平台等等。
需特别说明的是,虽然在图3实施例中展示了远程验证服务端D,但是在实际应用时也可以将其验证远程证明信息的功能集成在其它设备中,例如所述证书管理服务端C等,故数据安全传输系统的结构并非以图3实施例为限。
如图4所示,展示本申请实施例中第一方或第二方公钥证书的证书请求与发放的流程示意图。此证书请求与发放的方法流程可以实现第一方向证书管理服务端申请公钥证书、或第二方向证书管理服务端申请公钥证书。
如图所示,本实施例中的流程包括:
步骤S401:在需要进行证书请求时,隔离执行模块获得公私钥对,并用于生成签名。
示例性地,所述隔离执行模块的公私钥对可以由其自身生成,在一些示例中也可以由可信应用程序生成并传递给它;所述隔离执行模块可以是对应于需要进行证书请求的应用程序所建立并触发其工作,且通过该应用程序进行数据收发。其中,所述签名可以通过隔离执行模块的私钥对被签名内容进行加密得到。所述被签名内容中包括所述隔离执行模块的可信计算基础信息、公私钥对中的公钥、及特征标识信息。在一些实施例中,所述特征标识信息可以是随机信息,例如随机数等。其中,所述公私钥对可以是RSA密钥,其长度例如为1024、2048、3072、7680、15360比特中的任意一种。
更直观地举例,若将隔离执行模块生成的公钥表示为Pubkey,可信计算基础信息表示为TCB,特征标识信息表示为Nonce,并通过Sig来表示签名,则该签名可以表示为Sign(Pubkey,TCB,Nonce,...),以下简单表示为Sig。
步骤S402:隔离执行模块生成包括所述签名及其被签名内容的公钥证书申请请求,公钥证书申请请求被发送给证书管理服务端。
示例性地,隔离执行模块可以通过本地应用程序转发所述公钥证书申请请求给证书管理服务端。
更直观地举例,该公钥证书申请请求可以表示为certificate request(Pubkey,TCB,Nonce,Sig,...)
步骤S403:证书管理服务端使用公钥证书申请请求中的公钥验证所述签名。
具体的,通过该公钥证书申请请求中的公钥来解开签名Sig,将所得到的解密内容与公钥证书申请请求中的被签名内容Pubkey,TCB,Nonce进行比对,若比对一致,则表明签名可信,继续执行步骤S404;若比对不一致,则表明签名不可信而不继续证书发放流程。
步骤S404:证书管理服务端对应接收到的所述公钥证书申请请求生成公钥证书请求标识并反馈给所述隔离执行模块。
示例性地,隔离执行模块所在的通信装置的本地应用程序转发所述公钥证书请求标识给隔离执行模块。
示例性地,所述公钥证书请求标识可以是随机信息,例如随机数等,通过r1来表示。
步骤S405:隔离执行模块获得含有证书管理服务端分配的公钥证书请求标识的引用信息。
示例性地,所述引用信息为数据结构体,其中携带有公钥证书请求标识;在SGX技术中,该引用信息可以是Quote数据结构体。所述引用信息用于进一步封装内容而生成远程证明信息;由于远程证明信息可以对外公开,所以对引用信息的生成环境的安全度要求并不是非常高;故引用信息可以由应用程序生成并传递给隔离执行模块;当然,所述引用信息也可以由隔离执行模块自行生成,而非以前述为限。
步骤S406:隔离执行模块通过所述引用信息封装所述公钥证书请求标识、所述隔离执行模块的可信计算基础信息、及所述签名以形成远程证明信息。
更直观地举例,所述远程证明信息可以表示为Quote,其内除了r1之外,还封装了Pubkey,Sig,故具体内容表示为Quote(r1,Pubkey,Sig,...)。
步骤S407:隔离执行模块对外发送所述远程证明信息以被验证。
步骤S408:证书管理服务器接收该远程证明信息,并获取该远程证明信息的验证结果。
示例性地,所述证书管理服务器在接收到远程证明信息时,执行步骤S4081:验证其中的公钥证书请求标识是否与之前自身生成的一致,从而防范重放攻击(replyattack)。
示例性地,在本实施例中,步骤S408还可进一步包括:
步骤S4082:证书管理服务器将所述远程证明信息发给远程验证服务端;
步骤S4083:远程验证服务端远程证明信息中获取可信计算基础信息(TCB)并验证TCB中的信息是否为支持隔离执行模块的硬件/软硬件运行环境信息,例如检查CPU信息、软件版本信息等是否支持隔离执行模块的建立、运行。
步骤S4084:所述远程验证服务端将远程证明信息的验证结果反馈给证书管理服务端。
需说明的是,在其它的实施例中,所述远程验证服务端的功能可以集成至例如证书管理服务端等设备,则证书管理服务端本地即可进行验证,故并非以上述实施方式为限。
若所述远程证明信息验证通过,则继续步骤S409;否则,不再继续后续流程。
步骤S409:所述证书管理服务端生成公钥证书并发放给隔离执行模块。
示例性地,所述公钥证书中具体包含申请证书的隔离执行模块的公钥,以及其可信计算基础信息;更直观地,所述公钥证书certificate的内容可以表示为certificate(Pubkey,TCB,....)。
示例性地,所述公钥证书可以是证书管理服务端使用其自身的公私钥对中的私钥对被签名内容加密得到的,而证书管理服务端的公钥可以发布到外部,以供解开证书。
示例性地,所述公钥证书可以由应用程序转发给所述隔离执行模块;进一步的,所述隔离执行模块将该公钥证书安全地存储于内部存储空间中,以免为外部篡改而作为可信证明资料。
在一些实施例中,所述证书管理服务端可以从远程验证服务端定期同步更新TCB信息,以用于验证公钥证书是否有效。举例来说,如果某个通信装置发生了硬件或软件的更换,当证书管理服务端根据远程验证服务端提供的该通信装置更新后的TCB信息,发现通信装置更换后的硬件或软件信息不再可信(例如不再支持隔离执行模块的建立和运行)时,相应的公钥证书将会被吊销,从而避免此公钥证书还能被利用的安全性问题。
如图5所示,展示本申请实施例中隔离执行模块间进行相互可信认证的流程示意图。该流程可以应用于例如图3所示的数据安全传输系统中。以进行通信的两个隔离执行模块分别为第一方和第二方,则所述流程具体包括:
步骤S501:第一方产生认证请求以传输至第二方。
其中,所述认证请求包括:第一方的第一签名及其被签名内容;所述第一签名的被签名内容包括认证请求标识、第一方公钥证书、及第一特征标识信息。
示例性地,在SGX应用场景中,第一方对应应用程序1建立相应的enclave,根据对触发相互可信认证的需求而初始化;所述认证请求标识可以由该应用程序1所产生并传递给第一方;所述第一方公钥证书中包括:第一方的公钥及第一方的可信计算基础信息;所述第一特征标识信息可以是由第一方随机生成的随机信息,例如随机数等。
第一方通过其公私钥对中的私钥对该认证请求标识、第一方公钥证书、及第一特征标识信息进行签名,以得到所述第一签名。进一步示例性地,第一方可以将该签名及其被签名内容发给应用程序1,应用程序1产生包含该签名及其被签名内容的认证请求给第二方对应的应用程序2,由应用程序2再发给第二方。
为更利于直观描述,可以采用符号替代表示上述术语。第一方的公钥表示为Pubkey1,第一方的私钥表示为Privatekey1,第一签名表示为Sig1(具体内容例如为Sign(RequestedID,Nonce1,Cet1,...),其中sign表示签名),第一方公钥证书表示为Cet1,第一方的可信计算基础信息表示为TCB1,第一特征标识信息表示为Nonce1,认证请求标识标识为RequestedID,则被签名内容表示为RequestedID,Nonce1,Cet1,...。
步骤S502:第二方通过提取自所述第一方公钥证书的第一方公钥对所述第一签名进行验证。
在一些实施例中,从公钥证书提取公钥的方式有很多,例如公钥证书是由其签发者通过其持有的私钥进行加密得到的,那么如果签发者的公钥对外公开,则获得其公钥即可解开公钥证书得到其中的公钥值;其它从证书获得公钥的方式此处不作一一列举。
当第二方得到第一方公钥后,则可以用其解开所述第一签名,从而得到其中的内容,以与所述认证请求中的被签名内容RequestedID,Nonce1,Cet1,...进行比对,若比对一致则说明第一签名可信,进而执行步骤S503;否则,验证第一签名不可信,不执行后续认证流程。
步骤S503:在所述第一签名验证通过的情况下,第二方传输所述第一方公钥证书至所述证书管理服务端进行验证。
在此步骤中,第二方要传输第一方公钥证书至证书管理服务端时,可以不通过应用程序2来作为转发方,而由自身通过所在的通信装置将该第一方公钥证书发送至证书管理服务端,而证书管理服务端验证该第一方公钥证书的证书验证结果也不经应用程序2转发,而通过通信装置接收后传递给第二方。
步骤S504:所述证书管理服务端对接收到的第一方公钥证书进行验证。
所述证书管理服务端可以是证书发放方而具有证书发放记录,因此,在步骤S504中可以包括步骤S5041:根据所述证书发放记录(可以记录证书对应的标识,例如编号或根据证书生成的哈希等)来核实该第一方公钥证书是否为其发放的有效证书,如果没有记录则证书不有效;另外,在本实施例的步骤S504中,除了证书管理服务端验证第一公钥证书本身是否有记录外,还可以包括:
步骤S5042:证书管理服务端将第一公钥证书中的可信计算基础信息发送给远程验证服务端进行验证。
步骤S5043:所述远程验证服务端将可信计算基础信息的验证结果发给证书管理服务端。
示例性地,所述远程验证服务端可以验证接收到的第一方的可信计算基础信息,以验证对应的CPU是否支持SGX技术、或者SGX技术相关的软件版本是否合适等信息,以生成关于该可信计算基础信息是否有效的验证结果,并发还给所述证书管理服务端。
所述证书管理服务端根据所述第一公钥证书本身是否有效,以及其中的可信计算基是否有效的验证结果得到第一公钥证书是否验证通过的结果。
步骤S505:证书管理服务端反馈第一公钥证书的证书验证结果给第二方。
示例性的,若第一公钥证书的证书验证结果通过,则继续步骤S506,否则不再继续流程。
步骤S506:在所述第一方公钥证书验证通过的情形下,第二方产生包含第二签名及其被签名内容的第一回复消息以传输至所述第一方。
本步骤中,第二方在验证第一方可信的情形下,将自身的第二方公钥证书传输给对方验证来证明自身身份可信。
所述第二签名是通过第二方所持有的公私钥对中的私钥加密的,第二签名中的被签名内容包括:第二方公钥证书、第二方远程证明信息、及第二特征标识信息。
其中,与第一方类似的是,对于第二方来讲,其第二方公钥证书中可以包括第二方的公钥、以及第二方的可信计算基础信息;可选的,该第二方公钥证书中的可信计算基础信息可以是根据第二方公私钥对生成时的软硬件环境信息生成的。
所述第二方远程证明信息包括:所述第一特征标识信息、认证请求标识、及第二方的可信计算基础信息。在SGX应用场景中,所述第二方远程证明信息即为第二方生成的Quote,用于供第一方同第二方证书结合来验证第二方是否可信。
所述第二特征标识信息可以是第二方生成的随机信息,例如随机数等。
为更利于直观描述,可以采用符号替代表示上述术语。第二方的公钥表示为Pubkey2,第二方的私钥表示为Privatekey2,第二方远程证明信息表示为Quote2(具体内容例如为Quote(RequestedID,Nonce1,TCB2,...)),第二签名表示为Sig2(具体内容例如为Sign(Nonce2,Quote2,Cet2,...),当然签名中还可以包含其他内容),第二方公钥证书表示为Cet2,第一方的可信计算基础信息表示为TCB2,第一特征标识信息表示为Nonce2,认证请求标识标识为RequestedID,则被签名内容表示为Nonce2,Quote2,Cet2,...。所述第一回复消息中的内容包括:Nonce2,Quote2,Cet2,Sig2,...。
步骤S507:第一方通过提取自第二方公钥证书中的第二方公钥对所述第二签名进行验证。
与之前第二方验证第一签名相似的是,第一方通过第二方公钥解开第二签名,将得到的内容与第一回复消息中的被签名内容进行比对,若比对一致,则认为签名可信,继续步骤S508。
步骤S508:在所述第二签名验证通过的情形下,第一方将第二方公钥证书传输至证书管理服务端进行验证。
在此步骤中,第一方要传输第二方公钥证书至证书管理服务端时,可以不通过所述应用程序1来作为转发方,而由自身通过所在的通信装置将该第一方公钥证书发送至证书管理服务端,而证书管理服务端验证该第一方公钥证书的证书验证结果也不经应用程序1转发,而通过通信装置接收后传递给第一方。
步骤S509:所述证书管理服务端对接收到的第二方公钥证书进行验证。
所述证书管理服务端可以是证书发放方而具有证书发放记录,因此,在步骤S509中可以包括步骤S5091:根据所述证书发放记录来核实该第二方公钥证书是否为其发放的有效证书,如果没有记录则证书不有效;另外,在本实施例的步骤S509中,除了证书管理服务端验证第二方公钥证书本身是否有记录外,还可以包括:
步骤S5092:证书管理服务端将第二方公钥证书中的可信计算基础信息发送给远程验证服务端进行验证。
步骤S5093:所述远程验证服务端将可信计算基础信息的验证结果发给证书管理服务端。
示例性地,所述远程验证服务端可以验证接收到的第二方的可信计算基础信息,以验证对应的CPU是否支持SGX技术、或者SGX技术相关的软件版本是否合适等信息,以生成关于该可信计算基础信息是否有效的验证结果,并发还给所述证书管理服务端。
步骤S510:证书管理服务端反馈第二方公钥证书的证书验证结果给第一方。
若所述第二方公钥证书验证通过,则进至步骤S511;否则,可认为第二方不可信,而不再继续流程。
步骤S511:第一方对第二方远程证明信息进行验证。
需说明的是,若要认定一方可信,则需要对其公钥证书和远程证明信息都进行验证通过,故可以理解的是,步骤S511和步骤S508之间的先后顺序并不限定;在一些实施例中,可以在第二方公钥证书验证通过之后,再验证第二方远程证明信息;或者,在另一些实施例中,也可以先验证第二方远程证明信息,再验证第二方公钥证书;又或者,在另一些实施例中,为加快速度,可以并行进行第二方公钥证书和第二方远程证明信息的验证。
示例性地,在本实施例中,该第二方远程证明信息可以由远程验证服务端来进行验证,则所述步骤S511具体包括:
步骤S5111:第一方将所述第二方远程证明信息发送到远程验证服务端。
示例性地,第一方可以通过所在通信装置直接将第二方远程证明信息发给远程验证服务端;
或者,第一方可以通过所在通信装置将第二方远程证明信息发给证书管理服务端,并由证书管理服务端转发给远程验证服务端。
步骤S5112:所述远程验证服务端验证第二方远程证明信息中的可信计算基础信息。
原理与前述实施例相似,所述远程验证服务端可以验证例如可信计算基础信息中的硬件/软硬件运行环境信息是否支持隔离执行模块的建立及运行等。
步骤S5113:所述远程验证服务端反馈第二方远程证明信息的验证结果给第一方。
若验证通过,则继续步骤S512;否则,不再继续流程。
步骤S512:第一方根据第二方公钥证书和第二方远程证明信息判断第二方是否可信。
示例性地,所述第二方远程证明信息中可以携带有认证请求标识(即RequestID)和第一特征标识信息(即Nonce1),而步骤S512中可以包括步骤S5121:对RequestID和Nonce1进行验证的步骤,以确保该第二方远程证明信息是对应于此次相互可信认证的、而且该第二方远程证明信息是由第二方对应第一方之前提供的第一特征标识信息生成的,从而防范在通信会话过程中重放攻击(reply attack)的问题。
再者,示例性地,虽然第二方公钥证书和第二方远程证明信息都验证通过,但是仍可能由于例如第二方的软硬件运行环境发生了变化,从而令两者中的第二方的可信计算基础信息不同的情形;故如果要确保第二方可信,则第二方公钥证书和第二方远程证明信息中的可信计算基础信息应当一致。因此,步骤S512中,还包括步骤S5122:第一方可以将验证通过的第二方公钥证书和第二方远程证明信息中的可信计算基础信息进比对,若比对一致则认为第二方可信,进至步骤S513;否则,认为不可信。
步骤S513:第一方产生第一方远程证明信息、及包括所述第一方远程证明信息的第三签名,以传输包括所述第三签名及其被签名内容的第二回复消息至第二方。
所述第三签名可以通过第一方的私钥加密得到,其中被签名内容包括所述第一方远程证明信息。其中,所述第一方远程证明信息包括:所述第二特征标识信息、认证请求标识、及第一方的可信计算基础信息。
为更利于直观描述,可以采用符号替代表示上述术语。第一方远程证明信息表示为Quote1(具体内容表示为Quote(RequestedID,Nonce2,TCB1,...)),第三签名表示为Sig3(具体内容例如为Sign(Quote1,...))。
步骤S514:第二方通过所述第一方公钥从第三签名获取第一方远程证明信息。
步骤S515:第二方验证所述第一方远程证明信息。
具体的,步骤S515包括:
步骤S5151:第二方将所述第一方远程证明信息发送到远程验证服务端;
步骤S5152:所述远程验证服务端验证第一方远程证明信息中的可信计算基础信息;
步骤S5153:所述远程验证服务端反馈第一方远程证明信息的验证结果给第二方。
若第一方远程证明信息验证通过,则执行步骤S516。
步骤S516:第二方根据第一方公钥证书和第一方远程证明信息判断第一方是否可信。
示例性地,所述第一方远程证明信息中可以携带有认证请求标识(即RequestID)和第二特征标识信息(即Nonce2),而步骤S516中可以包括步骤S5161:对RequestID和Nonce2进行验证的步骤,以确保该第一方远程证明信息是对应于此次相互可信认证的、而且该第二方远程证明信息是由第一方对应第二方之前提供的第二特征标识信息生成的,从而防范在通信会话过程中重放攻击(reply attack)的问题。
再者,示例性地,虽然第一方公钥证书和第一方远程证明信息都验证通过,但是仍可能由于例如第一方的软硬件运行环境发生了变化,从而令两者中的第一方的可信计算基础信息不同的情形;故如果要确保第一方可信,则第一方公钥证书和第一方远程证明信息中的可信计算基础信息应当一致。因此,步骤S516中,还包括步骤S5162:第二方可以将验证通过的第一方公钥证书和第二方远程证明信息中的可信计算基础信息进比对,若比对一致则认为第一方可信,进至步骤S517;否则,认为不可信可以理解的是,在图5的相互认证流程中,第一方和第二方通过可信的第三方的证书管理服务端(以及远程验证服务端等)来实现验证对方公钥证书及远程证明信息;而且,可以进一步进行验证通过的公钥证书及远程证明信息的可信计算基的核对来确认对方是否可信。在一些实施例中,所述第一方远程证明信息和/或第二方远程证明信息可以作为存证数据被可信地存储,例如存储在区块链系统或其它可信存储介质中,以在将来需要查证相关的事件(例如用户行为等)时被访问。
步骤S517:第二方可以发送ACK确认消息给第一方,以确认建立两者间的安全传输通道。
需说明的是,公钥证书的发放和验证的两种功能也可以不必都集成在同一个证书管理服务端上,也是可以由不同的服务端执行。
如前所述,示例性地,第一方和第二方之间使用共享密钥进行数据的安全传输,而共享密钥的密钥协商流程可以嵌入在上述相互可信认证的流程中。
举例来讲,在步骤S506中,在第二方验证第一方公钥证书通过后而发送的第一回复消息中,第二签名的被签名内容还可以包含该共享密钥的第一碎片信息和相关的公共质数;更直观的,第一碎片信息可以表示为gb MOD N,公共质数即N、g,b是第二方的私有质数;则所述第一回复消息的内容包括Nonce2,gb MOD N,g,N,Quote2,Sig2,Sig2生成时的被签名内容中包含了gb MOD N,g,N。
之后,在步骤S512中,当第一方验证第二方可信时,其所回复的第二回复消息中的第三签名的被签名内容中还包含了第二碎片信息;更直观的,第二碎片信息可表示为gaMOD N,则第二回复消息的内容包括ga MOD N,Quote1,Sig3,Sig3生成时的被签名内容中包含了ga MOD N。
根据上述流程,第一方和第二方均得到了第一碎片信息和第二碎片信息,都可以计算得到共享密钥gab MOD N,以用于通过安全传输通道进行数据安全传输。
需特别说明的是,如图2所展示的通信装置所实现的隔离执行模块,也可以用于作为图5中的第一方或第二方而执行图5中对应的流程步骤。
如图6所示,展示本申请一实施例中电子装置的电路结构示意图。
所述电子装置600包括:
通信器601,用于与外部通信。示例性地,所述通信器包括一或多个有线或无线通信电路,所述有线通信电路包括例如有线以太网卡、USB等,所述无线通信电路包括例如无线网卡(WiFi)、2G/3G/4G/5G移动通信模块、蓝牙、红外等。
存储器602,存储有至少一计算机程序。示例性地,所述存储器可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网、广域网、存储局域网等,或其适当组合。存储器控制器可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。
处理器603,耦接于所述存储器602及通信器601,用于运行所述至少一计算机程序,以执行相应功能。示例性地,所述处理器603可操作地与存储器602耦接。所述处理器可包括一个或多个通用微处理器、一个或多个专用处理器、一个或多个现场可编程逻辑阵列、或它们的任何组合。
本实施例中的电子装置600可以应用于实现前述实施例(例如图3、图4、图5)中的证书管理服务端或者远程验证服务端。
示例性地,在电子装置600应用于证书管理服务端而执行证书发放方法时,其中的处理器603可以运行存储器602中的计算机程序,以执行流程:接收公钥证书申请请求;其中,所述公钥证书申请请求中包括签名及其被签名内容,所述签名是由隔离执行模块使用其公私钥对加密生成的,所述签名包括所述隔离执行模块的可信计算基础信息、所述公私钥对中的公钥、及特征标识信息;在使用所述公钥验证所述签名通过的情形下,对应所述公钥证书申请请求生成公钥证书请求标识并发送;获得对应所述公钥证书请求标识形成的远程证明信息;其中,所述远程证明信息中包括所述公钥证书请求标识、隔离执行模块的可信计算基础信息、及所述签名;获得所述远程证明信息的验证结果并在验证通过后生成公钥证书并发放。
或者示例性地,在电子装置600应用于证书管理服务端而执行证书验证方法时,其中的处理器603可以运行存储器602中的计算机程序,以执行流程:接收相互通信的各隔离执行模块中的验证方对被验证方公钥证书发起的公钥证书验证请求;验证所述公钥证书是否有效;在公钥证书有效的情形下,获得公钥证书中的可信计算基础信息的验证结果;根据可信计算基础信息的验证结果形成证书验证结果,发送给所述验证方。
或者,示例性地,在电子装置600应用于远程验证服务端而执行信息验证方法时,其中的处理器603可以运行存储器602中的计算机程序,以执行流程:验证来自通信装置的隔离执行模块的公钥证书或远程证明信息中的可信计算基础信息;发送验证结果。
由于在之前的实施例中已对上述示例性的流程中所涉及的具体实现的技术细节进行了阐述,因此,此处不作重复赘述。
需特别说明的是,上述方法流程的执行主体并非限制于仅在证书管理服务端或远程验证服务端,在一些实施例中,两个服务端可根据实际需求而在软硬件上部分共用或整合为一;或者,可以在两个服务端的基础上,再增加其它的通信设备来它们所执行的部分功能亦可;或者,由于两个服务端皆可以又一或多个节点(例如服务器或服务器组)构成,因此,在有多个节点的情况下,服务端所执行的多项工作皆可以根据实际需求加以分解由所属的各个节点来分别完成,这些实施方式皆在本申请的保护范围之内。
由此,如图7所示,展示本申请实施例中证书发放系统的功能模块示意图。示例性地,所述证书发放系统700可以实现于前述实施例中的证书管理服务端;所述证书发放系统700中的各个功能模块可以通过软件/硬件/软硬件结合的方式实现,例如通过图6实施例中的电子装置中的处理器运行计算机程序实现。
所述证书发放系统700包括:第一接收模块701、第一发送模块702、及第一处理模块703。
所述第一接收模块701,用于接收公钥证书申请请求;其中,所述公钥证书申请请求中包括签名及其被签名内容,所述签名是由隔离执行模块使用其公私钥对加密生成的,所述签名包括所述隔离执行模块的可信计算基础信息、所述公私钥对中的公钥、及特征标识信息;
所述第一发送模块702,用于在使用所述公钥验证所述签名通过的情形下,对应所述公钥证书申请请求生成公钥证书请求标识并发送;
所述第一接收模块701,用于获得对应所述公钥证书请求标识形成的远程证明信息;其中,所述远程证明信息中包括所述公钥证书请求标识、隔离执行模块的可信计算基础信息、及所述签名;
所述第一接收模块701,用于获得所述远程证明信息的验证结果;
所述第一处理模块703,用于在所述远程证明信息验证通过后,生成公钥证书;
所述第一发送模块702,用于发送所述公钥证书。
示例性地,所述隔离执行模块在接收到所述公钥证书后,可以将其被安全存储于内部存储区域中,以用于在例如隔离执行模块之间的相互可信认证时使用。
示例性地,获得所述远程证明信息的验证结果,包括:将远程证明信息发给远程验证服务端并获得远程验证服务端对远程证明信息中的可信计算基础信息的验证结果。
示例性地,所述远程证明信息可以用于作为存证数据被可信地存储,例如存储在区块链或其它安全存储介质。
由于在之前的实施例中(例如图3、图4、图5对应实施例)已对图7实施例中所涉及的具体实现的技术细节进行了阐述,因此,此处不再对其它技术细节进行作重复赘述。
如图8所示,展示本申请实施例中证书验证系统的功能模块示意图。示例性地,所述证书验证系统800可以实现于前述实施例中的证书管理服务端;所述证书验证系统800中的各个功能模块可以通过软件/硬件/软硬件结合的方式实现,例如通过图6实施例中的电子装置中的处理器运行计算机程序实现。
所述证书验证系统800包括:第二接收模块801、第二发送模块802、及第二处理模块803。
所述第二接收模块801,用于接收相互通信的各隔离执行模块中的验证方对被验证方公钥证书发起的公钥证书验证请求;
所述第二处理模块803,用于验证所述公钥证书是否有效;在公钥证书有效的情形下,获得公钥证书中的可信计算基础信息的验证结果;根据可信计算基础信息的验证结果形成证书验证结果;
所述第二发送模块802,用于发送所述证书验证结果给所述验证方。
其中,所述各隔离执行模块例如为前述实施例中的第一方和第二方,而当第一方验证第二方身份是否可信时,第一方作为验证方而第二方作为被验证方;当第二方验证第一方身份是否可信时,第二方作为验证方而第一方作为被验证方。
示例性地,所述公钥证书中包括所述隔离执行模块的公钥、及可信计算基础信息。
示例性地,所述可信计算基础信息包括:所述隔离执行模块的身份特征信息、及运行环境信息。
示例性地,所述公钥证书中的可信计算基础信息是对应的隔离执行模块的公私钥对生成时得到的可信计算基础信息。
示例性地,所述公钥证书是通过在所述证书管理服务端的证书发放记录进行核实来验证的。
示例性地,所述获得公钥证书中的可信计算基础信息的验证结果,包括:所述证书管理服务端将公钥证书中的可信计算基础信息发给远程验证服务器,并接收远程验证服务器对该可信计算基础信息的验证结果。
示例性地,所述公钥证书是否有效的状态由证书管理服务端从远程验证服务端周期性同步可信计算基础信息来更新。
示例性地,所述远程证明信息作为存证数据被可信地存储。
由于在之前的实施例(例如图3、图4、图5对应实施例)中已对图8实施例中所涉及的具体实现的技术细节进行了阐述,因此,此处不再对其它技术细节进行作重复赘述。
如图9所示,展示本申请实施例中信息验证系统的功能模块示意图。示例性地,所述信息验证系统900可以实现于前述实施例中的远程验证服务端;所述信息验证系统900中的各个功能模块可以通过软件/硬件/软硬件结合的方式实现,例如通过图6实施例中的电子装置中的处理器运行计算机程序实现。
所述信息验证系统900包括:第三发送模块901、第三接收模块902、及第三处理模块903。
所述第三接收模块902,用于接收来自通信装置的隔离执行模块的公钥证书或远程证明信息中的可信计算基础信息;
所述第三处理模块903,用于验证来所述可信计算基础信息并生成验证结果;
所述第三发送模块901,用于发送所述验证结果。
由于在之前的实施例(例如图3、图4、图5对应实施例)中已对图9实施例中所涉及的具体实现的技术细节进行了阐述,因此,此处不再对其它技术细节进行作重复赘述。
前述实施例中所实现的各种功能,涉及计算机软件产品;该计算机软件产品存储在存储介质中,用于在被运行时使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤,例如图1、3、5等方法实施例中的各个流程步骤。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
在一个或多个示例性方面,本申请方法流程中涉及的计算机程序所描述的功能可以用硬件、软件、固件或者其任意组合的方式来实现。当用软件实现时,可以将这些功能作为一个或多个指令或代码存储或传送到计算机可读介质上。本申请所公开的方法或算法的步骤可以用处理器可执行软件模块来体现,其中处理器可执行软件模块可以位于有形、非临时性计算机可读写存储介质上。有形、非临时性计算机可读写存储介质可以是计算机能够存取的任何可用介质。
本申请上述的附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
综上所述,本申请的数据安全传输方法、证书相关方法、服务端、系统及介质,应用于不同通信装置所分别具备的隔离执行模块之间的数据安全传输;其中,第一通信装置的隔离执行模块和第二通信装置的隔离执行模块分别为相互通信的第一方和第二方,所述数据安全传输方法包括:在执行任务时,若第一方同第二方间相互可信认证为可信,则第一方通过与第二方间形成安全传输通道,以对应所述任务执行由第一方向第二方传输数据、或执行由第二方向第一方传输数据。本申请基于隔离执行模块其本身的可信性为基础,结合通信时隔离执行模块之间的相互可信认证为基础实现安全通信,解决现有技术中对通信方身份可信认证的问题,而能被可靠应用于网络远程通信。
综合上述内容,本申请可以提供以下实施例,以下通过各个序号表示不同实施例,例如1,2,3,...,42等表示实施例1,实施例2,实施例3,...,实施例42,这些实施例包括:
1.一种数据安全传输方法,应用于不同通信装置所分别具备的隔离执行模块之间的数据安全传输;其中,第一通信装置的隔离执行模块和第二通信装置的隔离执行模块分别为相互通信的第一方和第二方,所述数据安全传输方法包括:
在执行任务时,若第一方同第二方间相互可信认证为可信,则第一方通过与第二方间形成安全传输通道,以对应所述任务执行由第一方向第二方传输数据、或执行由第二方向第一方传输数据。
2.根据实施例1所述的数据安全传输方法,所述相互可信认证为可信的有效时间与任务的生命周期一致。
3.根据实施例1所述的数据安全传输方法,在每个安全传输通道形成时,第一方同第二方间密钥协商以得到所述安全传输通道的共享密钥,用于对所述安全传输通道所传输的数据进行加密及解密。
4.根据实施例3所述的数据安全传输方法,每个安全传输通道的共享密钥的有效时间与对应所执行的任务的生命周期一致。
5.根据实施例1所述的数据安全传输方法,所述第一方和第二方间通过各自的公私钥对进行加密通信。
6.根据实施例1或5所述的数据安全传输方法,隔离执行模块具有公钥证书,所述公钥证书由证书管理服务端发放、并在所述相互可信认证中供对方验证;其中,所述公钥证书中包括所述隔离执行模块的公钥、及可信计算基础信息。
7.根据实施例6所述的数据安全传输方法,所述可信计算基础信息包括:所述隔离执行模块的身份特征信息、及运行环境信息。
8.根据实施例6所述的数据安全传输方法,所述公钥证书中的可信计算基础信息是对应的隔离执行模块的公私钥对生成时得到的可信计算基础信息。
9.根据实施例6所述的数据安全传输方法,在所述相互可信认证的过程中,所述第一方或第二方作为被验证方时产生有远程证明信息;所述第一方及第二方中的验证方根据被验证方公钥证书在证书管理服务端的验证结果、以及被验证方的远程证明信息在远程验证服务端的验证结果,以获得被验证方公钥证书和远程证明信息中的可信计算基础信息的比较结果,据以判断被验证方是否可信。
10.根据实施例9所述的数据安全传输方法,所述公钥证书是通过在所述证书管理服务端的证书发放记录进行核实来验证的。
11.根据实施例9所述的数据安全传输方法,所述公钥证书是否有效的状态由证书管理服务端从远程验证服务端周期性同步可信计算基础信息来更新。
12.根据实施例9所述的数据安全传输方法,所述远程证明信息作为存证数据被可信地存储。
13.根据实施例9所述的数据安全传输方法,所述相互可信认证包括:
第一方产生认证请求以传输至第二方;其中,所述认证请求包括:第一方的第一签名及其被签名内容;其中,所述第一签名的被签名内容包括认证请求标识、第一方公钥证书、及第一特征标识信息;
第二方根据所述认证请求得到所述第一方公钥证书,以传输至所述证书管理服务端进行验证;
在所述第一方公钥证书验证通过的情形下,第二方使用第一方公钥验证所述第一签名;
在第一签名验证通过的情形下,第二方产生包含第二签名及其被签名内容的回复消息以传输至所述第一方第一回复消息;其中,所述第二签名包括:第二方公钥证书、第二方远程证明信息、及第二特征标识信息;其中,所述第二方远程证明信息包括:所述第一特征标识信息、认证请求标识、及第二方的可信计算基础信息;
在所述第二签名验证通过的情形下,第一方将公钥证书传输至证书管理服务端进行验证,并对第二方远程证明信息进行验证;
在所述第二方公钥证书验证通过的情形下,第一方使用第二方公钥验证所述第二签名、并验证所述第二方远程证明信息中内容;
若所述第二方公钥证书验证通过,在第一方根据第二方公钥证书和第二方远程证明信息判断第二方可信的情形下,第一方产生第一方远程证明信息、及包括所述第一方远程证明信息的第三签名,以传输包括所述第三签名及其被签名内容的第二回复消息至第二方;其中,所述第一方远程证明信息包括:所述第二特征标识信息、认证请求标识、及第一方的可信计算基础信息;
第二方通过所述第一方公钥从第三签名获取第一方远程证明信息,并在第二方根据第一方公钥证书和第一方远程证明信息判断第一方可信的情形下,形成所述安全传输通道。
14.根据实施例13所述的数据安全传输方法,所述第一特征标识信息及第二特征标识信息为随机信息。
15.根据实施例1所述的数据安全传输方法,每个所述隔离执行模块是基于可信运行环境中的可信容器实现的。
16.根据实施例15所述的数据安全传输方法,所述可信运行环境包括:支持SGX技术的硬件和/或软件环境。
17.根据实施例1所述的数据安全传输方法,所述第一方及第二方中的一者为多方安全计算节点,以接收另一者传输的待计算数据以进行多方安全计算。
18.根据实施例17所述的数据安全传输方法,所述待计算数据包括:用于秘密共享计算的分片数据、用于同态加密计算的加密数据、以及基于混淆电路的混淆结果或混淆表中的一种或多种。
19.一种证书请求方法,应用于通信装置中的隔离执行模块;所述证书请求方法包括:
获得公私钥对,并用于生成签名;其中,所述签名包括所述隔离执行模块的可信计算基础信息、公私钥对中的公钥、及特征标识信息;其中,所述签名及其被签名内容被包括在一公钥证书申请请求中而传输至证书管理服务端;
获得含有证书管理服务端分配的公钥证书请求标识的引用信息;
通过所述引用信息封装所述公钥证书请求标识、所述隔离执行模块的可信计算基础信息、及所述签名以形成远程证明信息;
对外传输所述远程证明信息供以被验证;
接收并存储公钥证书;其中,所述公钥证书包括所述隔离执行模块的可信计算基础信息。
20.一种证书发放方法,应用于与具备隔离执行模块的通信装置通信的证书管理服务端;所述证书发放方法包括:
接收公钥证书申请请求;其中,所述公钥证书申请请求中包括签名及其被签名内容,所述签名是由隔离执行模块使用其公私钥对加密生成的,所述签名包括所述隔离执行模块的可信计算基础信息、所述公私钥对中的公钥、及特征标识信息;
在使用所述公钥验证所述签名通过的情形下,对应所述公钥证书申请请求生成公钥证书请求标识并发送;
获得对应所述公钥证书请求标识形成的远程证明信息;其中,所述远程证明信息中包括所述公钥证书请求标识、隔离执行模块的可信计算基础信息、及所述签名;
获得所述远程证明信息的验证结果并在验证通过后生成公钥证书并发放。
21.根据实施例20所述的证书发放方法,所述远程证明信息作为存证数据被可信地存储。
22.一种证书验证方法,应用于与具备隔离执行模块的通信装置通信的证书管理服务端;所述证书验证方法包括:
接收相互通信的各隔离执行模块中的验证方对被验证方公钥证书发起的公钥证书验证请求;
验证所述公钥证书是否合法;
在公钥证书合法的情形下,将公钥证书中的可信计算基础信息发送给远程验证服务端以供验证;
根据所述远程验证服务端对所述可信计算基础信息的验证结果形成证书验证结果,发送给所述验证方。
23.根据实施例22所述的证书验证方法,所述证书管理服务端从远程验证服务端周期性同步可信计算基础信息以更新公钥证书是否有效的状态。
24.一种信息验证方法,应用于远程验证服务端;所述信息验证方法包括:
验证来自通信装置的隔离执行模块的公钥证书或远程证明信息中的可信计算基础信息;
发送验证结果。
25.根据实施例24所述的证书验证方法,所述远程验证服务端用于与证书管理服务端通信以获得待验证的可信计算基础信息;或者,所述远程证明服务器用于与作为验证方的隔离执行模块通信以获得作为被验证方的隔离执行模块的可信计算基础信息。
26.一种通信装置,包括:
通信器,用于与外部通信;
存储器;
处理器,耦接于所述存储器及通信器,用于运行指令以在所述存储器形成隔离执行模块;所述隔离执行模块,用于作为第一方或第二方而执行如实施例1至18中任一项所述的数据安全传输方法;和/或,执行如实施例19所述的证书请求方法。
27.一种证书管理服务端,包括:
通信器,用于与外部通信;
存储器,存储有至少一计算机程序;
处理器,耦接于所述存储器及通信器,用于运行所述至少一计算机程序,以执行如实施例20或21所述的证书发放方法;和/或,执行如实施例22或23所述的证书验证方法。
28.一种远程验证服务端,包括:
通信器,用于与外部通信;
存储器,存储有至少一计算机程序;
处理器,耦接于所述存储器及通信器,用于运行所述至少一计算机程序,以执行如实施例24或25所述的信息验证方法。
29.一种数据安全传输系统,包括:
多个如实施例26所述的通信装置;
如实施例27所述的证书管理服务端,用于与所述多个通信装置通信;
如实施例28所述的远程验证服务端,用于与所述证书管理服务端、及所述多个通信装置中的任意一或多个通信。
30.一种计算机可读存储介质,存储有至少一计算机程序,所述至少一计算机程序用于被运行以执行如实施例1至18中任一项的数据安全传输方法中第一方或第二方的各步骤;或者,执行如实施例19所述的证书请求方法;或者,执行如实施例20或21所述的证书发放方法;或者,执行如实施例22或23所述的证书验证方法;或者,执行如实施例24或25所述的信息验证方法。
31.一种证书发放系统,应用于与具备隔离执行模块的通信装置通信的证书管理服务端;所述证书发放系统包括:第一接收模块、第一发送模块、及第一处理模块;
所述第一接收模块,用于接收公钥证书申请请求;其中,所述公钥证书申请请求中包括签名及其被签名内容,所述签名是由隔离执行模块使用其公私钥对加密生成的,所述签名包括所述隔离执行模块的可信计算基础信息、所述公私钥对中的公钥、及特征标识信息;
所述第一发送模块,用于在使用所述公钥验证所述签名通过的情形下,对应所述公钥证书申请请求生成公钥证书请求标识并发送;
所述第一接收模块,用于获得对应所述公钥证书请求标识形成的远程证明信息;其中,所述远程证明信息中包括所述公钥证书请求标识、隔离执行模块的可信计算基础信息、及所述签名;
所述第一接收模块,用于获得所述远程证明信息的验证结果;
所述第一处理模块,用于在所述远程证明信息验证通过后,生成公钥证书;
所述第一发送模块,用于发送所述公钥证书。
32.根据实施例31所述的证书发放系统,所述隔离执行模块在接收到所述公钥证书后,将其安全存储于内部存储区域中,以用于在例如隔离执行模块之间的相互可信认证时使用。
33.根据实施例31所述的证书发放系统,所述获得所述远程证明信息的验证结果,包括:将远程证明信息发给远程验证服务端并获得远程验证服务端对远程证明信息中的可信计算基础信息的验证结果。
34.根据实施例31所述的证书发放系统,所述远程证明信息用于作为存证数据被可信地存储。
35.一种证书验证系统,应用于与具备隔离执行模块的通信装置通信的证书管理服务端;所述证书验证系统包括:第二接收模块、第二发送模块、及第二处理模块;
所述第二接收模块,用于接收相互通信的各隔离执行模块中的验证方对被验证方公钥证书发起的公钥证书验证请求;
所述第二处理模块,用于验证所述公钥证书是否有效;在公钥证书有效的情形下,获得公钥证书中的可信计算基础信息的验证结果;根据可信计算基础信息的验证结果形成证书验证结果;
所述第二发送模块,用于发送所述证书验证结果给所述验证方。
36.根据实施例35所述的证书验证系统,所述公钥证书中包括所述隔离执行模块的公钥、及可信计算基础信息。
37.根据实施例36所述的证书验证系统,所述可信计算基础信息包括:所述隔离执行模块的身份特征信息、及运行环境信息。
38.根据实施例36所述的证书验证系统,所述公钥证书中的可信计算基础信息是对应的隔离执行模块的公私钥对生成时得到的可信计算基础信息。
39.根据实施例35所述的证书验证系统,所述公钥证书是通过在所述证书管理服务端的证书发放记录进行核实来验证的。
40.根据实施例35所述的证书验证系统,所述获得公钥证书中的可信计算基础信息的验证结果,包括:所述证书管理服务端将公钥证书中的可信计算基础信息发给远程验证服务器,并接收远程验证服务器对该可信计算基础信息的验证结果。
41.根据实施例40所述的证书验证系统,所述公钥证书是否有效的状态由证书管理服务端从远程验证服务端周期性同步可信计算基础信息来更新。
42.一种信息验证方法,应用于远程验证服务端;所述信息验证系统包括:第三发送模块、第三接收模块、及第三处理模块;
所述第三接收模块,用于接收来自通信装置的隔离执行模块的公钥证书或远程证明信息中的可信计算基础信息;
所述第三处理模块,用于验证来所述可信计算基础信息并生成验证结果;
所述第三发送模块,用于发送所述验证结果。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

Claims (39)

1.一种数据安全传输方法,其特征在于,应用于不同通信装置所分别具备的隔离执行模块之间的数据安全传输;其中,第一通信装置的隔离执行模块和第二通信装置的隔离执行模块分别为相互通信的第一方和第二方,其中,所述隔离执行模块具有公钥证书,所述公钥证书由证书管理服务端发放、并在相互可信认证中供对方验证;其中,所述公钥证书中包括所述隔离执行模块的公钥、及可信计算基础信息,所述数据安全传输方法包括:
在执行任务时,若第一方同第二方间相互可信认证为可信,则第一方通过与第二方间形成安全传输通道,以对应所述任务执行由第一方向第二方传输数据、或执行由第二方向第一方传输数据;其中,在所述相互可信认证的过程中,所述第一方或第二方作为被验证方时产生有远程证明信息;所述第一方及第二方中的验证方根据被验证方公钥证书在证书管理服务端的验证结果、以及被验证方的远程证明信息在远程验证服务端的验证结果,以获得被验证方公钥证书和远程证明信息中的可信计算基础信息的比较结果,据以判断被验证方是否可信,所述相互可信认证包括:
第一方产生认证请求以传输至第二方;其中,所述认证请求包括:第一方的第一签名及其被签名内容;其中,所述第一签名的被签名内容包括认证请求标识、第一方公钥证书、及第一特征标识信息;
第二方根据所述认证请求得到所述第一方公钥证书,以传输至所述证书管理服务端进行验证;
在所述第一方公钥证书验证通过的情形下,第二方使用第一方公钥验证所述第一签名;
在第一签名验证通过的情形下,第二方产生包含第二签名及其被签名内容的回复消息以传输至所述第一方的第一回复消息;其中,所述第二签名包括:第二方公钥证书、第二方远程证明信息、及第二特征标识信息;其中,所述第二方远程证明信息包括:所述第一特征标识信息、认证请求标识、及第二方的可信计算基础信息;
在所述第二签名验证通过的情形下,第一方将公钥证书传输至证书管理服务端进行验证,并对第二方远程证明信息进行验证;
在所述第二方公钥证书验证通过的情形下,第一方使用第二方公钥验证所述第二签名、并验证所述第二方远程证明信息中内容;
若所述第二方公钥证书验证通过,在第一方根据第二方公钥证书和第二方远程证明信息判断第二方可信的情形下,第一方产生第一方远程证明信息、及包括所述第一方远程证明信息的第三签名,以传输包括所述第三签名及其被签名内容的第二回复消息至第二方;其中,所述第一方远程证明信息包括:所述第二特征标识信息、认证请求标识、及第一方的可信计算基础信息;
第二方通过所述第一方公钥从第三签名获取第一方远程证明信息,并在第二方根据第一方公钥证书和第一方远程证明信息判断第一方可信的情形下,形成所述安全传输通道。
2.根据权利要求1所述的数据安全传输方法,其特征在于,所述相互可信认证为可信的有效时间与任务的生命周期一致。
3.根据权利要求1所述的数据安全传输方法,其特征在于,在每个安全传输通道形成时,第一方同第二方间密钥协商以得到所述安全传输通道的共享密钥,用于对所述安全传输通道所传输的数据进行加密及解密。
4.根据权利要求3所述的数据安全传输方法,其特征在于,每个安全传输通道的共享密钥的有效时间与对应所执行的任务的生命周期一致。
5.根据权利要求1所述的数据安全传输方法,其特征在于,所述第一方和第二方间通过各自的公私钥对进行加密通信。
6.根据权利要求1所述的数据安全传输方法,其特征在于,所述可信计算基础信息包括:所述隔离执行模块的身份特征信息、及运行环境信息。
7.根据权利要求1所述的数据安全传输方法,其特征在于,所述公钥证书中的可信计算基础信息是对应的隔离执行模块的公私钥对生成时得到的可信计算基础信息。
8.根据权利要求1所述的数据安全传输方法,其特征在于,所述公钥证书是通过在所述证书管理服务端的证书发放记录进行核实来验证的。
9.根据权利要求1所述的数据安全传输方法,其特征在于,所述公钥证书是否有效的状态由证书管理服务端从远程验证服务端周期性同步可信计算基础信息来更新。
10.根据权利要求1所述的数据安全传输方法,其特征在于,所述远程证明信息作为存证数据被可信地存储。
11.根据权利要求1所述的数据安全传输方法,其特征在于,所述第一特征标识信息及第二特征标识信息为随机信息。
12.根据权利要求1所述的数据安全传输方法,其特征在于,每个所述隔离执行模块是基于可信运行环境中的可信容器实现的。
13.根据权利要求12所述的数据安全传输方法,其特征在于,所述可信运行环境包括:支持SGX技术的硬件和/或软件环境。
14.根据权利要求1所述的数据安全传输方法,其特征在于,所述第一方及第二方中的一者为多方安全计算节点,以接收另一者传输的待计算数据以进行多方安全计算。
15.根据权利要求14所述的数据安全传输方法,其特征在于,所述待计算数据包括:用于秘密共享计算的分片数据、用于同态加密计算的加密数据、以及基于混淆电路的混淆结果或混淆表中的一种或多种。
16.一种证书请求方法,其特征在于,应用于通信装置中的隔离执行模块;其中,所述隔离执行模块执行如权利要求1至15任一项所述的数据安全传输方法,所述证书请求方法包括:
获得公私钥对,并用于生成签名;其中,所述签名包括所述隔离执行模块的可信计算基础信息、公私钥对中的公钥、及特征标识信息;其中,所述签名及其被签名内容被包括在一公钥证书申请请求中而传输至证书管理服务端;
获得含有证书管理服务端分配的公钥证书请求标识的引用信息;
通过所述引用信息封装所述公钥证书请求标识、所述隔离执行模块的可信计算基础信息、及所述签名以形成远程证明信息;
对外传输所述远程证明信息供以被验证;
接收并存储公钥证书;其中,所述公钥证书包括所述隔离执行模块的可信计算基础信息。
17.一种证书发放方法,其特征在于,应用于与具备隔离执行模块的通信装置通信的证书管理服务端;其中,所述隔离执行模块执行如权利要求1至15任一项所述的数据安全传输方法,所述证书发放方法包括:
接收公钥证书申请请求;其中,所述公钥证书申请请求中包括签名及其被签名内容,所述签名是由隔离执行模块使用其公私钥对加密生成的,所述签名包括所述隔离执行模块的可信计算基础信息、所述公私钥对中的公钥、及特征标识信息;
在使用所述公钥验证所述签名通过的情形下,对应所述公钥证书申请请求生成公钥证书请求标识并发送;
获得对应所述公钥证书请求标识形成的远程证明信息;其中,所述远程证明信息中包括所述公钥证书请求标识、隔离执行模块的可信计算基础信息、及所述签名;
获得所述远程证明信息的验证结果并在验证通过后生成公钥证书并发放。
18.根据权利要求17所述的证书发放方法,其特征在于,所述远程证明信息作为存证数据被可信地存储。
19.一种证书验证方法,其特征在于,应用于与具备隔离执行模块的通信装置通信的证书管理服务端;其中,所述隔离执行模块执行如权利要求1至15任一项所述的数据安全传输方法,所述证书验证方法包括:
接收相互通信的各隔离执行模块中的验证方对被验证方公钥证书发起的公钥证书验证请求;
验证所述公钥证书是否合法;
在公钥证书合法的情形下,将公钥证书中的可信计算基础信息发送给远程验证服务端以供验证;
根据所述远程验证服务端对所述可信计算基础信息的验证结果形成证书验证结果,发送给所述验证方。
20.根据权利要求19所述的证书验证方法,其特征在于,所述证书管理服务端从远程验证服务端周期性同步可信计算基础信息以更新公钥证书是否有效的状态。
21.一种信息验证方法,其特征在于,应用于远程验证服务端;所述信息验证方法包括:
验证来自通信装置的隔离执行模块的公钥证书或远程证明信息中的可信计算基础信息,其中,所述隔离执行模块执行如权利要求1至15任一项所述的数据安全传输方法;
发送验证结果。
22.根据权利要求21所述的信息验证方法,其特征在于,所述远程验证服务端用于与证书管理服务端通信以获得待验证的可信计算基础信息;或者,所述远程验证服务端用于与作为验证方的隔离执行模块通信以获得作为被验证方的隔离执行模块的可信计算基础信息。
23.一种通信装置,其特征在于,包括:
通信器,用于与外部通信;
存储器;
处理器,耦接于所述存储器及通信器,用于运行指令以在所述存储器形成隔离执行模块;所述隔离执行模块,用于作为第一方或第二方而执行如权利要求1至15中任一项所述的数据安全传输方法;和/或,执行如权利要求16所述的证书请求方法。
24.一种证书管理服务端,其特征在于,包括:
通信器,用于与外部通信;
存储器,存储有至少一计算机程序;
处理器,耦接于所述存储器及通信器,用于运行所述至少一计算机程序,以执行如权利要求17或18所述的证书发放方法;和/或,执行如权利要求19或20所述的证书验证方法。
25.一种远程验证服务端,其特征在于,包括:
通信器,用于与外部通信;
存储器,存储有至少一计算机程序;
处理器,耦接于所述存储器及通信器,用于运行所述至少一计算机程序,以执行如权利要求21或22所述的信息验证方法。
26.一种数据安全传输系统,其特征在于,包括:
多个如权利要求23所述的通信装置;
如权利要求24所述的证书管理服务端,用于与多个通信装置通信;
如权利要求25所述的远程验证服务端,用于与所述证书管理服务端、及所述多个通信装置中的任意一或多个通信。
27.一种计算机可读存储介质,其特征在于,存储有至少一计算机程序,所述至少一计算机程序用于被运行以执行如权利要求1至15中任一项的数据安全传输方法中第一方或第二方的各步骤;或者,执行如权利要求16所述的证书请求方法;或者,执行如权利要求17或18所述的证书发放方法;或者,执行如权利要求19或20所述的证书验证方法;或者,执行如权利要求21或22所述的信息验证方法。
28.一种证书发放系统,其特征在于,应用于与具备隔离执行模块的通信装置通信的证书管理服务端;其中,所述隔离执行模块执行如权利要求1至15任一项所述的数据安全传输方法,所述证书发放系统包括:第一接收模块、第一发送模块、及第一处理模块;
所述第一接收模块,用于接收公钥证书申请请求;其中,所述公钥证书申请请求中包括签名及其被签名内容,所述签名是由隔离执行模块使用其公私钥对加密生成的,所述签名包括所述隔离执行模块的可信计算基础信息、所述公私钥对中的公钥、及特征标识信息;
所述第一发送模块,用于在使用所述公钥验证所述签名通过的情形下,对应所述公钥证书申请请求生成公钥证书请求标识并发送;
所述第一接收模块,用于获得对应所述公钥证书请求标识形成的远程证明信息;其中,所述远程证明信息中包括所述公钥证书请求标识、隔离执行模块的可信计算基础信息、及所述签名;
所述第一接收模块,用于获得所述远程证明信息的验证结果;
所述第一处理模块,用于在所述远程证明信息验证通过后,生成公钥证书;
所述第一发送模块,用于发送所述公钥证书。
29.根据权利要求28所述的证书发放系统,其特征在于,所述隔离执行模块在接收到所述公钥证书后,将其安全存储于内部存储区域中,以用于在隔离执行模块之间的相互可信认证时使用。
30.根据权利要求28所述的证书发放系统,其特征在于,所述获得所述远程证明信息的验证结果,包括:将远程证明信息发给远程验证服务端并获得远程验证服务端对远程证明信息中的可信计算基础信息的验证结果。
31.根据权利要求28所述的证书发放系统,其特征在于,所述远程证明信息用于作为存证数据被可信地存储。
32.一种证书验证系统,其特征在于,应用于与具备隔离执行模块的通信装置通信的证书管理服务端;其中,所述隔离执行模块执行如权利要求1至15任一项所述的数据安全传输方法,所述证书验证系统包括:第二接收模块、第二发送模块、及第二处理模块;
所述第二接收模块,用于接收相互通信的各隔离执行模块中的验证方对被验证方公钥证书发起的公钥证书验证请求;
所述第二处理模块,用于验证所述公钥证书是否有效;在公钥证书有效的情形下,获得公钥证书中的可信计算基础信息的验证结果;根据可信计算基础信息的验证结果形成证书验证结果;
所述第二发送模块,用于发送所述证书验证结果给所述验证方。
33.根据权利要求32所述的证书验证系统,其特征在于,所述公钥证书中包括所述隔离执行模块的公钥、及可信计算基础信息。
34.根据权利要求33所述的证书验证系统,其特征在于,所述可信计算基础信息包括:所述隔离执行模块的身份特征信息、及运行环境信息。
35.根据权利要求33所述的证书验证系统,其特征在于,所述公钥证书中的可信计算基础信息是对应的隔离执行模块的公私钥对生成时得到的可信计算基础信息。
36.根据权利要求32所述的证书验证系统,其特征在于,所述公钥证书是通过在所述证书管理服务端的证书发放记录进行核实来验证的。
37.根据权利要求32所述的证书验证系统,其特征在于,获得公钥证书中的可信计算基础信息的验证结果,包括:所述证书管理服务端将公钥证书中的可信计算基础信息发给远程验证服务器,并接收远程验证服务器对该可信计算基础信息的验证结果。
38.根据权利要求37所述的证书验证系统,其特征在于,所述公钥证书是否有效的状态由证书管理服务端从远程验证服务端周期性同步可信计算基础信息来更新。
39.一种信息验证系统,其特征在于,应用于远程验证服务端;所述信息验证系统包括:第三发送模块、第三接收模块、及第三处理模块;
所述第三接收模块,用于接收来自通信装置的隔离执行模块的公钥证书或远程证明信息中的可信计算基础信息,其中,所述隔离执行模块执行如权利要求1至15任一项所述的数据安全传输方法;
所述第三处理模块,用于验证来所述可信计算基础信息并生成验证结果;
所述第三发送模块,用于发送所述验证结果。
CN202010334336.7A 2020-04-24 2020-04-24 数据安全传输方法、证书相关方法、服务端、系统及介质 Active CN113556230B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010334336.7A CN113556230B (zh) 2020-04-24 2020-04-24 数据安全传输方法、证书相关方法、服务端、系统及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010334336.7A CN113556230B (zh) 2020-04-24 2020-04-24 数据安全传输方法、证书相关方法、服务端、系统及介质

Publications (2)

Publication Number Publication Date
CN113556230A CN113556230A (zh) 2021-10-26
CN113556230B true CN113556230B (zh) 2024-05-31

Family

ID=78101264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010334336.7A Active CN113556230B (zh) 2020-04-24 2020-04-24 数据安全传输方法、证书相关方法、服务端、系统及介质

Country Status (1)

Country Link
CN (1) CN113556230B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114021187B (zh) * 2021-11-04 2023-02-28 云海链控股股份有限公司 一种数据处理系统、方法及电子设备
CN114244533A (zh) * 2021-12-21 2022-03-25 掌阅科技股份有限公司 资源传输方法、终端和存储介质
CN114282237B (zh) * 2021-12-21 2023-01-17 北京百度网讯科技有限公司 一种通信方法、装置、设备及存储介质
CN115174180B (zh) * 2022-06-28 2023-10-27 珠海奔图电子有限公司 认证方法、装置、服务器及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104580250A (zh) * 2015-01-29 2015-04-29 成都卫士通信息产业股份有限公司 一种基于安全芯片进行可信身份认证的系统和方法
DE102018101307A1 (de) * 2017-02-22 2018-08-23 Intel Corporation Techniken für SGX-Enklaven-Fernauthentifizierung
CN109359977A (zh) * 2018-09-10 2019-02-19 平安科技(深圳)有限公司 网络通信方法、装置、计算机设备和存储介质
CN109561110A (zh) * 2019-01-19 2019-04-02 北京工业大学 一种基于sgx的云平台审计日志保护方法
WO2019091907A1 (en) * 2017-11-10 2019-05-16 Eth Zurich Brokered delegation of credentials using trusted execution environments
CN110138799A (zh) * 2019-05-30 2019-08-16 东北大学 一种基于sgx的安全云存储方法
US10534933B1 (en) * 2017-12-27 2020-01-14 Symantec Corporation Encrypting and decrypting sensitive files on a network device
CN110968743A (zh) * 2019-12-13 2020-04-07 支付宝(杭州)信息技术有限公司 针对隐私数据的数据存储、数据读取方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1239629B1 (en) * 2001-03-05 2011-01-12 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method for the safe use and transmission of biometric data for authentication purposes
EP2329391A1 (en) * 2008-08-13 2011-06-08 Secure Exchange Solutions, Llc Trusted card system using secure exchange

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104580250A (zh) * 2015-01-29 2015-04-29 成都卫士通信息产业股份有限公司 一种基于安全芯片进行可信身份认证的系统和方法
DE102018101307A1 (de) * 2017-02-22 2018-08-23 Intel Corporation Techniken für SGX-Enklaven-Fernauthentifizierung
CN108462689A (zh) * 2017-02-22 2018-08-28 英特尔公司 用于远程sgx飞地认证的技术
WO2019091907A1 (en) * 2017-11-10 2019-05-16 Eth Zurich Brokered delegation of credentials using trusted execution environments
US10534933B1 (en) * 2017-12-27 2020-01-14 Symantec Corporation Encrypting and decrypting sensitive files on a network device
CN109359977A (zh) * 2018-09-10 2019-02-19 平安科技(深圳)有限公司 网络通信方法、装置、计算机设备和存储介质
CN109561110A (zh) * 2019-01-19 2019-04-02 北京工业大学 一种基于sgx的云平台审计日志保护方法
CN110138799A (zh) * 2019-05-30 2019-08-16 东北大学 一种基于sgx的安全云存储方法
CN110968743A (zh) * 2019-12-13 2020-04-07 支付宝(杭州)信息技术有限公司 针对隐私数据的数据存储、数据读取方法及装置

Also Published As

Publication number Publication date
CN113556230A (zh) 2021-10-26

Similar Documents

Publication Publication Date Title
CN113556230B (zh) 数据安全传输方法、证书相关方法、服务端、系统及介质
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
US11849029B2 (en) Method of data transfer, a method of controlling use of data and cryptographic device
WO2018050081A1 (zh) 设备身份认证的方法、装置、电子设备及存储介质
US9602500B2 (en) Secure import and export of keying material
US11283626B2 (en) Apparatus and methods for distributed certificate enrollment
WO2018112946A1 (zh) 注册及授权方法、装置及系统
US10187373B1 (en) Hierarchical, deterministic, one-time login tokens
WO2015180691A1 (zh) 验证信息的密钥协商方法及装置
US11853438B2 (en) Providing cryptographically secure post-secrets-provisioning services
JP7232816B2 (ja) 資産を認証する認証システム及び認証方法
EP3387576B1 (en) Apparatus and method for certificate enrollment
KR20200013764A (ko) 제1 애플리케이션과 제2 애플리케이션 사이의 상호 대칭 인증을 위한 방법
US20210167963A1 (en) Decentralised Authentication
CN111614621A (zh) 物联网通信方法和系统
US11153344B2 (en) Establishing a protected communication channel
CN103944721A (zh) 一种基于web的保护终端数据安全的方法和装置
CN114338091B (zh) 数据传输方法、装置、电子设备及存储介质
KR102539418B1 (ko) Puf 기반 상호 인증 장치 및 방법
CN111865568B (zh) 面向数据传输的存证方法、传输方法及系统
CN114065170A (zh) 平台身份证书的获取方法、装置和服务器
CN116318637A (zh) 设备安全入网通信的方法和系统
TW201446067A (zh) 用於確保通信裝置之鄰近之系統、方法及設備
CN111865596B (zh) 面向数据传输的验证方法及系统
WO2023151427A1 (zh) 量子密钥传输方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant