CN109564555A - 基于上下文的保护系统 - Google Patents

基于上下文的保护系统 Download PDF

Info

Publication number
CN109564555A
CN109564555A CN201780044584.4A CN201780044584A CN109564555A CN 109564555 A CN109564555 A CN 109564555A CN 201780044584 A CN201780044584 A CN 201780044584A CN 109564555 A CN109564555 A CN 109564555A
Authority
CN
China
Prior art keywords
protection
access
context
peripheral
cpu
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.)
Granted
Application number
CN201780044584.4A
Other languages
English (en)
Other versions
CN109564555B (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.)
Cypress Semiconductor Corp
Original Assignee
Cypress Semiconductor Corp
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 Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Publication of CN109564555A publication Critical patent/CN109564555A/zh
Application granted granted Critical
Publication of CN109564555B publication Critical patent/CN109564555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/76Protecting 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 application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Systems (AREA)

Abstract

一种基于上下文的保护系统使用分层保护结构,该分层保护结构包括主保护单元、共享存储器保护单元、外围设备保护单元,以向在中央处理单元(CPU)、存储器阵列或阵列的一部分、以及外围设备之间进行的总线传输操作提供安全性。

Description

基于上下文的保护系统
相关申请
本申请是于2017年7月18日递交的第15/653,203号美国非临时专利申请的国际申请,该第15/653,203号美国非临时专利申请要求于2016年7月20日递交的第62/364,652号美国临时专利申请、以及于2016年7月19日递交的第62/364,246号美国临时专利申请的权益,以上申请文件通过引用以其整体并入本文。
技术领域
本公开总体上涉及嵌入式系统,并且更具体地涉及在嵌入式系统内的通信和数据的安全性。
附图说明
图1示出了根据一个实施例的可配置为实施基于上下文的保护系统的嵌入式系统。
图2示出了根据一个实施例的基于上下文的保护系统。
图3示出了根据一个实施例的使用保护系统评估往来于外围设备进行传输的安全性的方法。
图4示出了根据一个实施例的改变外围设备的保护上下文的方案。
图5示出了根据一个实施例的改变外围设备的保护上下文的方案。
概述
嵌入式系统经通过一系列总线往来于各种组件传递信息而起作用。嵌入式系统的处理单元可以被配置为执行指令或访问被存储在一个或更多个存储器中的信息。处理单元还可以与其他系统组件(例如数字和模拟块或外围设备)通信或控制其他系统组件。数字或模拟块或者甚至外围设备可以是硬编码的(固定功能),或者它们可以是可编程的。对系统组件的控制以及对信息的访问或信息的传输可以通过一系列总线或总线基础设施来完成。
基于上下文的保护系统可以包括可配置为在多个保护上下文中操作的中央处理单元(CPU)。基于上下文的保护系统还可以包括至少一个外围设备模块,当CPU以多个保护上下文中的第一保护上下文进行配置时外围设备模块可由CPU访问,并且当CPU以多个保护上下文中的第二保护上下文进行配置时外围设备模块不可由CPU访问。
基于上下文的保护系统可以被实施为包括保护结构的总线基础设施的一部分。保护结构可以包括被分配给单个总线主控器的存储器保护单元(MPU),该MPU用于区分从总线主控器进行的用户访问和特权访问。保护结构可以包括被分配给多个总线主控器的共享存储器保护单元(SMPU),SMPU用于区分不同的保护上下文并且用于区分对存储器的安全访问和非安全访问。保护结构还可以包括被分配有外围设备组的外围设备保护单元(PPU),PPU用于区分对外围设备组的安全访问和非安全访问。
详细描述
信息的总线传输可以与其他总线传输同时发生。不同的处理单元可以基于系统需求和系统可以完成的各种任务来访问不同的系统组件。由于总线上同时发生了如此多的事情,因此跟踪并控制传输操作和尝试的传输操作对于确保系统按预期运行且具有最佳性能和需要安全性是非常重要的。
嵌入式系统也可以需要保护来实现安全性、功能安全性、和性能。关于安全性,有必要保护安全存储器和MMIO地址区域免受未经授权的访问。也就是说,对程序和数据存储的访问必须仅限于授权的使用,但是可以通过总线接收命令或共享数据的外围设备也必须如此。关于功能安全性,必须禁止任务和过程(processes)访问与其他任务和过程相关联的存储器和MMIO地址区域。隔离确保了即使在总线干扰存在的情况下,每一个操作都可以发生。另一方面,必须保护存储器和MMIO地址区域免受与其不相关联的任务和过程的影响,以便它们可用于他们的指定的任务和过程。所有这样的保护都可以导致总线延迟,影响性能。并且任何保护系统的重新配置也必须是可能的,而不会产生延迟问题。
图1示出了系统100,其可以被配置为通过可配置的总线架构140提供安全性。系统100可以包括被耦合到CPU子系统110的I/O子系统105。CPU子系统100可以被配置为具有多个输入和输出,包括往来于I/O子系统105的以及来自外围设备组(元件未示出,但是示出了到外围设备组1和2的连接)的输入和输出。如下所述,也可以存在与CPU子系统110的其它连接。
CPU子系统110可以包括调试基础设施115和测试控制器117,均都被耦合到I/O子系统105以及被耦合到第一处理核和第二处理核。第一处理核可以被实施为ARM CortexM4、CM4核120。CM4核120可以包括CM4中央处理单元(CPU)126、中断功能122和调试组件124。CM4核120可以被配置为以更快的处理速度运行,并满足更高的处理和性能需求。第二处理核可以被实施为ARM Cortex M0+、CM0+核130。CM0+核130可以包括CM0+CPU 136、中断功能132、和调试组件134。CM0+核130可以被配置为以较慢的处理速度(频率)运行,并且可以充当辅助处理器。
CPU子系统110还可以包括可配置的总线架构140,其可以包括快速基础设施142和慢速基础设施144。可配置的总线架构140可以被配置为对从处理核、存储器、和外围设备单元进行传递的数据和命令提供安全性。可配置的总线架构140可以被耦合到用于闪存162的闪存控制器161、被耦合到用于ROM 164的ROM控制器163、以及被耦合到用于SRAM 166的SRAM控制器165。在一个实施例中,可以有多个SRAM模块和用于每个模块的相关联的SRAM控制器。在各种实施例中,存储器位置可以是CPU子系统110的一部分或独立系统组件的一部分。
快速基础设施142可以通过系统接口(Sys I/F)和代码接口(Code I/F)被耦合到CM4核120,以从CM4核120接收信息和命令。快速基础设施142还可以被耦合到外围设备接口和以更快处理速度运行的从设备(快速外部从设备)。
慢速基础设施144可以被耦合到测试控制器117以及被耦合到慢速外部主控器以及密码(CRYPTO)块170和一对数据线:数据线0 172和数据线1 174。慢速基础设施144还可以被耦合到慢速外部从设备、CM0+核130以及被耦合到一对数据线172和175。慢速基础设施144也可以被耦合到CPU子系统110外部的外围设备单元。外部的外围设备可以包括慢速外部从设备。
包括快速基础设施142和慢速基础设施144的可配置的总线架构140可以通过实施保护逻辑来提供保护或安全性,该保护逻辑基于总线传输特性允许或限制通过总线进行的传输。总线传输特性可以包括总线地址范围和不同的属性,包括读/写、执行、特权/用户、安全/非安全、以及其他。对于存储器的保护可以由存储器保护单元(MPU)和共享存储器保护单元(SMPU)提供。对于外围设备的保护可以由外围设备保护单元(PPU)提供。SMPU和PPU可以支持基于总线主控器的保护上下文属性的基于上下文的保护跟踪。利用该配置,单个总线主控器可以通过重新编程与保护上下文相关联的字段来以多个保护角色进行操作。
CPU子系统110可以包括保护MMIO寄存器150、故障检测MMIO寄存器180、CPU子系统(CPUSS)MMIO寄存器、和处理器间通信(IPC)MMIO寄存器184,以控制并配置CPU子系统的各种元件并提供保护系统的功能。
图2示出了根据本发明一个实施例的可以实施保护上下文的保护系统200的框图。在一个实施例中,保护系统200可以部分地在图1的可配置的总线基础设施140中被实施。保护系统200的各种元件可以被实施为可由系统总线架构210和图1的CPU子系统110访问的寄存器位置。
保护系统200可以包括多个总线主控器201.0-201.n。总线主控器201.0-201.n可以在信息从存储器阵列220的存储器位置读取和写入存储器阵列220的存储器位置以及写入可以是外围设备组250.0-250.n的一部分的外围设备时控制系统总线架构210上的流量。总线主控器201.0-201.n可以各自具有存储器保护单元(MPU)203.0-203.n。MPU 203.0-203.n可以被集成到总线主控器中,如总线主控器201.0和201.3所示,或者它们可以是单独的元件,被实现为独立单元(总线主控器201.1和201.2),或者作为系统总线架构的一部分(未示出)。
当MPU被实施为总线主控器的一部分时,如对于总线主控器201.1和201.2的情况,MPU可以被实施为CPU的一部分,并且可以在操作系统(OS)或内核的控制下。当MPU独立于总线主控器被实施时,如对于MPU 203.1和203.2的情况,MPU可以被实施为总线架构的一部分(例如系统总线基础设施210)。在这样的实施例中,MPU可以在“拥有”或使用总线主控器的CPU的OS或内核的控制下。例如,MPU 203.1可以在拥有总线主控器201.1的CPU的OS或内核的控制下。被实施为系统总线基础设施210的一部分的MPU可以与总线主控器(诸如USB控制器、用于图形控制器的以太网控制器)相关联。该列表并不旨在穷举;其它总线主控器可以与系统总线基础设施210一起使用。在一个实施例中,类似于被图示为MPU 203.1和203.2的MPU可以被实施为CPU的一部分,以确保一致的软件接口。在这样的实施例中,MPU可以与特定的存储区域相关联,并且可以被分配特定的访问属性定义。如下所述,特定的访问属性定义可以定义如何以及为什么提供对各种系统组件和存储器位置的访问。
MPU 203.0-203.n可以区分对于单个总线主控器(分别为201.1-201.n)的用户访问和特权访问。MPU还可以执行安全/非安全属性的访问控制。如果总线主控器(例如总线主控器201.0-201.n)改变任务,或者如果与独立MPU相关联的非CPU主控器改变所有权,则MPU设置可以由OS或内核软件更新。
在一个实施例中,直接存储器访问(DMA)控制器可以用MPU来实施。在该实施例中,DMA控制器可以继承对与DMA控制器连接的通道进行编程的总线传输(或多个总线传输)的访问控制属性。
保护系统200还可以包括多个共享存储器保护单元(SMPU)205.0-205.n。SMPU205.1-205.n可以各自与总线主控器(分别为201.1-201.n)相关联,并且如果被实施的话,可以被布置在MPU和系统总线架构210之间。SMPU可以由所有总线主控器201.1-201.n共享;这与MPU 203.1-203.n形成对比,MPU 203.1-203.n可以专用于单个总线主控器。SMPU205.1-205.n可以区分不同的保护上下文以及区分安全和非安全访问。SMPU 205.1-205.n也可以基于用户/特权模式属性执行访问控制。
保护系统200可以包括被耦合到总线主控器201.1-201.n和被耦合到存储器子系统220的系统总线架构210。存储器子系统220可以包括至少一个存储器阵列(图示为三个存储器阵列223.0-223.2)和至少一个存储器控制器(图示为三个存储器控制器221.0-221.2)。存储器控制器221.0-221.2可以基于由总线主控器201.1-201.n指示的在系统总线架构210上的总线传输和命令,控制对存储器阵列223.0-223.2中的存储器位置的读和写操作。对存储器阵列223.0-223.2的存储器位置的访问可以由MPU 203.1-203.n和SMPU205.1-205.n进行控制。
保护系统200还可以包括被耦合到系统总线架构210的外围设备总线架构230。外围设备总线架构230可以包括被耦合到系统总线架构210的至少一个主/从(MS)接口231.1-231.n,以用于接收来自总线主控器201.1-201.n的总线传输。MS接口231.1-231.n可以包括外围设备保护单元(PPU)233.1-233.n。
外围设备总线基础设施230可以包括仲裁器235.0-235.n,以用于处理MS接口231.1-231.n和外围设备组250.0-250.n之间的流量。为了便于描述,下面仅描述外围设备单元250.0,但是外围设备组250.1-250.n可以以相同的方式进行构造。外围设备组250.0可以包括PPU 251.0、PPU MMIO寄存器252.0和253.0、SMPU MMIO寄存器254.0、MPU MMIO寄存器255.0、以及外围设备MMIO寄存器256.0。各种MMIO寄存器可以被用于实施通过系统总线架构210和图1中的总线架构140实现的安全性和保护。
保护系统200可以允许每个总线主控器通过正好一个主/从接口(MS0-MS3)访问外围设备子系统。只要访问是通过不同的主接口进行的并且指向外围设备子系统的不同外围设备组,四个主/从接口ma就能够对外围设备进行多达四次的并发访问。
每个主/从接口可以包括对应于每个外围设备组的固定PPU结构以及可编程PPU结构。在外围设备组中的每一个中,可以存在用于外围设备子区域(例如252和253)的固定PPU结构以及用于每个外围设备(例如251)的固定PPU结构。对于某些保护上下文,用于外围设备组的固定PPU结构可以拒绝或限制对整个外围设备组的访问。在这样的实施例中,对于外围设备组内的某些子地址范围的异常可以是不被允许的。用于外围设备组的固定PPU结构可以被给予最高优先级,并且它们可以位于主/从接口中(作为PPU 233的一部分)。利用该实施例,当访问被拒绝时,该访问将不会到达目标外围设备组;外围设备组可以由另一主接口同时进行访问。
用于外围设备子区域以及用于整个外围设备的固定PPU结构可以包括小于外围设备组的地址范围。因此,它们可以位于外围设备组本身内。由于用于外围设备子区域的固定PPU结构根据整个外围设备的保护属性产生异常,因此它们可以具有比针对整个外围设备定义的固定PPU结构更高的优先级。
可编程PPU结构可以覆盖所有外围设备组的组合地址范围。因此,可编程PPU结构可以位于主/从接口中。在其他实施例中,可编程PPU结构可以位于外围设备组内。在第一实施例中,在每个外围设备组中可以有重复的可编程PPU结构。在第二实施例中,可编程PPU结构可以被分布在外围设备组中。
图3示出了确保在外围设备组中的固定PPU结构之后评估可编程PPU结构的方法300。在步骤310中,评估可编程PPU结构。如果在判定步骤315中检测到违规,则可以用违规来标记信息。可以在步骤320中评估固定PPU结构。在一个实施例中,步骤320可以与步骤310同时发生或独立于步骤310发生。如果在判定步骤325中没有检测到违规,则可以在步骤340中评估来自步骤330的标记信息。如果在判定步骤345中没有检测到违规,则可以在步骤350中准许访问。如果在判定步骤315中没有检测到违规,则也可以在步骤350中准许访问。如果在判定步骤325或判定步骤345中检测到违规,则可以在步骤360中拒绝访问。
图2中的保护系统200可以提供具有MPU、SMPU、和PPU的基于上下文的保护方案,该方案允许支持多个保护结构,每个结构指定在统一存储器架构中的地址范围和管理如何允许对给定地址范围的访问的访问属性。由保护系统检测或禁止的违规可以是由于总线传输的地址区域和访问属性与保护结构的地址范围和访问属性之间的不匹配引起的。当检测到违规时,违规可以在故障报告结构中被捕获,例如图1的故障MMIO 180,这可以允许用于将来的分析。了解错误的原因可以是很有用的。操作中的故障可以是由于编程或系统定义中的缺陷造成的。故障可以是由于未经授权的尝试访问或控制造成的。故障报告结构可以产生中断来指示故障的发生。在一个实施例中,中断可用于向系统外部的处理设备指示故障已经发生并且进行分析是必要的。当总线主控器本身不能解决总线错误,但需要另一个总线主控器代表其来解决总线错误时,这可以特别有用。
保护系统的违规导致总线错误,从而禁止总线传输到达其目标。例如,以外围设备单元为目标的MPU或SMPU违规不会到达外围设备的PPU。
保护上下文
每个总线主控器可以具有MPU保护上下文字段,PC[]。保护上下文可以用作用于由总线主控器发起的针对所有总线传输的保护上下文属性。SMPU和PPU可以基于被分配给所述总线传输的保护上下文,允许或禁止(限制)由总线主控器发起的到存储器和外围设备位置的总线传输。
在一个实施例中,多个总线主控器可以共享保护上下文。例如,CPU和在该CPU控制下的USB控制器可以共享相同的保护上下文。在该示例中,CPU和USB控制器可以具有相同的SMPU和PPU访问限制,并且可以在相同的条件下允许或禁止从各自(CPU和USB控制器)到相同的存储器或外围设备位置的总线传输。
总线主控器的保护上下文可以通过重新编程PC[]字段(PC[])来改变。但是,由于保护上下文起作用以允许或禁止总线传输,因此必须控制对PC[]字段的改变。也就是说,对PC[]字段的改变必须维护系统的安全性。未能为PC[]字段的更新保持相同的安全性级别,可能允许对系统的安全性进行非预期或者可能规避保护上下文的改变。此外,对保护上下文的改变应当只产生最小的CPU开销,这样保护上下文可以频繁改变,而不会对总线延迟和性能产生负面影响。为了实现对保护上下文的频繁和安全改变,每个总线主控器可以具有SMPU保护上下文掩码字段,该SMPU保护上下文掩码字段用于标识可被编程到总线主控器PC[]字段的可用的保护上下文。以下字段可为总线主控器保护上下文控制提供必要的安全性:
·MPU保护上下文–在总线主控器的控制下;具有与总线主控器的MPU MMIO寄存器相同的访问限制。
·保护上下文掩码—在安全CPU的控制下;具有与SMPU MMIO寄存器相同的访问限制。
SMPU和PPU基于被分配给总线传输的保护上下文属性,允许和限制总线传输。因此,保护上下文在总线主控器和SMPU和PPU保护之间提供了保护步骤。该实施例允许单个总线主控器通过重新编程PC[]字段来标识多个保护角色。对保护上下文的改变限制了CPU开销,因为SMPU和PPU不需要重新编程。
专用功能
可能希望有一个具有专用功能的保护上下文。在一个实施例中,专用功能可以被分配给保护上下文0。保护上下文0可以具有对所有系统组件的完全访问。建立“信任根(root of trust)”很重要。总线主控器0可以被用作或被允许作为“安全CPU”,使得安全CPU可以执行制造商代码和客户代码。用于CPU的制造商代码可以被存储在只读存储器(ROM)或闪存中,例如ROM 164和闪存162。制造商ROM可以被认为是值得信赖的(信任根),并被用来认证制造商闪存。在各种实施例中,制造商代码可用于提供闪存编程、eFUSE编程或其他制造商专有的功能。
由安全CPU执行的客户代码可以在闪存中进行编程。制造商可以不具有对该代码的控制。因此,客户代码可以不被假设是值得信赖的。客户代码的执行不应当损害制造商代码的可信质量。
因为可信的制造商代码和不可信的客户代码可以由相同的CPU执行,所以可能有必要提供不仅仅基于主控器特定的保护上下文的保护方案。赋予保护上下文0的特殊含义可以提供对安全CPU保护上下文的硬件支持和控制。保护上下文0可以提供对所有存储器和外围设备位置的无限制(无保护)访问。在两种情况下,可以改变(或进入)保护上下文0;因此,保护上下文0的使用可以受到限制。
在第一种情况下,可以通过执行复位异常处理程序来复位安全CPU。在该情况下,可以从特定的ROM地址提供向量地址。因为ROM地址是由制造商提供的,并且向量地址是从ROM提供的,所以向量地址可以是可信的。因此,处理程序的入口点可以是可信的。在安全CPU复位之后,所有中断可以被禁用,并且CPU执行可以是确定性的(即,完全由复位异常处理程序确定)。
在第二种情况下,可以接收安全CPU异常或中断处理程序。在该情况下,处理程序向量地址可以由具有可配置基地址的向量表提供。当安全CPU被复位时,基地址可以被设置为默认值,并且处理程序向量地址可以被写入。由于处理程序向量地址是ROM地址,因此其可以是可信的。然而,CPU可以从向量表基址重定位到SRAM地址,并且处理程序向量地址可以被编程到任何值。编程的值可以导致客户提供的处理程序代码。在该情况下,处理程序的入口点可能不是可信的。然而,只有当安全CPU向量处理程序地址与特定向量地址相同时,保护上下文才可以被改变成0。客户代码重定位向量表是可能的,但是对保护上下文0的改变需要不修改向量地址。当系统检测到安全CPU向量地址与处理程序不同时,保护上下文不被改变成0。如果其已经是0,则其可以被改变回其被改变成0之前的值。
用于保护上下文0的安全性是至关重要的,因为保护上下文0标识信任的制造商代码并提供无限制的访问(由SMPU和PPU)。
保护结构
本发明的保护系统旨在允许或限制在总线基础设施(本文也称为系统总线架构)上的总线传输。保护系统的总线传输指定了多个属性,包括:
·由总线传输访问的地址范围;
·读/写属性;
·执行属性;
·用户/特权属性;
·安全/非安全属性;以及
·保护上下文属性。
总线传输地址范围指定存储器位置或总线传输所要到达的外围设备MMIO寄存器。从结构上看,在存储器保护和外围设备保护之间几乎没有区别。然而,系统中安全措施的实施得益于存储器保护和外围设备保护的分离。在一些实施例中,该分离是通过在CPU子系统中提供存储器保护和在外围设备子系统中提供外围设备保护来实现的。
读/写属性可以为存储器或外围设备能力提供保护,使其能够被特定的主控器读取或写入。执行属性可用于设置对特定存储器或外围设备的代码或数据的访问。也就是说,在一个实施例中,总线传输可以寻求访问特定命令或外围设备的代码。而在另一实施例中,一旦执行,总线传输可以寻求访问代码或命令的输出。用户/特权属性可用于区分OS或内核访问和任务或线程访问。安全/非安全属性可以被用于区分安全访问和非安全访问。最后,保护上下文属性可以被用于soli某些外围设备、外围设备组、或主控器。
如关于图1所描述的,可以有多级保护结构,包括存储器保护单元(MPU)、共享存储器保护单元(SMPU)、和外围设备保护单元(PPU)。MPU可以与单个主控器相关联,并且可以区分来自单个相关联的主控器的用户访问和特权访问。MPU也可以对执行安全/非安全属性的访问控制。一些主控器可以具有内置MPU,例如图1的总线主控器101.0和101.3。对于其他总线主控器,MPU可以被实施为总线基础设施的一部分,例如图1的MPU 103.1、103.2和103.n。
SMPU可以由所有总线主控器共享。在一个实施例中,SMPU可以由总线主控器的子集共享,但不是系统的所有总线主控器共享。SMPU可以区分不同的保护上下文以及区分安全访问和非安全访问。SMPU也可以执行对用户/特权模式属性的访问控制。由于SMPU是共享的,因此它们不会被实施为特定或单个总线主控器的一部分。相反,SMPU可以被实施为系统总线架构的一部分,以便它们能够被需要它们的尽可能多的总线主控器访问。
PPU可以被实现为主/从接口的一部分以及外围设备组的一部分。每个总线主控器可以通过一个包括PPU的主/从接口(例如图2的MS接口233)访问外围设备子系统。外围设备组可以由多个主控器通过专用于外围设备组(例如图2的外围设备组251)的PPU,通过多个主控器接口进行访问。外围设备组可以由具有共享AHB-Lite总线基础设施的多个外围设备单元组成。PPU可以区分不同的保护上下文、区分安全访问和非安全访问、以及区分用户模式访问和特权模式访问。
保护系统的每个保护结构可以通过地址区域和至少一个访问控制属性进行定义。保护结构可以与存储器空间的给定位置对齐。分别被分配给保护结构地址和属性的两个寄存器可以允许用于对保护结构的保护。
以下资源可以需要通过所述保护方案实现的保护:外围设备组内的外围设备;和外围设备内的MMIO寄存器,例如各个IPC结构、数据线或直接存储器访问(DMA)控制器通道结构、SMPU保护区域结构、以及PPU保护区域结构。上述资源可以覆盖固定地址范围,或者设计时已知的地址范围。
诸如MPU、和SMPU、或PPU的保护单元可以包括多个保护结构,并且可以按递减顺序评估这些多个保护结构。较高索引的结构可以优先于较低索引的结构。为了足够的安全性,非安全保护上下文不应该可能添加具有比提供安全访问的保护结构高的索引的保护结构。在这种情况下,可能对具有较高索引的保护结构进行编程,以允许非安全访问。在安全系统中,较高的可编程保护结构受到保护,以只允许受限制的访问。
与MPUS和SMPU相比,PPU可以具有相对大量的保护区域。可能需要由PPU提供保护的资源可以包括外围设备组中的所有外围设备或外围设备中的一组MMIO寄存器。外围设备内的MMIO寄存器可以包括各个IPC结构、DMA控制器通道结构、SMPU保护区域结构、以及PPU保护区域结构。
PPU保护结构可以包括具有已知地址范围的资源,对于该资源,可以实施需要地址范围的保护的设计时配置。对于具有未知地址范围的资源,例如由设备使用标识的资源,可以使用保护区域的地址范围的完全可编程性。
访问控制属性
如上所述,访问属性可以指定对区域的访问控制。区域、或地址区域可以通过基址、区域的尺寸、以及区域内可以被启用或禁用的子区域来定义。在一个实施例中,可以有八个子区域。然而,可以实施更多或更少的子区域。
对区域的访问控制可以被应用于区域内的所有子区域。访问控制是通过评估传输的访问属性来执行的。在各种实施例中,可以实施以下访问控制字段:
·用户模式下对于读取访问的控制;
·用户模式下对于写访问的控制;
·用户模式下对于执行访问的控制;
·特权模式下对于读取访问的控制;
·特权模式下对于写访问的控制;
·特权模式下对于执行访问的控制;
·对于安全访问的控制;
·对于各个保护上下文的控制,可以仅存在于SMPU和PPU中;
以及
·“匹配”和“访问评估进程”的控制,其可以仅存在于SMPU和PPU中。
例如,使用上述访问控制字段,保护上下文2可以被定义用于非安全访问进行特权模式下的读和写操作,具有以下设置:
可以区分三个独立的访问评估子过程。第一子过程可以基于读/写、执行、和用户访问/特权访问属性来评估访问。第二子过程可以基于安全/非安全属性来评估访问。第三个子过程可以基于保护上下文属性(由SMPU和PPU使用)来评估访问。
如果所有访问评估都成功,则可以允许访问。如果任何一个访问评估不成功,则可以禁止访问。访问的拒绝可以被存储在故障MMIO寄存器中,例如图1的故障MMIO寄存器180。
匹配
总线传输地址的匹配和总线传输的访问评估可以在两个独立的过程中被实施。为了匹配,第一过程可以标识被包含在用于每个保护结构的地址范围内的传输地址。然后,第一过程可以然后确定对应于给定保护上下文的适当的位是否为“1”。这将标识匹配区域。对于访问评估,第二过程可以对照访问控制属性评估总线传输属性。
保护单元中可以有多个保护结构。在一个实施例中,保护单元可以按递减顺序评估保护结构。较高索引的结构可以优先于较低索引的结构。较高索引的结构可以具有比较较低索引的结构更多的控制或访问,因此对较高索引的结构的访问可以首先进行评估,以防止较低索引的结构(其应当被允许的情况)允许进行访问。不遵循这个范例,可以允许非安全保护上下文添加具有比提供安全访问的保护结构更高的索引的保护结构。换句话说,具有较高索引的保护结构可以被不正确地编程以允许非安全访问。
保护结构的保护
保护结构可以在引导时间被设置一次,或者可以在设备执行期间动态改变。在一个实施例中,CPU RTOS可以改变CPU的MPU MMIO设置。如上所述,安全CPU可以改变SMPU和PPU MMIO设置。由于MPU、SMPU、和PPU MMIO寄存器是类似于其他外围设备MMIO寄存器的MMIO寄存器,它们能够被类似地改变。此外,保护结构的地址范围可以包括保护结构本身。使用该同义反复,有可能使用保护方案来保护保护结构其本身;因此,保护方案更难规避。
图4示出了根据一个实施例的用于保护外围设备(A)410的方案400。外围设备A可以被两个保护上下文PC[1]401和PC[2]402共享。外围设备A 410可以具有地址区域415。地址0x4000:0000(高达ox4000:001f)处的42字节PPU保护结构422可用于保护外围设备A410。保护结构422可以是与PC[1]401和PC[2]402相关联的若干保护结构中的一个保护结构。保护结构可以被分组成以分别和PPU保护结构420.1和420.2中的PC[1]401和PC[2]402在一起。通过PC[1]401重新编程保护结构的保护控制属性以与PC[2]402对齐,外围设备A410的所有权可以从PC[1]401转移到PC[2]。这在图4中被示出为PC[1]401重新编程PPU保护结构422,使得PC[2]可以访问外围设备A410。类似地,当PC[2]402“拥有”外围设备A410时,其可以将外围设备A 410分配给PC[1]401。
图5示出了用于保护外围设备(B)510的方案500,该方案可以防止不拥有外围设备B 510的保护上下文通过重新编程保护上下文控制属性而将所有权分配给其自身。可以使用地址0x4000:0000(高达0x4000:001f)和0x4000:0020(高达0x4000:003f)处的两个32字节PPU保护结构515和517。保护结构517可以被用于保护保护结构515及其自身。保护结构515可以是从保护结构,并且保护结构517可以是主保护结构。主保护结构和从保护结构可以是保护对513。
在PPU中,保护结构520可以对应于外围设备B 510的保护结构515和517。从保护结构522可以与保护结构515对齐。主保护结构524可以与保护结构517对齐。最初,PPU保护结构520.0可以具有从保护结构522,其中外围设备B的所有权被分配给PC[1]501,并且主保护结构524被分配给PC[1]。在第一步骤中,PC[1]501可以将外围设备B 510的所有权改变为PC[2]502,使得PPU保护结构520.1可以具有从保护结构522,其中外围设备B的所有权被分配给PC[2]502,并且主保护结构524被分配给PC[1]501。在第二步骤中,PC[1]501可以将外围设备B 510的主/从所有权改变为PC[2]502,使得PPU保护结构520.2可以具有从保护结构522,其中外围设备B 510的所有权被分配给PC[2]502,并且主保护结构524被分配给PC[2]502。
将所有权从PC[2]502改变为PC[1]501可以遵循类似的模式。在第一步骤中,PC[2]502可以将外围设备B 510的所有权改变为PC[1]501,使得PPU保护结构520.3可以具有从保护结构522,其中外围设备B的所有权被分配给PC[1]501,并且主保护结构524分配给PC[2]502。在第二步骤中,PC[2]502可以将外围设备B 510的主/从所有权改变为PC[1]501,使得PPU保护结构520.1可以具有从保护结构522,其中外围设备B 510的所有权被分配给PC[1]501,并且主保护结构524被分配给PC[2]502。
换句话说,第一步骤将外围设备所有权改变为其他保护上下文,并且第二步骤改变能力以将主/从设备所有权改变为其他保护上下文。该方案可以通过重新编程保护上下文控制属性来防止不拥有外围设备的保护上下文将所有权分配给它自己。
对于图5中所示的方案,可以优选的是,保护结构是相邻的。例如,PPU和SMPU保护结构可以成对对齐。第一保护结构可以保护资源(即,外围设备),并且第二保护结构可以保护保护。在图5中所示方案的各种其他实施例中,外围设备所有权可以由多于两个保护上下文共享,而改变外围设备所有权的能力可以被限于单个保护上下文。
在以上的描述中,阐述了许多细节。然而,对于获得本公开的益处的本领域中的技术人员将明显的是,本发明的实施例可在没有这些特定细节的情况下进行实践。在一些实例中,众所周知的结构和设备以框图形式而不是详细地示出,以免使本说明书模糊。
详细描述的一些部分依据对计算机存储器内的数据位的操作的算法和符号表示来呈现。这些算法描述和表示是数据处理领域的技术人员使用来最有效地向本领域的其他技术人员传达他们工作的实质的手段。算法在此处并且通常被设想为导致期望结果的自我一致的步骤序列。这些步骤是需要对物理量进行物理操作的那些步骤。通常,虽然不是必须的,但是这些量采用能够被存储、传输、组合、比较和以其他方式操纵的电或磁信号的形式。主要出于习惯用法的原因,将这些信号称为位、值、元素、符号、字符、术语、数字等等已被证明有时是方便的。
然而,应当记住,所有的这些和类似的术语与适当的物理量相关联并且仅仅是应用于这些量的方便标记。除非特殊地说明,否则如从上文讨论中所明显看出的,应认识到,在整个说明书中,使用诸如“加密”、“解密”、“存储”、“提供”、“源于”、“获得”、“接收”、“验证”、“删除”、“执行”、“请求”、“通信”、“初始化”等等的术语的讨论,指的是计算系统或者类似的电子计算设备的动作和处理,其中计算系统或者类似的电子计算设备将在计算系统的寄存器和存储器内表征为物理(例如,电子)量的数据操作和转换为在计算系统存储器或寄存器或者其他这样的信息存储、转换或者显示设备内类似表征为物理量的其他数据。
本文中使用的单词“示例”或“示例性”意为作为示例、实例或例证。本文中被描述为“示例”或“示例性”任何方面或设计不一定被解释为与其他方面或设计相比是优选或者有利的。此外,单词“示例”或“示例性”的使用旨在以具体的方式来提出概念。如在本申请中所使用的,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另有说明或从上下文中是清楚的,否则“X包括A或B”旨在表示自然包含的排列中的任一个。也就是说,如果X包括A;X包括B;或X包括A和B二者,那么在前述实例中的任一个下满足“X包括A或B”。另外,如在本申请和所附权利要求中使用的冠词“一(a)”和“一(an)”通常应该被解释为意指“一个或更多个”,除非另有说明或从上下文中清楚地针对单数形式。此外,贯穿全文使用的术语“实施例”或“一个实施例”或“实施方式”或“一个实施方式”不旨在意指同一个实施例或实施方式,除非如此描述。
与上述协议相关的特定命令或消息仅旨在用作说明。本领域普通技术人员将理解,可以使用不同具体措辞但类似功能的命令,并且这些命令仍然落入上述描述的范围内。
本文所描述的实施例还可涉及用于执行本文中的操作的装置。该装置可出于所需的目的而被特别构造,或者它可包括由被储存在计算机中的计算机程序选择性激活或重配置的通用计算机。这样的计算机程序可以被存储在非暂时性计算机可读存储介质中,诸如但不限于包括软盘、光盘、CD-ROM和磁光盘的任意类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、闪存、或适用于储存电子指令的任何类型的介质。术语“计算机可读存储介质”应当被认为包括存储一个或更多个指令集的单个介质或多个介质(例如,集中式或分布式的数据库和/或相关联的高速缓存以及服务器)。术语“计算机可读介质”也应当被认为包括能够存储、编码或携带由机器执行并导致机器实施任何一个或更多个本实施例的方法的指令集的任何介质。术语“计算机可读存储介质”相应地应当被认为包括,但不限于,固态存储器、光介质、磁介质、能够存储用于由机器执行并导致机器实施任和一个或更多个本实施例的方法的指令集的任何介质。
本文呈现或参考的算法和显示不是固有地与任何特定计算机或其他装置相关。各种通用系统可以根据本文的教导与程序一起使用,或者其可证明构建更专用的装置以执行所需的方法步骤是方便的。用于这些系统中的各种系统所需的结构将出现于以下描述中。另外,本实施例没有参考任何特定的编程语言来描述。将认识到,可以使用各种编程语言来实现如本文所述的实施例的教导。
以上描述阐述了诸如特定系统、组件、方法等的示例的许多特定细节,以便提供对本发明的若干实施例的良好理解。然而,对于本领域的技术人员将明显的是,本发明的至少一些实施例可在没有这些特定细节的情况下进行实践。在其他实例中,众所周知的组件或方法没有具体描述或者是以简单的框图的形式来呈现,以避免不必要地使本发明模糊。因此,以上阐述的特定细节仅仅是示例性的。特定的实施方式可以与这些示例性细节不同并且仍然被视为在本发明的范围内。
将要理解的是,以上描述旨在是例证性而不是限制性的。在阅读并且理解以上描述之后,许多其他实施例对于本领域的技术人员将是明显的。因此,本发明的范围应参考所附权利要求连同这些权利要求有权要求的等效物的整个范围来确定。

Claims (18)

1.一种系统,包括:
第一中央处理单元(CPU),所述第一中央处理单元是可配置为在多个保护上下文中进行操作的;以及
至少一个外围设备模块,当所述第一CPU以所述多个保护上下文中的第一保护上下文配置时所述外围设备模块是可由所述第一CPU进行访问的,并且当所述第一CPU以所述多个保护上下文中的第二保护上下文配置时所述外围设备模块是不可由所述第一CPU进行访问的。
2.根据权利要求1所述的系统,还包括CPU子系统,所述CPU子系统包括:
所述第一CPU;
至少一个存储器保护单元;以及
至少一个共享存储器保护单元。
3.根据权利要求2所述的系统,其中,所述至少存储器保护单元区分从单个总线主控器进行的用户访问和特权访问。
4.根据权利要求2所述的系统,其中,所述至少一个共享存储器保护单元区分所述多个保护上下文中的所述第一保护上下文和所述第二保护上下文,并且区分所述第一CPU的安全访问和非安全访问。
5.根据权利要求1所述的系统,还包括外围设备子系统,所述外围设备子系统包括:
所述至少一个外围设备模块;以及
至少一个外围设备保护单元,其中,所述至少一个外围设备保护单元区分:
所述多个保护上下文中的所述第一保护上下文和所述第二保护上下文,
安全访问和非安全访问,以及
用户模式访问相对于特权模式访问。
6.根据权利要求1所述的系统,其中,对所述外围设备模块的访问是通过向量对的值进行控制的,所述向量对中的第一向量用于控制对所述外围设备模块的读取访问,并且所述向量对中的第二向量用于控制对所述向量对中的所述第一向量的写入访问。
7.根据权利要求1所述的系统,其中,从所述第一保护上下文转而在所述第二保护上下文中进行的第一CPU操作是通过与所述第二保护上下文相关联的中断因子选通的。
8.根据权利要求1所述的系统,其中,所述外围设备模块是存储器。
9.根据权利要求1所述的系统,还包括第二CPU,所述第二CPU是可配置为在所述多个保护上下文中的至少一个保护上下文中进行操作的。
10.一种总线基础设施,包括多个保护结构,所述多个保护结构包括:
存储器保护单元(MPU),所述存储器保护单元被分配给单个总线主控器,所述MPU用于区分从所述总线主控器进行的用户访问和特权访问;
共享存储器保护单元(SMPU),所述共享存储器保护单元被分配给多个总线主控器,所述SMPU用于区分不同的保护上下文,并且用于区分对存储器的安全访问和非安全访问;以及
外围设备保护单元(PPU),所述外围设备保护单元被分配有外围设备组,所述PPU用于区分对所述外围设备组的安全访问和非安全访问。
11.根据权利要求10所述的总线基础设施,其中,所述PPU通过确认用户模式和特权模式来区分对所述外围设备组的安全访问和非安全访问,其中,在用户模式中允许的访问不同于在特权模式中允许的访问。
12.根据权利要求10所述的总线基础设施,其中,所述多个保护结构中的每一个保护结构通过以下项进行定义:
地址区域;以及
访问控制属性,其中,所述访问控制属性指定对存储器位置的访问控制。
13.根据权利要求10所述的总线基础设施,其中,所述PPU包括多个保护区域,包括以下项中的至少一项:
在所述外围设备组中的所有外围设备;以及
所述外围设备组的外围设备的子集,包括各个处理器间通信(IPC)结构、DMA控制器通道结构、需要SMPU保护的结构、或PPU保护区域结构。
14.根据权利要求10所述的总线基础设施,其中,所述总线主控器是在第一保护上下文和第二保护上下文中进行操作的中央处理单元(CPU)。
15.根据权利要求14所述的总线基础设施,其中,当所述CPU在所述第一保护上下文中进行操作时所述总线主控器访问所述外围设备组,并且当所述CPU在所述第二保护上下文中进行操作时禁止所述总线主控器访问所述外围设备组。
16.根据权利要求10所述的总线基础设施,其中,对所述外围设备组的访问是通过所述PPU的向量对的值进行控制的,所述向量对中的第一向量用于控制对所述外围设备组的读取访问,并且所述向量对中的第二向量用于控制对所述向量对中的所述第一向量的写入访问。
17.一种用于控制对外围设备模块的访问的方法,所述方法包括:
将中央处理单元(CPU)的多个保护上下文中的第一保护上下文与第一外围设备模块的允许的保护上下文进行比较;
如果所述CPU的所述第一保护上下文与所述第一外围设备模块的所述允许的保护上下文匹配,则允许所述CPU访问所述第一外围设备模块;
将所述CPU的保护上下文从所述第一保护上下文变更为第二保护上下文;
如果所述第二保护上下文与所述第一外围设备模块的所述允许的保护上下文不匹配,则禁止所述CPU访问所述第一外围设备模块;以及
如果所述CPU的所述第二保护上下文与第二外围设备模块的允许的保护上下文匹配,则允许所述CPU访问所述第二外围设备模块,其中,所述第一保护上下文不同于所述第二保护上下文。
18.根据权利要求17所述的用于基于上下文对外围设备模块的保护方法,其中,对所述外围设备模块的访问是通过用于每个外围设备模块的向量对进行定义的,并且其中,所述向量对包括所述向量对中的用于控制对所述外围设备模块的读取访问的第一向量以及所述向量对的用于控制对所述向量对中的所述第一向量的写入访问的第二向量。
CN201780044584.4A 2016-07-19 2017-07-19 基于上下文的保护系统 Active CN109564555B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201662364246P 2016-07-19 2016-07-19
US62/364,246 2016-07-19
US201662364652P 2016-07-20 2016-07-20
US62/364,652 2016-07-20
US15/653,203 2017-07-18
US15/653,203 US11416421B2 (en) 2016-07-19 2017-07-18 Context-based protection system
PCT/US2017/042834 WO2018017702A1 (en) 2016-07-19 2017-07-19 Context-based protection system

Publications (2)

Publication Number Publication Date
CN109564555A true CN109564555A (zh) 2019-04-02
CN109564555B CN109564555B (zh) 2022-12-13

Family

ID=60988625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780044584.4A Active CN109564555B (zh) 2016-07-19 2017-07-19 基于上下文的保护系统

Country Status (5)

Country Link
US (1) US11416421B2 (zh)
JP (1) JP7001670B2 (zh)
CN (1) CN109564555B (zh)
DE (1) DE112017003659T5 (zh)
WO (1) WO2018017702A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363708A (zh) * 2020-12-04 2021-02-12 中信银行股份有限公司 一种支持Eclipse工具下的上下文保护方法及系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016093813A1 (en) * 2014-12-10 2016-06-16 Hewlett Packard Enterprise Development Lp A multi-tier security framework
US10592663B2 (en) * 2017-12-28 2020-03-17 Intel Corporation Technologies for USB controller state integrity protection

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5713006A (en) * 1995-03-15 1998-01-27 Texas Instruments Incorporated Electronic device and method for selective enabling of access to configuration registers used by a memory controller
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US20030172214A1 (en) * 2002-03-08 2003-09-11 Moyer William C. Data processing system with peripheral access protection and method therefor
US20060174056A1 (en) * 2003-03-19 2006-08-03 Koninklijke Philips Electronics N.V. Universal memory device having a profil storage unit
JP2006216012A (ja) * 2005-02-04 2006-08-17 Arm Ltd メモリへのアクセスを制御するためのデータ処理装置および方法
US20120215991A1 (en) * 2011-02-23 2012-08-23 Freescale Semiconductor, Inc. Memory protection unit (mpu) having a shared portion and method of operation
CN103092784A (zh) * 2011-10-27 2013-05-08 飞思卡尔半导体公司 基于信号量保护共享系统资源的系统和方法
JP2013539106A (ja) * 2010-08-06 2013-10-17 インテル コーポレイション セキュア環境における高速不揮発性ストレージの提供
CN103984909A (zh) * 2013-02-07 2014-08-13 德克萨斯仪器股份有限公司 用于虚拟硬件存储器保护的系统和方法
EP2962207A1 (de) * 2013-02-28 2016-01-06 Siemens Aktiengesellschaft Verfahren und schaltungsanordnung für kontrollierte zugriffe auf slave-einheiten in einem ein-chip-system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401155B1 (en) * 1998-12-22 2002-06-04 Philips Electronics North America Corporation Interrupt/software-controlled thread processing
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7743257B2 (en) 2002-06-27 2010-06-22 Nxp B.V. Security processor with bus configuration
US7444668B2 (en) 2003-05-29 2008-10-28 Freescale Semiconductor, Inc. Method and apparatus for determining access permission
JP2005250833A (ja) 2004-03-04 2005-09-15 Nec Electronics Corp バスシステム及びアクセス制御方法
JP4818793B2 (ja) 2006-04-20 2011-11-16 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びメモリアクセスの制御方法
US7594042B2 (en) 2006-06-30 2009-09-22 Intel Corporation Effective caching mechanism with comparator coupled to programmable registers to store plurality of thresholds in order to determine when to throttle memory requests
US8356361B2 (en) 2006-11-07 2013-01-15 Spansion Llc Secure co-processing memory controller integrated into an embedded memory subsystem
US7725663B2 (en) * 2007-10-31 2010-05-25 Agere Systems Inc. Memory protection system and method
JP5225003B2 (ja) 2008-10-01 2013-07-03 キヤノン株式会社 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体
GB2503470B (en) 2012-06-27 2014-08-13 Nordic Semiconductor Asa Memory protection
US9817763B2 (en) 2013-01-11 2017-11-14 Nxp Usa, Inc. Method of establishing pre-fetch control information from an executable code and an associated NVM controller, a device, a processor system and computer program products
US9330035B2 (en) * 2013-05-23 2016-05-03 Arm Limited Method and apparatus for interrupt handling
US9781120B2 (en) 2013-07-18 2017-10-03 Nxp Usa, Inc. System on chip and method therefor
JP2015035155A (ja) 2013-08-09 2015-02-19 国立大学法人名古屋大学 情報処理装置
US9389793B2 (en) 2014-03-06 2016-07-12 Freescale Semiconductor, Inc. Trusted execution and access protection for embedded memory
US9213866B1 (en) 2014-04-01 2015-12-15 Xilinx, Inc. Circuits for and methods of preventing unauthorized access in an integrated circuit
US9710404B2 (en) 2015-03-23 2017-07-18 Intel Corporation Dynamic configuration and peripheral access in a processor
US9984009B2 (en) * 2016-01-28 2018-05-29 Silicon Laboratories Inc. Dynamic containerized system memory protection for low-energy MCUs

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5713006A (en) * 1995-03-15 1998-01-27 Texas Instruments Incorporated Electronic device and method for selective enabling of access to configuration registers used by a memory controller
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US20030172214A1 (en) * 2002-03-08 2003-09-11 Moyer William C. Data processing system with peripheral access protection and method therefor
CN1639666A (zh) * 2002-03-08 2005-07-13 飞思卡尔半导体公司 具有外围设备访问保护的数据处理系统及其方法
US20060174056A1 (en) * 2003-03-19 2006-08-03 Koninklijke Philips Electronics N.V. Universal memory device having a profil storage unit
JP2006216012A (ja) * 2005-02-04 2006-08-17 Arm Ltd メモリへのアクセスを制御するためのデータ処理装置および方法
JP2013539106A (ja) * 2010-08-06 2013-10-17 インテル コーポレイション セキュア環境における高速不揮発性ストレージの提供
US20120215991A1 (en) * 2011-02-23 2012-08-23 Freescale Semiconductor, Inc. Memory protection unit (mpu) having a shared portion and method of operation
CN103092784A (zh) * 2011-10-27 2013-05-08 飞思卡尔半导体公司 基于信号量保护共享系统资源的系统和方法
CN103984909A (zh) * 2013-02-07 2014-08-13 德克萨斯仪器股份有限公司 用于虚拟硬件存储器保护的系统和方法
EP2962207A1 (de) * 2013-02-28 2016-01-06 Siemens Aktiengesellschaft Verfahren und schaltungsanordnung für kontrollierte zugriffe auf slave-einheiten in einem ein-chip-system
JP2016516228A (ja) * 2013-02-28 2016-06-02 シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft システムオンチップ内のスレーブユニットへの、コントロール下でのアクセス方法および回路装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363708A (zh) * 2020-12-04 2021-02-12 中信银行股份有限公司 一种支持Eclipse工具下的上下文保护方法及系统

Also Published As

Publication number Publication date
JP7001670B2 (ja) 2022-01-19
CN109564555B (zh) 2022-12-13
JP2019525319A (ja) 2019-09-05
US11416421B2 (en) 2022-08-16
US20180024945A1 (en) 2018-01-25
WO2018017702A1 (en) 2018-01-25
DE112017003659T5 (de) 2019-04-04

Similar Documents

Publication Publication Date Title
Basak et al. Security assurance for system-on-chip designs with untrusted IPs
CN105765596B (zh) 集成端点和网络检测并消除攻击的技术
US10489332B2 (en) System and method for per-task memory protection for a non-programmable bus master
Potlapally Hardware security in practice: Challenges and opportunities
CN107787495B (zh) 安全输入/输出设备管理
US7779254B1 (en) Mechanism to enhance and enforce multiple independent levels of security in a microprocessor memory and I/O bus controller
CN102486755A (zh) 存储器保护单元和用于控制对存储设备的访问的方法
US20230297725A1 (en) Technologies for filtering memory access transactions received from one or more i/o devices
CN109564555A (zh) 基于上下文的保护系统
CN112835846A (zh) 片上系统
CN112602082A (zh) 安全感知总线系统
CN112835845A (zh) 用于管理形成例如微控制器的片上系统的调试的方法和对应片上系统
US10248785B2 (en) Application memory protection using a host page table switching virtual machine function
CN105335227B (zh) 一种节点内的数据处理方法、装置和系统
WO2008030727A2 (en) Access control of memory space in microprocessor systems
LeMay et al. Network-on-chip firewall: Countering defective and malicious system-on-chip hardware
US9122633B2 (en) Case secure computer architecture
CN108197503A (zh) 一种为间接访问存储控制器增加保护功能的装置
US20170262384A1 (en) Method for protecting memory against unauthorized access
US7676608B1 (en) System for extending Multiple Independent Levels of Security (MILS) partitioning to input/output (I/O) devices
US10592663B2 (en) Technologies for USB controller state integrity protection
Tychalas et al. Open platform systems under scrutiny: A cybersecurity analysis of the device tree
Mueller et al. On MILS I/O sharing targeting avionic systems
TW202324158A (zh) 以安全分區記憶體空間於系統單晶片中錯誤管理
US11288404B2 (en) Resource protection

Legal Events

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