CN104217139A - 处理系统 - Google Patents
处理系统 Download PDFInfo
- Publication number
- CN104217139A CN104217139A CN201410200577.7A CN201410200577A CN104217139A CN 104217139 A CN104217139 A CN 104217139A CN 201410200577 A CN201410200577 A CN 201410200577A CN 104217139 A CN104217139 A CN 104217139A
- Authority
- CN
- China
- Prior art keywords
- access
- code
- enable
- memory
- firmware
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 19
- 238000011161 development Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 60
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 101100048436 Caenorhabditis elegans unc-1 gene Proteins 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 101100048443 Caenorhabditis elegans unc-3 gene Proteins 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003612 virological effect Effects 0.000 description 1
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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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
- G06F21/79—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 in semiconductor storage media, e.g. directly-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种处理系统及方法。该处理系统包括:处理单元;存储器,适用于存储用于处理器执行的固件代码和应用程序代码;以及存储器访问控制单元,适用于控制处理单元对存储在存储器中的固件代码和应用程序代码的访问。存储器访问控制单元适用于,当使能对应用程序代码的访问时不使能对固件代码的访问,以及当不使能对应用程序代码的访问时使能对固件代码的访问。
Description
技术领域
本发明涉及处理系统,特别是涉及控制处理系统的处理单元对处理系统存储的固件的访问。
背景技术
安全性对诸如微处理器的处理系统来说是重要考虑因素。例如,希望确保处理器仅执行由一段可执行程序代码(或等同的指令组,诸如脚本)描述的特定任务。然而,代码和/或代码的执行可能会受到攻击。攻击可能包括以下情况:
-未经授权修改所存储的程序代码;
-在执行期间修改代码;
-代码转存(例如出于反向工程的目的读取出代码)
-未经授权更改存储器访问权限;
-从数据段执行未经授权的代码。
固件,例如基本输入/输出系统(BIOS)代码或核心系统软件代码,通常可以识别和初始化处理系统或电子设备的硬件子系统和组件。所以通过第三方对固件进行的反向工程可以指示出使用固件集成电路的系统的硬件结构。此外,对固件成功的攻击(诸如上面列出的那些攻击)能够使第三方改变处理系统的操作,阻止处理系统正确地操作,和/或将病毒传输到组件或其他系统/设备。
已经知道利用基于硬件的安全措施来保护固件,诸如将固件存储到非易失性存储器(诸如只读存储器ROM)中,以致不能修改存储器中的固件。然而,这种方法并不能足以阻止第三方出于不希望的目的或未经授权的目的来访问和分析固件。
在第三方开发领域中,第三方开发者直接在处理系统上开发和调试应用程序,因此这样的安全考虑对于第三方开发领域来说是很重要的。对于这样的开发,处理系统可能需要执行由厂商提供的在应用程序执行期间使用的嵌入固件,但是可能希望在应用程序执行期间,出于安全原因,对第三方开发者隐藏/保护固件。
发明内容
本发明提供了用于控制对处理系统的固件代码的访问的解决方案。利用本发明可以在片上系统应用程序开发系统内部提供嵌入的并且安全的固件执行。因此,这样的开发系统能够使第三方开发者使用系统现有的固件用于应用程序开发,同时还能够阻止第三方开发者出于未经授权的目的(诸如分析和/或反向工程)访问固件代码。因此,实施例可以通过控制对固件代码的访问来限制或阻止软件反向工程。
根据本发明的实施例,提供一种处理系统。
该处理系统可以是微处理器,微芯片或处理平台。因此,处理器可以是中央处理器(CPU)或处理器内核。
该系统还可以包括调试接口,调试接口用于使能对存储器存储的应用程序代码的调试。存储器访问控制单元可以适用于不使能调试接口,以便当使能对固件代码的访问时不能进行调试。
存储器访问控制单元可以被连接在处理器和存储器之间,其中存储器访问控制单元还可以适用于截获来自处理器的存储器访问请求,并基于截获的存储器访问请求来控制对存储器的访问。
存储器访问控制单元可以包括寄存器,寄存器适用于存储表示固件代码在存储器中的位置的地址,以及其中存储器访问控制单元还可以适用于判断是否截获的存储器访问请求是请求访问存储在寄存器中的地址,并基于判断结果来控制对存储器的访问。
存储器访问控制单元可以在非易失性存储器(诸如只读存储器ROM)中实现,以便保护其不被修改。
根据本发明的实施例,提供一种用于控制前述处理系统的处理单元对处理系统的存储器存储的固件代码和应用程序代码的访问的方法。
附图说明
图1是根据本发明的实施例的处理系统的示意性框图;
图2是图1的实施例的存储器访问控制单元的示意性框图;
图3描绘的是根据本发明的实施例在应用程序代码和固件代码之间进行模式切换的例子;
图4描绘的是根据本发明的实施例在应用程序代码和固件代码之间进行模式切换的另一个例子,其中执行用于固件代码的补丁代码;
图5是描绘图1的实施例的操作模式的序列的状态图;
图6是根据本发明的实施例的系统的存储器映象,进一步描绘了在正常模式和安全模式中存储器的可访问性;以及
图7是根据本发明的实施例的方法的流程图。
具体实施方式
除了通常存在于处理系统中的组件(处理器单元或CPU,存储器以及外围设备,这些组件都通过通信总线/桥连接起来)之外,本文中提出的实施例还包括另外的组件:存储器访问控制单元(以下简称防火墙)。防火墙通过控制对固件代码的访问来使处理系统不受到不希望的或未经授权的攻击。
这里,固件代码应当被理解为是指永久存储器以及存储在其中的程序代码和数据的组合,诸如BIOS代码或用于处理系统的核心系统软件代码,固件代码通常由处理系统的厂商或供应商设置在非易失性存储器中。固件代码与应用程序代码的不同之处在于,应用程序代码通常被设计成执行固件代码提供的函数以及除此之外的高级函数或补充函数,应用程序代码通常是(一般以计算机程序的形式)存储在易失性存储器上的机器可读指令组,易失性存储器指示处理器执行具体操作。因此,固件代码通常被永久地存储在硬件中(具体是存储在非易失性存储器中),而应用程序代码通常被存储在易失性存储器或可编程存储器中,以便可以对其进行修改。
固件代码被硬件实现继承,与它的应用程序无关。固件代码支持两种不同类型的服务:低级服务和安全私有功能,其中低级服务包括通用接口控制处理和硬件抽象化层(寄存器控制,功率调节等等),安全私有功能包括启动序列,对最终用户提供服务保护(例如访问限制)以及系统管理。通常保护代码不受到最终用户的攻击破坏(例如防止对代码进行未经授权的修改)。
相反,应用程序代码用于处理系统的最终使用,与硬件实现解决方案无关。可以通过复用低级函数(部分固件代码)来开发任何应用程序代码。该代码对最终用户开放以提高适应性。
当使能对应用程序代码的访问时,防火墙阻止对固件代码的访问,以及当使能对固件代码的访问时,防火墙阻止对应用程序代码的访问。这样,(例如为了第三方应用程序开发)可以执行固件代码而阻止对应用程序代码的访问(例如应用程序代码可能是不安全的和/或可编辑的)。相反,(例如为了第三方应用程序开发)可以访问应用程序代码而阻止对固件代码的访问。
防火墙(或存储器访问控制单元)控制对处理系统的存储器区域的访问。因此可以限制处理系统的组件对存储器区域例如ROM的访问。防火墙使能或不使能对某些存储器区域的访问的决定是受系统的操作模式限制的。例如,在特定实施例中,防火墙可以适用于基于代码是否是固件代码或应用程序代码的一部分来允许或拒绝从存储器的某些区域获取代码。因此,可以限制处理器单元仅访问存储器的被识别为是安全的区域(例如用于存储固件代码的非易失性存储器区域),阻止访问存储器的被识别为是不安全的一个或多个其他区域。可以阻止处理器单元同时访问存储器的安全区域(例如非易失性区域)和不安全区域(例如易失性区域)。
图1是根据本发明的实施例的处理系统100的示意性框图。该处理系统100包括(具有调试接口103的)处理器单元或CPU102,其通过存储器访问控制单元或防火墙105连接到通信总线104。这里,CPU102的调试接口103是调试JTAG接口103,其连接到调试探测器103a以使用户能够检查和调试代码。然而在其他实施例中,调试接口103可以包括串行线调试(SWD:Serial Wire debug)。SWD为严格限制引脚的封装提供调试端口,经常的情况是为小封装微处理器(也可以是引脚数限制至关重要的复杂的ASIC),这在设备成本方面是控制因素。
另外,易失性存储单元106和非易失性存储单元108、外围设备110(诸如接口,协处理器)以及复位/电源管理单元112也连接到通信总线104。
这里,非易失性存储器单元108包括ROM单元108,其中存储有:用于启动/初始化系统100的固件启动代码序列;在第三方应用程序执行期间受保护的安全固件代码;起源于厂商内部固件的服务执行;以及调度函数代码,用于从用户应用程序执行模式切换到固件执行模式。
易失性存储器106包括随机访问存储器(RAM)单元106a和诸如闪存或EEPROM的可编程存储器106b。RAM单元106a用于存储在启动代码执行期间或应用程序代码执行期间由CPU102所使用的数据。可编程存储器106b适用于存储来自第三方开发者的应用程序代码(例如用于系统的最终应用的程序代码);另外的安全固件代码;和/或对安全固件代码在ROM单元108中提供保护的补丁代码。可编程存储器106b还可以存储调度函数代码(如果调度函数代码不位于ROM单元108中/不从ROM单元108来获得调度函数代码的话)。
因此,应当理解的是,不像常规的处理系统,图1的系统100还包括存储器访问控制单元或防火墙105。防火墙105(至少)能够从处理器102接收代码访问请求,以及控制处理器102对系统存储器区域的访问。因此,例如,防火墙105可以被连接在处理器102和通信总线104之间。
防火墙105适用于管理不同的系统模式以执行固件保护。在默认情况下,在调试接口103被锁定并且不能使用期间,系统在“系统模式”启动。
一旦启动过程已经完成,固件将指示防火墙105进入正常模式。当处于正常模式时,可以执行位于可编程存储器106b中的第三方开发者的应用程序代码,并阻止对ROM单元108中的固件代码的访问。当应用程序代码调用位于ROM单元108中的安全固件代码中定义的函数时,防火墙105使系统进入安全模式。当处于安全模式时,可以执行位于ROM单元108中的固件代码,并且阻止对可编程存储器106b中的应用程序代码的访问。
因此,取决于系统所处的操作模式,防火墙105适用于控制对系统100的存储器106、108的访问。基于是否正在执行第三方应用程序代码或固件代码,防火墙105判断是否准许或拒绝对某些存储器区域的访问。例如,防火墙105阻止对固件代码和第三方应用程序代码的同时访问。
现在参考图2来更加详细地描述图1的防火墙105的示范性操作。
防火墙105包括地址/数据总线解析器115,多个寄存器1201-120n,以及状态控制器125,其中每个寄存器适用于存储接入点地址。地址/数据总线解析器115截获来自CPU102的指令,并利用地址比较器来比较指令的地址请求和包含在寄存器120中的接入点地址。
在位于可编程存储器106b中的应用程序代码执行期间,防火墙105允许应用程序代码通过单个接入点调用位于ROM单元108中的固件代码。用于调用固件代码的接入点被定义在防火墙105的寄存器120中。注意,在应用程序代码执行期间(即在正常模式期间),防火墙105的寄存器120是不能被处理器102访问的。
对于来自处理器102的每个新的总线访问,防火墙105都检查寄存器120中的接入点地址,以判断该接入点地址是否等于处理器102所要求的地址。如果所要求的地址与接入点地址相匹配,则判断应用程序代码正在调用固件代码,因此防火墙105不使能对可编程存储器106的任何其他访问并且不使能调试接口103。换句话说,如果判断应用程序代码正在调用固件代码,则防火墙使系统进入安全模式,在安全模式中,能够访问或执行位于ROM单元108中的固件代码,不使能调试接口103和对可编程存储器106b的访问。
从这一点来看(即当处于安全模式时),能够以高安全级别执行ROM单元108中的固件代码,因为对可编程存储器106b的访问是不使能的并且调试接口是被锁定的。还要注意,在此期间,允许安全固件代码访问防火墙寄存器120。另外,如果系统100在可编程存储器106b中包含一些安全固件代码,则防火墙105使能这些安全固件代码的执行。这例如可以被用于执行固件代码的补丁。
在安全固件代码的执行结束时(例如当防火墙105检测到返回过程时),防火墙105使系统重新进入正常模式(在正常模式中,不使能对固件代码的访问,使能对可编程存储器106b中的应用程序代码的访问,并且使能调试接口103)。注意,只有当安全固件代码清除防火墙105的寄存器120中的一位时才可以再使能对可编程存储器106b的访问,以允许切换回到正常模式。对于防火墙105检测到返回过程而没有清除防火墙105的寄存器120中的这一位的情况,出于安全目的,防火墙105将自动复位处理器102和RAM106a。此外,如果应用程序代码试图调用ROM108内的固件代码的地址,其中该地址不是静态接入点地址,则防火墙105复位处理器102和RAM106a,以阻止对安全固件的非法访问。
取决于实施例,可以采用集中式实现方式或分布式实现方式来实现防火墙105(或存储器访问控制单元)。在集中式实现方式中,由一个设备来执行防火墙105的功能并管理所有存储器。在分布式实现方式中,每个存储器类型可以具有自己的设备来执行仅用于特定存储器的防火墙105的部分功能。
基于实施例,可以将防火墙105实现为处理器(平台)的现有组件的一部分,现有组件诸如是存储器管理单元,存储器保护单元,地址解码器,存储器接口(在分布式实现的情况中),或者可以将其实现为独立的设备。
防火墙105还可以阻止处理单元(CPU)102以多种不同的方式执行命令。例如,它可以产生存储器错误,触发中断,提供不可执行指令,返回无操作指令,或上述各项的组合。
现在参考图3描述在应用程序代码和固件代码之间进行模式切换的例子。
如上面参考图2已经描述的,防火墙105对安全固件代码提供单个接入点。这个接入点位于预定的固定地址,该地址与调度函数的地址对应。一个或多个参数被提供给调度函数,以定义执行安全固件代码的哪个函数。
当调度函数被调用时(即当预定的固定地址被请求时),防火墙105通过使能对安全固件代码的访问以及不使能对应用程序代码和调试接口的访问,将系统从正常模式切换到安全模式(步骤#1)。
然后执行ROM中的调度函数,并基于被提供给调度函数的参数来执行安全固件的函数(步骤#2)。这里,所提供的参数是R0=Func1_addr,该参数请求安全固件的第一函数Func1()。
在执行安全固件代码的函数之后,(通过像正常返回函数那样处理)离开调度函数并返回到应用程序代码。当返回到应用程序代码时,防火墙105通过不使能对安全固件的访问以及使能对应用程序代码和调试接口的访问,将系统从安全模式切换到正常模式(步骤#3)。
然后继续执行应用程序代码,直到调度函数被再次调用。当再次调用调度函数时,防火墙105通过使能对安全固件的访问并且不使能对应用程序代码和调试接口的访问,将系统从正常模式切换到安全模式(步骤#4)。
然后执行ROM中的调度函数,并基于被提供给调度函数的参数来执行安全固件的函数(步骤#5)。这里,用于对调度函数进行第二次调用的参数是R0=Func3_addr,该参数请求安全固件的第三函数Func3()。
在执行安全固件的函数之后,(通过像正常返回函数那样处理)离开调度函数并返回到应用程序代码。当返回到应用程序代码时,防火墙105通过不使能对安全固件的访问以及使能对应用程序代码和调试接口的访问,将系统从安全模式切换到正常模式(步骤#6)。
对于一些安全固件还位于可编程存储器中的实施例,还可以使调度函数位于可编程存储器中。
实施例还可以执行用于安全固件代码的补丁代码。补丁代码可以位于可编程存储器的安全区域中,并且可以在需要更正安全固件代码的执行时使用补丁代码。
图4描绘的是在应用程序代码和固件代码之间进行模式切换的例子,其中固件代码利用可编程存储器的区域中的补丁代码。
当执行应用程序代码并调用调度函数时(即当预定的固定地址被请求时),防火墙105通过使能对安全固件的访问以及不使能对应用程序代码和调试接口的访问,将系统从正常模式切换到安全模式(步骤#01)。
然后执行ROM中的调度函数,并基于被提供给调度函数的参数来执行安全固件的函数(步骤#02)。这里,被提供的参数是R0=Func1_addr,该参数请求安全固件的第一函数Func1()。
当执行安全固件的函数Func1()时,请求执行补丁代码,因此调用并执行补丁代码(步骤#03)。
在执行安全固件的函数Func1()之后,(通过像正常返回函数那样处理)离开调度函数并返回到应用程序代码。当返回到应用程序代码时,防火墙105通过不使能对安全固件的访问以及使能对应用程序代码和调试接口的访问,将系统从安全模式切换到正常模式(步骤#04)。
然后继续执行应用程序代码,直到调度函数被再次调用。当再次调用调度函数时,防火墙105通过使能对安全固件的访问以及不使能对应用程序代码和调试接口的访问,将系统从正常模式切换到安全模式(步骤#05)。
然后执行ROM中的调度函数,并基于被提供给调度函数的参数来执行安全固件的函数(步骤#05)。这里,用于对调度函数进行第二次调用的参数是R0=Func3_addr,该参数请求安全固件的第三函数Func3()。
在执行安全固件的函数之后,(通过像正常返回函数那样处理)离开调度函数并返回到应用程序代码。当返回到应用程序代码时,防火墙105通过不使能对安全固件的访问以及使能对应用程序代码和调试接口的访问,将系统从安全模式切换到正常模式(步骤#07)。
调度代码执行的例子:
调度函数位于ROM单元108中唯一的接入点的地址处。调度函数接受最多4个参数。根据内部服务定义,第一参数是输入参数,其他三个参数可以是输入或输出参数,或输入和输出参数。
第一参数是服务标识符,其值大于0且小于(或等于)系统中可以得到的服务的数目。因此,第一参数是要被调用的服务的索引。任何其他的值会引起系统错误并触发复位。
三个其他的参数被传输到被调用的服务。根据每个服务以及它们使用这些参数的方式,可以作为参考来读、写、使用这些参数,或简单地不忽视这些参数。由每个服务根据它的目的来检查参数值的一致性。预料之外的值会引起系统错误并触发系统复位。
根据实施例用于调度函数的伪代码的例子如下:
调度函数的最后一个操作是使能防火墙将系统切换回正常模式。
图5描绘的是图1的实施例的操作模式的状态图。图中显示有四种操作模式:上电复位模式100;系统模式200;正常模式300;以及安全模式400。
上电复位模式100实现电路电源初始化,然后进行到系统模式200。在系统模式200中,随着不使能CPU102的调试接口并且执行安全固件以启动系统,103接收电路启动序列。在系统模式200的电路启动序列完成之后,系统进行到正常模式300。
在正常模式300中,执行可编程存储器中的应用程序代码,同时防火墙105不使能对安全固件的访问。此外,使能CPU102的调试接口103以允许调试应用程序代码。
当(例如通过请求存储在防火墙的寄存器中的预定的单个接入点的地址)调用固件代码时,防火墙105使系统处于安全模式400。在安全模式400中,执行所请求的固件代码,同时防火墙105不使能对可编程存储器中的应用程序代码的访问。此外,在安全模式400中不使能CPU102的调试接口103。
一旦固件的执行已经在安全模式400完成,则系统返回到正常模式300。
图6是根据本发明的实施例的系统的存储器映象。该图描绘了在正常模式和安全模式中系统的存储器各区域的可访问性。应当理解的是,在正常模式300期间(例如当第三方应用程序代码执行时),防火墙的寄存器、可编程存储器中的安全区域以及ROM是不能访问的。
图7是根据本发明的实施例的方法的流程图。该方法用于控制处理系统的处理单元对处理系统的存储器存储的固件代码和应用程序代码的访问。
该方法开始于步骤302,在该步骤中,系统处于正常模式,其中防火墙不使能对固件代码的访问以及使能对应用程序代码的访问。接下来,在步骤304中,执行应用程序代码,然后该方法进行到步骤306,在步骤306中,判断是否所执行的应用程序代码正在调用固件代码(例如固件函数)。如果判断所执行的应用程序代码不在调用固件代码,则该方法返回到步骤302。然而,如果在步骤306中判断所执行的应用程序代码正在调用固件代码,则该方法进行到步骤308。
在步骤308中,系统在安全模式中操作,其中防火墙使能对固件代码的访问以及不使能对应用程序代码的访问。接下来,在步骤310中,执行被调用的固件代码,一旦固件代码的执行完成,该方法就返回到步骤302,在步骤302中,系统再次在正常模式中操作。
可以在计算机程序产品中获得实施例,计算机程序产品用于在计算机的处理器上执行,计算机例如是个人计算机或网络服务器,如果计算机程序产品在计算机上执行,会使计算机执行根据实施例的方法的各个步骤。由于这些步骤在计算机程序产品中的执行仅需要本领域技术人员的常规技能,因此在本文中出于文本简洁的原因,就不对这样执行的内容作更详细的描述了。
在实施例中,计算机程序产品被存储在计算机可读介质上。任何合适的计算机可读介质都是可以使用的,例如CD-ROM、DVD、USB棒、存储卡、网络区域存储设备、因特网可访问的数据存储器等。
基于本文中的附图、公开的内容以及所附的权利要求,本领域技术人员在实施本发明时可以想到本文中所公开的实施例的其他变形例。本文中所使用的“包括”并不排除其他组成部分或步骤,本文中的“一”或“一个”并不排除多个。单个处理器或其他单元可以完成本文的权利要求中所述的各个部件的功能。事实是,某些措施在相互不同的从属权利要求中被叙述并不表示这些措施的组合不能被有利地使用。计算机程序可以存储/分布在合适的介质上,诸如光存储介质或固态存储介质以及部分其他硬件,但是也可以以其他形式分布,诸如经由因特网其他有线或无线远程通信系统。权利要求中出现的参考标号并不用来限制保护范围。
Claims (13)
1.一种处理系统,其特征在于,包括:
处理单元;
存储器,适用于存储用于处理器执行的固件代码和应用程序代码;以及
存储器访问控制单元,适用于控制处理单元对存储在存储器中的固件代码和应用程序代码的访问,
其中存储器访问控制单元适用于,当使能对应用程序代码的访问时不使能对固件代码的访问,以及当不使能对应用程序代码的访问时使能对固件代码的访问。
2.如权利要求1所述的系统,其特征在于,还包括调试接口,调试接口用于使能对存储器存储的应用程序代码的调试,以及其中存储器访问控制单元适用于不使能调试接口,以便当使能对固件代码的访问时不能进行调试。
3.如权利要求1或2所述的系统,其特征在于,存储器包括适用于存储固件代码的非易失性存储器和适用于存储应用程序代码的易失性存储器。
4.如在前的任意一项权利要求所述的系统,其特征在于,存储器访问控制单元被连接在处理器和存储器之间,其中存储器访问控制单元还适用于截获来自处理器的存储器访问请求,并基于截获的存储器访问请求来控制对存储器的访问。
5.如权利要求4所述的系统,其特征在于,存储器访问控制单元包括寄存器,寄存器适用于存储表示固件代码在存储器中的位置的地址,以及其中存储器访问控制单元还适用于判断是否截获的存储器访问请求是请求访问存储在寄存器中的地址,并基于判断结果来控制对存储器的访问。
6.如权利要求4或5所述的系统,其特征在于,存储器访问控制单元还适用于,当使能对固件代码的访问时,使能对寄存器的访问,以及当使能对应用程序代码的访问时,不使能对寄存器的访问。
7.如在前的任意一项权利要求所述的系统,其特征在于,至少部分存储器访问控制单元在只读存储器中实现。
8.一种微处理器,其特征在于,包括如在前的任意一项权利要求所述的处理系统。
9.一种片上系统应用程序开发系统,其特征在于,包括根据权利要求1-7中任一项所述的处理系统。
10.一种用于控制处理系统的处理单元对处理系统的存储器存储的固件代码和应用程序代码的访问的方法,其特征在于,该方法包括以下步骤:
当使能对应用程序代码的访问时,不使能对固件代码的访问;以及
当使能对固件代码的访问时,不使能对应用程序代码的访问。
11.根据权利要求10所述的方法,其特征在于,还包括不使能调试接口的步骤,以便当使能对固件代码的访问时不能进行调试。
12.如权利要求10或11所述的方法,其特征在于,还包括以下步骤;
截获来自处理器的存储器访问请求;以及
基于截获的存储器访问请求来控制对存储器的访问。
13.如权利要求12所述的方法,其特征在于,基于截获的存储器访问请求来控制对存储器的访问的步骤包括:
判断是否截获的存储器访问请求是请求访问预定地址;以及
基于判断结果来控制对存储器的访问。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13290119.0A EP2808818B1 (en) | 2013-05-29 | 2013-05-29 | Processing system |
EP13290119.0 | 2013-05-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104217139A true CN104217139A (zh) | 2014-12-17 |
CN104217139B CN104217139B (zh) | 2019-05-07 |
Family
ID=48748102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410200577.7A Expired - Fee Related CN104217139B (zh) | 2013-05-29 | 2014-05-13 | 处理系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9355276B2 (zh) |
EP (1) | EP2808818B1 (zh) |
CN (1) | CN104217139B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038356A (zh) * | 2017-12-08 | 2018-05-15 | 北京联盛德微电子有限责任公司 | 一种rom和二级boot对用户软件的保护方法 |
CN110663025A (zh) * | 2017-05-26 | 2020-01-07 | 微软技术许可有限责任公司 | 核映射 |
CN111916131A (zh) * | 2019-05-08 | 2020-11-10 | 慧荣科技股份有限公司 | 具安全性扩充的数据储存装置以及非挥发式存储器控制方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690942B2 (en) * | 2014-10-22 | 2017-06-27 | Hong Fu Jin Precision Industry (Wuhan) Co., Ltd. | SIO device with SPI bus gateway controller for write protection |
WO2017019061A1 (en) * | 2015-07-29 | 2017-02-02 | Hewlett Packard Enterprise Development Lp | Firewall to determine access to a portion of memory |
US10587575B2 (en) * | 2017-05-26 | 2020-03-10 | Microsoft Technology Licensing, Llc | Subsystem firewalls |
US10353815B2 (en) | 2017-05-26 | 2019-07-16 | Microsoft Technology Licensing, Llc | Data security for multiple banks of memory |
US10783240B2 (en) * | 2017-09-29 | 2020-09-22 | Stmicroelectronics, Inc. | Secure environment in a non-secure microcontroller |
CN110489137B (zh) | 2018-05-15 | 2024-04-09 | 恩智浦美国有限公司 | 用于更新无线充电器中的固件的系统和方法 |
FR3090923B1 (fr) * | 2018-12-21 | 2021-09-17 | Thales Sa | Dispositif de contrôle généralisé des transferts mémoires pour les accès concurrentiels sur un système sur une puce |
US11921655B2 (en) | 2021-05-04 | 2024-03-05 | Stmicroelectronics, Inc. | Dynamic memory protection device system and method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117575A1 (en) * | 2001-04-03 | 2004-06-17 | Jean-Francios Link | System and method for controlling access to protected data stored in a storage unit |
US20070033454A1 (en) * | 2005-07-15 | 2007-02-08 | Seagate Technology Llc | Method and apparatus for securing communications ports in an electronic device |
US20080163359A1 (en) * | 2007-01-03 | 2008-07-03 | Texas Instruments Incorporated | Static And Dynamic Firewalls |
US20120079563A1 (en) * | 2009-03-24 | 2012-03-29 | G2, Labs LLC. | Method and apparatus for minimizing network vulnerability via usb devices |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5867655A (en) * | 1993-12-08 | 1999-02-02 | Packard Bell Nec | Method to store privileged data within the primary CPU memory space |
US7069452B1 (en) * | 2000-07-12 | 2006-06-27 | International Business Machines Corporation | Methods, systems and computer program products for secure firmware updates |
US20030037237A1 (en) * | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
US6953452B2 (en) * | 2001-12-31 | 2005-10-11 | Kimberly-Clark Worldwide, Inc. | Mechanical fastening system for an absorbent article |
US6883075B2 (en) * | 2002-01-17 | 2005-04-19 | Silicon Storage Technology, Inc. | Microcontroller having embedded non-volatile memory with read protection |
US7254716B1 (en) * | 2002-02-13 | 2007-08-07 | Lsi Corporation | Security supervisor governing allowed transactions on a system bus |
EP1877947A4 (en) * | 2005-05-05 | 2009-11-25 | Certicom Corp | AUTHENTICATION OF RETROINSTALLATION ON A MICROLOGICIEL |
JP4886682B2 (ja) * | 2005-05-26 | 2012-02-29 | パナソニック株式会社 | データ処理装置 |
US20070113064A1 (en) | 2005-11-17 | 2007-05-17 | Longyin Wei | Method and system for secure code patching |
US8099629B2 (en) * | 2006-07-14 | 2012-01-17 | Marvell World Trade Ltd. | System-on-a-chip (SoC) test interface security |
US7949874B2 (en) | 2006-09-28 | 2011-05-24 | Phoenix Technologies Ltd. | Secure firmware execution environment for systems employing option read-only memories |
US8423794B2 (en) * | 2006-12-28 | 2013-04-16 | Sandisk Technologies Inc. | Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications |
EP2116934B1 (en) * | 2007-03-02 | 2013-04-10 | Panasonic Corporation | Reproducing apparatus, system lsi, and initialization method |
US8171309B1 (en) * | 2007-11-16 | 2012-05-01 | Marvell International Ltd. | Secure memory controlled access |
US8214653B1 (en) * | 2009-09-04 | 2012-07-03 | Amazon Technologies, Inc. | Secured firmware updates |
US8789170B2 (en) * | 2010-09-24 | 2014-07-22 | Intel Corporation | Method for enforcing resource access control in computer systems |
US8549644B2 (en) * | 2011-03-28 | 2013-10-01 | Mcafee, Inc. | Systems and method for regulating software access to security-sensitive processor resources |
JP2014513348A (ja) * | 2011-04-08 | 2014-05-29 | インサイド ソフトウェア コーポレーション | 統合拡張ファームウェアインタフェース準拠計算装置内のシステムセキュリティデータベースおよびファームウェア格納部を変更する要求を処理するシステムおよび方法 |
GB2503470B (en) * | 2012-06-27 | 2014-08-13 | Nordic Semiconductor Asa | Memory protection |
-
2013
- 2013-05-29 EP EP13290119.0A patent/EP2808818B1/en not_active Not-in-force
-
2014
- 2014-04-22 US US14/258,933 patent/US9355276B2/en active Active
- 2014-05-13 CN CN201410200577.7A patent/CN104217139B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117575A1 (en) * | 2001-04-03 | 2004-06-17 | Jean-Francios Link | System and method for controlling access to protected data stored in a storage unit |
US20070033454A1 (en) * | 2005-07-15 | 2007-02-08 | Seagate Technology Llc | Method and apparatus for securing communications ports in an electronic device |
US20080163359A1 (en) * | 2007-01-03 | 2008-07-03 | Texas Instruments Incorporated | Static And Dynamic Firewalls |
US20120079563A1 (en) * | 2009-03-24 | 2012-03-29 | G2, Labs LLC. | Method and apparatus for minimizing network vulnerability via usb devices |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110663025A (zh) * | 2017-05-26 | 2020-01-07 | 微软技术许可有限责任公司 | 核映射 |
CN108038356A (zh) * | 2017-12-08 | 2018-05-15 | 北京联盛德微电子有限责任公司 | 一种rom和二级boot对用户软件的保护方法 |
CN111916131A (zh) * | 2019-05-08 | 2020-11-10 | 慧荣科技股份有限公司 | 具安全性扩充的数据储存装置以及非挥发式存储器控制方法 |
CN111916131B (zh) * | 2019-05-08 | 2022-08-26 | 慧荣科技股份有限公司 | 具安全性扩充的数据储存装置以及非挥发式存储器控制方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2808818B1 (en) | 2016-07-13 |
EP2808818A1 (en) | 2014-12-03 |
CN104217139B (zh) | 2019-05-07 |
US9355276B2 (en) | 2016-05-31 |
US20140359788A1 (en) | 2014-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104217139A (zh) | 处理系统 | |
US8336095B2 (en) | User space virtualization system | |
CN106682497B (zh) | 在管理程序模式下安全执行代码的系统和方法 | |
Wan et al. | RusTEE: developing memory-safe ARM TrustZone applications | |
KR101618535B1 (ko) | 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호 | |
JP7228751B2 (ja) | 権限管理のための方法および装置、コンピュータ機器ならびに記憶媒体 | |
CN107301082B (zh) | 一种实现操作系统完整性保护的方法和装置 | |
TW201015323A (en) | Secure information processing | |
WO2015047295A1 (en) | Application control flow models | |
CN103279712A (zh) | 增强系统安全性的方法、校验装置及安全系统 | |
CN115629820A (zh) | 系统安全启动方法、芯片系统、存储介质及电子设备 | |
CN117313127A (zh) | 数据访问权限控制方法、装置、电子设备及存储介质 | |
CN109446755B (zh) | 内核钩子函数保护方法、装置、设备以及存储介质 | |
US20180226136A1 (en) | System management mode test operations | |
GB2539290A (en) | Apparatus and methods for transitioning between a secure area and a less-secure area | |
CN115422554A (zh) | 请求处理方法、编译方法和可信计算系统 | |
CN114462041A (zh) | 基于双体系架构的动态可信访问控制方法及系统 | |
US20190392133A1 (en) | System and method for producing secure data management software | |
CN111523115B (zh) | 信息确定方法、函数调用方法及电子设备 | |
CN113646760A (zh) | 一种软件程序运行检查方法、电子设备及存储介质 | |
CN111625784B (zh) | 一种应用的反调试方法、相关装置及存储介质 | |
CN117786668B (zh) | 一种应用程序动态完整性度量方法和系统 | |
CN117131515B (zh) | 一种应用请求执行方法、装置、计算机设备和存储介质 | |
US20240004804A1 (en) | Method for managing access rights of memory regions and corresponding system on chip | |
CN111382433B (zh) | 模块加载方法、装置、设备以及存储介质 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190507 Termination date: 20200513 |
|
CF01 | Termination of patent right due to non-payment of annual fee |