CN103221961B - 包括用于保护多用户敏感代码和数据的架构的方法和装置 - Google Patents

包括用于保护多用户敏感代码和数据的架构的方法和装置 Download PDF

Info

Publication number
CN103221961B
CN103221961B CN201180054122.3A CN201180054122A CN103221961B CN 103221961 B CN103221961 B CN 103221961B CN 201180054122 A CN201180054122 A CN 201180054122A CN 103221961 B CN103221961 B CN 103221961B
Authority
CN
China
Prior art keywords
samu
data
code
application
processor
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
CN201180054122.3A
Other languages
English (en)
Other versions
CN103221961A (zh
Inventor
丹尼尔·W·翁
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN103221961A publication Critical patent/CN103221961A/zh
Application granted granted Critical
Publication of CN103221961B publication Critical patent/CN103221961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/60Protecting data
    • 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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

描述了一种用于执行敏感代码和数据且包括安全资产管理单元(SAMU)的安全执行环境。所述SAMU提供安全执行环境以运行与用于内容使用而被建立的复制保护方案相关的单独程序代码或数据代码的多个实例。所述SAMU架构允许基于硬件的安全引导和存储器保护,并且提供由主机处理器提供的单独程序代码或数据的多个实例的按需代码执行。所述SAMU可自已加密并签名的内核代码来引导,并且执行已加密、签名的代码。基于硬件的安全配置促成防止垂直或水平权限违规。

Description

包括用于保护多用户敏感代码和数据的架构的方法和装置
相关申请的交叉参考
本申请要求均在2010年10月20日提交的美国临时申请61/405,045和61/405,054、在2010年12月9日提交的美国非临时申请12/964,278以及在2010年12月22日提交的美国非临时申请12/975,555的权益,这些申请的内容在此以引用的方式并入本文。
技术领域
本申请涉及基于硬件的安全执行环境。
发明背景
数字版权管理(DRM)许可证的稳健技术实施假定防止直接访问解密的数字内容的原始位流且许可证实施机制本身是可行的。然而,这难以在如个人计算机(PC)的开放计算平台上实现。
已经发现,PC难以使维持敏感代码和数据的机密性变得稳健。维持代码的机密性或保护数据的当前方法包括现有的基于软件的解决方案,这些解决方案依赖于反调试、完整性监控和混淆技术,以阻止逆向工程和篡改。另一种技术涉及在安全引导过程期间在加载时间认证***希望执行的软件代码和/或数据常量。这可例如经由如所属技术领域普通人员了解的签名确认技术来完成。但是,加载时间认证技术还有多个缺点。例如,在此技术中,认证仅在安全引导过程期间发生一次。因此,利用加载时间认证技术的***易于在运行时间受到编程攻击和/或数据破坏,其中运行时间被认为是紧随加载时间的时间段(即,在安全引导过程之后)。
现有计算***常试图通过实现基于凭证的安全***来保护存储在寄存器中的数据的完整性。在这样的***中,对寄存器(即,可读/写的存储器中的位置)的访问受限于其凭证经过确认的那些功能(即,软件程序)。这种确认可通过计算***内的逻辑来完成。然而,基于凭证的安全***有许多缺点。例如,基于凭证的安全***仅能够实施一个数据访问策略。具体而言,将允许具有可行凭证的功能访问寄存器内的数据,而将拒绝不具有可行凭证的功能访问该数据。因为这些***只依赖于基于凭证的确认作为用于数据访问的机制,所以易于受恶意功能不当地获取可行凭证并因此被允许访问被寻求保护的数据的情形的影响。此外,这些***假设基于凭证的数据访问对于被寻求保护的所有类型的数据都是适当的安全策略。然而,常常希望利用不同访问策略来保护不同类型的数据。
当如上文所讨论的已知技术以旨在运行于常规PC上的软件来实现时,这些技术对于在DRM***中使用常常还不够。存在可用于使逆向工程成为可能的许多工具。
另外,在PC中,操作***的保护架构和访问控制模型使其在用作DRM内容呈现客户端的平台时变得麻烦,因为难以连同开放架构一起来保护敏感软件代码。已证明,用来维持机密性的当前方法对于漫不经心的黑客是有效的,其代价是高计算和功率开销。然而,高价值资产仍难以防备专业的黑客。因此,需要提供一种在个人计算机环境中用于执行敏感代码和数据的安全执行环境。
发明概要
本文所述实施方案包括一种被提供用于基于硬件的受保护执行环境的安全配置,其允许将多个应用或按需敏感代码同时加载至安全执行环境中。运行时间生成的数据即使在被存储于外部存储器时仍可安全地受到保护。每个存储器上下文被单独管理,确保了各自上下文之间的机密性。该执行环境包括安全资产管理单元(SAMU)的架构细节。SAMU通过以加密格式从主机处理器卸载代码或数据以便进行认证并维持代码或数据的机密性而为程序代码或数据提供安全执行环境。SAMU减少了提供用于防篡改软件的平台所带来的功耗,并且降低了有效软件的撤销频率。此外,SAMU不会打扰老实的用户,但是提供受保护执行环境以使敏感代码的逆向工程变得困难。基于硬件的安全配置促成防止垂直或水平权限违规。
附图简述
结合附图举例给出后,可从以下描述中得到更详细的理解,其中:
图1A示出了根据一个实施方案的主机***,其中敏感代码从处理器中卸载至安全资产管理单元(SAMU);
图1B示出了SAMU顶层架构;
图2是多应用SAMU运行时上下文设置的流程图;
图3示出了SAMU软件堆栈;和
图4示出了运行时间存储器管理的实例。
具体实施方式
应注意,本申请并入美国非临时申请第12/964,278号的全文,如同在本文中阐述了该申请的全文一样。
如本文所使用的,术语“处理器”指的是以下任一个:处理器、处理器核心、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA),或类似器件。处理器可形成另一器件(例如,集成北桥、应用处理器(App处理器)、CPU、DSP等)的部分。如本文所使用的,处理器核心可以是x86、RISC或其它指令集核心。
安全资产管理单元(SAMU)是配置在处理器核心内的组件,或是被配置来和处理器核心配合执行的单独组件。当配置在处理器核心中或配置为与处理器核心分开的组件时,SAMU可被配置来执行以下中的至少一项操作:从主机处理器卸载敏感代码或加密存储器中的敏感代码或数据。
SAMU可以硬件来实现以提供基于硬件的受保护执行环境。在这样的环境中,敏感代码和数据可以在安全存储器中被保护,并且可仅在高速缓存或嵌入式存储器中被以明文形式存储。此外,调试在生产部件上被完全禁用;并且安全内核“拥有”并控制执行环境,并且对存储器和资源的访问全部受控。SAMU可与处理器共享存储器,或者其可具有专用存储器。
图1A示出了根据一个实施方案的主机***101,其中敏感代码从处理器被卸载至SAMU。图1A示出了包括经由***总线或内部总线105连接的处理器102和SAMU104的***101。***101用于执行将安全代码从处理器102卸载至SAMU104。***101可以是能够与对等端交换数据的任何计算机***。此外,***101可以包括使用安全协议在处理器102和SAMU104之间传输数据的一个或多个应用(图中未示出)。应用可运行在内核空间或用户空间中。
处理器102被配置来在***内核(图中未示出)中运行。处理器102与外部器件接口连接以从内容源(例如,内容介质,如蓝光(Blu-rayTM)光盘、从因特网等)检索加密的数据和消息(即,数据包)。处理器102可以将加密数据提供给SAMU104,以便进行解密和处理。例如导航数据的一些数据集可从SAMU104被返回至处理器102,以控制整体介质使用过程。SAMU104还可在需要保护时以重新加密格式将数据发送回处理器102。
在一个实施方案中,SAMU104包括处理堆栈,其被配置来实现处理发送至外部器件和从外部器件接收的数据。因此,当***101建立与外部器件或因特网的连接时,不是主机处理器102处理发送和接收的数据包,而是SAMU104经由在SAMU104上实现的处理堆栈而提供此处理功能。
在另一实施方案中,SAMU104可以是处理器102的一部分。
相对于图1B更详细地解释了SAMU104的架构。SAMU104包括安全引导只读存储器(ROM)110、存储器管理单元(MMU)120、指令高速缓存(I-高速缓存)130、数据高速缓存(D-高速缓存)140、存储器高级加密标准(M-AES)组件150、完整性确认器(IV)160、安全加速器170、处理器核心180、安全内核185,以及存储器接口190。安全加速器170被配置来实现以下中的至少一项:128b/192b/256b AES;安全散列算法(SHA-1/-2);Rivest、Shamir和Adleman(RSA)密码算法;椭圆曲线密码算法(ECC);数据加密标准(DES);3DES;Rivest密文4(RC4);1024b/2048b/3072b模幂运算;或提供真随机数发生器。
SAMU104可支持多个处理器模式,包括硅引导代码模式。其它处理器模式可以由安全内核185定义,包括例如:内核功能;内核服务;内部开发的SAMU104应用;第三方开发的SAMU104应用;已签名但用明码的SAMU104应用;未签名且用明码的SAMU104应用。
引导ROM110被配置来执行以硅形式的引导代码,以进行调试管理、以检查给定内核的完整性,以及以设置存储器AES,且然后将控制交给(通过完整性检查的)内核,其中嵌入式处理器在复位后被配置来运行引导代码。引导代码还被配置成基于电子熔丝技术配置或重新配置调试设备(例如,禁止访问生产部件的所有调试设备或在涉及将计算机逻辑蚀刻或硬编码至在制造后不能改变的芯片上的制造时注入的电子熔丝图案);等待SAMU104内核初始化,其中SAMU驱动程序提供安全内核185用于加载;并且采用完整性确认器(IV)硬件160来验证给定映像的完整性。IV硬件160可以被配置来从给定映像生成散列代码,并将该散列代码与附加到映像的散列代码进行比较。如果生成的散列代码和附加的散列代码匹配,那么IV硬件160提供PASS(通过)报告,否则,报告FAILURE(失败)。
引导ROM110还被配置来在成功的完整性检查后准备用于安全内核185的环境,并将控制交给安全内核185。安全内核可以使用相同的IV硬件160来定期地重新验证自身。
引导ROM110可以硅形式被提供为芯片的部分或安全地存储在外部ROM中。安全内核185(已加密和签名)可被提供为SAMU驱动程序的部分,其中安全内核185被配置来提供对SAMU中的资源的控制访问(安全策略);对SAMU周期的控制访问(作业调度);连接在主机上运行的SAMU驱动程序或运行在SAMU上的SAMU应用;并且按需建构/解构SAMU存储器或其它上下文。
为了提供最大的代码保护,来自不同应用的不同SAMU代码在不同的上下文中运行。每个代码映像不同地由签名工具加密并被散列化,其中在签名时随机生成加密密钥。此外,在接受加密映像用于执行之前对加密的映像进行完整性检查。
M-AES150提供读时的调制(利用硬件中的额外专有置乱)AES解密和写时的调制AES加密(高速缓存中或嵌入式内部存储器中的内容是明文);还可能存在旁路模式作为直通式常规存储器访问(经由MMU予以配置)。存储器AES密钥可由引导ROM代码或安全内核185生成,并被提供给用于保护经过存储器接口的敏感代码和数据的硬件。内容只有在指令高速缓存130、数据高速缓存140或在内部嵌入式存储器中时是明文。对于相同上下文,代码和数据密钥的共享也是可能的。安全内核185还可以使用随机位来在上下文创建时初始化数据密钥以阻止重放攻击。
运行时建立的敏感数据通常由运行时生成的随机密钥保护。随机密钥可以两种方式受到保护。在一种方式中,以标准AES加密旨在用于外部使用(例如主机或处理器中的解码加速器)的敏感数据。在第二种方式中,通过M-AES150加密旨在保持在安全执行环境内部的敏感数据。M-AES操作涉及在其它标准AES过程之前和之后利用硬件生成的调制进行调制。
在提供额外安全的替代实施方案中,为了保护来自SAMU的存储器流量,M-AES150在其它标准AES操作之前和之后利用硬件中的额外专有置乱应用进一步调制,这使逆向工程变得困难。敏感代码和数据可因此得以存储在现有帧缓冲器存储器或***存储器中并受到保护。可能会生成不同的随机密钥用于保护数据段,并有可能不共享代码和数据密钥。
在提供额外安全的另一实施方案中,每个代码映像由签名工具进行加密并散列化,其中加密密钥在签名期间随机生成(过程的这一部分发生在供应商或第三方软件提供商处)。用于安全内核185的解密密钥由引导ROM110中的引导代码计算和恢复,且用于SAMU应用的解密密钥由内核计算和恢复。此外,在接受映像用于执行之前由IV160进行完整性检查(对加密版本)。
上下文或存储器管理是在MMU120的帮助下由安全内核185进行的。MMU120被配置成进行将处理器180虚拟地址空间映射至器件地址空间(例如,图形处理器、数字信号处理器或FPGA)的地址转换逻辑。MMU120利用四个AES密钥支持多达16个非重叠地址段。一种可能的布置是指派两个密钥用于安全内核185(一个用于代码且一个用于数据)并指派另两个密钥用于SAMU应用(各一个用于代码和数据)。在此配置中,仅可利用相同数据密钥来保护属于相同上下文且需要受存储器AES保护的所有数据段。每个段可独立配置为针对:存储器大小;存储器AES保护,不论其是否可执行(例如,非执行标志);和访问控制(用于读/写访问的最小处理器模式)。每个存储器段在虚拟地址空间中必须是连续的。并非所有段受存储器AES加密保护。具体而言,用于SAMU104和外部器件或因特网之间的通信的缓冲器只可通过标准AES加以保护,且因此应在M-AES150关闭的情况下对其加以配置。
安全内核185是被允许配置MMU120的唯一代理。在切换到新的上下文(以服务于下个SAMU操作或应用)之前,安全内核185从MMU120取消映射属于先前的上下文的所有段,并重新配置MMU120以映射属于目标上下文的所有段。为了执行此过程,安全内核185可能需要清理数据高速缓存以将所有高速缓存数据往回提交至存储器,并以用于目标上下文的存储器AES密钥更新存储器AES密钥。
经由存储器接口190访问存储器。从器件(例如,处理器,包括CPU、GPU、DSP或FPGA或其它类似器件)的角度来看,SAMU104及其相应的组件被视为常规客户端。SAMU104依赖于M-AES150以对敏感代码和数据提供存储器保护。
安全内核185可包括额外安全服务以提供以下覆盖范围:建立与外部组件的安全通道;与数字版权管理(DRM)块的密钥交换;打开许可证密钥、器件密钥或内容密钥的包装;多路分用位流;解密或重新加密位流;作为虚拟机操作,例如,BD+,它是蓝光(Blu-rayTM)光盘DRM***的组件;或使用现有路径的用于音频/视频(A/V)加速的数据提交。
一旦被加载并受控,安全内核185就负责SAMU执行环境。如果按需加载了安全服务(而不是内核的完整部分),那么内核也负责检查按需代码的完整性,并为这些按需服务设置正确的解密密钥。按需代码的密钥推导过程由内核工程过程确定,且可根据产品/器件生成或制造技术变化。(产品/器件生成是制造器件所在的级别。例如,可以使用90纳米(nm)或65纳米技术制造处理器。)但是每次内核改变其密钥推导算法,用于用户代码的离线签名工具都必须被修改成匹配加密过程中的该流程。
复位后,处理器自硅中的ROM代码引导。引导程序代码被构造成在恢复解密密钥并将控制传递给给定加密内核之前检验给定加密内核的完整性。完整性确认是由完整性确认器160中的专用硬件逻辑来进行的。用于安全内核的离线签名工具具有密码学设置,其匹配完整确认硬件以及硬编码在引导ROM110中的密钥恢复机制。用于加密或密钥生成的散列功能的选择并非关键性的,且可基于单向AES操作的链接。
SAMU104的架构是这样的,其能够每秒执行具有密文要求的数百万指令(MIPS),并可支持包括AES、DES、SHA1和其它算法的密文加速。SAMU100架构支持全部或部分以下内容:真随机数发生器和伪随机数发生器、安全计时器、具有存储器管理的指令/数据高速缓存、多执行模式(或保护级别)、地址范围实施(由内核配置)、引导程序代码验证,以及额外开发工具。
具有基于硬件的页面表会同时改进安全性和性能。但是,对于***而言,由于需要额外的专用存储器,支持通常由大多数操作***使用的四千(K)字节页面大小可能是成本较高的。通过本文所述的安全执行单元,这个支持问题被证明是合理的。在一个实施方案中,一兆(M)字节的页面大小被用作起点。硬件页面表机制可支持从一个M字节至四个千兆(G)字节的2的任何次幂的页面大小。或者,可以支持其它的页面大小(例如,4K字节、8K字节、16K字节和2的其它次幂的页面大小)。
除了地址转换之外,页面表可包括其它安全特性。例如,其可包括数据结构以指示下列中的一个或多个:页面条目是活动的还是被禁用、页面是否含有数据或代码、单独的读访问和写访问控制、用来打开或关闭存储器AES的密文标志,或在需要存储器AES时的密钥索引。
指示页面(或段)是否含有代码或数据的页面表信息主要是个安全问题,且对于支持多个上下文而言可能并非必需的。通过通知内核页面旨在用于数据存储,内核可捕获执行来自该页面的代码的任何企图。此信息也有助于促进用来捕获缓冲器溢出攻击的有效机制。
在每个页面(或段)的基础上定义的读和写访问控制指定最小保护环,代码在这个最小保护环内执行,然后才可以准许对该页(或段)的读和/或写访问。这防止了在较低权限指派的应用(例如,用户应用)得到对属于在较高权限下运行的另一进程(例如,内核)的页面的读/写访问权时发生的垂直权限违规。典型的处理器架构利用各种保护/权限级别来分开和控制功能和进程(例如,进程必须有一定(预定义)的保护级别才能访问特定的数据结构或代码段)。
密文标志指示高速缓存至存储器接口是否可以打开M-AES150。M-AES150具有在AES操作之前和之后应用的硬件调制。受M-AES150保护的信息旨在用于在将由安全执行环境执行的SAMU敏感代码和/或仅由运行在该环境内部的机密功能使用的敏感数据内部使用。对于以在页面表条目中设置的密文标志标记的页面,硬件自动对至指令高速缓存或数据高速缓存中的所有存储器读操作应用解密,并在清理高速缓存线时对存储器写应用加密。
MMU120中的不同页面条目可与不同密文密钥相关。在一个实施方案中,可以在任一时间点支持四个活动的密文密钥(在替代实施方案中,可支持任何数量的密钥)。每个页面条目可指定可用于加密和解密两者的的密钥硬件的索引。这允许以独立密钥保护内核代码/数据和用户代码/数据。引导代码负责恢复内核代码密钥,而内核负责恢复用户代码密钥。内核还负责运行时生成所有数据密钥。
在替代实施方案中,代码密钥通过使这些功能均采用电子熔丝值作为其输入的部分而与完整性确认机构中的签名关联。通过将解密密钥与完整性确认机制关联,SAMU篡改变得困难。
最后,所有这些资源(页面表条目和存储器AES密钥)的配置空间必须受控。对该配置的读/写访问受控制状态寄存器中的单独访问控制字段的保护。代码可能需要处于适当的保护环中,然后它才可以修改这些配置设置。
所述的这种基于硬件的虚拟存储器的支持和相关安全设置提供了稳健的解决方案,以保护用于与现代的基于PC的操作***一起使用的敏感代码和数据。这消除了与基于软件的防篡改和混淆相关的计算和功耗/热开销。
图2是使用SAMU架构时单个应用的流程图。为SAMU生成二进制数(步骤210)。在签名工具中生成随机密钥(步骤215)。为SAMU加密二进制数(步骤220),且该步骤包括将安全内核作为例如GPU的显示驱动程序的一部分装运。用户可以将驱动程序和应用安装在用户的计算机/***上,从而使安全内核(显示驱动程序)和安全应用在一起(步骤225)。在引导时,安全内核185被提供给SAMU硬件(步骤230)。安全内核被引导ROM110确认并验证完整性(步骤235)。在以存储器AES配置解密密钥(以执行加密代码的按需解密)并将控制交给安全内核185之前,引导ROM110验证安全内核185完整性(步骤240)。如果安全内核验证失败(步骤245),则不暴露SAMU服务并且应用转而依靠基于软件的保护方案。成功的验证后,由引导ROM110配置用于安全内核的解密密钥(步骤250)。
由用户启动应用(步骤255)。当启动应用时,应用检测SAMU服务的存在(步骤260),并使其自身准备好来利用由SAMU提供的受保护的执行环境。应用将安全SAMU应用提供给安全内核,用于上下文创建(步骤265)。由安全内核185验证SAMU应用的完整性(步骤270)。安全内核185配置IV硬件160以检查SAMU应用的完整性(步骤275)。在成功的完整性验证之后,由安全内核185配置用于SAMU应用的解密密钥(步骤280)。如果IV硬件160无法验证SAMU应用(步骤275),那么无法接受运行SAMU应用,并将对应的失败消息返回给应用(步骤285)。在这种情况下,应用可选择回退到基于软件的保护技术。
如上文所述的将代码或数据卸载至SAMU用于硬件加速与解码卸载以及3D呈现卸载类似。例如,应用使用API将良好定义的工作项卸载至GPU。
SAMU104通过以下操作提供安全执行环境:提供针对敏感功能使用的敏感数据的安全引导、完整性检查、执行加密代码、存储器保护;和禁用对生产芯片的调试。安全环境内存在至少两种不同种类的代码,例如,内核代码或应用代码,以及引导程序代码。
引导程序代码被加密地存储在安全存储器中且和最终芯片一起被装运。其在引导时提供三个主要服务:禁用对生产芯片的调试、检查由SAMU驱动程序提供的内核映像的完整性和在将控制交给给定内核之前计算用于该内核的解密密钥。
作为引导过程的部分,解密密钥被计算,且只在成功确认内核映像的完整性后完成此操作。解密密钥依据多个输入:在涉及将计算机逻辑蚀刻或硬编码至在被制造后不能改变的芯片上的制造时注入的电子熔丝图案、在内核二进制签名时生成的随机图案(存储为已签名内核映像的部分)和在引导时由SAMU驱动程序提供的软件参数。内核解密密钥的计算还涉及访问嵌入在硅中的秘密功能,这些功能可包括秘密乘法器、DSP块、处理器、高速IO逻辑和嵌入式存储器。
内核代码用作SAMU104的管理器并向SAMU驱动程序提供服务。内核代码可包括制造商内核证书且被引导加载程序完整性实施。它控制SAMU资源且具有对SAMU和处理器的寄存器级访问权。它还可以在运行时加载额外的应用代码以提供按需服务。安全内核185处理驱动程序调用并相应地引用固件例行程序。
图3描述SAMU软件堆栈300。主机应用310和SAMU驱动程序320驻留在主机处理器360(例如,个人计算机、智能电话等)上。基于来自主机应用310的请求,SAMU驱动程序320发出命令330,并将相应数据340传输到(例如,在处理器核心中或在GPU中的)SAMU处理器370的安全内核380。安全内核380可以从多个应用进程(如SAMU应用)接收数据。此数据可包括代码、应用数据,以及相应的密钥和签名(由签名工具嵌入)。安全内核380可以将经过处理的数据340交回给SAMU驱动程序320,SAMU驱动程序320继而将该信息交给主机应用310。或者,安全内核380可将退出代码350交给SAMU驱动程序320,退出代码350最终将被交给主机应用310,以便进行处理。
图4示出了SAMU架构中的运行时存储器管理的实例。SAMU虚拟地址410被映射到MMU120中的虚拟地址页面表条目(D0-D15),MMU120接着将地址映射至器件地址空间420(例如,GPU存储器、DSP存储器、FPGA存储器或其它类似器件)中的条目。
在一个实施方案中,虚拟地址页面表被存储在MMU120的硬件寄存器中且只对于处理器180可访问,而不是依赖于外部存储器。这个方案的一个特点是可以同时管理多个应用。在这个实例中,SA2(在SAMU地址空间410和器件地址空间420中)和SA1(在器件地址空间420中)表示至少两个应用,其中SA2是此时由SAMU提供服务的活动上下文。
现在将说明页面表条目的应用。将页面表条目标记为活动或不活动是用于基于硬件的页面转换。不同上下文通常使用不同数量的页面表条目,因为从软件开发角度来看,如果所有上下文都必须使用相同数量的存储器段,就太具有限制性了。在存储器管理中,每条目标志为内核提供灵活性。每条目标志还可防止在被指派了相同保护环(环值被存储在如在SAMU地址空间410中所示的SAMU环缓冲器(SRB)中)的两个上下文得到对属于另一上下文的页面的访问权时发生的水平权限违规。
本文所述的实施方案使用SAMU来从主机处理器卸载敏感代码。处理器以受保护形式将敏感数据馈送至在SAMU上运行的敏感代码。为了处理高价值优质内容,SAMU可提供内容复制保护、多路分用,以及在将控制交回给主机和/或编码解码器以便进行进一步处理之前的音频和/或视频数据包的提取、音频和/或视频基本流的建构和重新加密的应用。
通过SAMU提供的安全执行环境可用于运行与为优质内容使用而建立的复制保护方案相关的敏感代码。可能需要安全执行的环境的实例是在主机上运行的蓝光(Blu-rayTM)光盘播放器或蓝光(Blu-rayTM)播放器应用。蓝光(Blu-rayTM)光盘播放器可以是个人计算机或用户器件的一部分。软件供应商需要用于运行蓝光(Blu-rayTM)光盘的安全执行环境,因为光盘伴有内容创建者所依赖的用于保护内容的稳健的复制保护方案。SAMU提供这样的环境。蓝光(Blu-rayTM)播放器可卸载内容保护功能(如AACS和BD+功能)以在安全环境上运行。受保护的蓝光(Blu-rayTM)内容自光盘加载,但是在安全环境中依赖于AACS和BD+功能来进行解密及多路分用操作。视频位流可以在安全环境内部以AES重新加密,以便由视频解码器使用。音频位流和其它导航数据可以AES重新加密,以便由播放器使用。
然而,所属领域技术人员应明白,SAMU的应用并不限于蓝光(Blu-rayTM)光盘播放器。SAMU可以用在其它硬件平台,包括移动电话、手持配件、定位***等等。
在所描述的实施方案中,SAMU是处理器为中心的安全平台。处理器可以形成另一器件(例如,集成北桥、应用处理器、中央处理单元、数字信号处理器等等)的部分。因为SAMU是提供编解码器加速的处理器的一部分,所以用于保护从SAMU退出的位流的密钥可用作至编解码器加速器中的输入,且可从SAMU传递至编解码器加速器而不会离开处理器。这种构造和操作还可改进优质内容使用的安全性。
可以通过检测和利用作为SAMU内核的部分提供的安全服务而将敏感代码的执行从处理器移至SAMU。或者,可以通过将敏感代码提供到作为已签名固件的来自半导体制造商的授权驱动程序而将敏感代码从处理器移至SAMU。SAMU还可用于卸载其它密码学操作,如其中需要访问私有密钥的认证和数字签名的创建。通过将这些操作移至SAMU,私有密钥可以加密的形式被存储在主机***中,且私有密钥的明文值只能在受保护的执行环境中被恢复和使用。
使用SAMU可以改进整个***的稳健性和电源效率。SAMU在处理架构中提供单个信任确认点,如在处理器、GPU、CPU、DSP或FPGA内。SAMU仅从加密和已签名的内核代码引导,并且仅执行加密和已签名的代码。SAMU硬件可运行未签名的明码(即未加密的)代码。SAMU被提供了基于硬件的安全引导和存储器保护,并能够执行由主机处理器提供的按需代码。
在一个实施方案中,通过在器件(例如,GPU平台)中集成32位RISC处理器并将安全逻辑添加至其中而建立具有功率效率和成本效益的安全执行环境。用于在此环境中执行的二进制数以随机生成的密钥加密且同时由离线工具签名。将受保护的二进制数以加密形式随驱动程序和/或应用提供,并且即使在存储器中被加载时,受保护的二进制数仍将保持在该形式。当按需将敏感代码加载至指令高速缓存中时,“实时地”进行解密。这种布置允许使用PC中现有的可用存储器来存储机密信息。
敏感代码受离线签名工具保护。存在至少两种敏感代码:管理资源访问的内核和将实际安全相关功能提供给主机应用的用户代码。SAMU制造商可拥有内核,但是用户代码可来自SAMU制造商或外部软件供应商(其为SAMU建立应用)。还可为这些种类的敏感代码开发单独的签名工具。
此外,可将SAMU的核心功能提供给软件供应商,其中SAMU制造商将开发工具提供给软件供应商,或者其中SAMU制造商和软件供应商都开发分区方案和有关API。在这些情况下,SAMU制造商或软件供应商可生成按需固件代码。
此外,本文所述实施方案减少了研究和开发资源的随机化、减轻退货的零售压力,并实现个人计算机平台上的优质广播。优质内容可包括,例如,手持数字视频广播、ARIB等。本文所述实施方案减少了在混淆和防篡改软件使用上消耗的功率,降低了有效软件的撤销频率,并且通过对客户造成相对较少或几乎没有的不便而使内容所有人满意。
本文所述实施方案可以在处理器核心中实现,处理器核心可以以CPU、DSP、FPGA、GPU或其任意组合来体现。所属领域技术人员应理解,处理器核心可以形成另一器件(例如,集成北桥、应用处理器、CPU、DSP等)的部分。
举例而言,合适的处理器包括:通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其它类型的集成电路(IC)和/或状态机。
此外,本发明可以以硬件、软件、固件或其任意组合来体现。本发明的实施方案或其部分可以许多编程语言来编码,如硬件描述语言(HDL)、汇编语言、C语言、网表等。例如,如Verilog的HDL可以用于合成、模拟和制造实现本发明的一个或多个实施方案的方面的器件,例如,处理器、专用集成电路(ASIC)和/或其它硬件元件。Verilog代码可用于建模、设计、确认和/或实现能够应用SAMU的处理器。
例如,Verilog可用于生成可执行指令的逻辑的寄存器传输级(RTL)描述,用于SAMU应用。接着,逻辑的RTL描述可用来生成数据,例如图形设计***(GDS)或GDS II数据,其用于制造所需的逻辑或器件。Verilog代码、RTL描述和/或GDS II数据可以被存储在计算机可读介质上。由逻辑执行以执行本发明的方面的指令可以各种编程语言(例如C和C++)来编码,并且可被编译成可由逻辑或其它器件执行的目标代码。
本发明的方面可以全部或部分地被存储在计算机可读介质上。在计算机可读介质上存储的指令可将处理器调适为全部或部分地执行本发明,或调适为生成专门适于全部或部分地执行本发明的器件,例如处理器、ASIC或其它硬件。这些指令也可用于通过生成掩模作品/光掩模而最终配置制造过程,以生成体现本文所述发明的方面的硬件器件。

Claims (20)

1.一种用于为单独程序代码或数据的多个实例提供安全执行环境的方法,所述方法包括:
将单独代码或数据的多个实例以加密格式从主机处理器卸载至安全资产管理单元(SAMU),以便进行认证并维持所述单独代码或数据的多个实例的机密性,其中所述多个实例与多个应用有关,并且所述SAMU同时管理所述多个应用,其中所述主机处理器最初经由与外部器件的接口以加密格式从内容源检索所述代码或数据;和
当需要保护时,将数据以重新加密格式从所述SAMU返回到所述主机处理器,而当不需要保护时,将数据以解密格式从所述SAMU返回到所述主机处理器。
2.根据权利要求1所述的方法,其中所述卸载包括对于所述单独代码或数据的多个实例中的每一个实例,创建具有在签名工具中生成的随机密钥的加密二进制引导映像。
3.根据权利要求2所述的方法,其中所述加密二进制引导映像被加密用于所述SAMU且作为用于所述SAMU的安全内核和安全应用被提供。
4.根据权利要求3所述的方法,其中用户安装所述加密二进制引导映像并按需将所述加密二进制引导映像提供给所述SAMU。
5.根据权利要求4所述的方法,其还包括:
在使用引导只读存储器(ROM)配置用于和所述SAMU一起使用的解密密钥之前验证所述加密二进制引导映像的完整性。
6.根据权利要求5所述的方法,其还包括:
在所述引导ROM生成用于和所述SAMU一起使用的解密密钥;和响应于肯定的验证而将控制交给所述加密二进制引导映像。
7.根据权利要求6所述的方法,其中响应于肯定的验证和所述安全内核的执行,用于提供对内容的访问的应用检测所述SAMU硬件的可用性且所述安全内核生成用于所述用于提供对内容的访问的应用的上下文并验证所述用于提供对内容的访问的应用的完整性。
8.根据权利要求7所述的方法,其中响应于内核映像的肯定的验证,由所述安全内核恢复用于所述用于提供对内容的访问的应用的所述单独代码或数据的多个实例中的每个的代码解密密钥,以便与生成用于所述用于提供对内容的访问的应用的所述上下文一起使用。
9.根据权利要求8所述的方法,其还包括:
响应于所述内核映像的肯定的验证,对于所述单独代码或数据的多个实例中的每一个,在所述安全内核为所述用于提供对内容的访问的应用随机地生成数据密文密钥。
10.根据权利要求5所述的方法,其中响应于否定的验证,不暴露SAMU服务,且所述用于提供对内容的访问的应用回退到基于软件的保护方案。
11.一种用于提供用于单独程序代码或数据的多个实例的安全执行单元的***,所述***包括:
主机处理器,其被配置来执行包括代码或数据的多个应用并经由与外部器件的接口以加密格式从内容源检索代码或数据;和
安全资产管理单元(SAMU),其被配置来执行程序代码,其中所述SAMU连接至所述主机处理器且被配置来将单独代码或数据的多个实例以加密格式从所述主机处理器卸载,以便进行认证并维持所述单独代码或数据的多个实例的机密性,其中所述多个实例与多个应用有关,并且所述SAMU同时管理所述多个应用,所述SAMU进一步被配置来在需要保护时将数据以重新加密格式返回到所述主机处理器,而在不需要保护时将数据以解密格式返回到所述主机处理器。
12.根据权利要求11所述的***,其中所述SAMU还被配置来创建具有在签名工具中生成的随机密钥的加密二进制引导映像,作为所述卸载单独代码或数据的多个实例的部分。
13.根据权利要求12所述的***,其中所述加密二进制引导映像被加密用于所述SAMU且作为用于SAMU的安全内核和安全应用被提供。
14.根据权利要求13所述的***,其中用户安装所述加密二进制引导映像并按需将所述加密二进制引导映像提供给所述SAMU。
15.根据权利要求14所述的***,其中所述SAMU还被配置成在使用引导只读存储器(ROM)配置用于和所述SAMU一起使用的解密密钥之前验证所述加密二进制引导映像的完整性。
16.根据权利要求15所述的***,其中所述引导ROM还被配置来生成用于和所述SAMU一起使用的解密密钥,并响应于肯定的验证而将控制交给所述加密二进制引导映像。
17.根据权利要求16所述的***,其中响应于肯定的验证和所述安全内核的执行,用于提供对内容的访问的应用检测所述SAMU硬件的可用性且所述安全内核生成用于所述用于提供对内容的访问的应用的上下文并验证所述用于提供对内容的访问的应用的完整性。
18.根据权利要求17所述的***,其中响应于内核映像的肯定的验证,由所述安全内核恢复所述用于提供对内容的访问的应用的所述单独代码或数据的多个实例中的每个的代码解密密钥,以便与生成用于所述用于提供对内容的访问的应用的所述上下文一起使用。
19.根据权利要求18所述的***,其还被配置来:
响应于所述内核映像的肯定的验证,对于所述单独代码或数据的多个实例中的每一个,在所述安全内核为所述用于提供对内容的访问的应用随机地生成数据密文密钥。
20.根据权利要求15所述的***,其中响应于否定的验证,不暴露SAMU服务,且所述用于提供对内容的访问的应用转而依靠基于软件的保护方案来进行认证。
CN201180054122.3A 2010-10-20 2011-10-19 包括用于保护多用户敏感代码和数据的架构的方法和装置 Active CN103221961B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US40505410P 2010-10-20 2010-10-20
US40504510P 2010-10-20 2010-10-20
US61/405,045 2010-10-20
US61/405,054 2010-10-20
US12/964,278 US8904190B2 (en) 2010-10-20 2010-12-09 Method and apparatus including architecture for protecting sensitive code and data
US12/964,278 2010-12-09
US12/975,555 US8489898B2 (en) 2010-10-20 2010-12-22 Method and apparatus for including architecture for protecting multi-user sensitive code and data
US12/975,555 2010-12-22
PCT/US2011/056902 WO2012054615A1 (en) 2010-10-20 2011-10-19 Method and apparatus including architecture for protecting multi-user sensitive code and data

Publications (2)

Publication Number Publication Date
CN103221961A CN103221961A (zh) 2013-07-24
CN103221961B true CN103221961B (zh) 2015-10-14

Family

ID=45973980

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201180054724.9A Active CN103210396B (zh) 2010-10-20 2011-10-19 包括用于保护敏感代码和数据的架构的方法和装置
CN201180054122.3A Active CN103221961B (zh) 2010-10-20 2011-10-19 包括用于保护多用户敏感代码和数据的架构的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201180054724.9A Active CN103210396B (zh) 2010-10-20 2011-10-19 包括用于保护敏感代码和数据的架构的方法和装置

Country Status (6)

Country Link
US (2) US8904190B2 (zh)
EP (2) EP2630607B1 (zh)
JP (2) JP5670578B2 (zh)
KR (2) KR101397637B1 (zh)
CN (2) CN103210396B (zh)
WO (2) WO2012054615A1 (zh)

Families Citing this family (174)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904190B2 (en) * 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US10511630B1 (en) 2010-12-10 2019-12-17 CellSec, Inc. Dividing a data processing device into separate security domains
US9569633B2 (en) * 2012-06-29 2017-02-14 Intel Corporation Device, system, and method for processor-based data protection
US10305937B2 (en) 2012-08-02 2019-05-28 CellSec, Inc. Dividing a data processing device into separate security domains
US9294508B2 (en) 2012-08-02 2016-03-22 Cellsec Inc. Automated multi-level federation and enforcement of information management policies in a device network
EP2880837B1 (en) * 2012-08-02 2019-10-30 Cellsec Limited Automated multi-level federation and enforcement of information management policies in a device network
US9703945B2 (en) 2012-09-19 2017-07-11 Winbond Electronics Corporation Secured computing system with asynchronous authentication
US9323552B1 (en) 2013-03-14 2016-04-26 Amazon Technologies, Inc. Secure virtual machine memory allocation management via dedicated memory pools
US11669441B1 (en) 2013-03-14 2023-06-06 Amazon Technologies, Inc. Secure virtual machine reboot via memory allocation recycling
US9507540B1 (en) * 2013-03-14 2016-11-29 Amazon Technologies, Inc. Secure virtual machine memory allocation management via memory usage trust groups
US9247316B2 (en) * 2013-04-23 2016-01-26 Microsoft Technology Licensing, Llc Protected media decoding using a secure operating system
US9495544B2 (en) 2013-06-27 2016-11-15 Visa International Service Association Secure data transmission and verification with untrusted computing devices
KR101471589B1 (ko) * 2013-08-22 2014-12-10 (주)잉카엔트웍스 공통중간언어 기반 프로그램을 위한 보안 제공 방법
US9455962B2 (en) 2013-09-22 2016-09-27 Winbond Electronics Corporation Protecting memory interface
US9343162B2 (en) 2013-10-11 2016-05-17 Winbond Electronics Corporation Protection against side-channel attacks on non-volatile memory
US9830456B2 (en) * 2013-10-21 2017-11-28 Cisco Technology, Inc. Trust transference from a trusted processor to an untrusted processor
US20150121054A1 (en) * 2013-10-31 2015-04-30 Advanced Micro Devices, Inc. Platform Secure Boot
CN106104542B (zh) * 2013-12-24 2020-01-07 英特尔公司 对于数据即服务(DaaS)的内容保护
US9318221B2 (en) 2014-04-03 2016-04-19 Winbound Electronics Corporation Memory device with secure test mode
WO2015154066A1 (en) 2014-04-04 2015-10-08 David Goldschlag Method for authentication and assuring compliance of devices accessing external services
US9438627B2 (en) 2014-06-11 2016-09-06 International Business Machines Corporation Shared security utility appliance for secure application and data processing
US9430619B2 (en) 2014-09-10 2016-08-30 Microsoft Technology Licensing, Llc Media decoding control with hardware-protected digital rights management
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
IL234956A (en) 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
US10078361B2 (en) 2014-10-08 2018-09-18 Apple Inc. Methods and apparatus for running and booting an inter-processor communication link between independently operable processors
CN104331470B (zh) * 2014-10-31 2017-12-05 深圳市东信时代信息技术有限公司 基于缓存机制的数据处理方法及***
CN107004099B (zh) * 2014-11-26 2020-06-05 惠普发展公司,有限责任合伙企业 存储器中攻击预防
US9858429B2 (en) * 2014-12-01 2018-01-02 Samsung Electronics Co., Ltd. Methods of data transfer in electronic devices
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US9886297B2 (en) 2014-12-11 2018-02-06 Amazon Technologies, Inc. Systems and methods for loading a virtual machine monitor during a boot process
US9424067B2 (en) 2014-12-11 2016-08-23 Amazon Technologies, Inc. Managing virtual machine instances utilizing an offload device
US9292332B1 (en) 2014-12-11 2016-03-22 Amazon Technologies, Inc. Live updates for virtual machine monitor
US9400674B2 (en) 2014-12-11 2016-07-26 Amazon Technologies, Inc. Managing virtual machine instances utilizing a virtual offload device
US9535798B1 (en) 2014-12-19 2017-01-03 Amazon Technologies, Inc. Systems and methods for maintaining virtual component checkpoints on an offload device
US10706182B2 (en) 2014-12-19 2020-07-07 Private Machines Inc. Systems and methods for using extended hardware security modules
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
KR102324336B1 (ko) * 2015-03-20 2021-11-11 한국전자통신연구원 사용자 장치 및 그것에 대한 무결성 검증 방법
US10243739B1 (en) 2015-03-30 2019-03-26 Amazon Technologies, Inc. Validating using an offload device security component
US10211985B1 (en) * 2015-03-30 2019-02-19 Amazon Technologies, Inc. Validating using an offload device security component
US9667414B1 (en) 2015-03-30 2017-05-30 Amazon Technologies, Inc. Validating using an offload device security component
US10140130B2 (en) 2015-04-07 2018-11-27 RunSafe Security, Inc. System and method of obfuscation through binary and memory diversity
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
EP3289442B1 (en) * 2015-04-30 2023-04-19 Microchip Technology Incorporated Central processing unit with enhanced instruction set
KR101658641B1 (ko) * 2015-06-12 2016-09-22 서울대학교산학협력단 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법
US10042794B2 (en) 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US10089500B2 (en) * 2015-09-25 2018-10-02 Intel Corporation Secure modular exponentiation processors, methods, systems, and instructions
US10142101B2 (en) 2015-09-29 2018-11-27 Intel Corporation Hardware enforced one-way cryptography
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US9894061B2 (en) 2015-10-16 2018-02-13 International Business Machines Corporation Method for booting and dumping a confidential image on a trusted computer system
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10572390B2 (en) * 2016-02-29 2020-02-25 Apple Inc. Methods and apparatus for loading firmware on demand
US10019571B2 (en) 2016-03-13 2018-07-10 Winbond Electronics Corporation Protection from side-channel attacks by varying clock delays
US10097606B2 (en) 2016-03-14 2018-10-09 Amazon Technologies, Inc. Application streaming using access and execution environments
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
WO2017172440A1 (en) * 2016-03-30 2017-10-05 Amazon Technologies, Inc. Processing pre-existing data sets at an on-demand code execution environment
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10191859B2 (en) 2016-03-31 2019-01-29 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10270598B2 (en) 2016-08-26 2019-04-23 Intel Corporation Secure elliptic curve cryptography instructions
CN106445808A (zh) * 2016-08-29 2017-02-22 北京中电华大电子设计有限责任公司 一种具有控制程序单步调试功能的仿真器
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10551902B2 (en) 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10416991B2 (en) * 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US10367639B2 (en) * 2016-12-29 2019-07-30 Intel Corporation Graphics processor with encrypted kernels
KR102617354B1 (ko) 2017-01-05 2023-12-26 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
US10404470B2 (en) * 2017-01-13 2019-09-03 Microsoft Technology Licensing, Llc Signature verification of field-programmable gate array programs
US10467416B2 (en) 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US10567359B2 (en) 2017-07-18 2020-02-18 International Business Machines Corporation Cluster of secure execution platforms
US10346226B2 (en) 2017-08-07 2019-07-09 Time Warner Cable Enterprises Llc Methods and apparatus for transmitting time sensitive data over a tunneled bus interface
CN107563224B (zh) * 2017-09-04 2020-07-28 浪潮集团有限公司 一种多用户物理隔离方法及装置
US10528768B2 (en) * 2017-09-15 2020-01-07 Intel Corporation Methods and apparatus to provide user-level access authorization for cloud-based field-programmable gate arrays
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10331612B1 (en) 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
US10430352B1 (en) 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
US11714910B2 (en) * 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
WO2020005857A1 (en) * 2018-06-24 2020-01-02 Hex Five Security, Inc. Configuring, enforcing, and monitoring separation of trusted execution environments
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) * 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
EP3595256A1 (de) * 2018-07-13 2020-01-15 Siemens Aktiengesellschaft Vorrichtung und verfahren zum betreiben einer durch software gestalteten verarbeitungseinheit für ein gerät
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US10585699B2 (en) 2018-07-30 2020-03-10 Apple Inc. Methods and apparatus for verifying completion of groups of data transactions between processors
US10719376B2 (en) 2018-08-24 2020-07-21 Apple Inc. Methods and apparatus for multiplexing data flows via a single data structure
US10846224B2 (en) 2018-08-24 2020-11-24 Apple Inc. Methods and apparatus for control of a jointly shared memory-mapped region
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US10789110B2 (en) 2018-09-28 2020-09-29 Apple Inc. Methods and apparatus for correcting out-of-order data transactions between processors
US10838450B2 (en) 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
US11126757B2 (en) * 2018-10-19 2021-09-21 Microsoft Technology Licensing, Llc Peripheral device
US11163701B2 (en) 2018-11-15 2021-11-02 Intel Corporation System, apparatus and method for integrity protecting tenant workloads in a multi-tenant computing environment
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
CN111562916B (zh) * 2019-02-13 2023-04-21 百度在线网络技术(北京)有限公司 共享算法的方法和装置
US11403409B2 (en) 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
US11206128B2 (en) 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection
US11347869B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Secure interface control high-level page management
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
KR20210125330A (ko) * 2020-04-08 2021-10-18 삼성전자주식회사 보안 데이터 처리 방법 및 이를 지원하는 전자 장치
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
CN112906015B (zh) * 2021-01-26 2023-11-28 浙江大学 一种基于硬件标签的内存敏感数据加密保护***
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
CN114329479B (zh) * 2021-12-08 2024-05-28 浙江大学 一种面向risc-v架构的启动验证方法
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
US12013970B2 (en) 2022-05-16 2024-06-18 Bank Of America Corporation System and method for detecting and obfuscating confidential information in task logs
CN116861411B (zh) * 2023-06-05 2024-06-25 北京连山科技股份有限公司 基于Seccomp机制的安全沙箱数据保护方法及***
CN117056983B (zh) * 2023-10-13 2024-01-02 ***紫金(江苏)创新研究院有限公司 多级可控数据共享授权方法、装置及区块链***

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1742247A (zh) * 2003-02-03 2006-03-01 诺基亚有限公司 用于加密的应用程序安装的结构
CN101023433A (zh) * 2004-07-02 2007-08-22 皇家飞利浦电子股份有限公司 安全单元和保护数据的方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US964278A (en) 1910-04-08 1910-07-12 Clifford J Larkin Method of making coats.
CA2228014C (en) 1995-07-31 2008-07-22 Verifone, Inc. Method and apparatus for operating resources under control of a security module or other secure processor
JP2002229447A (ja) * 2001-01-30 2002-08-14 Nippon Telegr & Teleph Corp <Ntt> デジタルコンテンツ流通における著作権保護システム
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
EP1548537A1 (en) 2003-12-23 2005-06-29 STMicroelectronics Limited Secure processor arrangement
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
JP4596247B2 (ja) * 2005-01-31 2010-12-08 ソニー株式会社 データ処理回路、データ処理装置、データ処理方法、データ処理制御方法、データ処理プログラム及びデータ処理制御プログラム
JP4606339B2 (ja) * 2005-02-07 2011-01-05 株式会社ソニー・コンピュータエンタテインメント セキュアなプロセッサの処理の移行を実施する方法および装置
US7386775B2 (en) * 2005-08-18 2008-06-10 International Business Machines Corporation Scan verification for a scan-chain device under test
JP4795812B2 (ja) 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
US8135959B2 (en) * 2006-04-07 2012-03-13 Honeywell International Inc. External key to provide protection to devices
US7660769B2 (en) 2006-09-12 2010-02-09 International Business Machines Corporation System and method for digital content player with secure processing vault
US20080152142A1 (en) 2006-12-20 2008-06-26 Mark Buer Memory scrambler unit (msu)
JP4912921B2 (ja) * 2007-02-27 2012-04-11 富士通セミコンダクター株式会社 セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法
US20080229117A1 (en) * 2007-03-07 2008-09-18 Shin Kang G Apparatus for preventing digital piracy
KR101058140B1 (ko) * 2007-05-11 2011-08-24 나그라스타 엘.엘.씨. 보안 환경에서 프로세서 실행을 제어하기 위한 장치
US8010763B2 (en) * 2007-08-02 2011-08-30 International Business Machines Corporation Hypervisor-enforced isolation of entities within a single logical partition's virtual address space
US8526616B2 (en) * 2008-03-18 2013-09-03 Christopher V. FEUDO Method for payload encryption of digital voice or data communications
US20090249222A1 (en) * 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
US8644499B2 (en) 2009-09-14 2014-02-04 Broadcom Corporation Method and system for securely protecting a semiconductor chip without compromising test and debug capabilities
US8904190B2 (en) * 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1742247A (zh) * 2003-02-03 2006-03-01 诺基亚有限公司 用于加密的应用程序安装的结构
CN101023433A (zh) * 2004-07-02 2007-08-22 皇家飞利浦电子股份有限公司 安全单元和保护数据的方法

Also Published As

Publication number Publication date
WO2012054615A1 (en) 2012-04-26
US20120102307A1 (en) 2012-04-26
CN103221961A (zh) 2013-07-24
JP2013541783A (ja) 2013-11-14
JP2013545182A (ja) 2013-12-19
CN103210396B (zh) 2016-03-02
JP5537742B2 (ja) 2014-07-02
EP2630608B1 (en) 2016-01-20
US8489898B2 (en) 2013-07-16
KR20130080046A (ko) 2013-07-11
KR101397637B1 (ko) 2014-05-22
WO2012054609A1 (en) 2012-04-26
KR20130142135A (ko) 2013-12-27
EP2630608A1 (en) 2013-08-28
CN103210396A (zh) 2013-07-17
EP2630607A1 (en) 2013-08-28
US20120102333A1 (en) 2012-04-26
KR101735023B1 (ko) 2017-05-12
EP2630607B1 (en) 2016-11-30
JP5670578B2 (ja) 2015-02-18
US8904190B2 (en) 2014-12-02

Similar Documents

Publication Publication Date Title
CN103221961B (zh) 包括用于保护多用户敏感代码和数据的架构的方法和装置
KR101712784B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
JP4073913B2 (ja) 開放型汎用耐攻撃cpu及びその応用システム
JP4689945B2 (ja) リソースアクセス方法
EP2183695B1 (en) Device with a secure virtual machine
KR101091465B1 (ko) 프로세서의 가상 머신 내 기밀 콘텐츠의 보안 처리를 위한 방법 및 장치
JP4498735B2 (ja) オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
EP2759955A1 (en) Secure backup and restore of protected storage
US8307215B2 (en) System and method for an autonomous software protection device
CN105320895B (zh) 用于联机加密处理的高性能自主硬件引擎
US20190044709A1 (en) Incorporating software date information into a key exchange protocol to reduce software tampering
US10452565B2 (en) Secure electronic device
CN107078897A (zh) 用于失序数据的推定的密码处理
US11748459B2 (en) Reducing software release date tampering by incorporating software release date information into a key exchange protocol
US20240121079A1 (en) Data clearing attestation
Holoubková Rešerše a ukázka zabezpečení platformy (TPM)
Emanuel Tamper free deployment and execution of software using TPM
CN110059489A (zh) 安全电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant