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

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

Info

Publication number
CN103210396B
CN103210396B CN201180054724.9A CN201180054724A CN103210396B CN 103210396 B CN103210396 B CN 103210396B CN 201180054724 A CN201180054724 A CN 201180054724A CN 103210396 B CN103210396 B CN 103210396B
Authority
CN
China
Prior art keywords
samu
code
encryption
data
navigational
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
CN201180054724.9A
Other languages
English (en)
Other versions
CN103210396A (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 CN103210396A publication Critical patent/CN103210396A/zh
Application granted granted Critical
Publication of CN103210396B publication Critical patent/CN103210396B/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)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (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软件堆栈。
实施方案的详细描述
如本文使用的术语“处理器”指下列项中的任一个:处理器、处理器核心、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或类似的设备。处理器可形成另一设备例如集成北桥、应用处理器(Apps处理器)、CPU、DSP等的部分。如本文使用的处理器核心可以是x86、RISC或其它指令集核心。
安全资产管理单元(SAMU)是配置在处理器核心内的组件或是被配置来与处理器核心合作而执行的单独组件。当被配置在处理器核心中或作为独立于处理器核心的单独组件时,SAMU可被配置来执行下列操作中的至少一个:从主机处理器卸载敏感代码或对存储器中的敏感代码或数据加密。
SAMU可在硬件中实现以提供基于硬件的保护执行环境。在这样的环境中,敏感代码和数据可在安全存储器中受保护,并且可以仅以纯文本形式存储在高速缓冲存储器或嵌入式存储器中。此外,在生产部件上完全禁用调试;且安全内核“拥有”并控制执行环境,且对存储器和资源的访问都被控制。SAMU可与处理器共享存储器,或其可具有专用存储器。
图1A示出根据一个实施方案的主机***101,其中敏感代码从处理器卸载到SAMU。图1A示出包括经由***总线或内部总线105连接的处理器102和SAMU104的***101。***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-Cache)130、数据高速缓冲存储器(D-Cache)140、存储器高级加密标准(M-AES)组件150、整体性检验器(IV)160、安全加速器170、处理器核心180、安全内核185和存储器接口190。安全加速器170被配置来实现下列项中的至少一个:128b/192b/256bAES;安全散列算法(SHA-1/-2);Rivest,ShamirAdlemen(RSA)密码术;椭圆曲线密码(ECC)算术;数据加密标准(DES);3DES;RivestCipher4(RC4);1024b/2048b/3072b模块化求幂;或提供真实随机数发生器。
SAMU104可支持多个处理器模式,包括用于硅中的引导代码的模式。其它处理器模式可由安全内核185定义,包括例如:内核核心功能;内核服务;内部开发的SAMU104应用程序;第三方开发的SAMU104应用程序;已签署的但不受阻碍的SAMU104应用程序;或未签署的不受阻碍的SAMU104应用程序。
引导ROM110被配置来执行以硅形式的引导代码以执行调试管理,以便检查给定内核的整体性,且建立存储器AES,并接着将控制传递到内核(其传递整体性检查),其中嵌入式处理器从被配置来运行引导代码的复位出现。引导代码进一步被配置来基于电熔合(e-fuse)技术来配置或重新配置调试手段(例如,禁止访问用于生产部件的所有调试设施或在制造时注入的电熔合图案,该制造涉及将计算机逻辑蚀刻或硬编码到芯片上,该芯片在芯片被制造之后不可更改);等待SAMU104内核初始化,其中SAMU驱动器提供安全内核185用于装入;并采用整体性检验器(IV)硬件160来检验给定图像的整体性。IV硬件160可被配置来从给定图像生成散列代码,并且比较该散列代码与附到图像的散列代码。如果所生成的散列代码和所附的散列代码匹配,那么IV硬件160提供PASS(通过)报告,否则,报告FAILURE(失败)。
引导ROM110进一步被配置来在成功的整体性检查之后准备安全内核185的环境,并将控制传递到安全内核185。安全内核185可使用相同的IV硬件160来周期性地使自己重新生效。
引导ROM110可被提供为以硅形式的芯片的部分,或安全地存储在外部ROM中。安全内核185(加密和签署的)可被提供为SAMU驱动器的部分,其中安全内核185被配置来提供对SAMU中的资源的控制访问(安全策略);控制对SAMU周期的访问(作业调度);或连接在主机上运行的SAMU驱动器。
M-AES150提供关于读的经调制(使用硬件中的额外专有加扰)的AES解密和关于写(在高速缓冲存储器中或在嵌入式内部存储器中的内容是以纯文本形式)的经调制的AES加密;也可能有旁路模式作为对常规存储器访问的通道(经由MMU而配置)。存储器AES密钥可由引导ROM代码或安全内核185生成,并被提供到硬件以用于保护通过存储器接口的敏感代码和数据。内容仅在指令高速缓冲存储器130、数据高速缓冲存储器140中或在内部嵌入式存储器中是纯文本的。
在运行时间建立的敏感数据通常由运行时间生成的随机密钥保护。可以用两种方式保护随机密钥。在一种方式中,预期用于外部消耗(例如,主机或处理器中的解码加速器)的敏感数据在标准AES中被加密。在第二种方式中,预期来保留在安全执行环境内部的敏感数据由M-AES150加密。M-AES操作涉及在另外的标准AES过程之前和之后以硬件生成的调制进行的调制。
在用于提供额外的安全的替代实施方案中,为了保护来自SAMU的存储器业务,M-AES150在另外的标准AES操作之前和之后使用硬件中的额外专有加扰来应用另外的调制,这使逆向工程很难。敏感代码和数据因此可在现有的帧缓冲存储器或***存储器中被存储和保护。
在用于提供额外的安全的另一实施方案中,每个代码图像被签署工具加密并扰乱,其中加密密钥在签署期间随机地生成(该过程的这个部分出现在供货商或第三方软件提供商处)。安全内核185的解密密钥被计算并由引导ROM110中的引导代码恢复。此外,整体性检查在接受图像之前由IV160应用(在加密版本上)以用于执行。
存储器管理在MMU120的帮助下由安全内核185执行。MMU120被配置来执行将处理器180的虚拟地址空间映射到设备地址空间(例如,图形处理器、数字信号处理器或FPGA)的地址转换逻辑。MMU120支持具有四个AES密钥的多达16个非重叠的地址分段。可以针对下列项独立地配置每个分段:存储器尺寸;存储器AES保护,无论其是否是可执行的(例如,无执行标志);以及访问控制(用于读/写访问的最低处理器模式)。每个存储器分段在虚拟地址空间中必须是连续的,且不是所有分段都通过存储器AES加密来保护。特别是,用于SAMU104和外部设备或互联网之间的通信的缓冲器可只被标准AES保护,且因此应配置有关闭的M-AES150。在该配置中,存在比可用密钥更多的分段,且需要存储器AES保护的一些代码或数据分段可共享密钥。
安全内核185是允许配置MMU120的唯一代理。对存储器的访问是经由存储器接口190。从设备(例如,处理器包括CPU、GPU、DSP或FPGA或其它类似的设备)的角度来看,SAMU104及其相应的组件作为常规客户端被处理。SAMU104依赖于M-AES150来提供对敏感代码和数据的存储器保护。
安全内核185可包括额外的安全服务以提供下面的承保范围:使用外部组件建立安全内核;与数字版权管理(DRM)块的密钥交换;解开许可密钥、设备密钥或内容密钥;对位流解复用;对位流解密或重新加密;作为虚拟机(例如BD+、Blu-rayTM磁盘数字版权管理(DRM)***的组件)来操作;或用于使用现有路径的音频/视频(A/V)加速的数据提交。
安全内核185一旦被装入和在控制中,就负责SAMU执行环境。在安全服务一经请求就被装入(而不是内核的整体部分)的情况下,内核也负责检查立即响应式代码的整体性和为这些立即响应式服务建立版权解密密钥。立即响应式代码的密钥推导过程由内核工程过程确定,并可从产品/设备生成或制造技术改变。(产品/设备生成在这里是设备被制造的规模,例如,可使用90纳米(nm)或65nm技术来制造处理器。)但每当内核改变其密钥推导算法时,用户代码的离线签署工具可修改以在加密过程中匹配该流。
从复位出现的处理器从硅中的ROM代码引导。引导程序代码被构造来在恢复解密密钥和将控制传输到内核之前对给出的加密内核检查整体性。整体性验证由IV160中的专用硬件逻辑完成。安全内核的离线签署工具具有匹配整体性验证硬件以及在引导ROM110中硬编码的密钥恢复机制的密码设置。用于加密或密钥生成的散列功能的选择不是关键的,并可基于一系列单向AES操作。
SAMU104的架构使得它能够使用暗号要求每秒执行数百万指令(MIPS),并可支持暗号加速,包括AES、DES、SHA1和其它算法。SAMU104的架构支持下列项的全部或子集:真实随机数发生器、伪随机数发生器、安全计数器、具有存储器管理的指令/数据高速缓冲存储器、多个执行模式(或保护水平)、内核/用户模式、地址范围实施(由内核配置)、引导程序代码检验以及额外的开发工具。
在一个实施方案中,虚拟地址页表存储在MMU120的硬件存储器中,并且仅处理器核心180可访问,而不是依赖于外部存储。这个方案的特征是,安全被保证,因为没有存储器转换和保护属性存储在外部。
基于硬件的页表提高了安全性和性能。但使***支持一般由大部分操作***使用的四千(K)字节页尺寸可能很昂贵,因为需要额外的专用存储器。这个支持问题由本文所述的安全执行单元证明是有道理的。在一个实施方案中,一兆(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加密并包括例如运送安全内核作为CPU的显示器驱动器的一部分(步骤220)。用户可将驱动器和应用程序安装在用户的计算机/***上,将安全内核(显示器驱动器)和安全应用程序带到一起(步骤225)。在引导时间,安全内核185被提供给SAMU硬件(步骤230)。通过引导ROM110对安全内核验证和检验整体性(步骤235)。在配置存储器AES中的解密密钥(以执行解密代码的立即响应式解密)并将控制传递到安全内核之前,引导ROM110检验安全内核185的整体性(步骤240)。如果安全内核未通过检验,则没有SAMU服务被暴露,且应用程序在基于软件的保护方案上退回(步骤245)。如果检验是成功的,则安全内核的解密密钥由引导ROM110配置(步骤250),且应用程序可由用户启动(步骤255)。应用程序检测SAMU的存在并利用它所提供的安全服务(步骤260)。
如上所述将代码或数据卸载到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传输到SAMU处理器370(例如,在处理器核心中或在GPU中)的安全内核380。安全内核380可向多个主机应用程序310提供服务,并因此从多个应用程序接收数据。安全内核380可将经处理的数据340传递回到SAMU驱动器320,其又将数据传递到主机应用程序310。替代地,安全内核380可将退出代码350传递到SAMU驱动器320,退出代码350将最终被传递到主机应用程序310以用于处理。
本文所述的实施方案使用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设置有基于硬件的安全引导和存储器保护,并能够执行主机处理器所提供的立即响应式代码。
在一个实施方案中通过将32位RISC处理器集成在设备(例如,GPU平台)中并将安全逻辑添加到它来建立省电和有成本效益的安全执行环境。用于在这个环境中执行的二进制使用随机生成的密钥而被加密并同时由离线工具签署。受保护的二进制以加密形式设置有驱动器和/或应用程序,并将保留在该形式中,即使被装入存储器中。当敏感代码在需要时被装入指令高速缓冲存储器中时,“动态地(onthefly)”执行解密。这个布置允许使用在PC中可用的现有存储器以存储机密信息。
敏感代码被离线签署工具保护。有至少两种敏感代码:管理资源访问的内核和向主机应用程序提供实际安全相关的功能的用户代码。SAMU制造商可拥有内核,但用户代码可来自SAMU制造商或外部软件供货商(其为SAMU建立应用程序)。也可为这些类型的敏感代码开发单独的签署工具。
此外,SAMU的核心功能可被提供给软件供货商,其中SAMU制造商向软件供货商提供开发工具,或其中SAMU制造商和软件供货商都开发分割方案和有关的API。在这些情况下,SAMU制造商或软件供货商可生成立即响应式固件代码。
此外,本文所述的实施方案减小了研究和开发资源的随机化,减轻了来自收益的零售压力,并在个人计算机平台上实现优质广播。优质内容可包括例如手持式数字视频广播、ARIB等。本文所述的实施方案减小了在防迷惑和篡改软件使用上消耗的功率,减小了有效软件的失效的频率,并使内容拥有者满意,而不给消费者带来相对低或少的不方便。
本文所述的实施方案可在处理器核心中实现,处理器核心可体现在CPU、DSP、FPGA、GPU或其任何组合中。本领域技术人员将认识到,处理器核心可形成另一设备例如集成北桥、应用处理器、CPU、DSP等的部分。
适当的处理器作为例子包括通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其它类型的集成电路(IC)和/或状态机。
此外,本发明可体现在硬件、软件、固件或其任何组合中。本发明的实施方案或其部分可以用很多编程语言诸如硬件描述语言(HDL)、汇编语言、C语言、网络表等编码。例如,HDL如Verilog可用于合成、模拟和制造设备,例如处理器、专用集成电路(ASIC)和/或实现本发明的一个或多个实施方案的方面的其它硬件元件。Verilog代码可用于模仿、设计、验证和/或实现能够应用SAMU的处理器。
例如,Verilog可用于生成可执行用于应用SAMU的指令的逻辑的寄存器传送级(RTL)描述。逻辑的RTL描述可接着用于生成用于制造期望逻辑或设备的数据,例如图形设计***(GDS)或GDSII数据。Verilog代码、RTL描述和/或GDSII数据可存储在计算机可读介质上。由逻辑执行来执行本发明的方面的指令可以用各种编程语言例如C和C++编码,并被编译成可由逻辑或其它设备执行的对象代码。
本发明的方面可全部或部分地存储在计算机可读介质上。存储在计算机可读介质上的指令可使处理器适合于全部或部分地执行本发明,或适合于生成设备例如处理器、ASIC或特别适合于全部或部分地执行本发明的其它硬件。这些指令也可用于通过生成掩模作品/光掩模来最终配置制造过程以生成体现本文所述的本发明的方面的硬件设备。

Claims (14)

1.一种用于为程序代码或数据提供安全执行环境的方法,其包括:
将代码以加密格式从主机处理器卸载到安全资产管理单元(SAMU)以用于认证和维持所述代码的机密性;
判定所述代码是否是预期用于所述SAMU的内部或外部的消耗;
在所述代码是预期用于所述SAMU的外部的消耗的情况下,应用敏感数据的标准高级加密标准(AES)加密;以及
在所述代码是预期用于仅所述SAMU的内部的消耗的情况下,对于向指令高速缓冲存储器或数据高速缓冲存储器内的存储器读操作执行经调制的AES解密,并且当所述指令高速缓冲存储器或数据高速缓冲存储器的线被除掉时,对于存储器写操作执行经调制的AES加密,其中,所述经调制的AES加密和所述经调制的AES解密是在标准AES过程之前和之后在硬件内使用专有加扰来调制的。
2.如权利要求1所述的方法,其中所述卸载包括使用在所述SAMU所使用的签署工具中生成的随机密钥来生成加密的二进制引导图像。
3.如权利要求2所述的方法,其中所述加密的二进制引导图像对所述SAMU加密,并被提供为安全内核和对所述SAMU的安全应用程序。
4.如权利要求3所述的方法,其中用户安装所述加密的二进制引导图像并在需要时将所述加密的二进制引导图像递交给所述SAMU。
5.如权利要求4所述的方法,其还包括:
在使用引导只读存储器(ROM)配置供所述SAMU使用的解密密钥之前对所述加密的二进制引导图像检验整体性。
6.如权利要求5所述的方法,其还包括:
通过所述引导ROM生成解密密钥以供所述SAMU使用;以及
响应于肯定的检验而将控制传递到所述加密的二进制引导图像。
7.如权利要求5所述的方法,其中如果有否定的检验,则没有SAMU服务被暴露,并且所述应用程序回复到基于软件的保护方案。
8.一种用于为程序代码或数据提供安全执行环境的***,其包括:
计算机,其被配置来在主机处理器上执行包括代码的至少一个应用程序;
安全资产管理单元(SAMU),其被配置来执行程序代码,其中所述SAMU连接到所述计算机且被配置来以加密格式从所述主机处理器卸载代码或数据以认证和维持所述代码的机密性,所述SAMU包括:
指令高速缓冲存储器;
数据高速缓冲存储器;
存储器接口;以及
存储器加密组件,其连接到所述存储器接口、所述指令高速缓冲存储器和所述数据高速缓冲存储器,其中,在所述代码是预期用于仅所述安全执行环境内部的消耗的情况下,所述存储器加密组件被配置成,对于向所述指令高速缓冲存储器或所述数据高速缓冲存储器内的存储器读操作执行经调制的高级加密标准(AES)解密,并且当所述指令高速缓冲存储器或所述数据高速缓冲存储器的线被除掉时,对于存储器写操作执行经调制的AES加密,其中,所述经调制的AES加密和所述经调制的AES解密是在标准AES过程之前和之后在硬件内使用专有加扰来调制的。
9.如权利要求8所述的***,其中所述SAMU还被配置来使用在所述SAMU所使用的签署工具中生成的随机密钥来提供加密的二进制引导图像作为所述卸载的部分。
10.如权利要求9所述的***,其中所述加密的二进制引导图像对所述SAMU加密,并且被提供为安全内核和对所述SAMU的安全应用程序。
11.如权利要求10所述的***,其中用户将所述加密的二进制引导图像安装在所述***上,并且在需要时将所述加密的二进制引导图像递交给所述SAMU。
12.如权利要求11所述的***,其中所述SAMU还被配置来在使用引导只读存储器(ROM)配置供所述SAMU使用的解密密钥之前对所述加密的二进制引导图像检验整体性。
13.如权利要求12所述的***,其中所述引导ROM还被配置来生成供所述SAMU使用的解密密钥,并且响应于肯定的检验而将控制传递到所述加密的二进制引导图像。
14.如权利要求12所述的***,其中如果有否定的检验,则没有SAMU服务被暴露,并且所述应用程序回复到基于软件的保护方案以用于认证。
CN201180054724.9A 2010-10-20 2011-10-19 包括用于保护敏感代码和数据的架构的方法和装置 Active CN103210396B (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,054 2010-10-20
US61/405,045 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 2010-12-22
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
PCT/US2011/056895 WO2012054609A1 (en) 2010-10-20 2011-10-19 Method and apparatus including architecture for protecting sensitive code and data

Publications (2)

Publication Number Publication Date
CN103210396A CN103210396A (zh) 2013-07-17
CN103210396B true CN103210396B (zh) 2016-03-02

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 After (1)

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

Country Status (6)

Country Link
US (2) US8904190B2 (zh)
EP (2) EP2630607B1 (zh)
JP (2) JP5537742B2 (zh)
KR (2) KR101397637B1 (zh)
CN (2) CN103210396B (zh)
WO (2) WO2012054609A1 (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
WO2014022755A2 (en) * 2012-08-02 2014-02-06 Cellsec Limited Automated multi-level federation and enforcement of information management policies in a device network
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
US9703945B2 (en) 2012-09-19 2017-07-11 Winbond Electronics Corporation Secured computing system with asynchronous authentication
US9507540B1 (en) * 2013-03-14 2016-11-29 Amazon Technologies, Inc. Secure virtual machine memory allocation management via memory usage trust groups
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
US9247316B2 (en) 2013-04-23 2016-01-26 Microsoft Technology Licensing, Llc Protected media decoding using a secure operating system
US9558358B2 (en) 2013-06-27 2017-01-31 Visa International Service Association Random number generator in a virtualized environment
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
US9832172B2 (en) 2013-12-24 2017-11-28 Intel Corporation Content protection for data as a service (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
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
IL234956A (en) 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
US9798377B2 (en) 2014-10-08 2017-10-24 Apple Inc. Methods and apparatus for recovering errors with 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
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9292332B1 (en) 2014-12-11 2016-03-22 Amazon Technologies, Inc. Live updates for virtual machine monitor
US9424067B2 (en) 2014-12-11 2016-08-23 Amazon Technologies, Inc. Managing virtual machine instances utilizing an offload device
US9400674B2 (en) 2014-12-11 2016-07-26 Amazon Technologies, Inc. Managing virtual machine instances utilizing a virtual offload device
US9886297B2 (en) 2014-12-11 2018-02-06 Amazon Technologies, Inc. Systems and methods for loading a virtual machine monitor during a boot process
EP3234852B1 (en) * 2014-12-19 2020-01-15 Private Machines Inc. Systems and methods for using extended hardware security modules
US9535798B1 (en) 2014-12-19 2017-01-03 Amazon Technologies, Inc. Systems and methods for maintaining virtual component checkpoints on an offload device
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
KR102324336B1 (ko) * 2015-03-20 2021-11-11 한국전자통신연구원 사용자 장치 및 그것에 대한 무결성 검증 방법
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
US10243739B1 (en) 2015-03-30 2019-03-26 Amazon Technologies, Inc. Validating using an offload device security component
KR102582628B1 (ko) 2015-04-07 2023-09-22 런세이프 시큐리티, 인크. 이진 및 메모리 다이버시티를 통한 난독화 시스템 및 방법
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
KR20170140225A (ko) * 2015-04-30 2017-12-20 마이크로칩 테크놀로지 인코포레이티드 향상된 명령어 세트를 구비한 중앙 처리 유닛
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
KR101658641B1 (ko) * 2015-06-12 2016-09-22 서울대학교산학협력단 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법
US10089500B2 (en) * 2015-09-25 2018-10-02 Intel Corporation Secure modular exponentiation processors, methods, systems, and instructions
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10142101B2 (en) 2015-09-29 2018-11-27 Intel Corporation Hardware enforced one-way cryptography
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
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
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
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
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
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10191852B2 (en) 2016-02-29 2019-01-29 Apple Inc. Methods and apparatus for locking at least a portion of a shared memory resource
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
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
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
EP3436927B1 (en) * 2016-03-30 2023-12-13 Amazon Technologies Inc. Processing pre-existing data sets at an on-demand code execution environment
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing 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 北京中电华大电子设计有限责任公司 一种具有控制程序单步调试功能的仿真器
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10591976B2 (en) 2016-11-10 2020-03-17 Apple Inc. Methods and apparatus for providing peripheral sub-system stability
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
US10416991B2 (en) * 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
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
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand 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
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
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to 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
EP3811264A4 (en) * 2018-06-24 2022-03-02 Hex Five Security, Inc. CONFIGURATION, ENFORCEMENT AND MONITORING THE 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
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
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US10838450B2 (en) 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
US10789110B2 (en) 2018-09-28 2020-09-29 Apple Inc. Methods and apparatus for correcting out-of-order data transactions between 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 百度在线网络技术(北京)有限公司 共享算法的方法和装置
US11206128B2 (en) 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection
US11403409B2 (en) 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
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
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
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
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
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
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
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
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
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
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
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
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
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of 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
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
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
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
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11876719B2 (en) 2021-07-26 2024-01-16 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
EP2624166B1 (en) 2007-05-11 2014-12-17 Nagrastar L.L.C. Method for controlling execution by a processor in a secure environment
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
US20120102333A1 (en) 2012-04-26
JP2013545182A (ja) 2013-12-19
CN103221961B (zh) 2015-10-14
EP2630607B1 (en) 2016-11-30
WO2012054609A1 (en) 2012-04-26
WO2012054615A1 (en) 2012-04-26
US8904190B2 (en) 2014-12-02
JP2013541783A (ja) 2013-11-14
JP5537742B2 (ja) 2014-07-02
US20120102307A1 (en) 2012-04-26
US8489898B2 (en) 2013-07-16
KR20130142135A (ko) 2013-12-27
EP2630608A1 (en) 2013-08-28
EP2630608B1 (en) 2016-01-20
KR20130080046A (ko) 2013-07-11
KR101735023B1 (ko) 2017-05-12
CN103221961A (zh) 2013-07-24
KR101397637B1 (ko) 2014-05-22
JP5670578B2 (ja) 2015-02-18
CN103210396A (zh) 2013-07-17
EP2630607A1 (en) 2013-08-28

Similar Documents

Publication Publication Date Title
CN103210396B (zh) 包括用于保护敏感代码和数据的架构的方法和装置
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
KR101712784B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
US9602282B2 (en) Secure software and hardware association technique
US8572410B1 (en) Virtualized protected storage
EP2947594A2 (en) Protecting critical data structures in an embedded hypervisor system
CN102456111B (zh) 一种Linux操作***许可控制的方法及***
CN101578608B (zh) 用于基于会话票证存取内容的方法及设备
US11533172B2 (en) Apparatus and method for securely managing keys
CN104246784A (zh) 用于保护和安全地传输媒体内容的方法、设备和***
US8438112B2 (en) Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device
CN115563589B (zh) 一种芯片防盗版方法、装置、电子设备及存储介质
US20190044709A1 (en) Incorporating software date information into a key exchange protocol to reduce software tampering
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及***
CN101110098A (zh) 基于可信计算技术的数字内容使用痕迹的产生与管理方法
CN113536331B (zh) 存储器和计算***的数据安全
CN111291389B (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