CN112749397A - 一种系统和方法 - Google Patents
一种系统和方法 Download PDFInfo
- Publication number
- CN112749397A CN112749397A CN201911039718.0A CN201911039718A CN112749397A CN 112749397 A CN112749397 A CN 112749397A CN 201911039718 A CN201911039718 A CN 201911039718A CN 112749397 A CN112749397 A CN 112749397A
- Authority
- CN
- China
- Prior art keywords
- access instruction
- data
- application program
- access
- register
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000012795 verification Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- ZICZZIRIRHGROF-UHFFFAOYSA-N 1-$l^{1}-oxidanyl-2,2,4,5,5-pentamethylimidazole Chemical compound CC1=NC(C)(C)N([O])C1(C)C ZICZZIRIRHGROF-UHFFFAOYSA-N 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Abstract
公开了一种方法和系统。系统包括处理器,用于执行应用程序的指令,指令包括对硬件设备的访问指令;存储器,用于存储应用程序的指令;物理内存保护装置,被耦合到处理器及存储器上,其中,访问指令经由物理内存保护装置访问硬件设备,物理内存保护装置包括:寄存器组,用于存储权限数据;物理内存仲裁器,用于采用硬件逻辑,根据权限数据确定访问指令是否为特定应用程序对特定硬件设备的独占式访问指令,并据此拒绝或者继续访问指令。通过权限数据校验来自处理器的访问指令,并拒绝非权限数据中指定的应用程序对于被独占的硬件设备的访问指令,从而确保了应用程序对于硬件设备的独占式访问。
Description
技术领域
本发明涉及芯片领域,更具体而言,涉及一种嵌入式系统和实现方法。
背景技术
在现有技术中,小型化和专业化的电子设备正变得越来越普遍。这些设备中的计算机系统为设备提供量身定制的专用功能。和传统的计算机系统相比,这些设备中的计算机系统由于完全嵌入到设备中被称为嵌入式系统。嵌入式系统的核心是由一个或几个预先编程好用来执行少数几项任务的微处理器或者单片机。
嵌入式系统的广泛使用,在带来低功耗和低成本的产品制造的益处的同时,也增加了对于嵌入式系统的安全需求。例如,在物联网应用场景里,特别是传感器物联网设备,传感器产生的数据对用户的业务大数据分析有很大的作用,可以帮用户为未来的业务布局提供有价值的海量数据信息,所以,此类数据对用户来说是很有价值的,用户不希望其他的用户也能访问和操作数据,同时对于产生这些数据的设备,需要进行独占式管理和操作。还有一些工控领域的设备,用户需要基于传感器的信息控制其他设备比如路灯,马达,风力等设备,一旦传感器的信息被获取篡改,将导致巨大严重的灾难和不可估计的损失。在移动应用场景里,很多支付的应用程序都是通过指纹或密码进行身份验证,这就必须要求该指纹设备和密码键盘外设是可信设备,被支付应用程序独占式操作,同时对于保存在设备上的指纹和密码,也需要进行权限控制。在数字版权应用场景,现在国家政府对数字版本管理越来越要严格,对设备里的视频音频外设都有身份验证,然后对视频流和音频流进行解密后,最后播放出来,这就同样需要应用程序对视频和音频外设的独占性管理。
发明内容
有鉴于此,本方案针对提出了一种系统和方法,以解决对硬件设备的独占式访问需求。
为了达到这个目的,本发明提供一种系统,包括:
处理器,用于执行应用程序的指令,所述指令包括对硬件设备的访问指令;
存储器,用于存储所述应用程序的指令;
物理内存保护装置,被耦合到所述处理器及所述存储器上,
其中,所述访问指令经由所述物理内存保护装置访问所述硬件设备,所述物理内存保护装置包括:
寄存器组,用于存储权限数据,所述权限数据包括表示特定应用程序对特定硬件设备具有独占式访问权限的数据;
物理内存仲裁器,用于采用硬件逻辑,根据所述权限数据确定所述访问指令是否为所述特定应用程序对所述特定硬件设备的独占式访问,并据此处理所述访问指令。
在一些实施例中,还包括:软件部分的安全监视器,根据应用程序配置表向所述物理内存保护装置的寄存器组中写入所述权限数据。
在一些实施例中,当所述安全监视器向所述寄存器组内写入所述权限数据时,触发执行所述物理内存保护仲裁器的校验步骤。
在一些实施例中,所述物理内存保护仲裁器对所述权限数据执行以下的校验步骤:
将新增的权限数据和寄存器组内已有的权限数据进行比对;
如果新增的权限数据中包含的特定应用程序对特定硬件设备的独占式访问权限的数据与在先的权限数据矛盾,则重启所述系统或不执行新增操作。
在一些实施例中,所述安全监视器在特权模式下执行。
在一些实施例中,所述访问指令中包含所述硬件设备的设备地址,所述权限数据包含独占式访问的设备地址和应用程序ID的对应关系。
在一些实施例中,所述寄存器组包括:
第一寄存器,用于存储保护区域的地址范围;
第二寄存器,用于指示保护区域的配置属性;
第三寄存器,用于存储保护区域的地址范围和所述应用程序ID,
其中,所述保护区域的地址范围为:常规存储器的多个存储位置的地址范围,或者为所述硬件设备的设备地址。
在一些实施例中,根据所述权限数据检查确定所述访问指令是否为所述特定应用程序对所述特定硬件设备的独占式访问指令包括:
根据程序指针和所述第一寄存器内的地址范围进行比较,确定所述应用程序的可执行代码所处的地址范围;
根据所述应用程序的可执行代码所处的地址范围确定应用程序ID;
将所述访问指令中包含的设备地址设备地址和与所述第二寄存器内的地址范围的进行比较,以确定所述应用程序对所述设备地址的是否具有访问权限;以及
当所述应用程序对所述设备地址具有访问权限时,根据所述设备地址检索所述第三寄存器,并将检索到的记录中的应用程序ID和所述应用程序ID比较,以确定所述访问指令是否为所述特定应用程序对所述特定硬件设备的独占式访问指令。。
在一些实施例中,所述寄存器组内的权限数据写入后不可修改,但在系统关闭后丢失。
在一些实施例中,所述系统为片上系统。
在一些实施例中,所述物理内存保护装置设置在所述处理器的内部。
在一些实施例中,还包括:加载器,用于在系统初始化阶段,加载并执行所述安全监视器。
在一些实施例中,所述安全监视器和所述加载器存储于所述系统的只读存储器。
第二方面,本发明提供一种方法,包括:
从处理器接收访问指令,所述指令包括对硬件设备的访问指令
根据访问指令确定发出所述访问指令的应用程序和所述访问指令针对的设备地址;以及
根据权限数据确定所述访问指令是否为特定应用程序对特定硬件设备的独占式访问指令,并据此拒绝或者继续所述访问指令。
在一些实施例中,还包括:当写入所述权限数据时,触发执行以下对于新增的权限数据的校验步骤:
将所述新增的权限数据和已有的权限数据进行比对;
如果新增的权限数据中包含的特定应用程序对特定硬件设备的独占式访问权限的数据与在先的权限数据矛盾,则重启所述系统或不执行新增操作。
在一些实施例中,所述访问指令中包含所述硬件设备的设备地址,所述权限数据包含独占式访问的设备地址和应用程序ID的对应关系。
根据本发明实施例,物理内存保护仲裁器采用硬件逻辑,根据权限数据校验来自处理器的访问指令,并拒绝非权限数据中指定的应用程序对于独占式的硬件设备的访问指令,从而确保了应用程序对于硬件设备的独占式访问。
附图说明
通过参考以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是用于实施本发明实施例的系统的结构示意图;
图2是图1中的物理内存保护装置的结构示意图;
图3是物理内存保护仲裁器对于访问指令进行校验的流程图;
图4(a)-图4(d)是一个示例性的权限数据的示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
图1是用于实施本发明实施例的系统的结构示意图。如图1所示,系统100包括被耦合到物理内存保护装置103的处理器101。不同于图上所示,物理内存保护装置103还可以设置在处理器101的内部。物理内存保护装置103用于根据权限数据对处理器发出的、对常规存储器的存储位置和硬件设备(通过MMIO或PMIO映射的设备I/O)的访问指令实施访问控制,如果一个访问指令是对硬件设备的独占式访问,则确保只有一个应用程序可以访问被独占的硬件设备。物理内存保护装置103 包括用于存储权限数据的寄存器组1031,可以根据权限数据判定各个主体(包括应用程序、嵌入式操作系统等主体)对常规存储器的存储位置和硬件设备的访问是否恰当,并据此进行处理访问指令。其中,MMIO为内存映射IO(Memory-mapped I/O),PMIO为端口映射IO(Port-mapped I/O)。
在本例中,处理器101和其他元件之间的通信可以都经过物理内存保护装置103,或以其他方式由物理内存保护装置103进行调节。在其他方式中,处理器101对于存储器的访问指令例如可以部分地经过物理内存保护装置103,例如处理器101内部也包括多个寄存器,在处理器内部执行的、对于该多个寄存器的访问指令可以不经由物理内部保护装置103。
在本例中,系统100还包括经由AHB总线单元109与物理内存保护装置103耦合的DMA控制器104、随机存取存储器105、只读存储器106、 AHB/APB桥107、I/O接口108和时钟发生、功率控制和其他系统功能 110。如图上所示,这些元件封装在片上系统(SoC)101中。设计人员可以对SoC架构进行配置从而使得片上系统101中的各个元件之间的通信是安全的。
在本例中,系统100还包括经由I/O接口108与片上系统连接的外部设备111-112,以及通过DMA控制器104与片上系统101连接的外部存储器113。外部设备111-112例如可以为文字、音频和视频的输入/输出设备和不采用DMA控制器控制的其他存储器。片上系统101可以通过 I/O接口108访问片外的外部设备。不同于设置在片上系统的存储器105,位于片外的存储器可以容量更大但速度较慢、成本较低,例如存储器105 为静态随机存取存储器(SRAM),而片外的存储器为DRAM(动态随机存取存储器)和闪存(flash)存储器。
在本例中,系统100还可以包括各种软件,图上示出了加载器121、嵌入式操作系统122、应用程序A和B以及安全监视器(Secure Monitor) 124。这些软件可以在固化只读存储器106中,也可以存储在片外的存储器中。通常情况,加载器121、安全监视器124和嵌入式操作系统122 固化在只读存储器106中,应用程序A和B可以存储在片外的存储器中。在一些情况下,加载器121和嵌入式操作系统122也可以合二为一。对于这些软件,可以配置加载器121用于核实并将各种软件加载到随机存取存储器105中。加载器121自身可以是用安全方式进行加载的软件。可以将片上系统101配置为在系统上电或重置后立即或很快从只读存储 106检索得到加载器121,然后可以基于配置信息确定将哪些软件进行加载,进而根据对于这些软件的核实结果将相应软件加载到随机存取存储器105中,例如基于软件来源、指纹、证书等决定是否加载某个软件。在一种实施方式中,嵌入式操作系统122可以根据系统环境决定何时加载以及执行安全监视器124。在另一种实施方式中,在系统上电初始化阶段,加载器121根据配置信息加载并执行安全监视器124。
安全监视器124用于根据应用程序配置表向物理内存保护装置103 的寄存器组1031中写入权限数据。应用程序配置表可以包括每个应用程序所用到的资源信息,还包括对于硬件设备的独占式访问需求。该应用程序配置表可以根据应用程序的编译信息制作并存储在特定位置(例如只读存储器106中)。权限数据包括各个主体(包括应用程序、嵌入式操作系统等主体)对资源信息的访问权限。值得注意的是,安全监视器 124需要具有对物理内存保护装置103内的寄存器的写权限,因此必须确保安全监视器124具有相应写权限。对于不同架构的处理器,使安全监视器124具有写权限所需的条件可能不同。例如,对于RISC-V架构处理器,可以选择在机器模式(Machine Privilege)执行安全监视器124,如果处理器是ARM架构处理器,可以选择在系统(system)模式或管理 (supervisor)模式执行安全监视器124。
一部分应用程序可以独立于嵌入式操作系统122,并由加载器121 加载,另一部分应用程序可以依赖于嵌入式操作系统122,由嵌入式操作系统122加载并控制其运行。例如安全监视器124可以作为不依赖于嵌入式操作系统122独立存在的应用程序。应用程序(包括A和B)可以包括且不限于用于控制或响应外部设备(例如,生物识别传感器、打印机、麦克风、扬声器、流阀、或其他I/O部件、传感器、致动器、或设备)的程序、用于各种I/O任务的程序、安全性程序、证实程序、各种计算模块、通信程序、通信支持协议、或其他程序、或其组合。
当然,本实施例仅作为一个示例性的描述,本发明还可以实施在其他软硬件结构下,例如可以运行在一个X86架构的计算机系统中,包括经由总线连接的处理器、存储器和IO设备,处理器可以采用目前市场上各种型号的处理器构建,并且采用由WINDOWSTM操作系统版本、UNIX操作系统、Linux操作系统等操作系统驱动。另外,即使采用如图所示的片上系统,其中的组件也可能有很多不同。例如,总线结构就会有多种选择,例如采用OCP(OpenCore Protocol)总线协议或者采用特定领域自主开发的片上总线,进而总线结构可以包括或者不包括例如AHB/APB桥这样的桥接单元,等等。
此外,作为一个可选的实施例,物理内存保护装置103还可以包括一个使能输入端。当处理器向该使能输入端输入一个使能信号时,启用物理内存保护装置103,物理内存保护装置103根据上述实施例,拒绝或者继续一条访问指令。通过使能输入端作为物理内存保护装置103的开关选项,有助于根据安全等级需求实时调整对于内存保护装置的使用。
图2是图1中的物理内存保护装置的结构示意图。如图2所示,物理内存保护装置103包括物理内存保护区域地址寄存器1032、物理内存保护区域权限寄存器1033、设备地址空间保护寄存器1034和物理内存保护仲裁器1031。这三组寄存器包括多个寄存器,用于存储权限数据。物理内存保护区域地址寄存器1032存储保护区域的地址范围,包括常规存储器的存储位置的地址范围和通过MMIO或PMIO映射的设备I/O端口的设备地址。物理内存保护区域权限寄存器1033存储的权限数据用于指示保护区域的配置属性,其中,配置属性包括地址范围匹配的模式,例如,在RISC-V架构处理器中,模式可以为用户模式、管理员模式、Hypervisor模式和机器模式中的一种。配置属性还包括:对于地址范围 (设备地址和常规存储器的存储位置)的访问权限,例如R表示读,W 表示写,X表示执行。设备地址空间保护寄存器1034用于设备地址和独占该硬件设备的应用程序ID。另外,对于该权限数据,可以设定寄存器的“锁”属性,表示权限数据一旦写入,则不可以修改,但是系统重新启动后,权限数据会丢失,在系统上电之时被重新写入,以此确保可以根据实际需求调整对于硬件设备的独占式访问需求。
在本例中,物理内存保护仲裁器1031是用于内存保护检查的逻辑电路,执行硬件逻辑。其包括两方面的工作:1)检查设置的保护区域是否是有效。2)仲裁一个访问指令是否合法。
对于功能1),当安全监视器124向设备地址空间保护寄存器1034 写入一条新的权限数据时,触发物理内存保护仲裁器1031执行。物理内存保护仲裁器1031会读取设备地址空间保护寄存器1034里已有的权限数据和新增的权限数据比对,一旦发现两个不同的应用程序同时对同一个硬件设备独占式访问访问的权限,或者一个应用程序对一个硬件设备具有独占式访问的权限同时另一个应用程序对该硬件设备具有执行权限,也即新增的权限数据和已有的权限数据发生矛盾,就会采取响应的保护措施(比如拒绝执行,重启系统等)。如果没有发现数据矛盾,则认为该设备资源区域配置有效,使得新增操作得以进行。
对于功能2),采用图3所示的流程图演示物理内存保护仲裁器1031 仲裁任意一个访问指令是否合法的硬件逻辑。
在步骤301中,从处理器接收访问指令。
在步骤302中,根据程序指针和物理内存保护区域地址寄存器1032 的地址范围进行比较,确定应用程序的可执行代码所处的地址范围并确定应用程序ID。
在步骤S303中,确定访问指令中针对的访问对象的地址范围。访问指令中可以包括或者不包括访问对象的指示。如果访问指令中包含对访问对象的指示,则根据访问对象的指示得到地址范围,访问对象的指示可以来自处理器对于可执行代码的译码步骤,如果不包括对访问对象的指示,则物理内存保护仲裁器1031可以主动地从处理器抓取正在处理的可执行代码,得到访问对象的指示。
在步骤S304中,将访问对象的地址范围分别和物理内存保护区域地址寄存器1032和物理内存保护区域权限寄存器1033的所有地址范围比较。
在步骤S305中,判断是否存在。当访问对象的地址范围在内存保护区域地址寄存器1032和物理内存保护区域权限寄存器1033同时存在并具有相应权限时,表示应用程序可以访问该地址范围,则执行步骤S306,否则执行步骤S312。
在步骤S306中,采用访问对象的地址范围检索设备地址空间保护寄存器1034。
在步骤S307中,判断是否存在。如果存在相应记录,执行步骤S309,否则执行步骤S308。
在步骤S308中,继续访问指令。即将访问指令发送给相应的常规存储器或发送给相应的硬件设备。
在步骤S309中,检查应用程序ID和记录中的应用程序ID是否相同。如果存在,执行步骤S310,否则执行步骤S311。
在步骤S310中,继续访问指令。
在步骤S311中,拒绝访问指令。
在步骤S312中,拒绝访问指令。
其中,继续访问指令是将访问指令发送给相应的常规存储器或相应的硬件设备,拒绝访问指令是指不对访问指令做处理,或者向处理器发送拒绝访问指令的信息。
在本例中,物理内存保护仲裁器1031的功能1)能够确保权限数据中不会出现两个或以上的应用程序对同一个硬件设备具有独占式访问权限的情况;而功能2)能够保证当其他应用程序(不是独占式访问的权限数据中指定的应用程序)访问一个独占的硬件设备时,该访问指令会被拒绝,从而确保了应用程序对于硬件设备的独占式访问。
安全监视器124写入权限数据的流程为:根据应用程序配置表分别向物理内存保护区域地址寄存器1032和物理内存保护区域权限寄存器 1033写入权限数据,然后判断当前的访问指令是否为对于某个硬件设备的独占式访问,如果是的话,则向设备地址空间保护寄存器1034继续写入权限数据。
图4(a)-图4(d)是一个示例性的权限数据的示意图。其中图4(a)、图4(b)和图4(c)示出了资源信息以及各个主体对于资源信息(包括常规存储器和硬件设备)的访问权限(非独占式访问),图4(a)示出了对于随机访问存储器105各个存储位置的访问权限,图4(b)示出了对于只读存储器106各个存储位置的访问权限,图4(c)示出了对于硬件设备的访问权限,这些数据存储在物理内存保护区域地址寄存器1032和物理内存保护区域权限寄存器1033中。图4(d)示出了硬件设备的设备ID和应用程序ID之间的对应关系,该数据存储在设备地址空间保护寄存器1034,表示独占式访问。
参考图4(a)所示,随机存取存储器105包括应用程序A的运行空间 (行311)、应用程序B的运行空间(行312)、嵌入式操作系统122 的运行空间(行313)、安全监视器124的运行空间(行314),并分别通过物理地址或虚拟地址进行限定。行311的后四列的数据表示应用程序A、B、嵌入式操作系统122和安全监视器124对于应用程序A的运行空间的访问权限,如图上所示,应用程序A、嵌入式操作系统122和安全监视器124都对应用程序A的运行空间具有读写权限。在本例中,可以设定嵌入式操作系统122和安全监视器124运行在特权模式下,而应用程序A和B运行在用户模式下。行312的后四列的数据表示应用程序 A、B、嵌入式操作系统122和安全监视器124对于应用程序B的运行空间的访问权限,如图上所示,应用程序B、嵌入式操作系统122和安全监视器124都对应用程序B的运行空间具有读写权限。行313的后四列的数据表示应用程序A、B、嵌入式操作系统122和安全监视器124对于嵌入式操作系统122的运行空间的访问权限,如图上所示,嵌入式操作系统122和安全监视器124都对嵌入式操作系统122的运行空间具有读写权限。行314的后四列的数据表示应用程序A、B、嵌入式操作系统122 和安全监视器124对于安全监视器124的运行空间的访问权限,如图上所示,只有安全监视器124都对安全监视器124的运行空间具有读写权限。
参考图4(b)所示,只读存储器106包括应用程序A的可执行代码和目录的存储空间、应用程序B的可执行代码和目录的存储空间、嵌入式操作系统122的可执行代码和目录的存储空间以及安全监视器124的可执行代码和目录的存储空间,分别通过物理地址或虚拟地址进行限定地址范围。行321-324的后四列数据表示应用程序A、B、嵌入式操作系统122和安全监视器124对于上述存储空间的访问权限。
参考图4(c)所示,各种硬件设备(包括设备111-113)分别可以通过MMIO或PMIO对应到一个设备地址,行331的后四列分别示出了应用程序A、B、嵌入式操作系统122和安全监视器124对外部设备111的访问权限,行332示出了应用程序A、B、嵌入式操作系统122和安全监视器124对外部设备112的访问权限,行333示出了应用程序A、B、嵌入式操作系统122和安全监视器124对一个设定寄存器的访问权限。
参考图4(d)所示,ID1为应用程序A的ID,ID2为应用程序B的ID,如图上所示,应用程序A对外部设备111(对应于外部设备111的设备地址)具有独占式访问权限,应用程序B对外部设备112(对应于外部设备112的设备地址)具有独占式访问权限。其中,ID可以采用应用程序A的运行空间的地址范围(对应于图4(a)的第一列数据,该地址范围在应用程序运行期间是唯一的)表示,当然,本发明并不对此进行限制。
当应用程序对应用程序的运行空间具有读写权限时,指的是应用程序可以在相应的存储运行空间内执行例如设定代码段、数据段、建立堆栈、存储代码和数据等操作。当应用程序对只读存储器的目录和可执行代码的存储空间具有可读和可执行权限时,指的是应用程序可以进入到相应的目录下,并启动目录下的可执行代码。
应该指出的是,上述权限数据的结构设计只是一个示例性的描述,本领域的技术人员也可以采用与上述不同的结构设计和/或数据组织完成本发明的技术方案。例如,可以只采用物理内存保护区域地址寄存器 1032和物理内存保护区域权限寄存器1033存储独占式访问的权限数据,则当某个应用程序对于特定的硬件设备具有独占式访问权限时,安全监视器124修改这两组寄存器中的权限数据,以使得仅有该应用程序对于该硬件设备具有读写权限,其他应用程序均不具有读写权限。再例如,物理内存保护区域地址寄存器1032和物理内存保护区域权限寄存器 1033存储操作系统分配的用户对于资源信息的访问权限,则由相应用户启动的应用程序对相应资源信息具有相同的访问权限,然后再用设备地址空间保护寄存器1034内的权限数据表示独占式访问。等等。
另外,还应该指出的是,本发明所指的被独占式访问的硬件设备不局限于如图所示的片上系统101之外的外部设备,也可以是片上系统101 之上任意一个元件。
基于上述内容,可以想见,如果一个攻击者修改应用程序配置表(在该分配表中,将应用程序B配置为可以访问应用程序A配置的外部设备),并进入最高操作权限,然后调用安全监视器将修改后的应用程序配置表中的数据写入到寄存器组中,也即,在相应寄存器中增加了应用程序B 可以访问应用程序A的外部设备的权限数据,但是由于设备地址空间保护寄存器1034已经记录了应用程序A的硬件设备是属于应用程序A独占的,所以当再次写入应用程序B可以访问应用程序A配置的硬件设备时,物理内存保护仲裁器1031就会采取响应的保护措施(比如停止执行,重启等)。基于上述步骤,实现了应用程序A配置的硬件设备不可以再分配给应用程序B。同时,物理内存保护仲裁器对于不是来自应用程序A 的、对应用程序A配置的硬件设备的访问,均予以拒绝。从而,通过软硬件逻辑的两层防护实现了应用程序A对于其配置的外部设备的独占式访问。
对于本发明,可以在硬件或专用电路、软件、逻辑或其任何组合中实现上述处理单元、处理系统和电子设备。举例来说,可以在硬件中实现一些方面,而可以在可由控制器、微处理器或其它计算设备执行的固件或软件中实现其它方面,尽管本发明并不限于此。虽然可以将本发明的各个方面说明和描述为框图、流程图或使用一些其它的图形表示来说明和描述本发明的各个方面,但是很好理解的是,作为非限制性例子,可以以硬件、软件、回件、专用电路或逻辑、通用硬件或控制器或其它计算设备,或者其某种组合来实现文中所描述的这些块、装置、系统、技术或方法。如果涉及的话,可以在诸如集成电路模块的各种组件中实施本发明的电路设计。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种系统,包括:
处理器,用于执行应用程序的指令,所述指令包括对硬件设备的访问指令;
存储器,用于存储所述应用程序的指令;
物理内存保护装置,被耦合到所述处理器及所述存储器上,
其中,所述访问指令经由所述物理内存保护装置访问所述硬件设备,所述物理内存保护装置包括:
寄存器组,用于存储权限数据,所述权限数据包括表示特定应用程序对特定硬件设备具有独占式访问权限的数据;
物理内存仲裁器,用于采用硬件逻辑,根据所述权限数据确定所述访问指令是否为所述特定应用程序对所述特定硬件设备的独占式访问指令,并据此拒绝或者继续所述访问指令。
2.根据权利要求1所述的系统,还包括:软件部分的安全监视器,根据应用程序配置表向所述物理内存保护装置的寄存器组中写入所述权限数据。
3.根据权利要求2所述的系统,其中,当所述安全监视器向所述寄存器组内写入所述权限数据时,触发执行所述物理内存保护仲裁器的校验步骤。
4.根据权利要求3所述的系统,其中,所述物理内存保护仲裁器对所述权限数据执行以下的校验步骤:
将新增的权限数据和寄存器组内已有的权限数据进行比对;
如果新增的权限数据中包含的特定应用程序对特定硬件设备的独占式访问权限的数据与在先的权限数据矛盾,则重启所述系统或不执行新增操作。
5.根据权利要求2所述的系统,所述安全监视器在特权模式下执行。
6.根据权利要求1所述的系统,其中,所述访问指令中包含所述硬件设备的设备地址,所述权限数据包含独占式访问的设备地址和应用程序ID的对应关系数据。
7.根据权利要求6所述的系统,其中,所述寄存器组包括:
第一寄存器,用于存储保护区域的地址范围;
第二寄存器,用于指示保护区域的配置属性;
第三寄存器,用于存储保护区域的地址范围和所述应用程序ID,
其中,所述保护区域的地址范围为常规存储器的多个存储位置的地址范围,或者为所述硬件设备的设备地址。
8.根据权利要求7所述的系统,其中,根据所述权限数据确定所述访问指令是否为所述特定应用程序对所述特定硬件设备的独占式访问指令包括:
根据程序指针和所述第一寄存器内的地址范围进行比较,确定所述应用程序的可执行代码所处的地址范围;
根据所述应用程序的可执行代码所处的地址范围确定应用程序ID;
将所述访问指令中包含的设备地址与所述第二寄存器内的地址范围的进行比较,以确定所述应用程序对所述设备地址是否具有访问权限;以及
当所述应用程序对所述设备地址具有访问权限时,根据所述设备地址检索所述第三寄存器,并将检索到的记录中的应用程序ID和所述应用程序ID比较,以确定所述访问指令是否为所述特定应用程序对所述特定硬件设备的独占式访问指令。
9.据权利要求1所述的系统,其中,所述寄存器组内的权限数据写入后不可修改,但在系统关闭后丢失。
10.根据权利要求1所述的系统,其中,所述系统为片上系统。
11.根据权利要求1所述的系统,其中,所述物理内存保护装置设置在所述处理器的内部。
12.根据权利要求2所述的系统,还包括:加载器,用于在系统初始化阶段,加载并执行所述安全监视器。
13.根据权利要求12所述的系统,其中,所述安全监视器和所述加载器存储于所述系统的只读存储器。
14.一种方法,包括:
从处理器接收访问指令,所述指令包括对硬件设备的访问指令
根据访问指令确定发出所述访问指令的应用程序和所述访问指令针对的设备地址;以及
根据权限数据确定所述访问指令是否为特定应用程序对特定硬件设备的独占式访问指令,并据此拒绝或者继续所述访问指令,其中,所述权限数据包括表示特定应用程序对特定硬件设备具有独占式访问权限的数据。
15.根据权利要求14所述的方法,还包括:当写入所述权限数据时,触发执行以下对于新增的权限数据的校验步骤:
将所述新增的权限数据和已有的权限数据进行比对;
如果新增的权限数据中包含的特定应用程序对特定硬件设备的独占式访问权限的数据与在先的权限数据矛盾,则重启所述系统或不执行新增操作。
16.根据权利要求15所述的方法,其中,所述访问指令中包含所述硬件设备的设备地址,所述权限数据包含独占式访问的设备地址和应用程序ID的对应关系。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911039718.0A CN112749397A (zh) | 2019-10-29 | 2019-10-29 | 一种系统和方法 |
PCT/US2020/057047 WO2021086747A1 (en) | 2019-10-29 | 2020-10-23 | Embedded system and method |
US17/078,953 US11586779B2 (en) | 2019-10-29 | 2020-10-23 | Embedded system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911039718.0A CN112749397A (zh) | 2019-10-29 | 2019-10-29 | 一种系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112749397A true CN112749397A (zh) | 2021-05-04 |
Family
ID=75585822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911039718.0A Pending CN112749397A (zh) | 2019-10-29 | 2019-10-29 | 一种系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11586779B2 (zh) |
CN (1) | CN112749397A (zh) |
WO (1) | WO2021086747A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090209A (zh) * | 2021-11-23 | 2022-02-25 | 四川启睿克科技有限公司 | 基于risc-v架构的密码获取方法 |
CN114741740A (zh) * | 2022-06-09 | 2022-07-12 | 睿思芯科(深圳)技术有限公司 | 基于risc-v的物理内存保护方法、系统和相关设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113467844A (zh) * | 2021-06-25 | 2021-10-01 | 厦门码灵半导体技术有限公司 | 适用于工业级应用场景的嵌入式系统的控制方法、嵌入式系统和计算机可读存储介质 |
US20230076376A1 (en) * | 2021-09-09 | 2023-03-09 | Texas Instruments Incorporated | Resource access in a microcontroller |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090150645A1 (en) * | 2007-12-06 | 2009-06-11 | Nec Electronics Corporation | Data processing apparatus and address space protection method |
CN105765535A (zh) * | 2013-11-27 | 2016-07-13 | 思科技术公司 | 对cpu进行独占受控访问的硬件虚拟化模块 |
US20180157603A1 (en) * | 2015-03-23 | 2018-06-07 | Intel Corporation | Dynamic configuration and peripheral access in a processor |
US20180300076A1 (en) * | 2017-04-17 | 2018-10-18 | EMC IP Holding Company LLC | Method, device, and computer readable storage medium for managing storage |
CN109992532A (zh) * | 2019-04-10 | 2019-07-09 | 北京智芯微电子科技有限公司 | 存储空间的访问权限管理方法及存储权限管理单元 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4573119A (en) | 1983-07-11 | 1986-02-25 | Westheimer Thomas O | Computer software protection system |
US5144660A (en) | 1988-08-31 | 1992-09-01 | Rose Anthony M | Securing a computer against undesired write operations to or read operations from a mass storage device |
JP2514292B2 (ja) | 1991-04-25 | 1996-07-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | オペランドペ―ジメモリ及び命令ペ―ジメモリを有するコンピュ―タシステム |
US5237616A (en) | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
US6986052B1 (en) | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US7107459B2 (en) | 2002-01-16 | 2006-09-12 | Sun Microsystems, Inc. | Secure CPU and memory management unit with cryptographic extensions |
US7039756B2 (en) * | 2003-04-28 | 2006-05-02 | Lsi Logic Corporation | Method for use of ternary CAM to implement software programmable cache policies |
US8060756B2 (en) | 2003-08-07 | 2011-11-15 | Rao G R Mohan | Data security and digital rights management system |
US20050144408A1 (en) * | 2003-12-24 | 2005-06-30 | Kenji Ejima | Memory protection unit, memory protection method, and computer-readable record medium in which memory protection program is recorded |
US8332866B2 (en) | 2006-11-29 | 2012-12-11 | Qualcomm Incorporated | Methods, systems, and apparatus for object invocation across protection domain boundaries |
US9038176B2 (en) * | 2011-03-31 | 2015-05-19 | Mcafee, Inc. | System and method for below-operating system trapping and securing loading of code into memory |
AU2012236739A1 (en) | 2011-03-28 | 2013-10-03 | Mcafee, Inc. | System and method for virtual machine monitor based anti-malware security |
JP5595965B2 (ja) | 2011-04-08 | 2014-09-24 | 株式会社東芝 | 記憶装置、保護方法及び電子機器 |
JP5914145B2 (ja) * | 2012-05-01 | 2016-05-11 | ルネサスエレクトロニクス株式会社 | メモリ保護回路、処理装置、およびメモリ保護方法 |
US9395993B2 (en) | 2013-07-29 | 2016-07-19 | Intel Corporation | Execution-aware memory protection |
JP6117068B2 (ja) | 2013-09-20 | 2017-04-19 | 株式会社東芝 | 情報処理装置、およびプログラム |
CN104063641B (zh) * | 2014-06-23 | 2017-11-24 | 华为技术有限公司 | 硬盘安全访问控制方法和硬盘 |
FR3047587B1 (fr) * | 2016-02-10 | 2023-01-13 | Dolphin Integration Sa | Dispositif de traitement muni d'un mode d'acces a des donnees sensibles. |
US20180121125A1 (en) * | 2016-11-01 | 2018-05-03 | Qualcomm Incorporated | Method and apparatus for managing resource access control hardware in a system-on-chip device |
CN108469986B (zh) * | 2017-02-23 | 2021-04-09 | 华为技术有限公司 | 一种数据迁移方法及装置 |
JP6963534B2 (ja) * | 2018-05-25 | 2021-11-10 | ルネサスエレクトロニクス株式会社 | メモリ保護回路及びメモリ保護方法 |
JP2020042341A (ja) * | 2018-09-06 | 2020-03-19 | キオクシア株式会社 | プロセッシングデバイス及びソフトウェア実行制御方法 |
US10824560B2 (en) * | 2019-02-18 | 2020-11-03 | Nxp B.V. | Using a memory safety violation indicator to detect accesses to an out-of-bounds or unallocated memory area |
CN113569245A (zh) * | 2020-04-28 | 2021-10-29 | 阿里巴巴集团控股有限公司 | 处理装置、嵌入式系统、片上系统以及安全控制方法 |
US11336287B1 (en) * | 2021-03-09 | 2022-05-17 | Xilinx, Inc. | Data processing engine array architecture with memory tiles |
-
2019
- 2019-10-29 CN CN201911039718.0A patent/CN112749397A/zh active Pending
-
2020
- 2020-10-23 US US17/078,953 patent/US11586779B2/en active Active
- 2020-10-23 WO PCT/US2020/057047 patent/WO2021086747A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090150645A1 (en) * | 2007-12-06 | 2009-06-11 | Nec Electronics Corporation | Data processing apparatus and address space protection method |
CN105765535A (zh) * | 2013-11-27 | 2016-07-13 | 思科技术公司 | 对cpu进行独占受控访问的硬件虚拟化模块 |
US20180157603A1 (en) * | 2015-03-23 | 2018-06-07 | Intel Corporation | Dynamic configuration and peripheral access in a processor |
US20180300076A1 (en) * | 2017-04-17 | 2018-10-18 | EMC IP Holding Company LLC | Method, device, and computer readable storage medium for managing storage |
CN109992532A (zh) * | 2019-04-10 | 2019-07-09 | 北京智芯微电子科技有限公司 | 存储空间的访问权限管理方法及存储权限管理单元 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090209A (zh) * | 2021-11-23 | 2022-02-25 | 四川启睿克科技有限公司 | 基于risc-v架构的密码获取方法 |
CN114090209B (zh) * | 2021-11-23 | 2024-04-12 | 四川启睿克科技有限公司 | 基于risc-v架构的密码获取方法 |
CN114741740A (zh) * | 2022-06-09 | 2022-07-12 | 睿思芯科(深圳)技术有限公司 | 基于risc-v的物理内存保护方法、系统和相关设备 |
CN114741740B (zh) * | 2022-06-09 | 2022-09-02 | 睿思芯科(深圳)技术有限公司 | 基于risc-v的物理内存保护方法、系统和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021086747A1 (en) | 2021-05-06 |
US11586779B2 (en) | 2023-02-21 |
US20210124847A1 (en) | 2021-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102244645B1 (ko) | 인증된 변수의 관리 | |
JP4288209B2 (ja) | システム・オン・チップのためのセキュリティ・アーキテクチャ | |
CN111651778B (zh) | 基于risc-v指令架构的物理内存隔离方法 | |
JP4846660B2 (ja) | システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法 | |
JP4823481B2 (ja) | 安全な環境を初期化する命令を実行するシステムおよび方法 | |
JP6306578B2 (ja) | メモリ保護装置及び保護方法 | |
CN112749397A (zh) | 一种系统和方法 | |
CN103377349B (zh) | 安全控制的多处理器系统 | |
RU2513909C1 (ru) | Ограничение областей памяти для считывания команд в зависимости от аппаратного режима и флага безопасности | |
US8161258B2 (en) | Method to qualify access to a block storage device via augmentation of the device'S controller and firmware flow | |
Cho et al. | {Hardware-Assisted}{On-Demand} Hypervisor Activation for Efficient Security Critical Code Execution on Mobile Devices | |
KR20170095161A (ko) | 시큐어 시스템 온 칩 | |
US9507941B2 (en) | Method of verifying integrity of electronic device, storage medium, and electronic device | |
US10146962B2 (en) | Method and apparatus for protecting a PCI device controller from masquerade attacks by malware | |
CN108154032B (zh) | 具有内存完整性保障功能的计算机系统信任根构建方法 | |
KR20150038574A (ko) | 타겟 디바이스의 능동 모니터링, 메모리 보호 및 무결성 검증을 위한 방법, 시스템 및 컴퓨터 판독 가능 매체 | |
US20210089684A1 (en) | Controlled access to data stored in a secure partition | |
JP6370098B2 (ja) | 情報処理装置、情報処理監視方法、プログラム、及び記録媒体 | |
US10552345B2 (en) | Virtual machine memory lock-down | |
JP7213879B2 (ja) | 間接アクセスメモリコントローラ用のメモリ保護装置 | |
CN112818327A (zh) | 基于TrustZone的用户级代码和数据安全可信保护方法及装置 | |
CN113094700A (zh) | 执行安全操作的系统以及系统执行安全操作的方法 | |
JP2019525319A (ja) | コンテキストベースの保護システム | |
EP3246821B1 (en) | Semiconductor device and its memory access control method | |
CN114065257A (zh) | 地址空间的保护方法、保护装置、设备和存储介质 |
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 |