CN106687975B - 可信执行环境可扩展计算装置接口 - Google Patents
可信执行环境可扩展计算装置接口 Download PDFInfo
- Publication number
- CN106687975B CN106687975B CN201580049476.7A CN201580049476A CN106687975B CN 106687975 B CN106687975 B CN 106687975B CN 201580049476 A CN201580049476 A CN 201580049476A CN 106687975 B CN106687975 B CN 106687975B
- Authority
- CN
- China
- Prior art keywords
- service
- application
- environment
- extensible
- interface
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
限定一种可信执行环境驱动器的构造,其可在第一环境中实施标准通信接口,以发现在可信执行环境(TrEE)中执行的安全的应用/服务和/或与在可信执行环境(TrEE)中执行的安全的应用/服务交换消息。第一环境可表示与TrEE具有不同安全策略的环境。TrEE驱动器可包括:标准接口和/或机制,第一环境中的应用/服务和驱动器可通过该标准接口和/或机制访问TrEE中的安全的应用/服务;标准接口和/或机制,第三方供应商可通过该标准接口和/或机制将它们的TrEE应用/服务暴露于第一环境;标准接口和/或机制,TrEE可以自己名义通过该标准接口和/或机制从第一环境请求应用/服务;以及标准接口和/或机制,便于安全的应用/服务的管理和/或为各个安全应用/服务提供I/O优先化和安全保护。
Description
背景技术
操作***通常要求与安全环境交互,以实施一般计算操作。这些安全环境通常是平台特定的和供应商专有的。为了使用这些安全环境,有必要使用平台特定的安全服务协议作为操作***与安全环境之间的接口。通常,多数专有接口在安全环境下实施隔离的交互,并且限于诸如可信平台模块(TPM)、安全变量或者图形迷你端口的单片服务。通常发现这些接口缺乏支持任何服务的灵活性并且不能解决通常在开放的可扩展的操作***中发生的服务质量或安全问题。
而且,单片专有接口的使用通常要求专业编程代码与高级操作***集成。对操作***实施的任何改变将接着要求对每个单片专有接口的专业编程代码的改变。
发明内容
本公开描述了用于实施可信执行环境(TrEE)驱动器的***和方法,以针对操作***(OS)组件或驱动器提供统一的接口,从而与特定平台环境中的安全服务通信。
TrEE驱动器可提供一种针对平台特定的“迷你驱动器”的单个扩展点,以将消息包转换为对TrEE合适的格式,以及驱动硬件接口将它们发送至安全环境。
提供本发明内容以按照简化形式引入以下在具体实施方式中进一步描述的概念的选择。本发明内容不旨在指出所要求保护的主题内容的关键或重要的特征,也不旨在用于帮助确定所要求保护的主题内容的范围。例如,术语“技术”可指上面以及整个文档中描述的语境所认可的(多个)***、(多个)方法、计算机可读指令、(多个)模块、算法、硬件逻辑和/或(多个)操作。
附图说明
参照附图描述具体实施方式。在图中,附图标记最左侧的(多个)数字代表其中首先出现该附图标记的图。不同图中的相同附图标记指示相似或相同的项。
图1是描绘用于实施第一环境与TrEE之间的服务接口的示例环境的框图;
图2是描绘示例计算机装置执行操作***的各方面及其与TrEE的服务接口的框图;
图3是描绘操作***的示例环境架构的各方面和TrEE的框图;
图4是描绘访问来自TrEE的对应的安全的应用/服务的第一环境中的不安全的应用/服务的示例操作的框图;
图5是描绘访问第一环境中的对应的不安全的应用/服务的TrEE中的安全的应用/服务的示例操作的框图;
图6是示出针对来自TrEE的多个安全的应用/服务的通信发出请求的示例方式的流程图;
图7是确定和初始化在TrEE中执行的应用/服务的依赖项的流程图。
具体实施方式
概览
本文所述的示例提供了可信执行环境(TrEE)驱动器的构造,以针对与在平台特定的环境中执行的安全的应用/服务通信所需的操作***(OS)组件或驱动器提供统一的接口。可利用专业编程和/或通过特定指令编程以实施特定功能的硬件来实施这种安全的应用/服务。例如,安全的应用/服务可与针对图形处理单元(GPUs)和计算机处理单元(CPUs)的情况具有不同的执行模型。
如本文所述,术语“不安全”和“安全”用于描述与第一环境和安全环境(即,TrEE)关联的安全策略的相对强度。在其中描述“不安全的”第一应用/服务访问“安全的”第二应用/服务的情况下,术语“不安全”和“安全”旨在描述针对第一应用/服务和第二应用/服务的安全策略的相对强度。在以上示例中,与“安全的”第二应用/服务相比,不安全的应用/服务将具有较不严格的安全策略。而且,术语“不安全”的使用不意味着完全不具备安全策略。
TrEE驱动器可限定和实施第一环境中的标准通信接口,以发现在TrEE中执行的安全的应用/服务、与所述安全的应用/服务交换消息。第一环境代表安全策略与TrEE的安全策略不同的环境。例如,第一环境可包括操作***、不安全的固件或***管理器(hypervisor)层。在另一实施例中,第一环境可包括安全策略与原始交互TrEE的安全策略不同的另一TrEE。本公开中提供的示例描述了相对于TrEE具有较不严格的安全策略的第一环境。然而,TrEE驱动器的构造等同地应用于与TrEE相比具有较严格的安全策略的第一环境。
TrEE驱动器通过针对平台特定的“迷你驱动器”提供单个扩展点来实施标准通信接口,以将消息包转换为合适的TrEE格式,并且驱动硬件接口以将消息包发送至TrEE。与作为OS子***(负责针对总线经热插拔事件或用户初始化事件接收枚举请求、针对它们的子装置询问受影响的总线以及将新的子装置表面化或者拆下去除的子装置堆栈)的即插即用(PnP)不同的是,TrEE驱动器的扩展点可包括可在迷你驱动器中实施并且可“***”主操作***TrEE驱动器中的一组良好定义的函数。TrEE驱动器的扩展点可内置于驱动器模型中并且可应用于任何驱动器和总线。
TrEE驱动器可包括一种用于使第一环境的不安全的应用/服务和驱动器可访问TrEE中的安全的应用/服务的标准接口和机制。
TrEE驱动器可提供一种用于使第三方供应商可通过利用函数来枚举、确保和相对于服务来回传输数据将它们的TrEE应用/服务暴露于第一环境的标准接口和机制。换句话说,TrEE驱动器针对第三方供应商提供了一种灵活的、不可扩展的接口,以编码***第一环境的迷你驱动器。
TrEE驱动器提供了一种用于使TrEE可以自己的名义从第一环境请求应用/服务的标准接口和机制。
TrEE驱动器方便了安全的应用/服务的管理,并且基于各个安全的应用/服务提供了输入-输出(IO)优先化和安全保护。
参照图1-图7进一步描述各个示例、情况和方面。
示出性环境
图1是描绘其中本文所述的TrEE驱动器可操作的示例环境100的框图。在一些示例中,环境100的各个装置和/或组件包括可经一个或多个网络彼此通信和与外部装置通信的分布式计算资源102。
例如,(多个)网络104可包括诸如互联网的公共网络、诸如机构和/或个人内联网的私有网络或者私有网络和公共网络的一些组合。(多个)网络104也可包括任何类型的有线和/或无线网络,包括(但不限于),局域网(LANs)、广域网(WANs)、卫星网络、线缆网络、Wi-Fi网络、WiMax网络、移动通信网络(例如,3G、4G、等),或者它们的任何组合。(多个)网络104可利用通信协议,包括基于分组的和/或基于数据报的协议,诸如互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)或者其它类型的协议。而且,(多个)网络104也可包括便于网络通信和/或形成网络的硬件基础的多个装置,诸如交换机、路由器、网关、接入点、防火墙、基站、中继器、backbone装置等。
在一些示例中,(多个)网络104还可包括能够与无线网络连接的装置,诸如无线接入点(WAP)。示例性示例支持通过在各个电磁频率(例如,无线电频率)上发送和接收数据的WAP(包括支持电气与电子工程师学会(IEEE)802.11标准(例如,802.11g、802.11n等)的WAP)和其它标准的连接性。
在各个示例中,分布式计算资源102包括装置106(1)-106(N)。示例支持这样的情况,其中(多个)装置106可包括一个或多个计算装置,它们按照簇或者其它成组的构造操作以共享资源、平衡负载、提高性能、提供故障转移支持或冗余,或者用于其它目的。(多个)装置106可属于多种类型或类的装置,诸如传统服务器类型的装置、台式计算机类型的装置、移动类型的装置、专用类型的装置、嵌入式装置和/或可佩戴式装置。因此,虽然示为台式计算机,但是(多个)装置106可包括不同的多种装置类型,并且不限于特定类型的装置。
例如,台式计算机类型的装置可代表(但不限于)台式计算机、服务器计算机、网络服务器计算机和个人计算机。移动类型的装置可代表移动计算机、笔记本计算机、平板计算机、车用计算机、个人数据助理(PDAs)或者电信装置。嵌入式装置可包括计算装置中包括的一体式组件或者植入的计算装置。专用类型的装置可包括瘦客户机、终端、游戏控制器、游戏装置、工作站、媒体播放器、个人录像机(PVRs)、机顶盒、相机、电器和网络电视。
(多个)装置106可包括具有诸如经总线112可操作地连接至计算机可读介质110的一个或多个处理单元108的任何计算装置,在一些情况下,所述总线112可包括***总线、数据总线、地址总线、PCI总线、迷你PCI总线以及任何种类的本地总线、***总线和/或独立总线中的一个或多个。(多个)处理单元108也可包括分离的存储器,诸如板上的存储器114、CPU类型的处理器、GPU类型的处理器、FPGA类型的加速器、DSP类型的加速器和/或另一加速器。例如,存储在计算机可读介质110上的可执行指令可包括操作***116、TrEE框架118以及可下载和可通过(多个)处理单元108执行的其它模块、程序或应用。
可替换地或除此之外,本文所述的功能可至少部分地通过一个或多个诸如加速器的硬件逻辑组件执行。例如(但非限制),可使用的硬件逻辑组件的示出性类型包括现场可编程门阵列(FPGAs)、专用集成电路(ASICs)、专用标准产品(ASSPs)、***级芯片***(SOCs)、复杂可编程逻辑装置(CPLDs)等。例如,加速器可代表混合装置,诸如包括内置于FPGA结构中的CPU进程(course)的ZYLEX或ALTERA之一。
计算机可读介质110也可存储可通过外部处理单元(诸如通过外部CPU、外部GPU)执行的指令和/或可通过外部加速器(诸如FPGA类型的加速器、DSP类型的加速器或者任何其它内部或外部加速器)执行的指令。在各个示例中,在装置104中包括CPU、GPU和/或加速器中的至少一个,而在一些示例中,CPU、GPU和/或加速器中的一个或多个在装置104外部。
(多个)装置106也可包括使计算装置106与诸如客户装置122的其它网络装置之间能够通信的一个或多个接口120。接口120可包括网络接口控制器(NICs)、I/O接口或其它类型的收发器装置中的一个或多个,以通过网络发送和接收通信。为简单起见,示出的装置106中省略了其它组件。例如,客户装置可包括装置122(1)-122(N)中的一个或多个。客户装置122可属于可与装置106相同或不同的多种类型或类的装置,诸如客户类型的装置、台式计算机类型的装置、移动类型的装置、专用类型的装置、嵌入式装置和/或可佩戴式装置。因此,虽然示为可比(多个)装置106具有更少的计算资源的移动计算装置,但是(多个)客户计算装置122可包括不同的多种装置类型,并且不限于任何特定类型的装置。(多个)客户计算装置122可包括(但不限于)个人数据助理(PDAs)122(1)、移动电话平板混合122(2)、移动电话122(3)、平板计算机122(4)、笔记本计算机122(5)、其它移动计算机、可佩戴计算机、植入的计算装置、台式计算机、个人计算机122(N)、车用计算机、网络电视、瘦客户机、终端、游戏控制器、游戏装置、工作站、媒体播放器、个人录像机(PVRs)、机顶盒、相机、包括在计算装置中的集成组件、电器或被构造为接收用户输入的任何其它类型的计算装置。
各种类型或类的(多个)客户计算装置122和上述装置类型可具有诸如经总线128可操作地连接至计算机可读介质126的一个或多个处理单元124,在一些情况下,所述总线128可包括***总线、数据总线、地址总线、PCI总线、迷你PCI总线以及任何种类的本地总线、***总线和/或独立总线中的一个或多个。(多个)处理单元124也可包括分离的存储器,诸如板上的存储器130、CPU类型的处理器、GPU类型的处理器、FPGA类型的加速器、DSP类型的加速器和/或另一加速器。例如,存储在计算机可读介质126上的可执行指令可包括操作***132、TrEE框架134以及可下载和可通过(多个)处理单元124执行的其它模块、程序或应用。
(多个)客户装置122也可包括使客户装置122与诸如(多个)装置106的其它网络装置之间能够通信的一个或多个接口136。接口136可包括网络接口控制器(NICs)、I/O接口或其它类型的收发器装置中的一个或多个,以通过网络发送和接收通信。为简单起见,示出的装置122中省略了其它组件。
诸如110和/或126的计算机可读介质可包括计算机存储介质和/或通信介质。计算机存储介质可包括易失性存储器、非易失性存储器和/或其它永久性和/或辅助计算机存储介质、按照存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实施的可拆卸和不可拆卸计算机存储介质。计算机可读介质110和/或126可为与存储器114和/或130相似的计算机存储介质的示例。因此,计算机可读介质110和/或126和/或存储器114和/或130包括被包括在装置和/或作为装置的一部分或在装置外部的硬件组件中的有形和/或物理形式的介质,包括(但不限于)随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、相变存储器(PRAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、压缩盘只读存储器(CD-ROM)、数字多用盘(DVDs)、光学卡或其它光学存储介质、盒式磁带、磁带、磁盘存储、磁卡或其它磁存储装置或介质、固态存储器装置、存储阵列、网络附加存储、存储区域网、托管计算机存储或者可用于存储和保持由计算装置访问的信息的任何其它存储存储器、存储装置和/或存储介质。
与计算机存储介质不同,通信介质可使计算机可读指令、数据结构、程序模块或诸如载波或其它传输机制的调制的数据信号中的其它数据具体化。如本文的定义,计算机存储介质不包括通信介质。也就是说,计算机存储介质不包括仅由调制的数据信号、载波或传播信号本身构成的通信介质。
图2示出了被构造为执行第一环境204的示例计算机装置202和被构造为执行TrEE208的示例安全装置206。在各个示例中,计算装置202和安全装置206可对应于装置106和/或122。
计算装置202可具有可操作地连接至计算机可读介质212的一个或多个处理单元210。例如,存储在计算机可读介质212上的可执行指令可包括操作***214、应用/服务216、TrEE框架218以及可下载和可通过(多个)处理单元210执行的其它模块、程序或者应用。为简单起见,示出的装置202中省略了其它组件。
在至少一个示例中,应用/服务216可与第一环境202中的TrEE应用编程接口(API)220交互。TrEE API 220可随后与TrEE驱动器222交互。在一些示例中,应用/服务216可直接与TrEE驱动器222交互并且绕过TrEE API 220。
类似地,计算装置206可具有可操作地连接至计算机可读介质226的一个或多个处理单元224。例如,存储在计算机可读介质226上的可执行指令可包括安全的应用/服务228、TrEE框架230以及可下载和可通过(多个)处理单元224执行的其它模块、程序或应用。为简单起见,示出的装置206中省略了其它组件。在至少一个示例中,安全的应用/服务238可与TrEE 206中的安全用户模式API 232交互。安全用户模式232也可与TrEE框架230交互。
在至少一个示例中,可请求访问安全的应用/服务228的第一环境204中的应用/服务214包括(但不限于)TPM 2.0 234、播放/准备(Play/Ready DRM)236、安全变量(SecureVariable)238和安全管道(Secure Pipeline)240。
在一些示例中,为了便于第一环境204与安全环境208之间的交互,TrEE驱动器242包括第一环境204的不可扩展接口(例如类扩展244)和安全环境208的可扩展接口(例如迷你驱动器246)。类扩展244和迷你驱动器246在下面更详细地讨论。
安全环境208通常包括安全的应用/服务228,诸如(但不限于)TPM 2.0 248、Play/Ready DRM 250、安全变量252和安全管道254。在至少一个示例中,这些应用/服务228可与安全环境208中的安全用户模式API 232交互。安全用户模式API 232可随后经可信运行时间(Trusted Runtime)256与TrEE驱动器242交互。
图3示出了第一环境302、TrEE 304和被构造为与运行TrEE 304的安全装置308交互的示例计算装置306的示例架构。在各个示例中,计算装置306和安全装置308可对应于装置106、122和/或202。计算装置306可具有可操作地连接至计算机可读介质312的一个或多个处理单元310。例如,存储在计算机可读介质312上的可执行指令可包括操作***314、应用/服务316、318、320和/或322、TrEE框架324、接口326以及可下载和可通过(多个)处理单元310执行的其它模块、程序或应用。为简单起见,示出的装置306中省略了其它组件。
类似地,安全装置308可具有可操作地连接至计算机可读介质330的一个或多个处理单元328。例如,存储在计算机可读介质330上的可执行指令可包括安全的应用/服务332、334、336和/或338、TrEE框架340、接口342以及可下载和可通过(多个)处理单元328执行的其它模块、程序或应用。为简单起见,示出的装置308中省略了其它组件。
为了便于第一环境302与TrEE 304之间的交互,在第一环境TrEE框架324与安全环境TrEE框架340之间建立通信接口。第一环境TrEE框架324可包括不可扩展接口(例如类扩展344),安全环境TrEE框架340可包括可扩展接口(例如迷你驱动器346)。TrEE驱动器本身是第一环境TrEE框架324与安全环境TrEE框架340的组合。
第一环境架构302的平台特定部分可通过类扩展344经注册的回调函数执行。例如,可初始化回调函数以为第一环境302提供连接为安全的应用/服务332、334、336和/或338操作所需的任何第一环境应用/服务316、318、320和/或322的机会。作为示例,可通过类扩展344初始化回调函数,以允许类扩展344主要控制。
在一些示例中,安全环境304可支持枚举协议以将可用的安全的应用/服务332、334、336和/或338返回至类扩展344。可枚举可用的安全的应用/服务332、334、336和/或338作为TrEE驱动器的分离的装置,以及将其报告作为与全球唯一标识符(GUID)匹配的即插即用(PnP)接口。将所述安全的应用/服务报告作为分离的装置对象允许针对每个服务发出的独立的启动和电源。注册为PnP接口允许类扩展对运行时安全的应用/服务332、334、336和/或338的存在或离开作出反应。针对每个服务的分离的装置对象堆栈的生成对平台特定的代码隐藏。作为替代,当需要生成/关闭或者连接/断开特定安全服务时,将通过类扩展344经回调函数通知平台特定的代码。
在至少一个示例中,类扩展344定义了第一环境代码与TrEE 304中的安全的应用/服务332、334、336和/或338通信的接口。单个输入输出控制(IOCTL)用于发送消息。消息代表包括服务识别和功能识别信息的标准结构(“服务请求”)以及服务特定输入输出缓存。缓存可通过参照服务请求传递,并且不需要被第一环境302复制。针对用户模式缓存,TrEE驱动器可探测存储器的有效性,可确保存储器进入缓存(paged-in),并且锁定存储器以使其不能退出缓存(paged-out)。TrEE驱动器也可将缓存映射至全局地址空间,并且可将映射提供至安全的应用/服务332、334、336和/或338。
在至少一个示例中,类扩展344可包含特定于第一环境302的逻辑。也就是说,类扩展344可针对诸如在第一环境302中操作的316、318、320和/或322的不安全的应用/服务提供灵活的接口。类扩展344也针对迷你驱动器342提供灵活的接口,以与第一环境交互。在至少一个示例中,第一环境302中的不安全的应用/服务316、318、320和/或322请求访问安全的应用/服务332、334、336和/或338可触发类扩展344选择将请求转换为对于安全环境304合适的格式的迷你驱动器346。
TrEE驱动器的可扩展接口340可包括一个或多个迷你驱动器346,在一些示例中,它们可为供应商供应的。迷你驱动器346可与诸如在安全环境304中操作的332、334、336和/或338的各个安全的应用/服务关联。TrEE驱动器可有助于一个或多个供应商的一个或多个迷你驱动器346依次或并行操作。在至少一个示例中,可将迷你驱动器346定义为访问安全环境304中的单个单片安全的应用/服务332、334、336或338。在一些示例中,迷你驱动器346可访问安全环境304中的多个安全的应用/服务332、334、336和/或338并且接着可执行多个操作。安全环境304中的可用的应用/服务332、334、336或338的示例可包括(但不限于)TPM2.0、Play/Ready DRM、安全变量或安全管道等。
迷你驱动器346可与安全环境304直接交互并且可处理基础设施的平台特定的应用/服务。迷你驱动器346包括描述TrEE实施的基础设施的平台特定的部分中的逻辑。迷你驱动器346也可包括描述TrEE实施的安装信息文件(*.INF文件)。第一环境原生的类扩展344可自动地与平台特定的迷你驱动器关联,同时对于其余第一环境呈现为具有第一环境功能的灵活接口。该模型允许多种安全环境并存,并且在一些情况下,允许不同种类的安全环境并存。
图4示出了第一环境402与可信执行环境404之间的通信流程的示例。第一环境可包括计算机可读介质406。例如,存储在计算机可读介质406上的可执行指令可包括操作***408、应用/服务410、412、414、416和/或418以及不可扩展接口TrEE框架420。
类似地,安全环境可包括计算机可读介质422。例如,存储在计算机可读介质422上的可执行指令可包括安全的应用/服务424、426、428、430和/或432以及可扩展接口TrEE框架434。
在至少一个示例中,具有不安全安全策略的第一环境402与TrEE 404交互。与第一环境402关联的不安全的应用/服务414可发送请求以访问来自TrEE 404的安全应用/服务428。所述请求可被可与第一环境402的不可扩展接口TrEE框架420关联的类扩展436接收。访问安全的应用/服务424、426、428、430和/或432的所述请求可触发类扩展436选择将所述请求转换为适合于安全环境404的格式的迷你驱动器438、440、442和/或444。
在一些示例中,TrEE 404可支持一个或多个安全的应用/服务,诸如424、426、428、430和/或432。“服务”可表示功能的逻辑组或物理组。通常将服务分离以允许更多地包含功能的迭代,包括使多个贡献者平行开发的可能性。例如,一个服务可支持加密服务和使用面向TrEE的硬件加速能力。另一服务可针对安全内容等启用图形处理单元(GPU)。
在一些示例中,一旦类扩展436选择了合适的迷你驱动器442,迷你驱动器442就可利用访问控制列表446(ACL)执行客户身份验证。ACL 446与安全的应用/服务428关联,并且是一种确保仅特许客户可与特许资源通信的权限列表。特许客户可包括第一环境中的任何不安全的应用/服务。特许资源可包括TrEE中的任何安全的应用/服务。ACL 446可限定特许客户与特许资源之间的任何访问特许排列或组合。
在至少一个示例中,迷你驱动器442接收用于访问安全的应用/服务428的请求。迷你驱动器442相对于ACL 446检查请求安全的应用/服务的客户身份。响应于ACL 446允许访问,迷你驱动器442可初始化第一环境应用/服务414与安全的应用/服务428之间的通信接口。响应于ACL 446拒绝访问,迷你驱动器442还可去除第一环境应用/服务414与安全的应用/服务428之间的通信接口。
图5示出了安全的应用/服务502与第一环境504之间的通信的示例流程。第一环境504可包括计算机可读介质506。例如,存储在计算机可读介质506上的可执行指令可包括操作***508、应用/服务510、512、514、516和/或518以及不可扩展接口TrEE框架520。不可扩展接口TrEE框架520可包括类扩展522。
类似地,安全环境502可包括计算机可读介质524。例如,存储在计算机可读介质524上的可执行指令可包括安全的应用/服务526、528、530、532和/或534以及可扩展接口TrEE框架536。可扩展接口TrEE框架536可包括多个迷你驱动器538、540、542和/或544。
在至少一个示例中,安全环境502可请求使用不安全环境504的资源,这通常发生在其中请求的资源在安全环境自身中不可用的情况下。例如,安全环境502可未安装易失性或非易失性存储器,并且接着可请求使用第一环境504的易失性或非易失性存储器。对应于请求的安全的应用/服务528的迷你驱动器542可接收访问不安全的应用/服务514的请求。在一些情况下,请求可选择性地绕过ACL 546,因为ACL 546意图控制从不安全的应用/服务510、512、514、516和/或518对安全应用/服务526、528、530、532和/或534的访问。
为了在运行时访问第一环境应用/服务514,迷你驱动器542可指明第一环境接口的GUID并且可提供输入缓存、输出缓存和缓存大小。类扩展522可随后编排对迷你驱动器542的请求,因此初始化TrEE 502中的安全的应用/服务530和第一环境504中的不安全的应用/服务514之间的通信接口。
图6示出了流程图,该流程图示出至少部分地基于确定第一环境的服务质量有序化(ordering)第一环境与来自一个或多个TrEE的多个安全的应用/服务之间的通信接口的示例方式。服务质量关于正在第一环境的前景中实施的当前操作。在至少一个示例中,当前在第一环境的前景中运行的应用/服务可相对于在背景中运行的其它应用/服务具有优先权。该优先化允许第一环境为用户认为重要的操作分配资源。例如,如果用户在第一环境的前景中观看电影,则服务质量可与观看电影关联。结果,基于服务质量,可将与观看电影无关的任何应用/服务赋予较低优先级。因此,如果第一环境请求来自TrEE的多个安全的应用/服务,则类扩展可优先执行与观看电源相关的安全的应用/服务。可将其余安全的应用/服务的执行赋予较低优先级。有序化和优化第一环境与TrEE之间的通信接口的好处在于:由于控制第一环境资源的其它应用/服务,第一环境的前景中的操作不大可能受到延迟或滞后。
在步骤602,类扩展可确定第一环境的服务质量。服务质量可关于当前在第一环境的前景中运行的应用/服务,并且可用于优化第一环境中的资源分配。
在步骤604,在确定第一环境的服务质量之后,第一环境可确定针对来自TrEE的多个应用/服务建立通信接口的顺序。在至少一个示例中,可通过第一环境的类扩展执行确定建立通信接口的顺序。在一些示例中,第一环境中的分离模块可确定所述顺序,并且可将对应于所述顺序的指示发送至类扩展。
在步骤606,至少部分地基于步骤604的确定优先级顺序,类扩展可建立与TrEE中的多个应用/服务的通信接口。可基于服务质量并行或依次建立通信接口。
图7示出了流程图,该流程图示出确定与来自TrEE的安全的应用/服务关联的服务依赖项的示例方式。服务依赖项可关于用于建立与请求的安全的应用/服务的通信接口的操作需求。例如,如果安全应用请求在第一环境中运行三个不安全服务,则这三个不安全服务变为安全应用的服务依赖项。在初始化通信接口之前确定服务依赖项可使得第一环境能够有效地管理其资源,以及在等待服务依赖项在线的同时可防止安全应用的操作滞后。
已识别出至少两种服务依赖项。OS服务依赖项可指定针对使用安全服务的OS服务。安全服务在指定的OS服务可用之前可不初始化。共享的安全资源依赖项可指定安全服务使用的并且也可与另一安全服务共享的一些共享资源。如果共享的资源的所有实例均被使用,则同样利用资源的服务的新请求在所述资源再次变得可用之前可不被递送。在等待服务依赖项变得可用的同时,延迟资源的递送可防止安全服务的操作滞后。
因此,为了简化TrEE设计以及为了在可能时运用现有的第一环境服务,类扩展可支持针对第一环境应用/服务访问从TrEE至第一环境的回调。每个TrEE应用/服务可提供第一环境接口(GUIDs)的列表以执行其功能(服务依赖项)。在至少一个示例中,TrEE类扩展在对应的接口变得可用之前不需要枚举服务。另外,在一些示例中,如果去除对应的接口中的一个或多个,则可去除服务。
例如,在前景中运行有限数量的应用/服务的第一环境可开始循环至较低功率状态,以节约***能量资源。在一些情况下,建立与安全的应用/服务的通信接口可要求在第一环境中执行其它资源。然而,通过循环至较低功率状态的第一环境,依赖资源可已经处于意外的不可用状态。在这些实例中,在等待依赖资源在线的同时,安全的应用/服务可不能响应或变为静态。接着,服务依赖项不能在线可导致安全的应用/服务无限期“悬挂”或“冻结”。因此,通过在初始化与TrEE的通信接口之前确定安全的应用/服务的服务依赖项,可有效地管理循环功率状态,以避免所需服务依赖项的关闭。
在一些示例中,***进入较低功率状态可表示关闭不使用的应用/服务。例如,“电源挂起”模式可指示处理器高速缓存被清除并且(多个)CPU停止执行指令。然而,(多个)CPU和易失性存储器(RAM)的电源可保持。相反,“休眠”模式可指示易失性存储器(RAM)的内容被保存至诸如硬盘驱动的非易失性存储器,并且***可断电。
在步骤702,类扩展可从安全的应用/服务接收请求以访问TrEE中的安全的应用/服务。
在步骤704,第一环境可初始化TrEE的询问以提供第一环境接口(GUIDs)的列表,还称作安全的应用/服务可使用以执行其功能的服务依赖项。
在步骤706,类扩展可接收与安全的应用/服务关联的服务依赖项的列表。
在步骤708,第一环境可确保枚举的服务依赖项在第一环境中运行。在至少一个示例中,类扩展可初始化所述服务依赖项。在一些示例中,类扩展可将指示发送至第一环境中的其它模块以初始化枚举的服务依赖项。
如果在第一环境中未运行所述服务依赖项,则第一环境可初始化所述服务依赖项。在一些示例中,如果在第一环境中未运行所述服务依赖项,并且第一环境不能初始化所述服务依赖项,则类扩展可去除用于请求的安全的应用/服务的通信接口。
在步骤710,类扩展可初始化第一环境与请求的安全应用之间的通信接口,前提是所述服务依赖项已被询问并且在第一环境中运行。
示例条款
A:一种方法包括:经不可扩展接口从客户环境中的第一应用或服务接收消息,以建立与第三方环境中的第二应用或服务的通信;从多个可扩展接口中选择一个可扩展接口,这个可扩展接口合适地与第三方环境中的第二应用或服务关联;以及建立第一应用或服务与第二应用或服务之间的通信。
B:根据段落A所述的方法,其中,第三方环境包括操作***、***管理器层或固件中的至少一个。
C:根据段落A或B所述的方法,其中,不可扩展接口被构造为与客户环境通信,并且所述多个可扩展接口的各个可扩展接口被构造为与对应的各个第三方环境通信。
D:根据段落A-C中的任一个所述的方法,其中,客户环境和第三方环境具有不同的安全策略。
E:根据段落A-D中的任一个所述的方法,还包括,响应于建立所述通信,在第一应用或服务与第二应用或服务之间发送和接收数据。
F:根据段落A-E中的任一个所述的方法,其中,建立通信的步骤还包括:识别与第三方环境关联的访问控制列表(ACL);通过ACL验证第一应用或服务是否被允许访问第二应用或服务;以及至少部分地基于ACL许可建立第一应用或服务与第二应用服务之间的通信。
G:根据段落A-F中的任一个所述的方法,其中,与第三方环境关联的访问控制列表(ACL)包括与第三方环境中的各个应用或服务关联的至少一个安全策略。
H:一种其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令将计算机构造为执行根据段落A-G中的任一个所述的方法。
I:一种***包括:处理器;以及其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令将计算机构造为执行根据段落A-G中的任一个所述的方法。
J:一种***包括:用于经不可扩展接口从客户环境中的第一应用或服务接收消息以建立与第三方环境中的第二应用或服务的通信的装置;用于从多个可扩展接口中选择一个可扩展接口的装置,这个可扩展接口合适地与第三方环境中的第二应用或服务关联;以及建立第一应用或服务与第二应用或服务之间的通信的装置。
K:根据段落J所述的***,其中,第三方环境包括操作***、***管理器层或固件中的至少一个。
L:根据段落J或K所述的***,其中,不可扩展接口被构造为与客户环境通信,并且所述多个可扩展接口的各个可扩展接口被构造为与对应的各个第三方环境通信。
M:根据段落J-L中的任一个所述的***,其中,客户环境和第三方环境具有不同的安全策略。
N:根据段落J-M中的任一个所述的***,还包括响应于建立所述通信的步骤在第一应用或服务与第二应用或服务之间发送和接收数据的装置。
O:根据段落J-N中的任一个所述的***,其中,用于建立所述通信的装置还包括:用于识别与第三方环境关联的访问控制列表(ACL)的装置;用于通过ACL验证第一应用或服务是否被允许访问第二应用或服务的装置;以及至少部分地基于ACL许可建立第一应用或服务与第二应用服务之间的通信的装置。
P:根据段落J-0中的任一个所述的***,其中,与第三方环境关联的访问控制列表(ACL)包括与第三方环境中的各个应用或服务关联的至少一个安全策略。
Q:一种***包括:一个或多个处理器;耦合至一个或多个处理器的计算机可读介质,其包括一个或多个模块,它们可通过所述一个或多个处理器执行以:经应用编程接口(API)从第一环境中的第一应用或服务接收请求,以访问可信执行环境中的第二应用或服务;识别与可信执行环境关联的可扩展接口;以及在第一应用或服务与第二应用或服务之间经可扩展接口建立通信。
R:根据段落Q所述的***,其中,来自第一应用或服务的请求是第一请求,并且所述通信是第一通信,还包括一个或多个处理器,以:确定与第一环境关联的服务质量,所述服务质量识别将在第一环境上执行的应用或服务的当前优先级;至少从第一环境中的不同应用或服务接收第二请求,以至少访问可信执行环境中的另一应用或服务;将至少第二通信接口与至少第二请求关联;至少部分地基于确定的服务质量确定建立第一通信和至少第二通信的顺序;以及至少部分地基于确定的顺序建立至少第二通信接口。
S:根据段落Q或R所述的***,其中,确定服务质量还包括一个或多个处理器,以确定第一请求还是至少第二请求与第一环境的前景或背景中的操作关联。
T:根据段落Q-S中的任一个所述的***,其中,确定建立第一通信以及所述至少通信的顺序的步骤至少部分地基于与第一环境关联的功率管理需求。
U:根据段落Q-T中的任一个所述的***,还包括一个或多个处理器,以进行以下操作:在从第一环境中的第一应用或服务接收请求之前,从客户环境接收与执行可信执行环境中的第二应用或服务关联的依赖项的列表的询问,依赖项的列表包括访问第二应用或服务所需的一系列操作。
V:根据段落Q-U中的任一个所述的***,还包括一个或多个处理器,以进行以下操作:在建立第一应用或服务与第二应用或服务之间的通信接口之前,至少部分地基于依赖项的列表初始化访问第二应用或服务所需的一系列操作。
W:根据段落Q-V中的任一个所述的***,还包括一个或多个处理器,以进行以下操作:基于访问第二应用或服务所需的一系列操作未能初始化的确定,去除第一应用或服务与第二应用或服务之间的通信接口。
X:根据段落Q-W中的任一个所述的***,其中,通信接口包括TPM 2.0、Play/ReadyDRM、安全变量或安全管道中的至少一个。
Y:根据段落Q-X中的任一个所述的***,其中,可扩展接口通过与可信执行环境关联的固件实施。
Z:一种其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令一旦被执行就将计算机构造为执行以下操作,包括:经可扩展接口从第一环境中的第一应用或服务接收消息以建立与第二环境中的第二应用或服务的通信,第一环境和第二环境具有不同的安全策略;以及经与第二环境关联的不可扩展接口建立与第一应用或服务和第二应用或服务的通信。
AA:根据段落Z所述的计算机可读介质,其中,第一环境具有比第二环境安全策略更高等级的安全策略。
AB:根据段落Z或AA所述的计算机可读介质,其中,消息包括访问第二环境中的资源的请求,资源包括应用、存储设施或服务中的至少一个。
AC:根据段落Z-AB中的任一个所述的计算机可读介质,还包括,响应于建立通信,在第一应用或服务与第二应用或服务之间发送和接收数据。
AD:一种设备包括:处理器;以及根据段落Z-AC中的任一个所述的计算机可读介质。
结论
虽然以对于结构特征和/或方法学行为特定的语言描述了技术,应该理解,权利要求不一定限于描述的特征或行为。相反,将所述特征和行为描述为所述技术的示例实施方式。
示例处理的操作在各个块中示出并且参照这些块总结。所述处理示为块的逻辑流,其中的各个块可表示可在硬件、软件或它们的耦合中实施的一个或多个操作。在软件的环境下,操作表示存储在一个或多个计算机可读介质上的计算机-可执行指令,当它们被一个或多个处理器执行时,使得所述一个或多个处理器能够执行所述操作。通常,计算机可执行指令包括执行特定功能或实施特定抽象数据类型的例行程序、程序、对象、模块、组件、数据结构等。其中描述操作的顺序不旨在被理解为限制,并且任何数量的所述操作可按照任何顺序执行,按照任何顺序组合,细分为多个子操作和/或并行地执行,以实施所述处理。所述处理可通过与一个或多个装置(诸如一个或多个内部或外部CPU或GPU)和/或一个或多个硬件逻辑(诸如FPGA、DSP或者其它类型的加速器)关联的资源执行。
所有上述方法和处理可在通过一个或多个通用计算机或处理器执行的软件代码模块中实施和通过所述软件代码模块全自动化。所述代码模块可存储在任何类型的计算机可读存储介质或其它计算机存储装置中。所述方法中的一些或全部可替代性地在专业计算机硬件中实施。
本文描述和/或在附图中描绘的流程图中的任何常规说明、元件或块应该被理解为潜在地表示包括用于实施例行程序中的特定逻辑功能或元件的一个或多个可执行指令的代码的模块、区块或部分。替代实施方式被包括在本文所述的示例的范围内,其中元件或功能可被删除或按照所示或讨论的顺序以外的顺序(包括基本同时的顺序或者反向顺序,取决于本领域技术人员理解的所涉及的功能)执行。应该强调,可对以上描述的示例作出许多改变和修改,所述示例的元件应该被理解为处于其它可接受的示例中。所有这些修改和改变旨在被包括在本文中,落入本公开的范围内和受权利要求的保护。
Claims (18)
1.一种用于传输数据的方法,包括:
提供包括不可扩展接口和多个可扩展接口的接口平台,所述多个可扩展接口中的每个可扩展接口被具体配置为以特定于第一环境内的关联应用或服务的格式与所述关联应用或服务通信,并且所述不可扩展接口为第二环境中的多个应用或服务提供单个扩展点以与所述第一环境中的第三方应用或服务通信;
识别要在所述第二环境内被执行的所述多个应用或服务的优先级,其中所述多个应用或服务包括具有比背景应用或背景服务更高的优先级的第一应用或第一服务;
经由所述不可扩展接口从所述第二环境内的所述多个应用或服务中的所述第一应用或第一服务接收与所述第一环境内的第二应用或第二服务建立第一通信的第一请求,所述第一请求包括第一格式的第一消息,并且其中所述第一应用或第一服务具有第一安全策略,并且所述第二应用或第二服务具有与所述第一安全策略不同的第二安全策略;
经由所述不可扩展接口从所述第二环境内的所述多个应用或服务中的所述背景应用或背景服务接收与所述第一环境内的第三应用或第三服务建立第二通信的第二请求,其中所述第二请求包括第二消息;
从所述多个可扩展接口选择第一可扩展接口,所述第一可扩展接口与所述第一环境内的所述第二应用或第二服务相关联;
从所述多个可扩展接口选择第二可扩展接口,所述第二可扩展接口与所述第一环境内的所述第三应用或第三服务相关联;
至少部分地基于所述第一安全策略和所述第二安全策略,通过所述第一可扩展接口将所述第一格式的所述第一消息修改为第二格式的所述第一消息;
经由所述第一可扩展接口建立所述第一应用或第一服务与所述第二应用或第二服务之间的所述第一通信;
经由所述第二可扩展接口建立所述背景应用或背景服务与所述第三应用或第三服务之间的所述第二通信;
响应于所述第一应用或第一服务具有比所述背景应用或背景服务更高的优先级,在经由所述第二通信向所述第三应用或第三服务传输所述第二消息之前,经由所述第一通信向所述第二应用或第二服务传输所述第二格式的所述第一消息;以及
在所述第一应用或第一服务与所述第二应用或第二服务之间传输和接收数据。
2.根据权利要求1所述的方法,其中所述第一环境包括操作***、***管理器层或固件中的至少一个。
3.根据权利要求1所述的方法,还包括:
识别与所述第一环境相关联的访问控制列表ACL,所述ACL包括ACL许可;
通过所述ACL验证所述第一应用或第一服务被允许访问所述第二应用或第二服务,其中在所述第一应用或第一服务与所述第二应用或第二服务之间建立所述通信还基于所述ACL许可。
4.根据权利要求3所述的方法,其中所述ACL包括与所述第一环境内的各个应用或服务相关联的至少一个安全策略。
5.根据权利要求1所述的方法,其中所述第一可扩展接口包括到所述第一环境内的所述第二应用或第二服务的***驱动器。
6.根据权利要求5所述的方法,还包括接收与所述***驱动器相关联的注册,其中所述注册允许所述接口平台对所述第二应用或第二服务的存在或离开做出反应。
7.根据权利要求1所述的方法,还包括:
至少部分地基于所述背景应用或背景服务的背景安全策略和所述第三应用或第三服务的第三安全策略,通过第三可扩展接口将第三格式的所述第二消息修改为第四格式的所述第二消息,其中所述背景安全策略与所述第三安全策略不同;并且
其中传输所述第二消息还包括向所述第三应用或第三服务传输所述第四格式的所述第二消息。
8.一种计算机可读存储设备,其上具有计算机可执行指令,所述计算机可执行指令在执行时将计算机配置为执行操作,所述操作包括:
提供包括不可扩展接口和多个可扩展接口的接口平台,所述多个可扩展接口中的每个可扩展接口可操作用于以特定的消息格式与第一环境中的关联应用或服务通信,并且所述不可扩展接口为第二环境中的多个应用或服务提供单个扩展点以与所述第一环境中的第三方应用或服务通信;
识别要在所述第二环境内被执行的所述多个应用或服务的优先级,其中所述多个应用或服务包括具有比背景应用或背景服务更高的优先级的第一应用或第一服务;
经由所述不可扩展接口从所述第二环境内的所述多个应用或服务中的所述第一应用或第一服务接收与所述第一环境内的第二应用或第二服务建立第一通信的第一请求,所述第一请求包括以第一格式的第一消息,并且其中所述第一环境具有第一安全策略,并且所述第二环境具有与所述第一安全策略不同的第二安全策略;
经由所述不可扩展接口从所述第二环境内的所述多个应用或服务中的所述背景应用或背景服务接收与所述第一环境内的第三应用或第三服务建立第二通信的第二请求,其中所述第二请求包括第二消息;
从所述多个可扩展接口中选择第一可扩展接口,所述第一可扩展接口与所述第一环境内的所述第二应用或第二服务相关联;
从所述多个可扩展接口中选择第二可扩展接口,所述第二可扩展接口与所述第一环境内的所述第三应用或第三服务相关联;
至少部分地基于所述第一安全策略和所述第二安全策略,通过所述第一可扩展接口将所述第一格式的所述第一消息修改为第二格式的所述第一消息;
经由所述第一可扩展接口建立所述第一应用或所述第一服务与所述第二应用或所述第二服务之间的所述第一通信;
经由所述第二可扩展接口建立所述背景应用或背景服务与所述第三应用或第三服务之间的所述第二通信;
响应于所述第一应用或第一服务具有比所述背景应用或背景服务更高的优先级,在经由所述第二通信向所述第三应用或第三服务传输所述第二消息之前,经由所述第一通信向所述第二应用或所述第二服务传输所述第二格式的所述第一消息;以及
响应于建立所述第一通信,在所述第一应用或第一服务与所述第二应用或第二服务之间传输和接收数据。
9.根据权利要求8所述的计算机可读存储设备,其中所述第一安全策略是比所述第二安全策略更高级别的安全策略。
10.根据权利要求8所述的计算机可读存储设备,其中所述第一消息或所述第二消息包括访问所述第一环境中的资源的请求,所述资源包括应用、存储设施或服务中的至少一个。
11.一种用于传输数据的***,包括:
一个或多个处理器以及被耦合到所述一个或多个处理器的计算机可读存储设备,所述计算机可读存储设备包括一个或多个模块,所述一个或多个模块由所述一个或多个处理器可执行以:
提供包括不可扩展接口和多个可扩展接口的接口平台,所述多个可扩展接口中的每个可扩展接口被具体配置为以特定于第一环境内的关联应用或服务的格式与所述关联应用或服务通信,并且所述不可扩展接口为第二环境中的多个应用或服务提供单个扩展点以与所述第一环境中的第三方应用或服务通信;
识别要在所述第二环境内被执行的所述多个应用或服务的优先级,其中所述多个应用或服务包括具有比背景应用或背景服务更高的优先级的第一应用或第一服务;
经由所述不可扩展接口从所述第二环境内的所述多个应用或服务中的所述第一应用或第一服务接收与所述第一环境内的第二应用或第二服务建立第一通信的第一请求,所述第一请求包括以第一格式的第一消息,并且其中所述第一应用或第一服务具有第一安全策略,并且所述第二应用或第二服务具有与所述第一安全策略不同的第二安全策略;
经由所述不可扩展接口从所述第二环境内的所述多个应用或服务中的所述背景应用或背景服务接收与所述第一环境内的第三应用或第三服务建立第二通信的第二请求,其中所述第二请求包括第二消息;
从所述多个可扩展接口中选择第一可扩展接口,所述第一可扩展接口与所述第一环境内的所述第二应用或第二服务相关联;
从所述多个可扩展接口中选择第二可扩展接口,所述第二可扩展接口与所述第一环境内的所述第三应用或第三服务相关联;
至少部分地基于所述第一安全策略和所述第二安全策略,通过所述第一可扩展接口将所述第一格式的所述第一消息修改为第二格式的所述第一消息;
经由所述第一可扩展接口建立所述第一应用或第一服务与所述第二应用或第二服务之间的所述第一通信;
经由所述第二可扩展接口建立所述背景应用或背景服务与所述第三应用或第三服务之间的所述第二通信;
响应于所述第一应用或所述第一服务具有比所述背景应用或背景服务更高的优先级,在经由所述第二通信向所述第三应用或第三服务传输所述第二消息之前,经由所述第一通信向所述第二应用或第二服务传输所述第二格式的所述第一消息;以及
在所述第一应用或第一服务与所述第二应用或第二服务之间传输和接收数据。
12.根据权利要求11所述的***,其中建立所述第一通信接口和所述第二通信接口的顺序还至少部分地基于与所述第一环境相关联的功率管理需求。
13.根据权利要求11所述的***,其中在从所述第一环境中的所述第一应用或服务接收所述第一请求之前,所述一个或多个模块还由所述一个或多个处理器可执行以:
从第二环境接收针对与利用可信执行环境执行所述第二应用或第二服务相关联的依赖项的列表的询问,所述依赖项的列表包括访问所述第二应用或第二服务的一系列操作。
14.根据权利要求11所述的***,其中在建立所述第一应用或第一服务与所述第二应用或第二服务之间的所述不可扩展接口之前,所述一个或多个模块还由所述一个或多个处理器可执行以:
至少部分地基于依赖项的列表,启动访问所述第二应用或第二服务的一系列操作。
15.根据权利要求11所述的***,其中所述一个或多个模块还由所述一个或多个处理器可执行以:
至少部分地基于访问所述第二应用或第二服务的一系列操作未能启动,去除所述第一应用或第一服务与所述第二应用或第二服务之间的通信接口。
16.根据权利要求11所述的***,其中通信接口包括可信平台模块(TPM)2.0、播放/准备数字权限管理(DRM)、安全变量或安全管道中的至少一个。
17.根据权利要求11所述的***,其中所述可扩展接口由与可信执行环境相关联的固件实现。
18.一种用于传输数据的方法,包括:
提供包括不可扩展接口和多个可扩展接口的接口平台,所述多个可扩展接口中的每个可扩展接口被具体配置为以特定于第一环境内的关联应用或服务的格式与所述关联应用或服务通信,并且所述不可扩展接口为第二环境中的多个不同应用或服务提供单个扩展点以与所述第一环境中的多个不同应用或服务通信;
经由所述不可扩展接口从所述第二环境内的第一应用或第一服务接收与所述第一环境内的第二应用或第二服务建立通信的第一请求,所述第一请求包括为以第一格式的消息,并且其中所述第一应用或第一服务具有第一安全策略,并且所述第二应用或第二服务具有与所述第一安全策略不同的第二安全策略;
接收包括与所述第一环境内的所述第二应用或第二服务相关联的依赖资源的服务依赖项的列表;
确定是否任何服务依赖项保持不活动;
启动所述第一环境内的任何不活动的服务依赖项;
从所述多个可扩展接口中选择可扩展接口,所述可扩展接口与所述第一环境内的所述第二应用或第二服务相关联;
至少部分地基于所述第一安全策略和所述第二安全策略,通过所述可扩展接口将所述第一格式的所述消息修改为第二格式的所述消息;
经由所述可扩展接口建立所述第一应用或第一服务与所述第二应用或第二服务之间的所述通信;以及
经由所述通信向所述第二应用或第二服务传输所述第二格式的所述消息;以及
在所述第一应用或第一服务与所述第二应用或第二服务之间传输和接收数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/485,737 US10097513B2 (en) | 2014-09-14 | 2014-09-14 | Trusted execution environment extensible computing device interface |
US14/485737 | 2014-09-14 | ||
PCT/US2015/049535 WO2016040709A1 (en) | 2014-09-14 | 2015-09-11 | Trusted execution environment extensible computing device interface |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106687975A CN106687975A (zh) | 2017-05-17 |
CN106687975B true CN106687975B (zh) | 2020-02-28 |
Family
ID=54207752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580049476.7A Active CN106687975B (zh) | 2014-09-14 | 2015-09-11 | 可信执行环境可扩展计算装置接口 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10097513B2 (zh) |
EP (1) | EP3195176B1 (zh) |
CN (1) | CN106687975B (zh) |
ES (1) | ES2888228T3 (zh) |
WO (1) | WO2016040709A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9633210B2 (en) | 2013-09-13 | 2017-04-25 | Microsoft Technology Licensing, Llc | Keying infrastructure |
US9942351B2 (en) * | 2014-12-16 | 2018-04-10 | International Business Machines Corporation | Enabling and disabling execution environments |
DE102016105936A1 (de) * | 2015-12-14 | 2017-06-14 | Lenovo (Beijing) Limited | Electronic device and method for running applications in different security environments |
US10114952B2 (en) * | 2016-03-30 | 2018-10-30 | Mcafee, Llc | System, apparatus and method for performing secure memory training and management in a trusted environment |
CN105809036B (zh) * | 2016-04-01 | 2019-05-10 | ***股份有限公司 | 一种tee访问控制方法以及实现该方法的移动终端 |
US10498533B2 (en) * | 2016-12-16 | 2019-12-03 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Methods, systems, and computer readable media for increasing the rate of established network connections in a test simulation environment |
US10445257B2 (en) * | 2017-04-30 | 2019-10-15 | Microsoft Technology Licensing, Llc | Execution of subset of driver code in separate protection domain |
KR102405752B1 (ko) * | 2017-08-23 | 2022-06-08 | 삼성전자주식회사 | 어플리케이션 프로그램의 권한을 제어하는 방법 및 전자 장치 |
US10761951B2 (en) * | 2017-12-28 | 2020-09-01 | Intel Corporation | FPGA based functional safety control logic (FFSCL) |
US11016823B2 (en) * | 2018-03-16 | 2021-05-25 | Apple Inc. | Remote service discovery and inter-process communication |
US11182746B2 (en) * | 2018-09-17 | 2021-11-23 | Servicenow, Inc. | Systems and methods for integrating third-party services with a client instance |
US11295008B2 (en) * | 2019-02-13 | 2022-04-05 | Nec Corporation | Graphics processing unit accelerated trusted execution environment |
CN114600108A (zh) * | 2019-08-16 | 2022-06-07 | 边信联科技股份有限公司 | 异构处理器通过开放式连接器进行具有远距认证及信息独立的可信运算***及方法 |
CN115053222A (zh) | 2020-02-07 | 2022-09-13 | 百可德罗德公司 | 通过主机与虚拟来宾之间的受控交互来创建隔离工作区的方法和*** |
CN111949369B (zh) * | 2020-08-03 | 2024-05-31 | 上海交通大学 | 面向图形处理器的可信执行环境构建方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549979A (zh) * | 2001-07-16 | 2004-11-24 | BEAϵͳ��˾ | 用于组播支持的方法和装置 |
CN102986189A (zh) * | 2010-05-09 | 2013-03-20 | 思杰***有限公司 | 用于为对应于虚通道的网络连接分配服务等级的***和方法 |
CN103119907A (zh) * | 2010-07-21 | 2013-05-22 | 思杰***有限公司 | 提供用于访问控制的智能组的***和方法 |
CN103198030A (zh) * | 2011-12-02 | 2013-07-10 | Nxp股份有限公司 | 访问安全存储器的方法、安全存储器和包括安全存储器的*** |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5668878A (en) | 1994-02-28 | 1997-09-16 | Brands; Stefanus Alfonsus | Secure cryptographic methods for electronic transfer of information |
JP3647907B2 (ja) | 1994-09-09 | 2005-05-18 | 富士通株式会社 | 暗号化ソフトウェアの解凍システム |
US5673316A (en) | 1996-03-29 | 1997-09-30 | International Business Machines Corporation | Creation and distribution of cryptographic envelope |
US5850443A (en) | 1996-08-15 | 1998-12-15 | Entrust Technologies, Ltd. | Key management system for mixed-trust environments |
US6243466B1 (en) | 1997-08-29 | 2001-06-05 | Adam Lucas Young | Auto-escrowable and auto-certifiable cryptosystems with fast key generation |
US6282295B1 (en) | 1997-10-28 | 2001-08-28 | Adam Lucas Young | Auto-recoverable and auto-certifiable cryptostem using zero-knowledge proofs for key escrow in general exponential ciphers |
US5978475A (en) | 1997-07-18 | 1999-11-02 | Counterpane Internet Security, Inc. | Event auditing system |
US6230272B1 (en) | 1997-10-14 | 2001-05-08 | Entrust Technologies Limited | System and method for protecting a multipurpose data string used for both decrypting data and for authenticating a user |
US6513117B2 (en) | 1998-03-04 | 2003-01-28 | Gemstar Development Corporation | Certificate handling for digital rights management system |
US6757829B1 (en) | 1998-05-29 | 2004-06-29 | Texas Instruments Incorporated | Program debugging system for secure computing device having secure and non-secure modes |
US6470450B1 (en) | 1998-12-23 | 2002-10-22 | Entrust Technologies Limited | Method and apparatus for controlling application access to limited access based data |
US6975728B1 (en) | 1999-06-22 | 2005-12-13 | Digital Video Express, L.P. | Hierarchical key management |
US6976165B1 (en) | 1999-09-07 | 2005-12-13 | Emc Corporation | System and method for secure storage, transfer and retrieval of content addressable information |
US6754829B1 (en) | 1999-12-14 | 2004-06-22 | Intel Corporation | Certificate-based authentication system for heterogeneous environments |
KR20020060572A (ko) | 2001-01-11 | 2002-07-18 | 포만 제프리 엘 | 개인용 컴퓨터가 허가되지 않은 사용자에 의해 사용되는것을 방지하기 위한 보안 시스템 |
US20040218762A1 (en) | 2003-04-29 | 2004-11-04 | Eric Le Saint | Universal secure messaging for cryptographic modules |
US20030053630A1 (en) | 2001-09-20 | 2003-03-20 | International Business Machines Corporation | Method and system for key usage control in an embedded security system |
US20040098591A1 (en) | 2002-11-15 | 2004-05-20 | Fahrny James W. | Secure hardware device authentication method |
US20040190721A1 (en) | 2003-03-24 | 2004-09-30 | Microsoft Corporation | Renewable conditional access system |
US7280956B2 (en) | 2003-10-24 | 2007-10-09 | Microsoft Corporation | System, method, and computer program product for file encryption, decryption and transfer |
US7496768B2 (en) | 2003-10-24 | 2009-02-24 | Microsoft Corporation | Providing secure input and output to a trusted agent in a system with a high-assurance execution environment |
US7263608B2 (en) | 2003-12-12 | 2007-08-28 | Lenovo (Singapore) Pte. Ltd. | System and method for providing endorsement certificate |
US7587607B2 (en) | 2003-12-22 | 2009-09-08 | Intel Corporation | Attesting to platform configuration |
US7360253B2 (en) | 2004-12-23 | 2008-04-15 | Microsoft Corporation | System and method to lock TPM always ‘on’ using a monitor |
CN1703004B (zh) * | 2005-02-28 | 2010-08-25 | 联想(北京)有限公司 | 一种实现网络接入认证的方法 |
US7886353B2 (en) | 2005-03-25 | 2011-02-08 | Microsoft Corporation | Accessing a USB host controller security extension using a HCD proxy |
GB2428317A (en) | 2005-07-13 | 2007-01-24 | Hewlett Packard Development Co | Data collation system |
US7900208B2 (en) * | 2005-11-30 | 2011-03-01 | Oracle International Corporation | Uniform framework for standardization and transmission of documents electronically |
US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US9319220B2 (en) | 2007-03-30 | 2016-04-19 | Intel Corporation | Method and apparatus for secure network enclaves |
AU2008240065A1 (en) | 2007-04-12 | 2008-10-23 | Landon Curt Noll | Method and system for identifying and managing encryption keys |
US7836309B2 (en) * | 2007-07-20 | 2010-11-16 | Microsoft Corporation | Generic extensible pre-operating system cryptographic infrastructure |
US8156298B1 (en) | 2007-10-24 | 2012-04-10 | Adam Stubblefield | Virtualization-based security apparatuses, methods, and systems |
US8583908B2 (en) | 2007-12-31 | 2013-11-12 | Intel Corporation | Enhanced network and local boot of Unified Extensible Firmware Interface images |
US8646067B2 (en) * | 2008-01-26 | 2014-02-04 | Citrix Systems, Inc. | Policy driven fine grain URL encoding mechanism for SSL VPN clientless access |
US20090327741A1 (en) | 2008-06-30 | 2009-12-31 | Zimmer Vincent J | System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid) |
JP5377908B2 (ja) | 2008-08-28 | 2013-12-25 | Ntn株式会社 | トリポード型等速自在継手の製造方法 |
CN102460393B (zh) * | 2009-05-01 | 2014-05-07 | 思杰***有限公司 | 用于在虚拟存储资源之间建立云桥的***和方法 |
US8352741B2 (en) | 2009-06-11 | 2013-01-08 | Microsoft Corporation | Discovery of secure network enclaves |
US8397306B1 (en) * | 2009-09-23 | 2013-03-12 | Parallels IP Holdings GmbH | Security domain in virtual environment |
US9087200B2 (en) | 2009-12-22 | 2015-07-21 | Intel Corporation | Method and apparatus to provide secure application execution |
GB201000288D0 (en) | 2010-01-11 | 2010-02-24 | Scentrics Information Security | System and method of enforcing a computer policy |
TWI584625B (zh) | 2010-04-12 | 2017-05-21 | 內數位專利控股公司 | 網路裝置及用來執行網路裝置的完整性確認的方法 |
US9542552B2 (en) * | 2011-02-11 | 2017-01-10 | Blue Cedar Networks, Inc. | Extensible platform for securing apps on a mobile device using policies and customizable action points |
US8745266B2 (en) * | 2011-06-30 | 2014-06-03 | Citrix Systems, Inc. | Transparent layer 2 redirection of request to single sign in service based on applying policy to content of request |
US8375221B1 (en) | 2011-07-29 | 2013-02-12 | Microsoft Corporation | Firmware-based trusted platform module for arm processor architectures and trustzone security extensions |
US8645677B2 (en) | 2011-09-28 | 2014-02-04 | Intel Corporation | Secure remote credential provisioning |
US9137262B2 (en) * | 2011-10-11 | 2015-09-15 | Citrix Systems, Inc. | Providing secure mobile device access to enterprise resources using application tunnels |
US10135613B2 (en) | 2012-01-13 | 2018-11-20 | Qualcomm Incorporated | Method and apparatus for generating a privilege-based key |
US8954965B2 (en) | 2012-08-03 | 2015-02-10 | Microsoft Corporation | Trusted execution environment virtual machine cloning |
US9292712B2 (en) | 2012-09-28 | 2016-03-22 | St-Ericsson Sa | Method and apparatus for maintaining secure time |
WO2014072579A1 (en) | 2012-11-08 | 2014-05-15 | Nokia Corporation | Partially virtualizing pcr banks in mobile tpm |
EP2746981A1 (en) | 2012-12-19 | 2014-06-25 | ST-Ericsson SA | Trusted execution environment access control rules derivation |
US9594567B2 (en) * | 2013-02-21 | 2017-03-14 | Dell Products, Lp | Configuring a trusted platform module |
WO2014138626A1 (en) | 2013-03-08 | 2014-09-12 | Robert Bosch Gmbh | Systems and methods for maintaining integrity and secrecy in untrusted computing platforms |
US9501666B2 (en) * | 2013-04-29 | 2016-11-22 | Sri International | Polymorphic computing architectures |
US10298545B2 (en) * | 2013-09-12 | 2019-05-21 | International Business Machines Corporation | Secure processing environment for protecting sensitive information |
US20150078550A1 (en) | 2013-09-13 | 2015-03-19 | Microsoft Corporation | Security processing unit with configurable access control |
US9633210B2 (en) | 2013-09-13 | 2017-04-25 | Microsoft Technology Licensing, Llc | Keying infrastructure |
-
2014
- 2014-09-14 US US14/485,737 patent/US10097513B2/en active Active
-
2015
- 2015-09-11 EP EP15771829.7A patent/EP3195176B1/en active Active
- 2015-09-11 WO PCT/US2015/049535 patent/WO2016040709A1/en active Application Filing
- 2015-09-11 ES ES15771829T patent/ES2888228T3/es active Active
- 2015-09-11 CN CN201580049476.7A patent/CN106687975B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549979A (zh) * | 2001-07-16 | 2004-11-24 | BEAϵͳ��˾ | 用于组播支持的方法和装置 |
CN102986189A (zh) * | 2010-05-09 | 2013-03-20 | 思杰***有限公司 | 用于为对应于虚通道的网络连接分配服务等级的***和方法 |
CN103119907A (zh) * | 2010-07-21 | 2013-05-22 | 思杰***有限公司 | 提供用于访问控制的智能组的***和方法 |
CN103198030A (zh) * | 2011-12-02 | 2013-07-10 | Nxp股份有限公司 | 访问安全存储器的方法、安全存储器和包括安全存储器的*** |
Also Published As
Publication number | Publication date |
---|---|
EP3195176A1 (en) | 2017-07-26 |
US20160080320A1 (en) | 2016-03-17 |
WO2016040709A1 (en) | 2016-03-17 |
EP3195176B1 (en) | 2021-08-18 |
US10097513B2 (en) | 2018-10-09 |
ES2888228T3 (es) | 2022-01-03 |
CN106687975A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106687975B (zh) | 可信执行环境可扩展计算装置接口 | |
US11757647B2 (en) | Key protection for computing platform | |
EP4199450A1 (en) | Digital twin framework for next generation networks | |
CN106471791B (zh) | 用于基于移动设备的集群计算架构的方法和装置 | |
CN107003889B (zh) | 用于提供全球平台兼容可信执行环境的***和方法 | |
US8938610B2 (en) | Computing device and method for wireless remote boot in a networked environment | |
US11468170B2 (en) | Techniques for processor boot-up | |
JP2015531500A (ja) | 安全なファームウェア更新 | |
US20210144202A1 (en) | Extended peer-to-peer (p2p) with edge networking | |
CN107533611B (zh) | 在遥测数据的传输中保护用户可标识信息 | |
US20220116335A1 (en) | End-to-end network slicing (ens) from ran to core network for next generation (ng) communications | |
US20220012042A1 (en) | Mechanism for secure and resilient configuration upgrades | |
JP2023047294A (ja) | ネットワークアプライアンスを使用したコンテンツ挿入 | |
US10554776B2 (en) | Startup of message-passing-interface (MPI) based applications in a heterogeneous environment | |
US20210089685A1 (en) | Monitoring memory status using configurable hardware secured by a dice root of trust | |
US20230319141A1 (en) | Consensus-based named function execution | |
CN117251177A (zh) | 基于容器化技术的微服务部署方法、装置、电子设备 | |
US20240195879A1 (en) | Preferred app registration in mec dual deployments | |
US20220012149A1 (en) | Stable transformations of networked systems with automation | |
WO2023081202A1 (en) | Mec dual edge apr registration on behalf of edge platform in dual edge deployments | |
US20230344716A1 (en) | Methods and apparatus to autonomously implement policies at the edge | |
US20230342223A1 (en) | Edge resource management | |
US20240205198A1 (en) | Secure key management for service mesh deployments | |
US20240202153A1 (en) | Portable mobile private networks using pluggable hardware modules | |
US20240205680A1 (en) | Radio-based unlock techniques for reconfigurable servers running in cloud-disconnected mode |
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 |