CN103377349B - 安全控制的多处理器*** - Google Patents
安全控制的多处理器*** Download PDFInfo
- Publication number
- CN103377349B CN103377349B CN201210592637.5A CN201210592637A CN103377349B CN 103377349 B CN103377349 B CN 103377349B CN 201210592637 A CN201210592637 A CN 201210592637A CN 103377349 B CN103377349 B CN 103377349B
- Authority
- CN
- China
- Prior art keywords
- safe
- processor
- processing system
- security
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施方式涉及安全控制的多处理***。本发明提供了用于实施具有认证为安全处理器的第一处理器的安全处理***的***和方法。第一处理器只执行经过认证的代码和/或安全代码。隔离的第二处理器执行沙盒内的非安全(例如,未经过认证的)代码。执行沙盒的边界(例如,利用硬件边界和/或加密技术),以致于在沙盒内执行的代码不能访问沙盒外部的安全处理***的安全元件。第一处理器管理内存空间和允许在第二处理器上运行的应用程序。
Description
相关申请的交叉参考
本申请要求于2012年4月27日提出申请的美国临时专利申请号61/639,394的权益和于2012年6月7日提出申请的美国专利申请号13/491,309的权益,其全部内容结合于此以作参考。
技术领域
本发明涉及计算机安全,更具体地,涉及安全处理***。
背景技术
安全性是现代计算机***的关键部分。计算机安全***和技术确保有价值的信息和***不会被黑客或恶意软件危害。为此,许多组织公开了安全标准,供应商可以使用这些安全标准作为硬件和/或软件安全性的准则。信息技术安全评估的通用标准(“通用标准(Common Criteria)”或“CC”)是目前用作开发、评估、和/或采购具有安全功能的IT产品的准则。
CC提供一组公共需求用于IT产品的安全功能和在安全评估期间应用于这些IT产品的保证措施。这些IT产品可以以硬件、固件或软件实施。在CC下的评估过程创建应用于IT产品的IT产品的安全功能和保证措施满足预定义的需求的置信水平。可以证明遵守CC是国家批准授权的,例如美国的国家标准与技术研究院(NIST)国家自愿实验室认证程序(NVLAP)。
用户要求的一个公共安全需求是,只有通过认证(或信任的)代码可以在***的安全域(例如,安全处理器)中执行。先前用于实现该需求的方法使用硬件机制允许单个处理器作为两个处理器在逻辑上工作。然而,从安全的角度来看,该结构要求设备的***分不能与应用处理器同时工作。对于高安全性应用来说,该结构进一步不允许经过认证的处理器响应篡改***的攻击。
而且,在实现该需求的过程出现的困难在多应用环境中逐渐增加。例如,安全(经过认证的)应用(例如,经过认证的金融应用程序)必须与用户编写的小应用程序共存。因此,一旦将用户编写(不受信任的)的小应用程序增加至环境中,任何认证要求会变得无效。
因此,需要保持***的***件的认证同时允许在***中执行不受信任代码的***和方法。
发明内容
为了解决上述问题,本发明提供了以下***和方法:
(1)一种***,包括:
安全处理***,包括:
硬件存储保护单元(HMPU),被构造为限制对所述安全处理***的访问,
安全存储器被构造为存储安全策略,以及
安全处理器被构造为执行安全代码,其中,所述安全处理器被构造为基于所述安全策略确定是否准许访问所述安全处理***的安全服务的请求;以及
第一处理器,与所述安全处理***和一组******设隔离,其中,所述第一处理器被构造为:
在所述安全处理器的指示下执行代码,以及
将访问所述安全服务的所述请求放入所述共享内存中。
(2)根据(1)所述的***,其中,所述安全处理***进一步包括隔离桥,所述隔离桥被构造为将所述安全处理***耦接至非安全***设备,
其中,所述安全处理器进一步被构造为基于所述安全策略确定是否指示所述隔离桥将所述安全处理器耦接至所述非安全***设备。
(3)根据(2)所述的***,进一步包括耦接至所述第一处理器的内存,其中,所述内存与所述安全处理***和所述一组******设备隔离。
(4)根据(3)所述的***,其中,所述安全处理器进一步被构造为指示所述隔离桥将所述内存耦接至非安全***设备以使所述代码能够加载到所述内存中。
(5)根据(3)所述的***,其中,所述HMPU通过执行沙盒限制访问所述安全处理***,其中,所述沙盒包括所述内存、所述第一处理器和所述共享内存。
(6)根据(1)所述的***,其中,所述安全处理器被认证为只执行安全代码。
(7)根据(1)所述的***,其中,所述安全处理***进一步包括加密总线。
(8)根据(1)所述的***,其中,所述安全处理器被构造为执行安全操作***代码。
(9)根据(1)所述的***,其中,所述安全处理***包括安全监控模块,所述安全监控模块被构造为检测篡改所述安全处理***的攻击。
(10)一种***,包括:
第一处理器,
安全处理***,包括:
安全内存,存储安全策略,
隔离桥,被构造为将******设备耦接至所述安全处理***,以及
安全处理器,其中,所述安全处理器被构造为基于所述安全策略确定是否指示所示隔离桥将所述******设备耦接至所述安全处理***;以及
硬件内存保护单元(HMPU),被构造为将所述第一处理器与所述安全处理***和所述******设备隔离。
(11)根据(10)所述的***,其中,所述第一处理器和所述安全处理***都被耦接到共享内存,其中,所述HMPU进一步被构造为将所述第一处理器和所述共享内存与所述安全处理***和所述******设备隔离。
(12)根据(11)所述的***,其中,所述第一处理器被构造为将向所述******设备释放数据的请求放入所述共享内存。
(13)根据(12)所述的***,其中,所述安全处理器进一步被构造为:
基于所述安全策略确定是否准许所述请求;以及
响应于确定应当准许所述请求,指示所述隔离桥将所述******设备耦接至所述安全处理***。
(14)根据(10)所述的***,其中,所述HMPU通过在所述内存、所述第一处理器和所述共享内存周围执行沙盒将所述第一处理器与所述安全处理***和所述******设备隔离。
(15)根据(10)所述的***,其中,所述安全处理器被认证为只执行安全代码。
(16)一种方法,包括:
利用安全处理器检测对安全服务的第一请求,其中,通过与所述安全处理器物理隔离的非安全处理器将所述第一请求放入共享内存中;
利用所述安全处理器分析存储的安全策略以确定是否准许所述第一请求;以及
响应于应当准许所述第一请求的确定:
利用所述安全处理器处理所述第一请求,以及
将响应放入所述共享内存中。
(17)根据(16)所述的方法,进一步包括:
从安全监控器接收表明已经出现对所述安全处理器的试图攻击的信息;以及
响应于接收所述信息确定不应当准许所述第一请求。
(18)根据(16)所述的方法,进一步包括:
检测将数据释放至******设备的第二请求,其中,所述第二请求通过所述非安全处理器被放入所述共享内存中,以及其中所述******设备通过隔离桥与所述安全处理器隔离;
利用所述安全处理器分析存储的安全策略以确定是否准许所述第二请求;以及
响应于应当允许所述第二请求的确定,指示所述隔离桥将所述非安全处理器耦接至所述******设备。
(19)根据(18)所述的方法,进一步包括:
从安全监控器接收表明已经出现对所述安全处理器的试图攻击的信息;以及
响应于接收所述信息确定不应当准许所述第二请求。
(20)根据(16)所述的方法,进一步包括:
利用所述安全处理器接收将额外的非安全代码加载到非安全内存中的第三请求,其中,所述非安全内存被耦接至所述非安全处理器,并且与所述安全处理器隔离;以及
基于所述安全策略确定是否准许所述第三请求。
附图说明
包括在说明书中并构成说明书的部分示出本发明的实施方式的附图,连同以上提供的一般说明和以下提供的实施方式的详细描述用于说明本发明的原理。在附图中:
图1是根据本发明实施方式的包括安全处理***和用于执行不受信任代码的非安全沙盒的***的方框图。
图2是根据本发明实施方式的包括安全处理***和用于执行不受信任代码的非安全沙盒的***的另一个方框图。
图3是根据本发明实施方式的用于请求安全服务的方法的流程图。
结合附图,根据下面阐述的详细说明将更明显地看出本发明的特征和优势,在附图中相似的参考字符表示相对应的元件。在附图中,相似的参 考数字一般表示相同的、功能相似的、和/或结构相似的元件。第一次出现元件的附图由相对应的参考数字中的最左边的数字指示。
具体实施方式
在下面的描述中,阐述了许多具体细节以便于更透彻地理解本发明。然而,本领域的技术人员将理解,本发明,包括结构、***和方法,可以在无这些特定细节的情况下实施。本文中的描述和表示是本领域的有经验或普通技术人员使用的常见方法,从而将其作品的本质最有效地传递给本领域的技术人员。在其他情况下,为了避免不必要地模糊本发明的方面,未详细描述众所周知的方法、过程、部件和电路。
说明书中引用的“一个实施方式”、“实施方式”“实例实施方式”等表明所描述的实施方式包括特定特征、结构或特点,但是每个实施方式不一定包括特定特征、结构或特点。而且,这些短语不一定是指相同的实施方式。进一步,当结合实施方式描述特定特征、结构、或特点时,特定特征、结构或特点在本领域技术人员的知识范围内,无论是否明确描述,结合其他示例性的实施方式会影响这些特征、结构或者特点。
1、概要
本发明实施方式提供了用于实施安全处理***的***和方法,其中安全处理***具有可以认证为安全处理器的处理器和支持由安全处理器定义和管理的用于执行不受信任代码的“沙盒”的另一个隔离处理器。沙盒隔离代码(例如,未经认证的代码和/或不安全代码)访问或查看安全处理***。安全处理器管理内存空间和允许在第二处理器上运行的应用程序。因为安全处理***只处理安全代码和/或经过认证的代码,所以执行安全处理***的产品/***可以保持安全处理器的安全认证。隔离处理器执行安全处理器定义的隔离边界(“沙盒”)内的代码。安全处理器定义沙盒的边界 (例如,利用硬件边界或逻辑安全边界),以便于在沙盒内执行的代码不能访问沙盒外部的安全处理***的安全元件。
因此,实施方式有利地提供包括经过认证的安全处理器的安全处理***,其中经过认证的安全处理器只执行经过认证的代码和/或安全代码,同时允许执行安全处理***外部的隔离沙盒内的不受信任代码。因为沙盒的安全边界由安全处理器执行,所以在不危害安全处理***的安全性的情况下可以支持在沙盒中执行不受信任代码。
2、***
图1是根据本发明实施方式的多处理器***的方框图,该多处理器***包括安全处理***116和一个或多个非***件。在实施方式中,安全处理***116包括安全处理器100、一个或多个加密处理引擎123、一个或多个安全***设备120、安全监控器122和只读存储器(ROM)118。CPU1 100被构造为只执行安全代码和/或经过认证的代码。CPU1 100不执行非安全代码和/或未经过认证的代码(例如,供应商或用户的自定义码)。此外,CPU1 1100管理内存空间和允许在CPU2 108上运行的应用程序。
安全处理***116具有相关联的安全边界。该安全边界有助于防止非安全代码访问和/或篡改安全处理***116的要素。可以例如利用硬件和/或加密技术创建安全边界。用于提供安全边界的硬件技术可以包括,例如,将部件放置在单个集成电路中。此外,利用诸如环氧树脂密封的防破坏和/或防篡改技术通过物理结构可以保护一个或多个集成电路。用于创建安全边界的加密技术可以包括,例如,在离开安全处理***116内的部件之前加密敏感信息。为此,安全处理***116包括一个或多个加密处理器,并且将相关联的加密/解密密钥存储在安全处理***116内部的安全内存中(例如,在ROM 118或在以前的可编程存储器)。
2.1、沙盒
对***的许多攻击通过在软件程序内包括恶意代码实现。例如,黑客可以将代码植入程序中,从而访问安全信息(例如,密码、密钥等)或干扰***运行(例如,病毒)。任何非安全或不受信任代码都可能含有这些恶意代码。如上所述,沙盒104可以用于执行非安全代码或不受信任代码(例如,用户或供应商的自定义代码)。该不受信任代码可能不是(通常不是)安全代码。为了防止任何危害代码篡改安全处理***116的元件,安全处理***116包括隔离的沙盒104。
如上所述,安全处理***116内的CPU1 100定义沙盒104。沙盒104包括CPU2 108和内存106。CPU2 108与安全处理***116隔离。CPU2 108可以只执行沙盒104内的代码(例如,Java代码或本机代码)。因此,CPU2108用作“实机”(例如,与“虚拟机”相对)执行应用程序。
硬件内存保护单元(HMPU)102被构造为执行CPU2 108和安全处理***116之间的隔离。HMPU 102包括共享内存110、I/O模块112、和静态随机存取存储器(SRAM)114。在实施方式中,共享内存110包括在沙盒104内。共享内存110作为在CPU2 108上执行的应用程序请求的信箱。CPU2108将每个请求放置在共享内存110中。一旦接收请求,CPU1100就构造为确定是否处理该请求。防止CPU2 108将可执行代码写入共享内存110。更确切地,通过CPU2 108仅不可执行请求(例如,安全服务的请求)可以写入共享内存110。
ROM 106将CPU2 108要执行的非安全代码和/或未经过认证的代码存储在沙盒104中。在实施方式中,在制造期间可以将某些非安全代码和/或未经过认证的代码存储在ROM 106中。如果用户和/或供应商希望存储额外的非安全代码和/或未经过认证代码用于执行,那么可以利用隔离桥124将来自开放***设备126的代码输入共享内存110。例如,用户可以选择执行小应用程序(例如,Java applet)。以下将更详细地说明隔离桥124的操作。
2.2、安全处理***
安全处理***116包括与CPU1 100相关联的安全边界内的元件。例如,安全处理***116包括可以由在安全CPU1 100上执行的代码访问的安全元件。在CPU2 108上执行的代码不能直接访问安全处理***116的安全元件。相反,如果CPU2 108要求使用在安全处理***116内提供的安全服务,那么CPU2 108将安全服务请求放入共享内存110。通过CPU1100评估该请求。以下将参考图3更详细地描述用于评估CPU2 108请求安全服务的过程。
在实施方式中,HMPU 102的I/O模块112和SRAM 114在安全处理***116内。安全处理***116还可以包括安全处理器CPU1100可访问的ROM 118、安全***设备120、安全监控器122、加密处理引擎123、和隔离桥124。在实施方式中,ROM 118存储安全代码和/或经过认证的代码。在实施方式中,安全处理***116的元件只可以由在CPU1 100上执行的安全代码和/或经过认证的代码访问。安全监控器122监控安全处理***116的安全性,和可以检测篡改安全处理***116的尝试。如果检测到攻击,那么安全监控器122可以通知CPU1 100已经出现攻击或尝试攻击,CPU1 100可以采取行动响应该攻击。在实施方式中,安全处理***116具有一个或多个安全策略。这些策略可以例如用于定义应当如何处理请求(例如,来自CPU2 108的安全服务请求),和当观察到某些事件时应当采取何种行为(如果有的话)。在实施方式中,安全策略可以存储在ROM 118中。
2.3、隔离桥
隔离桥124将安全处理***116的部件与外部非***件(例如,开放***设备126)隔离。隔离桥124受到CPU1 100的控制,并且被构造为打开和关闭安全处理***116和开放***设备126之间的逻辑或硬线数据通道。开放***设备126的隔离防止安全数据泄露至开放***设备126。 进一步,该隔离确保具有开放***设备126的部件的任何问题不会影响安全处理***116。例如,该隔离可以确保安全处理***116的安全性不会受到开放***设备126的危害。通过将***设备126与安全处理***116中的时钟信息隔离,隔离桥124在安全处理***116和开放***设备126之间产生异步边界。该异步边界防止安全处理***116外部的非安全元件检测安全处理***116内的总线上传播的检测信息。
在实施方式中,隔离桥124被构造为耦接安全处理***116和开放***设备126之间的一个或多个数据通道。通过将数据通道切换成打开和关闭状态,隔离桥124可以耦接和解耦安全处理***116的元件和开放***设备126。例如,隔离桥124可以被构造为利用第一数据通道128将I/O模块112耦接至开放***设备126。隔离桥124可以被构造为利用第二数据通道130将开放***设备126耦接至安全处理***116的加密总线132。
例如,如果用户或供应商希望将非安全数据和/或未经过认证的数据加载到ROM 106中,那么用户或供货商可以将请求发送至CPU1 100以将该信息加载到共享内存ROM 106中。CPU1 100可以基于一个或多个存储的安全策略确定是否同意该请求。如果CPU1 100同意该请求,那么CPU1100可以指示隔离桥124切换数据通道128。在已经将非安全数据和/或未经过认证的数据传输至ROM 106之后,CPU1 100可以指示隔离桥再次切换数据通道128以解耦开放***设备126和I/O模块112。数据通道120可以用于将来自安全处理***116和/或ROM 106的数据通过加密总线132发送至开放***设备126。例如,如果CPU1 100同意数据从安全处理***116和/或ROM 106转移至开放***设备126,那么CPU1 100可以指示隔离桥124切换数据通道128。在已经将非安全数据和/或未经过认证的数据传输至开放***设备126之后,CPU1 100可以指示隔离桥再次切换数据通道130以解耦开放***设备126和加密总线132。
2.4、加密处理引擎和安全***设备
图2示出根据本发明实施方式的包括安全处理***116和沙盒104的***的更详细的图示。如图2中所示,开放***设备126可以包括直接存取存储器(DMA)模块230、内置集成电路(I2C)模块232、安全***接口(SPI)设备234、和SPI设备236,这在图2中通过通用输入/输出(GPIO)模块238示出。AHB从设备201和AHB主设备203是用于将隔离桥124连接至这些开放***设备的总线。
安全处理***116包括根据本发明实施方式的一个或多个加密处理引擎123。例如,在图2中,循环冗余校验(CRC)模块200通过加密总线132被耦接至CPU。在图2中,加密处理引擎123包括用于安全服务的安全模块。例如,安全处理***116可以包括不对称加密引擎204、一个或多个对称加密引擎(例如,3DEX 206和/或AES 208)、加密散列模块210。实施方式可以进一步包括流加密模块(例如,RC4模块)。
APB桥212将安全***设备连接至CPU1 100。在实施方式中,加密经过该桥的流量。例如,这些其他安全***设备包括I2C主设备/从设备216、SPI主设备218、非易失性内存(NVM)224、以及设备配置和管理模块226。定时器220、定时器随机数发生器(TRNG)222和时钟213也通过APB桥212被耦接至CPU1 100。在图2中,上电复位(POR)模块228被耦接至安全监控器122。在实施方式中,POR模块228检测何时将电源应施加至实施安全监控器122的电路(例如,POR模块228检测何时设备已被复位)。
2.5、实施
本文中公开的实施方式有利地允许通过诸如通用准则的标准认证安全处理***116的硬件(例如,CPU1 100和相关联的硬件)。CPU2 108由CPU1 100安全地控制,因此,可以允许CPU2 108在隔离的沙盒104内运行用户应用程序,而不会错过认证CPU1 100。
在本发明的实施方式中,图1和图2中所示的所有元件均位于相同的集成电路(IC)中。在另一个实施方式中,图1和/或图2中所示的某些元件位于单独的IC。例如,在实施方式中,***设备(例如,安全***设备120和/或开放***设备126)位于与图1和/图2中所示的剩余元件分离IC中。应当理解,图1和/图2中所示的任何元件可以在与用于实施图1和/或图2中所示的任何其他元件相同或不同的IC中。在实施方式中,CPU1100和CPU2 108实施为两个分离的处理器。在另一个实施方式中,CPU1100和CPU2 108实施为共享处理器的两个核。
本发明实施方式可以在许多设备中实施。例如,本发明实施方式可以实施在手机或个人计算机上。通过示出而非限制的方式提供这些实例。本领域的普通技术人员将理解,本发明实施方式的多种实施是可行的。
3、方法
现在将更详细地说明用于执行CPU2 108与安全处理***116的隔离的方法。图3描述了根据本发明实施方式的用于执行CPU2 108和沙盒104隔离的方法300。参考图1和图2中所示的实施方式说明方法300。然而,方法300不限于这些实施方式。
在实施方式中,CPU1 100执行图1和图2中所示的所有***元件的主要处理功能。例如,CPU1 100可以被构造为执行操作***的安全的经过认证的代码。如上所述,CPU1 100不执行非安全代码和/或未经过认证的代码。在步骤302中,CPU1 100指示CPU2 108处理沙盒104内的非安全代码。如果非安全代码还未加载到共享内存110中,那么此时可以将非安全代码(例如,来自开放***设备126)加载到共享内存110中。或者,可以将非安全代码加载到沙盒104内的另一个存储器中(例如,ROM 106中)。例如,CPU1 100可以安排命令执行共享内存110中的非安全代码。CPU2 108可以检测该命令、处理请求、和在已经完成执行非安全代码之后(可选地)将响应放入共享内存110中。由于共享内存110不存储可执 行代码,所以防止黑客将恶意可执行代码植入该响应。CPU1 100可以从共享内存110中读取该响应,然后可以继续处理安全代码。
当CPU2 108在处理非安全代码时,CPU2 108需要访问沙盒104外部的元件。例如,正在CPU2 108上执行的代码可以请求利用加密散列模块210进行散列数据。因为CPU2 108与安全处理***116隔离,所以CPU2108无法直接访问沙盒104外部的元件。相反,在步骤304中,CPU2 108将访问该元件的请求放在共享内存110中。
在步骤306中,CPU1 100检测该请求并确定是否应当同意该请求。例如,CPU1 100可以评估一个或多个存储安全策略,从而确定是否准许该请求。在实施方式中,这些一个或多个策略可以存储在ROM 118中。例如,这些一个或多个策略可以规定,如果安全监控器122检测到恶意第三方进行的攻击或试图攻击那么不应当执行非安全代码。本领域的普通技术人员将理解,可以通过多种方式配置安全策略。在实施方式中,制造商或终端用户可以定制和/或修改安全策略。
在步骤308中,如果CPU1 100确定应当拒绝请求,那么CPU1 100发送响应至CPU2 108(例如,通过将消息放入共享内存110中),表明拒绝该请求。如果CPU1 100同意该请求,那么在步骤310中CPU1 100处理该请求。例如,CPU1 100可以指示加密散列模块210散列数据。在已经处理该请求之后,在步骤312中CPU1 100将响应放入共享内存110中。例如,CPU1 100可以将来自加密散列模块210的散列输出放入共享内存110中。CPU2 108可以访问该响应并继续执行沙盒104内的代码。
现在将参考图3描述根据本发明实施方式的执行CPU2 108和沙盒104的隔离的方法300的实例。在步骤302中,CPU1指示CPU2执行沙盒104内的非安全代码。在沙盒104中执行的代码最终生成向用户释放数据的请求。在步骤304中,CPU2在共享内存110中放置释放数据的请求,以及在步骤306中CPU1 100检测该请求并确定是否同意该请求。如果请 求是将数据释放至安全***设备120(例如,SPI主设备218)的请求,那么CPU1 100准许该请求,因为安全***设备120位于安全处理***116的安全边界内。
CPU1 100可以检测将数据释放至开放***设备126(例如,SPI设备234)的请求。在实施方式中,CPU1 100可以基于一个或多个存储安全策略确定是否同意该请求。例如,CPU1 100可以确定拒绝将存储的加密密钥释放至开放***设备126的请求。例如,如果安全监控器122检测到恶意第三方的攻击或试图攻击,那么CPU1 100可以确定拒绝将数据释放至开放***设备的请求。
如果CPU1 100拒绝该请求,那么在步骤308中CPU1 100发送表明拒绝访问数据的响应。例如,CPU1 100可以通过安全***设备120发送响应至用户,或CPU1 100可以指示隔离桥切换数据通道130,使得可以通过开放***设备126将响应发送至用户。如果CPU1 100同意该请求,那么在步骤310中CPU1 100处理该请求。例如,CPU1 100可以指示隔离桥124切换数据通道130,使得可以将数据发送至在请求中识别的开放***设备。在可选步骤312中,CPU1 100可以将响应放入共享内存110中以告知CPU2 108已经处理该请求。
通过遵循图3的过程,CPU1 100可以请求执行非安全代码和/或未经认证的代码,而不会危害安全处理***116的安全。进一步,CPU2 108可以请求访问沙盒104外部的元件,而不会危害安全处理***116的安全性。因为硬件沙盒104隔离CPU2 108,所以避免了传统Java(或本机代码)的任何可能的安全问题。根据本发明实施方式,经过认证的安全操作***(例如,在CPU1 100上执行)能够与非安全应用程序(例如,在CPU2108上执行)同时运行。利用本发明实施方式,当检测到篡改安全处理***116的潜在尝试时,经过认证的安全处理器CPU1 100可以做出反应(例如,通过安全监控器122)。
4、结论
以上借助于示出本发明的具体功能及其关系的实施的功能构件方框描述了本发明。为了便于描述,本文中已经任意地定义这些功能构件方框的边界。只要合适地执行具体功能和其关系就可以定义可选的边界。
前述的具体实施例将完全揭示本发明的一般特征,以致于在不偏离本发明的一般概念的情况下,无需过量实验,通过应用本领域普通技术人员的知识可以容易地修改和/或使之适于不同的应用。因此,基于本文中提出的教导和引导,这些适应和修改旨在在所发明实施方式的等价物的意义和范围内。应当理解,本文中的词组或术语是为了描述而非限制,因此根据教导和引导本领域的技术人员说明本说明书的术语或词组。
以上***和方法可以实施为在机器上执行的计算机程序、计算机程序产品、或已经存储指令的有形和/或非易失性计算机可读介质。例如,本文中描述的功能可以通过计算机处理器或以上列举的任何一个硬件设备执行的计算机程序指令体现。计算机程序指令使处理器执行本文中描述的信号处理功能。计算机程序指令(例如,软件)可以存储在有形易失性计算机可使用介质、计算机程序介质、或计算机或处理器可以访问的任何存储介质。该介质包括诸如RAM或ROM的存储设备,或诸如计算机磁盘或CD ROM的其他类型的计算机存储介质。因此,具有使处理器执行本文中描述的信号处理功能的计算机程序代码的任何有形非易失性计算机存储介质在本发明的保护范围和精神内。
尽管以上已经描述了本发明的不同实施方式,但是应当理解,仅仅通过实例而非限制地呈现了这些实施例。相关领域的技术人员将明显看出,在不偏离本发明的精神和保护范围的情况下,可以对本发明的形式和细节做出改变。因此,本发明的广度和保护范围不应当受到任何以上所述的示例性实施方式的限制,而应当只根据所附权利要求及其等价物限定。
Claims (10)
1.一种安全处理***,包括:
安全处理***,包括:
硬件存储保护单元HMPU包括一个共享内存,其中,所述硬件存储保护单元被构造为限制对所述安全处理***的访问,
安全存储器被构造为存储安全策略,以及
安全处理器被构造为执行安全代码,其中,所述安全处理器被构造为基于所述安全策略确定是否准许访问所述安全处理***的安全服务的请求;以及
第一处理器,与所述安全处理***和一组******设隔离,其中,所述第一处理器被构造为:
在所述安全处理器的指示下执行代码,以及
将访问所述安全服务的所述请求放入所述共享内存中。
2.根据权利要求1所述的***,其中,所述安全处理***进一步包括隔离桥,所述隔离桥被构造为将所述安全处理***耦接至非安全***设备,其中,所述安全处理器进一步被构造为基于所述安全策略确定是否指示所述隔离桥将所述安全处理器耦接至所述非安全***设备。
3.根据权利要求2所述的***,进一步包括耦接至所述第一处理器的内存,其中,所述内存与所述安全处理***和所述一组******设备隔离。
4.根据权利要求3所述的***,其中,所述安全处理器进一步被构造为指示所述隔离桥将所述内存耦接至非安全***设备以使所述代码能够加载到所述内存中。
5.根据权利要求3所述的***,其中,所述HMPU通过执行沙盒限制访问所述安全处理***,其中,所述沙盒包括所述内存、所述第一处理器和所述共享内存。
6.一种安全处理***,包括:
第一处理器,
安全处理***,包括:
安全内存,存储安全策略,
隔离桥,被构造为将******设备耦接至所述安全处理***,以及
安全处理器,其中,所述安全处理器被构造为基于所述安全策略确定是否指示所示隔离桥将所述******设备耦接至所述安全处理***;以及
硬件内存保护单元HMPU,被构造为将所述第一处理器与所述安全处理***和所述******设备隔离。
7.根据权利要求6所述的***,其中,所述第一处理器和所述安全处理***都被耦接到共享内存,其中,所述HMPU进一步被构造为将所述第一处理器和所述共享内存与所述安全处理***和所述******设备隔离。
8.根据权利要求7所述的***,其中,所述HMPU通过在所述安全内存、所述第一处理器和所述共享内存周围执行沙盒将所述第一处理器与所述安全处理***和所述******设备隔离。
9.一种安全处理方法,包括:
利用安全处理器检测对安全服务的第一请求,其中,通过与所述安全处理器物理隔离的非安全处理器将所述第一请求放入共享内存中;
利用所述安全处理器分析存储的安全策略以确定是否准许所述第一请求;以及
响应于应当准许所述第一请求的确定:
利用所述安全处理器处理所述第一请求,以及
将响应放入所述共享内存中。
10.根据权利要求9所述的方法,进一步包括:
从安全监控器接收表明已经出现对所述安全处理器的试图攻击的信息;以及
响应于接收所述信息确定不应当准许所述第一请求。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261639394P | 2012-04-27 | 2012-04-27 | |
US61/639,394 | 2012-04-27 | ||
US13/491,309 | 2012-06-07 | ||
US13/491,309 US9256734B2 (en) | 2012-04-27 | 2012-06-07 | Security controlled multi-processor system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103377349A CN103377349A (zh) | 2013-10-30 |
CN103377349B true CN103377349B (zh) | 2017-04-26 |
Family
ID=47594220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210592637.5A Active CN103377349B (zh) | 2012-04-27 | 2012-12-31 | 安全控制的多处理器*** |
Country Status (4)
Country | Link |
---|---|
US (2) | US9256734B2 (zh) |
EP (1) | EP2657879B1 (zh) |
CN (1) | CN103377349B (zh) |
TW (1) | TWI584152B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256734B2 (en) | 2012-04-27 | 2016-02-09 | Broadcom Corporation | Security controlled multi-processor system |
US9171170B2 (en) * | 2012-08-17 | 2015-10-27 | Broadcom Corporation | Data and key separation using a secure central processing unit |
US9424421B2 (en) | 2013-05-03 | 2016-08-23 | Visa International Service Association | Security engine for a secure operating environment |
TW201520821A (zh) * | 2013-11-26 | 2015-06-01 | Chunghwa Telecom Co Ltd | 可擴充之機密基碼管理系統 |
EP2894588B1 (en) * | 2014-01-13 | 2018-08-15 | Nxp B.V. | Data processing device, method for executing an application and computer program product |
TWI509461B (zh) * | 2014-03-17 | 2015-11-21 | Hiti Digital Inc | 耗材管理方法及其設備 |
WO2015153288A1 (en) * | 2014-04-02 | 2015-10-08 | Openpeak Inc. | Method and system for selectively permitting non-secure application to communicate with secure application |
CN103942503B (zh) * | 2014-04-28 | 2017-02-01 | 上海新储集成电路有限公司 | 一种安全状态切换***及切换方法 |
US9704355B2 (en) | 2014-10-29 | 2017-07-11 | Clover Network, Inc. | Secure point of sale terminal and associated methods |
US20180012024A1 (en) * | 2015-01-30 | 2018-01-11 | Hewlett-Packard Development Company, L.P. | Processor state determination |
CN106155940A (zh) * | 2015-04-17 | 2016-11-23 | 扬智科技股份有限公司 | 可保护代码的***芯片与***芯片的代码保护方法 |
US10049215B2 (en) * | 2015-09-15 | 2018-08-14 | The Johns Hopkins University | Apparatus and method for preventing access by malware to locally backed up data |
CN105790927B (zh) | 2016-02-26 | 2019-02-01 | 华为技术有限公司 | 一种总线分级加密*** |
US10289853B2 (en) * | 2016-03-31 | 2019-05-14 | Microsoft Technology Licensing, Llc | Secure driver platform |
CN106445641B (zh) * | 2016-11-02 | 2020-11-06 | 深圳前海生生科技有限公司 | 一种离散计算节点上安全虚拟平台间的数据迁移方法 |
US10417458B2 (en) * | 2017-02-24 | 2019-09-17 | Microsoft Technology Licensing, Llc | Securing an unprotected hardware bus |
US11055401B2 (en) * | 2017-09-29 | 2021-07-06 | Intel Corporation | Technologies for untrusted code execution with processor sandbox support |
JP6762924B2 (ja) * | 2017-12-01 | 2020-09-30 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
US20190332814A1 (en) * | 2018-04-27 | 2019-10-31 | Nxp B.V. | High-throughput privacy-friendly hardware assisted machine learning on edge nodes |
US10762244B2 (en) * | 2018-06-29 | 2020-09-01 | Intel Corporation | Securely exposing an accelerator to privileged system components |
CN109325345B (zh) * | 2018-09-21 | 2022-10-28 | 百度在线网络技术(北京)有限公司 | 用于在沙盒环境中运行第三方代码的方法和装置 |
US20220229908A1 (en) * | 2019-05-29 | 2022-07-21 | The Regents of the University of Calofornia | Methods, systems, and devices for trusted execution environments and secure data processing and storage environments |
CN110430263B (zh) * | 2019-08-05 | 2022-07-05 | 中国工商银行股份有限公司 | 一种增值业务处理***及方法 |
JP2022114391A (ja) * | 2021-01-26 | 2022-08-05 | 京セラドキュメントソリューションズ株式会社 | 電子機器 |
TWI826796B (zh) | 2021-06-17 | 2023-12-21 | 新唐科技股份有限公司 | 資安保護系統及資安保護方法 |
TWI820434B (zh) * | 2021-06-17 | 2023-11-01 | 新唐科技股份有限公司 | 參數檢查系統及參數檢查方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290284B1 (en) * | 1999-01-11 | 2007-10-30 | Myspace Ab | System for data processing a security critical activity |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199167B1 (en) * | 1998-03-25 | 2001-03-06 | Compaq Computer Corporation | Computer architecture with password-checking bus bridge |
US6092202A (en) * | 1998-05-22 | 2000-07-18 | N*Able Technologies, Inc. | Method and system for secure transactions in a computer system |
US7360253B2 (en) * | 2004-12-23 | 2008-04-15 | Microsoft Corporation | System and method to lock TPM always ‘on’ using a monitor |
US8090919B2 (en) * | 2007-12-31 | 2012-01-03 | Intel Corporation | System and method for high performance secure access to a trusted platform module on a hardware virtualization platform |
US7779252B2 (en) * | 2006-03-21 | 2010-08-17 | Harris Corporation | Computer architecture for a handheld electronic device with a shared human-machine interface |
US8082551B2 (en) * | 2006-10-30 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | System and method for sharing a trusted platform module |
US7986786B2 (en) * | 2006-11-30 | 2011-07-26 | Hewlett-Packard Development Company, L.P. | Methods and systems for utilizing cryptographic functions of a cryptographic co-processor |
US7827371B2 (en) * | 2007-08-30 | 2010-11-02 | Intel Corporation | Method for isolating third party pre-boot firmware from trusted pre-boot firmware |
US7827326B2 (en) * | 2007-11-26 | 2010-11-02 | Alcatel-Lucent Usa Inc. | Method and apparatus for delegation of secure operating mode access privilege from processor to peripheral |
US8332660B2 (en) * | 2008-01-02 | 2012-12-11 | Arm Limited | Providing secure services to a non-secure application |
KR20100124052A (ko) * | 2009-05-18 | 2010-11-26 | 삼성전자주식회사 | 플랫폼에 비종속적인 보안 환경 제공 장치 및 방법 |
US8627451B2 (en) * | 2009-08-21 | 2014-01-07 | Red Hat, Inc. | Systems and methods for providing an isolated execution environment for accessing untrusted content |
US9684785B2 (en) * | 2009-12-17 | 2017-06-20 | Red Hat, Inc. | Providing multiple isolated execution environments for securely accessing untrusted content |
US8826039B2 (en) * | 2010-02-02 | 2014-09-02 | Broadcom Corporation | Apparatus and method for providing hardware security |
US8751781B2 (en) | 2010-05-28 | 2014-06-10 | Dell Products, Lp | System and method for supporting secure subsystems in a client hosted virtualization system |
US8639923B2 (en) * | 2010-05-28 | 2014-01-28 | Dell Products, Lp | System and method for component authentication of a secure client hosted virtualization in an information handling system |
TWI465916B (zh) | 2010-09-01 | 2014-12-21 | Tatung Co | 異質雙核心之非對稱傳輸系統與方法 |
US8931042B1 (en) * | 2010-12-10 | 2015-01-06 | CellSec, Inc. | Dividing a data processing device into separate security domains |
WO2013101178A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Using a trusted platform module for boot policy and secure firmware |
US9256734B2 (en) | 2012-04-27 | 2016-02-09 | Broadcom Corporation | Security controlled multi-processor system |
-
2012
- 2012-06-07 US US13/491,309 patent/US9256734B2/en active Active
- 2012-12-14 TW TW101147559A patent/TWI584152B/zh not_active IP Right Cessation
- 2012-12-27 EP EP12008619.4A patent/EP2657879B1/en active Active
- 2012-12-31 CN CN201210592637.5A patent/CN103377349B/zh active Active
-
2015
- 2015-12-31 US US14/985,697 patent/US9910990B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290284B1 (en) * | 1999-01-11 | 2007-10-30 | Myspace Ab | System for data processing a security critical activity |
Also Published As
Publication number | Publication date |
---|---|
US9910990B2 (en) | 2018-03-06 |
EP2657879B1 (en) | 2017-03-15 |
TW201344494A (zh) | 2013-11-01 |
CN103377349A (zh) | 2013-10-30 |
EP2657879A3 (en) | 2014-03-26 |
US20130291053A1 (en) | 2013-10-31 |
TWI584152B (zh) | 2017-05-21 |
US9256734B2 (en) | 2016-02-09 |
EP2657879A2 (en) | 2013-10-30 |
US20160117506A1 (en) | 2016-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103377349B (zh) | 安全控制的多处理器*** | |
CN108140094B (zh) | 用于安全可信i/o访问控制的技术 | |
JP5249399B2 (ja) | 安全なメモリ区分を使用した安全な実行のための方法および装置 | |
US10496834B2 (en) | Secure computing system | |
CN103827881B (zh) | 用于设备操作***中的动态平台安全的方法和*** | |
TWI431533B (zh) | 微處理器系統及用以初始化安全操作之方法與處理器 | |
US7392415B2 (en) | Sleep protection | |
US7010684B2 (en) | Method and apparatus for authenticating an open system application to a portable IC device | |
US7139915B2 (en) | Method and apparatus for authenticating an open system application to a portable IC device | |
CN108604274A (zh) | 安全片上*** | |
US20180225463A1 (en) | Secure computing system | |
JP2008052704A (ja) | コンピュータおよび共有パスワードの管理方法 | |
KR20150038574A (ko) | 타겟 디바이스의 능동 모니터링, 메모리 보호 및 무결성 검증을 위한 방법, 시스템 및 컴퓨터 판독 가능 매체 | |
CN107066887A (zh) | 具有敏感数据访问模式的处理装置 | |
TW201411405A (zh) | 保護多安全cpu之計算系統及其方法 | |
CN112818327A (zh) | 基于TrustZone的用户级代码和数据安全可信保护方法及装置 | |
CN112749397A (zh) | 一种***和方法 | |
Benadjila et al. | Wookey: Designing a trusted and efficient USB device | |
JP5069406B2 (ja) | 計算機システム内のセキュリティ侵害を識別して防ぐためのシステムと方法 | |
Iannillo et al. | An REE-independent Approach to Identify Callers of TEEs in TrustZone-enabled Cortex-M Devices | |
Korona et al. | IoTrust-a HW/SW framework supporting security core baseline features for IoT | |
CN116823585A (zh) | Gpu可信执行环境的构建方法、gpu可信计算执行方法及装置 | |
WO2008025036A2 (en) | Data processing systems utilizing secure memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1186792 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170426 Address after: Holland high tech Park 60 Eindhoven Patentee after: NXP BV Address before: American California Patentee before: Zyray Wireless Inc. |
|
TR01 | Transfer of patent right |