CN105046163B - 保护嵌入式管理程序系统中的重要数据结构 - Google Patents

保护嵌入式管理程序系统中的重要数据结构 Download PDF

Info

Publication number
CN105046163B
CN105046163B CN201510220085.9A CN201510220085A CN105046163B CN 105046163 B CN105046163 B CN 105046163B CN 201510220085 A CN201510220085 A CN 201510220085A CN 105046163 B CN105046163 B CN 105046163B
Authority
CN
China
Prior art keywords
operating system
management program
processor
access
resource
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
CN201510220085.9A
Other languages
English (en)
Other versions
CN105046163A (zh
Inventor
斯特凡娜·罗杰斯
沙尚克·谢卡尔
弗拉维乌·多林·图雷安
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies General IP Singapore Pte Ltd
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 Avago Technologies General IP Singapore Pte Ltd filed Critical Avago Technologies General IP Singapore Pte Ltd
Publication of CN105046163A publication Critical patent/CN105046163A/zh
Application granted granted Critical
Publication of CN105046163B publication Critical patent/CN105046163B/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
    • 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
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test 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)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及保护嵌入式管理程序系统中的重要数据结构。提供了一种保护运行在计算装置上的管理程序和操作系统的系统和方法。将加密的管理程序上传至硬件芯片。在运行之前,使用安全的安全处理器解密管理程序并将其存储到片上存储器中。当硬件芯片上的处理器运行管理程序时,在运行过程中,至少一个片上部件连续认证管理程序。管理程序为处理器配置有与操作系统相关的访问权限,其中,访问权限确定操作系统对至少一个资源的访问。随后当在处理器上运行操作系统时,事务过滤器使用与操作系统相关的访问权限来实时监控操作系统对至少一个资源的访问。

Description

保护嵌入式管理程序系统中的重要数据结构
相关申请的交叉引用
本申请要求于2014年5月2日提交的美国临时申请号61/987,732以及于2014年10月31日提交的美国非临时申请号14/530.020的权益,通过引用将其全部内容结合于此。
技术领域
本申请整体涉及计算机安全,并且更具体地涉及操作系统可访问的计算装置上的管理程序安全和资源安全。
背景技术
当在计算装置内共存多个操作系统时,需要管理程序系统为操作系统分配资源。然而,当管理程序系统受到损害时,其可能将资源分配至操作系统,不然操作系统将不可访问这些资源。
存在很多管理程序系统受到损害的方式。例如,合法的管理程序可能被损坏的管理程序替代。管理程序访问的存储表可能被损坏的存储表替代。可能以管理程序为操作系统错误地配置沙箱环境(sandbox environment)的方式修改合法的管理程序并且管理程序未能防御计算装置的关键资源被操作系统访问。而且,存储堆栈过载或通过管理程序进行的不当的输入输出处理可使恶意操作系统进入管理程序模式并访问重要资源。
为了确保管理程序系统保持不被破坏,管理程序系统需要安全保护。
发明内容
本发明提供了一种片上系统(system on a chip),包括:管理程序(hypervisor),被配置为将与操作系统相关的访问权限安装于运行在芯片上的处理器上,其中,访问权限确定操作系统对至少一个资源的访问;以及事务过滤器(transaction filter),被配置为当在处理器上运行操作系统时,使用与操作系统相关的访问权限实时地防止操作系统对至少一个资源的未授权访问。
进一步地,该系统包括安全处理器,安全处理器被配置为:从片外存储器(off-chip memory)接收访问权限;解密访问权限;并且将访问权限存储在管理程序和事务过滤器中。
其中,安全处理器进一步被配置为在将访问权限存储在管理程序和事务过滤器中之前,解密访问权限。
其中,当访问权限存储在片外存储器中时,使用数字签名加密访问权限。
其中,管理程序进一步被配置为将操作系统加载至处理器,并且系统进一步包括:操作系统寄存器,被配置为存储操作系统的操作系统标识符,并且其中,管理程序进一步被配置为在处理器运行操作系统之前将操作系统标识符存储在操作系统寄存器中。
其中,事务过滤器进一步被配置为:从操作系统寄存器检索操作系统标识符;并且当在处理器上运行操作系统时,与访问权限结合地使用操作系统标识符来监控操作系统对至少一个资源的访问。
其中,至少一个资源包括位于计算装置的片外存储器上的管理程序可访问的存储表。
其中,为了监控操作系统,事务过滤器进一步被配置为监控由操作系统传输到总线的指令,总线连接到至少一个资源。
其中,事务过滤器进一步被配置为当监控确定操作系统不具有对至少一个资源的访问权时,阻止操作系统对该至少一个资源的访问。
其中,处理器进一步被配置为存储操作系统的操作系统标识符;并且其中,事务过滤器进一步被配置为:从处理器检索操作系统标识符;并且当在处理器上运行操作系统时,与访问权限结合使用操作系统标识符来监控操作系统对至少一个资源的访问。
根据本发明的另一实施方式,提供了一种片上系统,包括:片上存储器,被配置为存储管理程序;处理器,被配置为运行来自片上存储器的管理程序;以及至少一个片上部件,被配置为当在处理器运行管理程序时连续认证管理程序。
进一步地,该系统包括片外存储器,片外存储器被配置为在管理程序上载到芯片之前存储管理程序,其中,管理程序以加密的形式存储在片外存储器中。
进一步地,该系统包括安全处理器,安全处理器被配置为在管理程序存储在芯片的片上存储器中之前,认证以加密形式存储在片外存储器中的管理程序。
其中,至少一个片上部件包括指令检验器(instruction checker),指令检验器被配置为当在处理器上运行管理程序时验证管理程序从片上存储器中的指定地址运行。
其中,至少一个片上部件进一步包括后台检验器(background checker,背景检验器),后台检验器被配置为当在处理器上运行管理程序时对照与管理程序相关的签名的值连续验证与管理程序相关的代码摘要(code digest),其中,在解密管理程序时确定签名的值。
其中,至少一个片上部件进一步包括写保护器,写保护器被配置为防止管理程序以外的进程写入片外存储器中的管理程序页表。
其中,写保护器进一步被配置为允许处理器对片外存储器中的管理程序页表的读取访问。
根据本发明的又一实施方式,提供了一种方法,包括:将管理程序从片外存储器上载至芯片,其中,在管理程序上载至芯片之前对管理程序进行加密;使用安全处理器对管理程序进行解密;在运行管理程序之前,基于解密将管理程序存储到片上存储器中;运行来自片上存储器的管理程序;以及在运行过程中,使用芯片上的至少一个硬件部件连续认证管理程序。
其中,认证进一步包括:使用至少一个片上硬件部件验证管理程序从片上存储器中的指定地址运行。
其中,解密进一步包括确定与管理程序相关的签名的值;并且其中,认证进一步包括使用至少一个片上硬件部件对照与管理程序相关的代码摘要验证所述值。
附图说明
结合于本文中并形成本说明书的一部分的附图示出了实施方式并与说明书一起进一步用于解释实施方式的原理并使相关领域技术人员能够制作和使用在本文中所描述的实施方式。
图1是根据实施方式的管理程序系统为操作系统分配资源的框图。
图2是根据实施方式的安全管理程序系统的框图。
图3是根据实施方式的用于保护管理程序系统的方法的流程图。
图4是根据实施方式的用于在运行期间认证管理程序的方法的流程图。
图5是根据实施方式的运行操作系统的管理程序系统的框图。
图6是根据实施方式的运行操作系统的管理程序系统的框图。
图7是根据实施方式的初始化操作系统的认证机制的方法的流程图。
图8是根据实施方式的当在处理器上运行操作系统时实时地认证操作系统的方法的流程图。
图9示出了其中能够实施实施方式或其一部分的示例性计算机系统。
现将参照附图描述实施方式。在附图中,类似的附图标记可表示相同的或功能相似的元件。此外,参考标号最左边的数字可识别参考标号首次出现的附图。
具体实施方式
在管理程序系统中,管理程序层是软件安全保护的根本。例如,当存在多个不受信任的进程(process,程序)时,诸如,操作系统,管理程序系统在计算装置内配置沙箱环境,在该环境下,不受信任的操作系统运行但不能获得对重要系统资源的访问权。
图1是根据实施方式的管理程序系统为操作系统分配资源的框图100。框图100中的管理程序系统102包括管理程序104。在实施方式中,管理程序104是管理多个操作系统106A-106C的软件模块。例如,管理程序104为操作系统106A-106C分配计算装置的处理器时间、易失和非易失性存储器中的表、以及其他资源。在图9中详细地论述示例性处理器、易失和非易失性存储器。
例如,假设操作系统106A-106B是不受信任的操作系统。当管理程序104为操作系统106A-106B分配资源时,管理程序104为操作系统106A-106B创建沙箱环境,使得操作系统106A-106B能够访问计算装置上不重要的系统资源108,但不能访问重要的系统资源110。另一方面,假设操作系统106C是受信任的操作系统。在这种情况下,管理程序104为操作系统106C创建允许操作系统106C访问不重要的系统资源108和一些或全部重要的系统资源110的沙箱环境。
举几个例子,在实施方式中,不重要的系统资源108是计算装置内的不保持信息或不包括对计算装置的性能重要的硬件的硬件和软件资源(其不是用户特定的或者在有或者没有认证的情况下可由运行在计算装置内的不同部件访问)。
举几个例子,在实施方式中,重要的系统资源110是计算装置内的执行安全功能、保持影响计算装置的性能的信息的硬件和软件资源,其是用户特定的和/或当运行在计算装置内的部件被授予对每个、一些或所有重要系统资源110的访问权限时才可由部件访问。
为了保证管理程序系统102为操作系统106A-106C适当地分配资源,使用硬件和软件策略保护管理程序系统102。图2是根据实施方式的安全管理程序系统200的框图。安全管理程序系统200包括片上部件和片外部件。片上部件202是集成电路内的用作单个单元并可包括处理器和存储器的部件。在实施方式中,集成电路可以是中央处理器(“CPU”)。片外部件204是位于计算装置的集成电路外部的部件。例如,片外部件204可包括存储器,该存储器存储可被转移到集成电路上并且然后使用片上部件202来执行的数据。
在实施方式中,片上部件202包括处理器206和片上存储器208。处理器206执行计算指令并在图9中详细地描述。片上存储器208可以是易失存储器,诸如,静态随机存取存储器(“SRAM”)。在实施方式中,为了确保安全,当在计算装置上运行管理程序104时,管理程序104使用包括片上处理器206和片上存储器208的片上部件202来运行。
在实施方式中,片上部件202还包括安全处理器210。安全处理器210是在芯片上运行这些资源之前认证并解密资源(诸如,管理程序104)的辅助处理器。为了进行认证,安全处理器210包括支持认证算法、加密/解密算法、随机数生成的各种模块,并确保安全密钥和数据存储。以这种方式,在安全处理器210的安全边界内解密和认证敏感数据(sensitivedata)。
管理程序系统200还包括片外部件204,诸如,片外非易失性存储器212和片外易失性存储器214。在图9中详细地描述了非易失性存储器212和易失性存储器214的实例。在实施方式中,管理程序104可存储在片外部件204的其中一个(诸如,非易失性存储器212或易失性存储器214)中(未示出)。在一些实施方式中,当使用非易失性存储器212或易失性存储器214来存储时,可对管理程序104进行加密和/或使用数字签名215进行标记。
在实施方式中,在运行之前,当将管理程序104上载至片上存储器208时,可使用如上文讨论的安全处理器210认证管理程序104。为了认证管理程序104,安全处理器210包括解密模块216和认证模块218。
在实施方式中,解密模块216为当存储在片外部件204上时可加密的管理程序104进行解密。例如,解密模块216识别用于加密管理程序104的加密类型,诸如,对称密钥加密、公共加密等,并使用对应的解密类型解密管理程序104。例如,解密模块216可将解密凭证(诸如,与用于加密管理程序104的凭证对应的密钥)存储在安全处理器210的边界(boundary)内。
在实施方式中,认证模块218使用认证机制(诸如,密码认证、生物特征认证(biometric authentication)等)来认证管理程序104
在实施方式中,管理程序系统200还包括指令检验器(checker)220。指令检验器220可以是作为片上部件202之一的基于硬件的指令检验器。指令检验器220核对从片上存储器208的特定存储范围管理程序104。例如,通过核对运行管理程序104的存储范围,指令检验器220确保其他进程(诸如,操作系统106A-106C)未在另一存储位置安装欺诈管理程序并随后使欺诈管理程序代替管理程序104来运行,或者可替代地利用片上存储器208中的可具有不同存储范围的欺诈管理程序代替管理程序104。
在实施方式中,当在处理器206上运行管理程序104时,管理程序页表221是片外存储器(诸如,由管理程序104发起并访问的易失性存储器214)中的存储表。管理程序页表221也可存储与操作系统106A-106C相关的地址和其他凭证(其指示操作系统106A-106C被授权访问来自不重要的系统资源108和重要的系统资源110的哪些资源)。在另一实施方式中,易失性存储器214也可是片上部件202的一部分(未示出)。
在另一实施方式中,指令检验器220还确保从片上存储器208中的存储管理程序104的存储范围读取管理程序104。为了确保从与管理程序104相关的存储地址读取管理程序104,管理程序104在片上存储器208中设置管理程序位(未示出)。随后指令检验器220核对是否在片上存储器208中设置管理程序位。一组管理程序位表示处理器206正运行管理程序104,并且因此片上存储器208中的存储管理程序206的存储地址对于处理器206是可访问的。然而,当指令检验器220确定未设置管理程序位时,处理器206不能访问片上存储器208中的存储管理程序104的存储地址。以这种方式,指令检验器220防止操作系统106A-106C之一改变片上存储器中的管理程序104的地址并将另一管理程序安装在片上存储器208中。
在实施方式中,管理程序系统200还包括后台硬件检验器222。后台硬件检验器222可以是片上部件202之一并可使用硬件来实现。后台硬件检验器222与管理程序104一起连续地运行,如通过图2的箭头循环指示的。在运行过程中,在使用安全处理器210的认证/解密过程中,后台硬件检验器222对照从签名215恢复的值核对管理程序代码摘要(digest)。例如,来自签名215的值可存储在安全处理器210内。为了继续在处理器206上运行管理程序104,存储在安全处理器210中并通过写保护器224确定的签名215的值必须匹配。当签名不匹配时,指示管理程序104被破坏或者另一进程(诸如,操作系统106A-106C之一)代替管理程序104运行管理程序特定代码,在这种情况下,处理器206可终止管理程序104的运行。
在实施方式中,管理程序系统200还包括写保护器224。写保护器224确保除了管理程序104和操作系统106A-106C以外的软件和硬件部件(共同称作外围设备226)不具有对管理程序页表221的写入访问权。在一些实施方式中,外围设备226和操作系统106A-106C可具有读取访问权。
在实施方式中,安全处理器210激活写保护器224并向写保护器224传输允许写保护器224将管理程序104与在包括在管理程序系统200中的计算装置内运行的其他部件区分开的信息。
图3是根据实施方式的用于确保管理程序系统的方法300的流程图。
在操作302中,将管理程序上载至芯片内部的存储器。例如,将管理程序104上载并存储在片上存储器208中。如上所述,在上载至片上存储器208之前,可使用安全处理器210解密并认证管理程序104。
在操作304中,在芯片上运行管理程序。例如,使用片上处理器206运行管理程序104,同时管理程序104存储在片上存储器208中。
在操作306中,在运行过程中持续认证管理程序。例如,如在流程图400中所论述的,各种片上部件202认证管理程序104,与在操作304期间运行管理程序104并行。
图4是根据实施方式的用于认证管理程序的方法的流程图400。流程图400中的操作不必按顺序并且可彼此并行执行并与操作304并行。
在操作402,保护管理程序可访问的存储表免于修改。在一个实施方式中,写保护器224使用与管理程序104相关的数字签名215以将管理程序104与在存储管理程序104的芯片内运行的其他部件区分开,并且确保只有管理程序104能够修改,例如,写入管理程序页表221。
在操作404中,认证对管理程序代码的运行。例如,当使用处理器206运行管理程序104时,指令检验器220验证管理程序位设置在片上存储器208内。当设置管理程序位时,指令检验器220验证管理程序104从片上存储器208内的存储管理程序104的地址范围中执行。
在操作406中,验证管理程序的代码摘要。例如,在管理程序104运行时,对照在操作302中从管理程序104的签名恢复的值核对管理程序的代码摘要。在一个实施方式中,该验证使用后台硬件检验器222来确保在处理器206上运行认证的管理程序。
除了确保管理程序系统200内的管理程序104以外,可对操作系统106A-106C实施附加硬件冗余校验。这些冗余校验确保管理程序104配置的操作系统106A-106C在芯片访问资源(其与授予操作系统106A-106C的每一个的访问权限相关)上运行。图5是根据实施方式的运行操作系统的管理程序系统500的框图。
在实施方式中,管理程序系统500还包括片外部件204,诸如,非易失性存储器212、外围设备1…N以及易失性存储器214。如上所述,非易失性存储器212可以是任何类型的非易失性存储器(包括闪存驱动)并将在图9中详细论述。外围设备1…N可以是计算装置内的由操作系统106A-106C可访问或控制的部件和/或资源,并还包括重要的系统资源110和不重要的系统资源108(未示出)。
在实施方式中,非易失性存储器212存储在计算装置上运行的操作系统106A-106C的访问权限502。例如,访问权限502可存储允许操作系统106A-106C获得对特定外围设备1-N、重要系统资源110和不重要的系统资源108的访问权的信息。在实施方式中,可使用各种加密方法加密访问权限502。在另一实施方式中,也可使用数字签名(诸如,签名504)标记访问权限502。也可将签名504与访问权限502一起存储或与访问权限502分开存储。可将访问权限502存储在使用软件程序设计语言定义的数据结构中。
在实施方式中,在开机时间(boot time)或在操作系统106A-106C开始在芯片上运行之前的另一时间,将与操作系统106A-106C相关的访问权限502从非易失性存储器212上载至安全处理器210。如上所述,以与管理程序104的解密和验证类似的方式,安全处理器210使用解密模块216对加密的访问权限502进行解密,并且使用认证模块218来认证与访问权限502相关的签名504。在实施方式中,也可使用芯片内的硬件部件(诸如,片上存储器和处理器206(未示出))来执行解密和认证功能。
一旦安全处理器210解密并认证了访问权限502,则被解密和认证的访问权限502存储在管理程序104内和事务过滤器506内。在实施方式中,事务过滤器506是使用访问权限502来执行操作系统106A-106C对外围设备1-N、不重要的系统资源108和重要的系统资源110的访问的片上硬件部件。
在实施方式中,事务过滤器506使用安全处理器210来配置并存储解密的访问权限502。在一些实施方式中,为了维持访问权限502的完整性,可仅使用安全处理器210配置事务过滤器506。当管理程序104将操作系统106A-106C配置为在计算装置的片上处理器206上执行时,管理程序104使用与操作系统106A-106C的每一个相关的访问权限502以配置操作系统106A-106C的每一个对外围设备1-N、不重要的系统资源108和重要的系统资源110的访问权限。例如,管理程序104配置处理器206内的地址变换硬件508和易失性存储器214中的管理程序页表221以匹配操作系统106A-106C相应访问权限502。例如,如果访问权限502中的与操作系统106A相关的访问权限指示操作系统106A不能访问外围设备1,则管理程序104确保操作系统106A不能获得对外围设备1的访问权。在实施方式中,图5还包括操作系统寄存器510。操作系统寄存器510存储目前在处理器206上运行的操作系统106A-106C之一的操作系统标识符。例如,当管理程序104选择操作系统106A-106C之一在CPU 506上运行时,管理程序104将操作系统标识符存储在操作系统寄存器510中。
一旦在处理器206上运行操作系统106A-106C之一(诸如,操作系统106A)时,事务过滤器506使用由安全处理器210提供的访问权限512和由操作系统寄存器510提供的操作系统标识符来确定操作系统106A在处理器206上运行以及与操作系统106A相关的访问权限512。事务过滤器506然后使用操作系统寄存器510和与操作系统106A相关的访问权限512来侦听(snoop)总线。总线512向外围设备1-N和易失性存储器214传输数据和地址指令(address instruction)。例如,总线512可允许访问存储在易失性存储器214中的管理程序104的管理程序页表221。当事务过滤器506确定操作系统106A不具有对一个或多个外围设备1-N的访问权或者正试图生成读取或写入与和操作系统106A相关的访问权限512不兼容的资源的数据的指令时,事务过滤器506可实时阻止操作系统106A做出交易并防止发生交易。在另一实施方式中,事务过滤器506也可警告安全处理器210操作系统106A正试图进行未授权的交易并使安全处理器210针对操作系统106A采取进一步的行动。在一个实例中,安全处理器210可终止或使处理器206终止操作系统106A并防止未授权的资源访问。这样,如果管理程序104或操作系统106A受到损害,则事务过滤器506防止损害的操作系统106A对外围设备1-N和易失性存储器214的访问。
在另一实施方式中,处理器206可以是多核处理器。多核处理器具有多个独立的核,在一个或多个核上可同时运行多个操作系统(诸如,操作系统106A-106C)。这意味着每个核可与特定操作系统相关。在实施方式中,操作系统寄存器510可被实施为包括可用作查询表(未示出)的多个寄存器。查询表使多核处理器内的核与特定操作系统相关。例如,具有核标识符=1的核可与特定操作系统标识符相关,诸如,操作系统A的标识符。可替换地,代替多个寄存器,查询表也可存储在片上存储器208中。
在多核实施方式中,当交易到达事务过滤器506时,交易可与核标识符相关联。事务过滤器506随后使用查询表来将核标识符映射至与核相关的操作系统标识符。基于操作系统标识符,事务过滤器506随后可识别请求交易的操作系统。例如,与核标识符=1相关的交易可映射至操作系统A的标识符。一旦事务过滤器506确定交易与操作系统A相关,则事务过滤器506可使用访问权限502的与操作系统A相关的访问权限来确定是否准许交易对一个或多个外围设备1-N的访问。
图6是根据实施方式的运行操作系统的管理程序系统600的框图。管理程序系统600是管理程序系统500的替代实施方式。在管理程序系统600中,代替操作系统寄存器510,处理器206跟踪运行操作系统的操作系统标识符。在管理程序系统600中,事务过滤器506从处理器206接收操作系统标识符。
图7描绘了根据实施方式的初始化操作系统的认证机制的方法的流程图700。
在操作702中,接收加密的访问权限。例如,安全处理器210接收存储在非易失性存储器212(诸如,闪存或另一片外存储器)中的加密访问权限502。如讨论的,访问权限502存储允许操作系统106A-106C获得对外围设备1-N、重要系统资源110和不重要系统资源108的访问权限的信息。
在操作704中,安全地解密访问权限。例如,安全处理器210使用解密模块216和/或认证模块218(取决于加密的类型)来解密安全处理器的安全边界内的访问权限502。如果安全处理器210不能解密访问权限512,则流程结束(未示出)。
在操作706中,存储访问权限。例如,安全处理器210将解密的访问权限512存储在管理程序104和事务过滤器506内。
在操作708中,运行操作系统的处理器被配置为根据访问权限运行操作系统。例如,对于操作系统106A-106C的每一个,管理程序104配置处理器206内的地址变换硬件(address translation hardware)508和管理程序页表221以匹配操作系统106A-106C的每一个的访问权限512。这样,当处理器206运行操作系统106A-106C之一时,处理器206根据相应的访问权限512运行操作系统106A-106C之一。例如,如果访问权限502中的与操作系统106A相关的访问权限指示操作系统106A不能访问外围设备1,则管理程序104确保操作系统106A不能获得对外围设备1的访问权。
在操作710中,操作系统在管理程序系统内执行。根据实施方式,在流程图800中包括操作710的细节,其中,当由处理器206运行时认证示例性操作系统106A。
在操作802中,管理程序加载操作系统以在处理器上运行。例如,管理程序104在处理器206上加载操作系统106A。加载的同时,管理程序104还将与操作系统106A相关的操作系统标识符存储在操作系统寄存器510中。
在操作804中,事务过滤器实施控制操作系统对资源的访问。例如,事务过滤器506使用由安全处理器210提供的操作系统106A的访问权限512和存储在操作系统寄存器510中的操作系统标识符来帧听总线512。如上所述,总线512向外围设备1-N和易失性存储器214传输数据和地址指令。当事务过滤器506确定操作系统106A不具有对一个或多个外围设备1-N的访问权或者正试图生成读取或写入与和运行操作系统相关的访问权限512不兼容的资源的数据的指令时,事务过滤器506阻止操作系统106访问资源。
可通过软件、固件、或它们的组合实现实施方式的各个方面。图9示出了示例计算机系统900,其中,实施方式或者其一部分可作为计算机可读代码来实施。就该示例性计算机系统900而言描述各种实施方式。在阅读本说明书之后,如何使用其他计算机系统和/或计算机架构来实现实施方式对相关领域技术人员将是显而易见的。
计算机系统900可以是能够执行在本文中所描述的功能的任何商业可获得的和熟知的计算机,诸如,可从国际商用电子计算机、苹果、美国Sun司、惠普、戴尔、美国COMPAQ电脑公司、Digital、Cray等购买到的计算机。
计算机900包括一个或多个处理器(也被称为中央处理器、或CPU),诸如,处理器906。可将处理器906连接至通信总线904。
计算机900还包括主要或主存储器908,诸如,随机存取存储器(RAM)、静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。主存储器908已将控制逻辑928A(计算机软件)和数据存储在其中。在实施方式中,只要向计算机系统900施加电力,主存储器908在其只维持数据时是易失性存储器。
计算机900还包括一个或多个辅助存储设备910。第二存储设备910包括例如硬盘驱动器912和/或可移除存储设备或驱动器914,以及其他类型的存储设备,诸如,存储卡和记忆棒。可移除存储驱动器914表示软盘驱动器、磁带驱动器、光盘驱动器、光盘存储设备、磁带备份等。在实施方式中,当向计算机系统900施加电力或不施加电力时,当辅助存储设备910保留数据时,辅助存储设备910是非易失性存储器的实例。
可移除存储驱动器914与可移除存储单元916交互。可移除存储单元916包括将计算机软件928B(控制逻辑)和/或数据存储在其中的计算机可用的或可读的存储介质924A。可移除存储单元916表示软盘、磁带、光盘、DVD、光存储盘或任何其他的计算机数据存储设备。可移除存储驱动器914以熟知的方式对可移除存储器单元916进行读取和/或写入。
计算机900还包括输入/输出/显示设备922,诸如,监控器、键盘、定点设备等。
计算机900进一步包括通信或网络接口918。网络接口918使计算机900能够与远程设备通信。例如,网络接口918允许计算机900通过通信网络或介质924B(表示计算机可用或可读介质的形式)(诸如,LAN、WAN、互联网等)通信。网络接口918可经由有线或无线连接与远程站点或网络连接。
可经由通信介质924B向和从计算机900传输控制逻辑928C。更具体地,计算机900可经由通信介质924B接收和传输利用控制逻辑930调制的载波(电磁信号)。
在本文中,包括计算机可用或可读介质(其中存储控制逻辑(软件))的任何设备或产品被称作计算机程序产品或程序存储设备。这包括但不限于计算机900、主存储器908、辅助存储设备910、可移除存储单元916和利用控制逻辑930调制的载波。这种其中存储有控制逻辑的计算机程序产品表现实施方式,其中,当由一个或多个数据处理装置执行该控制逻辑时,该控制逻辑使该数据处理装置按照本文中描述的来运行。
在本文中论述的实施方式可利用除了本文描述的那些之外的软件、硬件、和/或操作系统实施来工作。可使用适于执行本文中所描述的功能的任何软件、硬件、以及操作系统实施。
尽管上面描述了各种实施方式,但是应当理解,它们只是作为示例而非作为限制呈现。对于相关领域技术人员将显而易见的是,在不背离所论述的实施方式的实质和范围的条件下,可在其中对形式和细节做出各种改变。因此,实施方式的宽度及范围不应受任何上述示例性实施方式的限制,而是仅根据所附权利要求及其等同物来限定。

Claims (10)

1.一种片上系统,包括:
安全处理器,被配置为从片外存储器接收与操作系统相关的访问权限,并将所述访问权限存储在管理程序和事务过滤器中;
所述管理程序,被配置为将所述访问权限安装于运行在芯片上的处理器上,其中,所述访问权限包括用于确定所述操作系统对至少一个资源的访问的信息;以及
所述事务过滤器,被配置为当在所述处理器上运行所述操作系统时,使用与所述操作系统相关的所述访问权限实时地防止所述操作系统对所述至少一个资源的未授权访问。
2.根据权利要求l所述的系统,其中,所述安全处理器进一步被配置为:
解密所述访问权限。
3.根据权利要求2所述的系统,其中,所述安全处理器进一步被配置为在将所述访问权限存储在所述管理程序和所述事务过滤器中之前,解密所述访问权限。
4.根据权利要求1所述的系统,其中,所述管理程序进一步被配置为将所述操作系统加载至所述处理器,并且所述系统进一步包括:
操作系统寄存器,被配置为存储所述操作系统的操作系统标识符,并且其中,所述管理程序进一步被配置为在所述处理器运行所述操作系统之前将所述操作系统标识符存储在所述操作系统寄存器中。
5.根据权利要求1所述的系统,其中,所述至少一个资源包括位于所述片外存储器上的管理程序可访问的存储表。
6.根据权利要求1所述的系统,其中,为了监控所述操作系统,所述事务过滤器进一步被配置为监控由所述操作系统传输到总线的指令,所述总线耦合到所述至少一个资源。
7.根据权利要求l所述的系统,其中,所述处理器进一步被配置为存储所述操作系统的操作系统标识符;并且
其中,所述事务过滤器进一步被配置为:
从所述处理器检索所述操作系统标识符;并且
当在所述处理器上运行所述操作系统时,与所述访问权限结合地使用所述操作系统标识符来监控所述操作系统对所述至少一个资源的访问。
8.根据权利要求2所述的系统,其中,当所述访问权限存储在所述片外存储器中时,所述访问权限是用数字签名加密的。
9.根据权利要求4所述的系统,其中,所述事务过滤器进一步被配置为:
从所述操作系统寄存器检索所述操作系统标识符;以及
当在所述处理器上运行所述操作系统时,与所述访问权限结合地使用所述操作系统标识符来监控所述操作系统对所述至少一个资源的访问。
10.根据权利要求6所述的系统,其中,所述事务过滤器进一步被配置为:当对所述指令的监控确定所述操作系统不具有对所述至少一个资源的访问权时,阻止所述操作系统对所述至少一个资源的访问。
CN201510220085.9A 2014-05-02 2015-04-30 保护嵌入式管理程序系统中的重要数据结构 Active CN105046163B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461987732P 2014-05-02 2014-05-02
US61/987,732 2014-05-02
US14/530,020 2014-10-31
US14/530,020 US10318765B2 (en) 2014-05-02 2014-10-31 Protecting critical data structures in an embedded hypervisor system

Publications (2)

Publication Number Publication Date
CN105046163A CN105046163A (zh) 2015-11-11
CN105046163B true CN105046163B (zh) 2018-11-16

Family

ID=53039220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510220085.9A Active CN105046163B (zh) 2014-05-02 2015-04-30 保护嵌入式管理程序系统中的重要数据结构

Country Status (4)

Country Link
US (1) US10318765B2 (zh)
EP (1) EP2947594A3 (zh)
CN (1) CN105046163B (zh)
HK (1) HK1215609A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9680862B2 (en) * 2014-07-01 2017-06-13 Fireeye, Inc. Trusted threat-aware microvisor
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10216927B1 (en) 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US10395029B1 (en) 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
US10417458B2 (en) 2017-02-24 2019-09-17 Microsoft Technology Licensing, Llc Securing an unprotected hardware bus
US20190087580A1 (en) * 2017-09-19 2019-03-21 Microsoft Technology Licensing, Llc Secure launch for a hypervisor
US11556365B2 (en) 2019-09-24 2023-01-17 International Business Machines Corporation Obscuring information in virtualization environment
CN110990331B (zh) * 2019-12-03 2023-09-05 飞腾信息技术有限公司 片上系统密钥管理方法、装置、设备及可读存储介质
CN114650154B (zh) * 2020-12-17 2023-07-18 腾讯科技(深圳)有限公司 网页权限行为控制方法、装置、计算机设备和存储介质
US20230205547A1 (en) * 2021-12-29 2023-06-29 Ati Technologies Ulc Multiple module bootup operation
CN114637743A (zh) * 2022-02-17 2022-06-17 阿里巴巴(中国)有限公司 数据库的操作方法、系统、存储介质以及计算机终端

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451484B1 (en) 1999-05-27 2008-11-11 International Business Machines Corporation Method for enabling a program written in untrusted code to interact with a security subsystem of a hosting operating system
FR2881854B1 (fr) 2005-02-04 2008-01-11 Radiotelephone Sfr Procede de gestion securisee de l'execution d'une application
US20080034350A1 (en) * 2006-04-05 2008-02-07 Conti Gregory R System and Method for Checking the Integrity of Computer Program Code
US7765374B2 (en) 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
JP5387415B2 (ja) 2007-12-26 2014-01-15 日本電気株式会社 仮想計算機システム、ポリシ強制システム、ポリシ強制方法及び仮想計算機制御用プログラム
US8793786B2 (en) 2008-02-08 2014-07-29 Microsoft Corporation User indicator signifying a secure mode
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US20130015192A1 (en) * 2011-07-15 2013-01-17 Airdex International, Inc. Cargo container for storing and transporting cargo
US8627158B2 (en) * 2011-12-08 2014-01-07 International Business Machines Corporation Flash array built in self test engine with trace array and flash metric reporting
US8640230B2 (en) * 2011-12-19 2014-01-28 International Business Machines Corporation Inter-thread communication with software security
US8826391B2 (en) 2012-07-02 2014-09-02 Freescale Semiconductor, Inc. Virtualized trusted descriptors

Also Published As

Publication number Publication date
EP2947594A2 (en) 2015-11-25
US10318765B2 (en) 2019-06-11
US20150317495A1 (en) 2015-11-05
HK1215609A1 (zh) 2016-09-02
CN105046163A (zh) 2015-11-11
EP2947594A3 (en) 2016-03-09

Similar Documents

Publication Publication Date Title
CN105046163B (zh) 保护嵌入式管理程序系统中的重要数据结构
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
CN107438850B (zh) 使用签名的地址验证
US9424421B2 (en) Security engine for a secure operating environment
CN103221961B (zh) 包括用于保护多用户敏感代码和数据的架构的方法和装置
CN101488170B (zh) 向受信任平台模块提供可更新密钥绑定的方法和装置
US10990687B2 (en) System and method for user managed encryption recovery using blockchain for data at rest
US8572410B1 (en) Virtualized protected storage
US9135450B2 (en) Systems and methods for protecting symmetric encryption keys
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
CN103946806A (zh) 用于提供存储器访问控制的装置、系统和方法
CN101176100A (zh) 提供基于软件的安全协处理器的方法和装置
CN102208001A (zh) 硬件支持的虚拟化密码服务
WO2017000648A1 (zh) 一种被加固软件的认证方法及装置
CN109840430A (zh) Plc的安全处理单元及其总线仲裁方法
CN109614769A (zh) 按照参考平台清单和数据封装的安全操作系统启动
CN105518687A (zh) 安全数据存储装置
US11494520B2 (en) Reconfigurable device bitstream key authentication
US11520905B2 (en) Smart data protection
US9563773B2 (en) Systems and methods for securing BIOS variables
US8972745B2 (en) Secure data handling in a computer system
US11432156B2 (en) Security unit for an IoT device and method for running one or more applications for the secured exchange of data with one or more servers which provide web services
US20190251263A1 (en) Unlocking machine-readable storage devices using a user token
US20230010319A1 (en) Deriving independent symmetric encryption keys based upon a type of secure boot using a security processor
US20060020785A1 (en) Secure distribution of a video card public key

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: 1215609

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20170309

Address after: Singapore Singapore

Applicant after: Avago Technologies Fiber IP Singapore Pte. Ltd.

Address before: American California

Applicant before: Zyray Wireless Inc.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20181024

Address after: Singapore Singapore

Applicant after: Annwa high tech Limited by Share Ltd

Address before: Singapore Singapore

Applicant before: Avago Technologies Fiber IP Singapore Pte. Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1215609

Country of ref document: HK