CN108462689A - 用于远程sgx飞地认证的技术 - Google Patents

用于远程sgx飞地认证的技术 Download PDF

Info

Publication number
CN108462689A
CN108462689A CN201810059364.5A CN201810059364A CN108462689A CN 108462689 A CN108462689 A CN 108462689A CN 201810059364 A CN201810059364 A CN 201810059364A CN 108462689 A CN108462689 A CN 108462689A
Authority
CN
China
Prior art keywords
enclave
sgx
report
service
enclaves
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
CN201810059364.5A
Other languages
English (en)
Other versions
CN108462689B (zh
Inventor
A·米勒
K·绍尔
J·海尔德
M·鲍曼
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.)
Intel Corp
Original Assignee
Intel Corp
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
Priority claimed from US15/600,667 external-priority patent/US20180241572A1/en
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN108462689A publication Critical patent/CN108462689A/zh
Application granted granted Critical
Publication of CN108462689B publication Critical patent/CN108462689B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • 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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2201/00Algorithms used for the adjustment of time-domain equalizers
    • H04L2201/08Algorithms not covered by groups H04L2201/02 - H04L2201/06
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Abstract

描述了用于远程SGX飞地认证的技术。证明服务可以用于证明在启用软件防护扩展(SGX)的平台上成功建立了飞地。进一步地,在实施例中,证明服务可以用作公证制度来证明公钥证书是由特定SGX飞地生成的,并且因此可被其他远程飞地信任以供认证。在实施例中,客户端侧SGX飞地可以生成公共‑私有密钥对(SK,PK);计算PK的密码散列H;创建包含H的报告R;从引用飞地组件获得关于所述报告R的引用Q;从证明服务获得远程证明响应RA;以及将RA和PK广播至一个或多个服务侧SGX飞地。描述并要求保护了其他实施例。

Description

用于远程SGX飞地认证的技术
相关申请
本申请根据35 U.S.C.§119(e)要求于2017年2月22日提交的名称为“TECHNIQUESFOR REMOTE SGX ENCLAVE AUTHENTICATION(用于远程SGX飞地认证的技术)”的美国临时申请号62/462,298的优先权的权益,所述美国临时申请通过引用以其全文结合在此。
技术领域
本公开总体上涉及用于在分布式计算环境内的认证的技术。
背景技术
在利用可信执行环境的一些设备中,可以在安全环境(被称为飞地)中执行和/或存储应用的敏感部分以便保护代码和数据两者免受损害。在分布式应用(比如物联网(IoT)系统)中,在一个示例中,驻留在不同处理器上的飞地可能需要互相认证以建立安全的通信信道。许多当前解决方案依赖于集中式可信机构来认证在分布式系统内的两个远程飞地。在一些情况下,使用集中式可信机构可能暴露一方或多方的身份,这可能不是那些支持匿名所期望的。因此,期望可以不需要集中式可信机构来在分布式系统内的飞地之间执行认证的改进技术。
发明内容
下文中呈现了简要概述以便提供对本文中所描述的一些新颖性实施例的基础理解。本发明内容并非扩展性概览,并且其并不旨在识别密钥/关键元素或描绘其范围。本发明唯一目的是以简化的形式呈现一些概念,作为稍后呈现的更详细描述的序。
描述了用于远程飞地认证的技术。证明服务(比如,英特尔证明服务(IAS))可以用于证明在启用软件防护扩展(SGX)的平台上成功建立了飞地。进一步地,在实施例中,IAS可以用作公证制度来证明公钥证书是由特定SGX飞地生成的,并且因此可以被其他远程飞地信任以供认证。在实施例中,客户端侧SGX飞地可以生成公共-私有密钥对(SK,PK);计算PK的密码散列H;创建包含H的报告R;从引用飞地组件处获得关于所述报告R的引用Q;从证明服务处获得远程证明响应RA;以及将RA和PK广播至一个或多个服务侧SGX飞地。描述并要求保护了其他实施例。
为了实现上述及相关目的,在此结合以下描述和附图描述了某些说明性方面。这些方面指示可以实践本文中所公开的原理的各种方式,并且所有方面及其等效物都旨在落入所要求保护的主题的范围内。在结合附图考虑时从以下具体实施方式中,其他优点和新颖特征将变得明显。
附图说明
图1展示了操作环境的实施例。
图2展示了可信飞地系统的实施例。
图3展示了可信飞地系统的架构。
图4展示了系统的实施例。
图5展示了根据实施例的逻辑流程。
图6A展示了根据实施例的逻辑流程。
图6B展示了根据实施例的逻辑流程。
图7展示了根据实施例的制品。
图8展示了集中式系统的实施例。
图9展示了分布式系统的实施例。
图10展示了计算架构的实施例。
图11展示了通信架构的实施例。
具体实施方式
描述了用于远程SGX飞地认证的技术。证明服务(比如,英特尔证明服务(IAS))可以用于证明在启用软件防护扩展(SGX)的平台上成功建立了飞地。进一步地,在实施例中,IAS可以用作公证制度来证明公钥证书是由特定SGX飞地生成的,并且因此可以被其他远程飞地信任以供认证。描述并要求保护了其他实施例。
在总体上参照本文中所使用的符号和术语的情况下,可以就在计算机或计算机网络上执行的程序过程而言呈现随后的具体实施方式。这些过程描述及表示由本领域技术人员用来向本领域其他技术人员最有效地传达他们工作的实质。
过程在此处并且通常被认为是导致期望结果的自相一致的操作序列。这些操作是需要对物理量进行物理操纵的操作。通常,尽管不一定,这些量采取能够被存储、传递、组合、比较并且以其他方式操纵的电、磁或光信号的形式。主要出于常见用法的原因,证明有时将这些信号称为位、值、元素、符号、字符、术语、数字等是方便的。然而,应当指出的是,所有这些术语和类似术语将与适当的物理量相关联并且仅是应用于那些量的方便标签。
进一步地,经常在通常与由人类操作者执行的智力操作相关联的术语(比如,添加或比较)中提及所执行的操纵。在大多数情况下,本文中所描述的形成一个或多个实施例的一部分的操作中的任何操作中不需要或不期望人类操作者的这种能力。相反,这些操作是机器操作。用于执行各实施例的操作的有用机器包括通用数字计算机或类似设备。
各个实施例还涉及用于执行这些操作的装置或系统。此装置可以被专门构造成用于所需目的,或者其可以包括通过存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文中呈现的过程并未在本质上涉及特定计算机或其他装置。各种通用机器可以与根据本文的教导编写的程序一起使用,或者可以证明构造更专用的装置来执行所需方法步骤是方便的。各种这些机器的所需结构将从所给出的描述中显现。
图1展示了如可以表示一些实施例的操作环境100的示例。在可以包括远程飞地认证的操作环境100中,系统102可以包括服务器110和经由网络140耦合的处理设备105。服务器110和处理设备105可以经由网络140交换数据130,并且数据130可以包括用于在处理设备105内执行的可执行指令132。在一些实施例中,数据130可以包括数据值、可执行指令和/或其组合。网络140可以基于可以交换信号的各种(或组合的)通信技术中的任何一种通信技术,包括但不限于,采用电气和/或光学传导线缆的有线技术,以及采用红外、射频和/或其他形式的无线传输的无线技术。
在各个实施例中,处理设备105可以合并处理器组件150、存储设备160、控件125(例如,可手动操作的控件)、显示器135和/或用于将处理设备105耦合至网络140的网络接口115。处理器组件150可以合并安全凭证180、安全微代码178、元数据存储设备135、存储元数据136、安全子系统174、一个或多个处理器核170、一个或多个高速缓存172和/或图形控制器176。存储设备160可以包括易失性存储设备164、非易失性存储设备162和/或一个或多个存储控制器165。处理设备105可以包括控制器120(例如,安全控制器),所述控制器可以包括安全凭证180。控制器120还可以包括本文中所描述的用于散列函数的统一硬件加速的实施例中的一个或多个。
易失性存储设备164可以包括一个或多个存储设备,所述一个或多个存储设备因为其需要持续提供电力来保留存储在其中的信息因而是易失性的。可以由存储控制器165控制易失性存储设备164的(多个)存储设备的操作,所述存储控制器可以接收来自处理器组件150和/或处理设备105的其他组件的用于存储和/或检索其中信息的命令,并且可以在接收这些命令所依据的总线协议和/或定时与易失性存储设备164的(多个)存储设备耦合至存储控制器165所依据的其他总线协议和/或定时之间转换这些命令。通过示例的方式,易失性存储设备164的所述一个或多个存储设备可以由通过接口耦合至存储控制器165的动态随机存取存储器(DRAM)设备组成,例如,在其中行地址和列地址连同字节使能信号一起被用来选择存储位置,而由存储控制器165接收的命令可以沿数字串行传输线路的一个或多个对被传达至所述存储控制器。
非易失性存储设备162可以由一个或多个存储设备组成,所述一个或多个设备因为其能够在无需持续提供电力的情况下保留存储在其中的信息因而是非易失性的。可以由存储控制器165(例如,与用于操作易失性存储设备164不同的存储控制器)控制非易失性存储设备162的(多个)存储设备的操作,所述存储控制器可以接收来自处理器组件150和/或处理设备105的其他组件的用于存储和/或检索其中信息的命令,并且可以在接收这些命令所依据的总线协议和/或定时与非易失性存储设备162的(多个)存储设备耦合至存储控制器165所依据的其他总线协议和/或定时之间转换这些命令。通过示例的方式,非易失性存储设备162的一个或多个存储设备可以由通过数字串行接口可操作地耦合至存储控制器165的基于铁磁的磁盘驱动器(硬盘驱动器)组成,例如,在其中通过参考磁道和扇区来寻址每个这种存储设备内的存储空间的一部分。相比之下,由存储控制器165接收的命令可以沿传达读取命令和写入命令的数字串行传输线路的一个或多个对被传达至所述存储控制器,其中,以完全不同的方式来寻址在每个这种存储设备内的存储空间的这些相同部分。
处理器组件150可以包括用于在至少一个线程的执行中执行可执行例程的指令的至少一个处理器核170。然而,处理器组件150可以合并处理器核170中的多于一个处理器核和/或可以采用其他处理架构技术来支持多个线程执行,通过所述多个线程执行可以并行地执行多于一个可执行例程的指令。(多个)高速缓存172包括多层高速缓存组,所述多层高速缓存组可以包括用于每个处理器核170的单独的一级(L1)高速缓存和/或用于处理器核170中的多个处理器核的更大的二级(L2)高速缓存。
在处理设备105包括显示器135和/或图形控制器176的一些实施例中,由于执行一个或多个例程的可执行指令,一个或多个核170可以操作控件125和/或显示器135以提供用户界面和/或执行其他图形相关的功能。图形控制器176可以包括图形处理器核(例如,图形处理单元(GPU))和/或用于执行图形相关的操作的组件(未示出),包括但不限于解压缩并呈现运动视频、渲染三维(3D)模型的一个或多个对象的2D图像等。
非易失性存储设备162可以存储包括可执行指令132的数据130。在上述处理设备105与服务器110之间的数据130的交换中,处理设备105可以将数据130的副本维护在非易失性存储设备162内例如持续更长期的存储。易失性存储设备164可以存储经加密数据134和/或元数据136。根据本文中所描述的一些实施例,经加密数据134可以由以加密和/或压缩形式存储在易失性存储设备164内的数据130的至少一部分组成。可执行指令132可以组成一个或多个可执行例程,诸如操作系统(OS)、设备驱动程序和/或将由处理器组件150的一个或多个处理器核170执行的一个或多个应用例程。数据130的其他部分可以包括由一个或多个处理器核170作为输入采用以执行通过执行可执行指令132而使一个或多个处理器核170执行的各种任务的数据值。
作为执行可执行指令132的一部分,一个或多个处理器核170可以检索可执行指令132的一部分并且以更易于执行的形式将这些部分存储在易失性存储设备164内,其中,在通常被称为加载的过程中,在这些部分中推导出地址、解析间接参考和/或更完全地限定链路。如本领域技术人员所熟悉的,这种加载可以在OS的可能在可执行指令132之中的加载例程和/或页面管理例程的控制下发生。因为数据130的一部分(包括可执行指令132的一部分)在非易失性存储设备162与易失性存储设备164之间如此进行交换,所以安全子系统174可以将数据130的这些部分在如存储在非易失性存储设备162内的可以采用其原始未压缩且未加密的形式与如伴随有元数据136的经加密数据134的至少经加密的并且可以存储在易失性存储设备164内的形式之间进行转换。
安全子系统174可以包括硬件逻辑,所述硬件逻辑由安全微代码178进行配置或以其他方式控制来实现所述逻辑以在处理设备105的正常操作期间执行这类转换。安全微代码178可以包括待在安全子系统174内的逻辑电路之间做出的用于形成这种逻辑的连接指示。可替代地或另外地,安全微代码178可以包括当被如此执行时形成这种逻辑的可执行指令。安全子系统174可以执行安全微代码178的这类指令,或者安全子系统174可以由执行这类指令的至少一个处理器核170进行控制。可以在处理设备105的初始化(包括处理器组件150的初始化)期间向安全子系统174和/或至少一个处理器核170提供对安全微代码178的访问。进一步地,安全子系统174可以包括本文中所描述的用于散列函数的统一硬件加速的实施例中的一个或多个。
安全凭证180可以包括一个或多个值,所述一个或多个值被安全子系统174采用作为其在处理设备105的正常操作期间对数据130执行加密和/或对经加密数据134执行解密(作为执行其之间的转换的一部分)的输入。更具体地,安全凭证180可以包括各种类型的安全凭证的任何一种,包括但不限于公钥和/或私钥、用于生成随机数的种子、用于生成随机数的指令、证书、签名、密码等。可以在处理设备105的初始化期间向安全子系统174提供对安全凭证180的访问。
图2展示了可信飞地系统200的实施例。可信飞地系统200可以包括应用201,所述应用可以包括在软件和/或硬件平台上执行的一个或多个应用。可以包括需要保护的私密数据的应用的几个非限制性示例为金融应用、电子银行应用、和健康或医疗应用。在一些实施例中,应用201可以包括不可信分区202,所述不可信分区可以是应用201的包括通常不受攻击保护的指令和数据的分区。特权代码206可以包括对在平台上运行的应用内的数据具有特殊访问或特权的平台的代码。例如,特权代码可以包括操作系统、虚拟机管理器、系统BIOS或系统管理模式。虽然可以在此使用这些示例类型的特权代码,但是可以认识到,其他类型的代码可以永久或暂时地包括特权。
如果恶意代码将感染特权系统代码206,则所述恶意代码可以访问不可信分区202,因为特权系统代码206通常能够访问应用201。然而,使用可信飞地系统,特定数据可以保持秘密和安全,甚至免受源自特权系统代码206的攻击。在示例中,应用201可以在210处创建可信飞地204以保护私密数据和安全数据216。创建可信飞地204有时可以在平台的处理器内生成可使用本文中所描述的技术访问的安全存储器位置。可信飞地204可以被配置用于支持可以对安全数据216执行的某些可信功能。不可信分区202可以使用调用门214调用在212处的可信功能,所述调用门可以是被配置用于接受在可信飞地204处的某些可信功能调用的软件和硬件的组合。可信功能调用的结果可以从可信飞地204返回到不可信分区202,同时安全数据216保持被保护在可信飞地204内。以这种方式,可以使用受限的可信功能集合来访问安全数据216,安全数据216仍然可以在应用201内使用,然而,如通过阻塞208所示出的,可以阻止特权系统代码208访问安全数据216。
可信飞地系统200允许在平台上运行的每个应用使用安全飞地来保护其自己的私密数据,从而显著地减小对恶意代码(尤其是已经潜入特权系统代码206的恶意代码)可用的攻击面。虽然图2中所描述的实施例展示了单个平台,但是可以在联网的分布式系统(比如IoT)内使用可信飞地系统。在这些系统中,如稍后所描述的,可以使用集中式可信机构来认证安全飞地。然而,如以下所描述的,经改进技术可以规避使用集中式可信机构并且允许可信飞地运行多个分布式处理器来彼此进行认证。
图3展示了可信飞地系统300的架构。可信飞地系统300可以包括应用环境301、特权环境302和暴露硬件304,现在依次讨论每一个。应用环境301可以包括一个或多个飞地306、308,每个飞地使用一个或多个SGX用户运行时间模块310、312进行访问。以这种方式,每个飞地306、308可以由特权环境302以安全的方式进行访问。特权环境302可以包括SGX模块314和页表316。SGX模块314可以包括软件和硬件的组合,并且可以被配置用于经由SGX用户运行时间310、312从飞地306、308中请求私密信息或对私密信息执行可信功能。例如,页表316可以存储被存储在暴露硬件304内的私密数据的一个或多个存储器位置。暴露硬件304可以包括计算平台318(如本文所描述的),并且可以包括被配置用于执行在其中阐述的技术的一个或多个处理器。
平台318可以包括存储飞地页面高速缓存(EPC)320和飞地页面高速缓存图(EPCM)322的存储设备。EPC 320可以是包括用于将一组访问权限与飞地相关联的结构EPCM 322的存储器。EPC 320可以包含在页面(在一些实施例中,在非限制性示例中其可以是4KB的页面)中受保护的代码和数据。EPC 320可以存储飞地页面和SGX结构,并且EPC页面可以是有效或无效的。有效EPC页面可以包含飞地页面或SGX结构。每个EPC页面的安全属性可以保存在以下所讨论的被称为EPCM的内部微架构结构中。
EPCM 322可以包含飞地页面的元数据,并且可以是由处理器用来跟踪EPC 320的内容的受保护结构。EPCM 322可以包括一系列条目,其中,EPC 320中的每个页面恰好有一个条目。可以认识到,可替代的实施例可能不需要1:1的相关性。EPCM 322可以由处理器作为各种SGX指令的一部分进行管理,并且可能不可由软件或设备直接访问。EPCM 322的格式可以是微架构并且是依赖于实现方式的。然而,在逻辑上,每个EPCM条目可以保存以下各项中的一项或多项:EPC页面是有效还是无效;拥有页面的飞地实例;页面的类型(REG、TCS、VA、SECS);虚拟地址,通过所述虚拟地址飞地可以访问页面;在所述页面上飞地专用的读取/写入/执行权限;和/或页面是否可访问(BLOCKED(阻塞)或UNBLOCKED(未阻塞))。EPCM结构可以在地址变换流程中由处理器使用来强制实施对加载到EPC中的飞地页面的访问控制。在逻辑上,除了“遗留”分段、分页表和扩展分页表机制之外,所述EPCM结构还可以提供访问控制的附加安全层。
图4展示了系统400的框图。在一个实施例中,系统400可以包括一个或多个组件。尽管图4中所示出的系统400具有采用某种拓扑结构的有限数量的元件,但是可以认识到,系统400可以包括采用如给定实施方式所期望的替代拓扑结构的更多或更少元件。系统400可以包括多个模块,如在此更详细描述的,每个模块可以包括一个或多个处理单元、存储单元、网络接口或其他硬件元件和软件元件。在一些实施例中,这些模块可以包括在单个设备中。在其他实施例中,一个或多个模块可以是分布式架构的一部分,所述分布式架构的一个示例是关于图9进行描述的。
在实施例中,系统400的每个模块可以包括而不限于:移动计算设备、智能电话、蜂窝电话、连接到物联网(IoT)的设备、手机、个人数字助理、单向寻呼机、双向寻呼机、消息收发设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、手持式计算机、平板计算机或诸如智能手表等可穿戴计算设备。进一步地,模块可以包括服务器,所述服务器可以包括而不限于:单个服务器、服务器阵列或服务器场、web服务器、网络服务器、互联网服务器、工作站、小型计算机、大型计算机、巨型计算机、网络设备、web设备、多处理器系统、基于处理器的系统、或其任何组合。
在各个实施例中,系统400可以包括或实现多个组件或模块。如在此使用的,术语“组件(component)”和“模块(module)”旨在指代计算机相关的实体,包括任一硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件和/或模块可以是被实现为在处理器上运行的进程、硬盘驱动器、(光学和/或磁存储介质的)多个存储驱动、对象、可执行文件、执行线程、程序和/或计算机。通过展示的方式,在服务器上运行的应用和服务器二者都可以是组件和/或模块。一个或多个组件和/或模块可以驻留在进程和/或执行线程内,并且如给定的实施方式所期望的,组件和/或模块可以位于一个计算机上和/或分布在两个或更多个计算机之间。实施例并不局限于此上下文中。
在系统400内的各种设备和在系统400的设备内的组件和/或模块可以经由如由各线条或箭头所指示的各种类型的通信介质通信地耦合。设备、组件和/或模块可以协调彼此之间的操作。协调可涉及信息的单向或双向交换。例如,设备、组件和/或模块可以以通过通信介质传达的信号的形式来传达信息。所述信息可以被实现为分配给各信号线的信号。在这种分配中,每个消息都是信号。然而,另外的实施例可以替代地采用数据消息。可以跨各种连接发送这样的数据消息。在设备内的示例性连接包括并行接口、串行接口和总线接口。在设备之间的示例性连接可以包括通过有线或无线通信网络的网络连接。
在各个实施例中,系统400的各种模块和存储设备可以被组织为分布式系统。分布式系统通常包括多个通过计算机网络通信的自主计算机。这些计算机可以彼此交互以便实现共同的目标,如解决计算问题。例如,计算问题可以被划分成多个任务,这些任务中的每一个都由一个计算机来解决。在分布式系统中运行的计算机程序被称为分布式程序,并且分布式编程是编写这类程序的过程。分布式系统的示例可以包括而不限于:客户端-服务器架构、3层架构、N-层架构、紧密耦合或集群架构、对等架构、主-从架构、共享数据库架构以及其他类型的分布式系统。值得注意的是,尽管在描述用于数据检索的各种增强技术时,一些实施例可以利用分布式系统,但是可以认识到,用于数据检索的增强技术也可以由单个计算设备来实现。实施例并不局限于此上下文中。
系统400可以包括SGX飞地404。虽然飞地404可以被展示为SGX飞地,但是可以认识到,在一些实施例中可以使用其他类型的飞地。在此示例中,飞地404可以是SGX的一部分,所述部分可以允许设备在安全环境(被称为飞地)中执行应用(比如客户端应用402)的敏感部分以保护代码和数据两者免受损害。在分布式应用(比如IoT系统)中,在一个示例中,驻留在不同处理器上的飞地可能需要互相认证以建立安全的通信信道。目前,允许两个远程SGX飞地彼此进行认证的许多解决方案依赖于集中式可信机构。一些解决方案(像TLS认证)可以依赖于与集中式证书机构(CA)的交互来分发和验证公钥证书。在这些情况下,证书可能会发布给个人或公司,并且暴露个人身份。
在图4中阐述的系统可以在无需集中式可信机构的情况下使用由英特尔证明服务器(IAS)提供给任何SGX飞地的认证。可以认识到,在各个实施例中可以使用其他类型的证明服务器。在一些实施例中,认证可以基于硬件增强隐私ID(EPID)而不是连接至个人或应用的标识符。以这种方式,可以保留个人平台或其用户的隐私。在一些实施例中,认证因此可以是匿名的,证明在保护设备和/或用户的身份的同时飞地在有效SGX硬件中运行。然后飞地可以信任其正在运行的代码的远程飞地的证明。以这种方式,本文中所描述的技术可以提供若干优点,包括允许保护SGX设备和所有者的身份,因为在一些实施例中,公钥证书可以被匿名地发布至在有效SGX硬件上运行的SGX飞地。进一步地,本文中所描述的技术可能需要对可能需要通过认证来加强的基于SGX的分布式应用进行最少的修改。更进一步地,如上所述,本文中所描述的技术可以在无需集中式机构的情况下提供飞地之间的认证。
如图4中所展示的,可以在如本文中所描述的客户端设备上运行的客户端应用402可以使用安全飞地(如SGX飞地404)来执行和/或存储数据。在一些实施例中,SGX飞地可以驻留在客户端设备的一个或多个处理器上。虽然贯穿始终使用了具体示例,但是所描述的技术可以与在各种类型的可信执行环境内的任何处理器一起使用。如以上所阐述的,虽然飞地404可以被展示为SGX飞地,但在一些实施例中可以使用其他安全飞地。SGX飞地404可以生成待发送至其他安全飞地的数据,比如可以驻留在一个或多个服务器设备上的SGX飞地410-a到410-n,这些SGX飞地可以各自分别运行一个或多个服务器应用408-a到408-n,其中,a和n表示正整数。SGX飞地410-a到410-n中的每一个都可以驻留在不同的处理器上,并且因此可能需要认证以便建立与SGX飞地404的安全数据通信信道。
在实施例中,SGX飞地404可以使用任何公知的密码散列算法(如例如SHA-1或SHA-256)来生成包含数据的密码散列的SGX报告。客户端应用402可以生成关于SGX报告的可链接引用,所述可链接引用可由引用飞地(Quoting Enclave,QE)(未示出)进行签名,所述引用飞地进而生成包含报告和密码散列的引用。在一些实施例中,引用飞地可以作为来自SGX飞地的单独组件被包括在设备内,并且可以被配置用于生成如在此所阐述的引用。在403处,SGX飞地404可以请求来自可以驻留在远程服务器上的证明服务406(在一些实施例中为IAS)的引用Q的证明。来自证明服务406的证明响应405可以使用公共IAS报告密钥进行签名,并且可以包含引用的副本,如所展示的。
在407处,客户端应用402可以将引用、关于所述引用的IAS证明报告和数据发送至驻留在不同处理器上的一个或多个其他飞地,比如SGX飞地410-a到410-n。这些飞地可以通过使用IAS报告密钥检查IAS响应上的签名来验证引用的有效性。接收方飞地可以验证数据的密码散列与所述引用内的散列相对应。以这种方式,可以信任数据直接来自发送飞地。
本文中所包括的是表示用于执行所公开架构的新颖方面的示例性方法的一组流程图。虽然出于简化解释的目的,本文中例如采用流程图或流图的形式示出的一种或多种方法被示出并描述为一系列动作,但是将理解和认识到,所述方法不受动作顺序的限制,因为一些动作可以根据这些动作以与本文中所示出和描述的动作不同的顺序和/或与其他动作同时地发生。例如,本领域技术人员将理解和认识到,可以将方法交替地表示为一系列相互联系的状态或事件,如采用状态图。而且,并不是方法中所展示的所有动作都会是新颖实施方式所需要的。
图5展示了根据实施例的逻辑流程500。首先,在客户端侧上,在502处,SGX飞地可以生成数据D,所述数据可以包括应用可能需要由安全飞地来安全地处理的任何数据。在504处,SGX飞地可以使用公知的散列算法(如例如SHA-1或SHA-256)来计算D的密码散列H。在506处,SGX飞地可以创建包含H的SGX报告R。在508处,应用可以从引用飞地处获得关于所述报告R的SGX引用Q,如上所述,所述引用飞地可以包括被配置用于生成引用的单独的飞地组件。在510处,应用可以从IAS处获得关于Q的远程证明响应RA,在示例性实施例中使用IAS,然而,可以使用其他远程证明服务。在512处,应用可以将RA和D(Q、H、R在RA内)广播至一个或多个服务器组件,每个服务器组件都包括服务器应用和飞地,如以上关于图4所展示的。
转向服务器侧,在514处,在服务器侧上的应用可以将RA和D复制到与服务器侧应用相关联的服务器SGX飞地中。在一些实施例中,服务器侧应用可以与安全飞地相关联,所述安全飞地不同于与最初生成D的客户端应用相关联的处理器。在516处,服务器SGX飞地可以检查在RA上所包括的IAS公共报告密钥签名。在518处,可以检查签名的有效性是否有效,并且如果无效,则可以在526处退出逻辑流程。如果有效,则在520处,服务器SGX飞地可以检查D的密码散列是否与H匹配。如果不匹配,则可以在526处退出逻辑流程。如果发现匹配,则在524处,SGX飞地可以接受D作为由客户端SGX飞地产生的数据。
图6A展示了根据实施例的逻辑流程600。如在图6A中所展示的,可以在所交换的数据是公钥的情况下执行远程飞地认证。在这种情况下,证明服务器(IAS)可以保证这种公钥是由合法SGX飞地生成的。换言之,IAS可以充当证明特定SGX飞地(具有在引用中指定的属性)已经发布公钥的公证制度。例如,IAS可以在TLS领域中扮演与CA类似的角色。在一些实施例中,公钥可以用于认证由发布所述公钥的飞地发起的数据(例如,作为用于建立安全信道的对称密钥)。如以下关于图6B所描述的,例如,两个远程飞地(由客户端应用和服务器应用运行,类似于图4中所展示的飞地)可能需要安全地交换对称会话密钥S。
开始于客户端侧,在602处,SGX飞地可以使用已知的公共-私有密钥加密技术来生成公共-私有密钥对(SK,PK)。在604处,SGX飞地可以使用已知的密码散列技术(如例如SHA-1或SHA-256)来计算PK的密码散列H。在606处,SGX飞地可以创建包含散列H的SGX报告R。在608处,客户端应用可以从引用飞地处获得关于所述报告R的SGX引用Q,如上所述,所述引用飞地可以作为单独的组件被包括在同样包含SGX飞地的客户端设备内。在610处,客户端应用可以获得例如来自IAS(或者在其他实施例中使用其他证明服务)的关于Q的远程证明响应RA。在612处,应用可以将RA和PK(Q、H、R可以包括在RA中)广播至驻留在一个或多个相应服务器上的一个或多个服务器应用,每个服务器包括相应的安全飞地,比如SGX飞地。
转向服务器侧,在614处,应用可以将RA和PK复制到服务器侧SGX飞地中。在616处,服务器侧SGX飞地可以检查在RA上的IAS公共报告密钥签名。在618处,如果签名无效,则可以在634处退出逻辑流程。如果有效,则在620处,服务器侧SGX飞地可以检查PK的密码散列是否与H匹配。如果在622处不匹配,则可以在634处退出逻辑流程。如果匹配,则在624处,服务器侧SGX飞地可以接受客户端侧SGX飞地的公钥。进而,在625处,服务器侧SGX飞地可以采用以上关于步骤602至624所描述的类似方式将其公钥发送至客户端侧SGX飞地,并且在服务器和客户端的角色颠倒的情况下可以重复所述过程,其中,可以利用服务器侧SGX飞地的公钥来重复步骤602至622。以这种方式,可以在客户端SGX飞地与服务器SGX飞地之间来回发送秘密,如以下关于图6B所阐述的。
在一些实施例中,可以认识到,除了以上所述的内容之外,可链接引用可以用于获得运行SGX飞地的处理器的唯一标识符。例如,此标识符可以是包含在IAS响应中的唯一EPID假名。这个特征可用于针对需要这种约束的应用而将所发布公钥数量限制为每个SGX处理器一个公钥。这种约束可能以牺牲由EPID提供的匿名为代价得到。因为现在每个SGX平台都由EPID假名来标识,所以在此实施例中匿名可以被简化为‘假名’。
图6B展示了根据实施例的逻辑流程601。在626处,客户端侧SGX飞地可以使用PK来对私密密钥S进行签名并加密:C=E(PK,S)。在628处,应用可以将C发送至服务器侧SGX飞地。转向服务器侧,在630处,应用可以将C复制到服务器侧SGX飞地中。在632处,服务器侧SGX飞地可以获得私密密钥S=D(SK,C),并且验证客户端侧SGX飞地的签名。可以认识到,可以以相反的方向执行图6B的逻辑流程,即,在一些实施例中,从服务器侧SGX飞地到客户端侧SGX飞地。
图7展示了根据实施例的制品。存储介质700可以包括任何计算机可读存储介质或机器可读存储介质,如光学、磁性或半导体存储介质。在一些实施例中,存储介质700可以包括非暂态存储介质。在各实施例中,存储介质700可以包括制品。在一些实施例中,存储介质700可以存储计算机可执行指令,如例如用于实现逻辑流程500、600和/或601的计算机可执行指令。计算机可读存储介质或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除存储器或不可移除存储器、可擦除存储器或不可擦除存储器、可写存储器或可重写存储器等。计算机可执行指令的示例可以包括任何适当类型的代码,如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等。实施例不局限于这些示例。
图8展示了集中式系统800的框图。集中式系统800可以在单个计算实体中(如完全在单个设备810内)实现web服务系统820的结构和/或操作中的部分或全部。
设备810可以包括能够接收、处理并发送用于web服务系统820的信息的任何电子设备。电子设备的示例可以包括但不限于:客户端设备、个人数字助理(PDA)、移动计算设备、智能电话、蜂窝电话、电子书阅读器、消息收发设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、互联网服务器、工作站、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统、消费电子设备、可编程消费电子设备、游戏设备、电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、桥接器、交换机、机器或其组合。实施例并不局限于此上下文中。
设备810可以使用处理组件830来执行用于web服务系统820的处理操作或逻辑。处理组件830可以包括各种硬件元件、软件元件、或两者的组合。硬件元件的示例可以包括:设备、逻辑器件、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括:软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。判定是否是使用硬件元件和/或软件元件来实现实施例可以根据多个因数而变化,如给定的实现方式所期望的,如期望的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
设备810可以使用通信组件840来执行用于web服务系统820的通信操作或逻辑。通信组件840可以实现任何公知的通信技术和协议,如适用于与分组交换网络(例如,如互联网等公共网络、如企业内部网等专用网络等)、电路交换网络(例如,公共交换电话网络)或分组交换的网络和电路交换网络的组合(通过适当的网关和转换器)一起使用的技术。通信组件840可以包括各种类型的标准通信元件,诸如一个或多个通信接口、网络接口、网络接口卡(NIC)、无线电、无线发射器/接收器(收发器)、有线和/或无线通信介质、物理连接器等。通过示例而非限制的方式,通信介质809、849包括有线通信介质和无线通信介质。有线通信介质的示例可以包括导线、电缆、金属引线、印刷电路板(PCB)、底板、交换结构、半导体材料、双绞线、同轴电缆、光纤、所传播的信号等。无线通信介质的示例可以包括声学、射频(RF)频谱、红外线以及其他无线介质。
设备810可以经由通信组件840分别使用通信信号807、847分别通过通信介质809、849与其他设备805、845进行通信。如给定的实现方式所期望的,设备805、845可以是在设备810的内部或外部。
例如,设备805可以与客户端设备(如由用户使用的电话)相对应。通过介质809发送的信号807可以因此包括电话与web服务系统820之间的通信,其中,所述电话发射请求并且接收网页或其他数据作为响应。
设备845可以与由不同于以上所述的第一用户的用户所使用的第二用户设备相对应。在一个实施例中,设备845可以使用通过介质849发送的信号847来将信息提交至web服务系统820,以便构建第一用户加入由web服务系统820提供的服务的邀请。例如,如果web服务系统820包括社交联网服务,则作为信号847发送的信息可以包括第一用户的姓名和联系人信息,联系人信息包括稍后由web服务系统820用来识别来自用户的传入请求的电话号码或其他信息。在其他实施例中,设备845可以与由作为第一用户在社交联网服务上的好友的不同用户所使用的设备相对应,作为web服务系统820的社交联网功能的一部分,包括状态信息、新闻、图像、联系人信息或其他社交联网信息的信号847最终被传输至设备805以供由第一用户查看。
图9展示了分布式系统900的框图。分布式系统900可以跨多个计算实体分布所公开的实施例的结构和/或操作的一部分。分布式系统900的示例可以包括而不限于:客户端-服务器架构、3层架构、N-层架构、紧密耦合或集群的架构、对等架构、主-从架构、共享数据库架构以及其他类型的分布式系统。实施例并不局限于此上下文中。
分布式系统900可以包括客户端设备910和服务器设备940。一般而言,客户端设备910和服务器设备940可以与如参照图8所描述的客户端设备810相同或类似。例如,客户端系统910和服务器系统940可以各自包括分别与如参照图8所描述的处理组件830和通信组件840相同或类似的处理组件920、950和通信组件930、960。在另一示例中,设备910、940可以经由通信组件930、960使用通信信号907通过通信介质905进行通信。
客户端设备910可以包括或采用操作用于执行根据所描述的实施例的各种方法的一个或多个客户端程序。在一个实施例中,例如,客户端设备910可以实施关于图5和图6A至图6B所描述的一些步骤。
服务器设备940可以包括或采用操作用于执行根据所描述的实施例的各种方法的一个或多个服务器程序。在一个实施例中,例如,服务器设备940可以实施关于图5和图6A至图6B所描述的一些步骤。
图10展示了适用于实现之前所述的各实施例的示例性计算架构700的实施例。在一个实施例中,计算架构1000可以包括或被实现为电子设备的一部分。电子设备的示例可以包括本文中所描述的这些。实施例并不局限于此上下文中。
如本申请中所使用的,术语“系统(system)”和“组件(component)”旨在指计算机相关实体、或者硬件、硬件和软件的组合、软件、或执行中的软件,其示例由示例性计算架构1000提供。例如,组件可以是但不限于:在处理器上运行的进程、处理器、硬盘驱动器、(光学和/或磁存储介质的)多个存储驱动、对象、可执行文件、执行线程、程序和/或计算机。通过展示的方式,在服务器上运行的应用程序和服务器二者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。进一步地,组件可以通过各种类型的通信介质彼此通信地耦合以协调操作。所述协调可以涉及信息的单向或双向交换。例如,组件可以以在通信介质上传达的信号的形式来传达信息。所述信息可以被实现为分配给各信号线的信号。在这种分配中,每个消息都是信号。然而,另外的实施例可以替代地采用数据消息。可以跨各种连接发送这样的数据消息。示例性连接包括并行接口、串行接口和总线接口。
计算架构1000包括各种公共计算元件,比如一个或多个处理器、多核处理器、协处理器、存储单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。然而,实施例不限于由计算架构1000实现。
如图10中所示,计算架构1000包括处理单元1004、系统存储器1006和系统总线1008。处理单元1004可以是各种可商购的处理器中的任一种,包括但不限于:以及处理器;应用,嵌入式和安全处理器;处理器;IBM和Cell处理器;Core(2) 处理器;以及类似处理器。双微处理器、多核处理器以及其他多处理器架构也可以用作处理单元1004。
系统总线1008为系统组件(包括但不限于系统存储器1006到处理单元1004)提供接口。系统总线1008可以是几种类型的总线结构中的任何一种,其可以进一步使用各种可商购的总线架构中的任何一种互连到存储器总线(具有或没有存储器控制器)、外围总线和局部总线。接口适配器可以经由槽架构连接到系统总线1008。示例槽架构可以包括但不限于加速图形端口(AGP)、卡总线、(扩展)工业标准架构((E)ISA)、微通道架构(MCA)、NuBus、外围组件互连(扩展)(PCI(X))、PCI Express、个人计算机存储卡国际协会(PCMCIA)等。
计算架构1000可以包括或实现各种制品。制品可以包括用于存储逻辑的计算机可读存储介质。计算机可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除存储器或不可移除存储器、可擦除存储器或不可擦除存储器、可写存储器或可重写存储器等。逻辑的示例可以包括使用任何合适类型的代码(比如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等)实现的可执行计算机程序指令。实施例还可以至少部分地实现为包含在非暂态计算机可读介质之中或之上的指令,所述指令可以由一个或多个处理器读取和执行以使得能够执行本文描述的操作。
系统存储器1006可以包括各种类型的一个或多个更高速存储单元形式的计算机可读存储介质,如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合体存储器(如铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅氧氮氧硅(SONOS)存储器、磁性或光学卡、设备阵列(如独立磁盘冗余阵列(RAID))驱动、固态存储器驱动(例如,USB存储器)、固态驱动(SSD)和适用于存储信息的任何其他类型的存储介质。在图10所示的所展示的实施例中,系统存储器1006可以包括非易失性存储器1010和/或易失性存储器1013。基本输入/输出系统(BIOS)可以存储在非易失性存储器1010中。
计算机1002可以包括各种类型的采用一个或多个低速存储单元的形式的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)1014、用于从可移除磁盘1018读取或写入的软磁盘驱动器(FDD)1016、以及用于从可移除光盘1022读取或写入的光盘驱动器1020(例如,CD-ROM、DVD或蓝光碟)。HDD 1014、FDD 1016和光盘驱动器1020可以分别通过HDD接口1024、FDD接口1026和光盘驱动器接口1028连接到系统总线1008。用于外部驱动器实现的HDD接口1024可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一者或两者。
驱动器以及相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储设备。例如,多个程序模块可以存储在驱动器和存储器单元1010、1013中,包括操作系统1030、一个或多个应用程序1032、其他程序模块1034和程序数据1036。在一个实施例中,一个或多个应用程序1032、其他程序模块1034和程序数据1036可以包括例如用于实现所公开的实施例的各种应用和/或组件。
用户可以通过一个或多个有线/无线输入设备(例如,键盘1038和指示设备,比如鼠标1040)将命令和信息输入到计算机1002中。其他输入设备可以包括麦克风、红外(IR)远程控制、射频(RF)远程控制、游戏板、手写笔、读卡器、软件狗(Dongle)、指纹打印读取器、手套、图形输入板、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式、电阻式等)、轨迹球、轨迹板、传感器、触控笔等等。这些和其他输入设备经常通过输入设备接口1042连接到处理单元1004,所述输入设备接口耦合到系统总线1008,但是可以通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等其它接口连接。
显示器1044也经由接口(比如视频适配器1046)连接至系统总线1008。显示器1044可以在计算机1002的内部或外部。除了显示器1044之外,计算机通常包括其他外围输出设备,比如扬声器、打印机等。
计算机1002可以使用经由到一个或多个远程计算机(诸如远程计算机1048)的有线和/或无线通信的逻辑连接在联网环境中操作。远程计算机1048可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他公共网络节点,并且通常包括相对于计算机1002描述的许多或全部元件,尽管为了简洁的目的,仅展示了存储器/存储设备1050。所描绘的逻辑连接包括至局域网(LAN)1052和/或更大的网络(例如,广域网(WAN)1054)的有线/无线连通性。这种LAN和WAN联网环境在办公室和公司中是常见的,并且便于企业范围的计算机网络(例如,内联网),所有这些网络都可以连接到全球通信网络(例如互联网)。
当在LAN连网环境中使用时,计算机1002通过有线和/或无线通信网络接口或适配器1056连接至LAN 1052。适配器1056可以便于到LAN 1052的有线和/或无线通信,所述LAN还可以包括布置在其上的用于与适配器1056的无线功能通信的无线接入点。
当在WAN联网环境中使用时,计算机1002可以包括调制解调器1058,或者连接到WAN 1054上的通信服务器,或者具有用于通过WAN 1054例如通过互联网建立通信的其他装置。可以是内部或外部的和有线和/或无线设备的调制解调器1058经由输入设备接口1042连接到系统总线1008。在联网环境中,相对于计算机1002描绘的程序模块或其部分可以被存储在远程存储器/存储设备1050中。将认识到,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他装置。
计算机1002可操作以使用IEEE 802标准家族与有线或无线设备或实体进行通信,如无线设备操作性地布置在无线通信(例如,IEEE 802.11无线调制技术)中。这至少包括Wi-Fi(或无线保真)、WiMax以及蓝牙TM无线技术等等。因此,通信可以是与常规网络一样的预定义结构或简单地是至少两个设备之间的自组织通信。Wi-Fi网络使用被称为IEEE802.11x(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。WiFi网络可用于将计算机彼此连接、连接到互联网以及连接到有线网络(使用IEEE 802.3相关的介质和功能)。
图11展示了适用于实现之前所述的各实施例的示例性通信架构1100的框图。通信架构1100包括各种常见通信元件,比如发射器、接收器、收发器、无线电、网络接口、基带处理器、天线、放大器、滤波器、电源等。然而,实施例不限于由通信架构1100实现。
如图11中所示,通信架构1100包括一个或多个客户端1110和服务器1140。例如,客户端1110可以实现客户端设备1110。例如,服务器1140可以实现服务器设备1140。客户端1110和服务器1140操作性地连接至一个或多个相应的客户端数据存储设备1120和服务器数据存储设备1150,所述客户端数据存储设备和服务器数据存储设备可以被用来将信息(比如cookie和/或相关联的上下文信息)本地存储至相应的客户端1110和服务器1140。
客户端1110和服务器1140可以使用通信框架1130在彼此之间传达信息。通信框架1130可以实现任何公知的通信技术和协议。通信框架1130可以被实现为分组交换网络(例如,如互联网等公共网络、如企业内部网等专用网络等)、电路交换网络(例如,公共交换电话网络)或分组交换的网络和电路交换网络的组合(通过适当的网关和转换器)。
通信框架1130可以实现被安排用于接受、传达和连接至通信网络的各种网络接口。网络接口可以被视为专用形式的输入输出接口。网络接口可以采用连接协议,包括而不限于:直接连接、以太网(例如,厚、薄、双绞10/100/1000Base T等)、令牌环、无线网络接口、蜂窝网络接口、IEEE 802.11a-x网络接口、IEEE 802.16网络接口、IEEE 802.20网络接口等。进一步地,多个网络接口可以用于与各种通信网络类型结合。例如,多个网络接口可以被用来允许通过广播网络、组播网络和单播网络进行通信。如果处理需求指示更大量的速度和容量,则分布式网络控制器架构可以类似地被用来集中、负载平衡、以及以其他方式增大客户端1110和服务器1140所需的通信带宽。通信网络可以是有线网络和/或无线网络的任何一种和组合,包括但不限于:直接互连、安全自定义连接、专用网络(例如,企业内联网)、公共网络(例如,因特网)、个域网(PAN)、局域网(LAN)、城域网(MAN)、将任务作为互联网上的节点操作(OMNI)、广域网(WAN)、无线网络、蜂窝网络以及其他通信网络。
一些实施例可使用表述“一个实施例(one embodiment)”和“实施例(anembodiment)”及其派生词来描述。这些术语意味着结合实施例描述的具体特征、结构或者特性被包括在至少一个实施例中。短语“在一个实施例中(in one embodiment)”在本说明书中各地方的出现不一定全都引用相同的实施例。进一步地,一些实施例可使用表述“耦合(coupled)”和“连接(connected)”及其派生词来描述。这些术语并不必旨在作为彼此的同义词。例如,一些实施例可使用术语“连接(connected)”和/或“耦合(coupled)”来描述,以指示两个或更多个元件彼此直接物理接触或电气接触。然而,术语“耦合(coupled)”还可意指两个或更多个元件彼此不直接接触,但仍彼此协作或交互。
在总体上参照本文中所使用的符号和术语的情况下,可以就在计算机或计算机网络上执行的程序过程而言呈现本文的具体实施方式。这些过程描述及表示由本领域技术人员用来向本领域其他技术人员最有效地传达他们工作的实质。
过程在此处并且通常被认为是导致期望结果的自相一致的操作序列。这些操作是需要对物理量进行物理操纵的操作。通常,尽管不一定,这些量采取能够被存储、传递、组合、比较并且以其他方式操纵的电、磁或光信号的形式。主要出于常见用法的原因,证明有时将这些信号称为位、值、元素、符号、字符、术语、数字等是方便的。然而,应当指出的是,所有这些术语和类似术语将与适当的物理量相关联并且仅是应用于那些量的方便标签。
进一步地,经常在通常与由人类操作者执行的智力操作相关联的术语(比如,添加或比较)中提及所执行的操纵。在大多数情况下,本文中所描述的形成一个或多个实施例的一部分的操作中的任何操作中不需要或不期望人类操作者的这种能力。相反,这些操作是机器操作。用于执行各实施例的操作的有用机器包括通用数字计算机或类似设备。
各个实施例还涉及用于执行这些操作的装置或系统。此装置可以被专门构造成用于所需目的,或者其可以包括通过存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文中呈现的过程并未在本质上涉及特定计算机或其他装置。各种通用机器可以与根据本文的教导编写的程序一起使用,或者可以证明构造更专用的装置来执行所需方法步骤是方便的。各种这些机器的所需结构将从所给出的描述中显现。
在前述具体实施方式中,可以看到,出于将本公开连成一体的目的而将各种特征一起组合在单个实施例中。本公开的方法不应被解释为反映以下意图:所要求保护的实施例需要比每项权利要求中明确表述的特征更多的特征。相反,如以下权利要求书所反映的,本发明的主题在于比单个公开的实施例的全部特征少。因此,以下的权利要求书据此被并入详细的说明书中,其中,每项权利要求独立自主地作为单独的实施例。在所附权利要求书中,术语“包括(including)”和“其中(in which)”分别用作对应术语“包括(comprising)”和“其中(wherein)”的易懂的英文等价词。此外,术语“第一”、“第二”、“第三”等仅仅用作标签,并且不旨在对它们的对象施加数值要求。
以上所描述的内容包括所公开的架构的示例。当然,不可能描述组件和/或方法的每个可想到的组合,但是本领域普通技术人员可以认识到许多其他组合和置换是可能的。
示例1.一种用于飞地认证的系统,所述系统包括:客户端侧安全飞地,所述客户端侧安全飞地由处理器执行并且被配置用于:生成公共-私有密钥对(SK,PK);计算PK的密码散列H;创建包含H的报告R;从引用飞地组件获得关于所述报告R的引用Q;从证明服务获得远程证明响应RA;并且将RA和PK广播至一个或多个服务器侧飞地。
示例2.如示例1所述的系统,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
示例3.如示例1所述的系统,其中,所述安全飞地是软件防护扩展(SGX)飞地。
示例4.如示例1所述的系统,其中,所述报告是软件防护扩展(SGX)报告。
示例5.如示例1所述的系统,其中,所述引用是软件防护扩展(SGX)引用。
示例6.如示例1所述的系统,其中,所述证明服务是英特尔证明服务(IAS)。
示例7.一种用于在客户端侧安全飞地处进行飞地认证的计算机实现的方法,所述方法包括:生成公共-私有密钥对(SK,PK);计算PK的密码散列H;创建包含H的报告R;从引用飞地组件获得关于所述报告R的引用Q;从证明服务获得远程证明响应RA;以及将RA和PK广播至一个或多个服务器侧飞地。
示例8.如示例7所述的计算机实现的方法,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
示例9.如示例7所述的计算机实现的方法,其中,所述安全飞地是软件防护扩展(SGX)飞地。
示例10.如示例7所述的计算机实现的方法,其中,所述报告是软件防护扩展(SGX)报告。
示例11.如示例7所述的计算机实现的方法,其中,所述引用是软件防护扩展(SGX)引用。
示例12.如示例7所述的计算机实现的方法,其中,所述证明服务是英特尔证明服务(IAS)。
示例13.一种包括存储有指令的非暂态计算机可读存储介质的制品,所述指令由计算设备的处理电路系统执行以便在客户端侧安全飞地处进行飞地认证,所述指令使所述计算设备:生成公共-私有密钥对(SK,PK);计算PK的密码散列H;创建包含H的报告R;从引用飞地组件获得关于所述报告R的引用Q;从证明服务获得远程证明响应RA;并且将RA和PK广播至一个或多个服务器侧飞地。
示例14.如示例13所述的制品,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
示例15.如示例13所述的制品,其中,所述安全飞地是软件防护扩展(SGX)飞地。
示例16.如示例13所述的制品,其中,所述报告是软件防护扩展(SGX)报告。
示例17.如示例13所述的制品,其中,所述引用是软件防护扩展(SGX)引用。
示例18.如示例13所述的制品,其中,所述证明服务是英特尔证明服务(IAS)。
示例19.一种用于在客户端侧安全飞地处进行飞地认证的计算设备,所述计算设备包括:用于生成公共-私有密钥对(SK,PK)的装置;用于计算PK的密码散列H的装置;用于创建包含H的报告R的装置;用于从引用飞地组件获得关于所述报告R的引用Q的装置;用于从证明服务获得远程证明响应RA的装置;以及用于将RA和PK广播至一个或多个服务器侧飞地的装置。
示例20.如示例19所述的计算设备,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
示例21.如示例19所述的计算设备,其中,所述安全飞地是软件防护扩展(SGX)飞地。
示例22.如示例19所述的计算设备,其中,所述报告是软件防护扩展(SGX)报告。
示例23.如示例19所述的计算设备,其中,所述引用是软件防护扩展(SGX)引用。
示例24.如示例19所述的计算设备,其中,所述证明服务是英特尔证明服务(IAS)。
示例25.一种用于在客户端侧安全飞地处进行飞地认证的装置,所述装置包括:至少一个存储器;至少一个处理器;以及逻辑,所述逻辑的至少一部分包括在硬件中并且由所述至少一个处理器执行,所述逻辑用于:生成公共-私有密钥对(SK,PK);计算PK的密码散列H;创建包含H的报告R;从引用飞地组件获得关于所述报告R的引用Q;从证明服务获得远程证明响应RA;并且将RA和PK广播至一个或多个服务器侧飞地。
示例26.如示例25所述的装置,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
示例27.如示例25所述的装置,其中,所述安全飞地是软件防护扩展(SGX)飞地。
示例28.如示例25所述的装置,其中,所述报告是软件防护扩展(SGX)报告。
示例29.如示例25所述的装置,其中,所述引用是软件防护扩展(SGX)引用。
示例30.如示例25所述的装置,其中,所述证明服务是英特尔证明服务(IAS)。
示例31.一种用于飞地认证的系统,所述系统包括:服务器侧安全飞地,所述服务器侧安全飞地由处理器执行并且被配置用于:接收远程证明响应RA,所述RA包括引用Q、公共-私有密钥对(SK,PK)的散列H、以及报告R;接收公共密钥PK;将RA和PK存储到所述服务器侧安全飞地中;
确定在RA上的证明服务公共报告密钥签名有效;确定PK的密码散列与H匹配;并且接受PK作为客户端侧安全飞地的经认证公共密钥。
示例32.如示例31所述的系统,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
示例33.如示例31所述的系统,其中,所述安全飞地是软件防护扩展(SGX)飞地。
示例34.如示例31所述的系统,其中,所述报告是软件防护扩展(SGX)报告。
示例35.如示例31所述的系统,其中,所述引用是软件防护扩展(SGX)引用。
示例36.如示例31所述的系统,其中,所述证明服务是英特尔证明服务(IAS)。
示例37.一种用于飞地认证的计算机实现的方法,所述方法包括:在服务器侧安全飞地处接收远程证明响应RA,所述RA包括引用Q、公共-私有密钥对(SK,PK)的散列H、以及报告R;在所述服务器侧安全飞地处接收公共密钥PK;将RA和PK存储到所述服务器侧安全飞地中;确定在RA上的证明服务公共报告密钥签名有效;确定PK的密码散列与H匹配;以及接受PK作为客户端侧安全飞地的经认证公共密钥。
示例38.如示例37所述的计算机实现的方法,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
示例39.如示例37所述的计算机实现的方法,其中,所述安全飞地是软件防护扩展(SGX)飞地。
示例40.如示例37所述的计算机实现的方法,其中,所述报告是软件防护扩展(SGX)报告。
示例41.如示例37所述的计算机实现的方法,其中,所述引用是软件防护扩展(SGX)引用。
示例42.如示例37所述的计算机实现的方法,其中,所述证明服务是英特尔证明服务(IAS)。
示例43.一种包括存储有指令的非暂态计算机可读存储介质的制品,所述指令由计算设备的处理电路系统执行以便进行飞地认证,所述指令使所述计算设备:在服务器侧安全飞地处接收远程证明响应RA,所述RA包括引用Q、公共-私有密钥对(SK,PK)的散列H、以及报告R;在所述服务器侧安全飞地处接收公共密钥PK;将RA和PK存储到所述服务器侧安全飞地中;确定在RA上的证明服务公共报告密钥签名有效;确定PK的密码散列与H匹配;并且接受PK作为客户端侧安全飞地的经认证公共密钥。
示例44.如示例43所述的制品,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
示例45.如示例43所述的制品,其中,所述安全飞地是软件防护扩展(SGX)飞地。
示例46.如示例43所述的制品,其中,所述报告是软件防护扩展(SGX)报告。
示例47.如示例43所述的制品,其中,所述引用是软件防护扩展(SGX)引用。
示例48.如示例43所述的制品,其中,所述证明服务是英特尔证明服务(IAS)。
示例49.一种用于飞地认证的计算设备,所述计算设备包括:用于在服务器侧安全飞地处接收远程证明响应RA的装置,所述RA包括引用Q、公共-私有密钥对(SK,PK)的散列H、以及报告R;用于在所述服务器侧安全飞地处接收公共密钥PK的装置;用于将RA和PK存储到所述服务器侧安全飞地中的装置;用于确定在RA上的证明服务公共报告密钥签名有效的装置;用于确定PK的密码散列与H匹配的装置;以及用于接受PK作为客户端侧安全飞地的经认证公共密钥的装置。
示例50.如示例49所述的计算设备,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
示例51.如示例49所述的计算设备,其中,所述安全飞地是软件防护扩展(SGX)飞地。
示例52.如示例49所述的计算设备,其中,所述报告是软件防护扩展(SGX)报告。
示例53.如示例49所述的计算设备,其中,所述引用是软件防护扩展(SGX)引用。
示例54.如示例49所述的计算设备,其中,所述证明服务是英特尔证明服务(IAS)。
示例55.一种用于飞地认证的装置,所述装置包括:至少一个存储器;至少一个处理器;以及逻辑,所述逻辑的至少一部分包括在硬件中并且由所述至少一个处理器执行,所述逻辑用于:接收远程证明响应RA,所述RA包括引用Q、公共-私有密钥对(SK,PK)的散列H、以及报告R;接收公共密钥PK;将RA和PK存储到所述服务器侧安全飞地中;确定在RA上的证明服务公共报告密钥签名有效;确定PK的密码散列与H匹配;并且接受PK作为客户端侧安全飞地的经认证公共密钥。
示例56.如示例55所述的装置,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
示例57.如示例55所述的装置,其中,所述安全飞地是软件防护扩展(SGX)飞地。
示例58.如示例55所述的装置,其中,所述报告是软件防护扩展(SGX)报告。
示例59.如示例55所述的装置,其中,所述引用是软件防护扩展(SGX)引用。
示例60.如示例55所述的装置,其中,所述证明服务是英特尔证明服务(IAS)。

Claims (25)

1.一种用于飞地认证的系统,所述系统包括:
客户端侧安全飞地,所述客户端侧安全飞地由处理器执行并且被配置用于:
生成公共-私有密钥对(SK,PK);
计算PK的密码散列H;
创建包含H的报告R;
从引用飞地组件获得关于所述报告R的引用Q;
从证明服务获得远程证明响应RA;以及
将RA和PK广播至一个或多个服务器侧飞地。
2.如权利要求1所述的系统,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
3.如权利要求1所述的系统,其中,所述安全飞地是软件防护扩展(SGX)飞地。
4.如权利要求1所述的系统,其中,所述报告是软件防护扩展(SGX)报告。
5.如权利要求1所述的系统,其中,所述引用是软件防护扩展(SGX)引用。
6.如权利要求1所述的系统,其中,所述证明服务是英特尔证明服务(IAS)。
7.一种用于在客户端侧安全飞地处进行飞地认证的计算机实现的方法,所述方法包括:
生成公共-私有密钥对(SK,PK);
计算PK的密码散列H;
创建包含H的报告R;
从引用飞地组件获得关于所述报告R的引用Q;
从证明服务获得远程证明响应RA;以及
将RA和PK广播至一个或多个服务器侧飞地。
8.如权利要求7所述的计算机实现的方法,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
9.如权利要求7所述的计算机实现的方法,其中,所述安全飞地是软件防护扩展(SGX)飞地。
10.如权利要求7所述的计算机实现的方法,其中,所述报告是软件防护扩展(SGX)报告。
11.如权利要求7所述的计算机实现的方法,其中,所述引用是软件防护扩展(SGX)引用。
12.如权利要求7所述的计算机实现的方法,其中,所述证明服务是英特尔证明服务(IAS)。
13.一种用于在客户端侧安全飞地处进行飞地认证的装置,所述装置包括:
至少一个存储器;
至少一个处理器;以及
逻辑,所述逻辑的至少一部分被包括在硬件中并且由所述至少一个处理器执行,所述逻辑用于:
生成公共-私有密钥对(SK,PK);
计算PK的密码散列H;
创建包含H的报告R;
从引用飞地组件获得关于所述报告R的引用Q;
从证明服务获得远程证明响应RA;以及
将RA和PK广播至一个或多个服务器侧飞地。
14.如权利要求13所述的装置,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
15.如权利要求13所述的装置,其中,所述安全飞地是软件防护扩展(SGX)飞地。
16.如权利要求13所述的装置,其中,所述报告是软件防护扩展(SGX)报告。
17.如权利要求13所述的装置,其中,所述引用是软件防护扩展(SGX)引用。
18.如权利要求13所述的装置,其中,所述证明服务是英特尔证明服务(IAS)。
19.一种用于飞地认证的系统,所述系统包括:
服务器侧安全飞地,所述服务器侧安全飞地由处理器执行并且被配置用于:
接收远程证明响应RA,所述RA包括引用Q、公共-私有密钥对(SK,PK)的散列H、以及报告R;
接收公共密钥PK;
将RA和PK存储到所述服务器侧安全飞地中;
确定在RA上的证明服务公共报告密钥签名有效;
确定PK的密码散列与H匹配;以及
接受PK作为客户端侧安全飞地的经认证公共密钥。
20.如权利要求19所述的系统,其中,所述密码散列是使用SHA-1或SHA-256散列算法来执行的。
21.如权利要求19所述的系统,其中,所述安全飞地是软件防护扩展(SGX)飞地。
22.如权利要求19所述的系统,其中,所述报告是软件防护扩展(SGX)报告。
23.如权利要求19所述的系统,其中,所述引用是软件防护扩展(SGX)引用。
24.如权利要求19所述的系统,其中,所述证明服务是英特尔证明服务(IAS)。
25.一种用于飞地认证的计算机实现的方法,所述方法包括:
在服务器侧安全飞地处接收远程证明响应RA,所述RA包括引用Q、公共-私有密钥对(SK,PK)的散列H、以及报告R;
在所述服务器侧安全飞地处接收公共密钥PK;
将RA和PK存储到所述服务器侧安全飞地中;
确定在RA上的证明服务公共报告密钥签名有效;
确定PK的密码散列与H匹配;以及
接受PK作为客户端侧安全飞地的经认证公共密钥。
CN201810059364.5A 2017-02-22 2018-01-22 用于远程sgx飞地认证的技术 Active CN108462689B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762462298P 2017-02-22 2017-02-22
US62/462,298 2017-02-22
US15/600,667 US20180241572A1 (en) 2017-02-22 2017-05-19 Techniques for remote sgx enclave authentication
US15/600,667 2017-05-19

Publications (2)

Publication Number Publication Date
CN108462689A true CN108462689A (zh) 2018-08-28
CN108462689B CN108462689B (zh) 2022-04-01

Family

ID=63046134

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810059364.5A Active CN108462689B (zh) 2017-02-22 2018-01-22 用于远程sgx飞地认证的技术

Country Status (2)

Country Link
CN (1) CN108462689B (zh)
DE (1) DE102018101307A1 (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109150517A (zh) * 2018-09-04 2019-01-04 大唐高鸿信安(浙江)信息科技有限公司 基于sgx的密钥安全管理系统及方法
CN109800584A (zh) * 2018-10-24 2019-05-24 中国科学院信息工程研究所 一种基于Intel SGX机制的身份或属性加密计算方法和系统
CN109995776A (zh) * 2019-03-26 2019-07-09 西安纸贵互联网科技有限公司 一种互联网数据验证方法及系统
CN110011801A (zh) * 2018-11-16 2019-07-12 阿里巴巴集团控股有限公司 可信应用程序的远程证明方法及装置、电子设备
CN110519054A (zh) * 2019-08-29 2019-11-29 四川普思科创信息技术有限公司 一种基于可信计算技术进行物联网数据安全保护的方法
CN110832519A (zh) * 2019-03-27 2020-02-21 阿里巴巴集团控股有限公司 提高区块链网络与外部数据源之间的通信的完整性
CN110890962A (zh) * 2019-12-20 2020-03-17 支付宝(杭州)信息技术有限公司 认证密钥协商方法、装置、存储介质及设备
CN111092727A (zh) * 2020-03-18 2020-05-01 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
CN111611620A (zh) * 2020-05-26 2020-09-01 牛津(海南)区块链研究院有限公司 一种访问平台的访问请求处理方法及相关装置
CN112654987A (zh) * 2018-09-12 2021-04-13 华为技术有限公司 用于证明分布服务的方法和设备
CN113261252A (zh) * 2018-10-16 2021-08-13 华为技术有限公司 用于安全服务器通信的节点和方法
CN113302893A (zh) * 2019-01-08 2021-08-24 华为技术有限公司 用于信任验证的方法及装置
CN113329012A (zh) * 2021-05-28 2021-08-31 交叉信息核心技术研究院(西安)有限公司 一种可信执行环境的快速认证方法及系统
CN113343234A (zh) * 2021-06-10 2021-09-03 支付宝(杭州)信息技术有限公司 对代码安全性进行可信检查的方法及装置
CN113556230A (zh) * 2020-04-24 2021-10-26 华控清交信息科技(北京)有限公司 数据安全传输方法、证书相关方法、服务端、系统及介质
CN113591098A (zh) * 2021-06-11 2021-11-02 浙江大学 一种基于sgx的远程安全异构计算方法和系统
CN113721919A (zh) * 2021-08-09 2021-11-30 上海交通大学 基于Intel SGX可信执行环境的在线编译混淆实现方法
CN114268507A (zh) * 2021-12-30 2022-04-01 天翼物联科技有限公司 一种基于sgx的网络云安全优化方法、系统及相关介质
CN115514584A (zh) * 2022-11-16 2022-12-23 北京锘崴信息科技有限公司 服务器以及金融相关服务器的可信安全认证方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112422500B (zh) * 2020-09-25 2023-05-16 北京熠智科技有限公司 跨平台数据传输方法以及装置、存储介质、电子装置
CN114553590B (zh) * 2022-03-17 2023-08-22 抖音视界有限公司 数据传输方法及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070245138A1 (en) * 2003-10-17 2007-10-18 Jan Camenisch Documenting Security Related Aspects in the Process of Container Shipping
US20150186272A1 (en) * 2013-12-28 2015-07-02 Michael Goldsmith Shared memory in a secure processing environment
US20150347768A1 (en) * 2013-12-19 2015-12-03 Intel Corporation Policy-Based Trusted Inspection of Rights Managed Content
CN105659520A (zh) * 2013-11-25 2016-06-08 迈克菲股份有限公司 用于保护私有数据的安全代理
CN105765596A (zh) * 2013-12-18 2016-07-13 英特尔公司 集成端点和网络检测并消除攻击的技术

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070245138A1 (en) * 2003-10-17 2007-10-18 Jan Camenisch Documenting Security Related Aspects in the Process of Container Shipping
CN105659520A (zh) * 2013-11-25 2016-06-08 迈克菲股份有限公司 用于保护私有数据的安全代理
CN105765596A (zh) * 2013-12-18 2016-07-13 英特尔公司 集成端点和网络检测并消除攻击的技术
US20150347768A1 (en) * 2013-12-19 2015-12-03 Intel Corporation Policy-Based Trusted Inspection of Rights Managed Content
CN105745661A (zh) * 2013-12-19 2016-07-06 英特尔公司 对权限管理的内容的基于策略的受信任的检测
US20150186272A1 (en) * 2013-12-28 2015-07-02 Michael Goldsmith Shared memory in a secure processing environment

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109150517A (zh) * 2018-09-04 2019-01-04 大唐高鸿信安(浙江)信息科技有限公司 基于sgx的密钥安全管理系统及方法
CN112654987A (zh) * 2018-09-12 2021-04-13 华为技术有限公司 用于证明分布服务的方法和设备
US11929999B2 (en) 2018-09-12 2024-03-12 Huawei Cloud Computing Technologies Co., Ltd. Device and method for attesting distributed services
CN113261252A (zh) * 2018-10-16 2021-08-13 华为技术有限公司 用于安全服务器通信的节点和方法
CN113261252B (zh) * 2018-10-16 2022-07-12 华为云计算技术有限公司 用于安全服务器通信的节点和方法
CN109800584A (zh) * 2018-10-24 2019-05-24 中国科学院信息工程研究所 一种基于Intel SGX机制的身份或属性加密计算方法和系统
CN112468473A (zh) * 2018-11-16 2021-03-09 创新先进技术有限公司 可信应用程序的远程证明方法及装置、电子设备
CN112468473B (zh) * 2018-11-16 2023-10-24 创新先进技术有限公司 可信应用程序的远程证明方法及装置、电子设备
TWI716078B (zh) * 2018-11-16 2021-01-11 開曼群島商創新先進技術有限公司 可信應用程式的遠端證明方法及裝置、電子設備
CN110011801A (zh) * 2018-11-16 2019-07-12 阿里巴巴集团控股有限公司 可信应用程序的远程证明方法及装置、电子设备
CN113302893A (zh) * 2019-01-08 2021-08-24 华为技术有限公司 用于信任验证的方法及装置
CN109995776A (zh) * 2019-03-26 2019-07-09 西安纸贵互联网科技有限公司 一种互联网数据验证方法及系统
CN110832519B (zh) * 2019-03-27 2024-03-19 创新先进技术有限公司 提高区块链网络与外部数据源之间的通信的完整性
CN110832519A (zh) * 2019-03-27 2020-02-21 阿里巴巴集团控股有限公司 提高区块链网络与外部数据源之间的通信的完整性
CN110519054A (zh) * 2019-08-29 2019-11-29 四川普思科创信息技术有限公司 一种基于可信计算技术进行物联网数据安全保护的方法
CN110890962A (zh) * 2019-12-20 2020-03-17 支付宝(杭州)信息技术有限公司 认证密钥协商方法、装置、存储介质及设备
WO2021120871A1 (zh) * 2019-12-20 2021-06-24 支付宝(杭州)信息技术有限公司 认证密钥协商方法、装置、存储介质及设备
CN111092727B (zh) * 2020-03-18 2020-07-17 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
CN111092727A (zh) * 2020-03-18 2020-05-01 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
CN111988141B (zh) * 2020-03-18 2022-08-02 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
CN111988141A (zh) * 2020-03-18 2020-11-24 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
CN113556230A (zh) * 2020-04-24 2021-10-26 华控清交信息科技(北京)有限公司 数据安全传输方法、证书相关方法、服务端、系统及介质
CN111611620A (zh) * 2020-05-26 2020-09-01 牛津(海南)区块链研究院有限公司 一种访问平台的访问请求处理方法及相关装置
CN113329012A (zh) * 2021-05-28 2021-08-31 交叉信息核心技术研究院(西安)有限公司 一种可信执行环境的快速认证方法及系统
CN113329012B (zh) * 2021-05-28 2022-07-26 交叉信息核心技术研究院(西安)有限公司 一种可信执行环境的快速认证方法及系统
CN113343234A (zh) * 2021-06-10 2021-09-03 支付宝(杭州)信息技术有限公司 对代码安全性进行可信检查的方法及装置
WO2022257722A1 (zh) * 2021-06-10 2022-12-15 支付宝(杭州)信息技术有限公司 对代码安全性进行可信检查的方法及装置
CN113591098A (zh) * 2021-06-11 2021-11-02 浙江大学 一种基于sgx的远程安全异构计算方法和系统
CN113591098B (zh) * 2021-06-11 2024-03-26 浙江大学 一种基于sgx的远程安全异构计算方法和系统
CN113721919B (zh) * 2021-08-09 2024-03-12 上海交通大学 基于Intel SGX可信执行环境的在线编译混淆实现方法
CN113721919A (zh) * 2021-08-09 2021-11-30 上海交通大学 基于Intel SGX可信执行环境的在线编译混淆实现方法
CN114268507B (zh) * 2021-12-30 2023-12-05 天翼物联科技有限公司 一种基于sgx的网络云安全优化方法、系统及相关介质
CN114268507A (zh) * 2021-12-30 2022-04-01 天翼物联科技有限公司 一种基于sgx的网络云安全优化方法、系统及相关介质
CN115514584A (zh) * 2022-11-16 2022-12-23 北京锘崴信息科技有限公司 服务器以及金融相关服务器的可信安全认证方法

Also Published As

Publication number Publication date
DE102018101307A1 (de) 2018-08-23
CN108462689B (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
CN108462689A (zh) 用于远程sgx飞地认证的技术
US11770368B2 (en) Techniques for shared private data objects in a trusted execution environment
Rahmadika et al. Blockchain technology for providing an architecture model of decentralized personal health information
US11637703B2 (en) Zero-knowledge environment based social networking engine
US11399079B2 (en) Zero-knowledge environment based networking engine
US11239994B2 (en) Techniques for key provisioning in a trusted execution environment
US11468186B2 (en) Data protection via aggregation-based obfuscation
US20180241572A1 (en) Techniques for remote sgx enclave authentication
US11805105B2 (en) System and associated method for ensuring data privacy
Hardin et al. Amanuensis: Information provenance for health-data systems
CN108959932A (zh) 用于可信执行环境的安全芯片存储器的技术
US20130006865A1 (en) Systems, methods, apparatuses, and computer program products for providing network-accessible patient health records
George et al. MediTrans—Patient‐centric interoperability through blockchain
Yang et al. An access control model based on blockchain master-sidechain collaboration
US9973339B1 (en) Anonymous cloud data storage and anonymizing non-anonymous storage
Dewangan et al. TempChain: a blockchain scheme for telehealth data sharing between two blockchains using property mapping function
Ali et al. Blockchain Segmentation: An Industrial Solution for Large Scale Data

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