当前位置: 首页 > 专利查询>ARM有限公司专利>正文

使用安全域与次安全域的数据处理装置和方法制造方法及图纸

技术编号:9171243 阅读:126 留言:0更新日期:2013-09-19 19:57
本发明专利技术涉及使用安全域与次安全域的数据处理装置和方法。一种数据处理装置(2)具有处理电路(4),所述处理电路(4)具有安全操作域和次安全操作域。当在安全域中操作时,所述处理电路(4)能访问当在次安全域中操作时不可访问的数据。响应于控制流改变指令,处理切换到目标地址处的程序指令。执行域选择以确定所述处理电路(4)将在其中针对所述目标地址处的指令进行操作的所选择域。可以执行域检查以检查哪个域被允许作为所述域选择所确定的所选择域。如果所述域选择中的所选择域不是允许选择域,则触发域检查错误。

【技术实现步骤摘要】
使用安全域与次安全域的数据处理装置和方法
本专利技术涉及数据处理领域。更具体而言,本专利技术涉及使用安全域与次安全域(lesssecuredomain)的数据处理装置和方法。
技术介绍
数据处理装置可以能在安全域与次安全域中操作。当在安全域中操作时,能访问在次安全域中操作时不可访问的数据。这提供了一种将潜在敏感的数据和代码与未获授权人士或进程的访问相隔离的方式。英国剑桥(CambridgeUK)的提供了一种保持数据和代码安全的方式,在其Trustzone构架中,存在安全状态和非安全状态,并使用异常指令在这些状态之间转移,异常处理程序保护安全侧的安全。虽然该方法提供了高度安全性,但需要大量的软件异常处理程序形式的软件干预来更改安全状态,这既降低了系统的性能,又增加了开发用于安全软件的外部应用程序接口API所需的工作量,因为所有调用都必须通过异常处理程序进行代理。对于诸如微控制器的小系统而言,可能更重要的是实现安全级与系统性能之间的折衷,并因此将与实现安全域相关联的开销保持在相当低的水平。
技术实现思路
根据一个方面,本专利技术提供了一种数据处理装置,所述装置包括:处理电路,用于响应于程序指令执行数据处理操作,所述处理电路具有包含安全域和次安全域的多个操作域,其中当在所述安全域中操作时,所述处理电路能访问当在所述次安全域中操作时不可访问的数据;其中响应于控制流改变指令的执行,所述处理电路被配置为切换为处理所述控制流改变指令所指示的目标地址处的程序指令,并执行用于确定所述处理电路将在其中针对所述目标地址处的程序指令进行操作的所选择域的域选择;以及至少如果在所述安全域中操作时所述控制流改变指令被执行,则所述处理电路被配置为:(i)执行域检查,以用于确定所述多个域中的哪个域被允许作为通过针对所述目标地址处的程序指令进行的所述域选择而确定的所选择域,所述域检查使用与所述域选择不同的技术;以及(ii)如果在所述域选择中确定的所选择域不是在所述域检查中确定的允许选择域,则触发域检查错误。在该技术中,控制流改变指令可用于在多个域之间切换处理。这意味着不必使用异常和相应的软件异常处理程序来控制域之间的更改,因此改进了性能。然而,重要的是控制流改变指令不规避系统的安全保障。在所述控制流改变指令之后,使用域选择技术来确定将在其中处理目标地址的程序指令的所选择域。因此,取决于所使用的域选择技术,相同的控制流改变指令可以用于切换为不同域中的处理。该技术认识到,如果控制流改变指令的行为(程序员旨在通过该行为切换为一个域中的程序指令的处理)被次安全域中的代码改变,以使得其转而切换为在不同域中的程序指令的处理,就会发生安全风险。例如,次安全域中的代码可能更改控制流改变指令的目标地址。举例而言,可能存在将在安全域中被执行的控制流改变指令,其旨在引起到次安全域中的指令的切换。然而,控制流改变指令的目标地址可被次安全域中的代码设置为指向将在安全域中处理的程序指令,从而使得现在控制流改变指令可能转而切换到安全域中的处理。这会允许黑客使用次安全域中的代码来触发从安全域到安全代码的不受控转移,因为通常安全到安全的切换不会被监督,这是由于安全的处理被预期为受信任的。这会造成安全漏洞。为了解决这个问题,处理电路可以至少在处于安全域中时在控制流改变指令被执行时,执行域检查。域检查确定多个域中的哪个域被允许作为通过针对目标地址处的程序指令进行的域选择而确定的所选择域。域检查不影响系统将在其中针对目标地址处的指令进行操作的实际域,因为这是通过域选择来确定的。然而,域检查允许系统确认控制流改变指令已引起了预期的域转移。如果在域选择中所确定的域不是在域检查中确定的允许选择域,则可以触发域检查错误。以此方式,如果次安全代码使控制流改变指令以非预期方式起作用,则可触发错误以防备对安全数据的未获授权的访问。控制流改变指令可以是引起被处理的指令中的非顺序转移的任何指令。更常见地,控制流改变指令可以包括分支指令。然而,控制流改变指令还可以包括其他种类的指令,例如装入指令,该装入指令向存储了程序计数器的寄存器装入指示将要处理的下一个指令的值。非必要的是,针对在处于次安全域中时被执行的控制流改变指令执行域检查。这可能似乎是违反直觉的,因为人们通常期望的是,处于次安全域中的指令应受到更严格的检查。然而,通常会存在一些其他的用于调节从次安全域到安全域的转移的机制。另一方面,当处于安全域中时,上述类型的攻击是最麻烦的,因为通常当系统已处于安全域中时,代码将被信任并假定为正在正确地活动,因此这可能被黑客利用而使用次安全代码更改处于安全域中的控制流改变指令的行为。因此,至少针对处于安全域中时执行的控制流改变指令执行域检查。然而,如果希望的话,也可以在当在次安全域中操作时执行控制流改变指令时,执行域检查。除了防备安全漏洞,域检查还可用于检测由于粒子撞击或其他种类的错误造成位值已更改状态从而使得指令现在不像预期那样起作用的被破坏指令或目标地址。这在安全域与次安全域中都可以是有用的。除了控制流改变指令之外,还可以针对其他指令来执行域选择。例如,在一些系统中,处理电路能够针对每个指令确定应在哪个域中处理该指令。域选择和域检查使用不同的技术来确定所选择域和(一个或多个)允许域,以使得可以通过不同形式的域检查来确认域选择。例如,第一确定可以用于域选择和域检查中的一者,而第二确定用于另一者。在一个实施例中用于域选择的技术可以在另一个实施例中用于域检查,反之亦然。在一个实施例中,可以有数据储存器,该储存器具有包含安全区域和次安全区域(lesssecureregion)的多个区域,安全区域用于存储当在安全域中操作时处理电路可访问而当处于次安全域中时不可访问的数据。次安全区域可以是当处于安全域中时和当处于次安全域中时都可访问的。因此,第一确定可以包括至少取决于哪个区域与目标地址处的程序指令的指令地址相对应来确定至少一个所选择域。一般而言,如果程序指令的指令地址对应于次安全区域,次安全域则可以被选择为所选择域,而如果指令地址对应于安全区域,安全域则可以被选择。该技术可以用于域选择或者域检查。哪个区域对应于指令地址可以不是第一确定的唯一标准。例如,对于某些指令,第一指令还可以取决于目标地址处的程序指令的类型。而且,在第一确定用于域检查的情况下,则多个域可被选择为允许选择域。第二确定可以包括将目标域值所指示的多个域之一确定为所选择域(或者在域检查的情况下,确定为若干允许选择域之一)。目标域值可由处理器维护,以指示目标地址处的程序指令被期望在哪个域中进行处理。这可以是域选择或者域检查的一部分。因此,在一个示例中,可以基于与目标地址处的程序指令的指令地址相对应的数据储存器的区域来执行域选择,并且可以基于目标域值来执行域检查。在该情况下,目标域值提供用于确认控制流改变指令是否已切换到正确区域中的程序指令的检查。在另一个示例中,目标域值可用于控制目标地址处的程序指令将在其中被处理的实际域,并且然后域检查可以确认目标地址是在数据储存器的正确区域中。目标域值可以不同的方式表示。在一个示例中,可以在控制流改变指令的编码中指定目标域值。例如,可以有对应于不同的目标域值的几个版本的控制流改变指令,这些目标域值指示不同的安全域为所本文档来自技高网...
使用安全域与次安全域的数据处理装置和方法

【技术保护点】
一种数据处理装置,包括:处理电路,用于响应于程序指令执行数据处理操作,所述处理电路具有包含安全域和次安全域的多个操作域,其中当在所述安全域中操作时,所述处理电路能访问当在所述次安全域中操作时不可访问的数据;其中响应于控制流改变指令的执行,所述处理电路被配置为切换为处理所述控制流改变指令所指示的目标地址处的程序指令,并执行用于确定所述处理电路将在其中针对所述目标地址处的程序指令进行操作的所选择域的域选择;以及至少如果在所述安全域中操作时所述控制流改变指令被执行,则所述处理电路被配置为:(i)执行域检查,以用于确定所述多个域中的哪个域被允许作为通过针对所述目标地址处的程序指令进行的所述域选择而确定的所选择域,所述域检查使用与所述域选择不同的技术;以及(ii)如果在所述域选择中确定的所选择域不是在所述域检查中确定的允许选择域,则触发域检查错误。

【技术特征摘要】
2012.10.01 GB 1217531.1;2012.11.19 GB 1220769.2;21.一种数据处理装置,包括:处理电路,用于响应于程序指令执行数据处理操作,所述处理电路具有包含安全域和次安全域的多个操作域,其中当在所述安全域中操作时,所述处理电路能访问当在所述次安全域中操作时不可访问的数据;其中响应于控制流改变指令的执行,所述处理电路被配置为切换为处理所述控制流改变指令所指示的目标地址处的程序指令,并执行用于确定所述处理电路将在其中针对所述目标地址处的程序指令进行操作的所选择域的域选择;以及至少如果在所述安全域中操作时所述控制流改变指令被执行,则所述处理电路被配置为:(i)执行域检查,以用于确定所述多个域中的哪个域被允许作为通过针对所述目标地址处的程序指令进行的所述域选择而确定的所选择域,所述域检查使用与所述域选择不同的技术;以及(ii)如果在所述域选择中确定的所选择域不是在所述域检查中确定的允许选择域,则触发域检查错误,其中,响应于控制流改变指令在所述安全域中操作时的执行并且所述域选择确定所述安全域是所选择域,所述处理电路被配置为当所述安全域不是在所述域检查中确定的允许选择域时触发所述域检查错误。2.根据权利要求1所述的数据处理装置,其中所述控制流改变指令包括分支指令。3.根据权利要求1或2所述的数据处理装置,其中如果在所述次安全域中操作时所述控制流改变指令被执行,则所述处理电路还被配置为执行所述域检查,并且如果在所述域选择中确定的所选择域与在所述域检查中确定的允许域不相匹配,则触发所述域检查错误。4.根据权利要求1所述的数据处理装置,其中所述域选择和所述域检查中的一者包括第一确定,并且所述域选择和所述域检查中的另一者包括第二确定。5.根据权利要求4所述的数据处理装置,包括用于存储数据的数据储存器,所述数据储存器包括包含安全区域和次安全区域的多个区域,其中所述安全区域用于存储当在所述安全域中操作时所述处理电路能访问而当在所述次安全域中操作时所述处理电路不能访问的数据;其中第一确定包括至少取决于所述多个区域中的哪个区域与所述目标地址处的程序指令的指令地址相对应来确定至少一个所选择域。6.根据权利要求5所述的数据处理装置,其中对于至少一些程序指令而言,第一确定包括如果所述指令地址对应于所述次安全区域,则选择所述次安全域为所述所选择域,而如果所述指令地址对应于所述安全区域,则选择所述安全域为所述所选择域。7.根据权利要求4至6中的任一项所述的数据处理装置,其中所述第二确定包括确定所述多个域中由目标域值指示的一个域为所述所选择域。8.根据权利要求7所述的数据处理装置,其中所述目标域值是在对控制流改变指令的编码中被指定的。9.根据权利要求7所述的数据处理装置,其中所述目标域值是在控制流改变指令所使用的目标地址的一部分中被指定的。10.根据权利要求7所述的数据处理装置,其中所述处理电路被配置为响应于目标域值设置指令而设置所述目标域值。11.根据权利要求10所述的数据处理装置,其中如果在所述目标域值设置指令被执行之前所述处理电路是在所述次安全域中操作,那么所述处理电路被配置为设置所述目标域值以指示所述次安全域。12.根据权利要求10和11中任一项所述的数据处理装置,其中所述处理电路被配置为:如果在所述处理电路在进行切换以在安全区域中处理所述目标地址处的程序指令之前,在次安全域中操作所针对的受防护保护的控制流改变指令之后,所述目标地址处的程序指令不是防护指令,则触发错误;并且所述目标域值设置指令包括所述防护指令。13.根据权利要求12所述的数据处理装置,其中响应于第一控制流改变指令,所述处理电路被配置为将返回地址存储到预定存储位置,并且切换为处理所述目标地址处的程序指令;并且响应于第二控制流改变指令,所述处理电路被配置为切换为处理所述返回地址处的程序指令;其中响应于所述防护指令,所述处理电路被配置为如果所述第一控制流改变指令是在所述次安全域中被执行的,则将针对所述第二控制流改变指令的目标域值设置为指示所述次安全域。14.根据权利要求7所述的数据处理装置,包括数据储存器,所述数据储存器包括包含安全堆栈和次安全堆栈的多个堆栈,其中当在安全域...

【专利技术属性】
技术研发人员:托马斯·克里斯托弗·乔洛卡特理查德·罗伊·格里森思怀特
申请(专利权)人:ARM有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1