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

当在域之间切换时维持安全数据与不安全访问相隔离制造技术

技术编号:10564437 阅读:186 留言:0更新日期:2014-10-22 16:27
一种数据处理设备,包括:数据处理电路,用于响应于程序代码而执行数据处理操作;多个寄存器;以及用于存储数据的数据存储装置,所述数据存储装置包括多个具有不同安全级别的区域,并且包括用于存储可被在安全域中工作的数据处理电路访问并且不可被在较不安全域中工作的数据处理电路访问的敏感数据的至少一个安全区域以及用于存储较不安全数据的较不安全区域。数据存储装置包括至少两个堆栈,即安全区域中的安全堆栈和较不安全区域中的较不安全堆栈。数据处理电路在处理在安全区域中存储的程序代码时在安全域中工作并且在处理在较不安全区域中存储的程序代码时在较不安全域中工作;其中数据处理电路被配置为响应于正被执行的程序代码的存储位置而确定要将数据存储到哪个堆栈或者要从哪个堆栈中加载数据。响应于在第一区域中存储的程序代码调用将被执行的函数,函数代码被存储在第二区域中,该第二区域具有与第一区域不同的安全级别,数据处理电路被配置为确定所述第一和第二区域中的哪一个具有更低安全级别并且被配置为在执行程序代码和函数代码时针对函数变元和返回数据值访问具有所述更低安全级别的区域的堆栈。

【技术实现步骤摘要】
【国外来华专利技术】当在域之间切换时维持安全数据与不安全访问相隔离

涉及数据处理领域并且具体涉及对敏感数据和代码的处理。
技术介绍
许多数据处理系统和架构提供了隔离并保护敏感数据和代码段免受未经授权的人员或进程访问的多种方式。尽管能够提供安全性是重要的,但是存在与该保护相关联的性能和电路面积的开销。在诸如微控制器之类的小型系统中,使这些开销保持较低是重要的,因而可能需要在安全级别与性能之间做出某种妥协。一种使数据和代码保持安全的方式是由联合王国剑桥的利用其Trustzone架构提供的,在Trsutzone架构中存在安全和不安全状态并且异常指令被用来在这些状态之间转换,异常处理器(exceptionhandler)保护安全侧的安全性。尽管该方法提供了高度的安全性,但是要改变安全状态需要软件异常处理器形式的大量软件干预,这既降低了系统性能又增加了为安全软件开发外部应用程序接口API的工作量,这是因为所有的调用都必须通过异常处理器来代理。US7966466和US2008/0250216公开了另一安全系统,其中数据存储装置具有安全侧和不安全侧并且当前正被执行的代码在该数据存储装置中的位置决定了处理器所工本文档来自技高网...
当在域之间切换时维持安全数据与不安全访问相隔离

【技术保护点】
种数据处理设备,所述数据处理设备包括:数据处理电路,用于响应于程序代码而执行数据处理操作;多个寄存器;以及用于存储数据的数据存储装置,所述数据存储装置包括多个区域,每个区域具有安全级别,所述数据存储装置还包括用于存储敏感数据的至少一个安全区域以及用于存储较不安全数据的较不安全区域,所述敏感数据可被在所述安全域中工作的所述数据处理电路访问并且不可被在较不安全域中工作的所述数据处理电路访问;所述数据存储装置包括至少两个堆栈,即所述安全区域中的安全堆栈和所述较不安全区域中的较不安全堆栈;所述数据处理电路在处理存储于所述安全区域中的程序代码时在所述安全域中工作并且在处理存储于所述较不安全区域中的程序代...

【技术特征摘要】
【国外来华专利技术】2012.02.08 US 13/368,4191.一种数据处理设备,所述数据处理设备包括:数据处理电路,用于响应于程序代码而执行数据处理操作;多个寄存器;以及用于存储数据的数据存储装置,所述数据存储装置包括多个区域,每个区域具有安全级别,所述数据存储装置还包括用于存储敏感数据的安全区域以及用于存储较不安全数据的较不安全区域,所述敏感数据可被在安全域中工作的所述数据处理电路访问并且不可被在较不安全域中工作的所述数据处理电路访问;所述数据存储装置包括至少两个堆栈,即所述安全区域中的安全堆栈和所述较不安全区域中的较不安全堆栈;所述数据处理电路在处理存储于所述安全区域中的程序代码时在所述安全域中工作并且在处理存储于所述较不安全区域中的程序代码时在所述较不安全域中工作;其中所述数据处理电路被配置为:响应于正被执行的所述程序代码的存储位置,确定要将数据存储到哪个堆栈或者要从哪个堆栈中加载数据;以及响应于存储于第一区域中的程序代码调用将被执行的函数,所述函数的函数代码被存储在第二区域中,所述第二区域具有与所述第一区域不同的安全级别,所述数据处理电路被配置为确定所述第一区域和第二区域中的哪一个具有更低安全级别并且被配置为在执行所述程序代码和所述函数代码时针对函数变元和返回数据值而访问具有所述更低安全级别的所述区域的所述堆栈,所述数据处理设备还包括:存储位置,用于存储堆栈选择标志;以及标志设置电路,该标志设置电路被配置为:响应于检测到所述数据处理电路在所述较不安全区域中存储的程序代码和所述安全区域中存储的程序代码之间转换而设置所述堆栈选择标志来指示所述较不安全区域;并且响应于检测到所述数据处理电路执行在所述安全区域和所述较不安全区域中的一者中存储的代码而且该代码调用所述安全区域和所述较不安全区域中的所述一者中的函数,设置所述堆栈选择标志来指示所述安全区域和所述较不安全区域中的所述一者;并且响应于程序代码调用所述安全区域中存储的函数,所述数据处理电路被配置为在所述堆栈选择标志指示所述安全区域时针对函数变元和返回数据值访问所述安全堆栈,以及在所述堆栈选择标志指示所述较不安全区域时针对函数变元和返回数据值访问所述较不安全堆栈。2.根据权利要求1所述的数据处理设备,其中,所述数据处理电路被配置为响应于所述程序代码中的设置堆栈选择标志指令而将所述堆栈选择标志设置为指示较不安全区域的值,其中,调用较不安全函数的所述程序代码在存储所述函数的变元之前将所述设置堆栈选择标志指令包括在所述程序代码中。3.根据权利要求1或2所述的数据处理设备,所述数据处理电路响应于调用函数的所述程序代码而根据所述堆栈选择标志确定针对所述函数变元和所述返回数据值所要访问的所述堆栈,使得由所述堆栈选择标志指示的所述堆栈针对所述函数变元和所述返回数据值而被访问。4.根据权利要求1或2所述的数据处理设备,其中,所述数据处理电路被配置为:响应于所述程序代码中的寄存器堆栈加载指令,其中所述寄存器堆栈加载指令指示了来自堆栈上的至少一个位置的值将被加载到至少一个寄存器,根据所述堆栈选择标志来确定要访问哪个堆栈。5.根据权利要求1或2所述的数据处理设备,其中,所述数据处理电路被配置为:响应于所述程序代码中的寄存器堆栈存储指令,其中所述寄存器堆栈存储指令指示了至少一个寄存器中存储的至少一个值将被存储在堆栈上的至少一个位置中,根据所述堆栈选择标志来确定所述堆栈是包括所述安全堆栈还是包括所述较不安全堆栈。6.根据权利要求1或2所述的数据处理设备,其中,所述数据处理电路被配置为:响应于所述函数代码在所述较不安全区域中并且所述程序代码在所述安全区域中,将返回地址加载到所述安全堆栈上并且将下述值加载到链路寄存器:该值指示了来自所述函数的所述返回地址被加载到所述安全堆栈上。7.根据权利要求1或2所述的数据处理设备,其中,所述数据处理电路被配置为:响应于所述程序代码中的堆栈选择标志设置指令,所述堆栈选择标志设置指令指定了用于存储可执行代码的目标地址的寄存器,确定所述目标地址是否在相比当前工作区域较不安全的区域中,并且如果是,则将所述堆栈选择标志设置为指示所述较不安全区域。8.根据权利要求1或2所述的数据处理设备,其中,所述数据处理电路被配置为:响应于所述程序代码中的另一标志设置指令,所述另一标志设置指令指定了存储可执行代码的目标地址的寄存器,确定所述目标地址是在所述安全区域还是所述较不安全区域中,并且如果所述目标地址在所述较不安全区域中,则将所述堆栈选择标志设置为指示所述较不安全区域并且设置另一标志。9.根据权利要求1或2所述的数据处理设备,其中,所述数据处理电路被配置为:响应于所述程序代码中的清空多个寄存器指令,清空由所述清空多个寄存器指令所指定的多个寄存器中存储的值。10.根据权利要求1或2所述的数据处理设备,其中,所述数据处理设备包括安全配置存储位置,所述安全配置存储位置用于存储下述安全配置值:该安全配置值指示了所述多个寄存器中的哪些寄存器可供当前执行代码用于存储安全状态,所述数据处理电路被配置为当从较安全状态转换为较不安全状态时清空由所述安全配置值指示的所述多个寄存器。11.根据权利要求1或2所述的数据处理设备,所述数据处理电路包括异常处理电路,所述异常处理电路被配置为响应于接收到异常而清空在所述寄存器的集合中存储的状态,所述寄存器的所述集合内的所述寄存器取决于执行的域以及所述异常要被采取的域的安全级别。12.根据权利要求11所述的数据处理设备,其中,所述异常处理电路被配置为:响应于在中断被完成之前接收到另一中断,除以下情况之外,不执行另外的堆栈存储操作:所述中断是在所述安全域中被执行的,并且所述另一中断具有更低或者同等的优先级并指示切换到所述较不安全域,于是所述数据处理电路被配置为在完成所述中断之后获取所述另一中断并且被配置为:在被中断的原始代码在所述安全域中的情况下,保存另外寄存器中存储的所述状态,使得所述集合和所述另外寄存器被存储到所述安全堆栈并被清空;并且在被中断的所述原始代码在所述不安全域中的情况下,清空所述寄存器集合;所述中断是在所述安全域中被执行的,并且所述另一中断指示切换为在所述较不安全域中执行并且具有比所述中断更高或者同等的优先级,所述另一中断在所述中断完成之前被获取,并且在所述集合和所述另外寄存器中存储的状态被保存到所述安全堆栈并且所述集合和另外寄存器被清空。13.根据权利要求11所述的数据处理设备,其中,所述数据处理设备包括安全配置存储位置,所述安全配置存储位置用于存储下述的值:该值指示了所述多个寄存器中的哪些寄存器可供当前执行的代码部分用来存储安全状态,所述异常处理电路根据所述安全配置存储位置中存储的所述值、所述执行的域以及所述异常要被采取的域的安全级别来确定所述寄存器的所述集合内的所述寄存器。14.根据权利要求11所述的数据处理设备,其中,所述数据处理设备包括用于存储异常返回值的存储位置,所述数据处理电路被配置为将所述异常返回值设置为指示当获取所述异常时所述数据处理设备所工作于的域,所述异常处理电路在从异常返回时根据所述异常返回值中存储的所述值确定利用来自所述堆栈中的值来更新哪些寄存器。15.根据权利要求1或2所述的数据处理设备,其中,所述数据存储装置包括用于存储不同敏感度的数据的多个安全区域,在更高级别安全区域中存储的数据不可被在更低级别安全域中工作的所述数据处理电路访问;所述数据存储装置在所述多个安全区域中的每一个中包括至少一个堆栈;其中用于存储所述堆栈选择标志的所述存储位置包括多个比特位;并且所述数据处理电路被配置为根据所述堆栈选择标志来确定针对函数变元和返回数据值所要访问的堆栈。16.根据权利要求1或2所述的数据处理设备,其中,所述数据存储装置包括用于存储不同敏感度的数据的多个安全区域,所述区域中的至少两个是存储具有相同敏感度的数据的同级区域,所述同级区域中存储的所述数据可被更高级别安全域中存储的数据访问但是不可被在更低级别安全域中或者在另一同级安全域中工作的所述数据处理电路访问;所述数据存储装置包括所述安全区域中的每一个中的至少一个堆栈以及另一同级堆栈,所述另一同级堆栈可被在所述同级区域中的任一区域中存储的程序代码访问;其中响应于在所述同级区域之一中存储...

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

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

1