CN104021037B - 动态资源共享 - Google Patents

动态资源共享 Download PDF

Info

Publication number
CN104021037B
CN104021037B CN201410070908.XA CN201410070908A CN104021037B CN 104021037 B CN104021037 B CN 104021037B CN 201410070908 A CN201410070908 A CN 201410070908A CN 104021037 B CN104021037 B CN 104021037B
Authority
CN
China
Prior art keywords
security
application
module
functional block
access
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
CN201410070908.XA
Other languages
English (en)
Other versions
CN104021037A (zh
Inventor
P.巴拉苏布拉马尼安
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN104021037A publication Critical patent/CN104021037A/zh
Application granted granted Critical
Publication of CN104021037B publication Critical patent/CN104021037B/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode

Abstract

公开了动态资源共享。设备和技术的代表性实现提供了资源的动态安全共享。可以将资源模块划分成多个功能块,可以将这些功能块分配给非安全应用和安全应用。安全性监视器可以监视处理器活动并且确定安全资源何时可以被访问。

Description

动态资源共享
背景技术
在知识产权(IP)盗版和其它形式的潜在有害活动是许多操作或计算环境中的主要担忧。通常,例如,由于硬件的配置,微控制器不提供用于执行专有或保密例程的受信任的执行环境。例如,硬件的架构可能更多地基于经济的设计考虑,尤其是当硬件要部署在工业应用中的时候。当考虑到这样的微控制器可能在其中进行操作的潜在地被暴露的环境时,这可能是有问题的。诸如固件、软件、数据等之类的宝贵的IP资产在这些情况可能会易于遭受攻击。
已提出的解决方案通常包括对资源的重复,这可能包括额外的硬件组件或系统。例如,片上系统(SoC)可以在芯片上包括除了类似通用组件之外的额外的“安全”组件(例如,出于数字版权管理的目的)。例如,安全组件可以仅由受信任的应用在安全环境中使用。这种安全组件可以包括时钟、中断控制器、小键盘控制器、DMA模块、存储器等。总的来说,资源重复需要额外的管芯尺寸和增加的功耗。
在其它所提出的解决方案中,可以使用设计的时间分区将模块从非安全模式切换到安全模式并且切换回来,以根据需要来运行安全应用。然而,一旦将模块暂时指派给非安全应用或者安全应用,整个模块在一段时间期间通常不可用于另一个“世界”(例如,分别为安全应用/例程或非安全应用/例程),直到所指派的应用将其放弃。一般来说情况是如此,即使模块包括若干能够并发并且独立使用的功能块。在这种情况下,模块的功能块中的许多(例如,多数)可以是空闲的,而模块的块中的其余部分(例如,几个)正在由所指派的应用使用。该技术可能限制设计的应用和/或用例的范围,并且可能是低效的。
发明内容
根据本发明的一个方面,提供了一种装置,包括:嗅探器组件,其被布置为:监视处理器并且确定在所述处理器上执行的应用是否请求对资源的安全访问;以及输出组件,其被布置为:当所述应用是安全应用时,输出准予对共享的资源模块的安全功能块的安全访问的安全模式信号。
根据本发明的另一个方面,提供了一种系统,包括:处理器,其被布置为:并发地执行非安全应用和安全应用;安全性监视器,其被布置为:监视所述处理器并且当所述安全应用请求对资源模块的访问时输出安全模式信号;一个或多个资源模块,每个资源模块包括多个功能块,所述多个功能块中的一个或多个功能块被分配给所述非安全应用,并且所述多个功能块中的一个或多个其它功能块被并发地分配给所述安全应用;以及一个或多个安全性套接字,其被布置为:确定所述一个或多个资源模块的所分配的功能块中的每一个的访问许可,所述访问许可基于功能块是被分配给所述非安全应用还是被分配给所述安全应用。
根据本发明的另一个方面,提供了一种方法,包括:从第一应用接收针对模块的资源的第一请求,所述第一应用是安全应用或非安全应用中的一个;将所述模块的第一功能块分配给所述第一应用,所述模块包括多个功能块;从第二应用接收针对所述模块的资源的第二请求,所述第二应用是所述安全应用或所述非安全应用中的另一个;以及将所述模块的第二功能块分配给所述第二应用,所述第二应用访问所述模块与所述第一应用访问所述模块是并发的,所述第一功能块与所述第二功能块通信地隔离。
根据本发明的另一个方面,提供了一种控制器设备,其包括处理器以及具有存储在其上的处理器可执行指令的一个或多个存储器存储设备,当由所述处理器执行时,所述处理器可执行指令指引所述处理器执行包括以下的操作:从第一应用接收针对模块的资源的第一请求,所述第一应用是安全应用或非安全应用中的一个;将所述模块的第一功能块分配给所述第一应用,所述模块包括多个功能块;从第二应用接收针对所述模块的资源的第二请求,所述第二应用是所述安全应用或所述非安全应用中的另一个;以及将所述模块的第二功能块分配给所述第二应用,所述第二应用访问所述模块与所述第一应用访问所述模块是并发的,所述第一功能块与所述第二功能块通信地隔离。
附图说明
参照附图阐述了详细描述。在图中,参考编号的一个或多个最左边的位标识该参考编号首次出现在其中的图。相同的参考编号在不同的图中的使用指示相似或相同的项目。
对于本讨论,图中所示的设备和系统被示为具有多个组件。如本文中所描述的,设备和/或系统的各种实现可以包括更少的组件并且仍然在本公开的范围之内。可替代地,设备和/或系统的其它实现可以包括额外的组件或者所描述的组件的各种组合,并且仍然在本公开的范围之内。
图1是根据一种实现的示例微控制器拓扑的一部分的框图,在其中可以应用本文中公开的技术和设备。
图2是根据一种实现的、由一些功能块组成的示例模块的框图。示出了该模块和与其相关联的安全性套接字包装器以及各个互连路径。
图3是根据一种实现的、在功能块级上示出的示例中断传递机制的框图。
图4A是包括专用中断处理的示例中断处理方案的框图。
图4B是根据一种实现的、使用公共中断用于安全和通用使用的示例中断处理方案的框图。
图5A是根据一种实现的、示例安全性监视器的框图。
图5B是根据一种实现示出非安全世界与安全世界之间的示例切换的状态图。
图6是根据一种实现示出非安全世界与安全世界之间的切换的示例阶段的进度图。
图7是根据一种实现示出用于非安全世界与安全世界之间的受控转换的技术的进度图,尤其详述了所涉及的中断。
图8是根据一种实现示出向非安全应用指派功能块的示例阶段的进度图。
图9是根据一种实现示出向安全应用指派功能块的示例阶段的进度图。
图10是根据一种实现示出用于在非安全应用与安全应用之间提供动态资源共享的示例过程的流程图。
具体实施方式
概述
设备和技术的代表性实现在不需要重复的硬件以及伴随的增加的管芯尺寸和功耗的情况下提供了非安全应用和安全应用对资源的动态安全共享。在一个示例中,可以将资源模块划分成多个功能块,可以将这些功能块分配给非安全应用和安全应用。在一种实现中,可以将来自资源模块的一些功能块分配给非安全应用,并且可以并发地将来自资源模块的其它功能块分配给安全应用,而没有数据泄漏或破坏一个或多个安全应用的安全性。
在一种实现中,安全性监视器可以监视处理器活动,并且基于在该处理器上执行的应用针对安全资源的请求来确定安全资源何时可以被访问。例如,当安全应用请求访问资源模块时,安全性监视器可以输出安全模式信号。然后,当对安全资源的访问结束时,安全性监视器可以对安全模式信号解断言(de-assert)。
在各种实现中,资源模块与布置用于确定这些资源模块的所分配的功能块中的每一个功能块的访问许可的安全性套接字相关联。例如,访问许可可以基于功能块是分配给了非安全应用还是分配给了安全应用。
在本公开中讨论了用于安全资源共享的各种实现和技术。参照附图中示出的示例微控制器设备和系统对技术和设备进行了讨论。然而,这并非旨在是限制性的,而是为了容易讨论和说明方便。所讨论的技术和设备可以应用于各种处理器和控制器设备设计、嵌入式设备和系统、结构等中的许多,并且仍然在本公开的范围之内。在本公开中对术语微控制器或控制器的使用旨在包括任何和所有这样的处理器设备、系统、结构等。
在下面使用多个示例对实现进行了更加详细的解释。虽然在这里和下面讨论了各种实现和示例,但是通过对单独实现和示例的特征和元素进行组合,进一步的实现和示例可以是可能的。
示例控制器拓扑
图1是根据一种实现的示例控制器(例如,微控制器等)拓扑100的一部分的框图,在其中可以应用本文中公开的技术和设备。示出示例拓扑100具有至少两个互连总线(L1和L2)、在L1互连上具有数量“n”个资源(例如,从设备)模块102(“模块”),并且在L2互连上具有另外数量“m”个模块102。在各种实现中,拓扑100可以具有任意数量的总线、互连和模块102以及额外的组件。
例如,如下面进一步描述的,在图1的示例拓扑100中,每个模块102与布置用于确定针对模块102的访问许可的安全性套接字104相关联。此外,图1的图示包括中央处理单元(CPU)106、安全性监视器108、存储器控制器110、安全存储器112、通用存储器114、桥组件116和总线主设备组件118。在各种实现中,拓扑100可以包括更少的、额外的或者替代的组件,并且仍然在本公开的范围之内。
在一种实现中,资源模块(“模块”)102表示可以由在CPU 106上执行的应用用来执行操作或任务的资源。例如,模块102可以包括像实时时钟的基准组件;诸如中断控制器的任务管理组件;诸如小键盘控制器的输入-输出管理组件;诸如直接存储器存取(DMA)模块的存储器管理组件等。应当理解的是:这些示例仅是模块102的大量可能的类型中的几个示例。一般地说,可以由在CPU 106上执行的应用请求和/或采用的任何和所有资源都可以是模块102。
在各种实现中,CPU 106被布置为:并发地执行一个或多个非安全应用以及一个或多个安全应用。CPU 106可以包括单处理器或多处理器计算机、处理器或控制器系统、小型计算设备、大型设备、以及个人计算机、手持式或移动计算设备(例如,平板电脑、智能电话等)、基于微处理器的或可编程的消费或工业电子设备等。还可以在分布式计算环境中实施所示出的方面,在分布式计算环境中,任务由通过通信网络链接的远程处理设备执行。然而,本公开的方面中的一些(如果不是全部)方面可以在独立的计算设备上实施。在分布式计算环境中,程序组件可以位于本地和远程存储器存储设备(诸如存储器设备112、114)两者中。
在一种实现中,安全性监视器108被布置为:针对由在处理器106上执行的应用进行的安全模式进入和退出序列来监视处理器(即,CPU 106)。例如,安全性监视器108被布置为:当被授权的应用开始安全事务或者发起对安全资源的访问时,断言安全模式信号。进一步的,当应用结束安全事务或者终止对安全资源的访问时,安全性监视器108对安全模式信号解断言。
在一种实现中,如图4中所示,安全性监视器108包括嗅探器组件402,其被布置为监视处理器106并且确定在处理器106上执行的应用是否请求对诸如模块102、存储器114等的资源的安全访问。
在各种实现中,当进入安全模式的条件满足时,安全性监视器108输出安全模式信号。例如,当非安全应用通过预定义的合约(例如,经由启动ROM)等请求资源模块102的功能块202指派给该非安全应用时,启动ROM代码(或者类似的机构)可以执行序列来使安全性监视器108相信请求是善意的。在这样的示例中,安全性监视器108输出安全模式信号,从而断言安全模式。在这些实现中,安全性监视器108可以包括输出组件(未示出),例如,输出组件可以被布置为:当请求应用是安全应用或者请求应用具有访问安全资源的授权时,输出准予对共享的资源模块的安全功能块的安全访问的安全模式信号。
在另外的实现中,安全性监视器108被布置为:处理或管理安全中断请求。用这种方式,中断以安全的方式处理,并且与非安全系统或应用隔离。例如,安全性监视器108可以对安全中断请求进行聚合,并且将经聚合的安全中断请求转发到处理器106和/或中断控制器来进行对中断的处理。
在一种示例实现中,安全性监视器108包括中断处理组件(未示出),中断处理组件被布置为:当安全模式信号被断言时,使用安全中断服务例程(ISR)处理程序对中断向量寄存器进行重新编程。例如,安全性监视器108可以被布置为:使用(例如,在安全ROM中定义的)安全模式ISR的地址对专用安全模式中断向量条目进行编程,并且将中断转发到CPU106和/或中断控制器来进行对中断的处理。在不同的实现中,其它技术可以用于使用安全性监视器108来处理安全中断。
因此,对由指派给安全世界的功能块202断言的任何中断进行安全地处理,而没有来自恶意应用等的拦截。
在进一步的实现中,安全性监视器108被布置为:当断言了安全模式信号时禁用控制器100的调试基础结构,并且当解断言了安全模式信号时启用调试基础结构。用这种方式,安全操作和事务也保持与调试基础结构隔离,从而提供了额外的安全性等级。在各种实现中,替换的或额外的保护机制可以用于防止当在安全模式中时未授权的调试。
如果包括的话,那么存储器控制器100可以被布置为:基于由安全性监视器108输出的安全模式信号来控制应用和/或例程对存储器存储设备的访问,所述存储器存储设备诸如安全存储器112和通用存储器114。例如,当安全性监视器108断言安全模式信号时,可以向安全应用准予对安全存储器112的访问。相反,当安全性监视器108解断言安全模式信号时,可以拒绝对安全存储器112的访问。
在各种实现中,可以使用处理器(即,CPU 106)可访问的任何形式的计算机可读介质来实现存储器存储设备112和114。例如,计算机可读介质可以包括计算机存储介质和通信介质。
计算机可读存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储器112、114是计算机可读存储介质的示例。可以给出的另外类型的计算机可读存储介质包括但不限于:RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可以用于存储所期望的信息且可以由处理器106访问的任何其它介质。
相对地,通信介质典型地在调制的数据信号中体现计算机可读指令、数据结构、程序模块或其它数据,诸如载波或其它传输机制。
如果包括的话,那么桥116提供总线、互连(诸如L1,L2)等之间的信号路径。在各种实现中,桥116可包括一个或多个端口以适应互连等。
在另一种实现中,拓扑100可以包括总线主设备118。在该实现中,总线主设备118被布置为指引总线、互连等上的业务。例如,总线主设备118可以指引去往和来自输入/输出组件(诸如一个或多个模块102)的数据或分组等。在各种实现中,总线主设备118通常相对于输入/输出设备和/或模块102对数据、地址等的信号路径进行(动态地或初始地)控制。在另一种实现中,基于位于诸如CPU 106等的别处的其它(例如,优先级、额外的等)总线业务控制,总线主设备118可以是第二或后续的总线主设备。
在替代的实现中,控制器拓扑100可以包括更少的组件、额外的组件或替代的组件来执行所讨论的功能或者用于其它所期望的功能性。
示例资源模块
图2是控制器拓扑100的一部分的框图,其示出了示例模块102以及相关联的组件的细节。在一种实现中,模块102由一些功能块202组成。在图2的图示中,示出了模块102和与其相关联的安全性套接字(也被称为包装器)104以及相关联的分配器204。应当理解的是:分配器204可以如图所示与模块102相关联、或者可以与另一模块相关联、或者可以是单独的元件。
在一种实现中,如图2中所示,共享的资源模块102被划分成一些功能块202,这些功能块202可指派为安全功能块或非安全功能块。在一种实现中,基于功能块202被应用或例程请求的顺序,并且根据请求应用的安全性质或授权,将功能块202分配为安全或非安全功能块202。
例如,这由功能块202到特定的“世界”的指派来表示。在一段持续时间内,可以将每个功能块202指派给通用世界402(即,“非安全世界”、“正常世界”等)或者指派给“安全世界”404(如图4B中所示)。指派给安全世界404意味着:当安全性监视器108断言(即,输出)安全模式信号时,被授权的应用、例程等可访问功能块202。换句话说,功能块202变成了在特权操作模式——操作的安全模式中(在一段持续时间内)可访问的专用资源。当安全性监视器108解断言(即,停止)安全模式信号时,任何应用、例程等不可访问功能块202。例如,当安全模式没有激活时,针对访问功能块202的尝试返回忙信号等。
指派给通用(GP)世界402意味着:无论安全性监视器108是否断言安全模式信号,任何应用、例程等可访问功能块202。访问指派给GP世界的功能块202的应用不能预期它们的操作是安全的或者是与其它操作、例程等隔离的。
此外,功能块202可以在一段持续时间内既不指派给GP世界402也不指派给安全世界404。这意味着:在这段持续时间内,功能块202是释放的,并且可获得来在未来被指派给请求应用(非安全或者安全应用)。
例如,在一种实现中,控制器拓扑100可以包括分配器204,该分配器204被布置为:将一个或多个资源模块102的多个功能块202中的一个或多个功能块动态地分配给请求非安全应用,和/或将一个或多个资源模块102的多个功能块202中的一个或多个其它功能块动态地分配给请求安全应用。在各种实现中,这可以包括来自一个或多个非安全应用的一系列连续请求和/或来自一个或多个安全应用的一系列连续请求。依照这些请求,分配器204被布置为:按照这些请求的顺序,将来自被请求模块102的功能块202分配给请求应用。
然而,在一种实现中,从非安全应用和安全应用背靠背地接收针对模块102的请求。例如,在该实现中,分配器204可以从第一应用接收针对模块102的资源的第一请求,其中,第一应用是安全应用或非安全应用。分配器204将模块102的多个功能块202的第一功能块202分配给第一应用。随后,分配器204从第二应用接收针对同一模块102的资源的第二请求,其中,第二应用与第一应用相反,例如,相应地是非安全应用或安全应用。相应地,分配器204将同一模块102的第二功能块202分配给第二应用。在该实现中,第二应用与第一应用访问模块102并发地访问模块102,然而,第一功能块202与第二功能块202通信地隔离,从而使得没有数据泄漏或者对安全应用或分配给其的一个或多个功能块202的安全性的破坏。
因此,在各种实现中,模块102的一个或多个安全功能块202可以与模块102的一个或多个非安全功能块202被非安全应用访问并发地被安全应用访问。这可以在没有硬件重复的情况下实现,因为安全功能块202与非安全功能块202是通信地隔离的。
此外,可以基于先请求而接收(first-request-received)将同一模块102的额外的功能块202(当可用时)分配给第一或第二应用,或者分配给额外的应用,不管该额外的应用安全还是不安全。在替代的实现中,模块102的功能块202的分配可以基于预定义的优先级系统或者其它设立的规则(例如,考虑操作系统的规则等)而发生。
在各种实现中,分配器204可以包括模块、组件、例程等,或者它们的组合。可以在硬件、固件和/或软件中实现分配器204的部分。此外,在一些实现中,分配器204对特定模块102来说可以是本地的(例如,分配器可以位于或至少部分地存储在模块102内),并且可以各自地关联到特定的模块102,从而对该模块102的功能块进行分配。在替代的实现中,分配器204可以更一般地被关联(例如,与一组模块102相关联、关联到互连(L1、L2)等),并且被布置为对多个模块102的功能块202进行分配。在这样的替代实现中,分配器204的部分可以位于或远程存储到关联到分配器204的多个模块102中的一个或多个上。
图2的图示示出了被划分成“n”个功能块202的从设备(模块)102。在各种实现中,功能块202在模块102的能力之内可以是相同的,或者非常接近于相同的。在其它实现中,可以基于请求应用的资源需要或者基于其它条件来对功能块202进行划分。
在一种实现中,如图2中所示,安全性套接字(也被称为包装器)104关联到特定的模块102。在替代的实现中,安全性套接字104关联到一个以上的模块102。在各种实现中,使用安全性套接字104服务的功能块202的配置信息(例如,开始地址、大小、安全访问许可等)对安全性套接字104进行编程。在一种实现中,安全性套接字104被布置为:确定安全性套接字104关联到的一个或多个资源模块102的所分配的功能块202中的每一个功能块的访问许可。例如,访问许可基于功能块202是分配给了非安全应用还是分配给了安全应用。
这在图2的图示中通过安全性套接字104图中的功能块202的列表(FB ID 1到FBID N)以及功能块202中的每一个功能块的相关联的所指派的世界(“指派的世界”)来表示。如所提到的,每个功能块202的所指派的世界可以包括通用(GP)世界402、安全世界404或者两者都不是(例如,可用于指派给世界)。
在一种实现中,允许安全可执行指令使用配置信息对安全性套接字104进行编程。如本文中所使用的,安全可执行指令包括安全(例如,被授权的、受信任的等)软件或代码的指令。然而,非安全可执行指令,即非安全(例如,未授权的、不受信任的、未验证的等)软件或代码的指令,不被允许对安全性套接字104进行编程。在一种实现中,安全和非安全可执行指令包括固件,诸如与耦接到控制器100的硬件组件相关联的固件、存储在控制器100的非易失性存储器存储设备中的固件等。
在各种替代实现中,安全和非安全可执行指令包括任意计算机或处理器可执行指令,无论它们存储在什么位置或者它们的来源为何(例如,存储器存储设备、嵌入式系统、外围设备、网络、因特网、云存储,便携式/可移动存储设备或介质等)。例如,仅允许安全可执行指令对安全性套接字104进行编程,而不管该安全可执行指令的来源。由于安全性套接字104确定许可,因此这防止非安全源更改与功能块202或模块102相关联的许可。
在一种实现中,拓扑100还可以包括互连寄存器,该互连寄存器被布置为:确定一个或多个资源模块102的其它访问许可。例如,模块102可以基于该模块102的预期用途、安装、资源类型等而具有特定许可(例如,模块102可以为了只读访问而已被硬连线等)。在这种情况下,基于关于模块102的互连信息,试图进行与该模块的许可相反的操作(例如,向只读资源模块102进行写操作)的任何应用在执行该操作时将是不成功的。
示例实现
如上面所讨论的,安全性监视器108可以控制对安全中断的处理等。图3是根据一种实现的、在功能块级上示出的示例中断传递机制300的框图。
在该实现中,如图3中所示,诸如模块N的模块102被划分成数量为“n”的功能块202。功能块202中的每一个功能块可以基于在该功能块202处发生的事件来生成中断。在一种实现中,中断被分隔成一般中断和安全中断。例如,由一般例程使用的功能块202可以生成一般中断,并且由安全例程使用的功能块202可以生成安全中断。
在该实现中,如图3中所示,就像在任何一般控制器方案中一样,或者根据特定处理器(例如,CPU 106)的一般中断处理,将一般中断引导到常规中断分发302。例如,可以将中断引导到CPU 106来进行处理。
在该实现中,如图3中所示,安全中断被聚合到安全模式中断累积器304等。所聚合的中断与一般中断分开处理,以便保护安全应用、例程、资源等的安全性。例如,如图3中所示,可以将所累积的安全中断转发到安全性监视器106。如上面所讨论的,安全性监视器108可以将所聚合的安全中断请求转发到CPU 106和/或中断控制器来进行对中断的处理。
如所示出的,在一种实现中,模块102中的每一个功能块202可以包括一般中断路径和安全中断路径,以便适应被分配为非安全功能块202或安全功能块202。相应地,在不同的场景中可以对每个功能块202进行不同的分配(非安全的或安全的),这取决于在CPU 106上执行的一个或多个应用。
图4A是示例中断处理方案的框图,该中断处理方案包括:使用专用GP中断控制器(GP intC)406来处理GP世界402中断,并且使用专用安全中断控制器(SEC intC)408来处理安全世界404中断。在该以及类似的方案中,资源的重复通常用于确保安全中断是隔离处理的。
相对地,图4B示出了上面参照图3概述的示例方案。例如,可以经由安全性监视器108来处理安全世界404中断,包括对安全中断进行聚合,并且然后将所聚合的中断信号转发到CPU 106等来进行处理。当该聚合的中断信号由CPU 106接收时,其可以进一步聚合到(例如,来自GP应用的)通用中断。以这种方式,CPU 106以及控制器100和其通用组件不知道所接收的中断的来源。相应地,安全中断和它们的一个或多个安全应用的安全性质得到了保护。
图5A是根据一种实现的示例安全性监视器108的框图。如图5A中所示,示例安全性监视器108可以包括嗅探器组件502,嗅探器组件502被布置为:通过在CPU 106上执行的应用,针对安全模式进入和退出序列(如图5B和图6-9中所示)来监视CPU 106。在额外的或替代的实现中,安全性监视器108可以被布置为:经由CPU总线与CPU 106对接和/或使用总线接口单元(BIU)504等经由互连(诸如L1、L2)与控制器100对接。
如上面所讨论的,在其它实现中,安全性监视器108可以被布置为:接收一个或多个安全中断并且输出聚合的安全模式中断。
图5B是根据一种实现示出非安全GP世界402与安全世界404之间的示例切换的状态图。示出了各种触发和结果;其中,如所讨论的,通过安全性监视器108断言或者解断言安全模式信号来促进从“世界”之一到“世界”中的另一个的切换。
图5B的图示示出了来自安全世界404中的应用或例程的安全中断发起向安全模式的切换,以便处理安全中断。例如,安全世界404中的应用可以在GP世界402激活时引起中断,从而需要切换到安全世界404来进行安全中断的安全处理。这将导致安全性监视器108断言安全模式信号。当在安全世界中时(例如,安全资源、模块102、存储器112等对于被授权的应用和/或例程来说是可访问的)对安全中断进行处理。安全中断处理的完成发起回到GP世界402的切换(包括从安全中断返回)。
如图5B中所示,如上面所讨论的,在GP世界402中处理GP中断,并且在安全世界404中处理安全中断。
图5B的图示还示出了来自GP世界402中的应用或例程的安全服务的受控的调用发起向安全世界404的切换,以便处理请求。例如,这也将导致安全性监视器108断言安全模式信号。安全服务的受控的调用可以包括:对来自模块102的资源的请求等。如上面所讨论的,在安全世界404内对请求进行处理,包括提供所请求的一个或多个服务,诸如来自一个或多个功能块202的模块102资源。安全服务的完成发起回到GP世界402的切换(包括从受控的调用返回)。
图6是根据一种实现示出非安全402与安全404世界之间的切换的示例阶段的进度图。例如,当GP世界应用602经由启动ROM接口604请求安全服务时,安全模式进入序列600可以被发起。在一种实现中,使用服务请求的必要细节来调用启动ROM调度器(BROM_DISPATCHER(SERVICE, PARAMETERS))。调度器的调用和随后的进入序列600的执行由安全性监视器108监视,安全性监视器108在进入序列600结束时断言安全模式信号。
如上面所提到的,在断言安全模式信号之前,安全性监视器108可以暂时禁用调试基础结构。在断言了安全模式信号的情况下,安全世界404是激活的,并且安全资源(例如,诸如模块102的安全功能块202)对于被授权的应用、例程等来说是可访问的。启动ROM可以向安全ROM 606(例如,使用被示为SROM_LOAD(START, LENGTH)的函数)传递服务请求,安全ROM 606执行所期望的请求或者将该请求传递到安全RAM 610中的安全应用。
在图6中所示的示例中,服务包括安全ROM 606处的解密服务612,例如,解密服务612包括:读取(例如,在NVROM/闪存608处的)加密的内容、对该内容进行解密、并且将经解密的内容写入安全RAM以用于I/O处理。该服务完成之后,SROM_LOAD()函数返回启动ROM604,并且安全模式退出序列614被发起。这包括:由安全性监视器108解断言安全模式信号并且启用调试基础结构。最后,启动ROM调度器将控制返回给调用该例程的GP软件602。
在示例实现中,例如,GP软件、启动ROM软件604和NVROM/闪存608可以加载到GP存储器114中,并且安全ROM软件606和安全RAM 610可以加载到安全存储器112中。
图7是根据一种实现示出用于非安全402与安全404世界之间的受控转换的技术的进度图,尤其详述了所涉及的中断。例如,当安全性监视器108检测到安全模式中断时,安全模式进入序列700可以被发起。在图7的示例场景中,安全中断事件由被指派了功能块202的安全世界404标记。安全中断事件由安全性监视器108接收,例如,安全性监视器108使用启动ROM 604中定义的向量来对应用向量寄存器702中的安全中断向量条目进行更新。
一旦已经安装了安全向量条目,就将原始事件传递到常规中断控制器704上,常规中断控制器704然后中断CPU 106并且导致新安装的处理程序执行。
在安全中断已经被处理之后,安全ROM 606中的安全应用将控制返回给启动ROM604,启动ROM 604然后执行安全模式退出序列706。这恢复了被中断的GP应用的上下文(包括原始向量表)。
图8是根据一种实现示出向非安全GP应用602指派功能块202的示例阶段的进度图。例如,当GP应用602使用启动ROM软件604经由启动ROM调度器做出针对资源的请求时,安全模式进入序列800可以被发起。调用专用安全ROM 606服务。
在示例实现中,安全ROM 606服务读取与所请求的资源模块202相关联的安全性套接字104,并且识别第一可用的功能块202。功能块202被分配并且指派给GP世界402。发起安全模式退出序列802,包括将功能块的ID返回给GP应用602。
图9是根据一种实现示出向安全GP应用610指派功能块202的示例阶段的进度图。例如,当GP应用602使用启动ROM软件604经由启动ROM调度器请求安全服务时,安全模式进入序列900可以被发起。调用专用安全ROM 606服务,其将控制(安全服务)转移到能够满足所请求的服务的安全应用610。例如,安全应用610可以使用硬件资源来满足GP应用602的安全服务请求。
在示例实现中,安全应用610可以针对功能块202的实例经由预定义的安全ROM606服务(安全服务)来直接请求安全服务,以便满足服务请求。如上面所讨论的,这样的服务将所分配的功能块202暂时指派(ASSIGN_SEC_FB())给安全世界404。在查询和关联到所分配的功能块202的模块102的安全性套接字104的更新之后,安全ROM 606向安全应用610返回所分配的功能块的ID。
在各种实现中,如图6-9中所示,与功能块202的指派有关的服务对于GP 402和安全404世界可以是不同的。相应地,公共指派服务可能发现其难以判定服务请求来自哪里。
如上面所讨论的,本文中参照实现描述的技术、组件和设备不限于图1-9的图示,并且在不脱离本公开的范围的情况下可以应用于其它控制器拓扑、设备和设计。在一些情况下,额外的或替代的组件、技术、序列或过程可以用于实现本文中描述的技术。此外,可以在各种组合中对组件和/或技术进行布置和/或组合,而得到相似或大致相同的结果。应当理解的是:控制器100可以作为独立的设备或者作为另一个系统的部分(例如,与其它组件、系统等相集成)来实现。在各种实现中,额外的或替代的组件可以用于实现所公开的技术和布置。
代表性过程
图10是根据一种实现示出用于提供动态资源共享的示例过程1000的流程图。过程1000描述了使用安全性监视器(例如,诸如安全性监视器108)来监视在控制器(例如,诸如控制器100)上执行的应用。可以将资源模块(例如,诸如模块102)的功能块(例如,诸如功能块202)并发地分配给非安全应用和安全应用,而不破坏安全应用和其被分配的资源的安全性并且没有硬件重复。参考图1-9对过程1000进行描述。
对过程进行描述的顺序并不旨在解释为限制,并且可以按照任意顺序对任意数量的所描述的过程块进行组合来实现该过程或者替代的过程。此外,在不脱离本文中描述的主题的精神和范围的情况下,可以从过程中删除单独块。此外,在不脱离本文中描述的主题的范围的情况下,可以用任意合适的材料或者其组合来实现过程。
根据一种实现,在框1002处,过程1000包括:从第一应用接收针对模块(例如,诸如模块102)的资源的第一请求。在该实现中,第一应用包括安全应用或非安全应用中的一个。
在框1004处,过程包括:将模块的第一功能块(例如,诸如功能块202)分配给第一应用。在一种实现中,第一功能块是模块的第一可用功能块。例如,在该实现中,模块包括多个功能块。在一种实现中,过程包括:将模块划分成多个功能块,使得模块的这些功能块是相似或相同的。在替代的实现中,功能块是基于其它所期望的特性(例如,优先级、性能等)来划分的。
在框1006处,过程包括:从第二应用接收针对模块的资源的第二请求。在一种实现中,第二应用包括安全应用或非安全应用中的另一个。例如,如果第一应用是非安全应用,则第二应用是安全应用,反之亦然。在替代的实现中,第二应用是第一应用。在另一种实现中,第二应用具有与第一应用相同的安全性(非安全或安全)。
在框1008处,过程包括:将模块的第二功能块分配给第二应用。在一个示例中,第二功能块是模块的下一个可用功能块。在一种实现中,第二应用与第一应用访问模块并发地访问模块。在该实现中,第一功能块与第二功能块通信地隔离。
在一种实现中,过程包括:将包装器关联到模块,其中,包装器被布置为:确定模块的所分配的功能块的访问许可。例如,访问许可基于功能块是分配给了安全应用还是分配给了非安全应用。在另一种实现中,过程包括:基于由模块的包装器确定的访问许可来允许或拒绝对功能块的总线访问。
在一种实现中,包装器可由安全可执行指令编程,并且不可由非安全可执行指令编程。例如,如果与硬件设备资源相关联的固件是安全的,那么该固件等可以对包装器进行编程。在替代的实现中,安全可执行指令可以包括其它形式的代码、软件、机器指令等。
在一种实现中,过程包括:基于由模块的包装器确定的访问许可,将模块的功能块指派给下列各项中的一项:安全世界、非安全世界、或者既不是安全世界也不是非安全世界。在另一种实现中,过程包括:当安全模式激活时,允许应用访问指派给安全世界的功能块。在进一步的实现中,过程包括:当安全模式没有激活时,拒绝应用访问指派给安全世界的功能块。
在一种实现中,过程包括:基于模块的预定的许可,经由互连结构来允许或阻断与模块的事务。例如,预定的许可(诸如只读访问等)可以是模块的硬连线或固定条件。
在一种实现中,过程包括:将模块的下一个可用功能块分配给下一个请求应用,而不管该下一个请求应用是安全应用还是非安全应用。在另一种实现中,下一个功能块与第一功能块和第二功能块中的至少一个通信地隔离,从而在这些功能块之间提供安全性。
在替代的实现中,在各种组合中可以将其它技术包括在过程1000中,并且仍然在本公开的范围之内。
结论
虽然已经以特定于结构特征和/或方法动作的语言对本公开的实现进行了描述,但应当理解的是:这些实现并不必然限于所描述的特定特征或动作。相反,这些特定特征和动作被公开作为实现示例设备和技术的代表性形式。

Claims (25)

1.一种安全性监视器,包括:
嗅探器组件,其被布置为:针对由在处理器上执行的应用进行的安全模式进入和退出序列来监视处理器并且确定在所述处理器上执行的应用是否请求对资源的安全访问;以及
输出组件,其被布置为:当所述应用是安全应用时,输出准予对共享的资源模块的安全功能块的安全访问的安全模式信号。
2.根据权利要求1所述的安全性监视器,还包括中断处理组件,其被布置为:当断言所述安全模式信号时,使用安全中断服务例程(ISR)处理程序对中断向量寄存器进行重新编程。
3.根据权利要求1所述的安全性监视器,其中,所述共享的资源模块被划分为安全功能块和非安全功能块,所述安全功能块被安全应用访问与所述非安全功能块被非安全应用访问是并发的。
4.根据权利要求3所述的安全性监视器,其中,所述安全功能块与所述非安全功能块是通信地隔离的。
5.根据权利要求1所述的安全性监视器,其中,当被授权的应用开始安全事务或者发起对安全资源的访问时,所述安全性监视器断言所述安全模式信号,并且当应用结束安全事务或者终止对安全资源的访问时,所述安全性监视器解断言所述安全模式信号。
6.根据权利要求1所述的安全性监视器,其中,所述安全性监视器被布置为:对安全中断请求进行聚合,并且将所聚合的安全中断请求转发到所述处理器和/或外部中断控制器。
7.根据权利要求1所述的安全性监视器,其中,所述安全性监视器被布置为:当所述安全模式信号被断言时禁用调试基础结构,并且当所述安全模式信号被解断言时启用所述调试基础结构。
8.一种控制器,包括:
处理器,其被布置为:并发地执行非安全应用和安全应用;
安全性监视器,其被布置为:针对由在处理器上执行的应用进行的安全模式进入和退出序列来监视所述处理器并且当所述安全应用请求对资源模块的访问时输出安全模式信号;
一个或多个资源模块,每个资源模块包括多个功能块,所述多个功能块中的一个或多个功能块被分配给所述非安全应用,并且所述多个功能块中的一个或多个其它功能块被并发地分配给所述安全应用;以及
一个或多个安全性套接字,其被布置为:确定所述一个或多个资源模块的所分配的功能块中的每一个的访问许可,所述访问许可基于功能块是被分配给所述非安全应用还是被分配给所述安全应用。
9.根据权利要求8所述的控制器,还包括分配模块,其被布置为:将所述一个或多个资源模块的所述多个功能块中的一个或多个功能块动态地分配给请求非安全应用和/或将所述一个或多个资源模块的所述多个功能块中的一个或多个其它功能块动态地分配给请求安全应用。
10.根据权利要求8所述的控制器,还包括一个或多个存储器存储设备,其包括安全存储器部分和非安全存储器部分。
11.根据权利要求10所述的控制器,其中,当所述安全性监视器断言所述安全模式信号时,向所述安全应用准予对所述安全存储器的访问,并且其中,当所述安全性监视器解断言所述安全模式信号时,对所述安全存储器的访问被拒绝。
12.根据权利要求8所述的控制器,还包括互连寄存器,其被布置为:确定所述一个或多个资源模块的其它访问许可。
13.根据权利要求8所述的控制器,其中,所述一个或多个资源模块包括下列各项中的一项:实时时钟、中断控制器、小键盘控制器和直接存储器存取(DMA)模块。
14.根据权利要求8所述的控制器,其中,允许安全可执行指令使用配置信息对所述安全性套接字进行编程,并且不允许非安全可执行指令对所述安全性套接字进行编程。
15.一种用于分配功能块的方法,包括:
从第一应用接收针对模块的资源的第一请求,所述第一应用是安全应用或非安全应用中的一个;
将所述模块的第一功能块分配给所述第一应用,所述模块包括多个功能块;
从第二应用接收针对所述模块的资源的第二请求,所述第二应用是所述安全应用或所述非安全应用中的另一个;以及
将所述模块的第二功能块分配给所述第二应用,所述第二应用访问所述模块与所述第一应用访问所述模块是并发的,所述第一功能块与所述第二功能块通信地隔离。
16.根据权利要求15所述的方法,还包括:将所述模块划分成所述多个功能块,使得所述模块的功能块是相似或相同的。
17.根据权利要求15所述的方法,还包括:将包装器关联到所述模块,所述包装器被布置为:确定所述模块的所分配的功能块的访问许可,所述访问许可基于功能块是被分配给安全应用还是被分配给非安全应用。
18.根据权利要求17所述的方法,还包括:基于由所述模块的所述包装器确定的访问许可来允许或拒绝对功能块的总线访问。
19.根据权利要求17所述的方法,其中,所述包装器可由安全可执行指令编程,并且不可由非安全可执行指令编程。
20.根据权利要求17所述的方法,还包括:基于由所述模块的所述包装器确定的访问许可,将所述模块的功能块指派给下列各项中的一项:安全世界、非安全世界、或者既不是所述安全世界也不是所述非安全世界。
21.根据权利要求20所述的方法,还包括:当安全模式激活时允许应用访问指派给所述安全世界的功能块,并且当所述安全模式没有激活时拒绝应用访问指派给所述安全世界的功能块。
22.根据权利要求17所述的方法,还包括:基于所述模块的预定的许可,经由互连结构来允许或阻断与所述模块的事务。
23.根据权利要求15所述的方法,还包括:将所述模块的下一个可用功能块分配给下一个请求应用,不管所述下一个请求应用是安全应用还是非安全应用。
24.根据权利要求23所述的方法,其中,所述下一个功能块与所述第一功能块和所述第二功能块中的至少一个通信地隔离。
25.一种控制器设备,其包括处理器以及具有存储在其上的处理器可执行指令的一个或多个存储器存储设备,当由所述处理器执行时,所述处理器可执行指令指引所述处理器执行包括以下的操作:
从第一应用接收针对模块的资源的第一请求,所述第一应用是安全应用或非安全应用中的一个;
将所述模块的第一功能块分配给所述第一应用,所述模块包括多个功能块;
从第二应用接收针对所述模块的资源的第二请求,所述第二应用是所述安全应用或所述非安全应用中的另一个;以及
将所述模块的第二功能块分配给所述第二应用,所述第二应用访问所述模块与所述第一应用访问所述模块是并发的,所述第一功能块与所述第二功能块通信地隔离。
CN201410070908.XA 2013-03-01 2014-02-28 动态资源共享 Active CN104021037B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/783100 2013-03-01
US13/783,100 2013-03-01
US13/783,100 US9536075B2 (en) 2013-03-01 2013-03-01 Dynamic resource sharing

Publications (2)

Publication Number Publication Date
CN104021037A CN104021037A (zh) 2014-09-03
CN104021037B true CN104021037B (zh) 2018-11-06

Family

ID=51418905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410070908.XA Active CN104021037B (zh) 2013-03-01 2014-02-28 动态资源共享

Country Status (3)

Country Link
US (1) US9536075B2 (zh)
CN (1) CN104021037B (zh)
DE (1) DE102014002181B4 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9971711B2 (en) * 2014-12-25 2018-05-15 Intel Corporation Tightly-coupled distributed uncore coherent fabric
CN105224403B (zh) * 2015-09-17 2018-09-28 华为技术有限公司 一种中断处理方法及装置
KR102429906B1 (ko) * 2015-10-13 2022-08-05 삼성전자주식회사 스토리지 장치, 상기 스토리지 장치와 통신하는 호스트 및 상기 스토리지 장치를 포함하는 전자 장치
KR102411920B1 (ko) * 2017-11-08 2022-06-22 삼성전자주식회사 전자 장치 및 그 제어 방법
US11520493B2 (en) * 2019-07-23 2022-12-06 Arm Technology (China) Co. LTD Allocation policy for shared resource accessible in both secure and less secure domains
CN114385528A (zh) * 2020-10-16 2022-04-22 瑞昱半导体股份有限公司 直接记忆体存取控制器、使用其之电子装置以及操作其的方法
CN114385529A (zh) 2020-10-16 2022-04-22 瑞昱半导体股份有限公司 直接记忆体存取控制器、使用其之电子装置以及操作其的方法
CN113486355B (zh) * 2021-06-29 2023-03-14 北京紫光展锐通信技术有限公司 一种信息保存装置、方法、通信装置、芯片及其模组设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103518A (zh) * 2011-02-23 2011-06-22 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法
CN102404385A (zh) * 2011-10-25 2012-04-04 华中科技大学 面向高性能计算的虚拟集群部署系统和部署方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127579B2 (en) * 2002-03-26 2006-10-24 Intel Corporation Hardened extended firmware interface framework
GB2402785B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Processor switching between secure and non-secure modes
GB2396713B (en) * 2002-11-18 2005-09-14 Advanced Risc Mach Ltd Apparatus and method for controlling access to a memory unit
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
US8634982B2 (en) 2009-08-19 2014-01-21 Raytheon Company System and method for resource allocation and management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103518A (zh) * 2011-02-23 2011-06-22 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法
CN102404385A (zh) * 2011-10-25 2012-04-04 华中科技大学 面向高性能计算的虚拟集群部署系统和部署方法

Also Published As

Publication number Publication date
DE102014002181A1 (de) 2014-09-18
CN104021037A (zh) 2014-09-03
DE102014002181B4 (de) 2020-10-01
US9536075B2 (en) 2017-01-03
US20140250540A1 (en) 2014-09-04

Similar Documents

Publication Publication Date Title
CN104021037B (zh) 动态资源共享
CN105574440B (zh) 利用在安全域中执行的应用的硬件保护数据处理系统和方法
EP3975476A1 (en) Trust-based orchestration of an edge node
CN109726549A (zh) 用于采用处理器沙箱支持的不可信代码执行的技术
JP4940460B2 (ja) 処理システム、方法およびデバイス
CN106462508A (zh) 访问控制与代码调度
CN104813331B (zh) 用于建立客户级网络应用程序运行时控制的计算设备及方法
CN107077428A (zh) 保护应用秘密免受操作系统攻击
CN107924441A (zh) 具有虚拟机管理器的系统
CN106462708A (zh) 认证变量的管理
CN101874245B (zh) 用于从处理器向外围设备授予安全工作模式访问特权的方法和设备
CN108140086A (zh) 通过一组互连可编程设备安全执行虚拟机的方法和系统
DE112020000792T5 (de) Durch grafikverarbeitungseinheit beschleunigte vertrauenswürdige ausführungsumgebung
CN104221027A (zh) 硬件和软件关联和认证
CN103547997A (zh) 处理器模式锁定
CN110175457B (zh) 一种双体系结构可信操作系统及方法
CN103201719A (zh) 虚拟化计算环境中的设备仿真
WO2020178089A1 (en) Method and configurable hardware module for monitoring a hardware-application
CN109446847B (zh) 双系统外设资源的配置方法、终端设备及存储介质
CN109547450A (zh) 运行安全执行域的方法、装置、电子设备及计算机介质
TWI603265B (zh) 積體電路射頻
CN106796666B (zh) 机器人控制装置、方法及系统
CN111414625B (zh) 支持主动可信能力的计算机可信软件栈实现方法及系统
CN108241801A (zh) 处理系统调用的方法和装置
KR101233664B1 (ko) 멀티 코어 시스템에서 메모리 셔플링을 이용한 메모리 해킹 방지 방법 및 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant