CN106605233B - 使用处理器提供可信执行环境 - Google Patents

使用处理器提供可信执行环境 Download PDF

Info

Publication number
CN106605233B
CN106605233B CN201580042636.5A CN201580042636A CN106605233B CN 106605233 B CN106605233 B CN 106605233B CN 201580042636 A CN201580042636 A CN 201580042636A CN 106605233 B CN106605233 B CN 106605233B
Authority
CN
China
Prior art keywords
trusted
memory
secure
single core
smm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580042636.5A
Other languages
English (en)
Other versions
CN106605233A (zh
Inventor
V·J·齐默
P·J·巴里
R·普尔纳查得兰
A·凡德万
P·A·戴斯
G·塞尔弗拉杰
J·卡雷诺
L·G·罗森鲍姆
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 CN106605233A publication Critical patent/CN106605233A/zh
Application granted granted Critical
Publication of CN106605233B publication Critical patent/CN106605233B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F21/575Secure boot
    • 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/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS
    • 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/60Digital content management, e.g. content distribution

Landscapes

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

Abstract

在实施例中,一种片上系统包括:单核,所述单核用于执行传统指令集,所述单核被配置成用于进入系统管理模式(SMM)以便提供可信执行环境来执行至少一个安全操作;以及存储器控制器,所述存储器控制器耦合至所述单核,所述存储器控制器用于与系统存储器进行接口连接,其中,所述系统存储器的一部分包括用于所述SMM的安全存储器,并且所述单核用于认证并执行引导固件、并且将控制转到所述SMM以便从受保护存储设备中获得密钥对并将所述密钥对存储在所述安全存储器中。对其他实施例进行了描述并要求保护。

Description

使用处理器提供可信执行环境
技术领域
实施例涉及向计算设备提供安全性。
背景技术
随着便携式计算设备(如智能电话、平板计算机等)变得更加流行,当用户试图使用可以很容易被探听的不可信设备执行金融或其他商业交易时,就会出现安全问题。此外,一些用户期望使用便携式计算设备访问安全数字内容(如受保护的媒体内容)。然而,某些内容在允许访问所述内容之前要求安全环境。同样,不可信设备可能无法访问这种内容。
附图说明
图1是根据本发明实施例的处理器的框图。
图2是根据本发明的实施例的方法的流程图。
图3是用于处理实施例中的受保护数字内容的安排的框图。
图4是根据本发明的一个实施例的系统安排的框图。
图5是可以与实施例一起使用的另一个示例系统的框图。
图6是可以与实施例一起使用的另一个示例系统的框图。
具体实施方式
在各种实施例中,可以为便携式计算设备提供可信执行环境(TEE),即使在这种平台的中央处理器或片上系统(SoC)采用固有地不具备用于安全环境的硬件能力(如通过安全协处理器、硬件可信平台模块(TPM)等)的低功率、单核设计的情况下。这种TEE可以由提供用于将TEE实例化的基于硬件和软件的技术组合的硬件/软件协同设计处理器来实现。因此,使用本发明的实施例,可以在移动平台中创建TEE以便执行数字权限管理(DRM)、固件TPM(fTPM)操作、一次性密码(OTP)以及其他高保证用法。尽管本发明的范围不限于这个方面,但是安全操作的相关和附加示例包括:创建和维护可信路径如以便提供受保护的音频视频路径(PAVP);以及创建和维护安全输入/输出路径等。
使用本发明的实施例,可以为具有处理器的平台提供TEE,所述处理器不具有以下两者中的任一者:固有安全能力,如
Figure BDA0001222043940000021
软件防护扩展(SGX)能力(通过处理器内部硬件和经由基于微代码的隔离机制对给定指令集(例如,
Figure BDA0001222043940000022
架构(IA)32或64指令集)进行扩展以便在用户环境中提供容器);或专用安全硬件资源,如融合式安全管理引擎(CSME),所述专用安全硬件资源自身可以是根据给定处理器设计的协处理器,如
Figure BDA0001222043940000023
微小IA设计。因为增加另一个微小IA核(在单核自身是微小IA核的情况下)将增加管芯尺寸、功率损耗和成本,所以这种协处理器可能不适合给定实施例,这可能规定不能用于智能电话、平板计算机、可穿戴、嵌入式设备等范围内的各种便携式计算设备。当然,实施例不限于基于
Figure BDA0001222043940000024
的处理器,并且同样地适用于其他厂商或许可方的处理器,如具有ARM架构的处理器(如基于Cortex的处理器或SoC)、或可向AMD公司或其他公司购买的处理器。
注意,如在此所使用的,TEE由此包括基于硬件的隔离机制和在此硬件保护域内的软件环境两者。在实施例中,TEE可以被提供在处理器的系统管理模式(SMM)中。更具体地,引导只读存储器(ROM)的特征结合SMM一起工作,以便在SoC或具有最小计算能力的其他处理器中提供TEE(从而使得专用核、协处理器或其他安全逻辑不可用于执行TEE创建和安全环境操作)。为此,可以通过以下方式向这种处理器提供TEE:使用引导ROM的用于至少执行密钥存储的代码或逻辑与用于经由在此描述的机制使有资格访问这些引导ROM能力从而使得非SMM代码不能访问引导ROM的访问控制逻辑的组合。
对TEE内部的软件机制来说,虚拟机(如像JavaTM虚拟机和/或仿真的SGX或‘eSGX’)可以存在,以便提供一些程度的可信软件应用兼容性。在实施例中,可以经由全球平台(GP)类型应用程序接口(API)进入TEE。
通常,SMM是在环0/监督模式(或IA VMX根)下运行的最高特权执行模式。在实施例中,可以由系统管理中断(SMI)来触发进入SMM。这种触发可以由硬件隔离机制(如系统管理模式范围寄存器)验证,所述硬件隔离机制可以被配置成用于确认对系统存储器的受保护部分的有效访问。
作为整体视角,可以经由引导ROM代码(和安全密钥存储设备)和此代码与SMM操作之间的交互来影响TEE。在制造时间期间,背书密钥(EK)密钥对被生成并存储在引导ROM私有资源(如私有隔离密钥储存库(store))中。然后,在引导时间期间,所述引导ROM首先保证统一可扩展固件接口(UEFI)固件是真实的,然后将控制转到UEFI SMM。在实施例中,此固件可以被标记或加密验证,如在安全引导中执行的。类似地,来自隔离存储设备(例如,在引导ROM中)的EK可以被访问并提供给SMM。进而,SMM将密钥和/或任何衍生物存储在存储器的受保护部分中,如系统管理随机存取存储器(SMRAM)。
此存储器可以通过重新引导被重置(例如,经由置零),并且进一步可以被隔离免于主机访问。以此方式,每个引导从引导ROM及其相关联的密钥储存库中将密钥材料配设到SMM TEE中。在其他实施例中,密钥储存库可以位于SoC的另一个部分中,如SoC的现场可编程熔丝。注意,在各种实施例中,可以在制造商授权(例如,处理器制造商或原始设备制造商(OEM)制造商的授权)下在工厂中配设密钥储存库及其组成密钥。在一些实施例中,可以通过用户或信息技术(IT)人员在制造商处或者现场对如用于DRM用途的附加密钥(例如,Google Widevine密钥箱)进行配设。
在TPM之外,SMM固件驱动器(driver)可以暴露一条或多条
Figure BDA0001222043940000031
SGX指令,以便进入SMM模式并提供软件PAVP或安全输入/输出(IO)能力。例如,在这种模式下,SoC可以在操作系统(OS)重置时通过使SMM代码禁用外围设备(例如,PCI设备)的设备ID来确保只有SMM TEE可以与此图型设备的图形处理器通信,从而使得设备仅对SMM TEE可见,并且由此,主机/OS没有意识到此可信视频路径。在实施例中,SMM范围寄存器(例如,一个或多个SMRR)可以保护固件的至少某些部分,并提供隔离的执行。在实施例中,SMM端口陷阱允许主机与SMM驱动器通信以便进入/退出SMM模式。综上所述,通过这种配设和I/O陷阱机制,多种基于TEE的应用(如TPM、DRM黑箱和仿真或软件SGX)可以在低功率低功能处理器或其他SoC上实施。
现在参照图1,所示的是根据本发明实施例的处理器的框图。如图1中所见,处理器100是包括单核110的SoC。在此描述的各种实施例中,核110可以是低功率和相对简单的处理器核,如按次序处理器。如一个这种示例,核110可以是
Figure BDA0001222043940000041
QuarkTM处理器核。在实施例中,这种处理器是被配置成用于执行传统指令集架构(如
Figure BDA0001222043940000042
兼容式ISA)的指令的单线程核。这样,在更高级处理器(如基于
Figure BDA0001222043940000043
TM架构的处理器)上可用的某些指令(例如,高级向量指令或如在
Figure BDA0001222043940000044
SGX环境中可用的高级安全指令)不可用于在核110自身中执行。
仍参照图1,核110耦合至主机桥115,所述主机桥可以是连接到SoC的不同部件的接口。如看到的,主机桥115耦合至管芯上引导只读存储器(ROM)120,在实施例中,所述管芯上引导只读存储器可以存储在此描述的代码和密钥材料。主机桥115进一步耦合至高速缓存存储器130,在实施例中,所述高速缓存存储器可以是嵌入式静态随机存取存储器(eSRAM)。主机桥115进一步耦合至存储器控制器140,所述存储器控制器被配置成用于与如给定系统存储器(例如,DRAM)等片外存储器进行接口连接。注意,此DRAM可以包括用于进行在此描述的安全操作的受保护或安全部分(如SMRAM)。
此外,主机桥115耦合至连接到片外设备的不同接口。这些接口包括传统桥150,从所述传统桥到各种片外部件的接口连接可能发生。作为示例,除其他片外设备之外,这些片外部件可以包括外部ROM和平台管理控制器。此外,主机桥115进一步耦合至结构160,在实施例中,所述结构可以是被配置成用于接口连接至片外部件(如经由12C接口、USB接口和以太网接口等)的高级微控制器总线架构(AMBA)结构。此外,主机桥115进一步耦合至PCIe接口170,所述PCIe接口进而可以与一个或多个片外PCIe设备接口连接。当与图1的实施例中的这些限制的部件一起被示出时,应理解的是,本发明的范围不限于这个方面,并且许多替代方案和变化是可能的。
现在参照图2,所示的是根据本发明实施例的方法的流程图。如图2中所示出的,方法200的部分可以在重置包括TEE能力的系统时以及在系统的用于执行将要在TEE中执行的一个或多个可信操作的普通操作期间被执行。
如看到的,方法200根据重置向量(框210)在预引导环境202中开始,所述重置向量可以是响应于重置包括SoC的系统的硬连线重定向,以便指引至固件存储设备中的预定位置,本文中还指引导ROM。然后,在框215处,可以开始执行这种ROM。可以根据可信根从此硬编码入口点开始预引导。尽管可以在开始ROM执行时执行各种操作,但是为了在此描述的实施例的目的,一个这种操作包括生成背书密钥对(EK)。在实施例中,此密钥对可以被生成为李维斯特沙米尔阿德尔曼(RSA)公/私密钥对。可以将此密钥对存储在给定安全位置中,如引导ROM的受保护的密钥储存库。在实施例中,此密钥对可以在系统的制造期间生成,并且然后,制造商可以生成在之后被公开的EK凭证。
仍参照图2,接下来控制转到框220,在此可以运行各种预引导代码。尽管本发明的范围不限于这个方面,但是,在提供UEFI代码的系统中,此预引导代码可以包括安全部分、预执行初始化代码和驱动器执行环境代码(分别为SEC、PEI和DXE)。
控制接下来转到框225,在此可以设置系统存储器的受保护部分。在实施例中,系统存储器的此受保护部分是SMRAM。这种SMRAM可以是系统存储器的分割部分,仅当处理器处于SMM操作模式下时,才允许访问所述SMRAM。如一个这种示例,访问控制硬件可以保护系统存储器的此部分,例如,经由一组存储器范围寄存器以及访问控制逻辑,所述访问控制逻辑用于确认在允许访问受保护范围之前处理器在SMM中有效。
在设置系统存储器的此受保护部分时,控制转到框230,在此可以设置TEE驱动器。在一个实施例中,这种驱动器可以包括一个或多个TEE DXE驱动器。此外,可以执行握手协议以便从引导ROM中获得先前生成的密钥对,并将这种密钥存储在系统存储器的受保护部分(如SMRAM)中。在一个实施例中,可以置位IN_SMM信号来初始化握手,以便将密钥传送到SMRAM中,其中,它们可以对SMM外的系统隐藏,包括OS和在系统上执行的任何恶意软件。
此时,已经设置了TEE,并且完成了预引导操作。因此,控制转到在其中引导OS(框240)的引导或OS环境252。在此环境中的系统的普通操作期间,当接收到请求动作时,可以判定所述动作是否是在非SMM期间接收的可信动作(即可信动作的请求)(菱形250)。在各种实施例中,注意,可以经由在TEE中执行的驱动器来使输入和输出可信。此可信动作请求的示例可以是固件TPM操作的OS请求,所述OS请求可以针对将要被进入的SMM触发SMI。在另一个示例中,全球平台API可以触发可信动作的请求,如OTP或金融交易。
如果所述动作是可信动作,则控制转到菱形255,以便判定可用的可信执行环境(在实施例中是DXE SMM TEE)是否支持相应动作的命令。如果不支持所述命令,则控制转到框265,在此执行脏关闭。在实施例中,脏关闭包括指示未授权用户尝试执行可信操作。在另一个实施例中,LED指示器可以闪烁来指示所述尝试。或者在错误的预OS UEFI调用程序的情况下,平台可以简单忽略对所述操作的执行,并且返回至适当的返回代码,如“EFI_SECURITY_VIOLATION”。
否则,如果支持所述命令,则控制转到框260,在此可以在TEE中执行所述命令。为了进入TEE,置位SMM初始化信号(例如,IN_SMM信号),以便在SMM中开始执行所请求的可信操作。注意,期望的操作可以采用许多不同形式的可信操作。可以将可信操作的结果放置在未受保护的存储器中,如OS可访问的RAM。当完成这种执行时,控制转到框290,在此,在终止TEE之后(例如,经由重新开始(RSM)指令退出SMM)可以继续平台执行。
仍参照图2,如果相反在菱形250处确定请求动作不是可信动作,则控制转到菱形270,在此判定是否请求不可信UEFI动作。如果是,则控制转到框275,在此可以在监督模式(例如,环0)中执行所述操作,以便执行不可信UEFI动作,可以使用DXE代码和/或ACPI代码来执行所述不可信UEFI动作。如果请求动作不是不可信UEFI动作,则控制反而转到框280,以便进行常规的无特权OS内核/应用进程。尽管在图2的实施例中以这种较高层次示出,但是本发明的范围不限于此安排。
如以上讨论的,根据实施例的TEE一种示例使用情况是用于处理受保护数字内容,例如,具有DRM管理保护。假设用户期望经由内容递送服务(如NetflixTM)下载或流出以及观看电影或其他视频内容。在这种情况下,在系统中经由网络连接来接收已加密数字内容。注意,尽管内容本身是已加密的,但是实际的接收是经由未加密信道。为了使能够解密所述内容,进入TEE,并且使用安全密钥来执行解密操作。更具体地,存储的EK密钥对可以充当密钥层级根,以便生成在安全存储设备中安全的受保护的存储根密钥(SRK),并且在TEE中访问所述EK密钥对,以便导出和访问其他密钥(如内容解密密钥)。换句话说,EK密钥对可以用于管理其他密钥,如用于进行内容加密/解密的密钥。
为此,假设用户预先执行交换过程,以便获得与NetflixTM服务一起使用的一组密钥。更具体地,经由安全存储设备的EK密钥,一组内容解密密钥其自身可以被加密并维持在非安全存储设备中,如系统的给定的非易失性存储设备(例如,系统的未受保护的闪存)。
然后,当系统在TEE中的同时接收到已加密内容时,可以使用受保护的EK密钥来获得来自未受保护存储设备的这些存储的密钥,并对其进行解包封。然后,可以使用这些已解密密钥对所述内容执行解密操作。在内容被解密后,可以经由安全信道将其发送至目的地,例如经由安全路径(例如,经由
Figure BDA0001222043940000071
Figure BDA0001222043940000072
PAVP技术)耦合至处理器的本地显示器,在所述目的地处,此安全路径无法通过不可信源(如不可信OS或在系统中操作的恶意软件)被探听。在实施例中,可以经由SMM中的专用控制台驱动器来实现安全或可信信道,以便提供直接与目标设备通信的可信硬件路径,并且不使用OS显示器或其他驱动器。以类似的方式,因为输入设备驱动器可以在TEE中的SMM内执行,所以用户或其他输入当在TEE中时还可以经由可信输入路径,并且由此避免了恶意软件或不可信OS输入驱动器。因此,在系统中可以以高保证接收或处理安全内容。
现在参照图3,所示的是用于处理实施例中受保护的数字内容的安排的框图。如图3中所示出的,系统300包括耦合至存储器350的SoC 310,在实施例中,所述存储器是包括安全部分(例如,SMRAM)352和未受保护部分354的系统存储器。此外,SoC 310耦合至显示设备360,所述显示设备可以是触屏显示器或系统的其他显示器。
响应于对SMI的接收,SoC 310进入TEE 320。为了本文中讨论的目的,在TEE 320内执行期间,解密逻辑330操作用于解密进入的已加密内容,所述已加密内容可以是任何类型的受保护数字内容(如安全视频、音频或其他受保护的信息),所述受保护数字内容可以经由未加密信道接收。为了使解密逻辑330能够解密已加密内容,在解密逻辑330与存储器350之间发生通信,并且更具体地,通信至安全部分352以便获得SRK 353以及通信至未受保护部分354以便获得已加密密钥对355。在实施例中,已加密密钥对355是与内容的提供方相关联的先前存储的密钥对。为了加密/解密存储在未受保护的存储器中的此密钥对,可以使用SRK 353。更具体地,SRK 353可以是EK密钥对,例如,在系统的初始化期间配设到SMRAM中(如从引导ROM中获得)。使用SRK 353的密钥,可以对已加密密钥对355进行解密,并且已解密密钥可以用于在解密逻辑330中进行解密以便输出已解密内容。
如图3中进一步展示的,TEE 320进一步包括显示驱动器340,所述显示驱动器是OS不可访问的可信的安全驱动器或在系统上执行的恶意软件。这样,在TEE 320与显示设备360之间提供可信路径。可以将已解密内容存储在显示设备的帧缓冲器370中,然后,所述帧缓冲器向显示器输出已解密内容。当在图3的图示中以这种较高层次示出时,应理解的是,本发明的范围不限于这个方面,并且许多变化和替代方案是可能的。
另一种使用情况可以是用于在受保护的存储器(例如,SMRAM)不足以为了在TEE中的可信操作期间保持指令和/或数据的目的的情况下将已加密页面存储在存储器中。也就是说,在许多系统中SMRAM被限制在例如8兆字节(MB)。在一些情况下,处理其他安全代码的SMM可以消耗大于此8MB极限,并且因此,代码和/或数据可以在SMRAM与未受保护的存储器之间交换。在这种情况下,当已加密页面进入SMRAM中时,首先可以使用从存储根密钥中导出的密钥来解密信息。并且类似地,当信息将被从受保护存储设备中发送回时,导出的密钥可以再次用于在存储到未受保护的存储器之前加密信息。
现在参照图4,所示的是根据本发明的实施例的系统安排的框图。如图4中看到的,系统400可以是嵌入式设备或可穿戴设备,并且同样地可以是不具有示出的示例中的显示器的无头系统。CPU 410可以是具有如在此描述的单个低功率核的SoC或其他处理器,并且被配置成用于在SMM中执行,以便提供将用于如在此描述的安全操作的可信执行环境。在不同实施例中,在TEE中,可以执行各种安全操作,包括仿真
Figure BDA0001222043940000091
SGX技术、
Figure BDA0001222043940000092
TXT技术或ARM信任区。
如进一步看到的,存储器系统的各个部分耦合至CPU 410,包括系统存储器415(例如,由动态随机存取存储器(DRAM)形成)和非易失性存储设备435,所述存储设备可以是系统的主要大容量存储设备并且可以例如对应于固态驱动器。注意,系统存储器415可以包括用于存储如在此描述的EK(以及衍生物)的SMRAM。
在图4的实施例中,可能存在附加部件,包括耦合至CPU 410的传感器/通信中枢440。中枢440可以是独立中枢或配置在CPU 440内。如看到的,一个或多个传感器442可以与中枢440通信。为了用户认证和设备/上下文证明的目的,这些传感器可以包括生物输入传感器、一个或多个捕获设备以及全球定位系统(GPS)模块或其他专用位置传感器。还可以存在如惯性和环境传感器等其他传感器。作为若干示例,可以提供加速度计和力检测器,并且从这些传感器中获得的信息可以用于生物认证。同样,在各种实施例中,可以存在一个或多个无线通信模块445,以便使能够根据3G或4G/LTE通信协议与局域或广域无线网络(如给定蜂窝系统)进行通信。
注意,实施例不限于无头系统,并且可以同样适用于提供可信环境以便在其他设备中进行安全操作。现在参照图5,所示的是可以与实施例一起使用的另一个示例系统的框图。如看到的,系统500可以是智能电话或其他无线通信机。基带处理器505被配置成用于执行与将从系统发射或由系统接收的通信信号相关的各种信号处理。进而,基带处理器505被耦合至应用处理器510,所述应用处理器可以是系统的用于执行除用户应用(如许多众所周知的社交媒体和多媒体应用)之外的OS和其他系统软件的主CPU。如在此描述的,应用处理器510可以进一步被配置成用于进入SMM,以便执行对设备的安全操作。
进而,应用处理器510可以耦合至用户界面/显示器520,例如,触屏显示器。此外,应用处理器510可以耦合至存储器系统,包括非易失性存储器(即闪存530)和系统存储器(即DRAM 535)。在一些实施例中,DRAM 535可以包括安全部分532,在所述安全部分中可以存储秘密(如EK和导出密钥)。如进一步看到的,应用处理器510还耦合至捕获设备545,如可以记录视频和/或静止图像的一个或多个图像捕获设备。多个传感器525可以耦合至应用处理器510,以便使能够输入各种感测信息,如加速度计和其他环境信息。
如进一步展示的,提供了经由NFC天线565在NFC近场中通信的近场通信(NFC)非接触式接口560。尽管图5中示出了独立的天线,但是应理解的是,在一些实施方式中,可以提供一个天线或不同组天线,以便使能各种无线功能。
电源管理集成电路(PMIC)515耦合至应用处理器510,以便执行平台级电源管理。为此,PMIC 515可以向应用处理器510下发电源管理请求,以便如期望的那样进入某些低功率状态。此外,基于平台约束,PMIC 515还可以控制系统500的其他部件的功率水平。
为了能够发射和接收通信,各种电路可耦合于基带处理器505与天线590之间。具体地,可以存在射频(RF)收发器570和无线局域网(WLAN)收发器575。通常,RF收发器570可用于根据如3G或4G无线通信协议(如根据码分多址(CDMA)、全球移动通信系统(GSM)、长期演进(LTE)或其他协议)等给定无线通信协议来接收和发射无线数据和呼叫。此外,可以存在GPS传感器580,如在此描述的,将位置信息提供给安全处理器550来使用。还可提供如无线电信号(例如,AM/FM以及其他信号)的接收或发射的其他无线通信。此外,经由WLAN收发器575,还可以实现如根据蓝牙TM标准或IEEE802.11标准的本地无线通信。
现在参照图6,所示的是可以与实施例一起使用的另一个示例系统的框图。在图6的图示中,系统600可以是移动低功率系统,如平板计算机、2:1平板计算机、平板电脑或其他可转换或独立的平板系统。如所展示的,存在SoC 610并且其可以被配置成用于作为设备的应用处理器而进行操作,并且用于进入SMM以便执行在此描述的安全操作。
各种设备可以耦合至SoC 610。在所示出的图示中,存储器子系统包括耦合至SoC610的闪存640和DRAM 645。为此,SoC 610可以包括用于处理与DRAM 645的通信的集成存储器控制器,并且设置和保护在此描述的此存储器(例如,SMRAM)内的安全部分。此外,触摸面板620被耦合至SoC 610以便经由触摸配设显示能力和用户输入,包括提供触摸面板620的显示器上的虚拟键盘。为了提供有线网络连接,SoC 610耦合至以太网接口630。外围中枢625被耦合至SoC 610以便使能够与各种外围设备接口连接,如可以通过各种端口或其他连接器中的任一项耦合至系统600。
除了内部电源管理电路和SoC 610内的功能外,电源管理集成电路(PMIC)680被耦合至SoC 610以便提供基于平台的电源管理,例如,基于系统是否由电池690或AC电源经由AC适配器695为系统供电。除了此基于电源的电源管理外,PMIC 680可以进一步基于环境和使用条件来执行平台电源管理活动。仍进一步地,PMIC 680可以将控制和状态信息传达给SoC 610,以便引起SoC 610内的各种电源管理活动。
仍参照图6,为了提供无线能力,WLAN单元650被耦合至SoC 610并且进而耦合至天线655。在各种实施方式中,WLAN单元650可以根据一个或多个无线协议(包括IEEE 802.11协议、蓝牙TM协议或任何其他无线协议)提供通信。
如进一步展示的,多个传感器660可以耦合至SoC 610。这些传感器可以包括各种加速度计、环境和其他传感器,包括用户手势传感器。最后,音频编解码器665被耦合至SoC610,以便提供连接到音频输出设备670的接口。当然应理解的是,尽管示出为图6中的此具体实施方式,但是许多变化和替代方案是可能的。
以下示例涉及另外的实施例。
在示例1中,SoC包括:单核,所述单核用于执行传统指令集,其中,所述单核被配置成用于进入SMM以便提供TEE来执行至少一个安全操作;以及存储器控制器,所述存储器控制器耦合至所述单核,所述存储器控制器用于与系统存储器进行接口连接,其中,所述系统存储器的一部分包括用于所述SMM的安全存储器,并且所述单核用于:认证引导固件;执行所述引导固件;以及将控制转到所述SMM以便从受保护存储设备中获得密钥对,并且将所述密钥对存储在所述安全存储器中。
在示例2中,所述单核用于在所述SMM中进行操作以便从包括非易失性存储设备的所述受保护存储设备中获得所述密钥对,所述非易失性存储设备包括用于存储所述密钥对的隔离密钥储存库,其中,在生产包括所述SoC的系统期间,所述密钥对将被生成并存储在所述非易失性存储设备中。
在示例3中,在重置所述SoC时,所述安全存储器将可选地被重置,使得所述密钥对被删除,所述安全存储器将被与在所述SMM外部的访问隔离。
在示例4中,如以上示例中任一项所述的SoC,在所述TEE中,用于对指令集中不受所述单核支持的至少一条安全指令进行仿真。
在示例5中,如以上示例中任一项所述的SoC,在所述TEE中,用于:接收已加密内容;使用存储在耦合至所述SoC的未受保护存储设备中的一个或多个导出密钥来解密所述已加密内容;以及经由可信信道将所述已解密内容输出至输出设备。
在示例6中,如以上示例中任一项所述的SoC,在所述TEE中,用于:对存储在所述安全存储器中的信息页面进行加密;以及将所述已加密页面存储在所述系统存储器的未受保护部分中。
在示例7中,所述单核包括所述SoC的唯一核,所述SoC进一步包括引导ROM,所述引导ROM用于将所述密钥对存储在所述引导ROM的受保护部分中。
在示例8中,如以上示例中任一项所述的单核用于将执行从所述SMM转到操作系统,以便在将所述密钥对存储在所述安全存储器中之后进行引导。
注意,可以使用各种手段实施以上所述的SoC。
在示例中,所述SoC可以并入用户设备启用触摸的设备中。
在另一个示例中,系统包括显示器和存储器,并且包括如以上示例中的一个或多个示例所述的SoC。
在示例9中,至少一种计算机可读介质包括当被执行时使得系统执行以下各项的指令:在处理器的单核中执行预引导环境的固件的至少一部分,以便创建系统存储器的可信部分;以及将执行转移到与所述可信部分相关联的可信代理,从非易失性存储设备的受保护部分中请求密钥对,将所述密钥对存储在所述系统存储器的所述可信部分中,并且之后将执行从所述可信代理转移到操作系统。
在示例10中,如示例9所述的至少一种计算机可读介质可选地进一步包括当被执行时使得所述系统能够执行以下各项的指令:从不可信代理处接收可信动作请求;以及如果所述可信代理支持所述可信动作请求,则经由所述可信代理进入可信执行环境,以便在所述可信执行环境中执行与所述可信动作请求相对应的安全操作。
在示例11中,如示例9所述的至少一种计算机可读介质可选地进一步包括当被执行时使得所述系统能够执行以下各项的指令:当在可信执行环境中时,响应于由所述单核执行的IN_SMM指令而从所述非易失性存储器的所述受保护部分中请求所述密钥对。
在示例12中,如示例9所述的至少一种计算机可读介质可选地进一步包括当被执行时使得所述系统能够执行以下各项的指令:当在所述可信执行环境中时,对指令集中不受所述单核支持的至少一条安全指令进行仿真。
在示例13中,如示例9所述的至少一种计算机可读介质可选地进一步包括当被执行时使得所述系统能够执行以下各项的指令:接收已加密内容,使用存储在所述系统存储器中的一个或多个导出密钥来解密所述已加密内容,并且经由可信信道将所述已解密内容输出至输出设备。
在示例14中,如示例9所述的至少一种计算机可读介质可选地进一步包括当被执行时使得所述系统能够执行以下各项的指令:对存储在所述系统存储器的所述可信部分中的信息页面进行加密,并且将所述已加密页面存储在所述系统存储器的未受保护部分中。
在示例15中,一种系统,包括:处理器,所述处理器具有用于执行传统指令集的单核,其中,所述单核被配置成用于进入SMM以便将TEE实例化,所述单核进一步具有安全存储设备以及用于与存储器进行接口连接的存储器控制器,其中,所述存储器包括用于所述SMM的安全部分,并且其中,所述单核用于:认证引导固件;执行所述引导固件;以及将控制转到所述SMM以便从所述安全存储设备中获得背书密钥,并且将所述背书密钥存储在所述存储器的所述安全部分中;显示设备,所述显示设备耦合至所述处理器,所述显示设备包括帧缓冲器,所述帧缓冲器用于存储将被显示在所述显示设备上的已处理数据;以及所述存储器,所述存储器耦合至所述处理器,所述存储器包括用于存储所述背书密钥的所述安全部分以及用于存储一个或多个解密密钥的未受保护部分,其中,在所述TEE中,所述处理器用于:接收已加密内容;使用所述一个或多个解密密钥来解密所述已加密内容;以及将所述已解密内容输出至所述显示设备。
在示例16中,所述显示设备经由可信信道被耦合至所述处理器,其中,所述处理器用于在所述TEE中执行显示驱动器,以便将所述已处理数据传送至所述显示设备以存储在所述帧缓冲器中。
在示例17中,所述背书密钥包括存储根密钥,所述处理器用于使用所述存储根密钥以在所述一个或多个解密密钥存储到所述存储器的所述未受保护部分中之前加密所述一个或多个解密密钥。
在示例18中,所述安全存储设备包括用于存储所述引导固件的至少一部分的片上ROM。
在示例19中,所述安全存储设备包括所述处理器的一组可编程熔丝。
在示例20中,在所述TEE中,所述处理器用于:对存储在所述存储器的所述安全部分中的信息页面进行加密;以及将所述已加密页面存储在所述存储器的所述未受保护部分中。
在示例21中,一种方法,包括:在处理器的单核中执行预引导环境的固件的至少一部分,以便创建系统存储器的可信部分;以及将执行转移到与所述可信部分相关联的可信代理,从非易失性存储设备的受保护部分中请求密钥对,将所述密钥对存储在所述系统存储器的所述可信部分中,并且之后将执行从所述可信代理转移到操作系统。
在示例22中,如示例21所述的方法,进一步包括:从不可信代理处接收可信动作请求;以及如果所述可信代理支持所述可信动作请求,则经由所述可信代理进入可信执行环境,以便在所述可信执行环境中执行与所述可信动作请求相对应的安全操作。
在示例23中,如示例21所述的方法,进一步包括:当在可信执行环境中时,响应于由所述单核执行的IN_SMM指令而从所述非易失性存储器的所述受保护部分中请求所述密钥对。
在示例24中,如示例21所述的方法,进一步包括:当在所述可信执行环境中时,对指令集中不受所述单核支持的至少一条安全指令进行仿真。
在示例25中,如示例21所述的方法,进一步包括:接收已加密内容;使用存储在所述系统存储器中的一个或多个导出密钥来解密所述已加密内容;以及经由可信信道将所述已解密内容输出至输出设备。
在示例26中,如示例21所述的方法,进一步包括:对存储在所述系统存储器的所述可信部分中的信息页面进行加密;以及将所述已加密页面存储在所述系统存储器的未受保护部分中。
在示例27中,一种装置,包括用于执行如以上示例中任一项所述的方法的装置。
在示例28中,一种机器可读存储介质,包括当被执行时实施如以上示例中任一项所述的方法的机器可读指令。
在示例29中,一种系统,包括:用于在处理器的单核中执行预引导环境的固件的至少一部分以便创建系统存储器的可信部分的装置;用于将执行转移到与所述可信部分相关联的可信代理的装置;用于从非易失性存储设备的受保护部分中请求密钥对的装置;用于将所述密钥对存储在所述系统存储器的所述可信部分中的装置;以及用于将执行从所述可信代理转移到操作系统的装置。
在示例30中,如示例29所述的系统,进一步包括:用于从不可信代理处接收可信动作请求的装置;以及用于如果所述可信代理支持所述可信动作请求则经由所述可信代理进入可信执行环境以便在所述可信执行环境中执行与所述可信动作请求相对应的安全操作的装置。
在示例31中,如示例29所述的系统,进一步包括:用于当在可信执行环境中时响应于由所述单核执行的IN_SMM指令而从所述非易失性存储器的所述受保护部分中请求所述密钥对的装置。
在示例32中,如示例29所述的系统,进一步包括:用于接收已加密内容的装置;用于使用存储在所述系统存储器中的一个或多个导出密钥来解密所述已加密内容的装置;以及用于经由可信信道将所述已解密内容输出至输出设备的装置。
应理解的是,以上示例的各种组合都是可能的。
各实施例可以用于许多不同类型的系统中。例如,在一个实施例中,通信设备可被安排成用于执行在此描述的所述各种方法和技术。当然,本发明的范围不限于通信设备,相反其他实施例可涉及用于处理指令的其他类型的装置、或包括指令的一种或多种机器可读介质,所述指令响应在计算设备上被执行而使得所述设备执行在此描述的方法和技术中的一项或多项。
实施例可以在代码中实现并且可存储在非瞬态存储介质上,所述非瞬态存储介质具有存储在其上的指令,这些指令可用于对系统编程来执行指令。存储介质可以包括但不局限于包括以下各项的任何类型的磁盘:软盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、可复写致密盘(CD-RW)、和磁光盘,诸如只读存储器(ROM)的半导体器件、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、闪存、电可擦可编程只读存储器(EEPROM)、磁卡或光卡、或者适合于存储电子指令的任何其他类型的介质。
虽然已经针对有限数量的实施例对本发明进行了描述,但本领域技术人员将理解到来自其中的许多修改和变体。旨在使得所附的权利要求书覆盖落入本发明的真正精神和范围的所有这样的修改和变体。

Claims (24)

1.一种用于执行至少一个安全操作的片上系统(SoC),包括:
单核,所述单核用于执行传统指令集,其中,所述单核被配置成用于进入系统管理模式(SMM)以便提供可信执行环境(TEE)来执行至少一个安全操作,其中在所述TEE中,所述单核用于对指令集中不受所述单核支持的至少一条安全指令进行仿真;以及
存储器控制器,所述存储器控制器耦合至所述单核,所述存储器控制器用于与系统存储器进行接口连接,其中,所述系统存储器的一部分包括用于所述SMM的安全存储器,并且其中,所述单核用于:认证引导固件;执行所述引导固件;以及将控制转到所述SMM以便从受保护存储设备中获得密钥对,并且将所述密钥对存储在所述安全存储器中。
2.如权利要求1所述的SoC,其中,所述单核用于在所述SMM中进行操作以便从包括非易失性存储设备的所述受保护存储设备中获得所述密钥对,所述非易失性存储设备包括用于存储所述密钥对的隔离密钥储存库,其中,在生产包括所述SoC的系统期间,所述密钥对将被生成并存储在所述非易失性存储设备中。
3.如权利要求2所述的SoC,其中,在重置所述SoC时,所述安全存储器将被重置,使得所述密钥对被删除,所述安全存储器将与在所述SMM外部的访问隔离。
4.如权利要求1所述的SoC,其中,在所述TEE中,所述单核用于:接收已加密内容;使用存储在耦合至所述SoC的未受保护存储设备中的一个或多个导出密钥来解密所述已加密内容;以及经由可信信道将所述已解密内容输出至输出设备。
5.如权利要求1所述的SoC,其中,在所述TEE中,所述单核用于:对存储在所述安全存储器中的信息页面进行加密;以及将所述已加密页面存储在所述系统存储器的未受保护部分中。
6.如权利要求1所述的SoC,其中,所述单核包括所述SoC的唯一核,所述SoC进一步包括引导只读存储器(ROM),所述引导只读存储器用于将所述密钥对存储在所述引导ROM的受保护部分中。
7.如权利要求1所述的SoC,其中,所述单核用于将执行从所述SMM转到操作系统,所述操作系统将在所述密钥对被存储在所述安全存储器中之后被引导。
8.一种用于执行可信代理的方法,包括:
在处理器的单核中执行预引导环境的固件的至少一部分,以便创建系统存储器的可信部分;
将执行转移到与所述可信部分相关联的可信代理;
经由所述可信代理进入可信执行环境;
当在所述可信执行环境中时,对指令集中不受所述单核支持的至少一条安全指令进行仿真;以及
从非易失性存储设备的受保护部分中请求密钥对,将所述密钥对存储在所述系统存储器的所述可信部分中,并且之后将执行从所述可信代理转移到操作系统。
9.如权利要求8所述的方法,进一步包括:从不可信代理处接收可信动作请求;以及如果所述可信代理支持所述可信动作请求,则经由所述可信代理进入可信执行环境,以便在所述可信执行环境中执行与所述可信动作请求相对应的安全操作。
10.如权利要求8所述的方法,进一步包括:当在可信执行环境中时,响应于由所述单核执行的IN_SMM指令而从所述非易失性存储器的所述受保护部分中请求所述密钥对。
11.如权利要求8所述的方法,进一步包括:接收已加密内容;使用存储在所述系统存储器中的一个或多个导出密钥来解密所述已加密内容;以及经由可信信道将所述已解密内容输出至输出设备。
12.如权利要求8所述的方法,进一步包括:对存储在所述系统存储器的所述可信部分中的信息页面进行加密;以及将所述已加密页面存储在所述系统存储器的未受保护部分中。
13.至少一种机器可读介质,包括多条指令,所述多条指令响应于在计算设备上被执行而使所述计算设备执行根据权利要求8至12中任一项所述的方法。
14.一种用于解密内容的系统,包括:
处理器,所述处理器具有用于执行传统指令集的单核,其中,所述单核被配置成用于进入系统管理模式(SMM)以便将可信执行环境(TEE)实例化,所述单核进一步具有安全存储设备以及用于与存储器进行接口连接的存储器控制器,其中,所述存储器包括用于所述SMM的安全部分,并且其中,所述单核用于:认证引导固件;执行所述引导固件;以及将控制转到所述SMM以便从所述安全存储设备中获得背书密钥,并且将所述背书密钥存储在所述存储器的所述安全部分中,其中在所述TEE中,所述单核用于对指令集中不受所述单核支持的至少一条安全指令进行仿真;
显示设备,所述显示设备耦合至所述处理器,所述显示设备包括帧缓冲器,所述帧缓冲器用于存储将被显示在所述显示设备上的已处理的数据;以及
所述存储器,所述存储器耦合至所述处理器,所述存储器包括用于存储所述背书密钥的所述安全部分以及用于存储一个或多个解密密钥的未受保护部分,其中,在所述TEE中,所述处理器用于:接收已加密内容;使用所述一个或多个解密密钥来解密所述已加密内容;以及将所述已解密内容输出至所述显示设备。
15.如权利要求14所述的系统,其中,所述显示设备经由可信信道被耦合至所述处理器,其中,所述处理器用于在所述TEE中执行显示驱动器,以便将所述已处理数据传送至所述显示设备以存储在所述帧缓冲器中。
16.如权利要求14所述的系统,其中,所述背书密钥包括存储根密钥,所述处理器用于:使用所述存储根密钥以在所述一个或多个解密密钥存储在所述存储器的所述未受保护部分中之前加密所述一个或多个解密密钥。
17.如权利要求15所述的系统,其中,所述安全存储设备包括片上只读存储器(ROM),所述片上ROM进一步用于存储所述引导固件的至少一部分。
18.如权利要求15所述的系统,其中,所述安全存储设备包括所述处理器的一组可编程熔丝。
19.如权利要求15所述的系统,其中,在所述TEE中,所述处理器用于:对存储在所述存储器的所述安全部分中的信息页面进行加密;以及将所述已加密页面存储在所述存储器的所述未受保护部分中。
20.一种用于执行可信代理的系统,包括:
用于在处理器的单核中执行预引导环境的固件的至少一部分以便创建系统存储器的可信部分的装置;
用于将执行转移到与所述可信部分相关联的可信代理的装置;
用于经由所述可信代理进入可信执行环境的装置;
用于当在所述可信执行环境中时对指令集中不受所述单核支持的至少一条安全指令进行仿真的装置;
用于从非易失性存储设备的受保护部分中请求密钥对的装置;
用于将所述密钥对存储在所述系统存储器的所述可信部分中的装置;以及
用于将执行从所述可信代理转移到操作系统的装置。
21.如权利要求20所述的系统,进一步包括:用于从不可信代理处接收可信动作请求的装置;以及如果所述可信代理支持所述可信动作请求,用于经由所述可信代理进入可信执行环境以便在所述可信执行环境中执行与所述可信动作请求相对应的安全操作的装置。
22.如权利要求20所述的系统,进一步包括:用于当在可信执行环境中时响应于由所述单核执行的IN_SMM指令而从所述非易失性存储器的所述受保护部分中请求所述密钥对的装置。
23.如权利要求20所述的系统,进一步包括:
用于接收已加密内容的装置;
用于使用存储在所述系统存储器中的一个或多个导出密钥来解密所述已加密内容的装置;以及
用于经由可信信道将所述已解密内容输出至输出设备的装置。
24.如权利要求20所述的系统,进一步包括:
用于对存储在所述系统存储器的所述可信部分中的信息页面进行加密的装置;以及
用于将所述已加密页面存储在所述系统存储器的未受保护部分中的装置。
CN201580042636.5A 2014-09-10 2015-07-28 使用处理器提供可信执行环境 Active CN106605233B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/482,136 2014-09-10
US14/482,136 US9594927B2 (en) 2014-09-10 2014-09-10 Providing a trusted execution environment using a processor
PCT/US2015/042436 WO2016039880A1 (en) 2014-09-10 2015-07-28 Providing a trusted execution environment using a processor

Publications (2)

Publication Number Publication Date
CN106605233A CN106605233A (zh) 2017-04-26
CN106605233B true CN106605233B (zh) 2021-04-16

Family

ID=55437771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580042636.5A Active CN106605233B (zh) 2014-09-10 2015-07-28 使用处理器提供可信执行环境

Country Status (5)

Country Link
US (2) US9594927B2 (zh)
EP (1) EP3192003B1 (zh)
CN (1) CN106605233B (zh)
TW (1) TWI546699B (zh)
WO (1) WO2016039880A1 (zh)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008011501A1 (de) * 2008-02-25 2009-08-27 Carl Zeiss Smt Ag Verfahren zum Betreiben eines Beleuchtungssystems einer mikrolithographischen Projektionsbelichtungsanlage
KR102192419B1 (ko) * 2014-09-11 2020-12-17 삼성전자주식회사 웨어러블 장치를 사용하여 전자 장치를 제어하는 방법 및 전자 장치의 동작 방법
US9800561B2 (en) * 2014-11-06 2017-10-24 Intel Corporation Secure sharing of user annotated subscription media with trusted devices
US20160134621A1 (en) * 2014-11-12 2016-05-12 Qualcomm Incorporated Certificate provisioning for authentication to a network
KR102281782B1 (ko) * 2014-11-14 2021-07-27 삼성전자주식회사 무선 통신 시스템에서 단말의 어플리케이션을 원격으로 관리하는 방법 및 장치
US10474596B2 (en) * 2015-06-25 2019-11-12 Intel Corporation Providing dedicated resources for a system management mode of a processor
US10083306B2 (en) * 2015-06-26 2018-09-25 Intel Corporation Establishing hardware roots of trust for internet-of-things devices
US10102151B2 (en) * 2015-11-06 2018-10-16 International Business Machines Corporation Protecting a memory from unauthorized access
US10193858B2 (en) * 2015-12-22 2019-01-29 Mcafee, Llc Attestation device custody transfer protocol
US11831654B2 (en) * 2015-12-22 2023-11-28 Mcafee, Llc Secure over-the-air updates
US10929526B2 (en) * 2016-03-01 2021-02-23 Qualcomm Incorporated User interface for tee execution of a device
CN105809036B (zh) * 2016-04-01 2019-05-10 中国银联股份有限公司 一种tee访问控制方法以及实现该方法的移动终端
US10389517B2 (en) * 2016-06-27 2019-08-20 Nxp B.V. Using secure key storage to bind a white-box implementation to one platform
US10628611B2 (en) 2016-11-04 2020-04-21 Qualcomm Incorporated Exclusive execution environment within a system-on-a-chip computing system
EP3340147A1 (en) 2016-12-22 2018-06-27 Mastercard International Incorporated Method for providing key identifier in transaction data
US10643006B2 (en) * 2017-06-14 2020-05-05 International Business Machines Corporation Semiconductor chip including integrated security circuit
US10402567B2 (en) 2017-06-25 2019-09-03 Microsoft Technology Licensing, Llc Secure boot for multi-core processor
US10503892B2 (en) 2017-06-25 2019-12-10 Microsoft Technology Licensing, Llc Remote attestation for multi-core processor
US10708061B2 (en) 2017-06-25 2020-07-07 Microsoft Technology Licensing, Llc Secure key storage for multi-core processor
US11057194B2 (en) 2017-07-03 2021-07-06 Stmicroelectronics S.R.L. Processing system, related integrated circuit, device and method
US10769269B2 (en) * 2017-07-10 2020-09-08 Intel Corporation Method and apparatus to gather platform configuration profile in a trustworthy manner
CN107465504A (zh) * 2017-08-15 2017-12-12 上海与德科技有限公司 一种提高密钥安全性的方法及装置
US10839080B2 (en) * 2017-09-01 2020-11-17 Microsoft Technology Licensing, Llc Hardware-enforced firmware security
US10740494B2 (en) * 2017-09-06 2020-08-11 Google Llc Central and delegate security processors for a computing device
US10511575B2 (en) * 2017-09-18 2019-12-17 Huawei Technologies Co., Ltd. Securing delegated credentials in third-party networks
CN107707981B (zh) * 2017-09-27 2020-10-30 晶晨半导体(上海)股份有限公司 一种基于Trustzone技术的微码签名安全管理系统及方法
US10761951B2 (en) * 2017-12-28 2020-09-01 Intel Corporation FPGA based functional safety control logic (FFSCL)
US10922441B2 (en) * 2018-05-04 2021-02-16 Huawei Technologies Co., Ltd. Device and method for data security with a trusted execution environment
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
CN112236772B (zh) * 2019-01-04 2023-12-22 百度时代网络技术(北京)有限公司 用于管理数据处理加速器的内存的方法和系统
CN109739565B (zh) * 2019-01-07 2022-03-29 深圳忆联信息系统有限公司 一种保证Bootrom正常运行的方法、装置、计算机设备及存储介质
US11251942B2 (en) * 2019-01-09 2022-02-15 Alibaba Group Holding Limited Secure communication channel between encryption/decryption component and trusted execution environment
GB2581161A (en) * 2019-02-05 2020-08-12 Trustonic Ltd Software encryption
US11354418B2 (en) * 2019-03-08 2022-06-07 International Business Machines Corporation Incremental decryption and integrity verification of a secure operating system image
US11336684B2 (en) * 2019-06-07 2022-05-17 Lookout, Inc. Mobile device security using a secure execution context
CN118172051A (zh) 2019-08-12 2024-06-11 创新先进技术有限公司 基于区块链的传票送达
CN112182557B (zh) * 2019-09-19 2022-05-03 中国科学院信息工程研究所 一种芯片级内置式的主动安全监控架构实现方法及电子装置
US11954198B2 (en) * 2019-10-31 2024-04-09 Vmware, Inc. Unifying hardware trusted execution environment technologies using virtual secure enclave device
US11436343B2 (en) * 2019-12-31 2022-09-06 Arm Limited Device, system, and method of policy enforcement for rich execution environment
CN113139175A (zh) 2020-01-19 2021-07-20 阿里巴巴集团控股有限公司 处理单元、电子设备以及安全控制方法
CN111444553A (zh) * 2020-04-01 2020-07-24 中国人民解放军国防科技大学 支持tee扩展的安全存储实现方法及系统
KR20210125330A (ko) * 2020-04-08 2021-10-18 삼성전자주식회사 보안 데이터 처리 방법 및 이를 지원하는 전자 장치
CN111757176B (zh) * 2020-06-11 2021-11-30 青岛海信传媒网络技术有限公司 流媒体文件安全播放方法及显示设备
US11816220B2 (en) * 2020-09-25 2023-11-14 Intel Corporation Phased boot process to dynamically initialize devices in a verified environment
US20220138325A1 (en) * 2020-10-29 2022-05-05 EMC IP Holding Company LLC Secure enclave pathing configuration for data confidence fabrics
US20210141903A1 (en) * 2020-11-19 2021-05-13 Sarathy Jayakumar Seamless smm global driver update base on smm root of trust
CN112507397B (zh) * 2020-11-23 2023-03-14 中国人民解放军战略支援部队信息工程大学 基于信息加密的微处理器固件信息保护方法
US11604643B2 (en) 2020-12-29 2023-03-14 Shanghai Zhaoxin Semiconductor Co., Ltd. System for executing new instructions and method for executing new instructions
US11669328B2 (en) 2020-12-29 2023-06-06 Shanghai Zhaoxin Semiconductor Co., Ltd. Method and system for converting instructions
US11803383B2 (en) 2020-12-29 2023-10-31 Shanghai Zhaoxin Semiconductor Co., Ltd. Method and system for executing new instructions
US11803387B2 (en) 2020-12-29 2023-10-31 Shanghai Zhaoxin Semiconductor Co., Ltd. System for executing new instructions and method for executing new instructions
US11789736B2 (en) 2020-12-29 2023-10-17 Shanghai Zhaoxin Semiconductor Co., Ltd. Method and system for executing new instructions
US11625247B2 (en) * 2020-12-29 2023-04-11 Shanghai Zhaoxin Semiconductor Co., Ltd. System for executing new instructions and method for executing new instructions
US11914997B2 (en) 2020-12-29 2024-02-27 Shanghai Zhaoxin Semiconductor Co., Ltd. Method and system for executing new instructions
US11803381B2 (en) 2020-12-29 2023-10-31 Shanghai Zhaoxin Semiconductor Co., Ltd. Instruction simulation device and method thereof
US11750372B2 (en) * 2021-01-07 2023-09-05 Dell Products L.P. BIOS/OS key provisioning system
US11722903B2 (en) * 2021-04-09 2023-08-08 Northrop Grumman Systems Corporation Environmental verification for controlling access to data
US11816252B2 (en) * 2021-07-12 2023-11-14 Dell Products L.P. Managing control of a security processor in a supply chain
US11392705B1 (en) * 2021-07-29 2022-07-19 Netskope, Inc. Disk encryption key management for booting of a device
US11989576B2 (en) * 2021-08-24 2024-05-21 Hewlett-Packard Development Company, L.P. Execution of code in system memory
US11755721B2 (en) * 2021-10-25 2023-09-12 International Business Machines Corporation Trusted workload execution
US11645092B1 (en) 2021-10-25 2023-05-09 International Business Machines Corporation Building and deploying an application
US20230177143A1 (en) * 2021-12-03 2023-06-08 International Business Machines Corporation Operating a secure code segment on a processor core of a processing unit
US11824984B2 (en) 2022-01-11 2023-11-21 International Business Machines Corporation Storage encryption for a trusted execution environment
CN114546501B (zh) * 2022-01-28 2023-10-24 郑州信大捷安信息技术股份有限公司 一种物理只读磁盘中启动Linux操作系统的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117642B2 (en) * 2008-03-21 2012-02-14 Freescale Semiconductor, Inc. Computing device with entry authentication into trusted execution environment and method therefor

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8479293B2 (en) * 2000-11-30 2013-07-02 Access Co., Ltd. Security technique for an open computing platform system
US7058768B2 (en) * 2002-04-17 2006-06-06 Microsoft Corporation Memory isolation through address translation data edit control
EP1391819A1 (en) * 2002-08-19 2004-02-25 Hewlett-Packard Company Data processing system and method
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US8261063B2 (en) * 2003-02-03 2012-09-04 Hewlett-Packard Development Company, L.P. Method and apparatus for managing a hierarchy of nodes
US7210009B2 (en) * 2003-09-04 2007-04-24 Advanced Micro Devices, Inc. Computer system employing a trusted execution environment including a memory controller configured to clear memory
GB0411654D0 (en) * 2004-05-25 2004-06-30 Hewlett Packard Development Co A generic trusted platform architecture
US20070297606A1 (en) * 2006-06-27 2007-12-27 Tkacik Thomas E Multiple key security and method for electronic devices
US8438653B2 (en) * 2007-04-10 2013-05-07 Microsoft Corporation Strategies for controlling use of a resource that is shared between trusted and untrusted environments
US7921286B2 (en) * 2007-11-14 2011-04-05 Microsoft Corporation Computer initialization for secure kernel
US7984286B2 (en) * 2008-06-25 2011-07-19 Intel Corporation Apparatus and method for secure boot environment
US8136158B1 (en) * 2008-07-21 2012-03-13 Google Inc. User-level segmentation mechanism that facilitates safely executing untrusted native code
US8522066B2 (en) 2010-06-25 2013-08-27 Intel Corporation Providing silicon integrated code for a system
US8312258B2 (en) 2010-07-22 2012-11-13 Intel Corporation Providing platform independent memory logic
US20120036308A1 (en) * 2010-08-06 2012-02-09 Swanson Robert C Supporting a secure readable memory region for pre-boot and secure mode operations
US8532290B2 (en) 2011-03-04 2013-09-10 Netflix, Inc. Content playback APIS using encrypted streams
US9268941B1 (en) * 2012-05-01 2016-02-23 Marvell International Ltd. Method for secure software resume from low power mode
US9418209B2 (en) 2012-10-02 2016-08-16 Google Technology Holdings LLC Systems and methods for manipulating sensitive information in a secure mobile environment
US9008304B2 (en) 2012-12-28 2015-04-14 Intel Corporation Content protection key management
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
US8559631B1 (en) * 2013-02-09 2013-10-15 Zeutro Llc Systems and methods for efficient decryption of attribute-based encryption
KR102095912B1 (ko) * 2013-05-15 2020-04-02 삼성전자 주식회사 보안 기능 운용 방법 및 이를 지원하는 전자 장치
DE102013107203A1 (de) * 2013-07-09 2015-01-15 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Dachschalen-Aufbau für ein Kraftfahrzeug
US9672162B2 (en) * 2013-08-16 2017-06-06 Arm Limited Data processing systems
TW201535145A (zh) * 2013-12-04 2015-09-16 Insyde Software Corp 使用保護讀取儲存器安全地儲存韌體數據之系統及方法
US9514304B2 (en) * 2013-12-23 2016-12-06 Intel Corporation Methods and apparatus to facilitate secure screen input
DE102013227184A1 (de) * 2013-12-27 2015-07-02 Robert Bosch Gmbh Verfahren zur Absicherung eines Systems-on-a-Chip
US11228427B2 (en) * 2014-02-11 2022-01-18 Ericsson Ab System and method for securing content keys delivered in manifest files
US9690943B2 (en) * 2014-06-04 2017-06-27 Dell Products L.P. BIOS secure data management system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117642B2 (en) * 2008-03-21 2012-02-14 Freescale Semiconductor, Inc. Computing device with entry authentication into trusted execution environment and method therefor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种轻量级安全可信的虚拟执行环境;陈浩 等;《中国科学(信息科学)》;20120531;第42卷(第5期);第617-633页 *

Also Published As

Publication number Publication date
US9594927B2 (en) 2017-03-14
US20160070932A1 (en) 2016-03-10
TWI546699B (zh) 2016-08-21
EP3192003A4 (en) 2018-05-16
CN106605233A (zh) 2017-04-26
EP3192003A1 (en) 2017-07-19
EP3192003B1 (en) 2022-07-06
US10366237B2 (en) 2019-07-30
US20170140153A1 (en) 2017-05-18
TW201617965A (zh) 2016-05-16
WO2016039880A1 (en) 2016-03-17

Similar Documents

Publication Publication Date Title
CN106605233B (zh) 使用处理器提供可信执行环境
Lentz et al. Secloak: Arm trustzone-based mobile peripheral control
US10536274B2 (en) Cryptographic protection for trusted operating systems
US10268815B2 (en) Authentication of a multiple protocol connection
US9525555B2 (en) Partitioning access to system resources
US20160350534A1 (en) System, apparatus and method for controlling multiple trusted execution environments in a system
US9268948B2 (en) Secure access enforcement proxy
US10726120B2 (en) System, apparatus and method for providing locality assertion between a security processor and an enclave
US10445154B2 (en) Firmware-related event notification
US20180060077A1 (en) Trusted platform module support on reduced instruction set computing architectures
US10810138B2 (en) Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME)
WO2018119904A1 (zh) 一种实现安全操作系统切换的片上系统和方法
US10691627B2 (en) Avoiding redundant memory encryption in a cryptographic protection system
US9870467B2 (en) Apparatus and method for implementing a forked system call in a system with a protected region
CN112149144A (zh) 聚合密码引擎
US10528746B2 (en) System, apparatus and method for trusted channel creation using execute-only code
US20170317832A1 (en) Virtual Secure Elements in Computing Systems based on ARM Processors
US20190228159A1 (en) Technologies for filtering memory access transactions received from one or more accelerators via coherent accelerator link
US10938857B2 (en) Management of a distributed universally secure execution environment
EP4273722A1 (en) Terminal chip and measurement method therefor

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