用于硬件重置保护的方法和装置的制作方法

文档序号:6593114阅读:178来源:国知局
专利名称:用于硬件重置保护的方法和装置的制作方法
技术领域
本发明通常涉及计算机安全的领域。
背景技术
重置是在计算中使用的机制,用以通过受控的方式使计算设备进入初始状态或正 常状况。出于许多原因,这可能是期望的。例如,计算设备的状态可能变得未知,计算设备 可能变得无响应,或者重置是使处理器返回预定状态的有利方法。作为重置的结果,可以使系统寄存器恢复到预定(例如,缺省)状况。还可以重新 初始化系统时钟(例如,本地振荡器)。重置可以例如由用户输入或者通过附连设备从外部激活。计算设备可以例如,具 有重置引脚或者重置按钮,可以借助于它们激活外部重置。重置还可以由内部机制发起。计算设备可以通过软件支持重置命令。在系统崩溃 或挂起的事件中,看门狗定时器可能期满,触发重置。

发明内容
具有用于接收外部重置命令的重置端口的微处理器可以具有重置转向电路,其可 以被选择性地使能。微处理器可以在开放模式(例如,缺省状态)或安全模式下操作。在 安全模式下敏感信息可能被记录在易受攻击的存储区域中。当微处理器在开放模式下操作 时,可以禁止重置转向电路,使得外部重置请求立即触发硬件重置。当微处理器在安全模式 下操作时,重置转向电路可以被使能以使外部重置请求转向中断,其可以触发软件代码的 执行。该软件代码可以例如,执行安全系统清理子程序以在重置之前擦除易受攻击的存储 区域。在一些方面,本发明涉及一种装置,其包括重置端口、状态机、存储器和重置转向 电路。重置端口被配置为接收重置信号。状态机可以在多个模式中的任何模式下操作,该 多个模式包括安全模式。存储器被配置为存储安全系统清理子程序。当状态机将在安全模 式下操作时,重置转向电路被使能。重置转向电路被配置为,当在重置端口上接收到重置信 号时,初始化安全系统清理子程序的执行。在另一方面,本发明涉及一种操作微处理器的方法。该方法包括接收外部重置 命令;以及选择性地使外部重置命令从触发硬件重置转向到触发安全系统清理子程序的执 行。该转向被选择为当微处理器在需要针对微处理器资源的安全访问的安全模式下操作时 被使能,并且转向被选择为当微处理器在开放模式下操作时被禁止。在另一方面,本发明涉及一种微处理器,其包括重置端口、存储器区域、安全系统 清理模块和重置转向电路。重置端口被配置为接收重置信号。存储器区域被配置为存储安 全信息。安全系统清理模块被配置为从存储器区域擦除安全信息。重置转向模块被配置为, 当微处理器处于保证对微处理器资源的安全访问的安全模式时,在使能状态下操作。重置 转向模块被配置为,在使能状态下,当重置端口接收到重置信号时,触发安全系统清理模块的执行。在又一方面,本发明涉及一种保护处理器中的信息的方法。该方法包括如下动作 (a)接收硬件重置触发;(b)在动作(a)之后,激活软件中断;(c)在动作(b)之后,从处理 器的存储区域擦除信息;以及(d)在动作(C)之后,通过执行处理器的重置来服务于硬件重 置触发。


当结合附图阅读以下详细描述时,将更好地理解本发明及其实施例。在附图中,元 件不一定依比例绘制。通常,多个图中出现的相同元件由相同的附图标记表示。在附图中图1是根据一些实施例的微处理器的框图;图2是根据一些实施例的微处理器的框图;图3是安全状态机的示图;图4是根据一些实施例的微处理器的功能框图;图5A是根据一些实施例的方法的框图;图5B是根据一些实施例的方法的框图;图6A是根据一些实施例的重置转向电路的逻辑图;图6B是根据一些实施例的重置转向电路的逻辑图;图7A是根据一些实施例的嵌入式系统的框图;图7B是根据一些实施例的连接到微处理器的主机的框图;以及图7C是根据一些实施例的连接到嵌入式系统的主机的框图。
具体实施例方式微处理器的外部重置是可能在操作期间的任何时间出现的潜在不可控的事件。重 置通常将微处理器恢复到缺省状态,例如具有最少的或者不具有安全措施的开放操作模 式。当消费者或用户的敏感的、机密的和/或私有的信息可能被存储在开放模式下可以公 共访问的微处理器区域中时,这带来了安全风险。例如,在安全模式下操作的微处理器可以 通过拒绝外部读取请求来保护存储在寄存器上的存储器中的信息。然而,通过服务于重置, 微处理器返回开放模式,其中这些保护没有就位。恶意实体可以例如通过仿真端口(例如, IEEE 1149. 1标准的“JTAG”端口)获得对存储器和寄存器的访问。在该情形中可能危及预 期应保护的资产。提供了一种方法和装置以防止这种“重置攻击”。具有用于接收外部重置命令的微处理器可以具有重置转向电路,其可以被选择性 地使能。在开放模式下,重置转向电路可以被禁止,使得外部重置请求立即触发硬件重置。 然而,在安全模式下,当敏感信息可能被记录在易受攻击的存储区域中时,重置转向电路可 以被使能以使任何外部重置请求转向到中断,这可以触发软件代码的执行。该软件代码可 以例如,执行安全系统清理子程序以在重置之前擦除易受攻击的存储区域。微处理器图1示出了微处理器100的实施例。微处理器100可以具有逻辑单元110、寄存器 120、存储器130、硬件重置逻辑单元170、重置转向电路180和输入/输出(I/O)端口 190。逻辑单元110 (例如,中央处理单元)执行微处理器100上的指令。可由逻辑单元执行的指令可以源自一系列可执行指令构成的软件(例如,程序、代码)。存储器130可以用于存储可执行代码和/或任何类型的数字数据。每个存储器位 置可以与存储器地址相关联。存储器130可以具有一次性可编程(OTP)存储器、静态随机 存取存储器(SRAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)或者任何适当的存储 器技术或者存储器技术的组合。在一些实施例中,“只读”存储器可以是可写的,但是可能需 要写入之前的实质的或完全的擦除。微处理器100可以防止部分存储器130被重写。存储器130可以包括私人存储器140区域和公共存储器150区域。私人存储器 140可以仅在某些操作条件下是可访问的。在一些实施例中,私人存储器140是OTP存储器 的一部分。存储器130可以具有多个存储器单元,每个单元适于存储与信息关联的值。每个 存储的值可以例如是可以采取两个二元状态下的一个的位,其在符号上被表示为“0”和 “1”。位可以被布置为组(例如,字节),用于寻址、读取和写入。存储器130可以按用于存 储数据的任何适当的方法被构造和布置。存储器130可以存储安全系统清理子程序160,其在被执行时从微处理器100的在 开放模式下可访问的区域删除机密数据。在一些实施例中,如图1中所示,安全系统清理子 程序160可以被存储在公共存储器150中,然而,安全系统清理子程序160可以存储在任何 适当的存储器区域(例如,私人存储器140区域)中。安全系统清理子程序160可以包括 可由逻辑单元110执行的软件指令。这些指令在被执行时可以擦除部分存储器130 ;清空部 分寄存器120 ;清空某些缓冲器、暂时存储器、指向存储器的指针;以及执行其他任务。擦除 部分存储器130可以移除机密的或私有的信息。例如,通过向待擦除的每个存储器单元写 入相同的值(例如,“0”)、随机值、预定值、不具有机密或私有性质的数据,消除(purging), 或者任何其他适当的擦除方法,或者擦除方法的任何组合或重复,可以实现擦除。在一些实施例中,安全系统清理子程序160可以引用寄存器或者存储器位置以确 定将擦除存储器130或者微处理器100的其他区域的哪个或哪些部分。在一些实施例中,安全系统清理子程序160被存储在ROM中以防止软件指令的改 变。安全系统清理子程序160可以执行寄存器(例如,在寄存器120中)的抹除,用于 保持数据防止针对私人存储器140的访问读取。(这些寄存器可能包含密钥或者由用户代 码执行留下的其他敏感数据)。安全系统清理子程序可以执行看门狗RESET以在安全系统清理子程序完成时重
置处理器。寄存器120可以存储信息位。这些位可以例如用作缓存或者指示微处理器100的 操作状态。寄存器120可以被分为任意数目的单体的寄存器,每个寄存器包括一个或多个 位的信息。在一些实施例中,寄存器120包括程序计数器(PC) 122寄存器,其包含将由逻辑 单元110执行的指令的存储器地址。在一些实施例中,程序计数器122存储由逻辑单元110 执行的当前指令的地址。在一些实施例中,程序计数器122存储由逻辑单元110执行的下 一指令的地址。微处理器的I/O端口 190提供用于信息传输的输入和输出功能。每个端口可以例 如,被实施为引脚、插座、按钮、开关、转盘、操纵杆、有线或无线接收器、或者任何其他的接口技术。I/O端口 190可以包括重置端口 191、不可屏蔽中断(匪I)端口 193和调试端口 195(例如,电路内仿真(ICE)端口)。重置端口 191可以被用于接收外部触发以重置微处 理器100。在一些实施例中,在微处理器100上提供匪I端口 193用于外部使能不可屏蔽中 断。中断可以是通过硬件(例如,通过重置端口 191)接收的指示需要微处理器100注意 (处理)的异步信号。中断还可以来源于指示需要改变微处理器100的执行的软件事件。例如,如果与中断关联的中断屏蔽寄存器(IMR)中的位被置位,则可以忽略(屏 蔽)中断。某些中断可能是固有地不可屏蔽的。匪I端口 193可以提供用于使能和/或禁 止关于一个或多个中断的屏蔽的外部手段。为了由逻辑单元110立即执行,可以对不可屏 蔽的中断进行优先排序。重置端口 191可以用于提供外部触发以重置微处理器100。可以异步地在重置端 口 191上接收重置信号。重置端口 191可以可操作地连接到硬件重置170。重置端口 191上的重置信号可 以由硬件重置170接收。硬件重置170为微处理器100提供重置功能。在一些实施例中, 硬件重置170被实现为微处理器100中的电路,该电路可以由重置信号激活以按照受控的 方式将微处理器100恢复到初始化的状态或者正常状况。在一些实施例中,重置端口 191上的重置信号可以由重置转向电路180截取并转 向。重置转向电路180可以防止重置信号触发硬件重置170。重置转向电路180可以将重 置信号转向到不可屏蔽中断(NMI)。当处理器在安全模式下操作时通过使硬件重置转向到 匪I,可以控制并延迟硬件重置的服务,以便首先实现安全系统清理子程序160。不可屏蔽中 断可以触发逻辑单元110执行安全系统清理子程序160。重置转向电路180可以选择性地 被使能和/或禁止。在一些实施例中,基于寄存器120中的一个或多个位使能/禁止重置 转向180模块。在一些实施例中,调试端口 195支持对于微处理器100的“JTAG”连接。“JTAG”是 定义该标准的委员会,即联合测试行动小组的首字母缩写,该标准的更正式的名称是题为 "Standard Test Access Port and Boundary-Scan Architecture,,的 IEEE 1149.1。除 了支持“公共的” JTAG指令(例如,边界扫描和旁路模式)之外,微处理器可以支持“私人 的” JTAG指令。例如,私人指令可以由特定的微处理器的制造商定义。通过调试端口 195, 用户可以向微处理器100发送公共和/或私人JTAG指令。在一些实施例中,可以支持JTAG 仿真。仿真能力提供了处理器的控制,实现“运行”、“停止”、“单步”和“检查/修改”内部 寄存器,以及实时的断点。图2示出了微处理器200的框图。微处理器200也包括上文参照微处理器100描 述的逻辑单元110、寄存器120、具有私人存储器140区域和公共存储器150区域的存储器 130、硬件重置170、重置转向电路180和I/O端口 190。微处理器200明确地示出了其中公共存储器150具有只读存储器区域250的实施 例。“缺省的”安全系统清理子程序160被存储在R0M250中。在一些实施例中,定制的安全 系统清理子程序210可以存储在公共存储器150中,尽管在一些实施例中,定制的安全系统 清理子程序210可以存储在私人存储器140中,或者存储在任何其他适当的存储器位置。重置转向电路180可以在禁止状态230或者使能状态240中操作。在禁止状态
8230中,在重置端口 190上接收到的重置信号可以被传递到硬件重置170。然而,在使能状 态240中,重置信号可以从硬件重置170转向到不可屏蔽中断(匪I) 220。匪I 220可以触 发微处理器200执行适当的安全系统清理子程序。NMI 220可以首先触发对存储在事件向量表格260中的事件地址270的查找。事 件向量表格260可以存储在任何适当的位置(例如,如示出的寄存器120、存储器130、私人 存储器140、公共存储器150)。事件地址270可以具有安全系统清理子程序160的位置的 存储器地址或者定制的安全系统清理子程序210的位置的存储器地址。随后可以利用事件 地址270更新程序计数器122。逻辑单元110可以执行相应的安全系统清理子程序。在一 些实施例中,在所执行的安全系统清理子程序结束时触发硬件重置170。在一些实施例中, 触发应归于看门狗定时器的期满。安全状杰机300微处理器可以在数个不同的操作模式下操作以提供安全性和灵活性。例如,当不 需要安全性特征并且没有必要访问机密信息时,微处理器可以在开放操作模式下操作。私 人机密信息可以存储在私人存储器140中,其在开放模式下是不可访问的。当机密信息将被处理或访问时,微处理器可以进入安全操作模式。在安全模式下, 私人存储器140可以是可访问的并且私人信息可以被写入到寄存器120和/或存储器130。
对安全模式的访问可以限于授权用户。可以在执行之前认证在安全模式下将执行 的代码,用以确保用户被授权执行所请求的操作。认证可以在安全登录模式下执行。例如, 用户可以提供用于在安全模式下执行的经数字签名的代码。执行该代码的请求可以触发微 处理器切换到安全登录模式用于对经数字签名的代码进行认证。为了执行认证,微处理器 可以具有存储在只读存储器中的授权用户的一个或多个公钥。公钥可以用于对经数字签名 的代码进行认证。如果经数字签名的代码被其中一个公钥认证,则微处理器可以进入安全 模式并且执行经认证的代码。如果认证失败,则处理器可以返回开放操作模式。在一些实施例中,微处理器实现了用于在开放操作模式和安全操作模式之间变换 的安全状态机300。图3中示出了根据一些实施例的安全状态机300的状态图。安全状态 机300可以由数个操作模式以及操作模式之间的变换路径组成。每个操作模式可以具有与 其关联的不同的访问特权和安全特征,而每个变换可以定义不同模式之间的关系。安全状态机300可以在微处理器中通过寄存器120、存储器130或者任何其他适当 的方法实现。在图3中示出的示例性实施例中,安全状态机300可以在开放模式310、安全 登录模式320和安全模式330中操作。开放模式310是处理器的缺省操作状态,其中除了针对私人存储器140的受限制 的访问之外,不存在限制。在一些实施例中,还可以防止针对寄存器120中的某些寄存器位 的读取和/或写入访问。开放模式310是微处理器上电时和重置之后的缺省状态(路径 301)。在一些实施例中,在开放模式310中使能调试能力(例如,JTAG仿真)。在开放模式310中操作的安全状态机300可以变换到安全登录模式320 (经由变 换302)。不存在从开放模式310到安全模式330的直接路径。例如,可以由所执行的代码、用户输入或者任何其他适当的手段来触发从开放模 式310到安全登录模式320的变换。在一些实施例中,当微处理器的执行被引导至公共存 储器150中的认证软件时,可以触发变换。在一些实施例中,通过将程序计数器122导引至认证软件的首地址,可以将微处理器的执行引导至认证软件。一些实施例可能需要不可屏 蔽中断是有效的。在安全登录模式320中,认证软件可以由逻辑单元110执行。认证软件 可以确定安全状态机随后变换304到安全模式320还是变换303回到开放模式310。在一 些实施例中,认证软件可以包括安全登录服务子程序(SESR)以进行该确定。SESR可以对用户进行认证(例如,验证允许用户访问安全模式),对用户代码进行 认证(例如,验证将在安全模式下执行的代码是由允许访问安全模式的用户所提供的),和 /或执行任何其他的安全处理或者安全处理的组合。在一些实施例中,执行非对称加密处 理。例如,可以对存储器130中存储的数字签名和报文执行数字签名认证。公钥也可以存 储在存储器130中用于执行该处理。在安全登录模式320中,私人存储器140是不可访问的。在一些实施例中,可以监 控程序计数器122以确保其保持在分配给认证软件的地址范围内。在一些实施例中,不允 许针对存储器130的某些区域的DMA访问,并且JTAG仿真被禁止。如果认证失败,则发生从安全登录模式320到开放模式310的变换303。例如,如 果用户不能被认证,用户代码不能被认证,报文和数字签名对与本地公钥不一致,观察到错 误,或者如果必须处理中断,则认证失败。在成功认证时,安全状态机300仅可以从安全登录模式320变换到安全模式330。 如果认证成功,则在经由变换304进入安全模式330之前可以执行另外的步骤。在一些实 施例中,重置转向电路180被使能(图2)。事件向量表格260中的事件地址270可以被更 新。在一些实施例中,事件地址270被更新为缺省的安全系统清理子程序160的地址。安全模式330是微处理器的安全操作状态。在进入安全模式时可以缺省地禁止 JTAG仿真。在一些实施例中,允许经认证的代码不受限制地访问包括私人存储器140、公共 存储器150和寄存器120的处理器资源。在一些实施例中,在可以存储诸如密钥的安全数 据的情况下,安全模式330允许访问(读取和/或写入)私人存储器140。私人存储器140 可以用于存储仅可以由授权的、经认证的用户和/或代码访问的机密信息。安全状态机300可以从安全模式330变换305回到开放模式310。在一些实施例 中,可能不存在从安全模式330到安全登录模式320的直接路径。在一些实施例中,在从安 全模式到开放模式的变换305之前,执行安全系统清理子程序。安全系统清理子程序可以 由经认证的代码调用。在存在安全模式之前执行安全系统清理子程序可以防止存储器和寄 存器中的敏感代码/数据在开放模式310中是可见的和可访问的。经认证的代码可以包含定制的安全系统清理子程序。在一些实施例中,经认证 的代码更新事件向量表格260中的事件寄存器270,用以对定制的安全系统清理子程序 210(图2)的位置进行寻址。用户可以依赖于定制的子程序而非例如缺省的安全系统清理 子程序160。微处理器400图4提供了根据一些实施例的微处理器400的功能框图。功能模块可以以硬件、 软件或者任何适当的组合实现。微处理器400具有逻辑模块401、硬件重置模块402、重置 转向模块403、事件向量表格模块404、状态模块410、执行模块420、安全系统清理模块430、 存储器存储模块440、安全访问模块460和I/O端口 190。逻辑模块401被提供用于执行由执行模块420寻址的指令。逻辑模块和执行模块
10420可以分别被实施为逻辑单元110和程序计数器122寄存器(例如,如图1的微处理器 100 中)。状态模块410可以确定操作模式并且强加与该模式关联的规则。例如,重置转向 模块403可以在某些模式下被使能而在其他模式下被禁止。在一些实施例中,状态模块410 可以在开放模式310、安全登录模式320或安全模式330下操作。在一些实施例中,状态模 块410可以根据安全状态机300的操作在操作状态之间变换。安全访问模块460可以执行诸如对用户或代码进行认证的安全子程序。在一些实 施例中,在状态模块410变换到安全模式330之前,安全访问模块460提供安全登录模式 320中的认证。当重置转向模块403被禁止时,重置端口 191接收到的重置信号可以触发硬件重 置模块402执行微处理器400的重置。当重置转向模块403被使能时,重置端口 191接收 到的重置信号可以触发将事件地址从事件向量表格模块404加载到执行模块420。例如,当 确定从安全登录模式320变换到安全模式330时,重置转向模块403可以被使能。安全访 问模块460可以在成功认证时使能重置转向模块404。如果事件地址已从事件向量表格模块404加载到执行模块420 (例如,作为重置转 向的结果)中,则逻辑模块401可以执行事件地址定位的模块。在一些实施例中,事件地址 引用安全系统清理模块430。安全系统清理模块430可以擦除可能包含机密信息的存储器 存储模块440的一部分以及微处理器400的任何其他部分。在一些实施例中,在安全系统 清理模块430完成子程序之后,可以触发硬件重置模块402。重置保护方法500和550微处理器可以在处于某些操作状态(例如,安全模式330)的同时实现硬件重置保 护。重置保护特征可以防止重置端口 191的恶意置位(assert)使存储器140和/或寄存 器120中存在的敏感代码或数据暴露。如图5A中示出的方法500提供了用于处理外部重置命令的方法。方法500可以 例如由微处理器执行。最初,在步骤501中,接收到外部重置命令。例如,重置命令可以由重置端口 191 (图1、2和4)接收。在步骤502,确定使能还是禁止重置转向。如果重置转向被禁止,则在步骤503中 处理流程继续执行硬件重置。硬件重置一旦被执行,则将微处理器恢复到缺省状态(步骤 504)。例如,在其中实现安全状态机300的微处理器的实施例中,在重置之后进入开放模式 310。如果在步骤502中确定使能重置转向,则处理流程继续到步骤505。在步骤505中 可以将事件地址270从事件向量表格260加载到程序计数器122 (图2)中。事件地址可以 引用安全系统清理子程序(例如,缺省的安全系统清理子程序160或者定制的安全系统清 理子程序210)。在步骤506中,执行安全系统清理子程序。安全系统清理子程序可以从微处理器 擦除机密信息。安全系统清理子程序可以提供任何所期望的功能。在一些实施例中,在安全系统清理子程序之后可以执行硬件重置(步骤503)。硬 件重置可以将微处理器恢复到缺省状态(步骤504)。在一些实施例中,可能需要安全系统清理子程序中的明确的指令来触发硬件重置的执行(例如,安全系统清理子程序中的最后 的指令)。在一些其他实施例中,步骤503是在安全系统清理子程序完成之后执行的,不需 要该子程序中的明确指令。例如,可以简单地允许看门狗时间期满,自动地触发硬件重置的 执行。现在转到图5B中示出的方法550,其提供了操作处理器的方法。最初,在步骤551中,确定进入安全操作模式。该确定可以在对用户或者将在安全 模式下执行的代码进行认证之后进行。在一些实施例中,认证由SESR执行。在一些实施例 中,根据安全状态机300在安全登录模式320中进行进入安全模式330的确定。在步骤552中,更新事件向量表格中的事件地址。在一些实施例中,SESR提供了 在成功认证之后利用事件地址更新事件向量表格的指令。事件地址可以引用安全系统清理 子程序。在一些实施例中,安全系统清理子程序可以被存储在ROM中。在步骤553中,使能重置转向。重置转向使外部重置信号从触发硬件重置转向到 不可屏蔽中断。通过将输入信号施加到重置转向电路可以使能重置转向。在步骤554中,进入安全模式。在安全模式下,存储在存储器或寄存器中的私人信 息可以是可访问的。例如,私人存储器140可以是可访问的,用于读取、写入和由逻辑单元 110执行(图1)。该安全模式可以是安全状态机300的安全模式330 (图3)。在一些实施 例中,可以在安全操作模式下执行经认证的代码。在一些实施例中,经认证的代码可以具有 更新事件向量表格中的事件地址的指令(步骤552)。在一些实施例中,事件地址可以引用 定制的安全系统清理子程序。定制的安全系统清理子程序可以是经认证的代码的一部分。在步骤555中,在处于安全模式时接收到外部重置命令。在一些实施例中,可以在 重置端口 191上接收外部重置命令。可以异步地接收外部重置命令。在步骤556中,将事件地址从事件向量表格加载到程序计数器寄存器中。在一些 实施例中,事件地址的加载可以由使能的重置转向电路截取外部重置命令来触发。在步骤557中,执行安全系统清理子程序。在一些实施例中,安全系统清理子程序 被存储在存储器中的对应于事件地址的位置。在步骤558中,执行硬件重置。在一些实施例中,其可以响应于在安全系统清理子 程序中执行软件命令。在步骤559中,处理器进入开放模式。这可以是硬件重置触发的引导子程序的一 部分。在一些实施例中,开放模式可以是安全状态机300的开放模式310 (图3)。重置转向电路180重置转向电路180 (例如,在图1中)可以按适当的方式实施。在一些实施例中,使 用逻辑电路实现重置转向电路。图6A和6B提供了其中使用逻辑电路的重置转向电路180 的示例性实施例。具体地,图6A示出了重置转向电路180A的实施例,其接收输入信号“RESET”和 "DIV_RESET,,并且输出"HW_RS_TRIG,,禾口 "SW_RS_TRIG,,。RESET是在输入引脚601上接收到的重置请求信号。输入引脚601可以例如可操 作地耦合到重置端口 191(图1)。基于输入引脚602上的DIV_RESET的状态,置位重置请求 信号可以触发硬件重置或者软件重置。如果重置请求信号将转向到软件,则置位DIV_RESET。当DIV_RESET被置位时,重
12置转向电路180被称为使能的。当RESET和DIV_RESET均被置位时,在输出引脚604上置 位SW_RS_TRIG并且软件重置可以被触发。例如,置位的SW_RS_TRIG可以导致不可屏蔽中 断。该不可屏蔽中断可以触发将关于安全系统清理子程序的事件地址加载到程序计数器寄 存器中。如果DIV_RESET未置位,则重置信号将被传递到硬件重置并且重置转向电路180 被称为禁止的。当在DIV_RESET未置位的同时置位RESET时,在输出引脚603上置位冊_ RS_TRIG并且硬件重置可以被触发。例如,通过实现图6A中示出的逻辑图(其具有逻辑“AND”门605和606以及反相 器607)可以实现这种所期望的操作。该逻辑图假设所有输入和输出均为高有效。重置转 向电路180A可以被容易地修改以适合任何信号条件。表1是总结重置转向电路180A的行为的逻辑表格。符号“0”表示未置位或逻辑 低状态,而符号“ 1,,表示置位或逻辑高状态。表 权利要求
一种装置,包括重置端口,用于接收重置信号;状态机,可在多个模式中的任何模式下操作,所述多个模式包括安全模式;存储器,用于存储安全系统清理子程序;以及重置转向电路,当所述状态机将在所述安全模式下操作时被使能,所述重置转向电路被配置为,当在所述重置端口上接收到所述重置信号时,初始化所述安全系统清理子程序的执行。
2.如权利要求1所述的装置,其中,所述安全系统清理子程序在被执行时擦除所述存 储器的存储机密数据的部分。
3.如权利要求1所述的装置,其中,所述安全系统清理子程序在被执行时清空存储机 密数据的寄存器。
4.如权利要求1所述的装置,其中,所述安全系统清理子程序在被执行时清空与机密 数据相关联的缓冲器、暂时存储器或者指向存储器的指针。
5.如权利要求1所述的装置,进一步包括安全访问模块,用于当所述状态机将进入所述安全模式时使能所述重置转向电路。
6.如权利要求5所述的装置,进一步包括硬件重置,用于重置所述装置,当在所述重 置端口上接收到所述重置信号并且所述重置转向电路被禁止时触发所述硬件重置。
7.如权利要求6所述的装置,其中,所述多个模式进一步包括开放模式;所述状态机在所述装置重置时在所述开放模式下初始化;以及所述硬件重置在所述安全系统清理子程序完成时被触发。
8.如权利要求5所述的装置,其中,所述安全访问模块被存储在所述存储器的只读部 分中并且包括安全登录服务子程序。
9.如权利要求1所述的装置,其中,所述重置转向电路对所述安全系统清理子程序的 执行的初始化在被使能时是不可屏蔽的。
10.如权利要求1所述的装置,进一步包括程序计数器寄存器,用于存储存储器地址;逻辑单元,用于执行至少部分地存储在所述存储器中的由所述存储器地址指示的位置 处的子程序;以及事件向量表格,用于存储事件地址,所述事件地址指示所述存储器中的所述安全系统 清理子程序的位置,其中,所述重置转向电路通过利用所述事件向量表格中存储的所述事件地址来更新所述程 序计数器寄存器中存储的所述存储器地址,从而初始化所述安全系统清理子程序的执行。
11.一种操作微处理器的方法,所述方法包括接收外部重置命令;以及选择性地使所述外部重置命令从触发硬件重置转向到触发安全系统清理子程序的执行,其中,转向被选择为当所述微处理器正在需要针对微处理器资源的安全访问的安全模 式下操作时被使能,并且转向被选择为当所述微处理器正在开放模式下操作时被禁止。
12.如权利要求11所述的方法,其中,当转向被选择为使能时,转向是不可屏蔽的。
13.如权利要求11所述的方法,进一步包括存储引用所述安全系统清理子程序的存 储器位置的地址。
14.如权利要求13所述的方法,其中,当转向被选择为使能时,触发所述安全系统清理 子程序的执行包括将所述安全系统清理子程序的地址加载到程序计数器寄存器中。
15.一种微处理器,包括 重置端口,用于接收重置信号; 存储器区域,用于存储安全信息;安全系统清理模块,用于从所述存储器区域擦除所述安全信息;以及 重置转向模块,被配置为,当所述微处理器处于对微处理器资源进行安全访问的安全 模式时在使能状态下操作,所述重置转向模块被配置为,在所述使能状态下,当所述重置端 口接收到所述重置信号时,触发所述安全系统清理模块的执行。
16.如权利要求15所述的微处理器,进一步包括 硬件重置模块,用于重置所述微处理器,其中,所述重置转向模块被进一步配置为,当所述微处理处于开放模式时在禁止状态 下操作,所述重置转向模块被配置为,在所述禁止状态下,当所述重置端口接收到所述重置 信号时,允许所述重置信号触发所述硬件重置模块以重置所述微处理器。
17.如权利要求15所述的微处理器,其中, 所述硬件重置模块是硬件重置电路;以及 所述重置转向模块是重置转向电路。
18.如权利要求15所述的微处理器,其中,所述重置转向模块输出不可屏蔽的中断以 触发所述安全系统清理模块的执行。
19.如权利要求15所述的微处理器,其中,所述存储器区域是第一存储器区域,所述微 处理器进一步包括逻辑单元;以及 只读存储器区域,其中,所述安全系统清理模块包括可由所述逻辑单元执行的代码,所述可执行代码存 储在所述只读存储器区域中。
20.如权利要求19所述的微处理器,进一步包括程序计数器寄存器,用于存储用于由所述逻辑单元执行的地址;以及 事件地址存储,用于存储所述安全系统清理模块的存储器地址, 其中,当所述重置端口接收到所述重置信号并且所述重置转向模块在所述使能状态下 操作时,将所述存储器地址从所述事件地址存储加载到所述程序计数器寄存器中。
21.如权利要求15所述的微处理器,其中,所述存储器区域是所述微处理器的寄存器 或高速缓存。
22.如权利要求15所述的微处理器,其中,所述重置转向模块仅在不可屏蔽中断被使 能的情况下被配置在所述使能状态下。
23.一种保护处理器中的信息的方法,所述方法包括如下动作 (a)接收硬件重置触发;(b)在动作(a)之后,激活软件中断;(c)在动作(b)之后,从所述处理器的存储区域擦除所述信息;以及(d)在动作(c)之后,通过执行所述处理器的重置来服务于所述硬件重置触发。
全文摘要
一种用于保护针对存储在微处理器的易受攻击的存储区域(例如,公共存储器、寄存器、缓存)中的敏感信息的访问的方法和装置。具有用于接收外部重置命令的重置端口的微处理器可以具有重置转向电路,其可以被选择性地使能。微处理器可以在开放模式和安全模式下操作,分别指示易受攻击的存储区域中的敏感信息的不存在或者潜在的存在。在开放模式下,重置转向电路可以被禁止,使得外部重置请求触发硬件重置。在安全模式下,敏感信息可以被记录在易受攻击的存储区域上。重置转向电路可以被使能以使外部重置请求转向到可以触发软件代码的执行的中断。软件代码在被执行时可以执行安全系统清理子程序以在重置之前擦除易受攻击的存储区域。
文档编号G06F1/24GK101978339SQ200980109602
公开日2011年2月16日 申请日期2009年2月6日 优先权日2008年2月7日
发明者P·P·乔达诺, S·D·比德尔沃夫 申请人:阿纳洛格装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1