[go: up one dir, main page]

CN107077560A - 用于建立安全工作空间的所有权的系统 - Google Patents

用于建立安全工作空间的所有权的系统 Download PDF

Info

Publication number
CN107077560A
CN107077560A CN201580058703.2A CN201580058703A CN107077560A CN 107077560 A CN107077560 A CN 107077560A CN 201580058703 A CN201580058703 A CN 201580058703A CN 107077560 A CN107077560 A CN 107077560A
Authority
CN
China
Prior art keywords
secure workspace
public key
secure
workspace
data structure
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
CN201580058703.2A
Other languages
English (en)
Other versions
CN107077560B (zh
Inventor
S·P·约翰逊
A·M·阿尔特曼
A·达斯
V·R·斯卡拉塔
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
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN107077560A publication Critical patent/CN107077560A/zh
Application granted granted Critical
Publication of CN107077560B publication Critical patent/CN107077560B/zh
Expired - Fee Related 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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及建立安全工作空间(SW)的所有权。客户端设备可以向SW配置器提供SW数据结构(SWDS)。一种SWDS可以包括原始SW的散列以及公钥,并且可以通过与所述公钥相对应的私钥来进行签名。所述SW配置器可以使得生成包括使用所述SWDS所发起的SW的执行容器(EC)。所述客户端设备可以使用连同所述公钥的副本一起传输的请求(由所述私钥来进行签名的)来要求SW所有权。SW所有权可由所有权确定模块确定,所述所有权确定模块使用与所述请求一起接收的所述公钥来验证所述请求的签名,确定所述所接收的公钥的散列,并且将所述所接收的公钥的所述散列与所述SWDS中的所述公钥的散列进行比较。

Description

用于建立安全工作空间的所有权的系统
技术领域
本公开涉及系统安全,并且更具体地涉及一种允许设备建立位于远程资源中的安全工作空间的所有权的系统。
背景技术
基于现在可以电子地进行的越来越多种类的事务,保护电子信息已经成为了重要问题。包括例如黑客、如病毒、rootkit等恶意软件(例如,恶意软件(malware))等的各种威胁共享至少一个目的:规避现有保护措施以便获得对另一个用户设备的访问或控制。采用设备来执行日常事务的用户可能并未意识到他们的设备已经被损坏,并且可能正不知不觉地向第三方提供敏感的个人数据、财务数据和/或专有数据。正持续开发用于防止这些类型的攻击的技术。然而,随着新病毒保护策略出现,黑客正发现在设备内的更低层处进行攻击的方式,获得在设备中具有比保护软件更高优先级的层处的访问和/或控制。因此,设备制造商正将安全措施建立到设备的实际硬件中。例如,这些安全特征可以在设备初始化的早期阶段启动,并且可以通过在将程序加载到设备中时执行安全检查来确保稍后加载的程序是安全的。
例如,在初始化期间,设备可以预留仅对已知良好程序可访问的存储器部分。以此方式,可以保护存储在所述存储器部分中的敏感数据和/或保密数据免受攻击。然而,可能存在这样的场景,在所述场景中,已知良好软件并不驻留于与受保护存储器相同的设备中。例如,用户设备中的已知良好程序(例如,“客户端”程序)可能需要访问位于至少一个远程计算设备(例如,在云架构中进行操作)中的受保护存储器部分。虽然可能期望客户端程序能够访问驻留于至少一个其他设备中的受保护存储器,但是可以保护受保护存储器免于由除了可能例如在第一次创建受保护存储器部分时分配的受保护存储器的“所有者”以外的任何软件访问。这种要求可能严重地限制可以将这种类型的安全技术应用于其中的应用。
附图说明
所要求保护的主题的各种实施例的特征和优点将随着以下具体实施方式进行并且通过参照附图变得明显,其中,相同的数字指代相同的部件,并且在附图中:
图1展示了根据本公开的至少一个实施例的用于建立安全工作空间的所有权的示例系统;
图2展示了根据本公开的至少一个实施例可用的客户端设备和组成远程资源的至少一个设备的示例配置;
图3展示了根据本公开的至少一个实施例的可能在客户端模块、安全工作空间配置器与安全工作空间之间发生的示例交互;
图4展示了根据本公开的至少一个实施例的用于从客户端设备的视角建立安全工作空间的所有权的示例操作;并且
图5展示了根据本公开的至少一个实施例的用于从远程资源的视角建立安全工作空间的所有权的示例操作。
虽然以下具体实施方式将参考说明性实施例进行,但是其许多替代方案、修改及变化将对本领域的技术人员而言是明显的。
具体实施方式
本申请涉及建立安全工作空间(Secure Workspace,SW)的所有权。在至少一个实施例中,客户端设备可以向位于远程资源中的SW配置器提供SW数据结构(SWDS)。一种示例SWDS可以包括原始SW的散列以及公钥,并且可以使用与所述公钥相对应的私钥来进行签名。然后,所述SW配置器可以使包括基于所述SWDS的SW的执行容器(EC)被生成。稍后,所述客户端设备可以通过向所述远程资源传输请求来要求所述SW的所有权。所述请求可以由所述私钥来进行签名并且可以连同所述公钥的副本一起传输。然后,所述SW中的所有权确定模块可以通过例如以下方式来判定所述客户端设备是否拥有所述SW:使用与所述请求一起接收的所述公钥来验证所述请求的签名;确定与所述请求一起接收的所述公钥的散列;以及然后将与所述请求一起接收的所述公钥的所述散列与在所述SWDS中接收的所述公钥的散列进行比较。如果确定所述公钥的所述散列相匹配,则可以允许所述客户端设备要求所述SW的所有权。
在至少一个实施例中,至少一个设备可以包括例如通信模块和SW配置器。所述通信模块可以用于至少与客户端设备交互。最初地,所述SW配置器可以用于从所述客户端设备接收SWDS。然后,所述SW配置器可以用于使SW包括在由所述远程资源生成的EC内,所述SW基于所述SWDS。
示例SWDS可以包括与所述SW有关的数据和公钥,所述SWDS是在以与所述公钥相对应的私钥签名的消息中接收的。与所述SW有关的所述数据可以包括从所述SW中测量的散列值。所述EC可以进一步用于基于所述SWDS来初始化所述SW,对所述SW的初始化包括测量所述安全工作空间数据结构中的所述公钥的散列值。
在至少一个实施例中,所述SW可以进一步包括所有权确定模块,所述所有权确定模块用于接收经签名的消息,所述经签名的消息至少包括经由所述通信模块从所述客户端设备取得所述SW的所有权和所述公钥的请求,以及至少基于所述经签名的消息和所述SWDS来判定所述客户端设备是否被授权取得所述SW的所有权。所述所有权确定模块用于判定所述客户端设备是否被授权取得所述SW的所有权可以包括所述所有权确定模块用于利用与所述经签名的消息一起接收的所述公钥来验证所述经签名的消息的签名,通过测量所述公钥来确定与所述经签名的消息一起接收的所述公钥的散列值,通过将与所述经签名的消息一起接收的所述公钥的所述散列与在将初始化SW时确定的所述公钥的所述散列进行比较来验证所述SW的所有权,以及如果与所述经签名的消息一起接收的所述公钥的所述散列与在初始化所述SW时确定的所述公钥的所述散列相匹配,则向所述客户端设备授予所述SW的所有权。在至少一个实施例中,所述SW是基于软件防护扩展(Software Guard Extensions,SGX)技术的安全飞地,并且所述SWDS是SGX SIGSTRUCT数据结构。
与本公开一致的客户端设备可以包括例如通信模块和客户端模块。所述通信模块可以用于至少与远程资源交互。所述客户端模块可以用于通过测量待用于生成新SW的SW的原始版本来确定所述SW的散列值,生成公钥和相应私钥,至少将所述散列值和所述公钥置于SWDS中,以及向所述远程资源传输所述SWDS。所述SW的所述散列值可以接收自例如所述远程资源中的安全工作区配置器。所述客户端模块可以进一步用于生成包括取得SW的所有权的请求的消息;使用所述私钥来对所述消息进行签名;以及向所述远程资源传输所述经签名的消息和所述公钥。在至少一个实施例中,所述SW是基于SGX技术的安全飞地,并且所述SWDS是SGX SIGSTRUCT数据结构。一种与本公开一致的用于建立SW的所有权的方法可以包括例如在SW配置器处从客户端设备接收SWDS,所述SW配置器驻留于远程资源中;以及使SW包括在由所述远程资源生成的EC内,所述SW基于所述SWDS。
图1展示了根据本公开的至少一个实施例的用于建立安全工作空间的所有权的示例系统。系统100可以至少包括例如客户端设备102和远程资源104。客户端设备102的示例可以包括但不限于如蜂窝手机或智能电话等基于以下操作系统的移动通信设备:来自谷歌公司(Google Corporation)的安卓操作系统、来自苹果公司(AppleCorporation)的来自微软公司(Microsoft Corporation)的操作系统、来自苹果公司的Mac操作系统、来自Linux基金会(Linux Foundation)的泰泽(Tizen)操作系统、来自Mozilla项目(Mozilla Project)的火狐(Firefox)操作系统、来自黑莓公司(Blackberry Corporation)的黑莓操作系统、来自惠普公司(Hewlett-Packard Corporation)的掌上操作系统、来自塞班基金会(Symbian Foundation)的塞班操作系统等;如像以下各项的平板计算机等移动计算设备:来自苹果公司的来自微软公司的奢飞思来自三星公司(SamsungCorporation)的银河平板(Galaxy)、来自亚马逊公司(Amazon Corporation)的金读之光(Kindle)等;包括因特尔公司(Intel Corporation)制造的低功率芯片组、上网本、笔记本计算机、膝上型计算机、掌上型计算机等的超极本如台式计算机、智能电视、像来自因特尔公司的新一代电脑主机(Next Unit of Computing,NUC)平台的小形状因数计算解决方案(例如,针对空间有限的应用、TV机顶盒等)等通常固定的计算设备。远程资源104可以包括客户端设备102经由网络连接可访问的至少一个计算设备。示例网络可以包括但不限于局域网(LAN)、广域网(WAN)(像互联网)、全域网(GAN)等。在至少一个实施例中,远程资源104可以包括作为云计算架构的一部分而运行的至少一个数据服务器。云计算架构可以包括例如单独地或一起进行操作以便向客户端设备102提供各种与数据处理相关的服务的多个数据服务器。
客户端设备102可以至少包括例如客户端模块106。客户端模块106可以包括可以被配置成用于访问SW 112的设备和/或软件。如本文中所参考的“访问”可以包括将数据存储在SW 112中,从SW 112中读取数据处,执行加载在SW 112中的程序等。为了解释的目的,与本公开一致的现实生活使用情况的示例可以包括客户端设备102是智能电话且客户端模块106是提供用于访问用户的个人财务账目的用户接口的应用,其中,访问财务账目(例如,账号、用户名、密码等)所需的信息可以存储在远程资源104中以便保护客户端设备102免于被遗失、被盗或者以其他方式被损坏。虽然此示例解决方案可以容易地防御客户端设备102中的明显漏洞,但是当访问信息存储在远程资源104中时,其可能同样易受攻击,特别是假定远程资源104可能是针对与大量用户(例如,利用客户端模块106的任何用户)相对应的访问信息的存储库,并且由此可能是诱人的攻击目标。因此,可能有益的是,以可以提供仅客户端模块106能够访问的高级安全性的方式来进一步保护存储在远程资源104中的信息。
远程资源104可以至少包括例如可以用于使EC 110至少包括基于SWDS 114配置的SW 112的SW配置器108。如本文中所参考的,EC 110通常可以包括基于软件的构造,所述基于软件的构造可能能够模仿类似配置的基于软件的数据处理设备的操作。EC 110的示例可以包括但不限于如通常与来自因特尔公司的虚拟化技术(Virtualization Technology,VT)、如Docker公司开发的Docker引擎、基于Linux内核的虚拟机(KVM)等相关联的虚拟机(VM)。在至少一个实施例中,SW配置器108可以包括用于存储从客户端设备102接收的SWDS114以及用于使至少包括SWDS 114的EC 110被生成的设备和/或软件,所述SWDS可由EC 110用于生成SW 112。SW 112可以是例如可信执行环境(TEE),在所述可信执行环境中,可以执行已知良好程序,可以以安全的方式存储保密信息等等。通常,SW 112可以包括一组安全的计算资源,从而使得在SW 112内执行的程序以及与执行程序相关联的任何数据被隔离。除了可以开始或停止程序以及可以插入或删除相关联数据以外,在程序执行期间,外部因素无法干扰或观察SW 112内的程序/数据。离开SW 112的任何数据可以以受控的方式发布。与本公开一致,在SW 112内执行的至少一个已知良好程序可以执行本文中关于SW 112而公开的任何或所有操作。在一个示例实施方式中,SW 112可以采用因特尔公司开发的软件防护扩展(SGX)技术。SGX可以在系统存储器内提供安全且软件加密的计算和存储区域,无法通过特权代码或者甚至通过将硬件探头应用于存储器总线来解密其内容。当SW 112受SGX保护时,与本公开一致的实施例使入侵者不可能解密SW 112的内容。受保护数据无法在SGX之外观察,并且由此,不可在SGX之外访问。
在使用SGX来实施SW 112的示例实施方式中,可以对程序的身份(例如,基于对每个程序的内容的密码散列测量)进行签名并且将其存储在每个程序之内。在程序之后被加载到SW 112中时,处理器可以验证程序的测量结果(例如,如由处理器计算的)与之前嵌入到程序之内的测量结果完全相同。因为处理器可以提供有用于在程序加载时间验证签名的公钥,所以用于对嵌入式测量结果进行签名的签名也是可验证的。以此方式,在不变更程序的可验证测量结果的情况下,恶意软件无法篡改所述程序。因为具有程序作者的签名密钥是安全的,所以恶意软件也无法欺骗签名。因此,软件可能无法由任何恶意软件读取、写入或变更。此外,还可以在TEE模块106中保护数据。例如,SW 112中的已知良好程序将如密钥、密码、许可证等加密,从而使得仅经验证的良好程序可以解密此数据。在采用SGX的至少一个实施例中,SW 112可以是安全飞地,并且SWDS 114可以是SIGSTRUCT数据结构。SIGSTRUCT数据结构可以包括来自飞地签名器的与飞地相关的信息,包括例如如SHA256等飞地散列以及四个3072位整数(例如,模量(MODULUS)、签名(SIGNATURE)、Q1和Q2)。虽然RSA签名可能不需要Q1和Q2,但是可以采用这些整数值来加速签名验证。与本公开一致,可以改变SIGSTRUCT数据结构的内容中的一些或所有内容的用途以便容纳如将关于图3而描述的其他信息(例如,公钥)。
在操作的示例中,客户端设备102中的客户端模块106可以与SW配置器108交互以便建立SWDS 114。所述交互可以包括例如确定包含在SW配置器108中的SW 112的原始版本的散列,生成公钥和相应私钥,将SW 112的散列和公钥的副本置于SWDS 114中,以及向SW配置器108传输SWDS 114。在至少一个实施例中,SW 112的散列可由SW配置器108确定并且可以向客户端模块106传输所述散列。可以根据包括例如RSA、迪菲-赫尔曼(Diffie-Hellman)、数字签名算法(DSA)等公钥密码方法来生成公钥和私钥。在向远程资源104传输之前,可以由私钥来对SWDS 114进行签名。私钥/公钥对可以表示客户(例如,客户端设备102)或基于例如客户的偏好而表示SW 112。当在远程资源104中生成EC 110时,SW配置器108可以使SWDS 114置于EC 110中(例如,除了其他管理证书以外)。然后,EC 110可以在初始化SW 112时利用SWDS 114。在至少一个实施例中,在初始化期间,可以确定SWDS 114中的公钥的散列,当确定SW 112的所有者时,公钥的散列很重要。
然后,客户端模块106可以尝试要求SW 112的所有权,这可以包括客户端模块106使设备102向远程资源104传输针对SW 112的所有权的请求。可以使用私钥来对所述请求进行签名,并且所述请求可以包括公钥的副本。在至少一个实施例中,可由所有权确定模块116在EC 110中接收所述请求。然后,所有权确定模块116可以例如使用与请求一起接收的公钥来验证请求上的签名并且可以判定与请求一起接收的公钥是否与包括在SWDS 114中的公钥相同。如果确定所述密钥相匹配,则所有权确定模块116可以授予对所有权的请求。然后,可以通知客户端模块106,其是SW 112的所有者并且可以访问SW 112。重要的是,注意,虽然所有权确定模块116被示出为驻留于SW 112内,但是所有权确定模块116还有可能驻留于EC 110内的其他地方或者甚至在远程资源104内的其他地方。
图2展示了根据本公开的至少一个实施例可用的客户端设备102和组成远程资源104的至少一个设备的示例配置。具体地,客户端设备102'和/或远程资源104'可能能够执行如图1中所公开的示例功能。然而,客户端设备102’和远程资源104'仅意指作为在与本公开一致的实施例中可用的装置的示例,并且并不意在将这些各种实施例限制于任何特定实施方式。
客户端设备102’可以包括例如被配置成用于管理设备操作的系统模块200。系统模块200可以包括例如处理模块202、存储器模块204、电源模块206、用户接口模块208以及通信接口模块210。客户端设备102'还可以包括通信模块212。虽然通信模块212已经被展示为与系统模块200分离,但是为了解释的目的,仅仅提供了图2中所示出的示例实施方式。可以将与通信模块212相关联的功能中的一些或所有功能并入系统模块200中。
在客户端设备102’中,处理模块202可以包括位于分离部件中的一个或多个处理器,或者可替代地,在单个部件中(例如,在片上系统(SoC)配置中)具体化的一个或多个处理核以及任何与处理器相关的支持电路(例如,桥接接口等)。示例处理器可以包括但不限于可从因特尔公司获得的各种基于x86的微处理器,包括奔腾(Pentium)、至强(Xeon)、安腾(Itanium)、赛扬(Celeron)、凌动(Atom)、核(Core)i系列产品族、高级RISC(ReducedInstruction Set Computing,精简指令集计算)机器或“ARM”处理器等中的微处理器。支持电路的示例可以包括被配置成用于提供接口的芯片组(例如,可从英特尔公司获得的北桥(Northbridge)、南桥(Southbridge)等),处理模块202可以通过所述接口与客户端设备102’中可以正以不同速度、在不同总线上等进行操作的其他系统部件交互。通常与支持电路相关联的功能中的一些或所有功能还可以包括在与处理器相同的物理封装体中(例如,如在可从英特尔公司获得的处理器的沙桥(SandV Bridge)族中)。
处理模块202可以被配置成用于执行客户端设备102’中的各种指令。指令可以包括程序代码,所述程序代码被配置成用于使处理模块202执行与读取数据、写入数据、处理数据、制定数据、转换数据、变换数据等相关的活动。信息(例如,指令、数据等)可以存储在存储器模块204中。存储器模块204可以包括采用固定或可移除格式的随机存取存储器(RAM)或只读存储器(ROM)。RAM可以包括被配置成用于在客户端设备102’的操作期间保持信息的易失性存储器,如例如,静态RAM(SRAM)或动态RAM(DRAM)。ROM可以包括基于BIOS、UEFI等而被配置成用于在客户端设备102'被激活时提供指令的非易失性(NV)存储器模块、如电子可编程ROM(EPROMS)等可编程存储器、闪存等。其他固定/可移除存储器可以包括但不限于:磁存储器(如例如,软盘、硬盘驱动器等)、如固态闪存(例如,嵌入式多媒体卡(eMMC))等)等电子存储器、可移除存储卡或存储棒(例如,微型存储设备(uSD)、USB等)、如基于CD盘的ROM(CD-ROM)等光存储器、数字视频盘(DVD)、蓝光碟等。
电源模块206可以包括内部电源(例如,电池、燃料电池等)和/或外部电源(例如,机电或太阳能发电机、电网、燃料电池等)、以及被配置成用于为客户端设备102'供应操作所需的电源的相关电路。用户接口模块208可以包括用于允许用户与客户端设备102’(如例如,各种输入机构(例如,麦克风,开关,按钮,旋钮,键盘,扬声器,触敏表面,被配置成用于捕获图像和/或感测接近度、距离、运动、姿势、取向等的一个或多个传感器)以及各种输出机构(例如,扬声器,显示器,发光/闪烁指示器,针对振动、运动等的机电部件)交互的硬件和/或软件。用户接口模块208中的硬件可以并入客户端设备102’内和/或可以经由有线或无线通信介质耦合至客户端设备102’。
通信接口模块210可以被配置成用于对分组路由和通信模块212的其他控制功能进行管理,所述通信模块可以包括被配置成用于支持有线和/或无线通信的资源。在某些实例中,客户端设备102’可以包括全部由集中通信接口模块210管理的多于一个的通信模块212(例如,包括针对有线协议和/或无线电的分离物理接口模块)。有线通信可以包括串联和并联的有线介质,如例如,以太网、通用串行总线(USB)、火线、数字视频接口(DVI)、高清多媒体接口(HDMI)等。无线通信可以包括例如极近无线介质(例如,如基于近场通信(NFC)标准的射频(RF)、红外(IR)等)、短距离无线介质(例如,蓝牙、WLAN、Wi-Fi等)、长距离无线介质(例如,蜂窝广域无线电通信技术、基于卫星的通信等)或经由声波的电子通信。在一个实施例中,通信接口模块210可以被配置成用于防止在通信模块212中活动的无线通信互相干扰。在执行此功能时,通信接口模块210可以基于例如等待传输的消息的相对优先级为通信模块212安排活动。虽然图2中所公开的实施例展示了通信接口模块210与通信模块212分离,但是还有可能将通信接口模块210和通信模块212的功能并入相同模块内。
与本公开一致,存储器模块204至少可以包括客户端模块106’的一部分。客户端模块106'还有可能包括可以与加载到存储器模块204中的可执行文件和/或数据合作的基于硬件的部分。在至少一个实施例中,客户端模块106’可以经由以上所描述的模块和/或总线与通信模块212交互。作为这种交互的一部分,客户端模块106'可以使通信模块212向远程资源104'传输信息和/或从其处接收信息。远程资源104'被公开为单个设备,但是实际上可以是如在云计算架构的实例中被配置成用于单独地或一起操作以便处理数据的多个设备。远程资源104'可以包括分别与如关于客户端设备102'而公开的模块200至212相对应的模块200'至212’,并且因此,这两组模块可以被类似配置和/或执行类似功能。在客户端设备102'与远程资源104'之间通常可能存在一些配置差异,其中,例如,因为数据服务器(例如,安装在机架构型中)可以不包括用户接口设备并且相反可以依赖于针对用户接口功能的远程客户端站,所以用户接口模块210’可以是可选的。在至少一个实施例中,存储器模块204’可以包括EC 110’。EC 110’可能能够经由以上所公开的模块和/或总线与通信模块212'交互,并且可以使通信模块212’经由客户端设备102’中的通信模块212从客户端模块106'接收信息和/或向其传输信息。
图3展示了根据本公开的至少一个实施例的可能在客户端模块106、SW配置器108与SW 112之间发生的示例交互。初始地,虽然图3中公开的示例交互可能参考与SGX技术相关联的各种术语、结构、方法等,但是与本公开一致的实施例不限于仅使用SGX来实施。本文中所公开的实施例还可以使用替代性安全技术来实施。如在300处所示出的,客户端模块106可以采用指令(例如,SGX EREPORT指令)来确定SW 112的散列。可以从被用作SW配置器108中的“控制者(master)”来生成EC 110中的SW 112的“原始”SW 112中测量所述散列。对散列的实际确定可由客户端模块106或SW配置器108执行,并且然后可以向客户端模块106传输所述实际确定。然后,如在302处所示出的,客户端模块106可以生成公钥和私钥,如在304处所示出的,将之前确定的SW 112的散列置于SWDS 114(例如,SGX SIGSTRUCT数据结构)中。在306处,SIGSTRUCT可由客户端模块106使用私钥来进行签名,并且然后在308处,可以向SW配置器108传输所述SIGSTRUCT。在310处,当生成EC 110时,SW配置器108可以将SIGSTRUCT的副本置于EC 110中。然后,在312处,EC 110可以基于SIGSTRUCT而初始化SW112,其中,初始化可以包括在314处计算由客户端模块106置于SIGSTRUCT中的公钥的散列(例如,使用SGX EINIT指令)。
如在316处所示出的,当要求SW 112的所有权时,客户端模块106可以使客户端设备102传输要求SW 112的所有权的请求(由私钥来进行签名的)连同公钥的副本。在318处,SW 112(并且更具体地,所有权确定模块116)可以初始地使用连同从客户端模块106接收的要求所有权的请求一起提供的公钥来验证所述请求上的签名。如果签名有效,则SW 112可以采用指令(例如,SGX EREPORT指令)来确定之前存储在SIGSTRUCT中的公钥的散列,可以确定连同所述请求一起提供的公钥的散列,并且然后在320处,可以将连同所述请求一起提供的公钥的散列与SIGSTRUCT中的公钥的之前确定的散列进行比较。在至少一个示例实施方式中,可由SW 112(例如,支持SW 112的SGX硬件)将SIGSTRUCT内的至少一个域中的公钥的散列值置于EREPORT.MRSIGNER中。然后,可以将EREPORT.MRSIGNER的值与和所有权请求一起接收的公钥的散列进行比较以便确定SW 112的所有权。在322处,如果确定所述散列相匹配,则SW 112可以建议客户端模块106,已经由客户端模块106验证了SW 112的所有权。
图4展示了根据本公开的至少一个实施例的用于从客户端设备的视角建立安全工作空间的所有权的示例操作。示例操作400至406通常可以与配置SW生成有关。初始地,在操作400中,连同公钥和私钥一起确定可信SW(例如,稍后将要求其所有权的SW)的散列。然后,在操作402中,可以将SW散列和公钥置于SWDS中。在操作404中,可以计算SWDS上的签名(例如,利用私钥),并且在操作406中,可以传输经签名的SWDS(例如,向SW配置器传输)。示例操作408和410通常可以与取得SW的所有权有关。在操作408中,可以传输针对SW的所有权的请求(例如,向包括SW的远程资源传输)。在操作410中,可以接收对所述请求的响应。例如,对所述请求的响应可以指示验证了所述请求并且请求者是SW的所有者(例如,可能能够访问SW),或者可替代地,指示无法验证所述请求并且请求者不被允许访问SW。
图5展示了根据本公开的至少一个实施例的用于从远程资源的视角建立安全工作空间的所有权的示例操作。示例操作500至504通常可以与生成远程资源中的SW有关。在操作500中,可以接收SWDS(例如,在SW配置器中)。然后,在操作502中,可以生成包括SWDS的EC。然后,在操作504中,EC可以利用SWDS来初始化SW。在至少一个示例中,对SW的初始化可以包括确定包括在SWDS内的公钥的散列。示例操作506至516通常可以与验证SW的所有权有关。在操作506中,可以接收要求SW的所有权的请求连同公钥。可以对所述请求进行签名,并且在操作508中,可以使用连同所述请求一起提供的公钥来验证所述请求的签名。假设在操作508中能够验证签名,则在操作510中,至少可以确定连同要求SW的所有权的请求一起接收的公钥的散列值。然后,在操作512中,可以判定连同所述请求一起接收的公钥的散列是否与在SWDS中接收的公钥的散列相匹配。如果在操作中确定所述散列不匹配,则在操作514中,可以拒绝要求SW的所有权的请求。在另一方面,在操作512中,如果确定所述散列相匹配,则在操作516中,可以授予要求SW的所有权的请求。在至少一个实施例中,然后可以通知请求者,授予了所述请求并且现在允许访问SW。
虽然图4和图5展示了根据不同实施例的操作,但是将理解的是,对于其他实施例来说,并非图4和图5中所描绘的所有操作都是必需的。确实,本文中完全设想的是,在本公开的其他实施例中,可以采用任何附图中未具体地示出、但仍然与本公开完全一致的方式来图4和图5中所描绘的操作和/或本文中所描述的其他操作进行组合。因此,涉及未在一个附图中准确示出的特征和/或操作的权利要求被视为处于本公开的范围和内容之内。
如在本申请和权利要求书中所使用的,由术语“和/或”所连接的一系列项目可以意指所列项目的任何组合。例如,短语“A、B和/或C”可以指A;B;C;A和B;A和C;B和C;或者A、B和C。如在本申请和权利要求书中所使用的,由术语“中的至少一项”连接的一系列项目可以意指所列术语的任何组合。例如,短语“A、B或C中的至少一者”可以指着A;B;C;A和B;A和C;B和C;或者A、B和C。
如本文中任何实施例所使用的,术语“模块”可以指被配置成用于执行前述操作中任何操作的软件、固件和/或电路。软件可以被具体化为非瞬态计算机可读存储介质上所记录的软件包、代码、指令、指令集和/或数据。固件可以被具体化为存储器设备中硬编码(例如,非易失性的)的代码、指令或指令集和/或数据。如本文中任何实施例中所使用的,“电路”可以例如单一地或以任何组合形式包括硬接线电路、可编程电路(比如,包括一个或多个单独指令处理核的计算机处理器)、状态机电路、和/或存储有可由可编程电路执行的指令的固件。所述模块可以被统一地或单独地具体化为形成例如集成电路(IC)、片上系统(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话等的更大系统的一部分的电路。
本文中所描述的任何操作可以在系统中实施,所述系统包括具有单独地或组合地存储在其上的指令的一个或多个存储介质(比如,非瞬态存储介质),当所述指令由一个或多个处理器执行时执行所述方法。此处,处理器可以包括例如服务器CPU、移动设备CPU、和/或其他可编程电路。而且,旨在使得本文中所描述的操作可以在多个物理设备(比如,在多于一个不同物理位置处的处理结构)之间分布。存储介质可以包括任何类型的有形介质,例如包括以下各项的任何类型的磁盘:硬盘、软盘、光盘、压缩盘-只读存储器(CD-ROM)、可复写致密盘(CD-RW)、和磁光盘、如只读存储器(ROM)等半导体器件、如动态和静态RAM等随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、固态盘(SSD)、嵌入式多媒体卡(eMMC)、安全数字输入/输出(SDIO)卡、磁卡或光卡、或者适合于存储电子指令的任何类型的介质。其他实施例可以实施为由可编程控制设备执行的软件模块。
因此,本申请涉及建立安全工作空间(SW)的所有权。客户端设备可以向SW配置器提供SW数据结构(SWDS)。一种SWDS可以包括原始SW的散列以及公钥,并且可以通过与所述公钥相对应的私钥来进行签名。所述SW配置器可以使得生成包括使用所述SWDS所发起的SW的执行容器(EC)。所述客户端设备可以使用连同所述公钥的副本一起传输的请求(由所述私钥来进行签名的)来要求SW所有权。SW所有权可由所有权确定模块确定,所述所有权确定模块使用与所述请求一起接收的所述公钥来验证所述请求的签名,确定所述所接收的公钥的散列,并且将所述所接收的公钥的所述散列与所述SWDS中的所述公钥的散列进行比较。
以下示例涉及进一步实施例。如以下所提供的,本公开的以下示例可以包括如设备、方法、用于存储指令(当被执行时使机器基于所述方法执行动作)的至少一个机器可读介质、用于基于所述方法执行动作的装置和/或用于建立安全工作空间的所有权的系统等主题。
根据示例1,提供了至少一种设备。所述至少一种设备可以包括通信模块,所述通信模块用于至少与客户端设备交互;以及安全工作空间配置器,所述安全工作空间配置器用于从所述客户端设备接收安全工作空间数据结构以及使安全工作空间包括在由所述远程资源生成的执行容器内,所述安全工作空间基于所述安全工作空间数据结构。
示例2可以包括如示例1所述的要素,其中,所述安全工作空间数据结构包括与所述安全工作空间有关的数据以及公钥,所述安全工作空间数据结构是在以与所述公钥相对应的私钥签名的消息中接收的。
示例3可以包括如示例2所述的要素,其中,与所述安全工作空间有关的所述数据包括从所述安全工作空间中测量的散列值。
示例4可以包括如示例2至3中任一项所述的要素,其中,所述执行容器进一步用于基于所述安全工作空间数据结构来初始化所述安全工作空间,对所述安全工作空间的初始化包括测量所述安全工作空间数据结构中的所述公钥的散列值。
示例5可以包括如示例4所述的要素,其中,所述安全工作空间进一步包括所有权确定模块,所述所有权确定模块用于接收经签名的消息,所述经签名的消息至少包括经由所述通信模块从所述客户端设备取得所述安全工作空间的所有权以及所述公钥的请求以及至少基于所述经签名的消息和所述安全工作空间数据结构来判定所述客户端设备是否被授权取得所述安全工作空间的所有权。
示例6可以包括如示例5所述的要素,其中,所述所有权确定模块用于判定所述客户端设备是否被授权取得所述安全工作空间的所有权包括所述所有权确定模块用于:利用与所述经签名的消息一起接收的所述公钥来验证所述经签名的消息的签名;通过测量所述公钥来确定与所述经签名的消息一起接收的所述公钥的散列值;通过将与所述经签名的消息一起接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列进行比较来验证所述安全工作空间的所有权;以及如果与所述经签名的消息一起接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列相匹配,则向所述客户端设备授予所述安全工作空间的所有权。
示例7可以包括如示例6所述的要素,其中,将与所述经签名的消息一起接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列进行比较包括:将从软件防护扩展(SGX)SIGSTRUCT数据结构内的域中读取的散列值置于SGXEREPORT.MRSIGNER数据结构中;以及将所述EREPORT.MRSIGNER的值与和所述经签名的消息一起接收的所述公钥的所述散列进行比较。
示例8可以包括如示例1至7中任一项所述的要素,其中,所述安全工作空间是基于软件防护扩展(SGX)技术的安全飞地,并且所述安全工作空间数据结构是SGX SIGSTRUCT数据结构。
示例9可以包括如示例1至8中任一项所述的要素,其中,所述安全工作空间数据结构包括从所述安全工作空间中测量的散列值以及公钥,所述安全工作空间数据结构是在以与所述公钥相对应的私钥签名的消息中接收的。
示例10可以包括如示例1至9中任一项所述的要素,其中,所述至少一种设备是被配置成用于在云计算架构中进行操作的至少一个服务器。
示例11可以包括如示例1至10中任一项所述的要素,其中,所述执行容器包括虚拟机。
根据示例12,提供了一种客户端设备。所述客户端设备可以包括通信模块,所述通信模块用于至少与远程资源交互;以及客户端模块,所述客户端模块用于通过测量安全工作空间的待用于生成新安全工作空间的原始版本来确定所述安全工作空间的散列值,生成公钥和相应私钥,至少将所述散列值和所述公钥置于安全工作空间数据结构中,并且向所述远程资源传输所述安全工作空间数据结构。
示例13可以包括如示例12所述的要素,其中,所述安全工作区的所述散列值接收自所述远程资源中的安全工作区配置器。
示例14可以包括如示例12至13中任一项所述的要素,其中,所述客户端模块进一步用于生成包括取得安全工作空间的所有权的请求的消息,使用所述私钥来对所述消息进行签名,并且向所述远程资源传输所述经签名的消息和所述公钥。
示例15可以包括如示例12至14中任一项所述的要素,其中,所述安全工作空间是基于软件防护扩展(SGX)技术的安全飞地,并且所述安全工作空间数据结构是SGXSIGSTRUCT数据结构。
根据示例16,提供了一种用于建立安全工作空间的所有权的方法。所述方法可以包括:在安全工作空间配置器处从客户端设备接收安全工作空间数据结构,所述安全工作空间配置器驻留于远程资源中;以及使安全工作空间包括在由所述远程资源生成的执行容器内,所述安全工作空间基于所述安全工作空间数据结构。
示例17可以包括如示例16所述的要素,其中,所述安全工作空间数据结构包括与所述安全工作空间有关的数据以及公钥,所述安全工作空间数据结构是在以与所述公钥相对应的私钥签名的消息中接收的。
示例18可以包括如示例16至17中任一项所述的要素,其中,与所述安全工作空间有关的所述数据包括从所述安全工作空间中测量的散列值。
示例19可以包括如示例18所述的要素,并且可以进一步包括基于所述安全工作空间数据结构来初始化所述安全工作空间,其中,初始化所述安全工作空间包括测量所述安全工作空间数据结构中的所述公钥的散列值。
示例20可以包括如示例19所述的要素,并且可以进一步包括:接收经签名的消息,所述经签名的消息至少包括从所述客户端设备取得所述安全工作空间的所有权以及所述公钥的请求;以及至少基于所述经签名的消息和所述安全工作空间数据结构来判定所述客户端设备是否被授权取得所述安全工作空间的所有权。
示例21可以包括如示例20所述的要素,其中,判定所述客户端设备是否被授权取得所述安全工作空间的所有权可以包括:利用与所述经签名的消息一起接收的所述公钥来验证所述经签名的消息的签名;通过测量所述公钥来确定与所述经签名的消息一起接收的所述公钥的散列值;通过将与所述经签名的消息一起接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列进行比较来验证所述安全工作空间的所有权;以及如果与所述经签名的消息一起接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列相匹配,则向所述客户端设备授予所述安全工作空间的所有权。
示例22可以包括如示例21所述的要素,其中,将与所述经签名的消息一起接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列进行比较包括:将从软件防护扩展(SGX)SIGSTRUCT数据结构内的域中读取的散列值置于SGXEREPORT.MRSIGNER数据结构中;以及将所述EREPORT.MRSIGNER的值与和所述经签名的消息一起接收的所述公钥的所述散列进行比较。
示例23可以包括如示例16至22中任一项所述的要素,其中,所述安全工作空间是基于软件防护扩展(SGX)技术的安全飞地,并且所述安全工作空间数据结构是SGXSIGSTRUCT数据结构。
示例24可以包括如示例16至23中任一项所述的要素,其中,所述安全工作空间数据结构包括从所述安全工作空间中测量的散列值以及公钥,所述安全工作空间数据结构是在以与所述公钥相对应的私钥签名的消息中接收的。
示例25可以包括如示例16至24中任一项所述的要素,其中,所述远程资源包括被配置成用于在云计算架构中进行操作的至少一个服务器。
示例26可以包括如示例16至25中任一项所述的要素,其中,所述执行容器包括虚拟机。
根据示例27,提供了一种用于要求安全工作空间的所有权的方法。所述方法可以包括:通过测量安全工作空间的待用于生成新安全工作空间的原始版本来确定所述安全工作空间的散列值;生成公钥和相应私钥;至少将所述散列值和所述公钥置于安全工作空间数据结构中;以及向所述远程资源传输所述安全工作空间数据结构。
示例28可以包括如示例27所述的要素,其中,所述安全工作区的所述散列值接收自所述远程资源中的安全工作区配置器。
示例29可以包括如示例27至28中任一项所述的要素,并且可以进一步包括生成包括取得安全工作空间的所有权的请求的消息;使用所述私钥来对所述消息进行签名;以及向所述远程资源传输所述经签名的消息和所述公钥。
示例30可以包括如示例27至29中任一项所述的要素,其中,所述安全工作空间是基于软件防护扩展(SGX)技术的安全飞地,并且所述安全工作空间数据结构是SGXSIGSTRUCT数据结构。
根据示例31,提供了一种系统,所述系统至少包括设备和远程资源,所述系统被安排成用于执行以上示例16至30中任一项所述的方法。
根据示例32,提供了一种芯片组,所述芯片组被安排成用于执行如以上示例16至30中任一项所述的方法。
根据示例33,提供了至少一种机器可读介质,包括多条指令,所述多条指令响应于正在计算设备上被执行而使所述计算设备执行根据以上示例16至30中任一项所述的方法。
根据示例34,提供了一种被配置成用于建立安全工作空间的所有权的设备,所述设备被安排成用于执行如以上示例16至30中任一项所述的方法。
根据示例35,提供了一种用于建立安全工作空间的所有权的系统。所述系统可以包括:用于在安全工作空间配置器处从客户端设备接收安全工作空间数据结构的装置,所述安全工作空间配置器驻留于远程资源中;以及用于使安全工作空间包括在由所述远程资源生成的执行容器内的装置,所述安全工作空间基于所述安全工作空间数据结构。
示例36可以包括如示例35所述的要素,其中,所述安全工作空间数据结构包括与所述安全工作空间有关的数据以及公钥,所述安全工作空间数据结构是在以与所述公钥相对应的私钥签名的消息中接收的。
示例37可以包括如示例36所述的要素,其中,与所述安全工作空间有关的所述数据包括从所述安全工作空间中测量的散列值。
示例38可以包括如示例36至37中任一项所述的要素,并且可以进一步包括用于基于所述安全工作空间数据结构来初始化所述安全工作空间的装置,其中,初始化所述安全工作空间包括测量所述安全工作空间数据结构中的所述公钥的散列值。
示例39可以包括如示例38所述的要素,并且可以进一步包括用于接收经签名的消息的装置,所述经签名的消息至少包括从所述客户端设备取得所述安全工作空间的所有权以及所述公钥的请求;以及用于至少基于所述经签名的消息和所述安全工作空间数据结构来判定所述客户端设备是否被授权取得所述安全工作空间的所有权的装置。
示例40可以包括如示例39所述的要素,其中,用于判定所述客户端设备是否被授权取得所述安全工作空间的所有权的所述装置包括用于以下操作的装置:利用与所述经签名的消息一起接收的所述公钥来验证所述经签名的消息的签名;通过测量所述公钥来确定与所述经签名的消息一起接收的所述公钥的散列值;通过将与所述经签名的消息一起接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列进行比较来验证所述安全工作空间的所有权;以及如果与所述经签名的消息一起接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列相匹配,则向所述客户端设备授予所述安全工作空间的所有权。
示例41可以包括如示例36至40中任一项所述的要素,其中,所述安全工作空间是基于软件防护扩展(SGX)技术的安全飞地,并且所述安全工作空间数据结构是SGXSIGSTRUCT数据结构。
根据示例42,提供了一种用于要求安全工作空间的所有权的系统。所述系统可以包括:用于通过测量安全工作空间的待用于生成新安全工作空间的原始版本来确定所述安全工作空间的散列值的装置;用于生成公钥和相应私钥的装置;用于至少将所述散列值和所述公钥置于安全工作空间数据结构中的装置;以及用于向所述远程资源传输所述安全工作空间数据结构的装置。
示例43可以包括如示例42所述的要素,其中,所述安全工作区的所述散列值接收自所述远程资源中的安全工作区配置器。
示例44可以包括如示例42至43中任一项所述的要素,并且可以进一步包括:用于生成包括取得安全工作空间的所有权的请求的消息的装置;用于使用所述私钥来对所述消息进行签名的装置;以及用于向所述远程资源传输所述经签名的消息和所述公钥的装置。
示例45可以包括如示例42至44中任一项所述的要素,其中,所述安全工作空间是基于软件防护扩展(SGX)技术的安全飞地,并且所述安全工作空间数据结构是SGXSIGSTRUCT数据结构。
本文中已采用的术语和表达用作描述而非限制术语,并且在使用这种术语和表达时不旨在排除所示出且所描述的特征(或其部分)的任何等效物,并且应当认识到,在权利要求书范围内的各种修改是有可能的。因此,权利要求书旨在涵盖所有这种等效物。

Claims (23)

1.至少一种设备,包括:
通信模块,所述通信模块用于至少与客户端设备交互;以及
安全工作空间配置器,所述安全工作空间配置器用于:
从所述客户端设备接收安全工作空间数据结构;以及
使安全工作空间被包括在由所述远程资源生成的执行容器内,所述安全工作空间基于所述安全工作空间数据结构。
2.如权利要求1所述的至少一种设备,其中,所述安全工作空间数据结构包括与所述安全工作空间有关的数据以及公钥,所述安全工作空间数据结构是在用与所述公钥相对应的私钥签名的消息中接收的。
3.如权利要求2所述的至少一种设备,其中,与所述安全工作空间有关的所述数据包括从所述安全工作空间测量的散列值。
4.如权利要求2所述的至少一种设备,其中,所述执行容器进一步用于基于所述安全工作空间数据结构来初始化所述安全工作空间,对所述安全工作空间的初始化包括测量所述安全工作空间数据结构中的所述公钥的散列值。
5.如权利要求4所述的至少一种设备,其中,所述安全工作空间进一步包括所有权确定模块,所述所有权确定模块用于:
经由所述通信模块接收经签名的消息,所述经签名的消息至少包括来自所述客户端设备的对取得所述安全工作空间的所有权的请求以及所述公钥;以及
至少基于所述经签名的消息和所述安全工作空间数据结构来判定所述客户端设备是否被授权取得所述安全工作空间的所有权。
6.如权利要求5所述的至少一种设备,其中,所述所有权确定模块用于判定所述客户端设备是否被授权取得所述安全工作空间的所有权包括所述所有权确定模块用于:
利用经由所述经签名的消息接收的所述公钥来验证所述经签名的消息的签名;
通过测量所述公钥来确定经由所述经签名的消息接收的所述公钥的散列值;
通过将经由所述经签名的消息接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列进行比较来验证所述安全工作空间的所有权;并且
如果经由所述经签名的消息接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列相匹配,则向所述客户端设备授予所述安全工作空间的所有权。
7.如权利要求1所述的至少一种设备,其中,所述安全工作空间是基于软件防护扩展(SGX)技术的安全飞地,并且所述安全工作空间数据结构是SGX SIGSTRUCT数据结构。
8.一种客户端设备,包括:
通信模块,所述通信模块用于至少与远程资源交互;以及
客户端模块,所述客户端模块用于:
通过测量安全工作空间的待用于生成新安全工作空间的原始版本来确定所述安全工作空间的散列值;
生成公钥和相应私钥;
至少将所述散列值和所述公钥置于安全工作空间数据结构中;并且
向所述远程资源传输所述安全工作空间数据结构。
9.如权利要求8所述的客户端设备,其中,所述安全工作区的所述散列值接收自所述远程资源中的安全工作区配置器。
10.如权利要求8所述的客户端设备,其中,所述客户端模块进一步用于:
生成包括取得安全工作空间的所有权的请求的消息;
使用所述私钥来对所述消息进行签名;以及
向所述远程资源传输所述经签名的消息和所述公钥。
11.如权利要求8所述的客户端设备,其中,所述安全工作空间是基于软件防护扩展(SGX)技术的安全飞地,并且所述安全工作空间数据结构是SGX SIGSTRUCT数据结构。
12.一种用于确立安全工作空间的所有权的方法,所述方法包括:
在安全工作空间配置器处从客户端设备接收安全工作空间数据结构,所述安全工作空间配置器驻留于远程资源中;以及
使安全工作空间被包括在由所述远程资源生成的执行容器内,所述安全工作空间基于所述安全工作空间数据结构。
13.如权利要求12所述的方法,其中,所述安全工作空间数据结构包括与所述安全工作空间有关的数据以及公钥,所述安全工作空间数据结构是在用与所述公钥相对应的私钥签名的消息中接收的。
14.如权利要求13所述的方法,其中,与所述安全工作空间有关的所述数据包括从所述安全工作空间测量的散列值。
15.如权利要求13所述的方法,进一步包括:
基于所述安全工作空间数据结构来初始化所述安全工作空间,其中,初始化所述安全工作空间包括测量所述安全工作空间数据结构中的所述公钥的散列值。
16.如权利要求15所述的方法,进一步包括:
接收经签名的消息,所述经签名的消息至少包括来自所述客户端设备的对取得所述安全工作空间的所有权的请求以及所述公钥;以及
至少基于所述经签名的消息和所述安全工作空间数据结构来判定所述客户端设备是否被授权取得所述安全工作空间的所有权。
17.如权利要求16所述的方法,其中,判定所述客户端设备是否被授权取得所述安全工作空间的所有权包括:
利用经由所述经签名的消息接收的所述公钥来验证所述经签名的消息的签名;
通过测量所述公钥来确定经由所述经签名的消息接收的所述公钥的散列值;
通过将经由所述经签名的消息接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列进行比较来验证所述安全工作空间的所有权;以及
如果经由所述经签名的消息接收的所述公钥的所述散列与在初始化所述安全工作空间时确定的所述公钥的所述散列相匹配,则向所述客户端设备授予所述安全工作空间的所有权。
18.如权利要求11所述的方法,其中,所述安全工作空间是基于软件防护扩展(SGX)技术的安全飞地,并且所述安全工作空间数据结构是SGX SIGSTRUCT数据结构。
19.一种至少包括设备和远程资源的系统,所述系统被安排成用于执行如权利要求12至18中任一项所述的方法。
20.一种芯片组,所述芯片组被安排成用于执行如权利要求12至18中任一项所述的方法。
21.至少一种机器可读介质,包括多条指令,所述多条指令响应于正在计算设备上被执行而使所述计算设备执行根据权利要求12至18中任一项所述的方法。
22.一种被配置成用于建立安全工作空间的所有权的设备,所述设备被安排成用于执行如权利要求12至18中任一项所述的方法。
23.一种设备,所述设备具有用于执行如权利要求12至18中任一项所述的方法的装置。
CN201580058703.2A 2014-11-06 2015-10-06 用于建立安全工作空间的所有权的系统 Expired - Fee Related CN107077560B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/534,305 US9667628B2 (en) 2014-11-06 2014-11-06 System for establishing ownership of a secure workspace
US14/534,305 2014-11-06
PCT/US2015/054186 WO2016073114A1 (en) 2014-11-06 2015-10-06 System for establishing ownership of a secure workspace

Publications (2)

Publication Number Publication Date
CN107077560A true CN107077560A (zh) 2017-08-18
CN107077560B CN107077560B (zh) 2021-05-18

Family

ID=55909599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580058703.2A Expired - Fee Related CN107077560B (zh) 2014-11-06 2015-10-06 用于建立安全工作空间的所有权的系统

Country Status (5)

Country Link
US (1) US9667628B2 (zh)
EP (1) EP3228045A4 (zh)
CN (1) CN107077560B (zh)
TW (1) TWI587172B (zh)
WO (1) WO2016073114A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10534724B2 (en) * 2015-12-24 2020-01-14 Intel Corporation Instructions and logic to suspend/resume migration of enclaves in a secure enclave page cache
GB2559908A (en) * 2016-05-13 2018-08-22 Nchain Holdings Ltd A method and system for verifying ownership of a digital asset using a distributed hash table and a peer-to-peer distributed ledger
US10437985B2 (en) * 2016-10-01 2019-10-08 Intel Corporation Using a second device to enroll a secure application enclave
US10735472B2 (en) * 2018-07-10 2020-08-04 Cisco Technology, Inc. Container authorization policies for network trust
WO2022076352A1 (en) 2020-10-05 2022-04-14 Redcom Laboratories, Inc. zkMFA: ZERO-KNOWLEDGE BASED MULTI-FACTOR AUTHENTICATION SYSTEM
CN116724309A (zh) * 2021-01-15 2023-09-08 安赛飞保安有限公司 设备和通信方法
US12284180B2 (en) * 2023-01-13 2025-04-22 Dell Products, L.P. Management of communications during the orchestration of workspaces by multiple remote orchestrators
FR3145427A1 (fr) * 2023-01-31 2024-08-02 Aiscreenings Procede mis en œuvre par ordinateur pour faire interagir plusieurs ressources de facon sure et securisee
TWI859090B (zh) * 2024-03-14 2024-10-11 系微股份有限公司 遠端掃描韌體漏洞的方法及其系統

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090169017A1 (en) * 2007-12-31 2009-07-02 Ned Smith Configuration of virtual trusted platform module
CN102123031A (zh) * 2009-12-23 2011-07-13 英特尔公司 硬件认证技术
CN102915412A (zh) * 2011-08-04 2013-02-06 波音公司 使用散列值的软件部件验证
US20130159726A1 (en) * 2009-12-22 2013-06-20 Francis X. McKeen Method and apparatus to provide secure application execution
US20140173700A1 (en) * 2012-12-16 2014-06-19 Aruba Networks, Inc. System and method for application usage controls through policy enforcement
US8880889B1 (en) * 2007-03-02 2014-11-04 Citigroup Global Markets, Inc. Systems and methods for remote authorization of financial transactions using public key infrastructure (PKI)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074262B2 (en) * 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
JP4392672B2 (ja) 2007-08-01 2010-01-06 Necシステムテクノロジー株式会社 ソフトウェア無線通信装置、及びソフトウェア更新方法、並びに、ソフトウェア無線通信システム
US8479008B2 (en) * 2010-12-15 2013-07-02 Microsoft Corporation Providing security services on the cloud
US9690941B2 (en) * 2011-05-17 2017-06-27 Microsoft Technology Licensing, Llc Policy bound key creation and re-wrap service
US9069637B2 (en) * 2011-07-25 2015-06-30 Intel Corporation Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration
US9239920B2 (en) 2013-04-23 2016-01-19 Qualcomm Incorporated Generation of working security key based on security parameters
WO2014196966A1 (en) * 2013-06-04 2014-12-11 Intel Corporation Technologies for hardening the security of digital information on client platforms

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880889B1 (en) * 2007-03-02 2014-11-04 Citigroup Global Markets, Inc. Systems and methods for remote authorization of financial transactions using public key infrastructure (PKI)
US20090169017A1 (en) * 2007-12-31 2009-07-02 Ned Smith Configuration of virtual trusted platform module
US20130159726A1 (en) * 2009-12-22 2013-06-20 Francis X. McKeen Method and apparatus to provide secure application execution
CN102123031A (zh) * 2009-12-23 2011-07-13 英特尔公司 硬件认证技术
CN102915412A (zh) * 2011-08-04 2013-02-06 波音公司 使用散列值的软件部件验证
US20140173700A1 (en) * 2012-12-16 2014-06-19 Aruba Networks, Inc. System and method for application usage controls through policy enforcement

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ITTAI ANATI ET AL.: ""Innovative Technology for CPU Based Attestation and Sealing"", 《INTEL DEVELOPER ZONE》 *

Also Published As

Publication number Publication date
TW201626285A (zh) 2016-07-16
US20160134627A1 (en) 2016-05-12
CN107077560B (zh) 2021-05-18
US9667628B2 (en) 2017-05-30
WO2016073114A1 (en) 2016-05-12
EP3228045A4 (en) 2018-07-11
EP3228045A1 (en) 2017-10-11
TWI587172B (zh) 2017-06-11

Similar Documents

Publication Publication Date Title
EP3049989B1 (en) Protection scheme for remotely-stored data
US9509502B2 (en) Symmetric keying and chain of trust
US9935773B2 (en) Trusted platform module certification and attestation utilizing an anonymous key system
US9521125B2 (en) Pseudonymous remote attestation utilizing a chain-of-trust
US9768951B2 (en) Symmetric keying and chain of trust
US10432627B2 (en) Secure sensor data transport and processing
CN107077560B (zh) 用于建立安全工作空间的所有权的系统
CN107077567B (zh) 标识计算设备上的安全边界
US11520859B2 (en) Display of protected content using trusted execution environment
EP3221996B1 (en) Symmetric keying and chain of trust
EP3221814B1 (en) Transparent execution of secret content

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210518