用于存储器的保护系统和方法与流程

    专利2022-07-08  97

    相关申请的交叉引用本申请要求于2019年09月12日提交的法国申请号1910065的权益,该申请通过引用并入本文。本公开总体上涉及存储器保护系统和方法。
    背景技术
    ::对于计算机或电子领域中的业务以及对于所有周围的参与者而言,安全性是一个主要问题。特别地,电子设备的存储器的安全性以及因此信息的安全性尤其重要。在计算机中,对存储器的保护通常由在硬件和软件水平处实施的一组系统来完成,以使一个进程不能访问由另一个进程使用的存储器或不能访问受保护的信息。技术实现要素:一个实施例解决了已知的存储器保护系统的缺点中的全部缺点或一些缺点。一个实施例提供了一种用于保护存储器的系统,系统包括安全软件,安全软件被配置为:从在存储器中进行未经授权的动作尝试期间生成的异常,来确定安全软件是否可以执行该动作。根据一个实施例,动作尝试由其他软件执行。根据一个实施例,安全软件被配置为从所生成的异常获得动作的特性。根据一个实施例,所获得的特性中的至少一些特性包括以下各项:动作尝试所针对的存储器的地址、试图在存储器中动作的软件的标识、其他软件正在试图执行的动作、动作的运算符代码、动作的寄存器。根据一个实施例,安全软件被配置为将所获得的动作的特性与表示可以在存储器中执行的动作的信息进行比较。根据一个实施例,编程信息仅安全软件可访问。根据一个实施例,系统包括存储器的保护单元,保护单元被配置为限定存储器中的区域并且为改区域分配保护水平。根据一个实施例,异常由存储器的保护单元生成。另一个实施例提供了一种用于使用存储器的保护系统的方法,包括以下步骤:在存储器中进行未经授权的动作尝试期间生成异常;以及使用安全软件从异常确定该安全软件是否被授权执行该动作。根据一个实施例,方法包括用于解密该异常以便获得动作的特性的步骤。根据一个实施例,方法包括如下步骤,在该步骤期间安全软件执行该动作。根据一个实施例,其他软件接下来继续其执行。附图说明将参考附图,在以下通过示例而非限制的方式给出的对特定实施例的描述中详细描述前述特征和优点以及其他优点,其中:图1图示了存储器保护系统的一个实施例;以及图2示出了图1的存储器的保护系统实施例的一个示例性使用方法。具体实施方式在各个附图中,相似的特征已经由相似的附图标记指定。特别地,在各个实施例之间共有的结构和/或功能特征可以具有相同的附图标记并且可以布置相同的结构、尺寸和材料特性。为了清楚起见,仅图示和详细描述了对理解本文描述的实施例有用的操作和元件。特别地,将不再详细描述包括存储器保护系统的设备。除非另有指示,否则当提及连接在一起的两个元件时,这表示没有导体以外的任何中间元件的直接连接;并且当提及耦合在一起的两个元件时,这表示这两个元件可以连接或者它们可以经由一个或多个其他元件耦合。在以下公开中,除非另有指示,否则当提及绝对位置修饰词(诸如术语“前”、“后”、“顶部”、“底部”、“左”、“右”等)或相对位置修饰词(诸如,术语“上方”、“下方”、“上部”、“下部”等)时,或者当提及定向的修饰词(诸如,“水平”、“垂直”等)时,指的是图中所示的定向。除非另有指定,否则表述“约”、“近似”、“基本”和“大约”表示在10%以内,并且优选在5%以内。图1图示了存储器保护系统100的一个实施例。系统例如是电子设备的一部分,电子设备诸如是计算机、电话或包括微控制器和至少一个存储器的任何其他电子设备。图1包括表示存储器的框102。框102可以表示单个存储器或数个存储器。存储器102可以是一个或数个易失性存储器或非易失性存储器,或某些存储器是易失性的并且其他存储器是非易失性的数个存储器。例如,存储器102包括rom类型的存储器、闪存类型的存储器、ram类型的存储器,并且可选地包括其他类型的存储器。系统包括存储器保护单元104(mpu)。存储器保护单元例如是存储器管理单元(mmu)的一部分。存储器保护单元也可以可选地代替存储器管理单元。保护单元104以及可选的存储器管理单元通常是中央处理单元(cpu)的一部分。保护单元104例如是硬件组件。因此,保护单元104例如不是软件。软件是指能够由例如包括微控制器的设备解释的一组指令序列和这些操作所需的一组数据。因此,软件确定可以由设备完成的动作。保护单元104使得可以授权所谓的特权访问软件或特权软件,以访问存储器中已经由保护单元限定的区域。保护单元104还向不同的区域分配授权水平或保护水平,即,确定可以在存储器的这些区域中执行的动作,并且确定什么软件可以执行这些动作。每个区域由起始地址和结束地址或由起始地址和大小限定。例如,软件可以具有两种类型的授权水平,即特权访问(或特权软件)或非特权访问(或非特权软件)。由保护单元104限定的每个区域允许针对特权类型的软件的某些动作,并且允许针对非特权类型的软件的某些动作。例如,某些区域(诸如区域106(rw-读写))授权特权类型的软件和非特权类型的软件,以在存储器的该区域中进行读取和写入。例如,某些区域(诸如,区域108(ro-只读))授权特权类型的软件以在存储器的该区域中进行读取和写入,并且授权非特权类型的软件以在存储器的该区域中进行读取,但不写入。因此,非特权类型的软件对存储器的区域108的访问被限制。可选地,软件可以被划分为更大数目的授权水平。每个授权水平的软件可以在存储器的某些区域上执行某些动作,并且可选地不能在存储器的某些区域上执行其他动作。例如,该软件可以被赋予特权,即对整个存储器具有访问权限,或者可以以其他方式被赋予非特权,即具有不同的限制、不同的授权和不同的访问权限。能够由保护单元104限定的存储器的区域的数目是有限的。例如,一些保护单元可以限定存储器的8个或16个区域。为了优化保护并且优化存储器的区域的划分,由保护单元104限定的一些区域可以重叠。区域110(ro-只读)可以位于区域112(rw-读写)中。区域112例如从地址0xy1延伸到地址0xy4。区域110例如从地址0xy2延伸到地址0xy3。地址0xy4位于地址0xy3之后。地址0xy3位于地址0xy2之后。地址0xy2位于地址0xy1之后。因此,尽管被包括在0xy2和0xy3之间的、区域110的地址也位于在0xy1和0xy4之间的、区域112中,但是区域110具有与区域112的其他部分不同的授权水平。然而,不可能在存储器中限定足够的区域以使整个存储器具有足够的授权水平以供其使用。为了确保存储器的安全性并且限制区域的数目,通常选择在存储器中限定具有高授权水平的宽泛区域。高授权水平例如是指仅允许特权类型的软件进行写入和可选的读取的水平。因此,可以在使用有限数目的区域时保护存储器的大部分。但是,存储器中的希望对其分配高授权水平的部分未被全部连续地定位在存储器中。因此,存储器中的希望对其分配较低或较弱保护水平的部分(例如,希望对软件中的所有软件授权读取和写入的区域)可能位于具有更高授权水平的区域中。例如,关于时钟的信息可以例如位于区域108中。非特权类型的软件可以寻求使用、读取或写入该信息,但是将无法访问该信息。实际上,保护单元104监督试图访问存储器的软件的动作和指令。保护单元104根据软件的类型并且根据目标区域的授权水平,来确定软件是否可以在存储器中执行该动作。如果单元104确定软件被授权在存储器中动作,则该软件可以执行该动作,例如在存储器中进行读取或写入。动作由请求该动作的软件(即,发送指令的软件)执行。如果单元104确定软件未被授权在存储器中动作,则该软件不执行该动作。附加地,由保护单元104生成异常。该异常指示未经授权的访问尝试,即,该软件寻求执行该软件没有授权的动作。图1包括框114,其例如示出了存储器的另一个部分。框114还可以示出数个存储器。类似于框102的情况,框114可以示出单个存储器或数个存储器。框114可以是一个或数个易失性存储器或非易失性存储器,或某些存储器是易失性的并且其他存储器是非易失性的数个存储器。例如,框114包括rom类型的存储器、闪存类型的存储器、ram类型的存储器,并且可选地包括其他类型的存储器。框114包括系统100的软件。框114特别地包括由框116示出的安全软件handler。框114还包括分别由框118和框120示出的两个软件应用a和b。框114包括未示出的其他软件应用。软件应用a例如是特权类型的软件。例如,软件应用a可以访问、读取和写入存储器的部分中的所有部分。例如,软件应用a具有在区域106rw和区域108ro中写入和读取的权利。软件应用b例如是非特权类型的软件应用。因此,软件应用b在它可以在存储器中完成的动作上被限制。因此,软件应用b不能在区域108ro中写入。但是,软件应用b可以在区域106rw中读取和写入。在图1的实施例中,系统还包括软件handler。例如,软件handler至少部分地位于与软件a和/或软件b相同的存储器中。软件handler被配置为接收在对存储器102进行未经授权的访问尝试时发出的异常。异常例如由保护单元104发出。异常可以可选地被设备中的一个或数个其他元件接收。软件handler被配置为能够解密在未经授权的访问尝试期间发出的异常。更具体地,软件handler被配置为能够从异常获得访问尝试的特性。因此,软件被配置为确定以下中的至少某些元素:访问尝试所针对的存储器的地址、尝试访问存储器102的软件(例如,软件a或b)的标识、软件寻求执行的动作、动作的运算符代码、动作的变量以及可选的其他信息。在一个示例中,软件b寻求在与外围设备关联的寄存器中执行动作“strr1[r8]”。假设存储器102中包含该寄存器的部分在软件b不可访问的区域ro中,例如在区域108中。然后,软件handler可以例如从所生成的异常确定:目标存储器的部分;软件b的标识;软件b寻求执行的动作;是否涉及写入操作;写入是在该存储器的位置中进行还是针对该存储器的位置,在该位置中地址被包含在寄存器r8中;以及要被写入的值是在寄存器r1中包含的值。软件handler被配置为将该信息与表122(table)进行比较,以便确定该动作是否被授权。表table被包含在设备的存储器中。该表包括表示可以被执行的动作的信息。例如,表122包括可以在存储器102中执行的动作的特性。更具体地,表122例如包括在区域中未被保护单元104授权,但能够借助于软件handler执行的动作的特性。表的特性更具体地涉及或多或少具体的动作。例如,表可以包括如下特性,该特性使得可以确定非特权软件是否可以在区域(诸如区域108)中包括的区域中进行读取和写入。表还可以使得可以确定这些动作仅适用于特定的非特权软件,而不是非特权软件中的所有非特权软件。表还可以包括动作的特性中的所有特性。例如,前面描述的动作“strr0[r8]”可以被授权,但操作“strr0[r9]”可能未被授权。因此,动作“strr0[r8]”的特性中的所有特性都被包括在表122中,以便能够确定该动作是否被授权。表优选地仅可由软件handler访问。例如,这由硬件建立。表例如被包含在仅包含该表的存储器中。包含表的存储器例如是与在设备的操作中使用的其他存储器分离的存储器。例如,包含表的存储器仅可由软件handler物理访问。软件handler还被配置为能够访问存储器102,优选地访问整个存储器,并且特别地能够访问非特权软件不可访问的规则。因此,软件handler可以访问存储器102中尝试进行未经授权的访问的区域。软件handler被配置为:如果软件handler按照表table来确定未经授权的动作被授权,则能够执行触发了异常的该动作。如果动作未被保护单元104授权而是被表table中包含的信息授权,则该动作由软件handler执行,而不是由对存储器的访问尝试触发了异常的原始软件(例如,软件b)执行。因此,尽管该动作可以被执行,但是原始软件不在它没有访问权限的区域中动作。因此,该动作由具有授权水平的软件(软件handler)完成,该授权水平使得可以访问所讨论的存储器的区域。表的内容例如在设备的制造期间被编程。表的内容例如在存储器的不同区域的授权和保护水平的建立期间被编程。表的内容例如由软件handler编写。作为变型,设备可以包括数个软件应用handler。每个软件应用handler例如与存储器相关联。例如,软件应用handler均与表122相关联。例如,一些软件应用handler与同一表122相关联。图2示出了图1的存储器的保护系统实施例的示例性使用方法。在第一步骤200(c:发送指令)期间,软件应用c试图访问存储器的区域以在其中执行动作。例如,软件c是与软件handler和/或软件a和/或软件b被包含在同一存储器中的软件应用。因此,软件c发送指令,即,使得可以实施软件c希望在存储器中执行的动作的代码。例如,软件c寻求在与外围设备相关联的寄存器中执行动作“strr0[r8]”。当软件c试图到达存储器102时,存储器的保护单元104确定该动作是否被允许。这是步骤202(c被允许?)。因此,存储器的保护单元确定软件c是否具有足够的授权水平以在存储器的该区域中执行该动作。如果软件c具有足够的授权水平(分支y),则软件c执行该动作。这是步骤204(c:执行指令)。例如,软件c是特权软件,并且可以访问存储器的区域中的所有区域。例如,即使对于非特权软件,软件c希望执行的动作也在存储器的该区域中被授权。例如,要被执行的动作是区域ro的读取动作,在区域ro中,非特权软件可以读取存储器。例如,要被执行的动作是区域rw的写入动作,在区域rw中,非特权软件可以在存储器中读取和写入。然后,该动作由软件c直接在存储器中完成。如果软件c不具有足够的授权水平(分支n),则生成异常。这是步骤206(异常)。该异常例如由存储器的保护单元发出。在步骤208(handler:接收异常)期间,软件handler接收异常。在步骤210(handler:解密异常)期间,软件handler解密异常,以便获得对存储器的未经授权的访问尝试的特性。软件handler确定以下各项中的至少某些元素:访问尝试所针对的存储器的地址、尝试访问存储器102的软件(例如,软件c)的标识、软件正在寻求执行的动作、动作的运算符代码、动作的寄存器以及可选的其他信息。在步骤212(handler:与表比较)期间,软件handler将通过解密异常获得的信息与表table122中包含的数据进行比较。软件handler确定(步骤214,指令被允许?)该动作是否可以被执行,即,该动作在表的编程期间是否被授权。如果该动作未被授权(分支n),即,如果从异常获得的信息与表table中包含的信息不对应,则该动作不被执行(步骤216,指令不被执行)。如果该动作被授权(分支y),即,如果从异常获得的信息与表table中包含的信息相对应,则软件handler执行该动作(步骤218,handler:执行指令)。因此,由软件handler完成对存储器的访问以执行该动作,并且完成与该动作相对应的寄存器的修改。因此,软件c无法访问与其授权水平不对应的存储器的区域。在步骤220(c:接收结果)期间,由软件handler执行的动作产生的信息可以被提供给软件c。例如,软件c可以接收从存储器读取的信息。软件c接下来继续其执行。更一般地,软件c接收信息,该信息允许其像执行了其本身的动作一样继续其执行。软件c因此继续其操作。因此,该动作借助于特权软件(软件handler)而被执行。在未经授权的软件应用进行的访问尝试期间生成的异常使得可以警告软件handler该软件正在尝试使用其可以完成的动作。所描述的实施例的一个优点是,来自非特权软件的动作可以被执行,包括在非特权软件应用不能直接访问的存储器区域中可以被执行。已经描述了各种实施例和变型。本领域技术人员将理解,这些实施例的某些特征可以被组合,并且本领域技术人员将容易想到其他变型。最后,基于上文提供的功能描述,本文描述的实施例和变型的实际实施方式在本领域技术人员的能力之内。当前第1页1 2 3 当前第1页1 2 3 
    技术特征:

    1.一种用于保护存储器的系统,所述系统包括:

    安全软件,被配置为:从响应于用于在所述存储器中执行动作的未经授权的尝试而生成的异常,确定所述安全软件是否被授权执行所述动作。

    2.根据权利要求1所述的系统,其中所述未经授权的尝试由其他软件执行。

    3.根据权利要求1所述的系统,其中所述安全软件被配置为从所生成的所述异常获得所述动作的特性。

    4.根据权利要求3所述的系统,其中所获得的所述特性包括以下中的一项或多项:所述未经授权的尝试针对的所述存储器的地址、在所述存储器中尝试所述动作的软件的标识、其他软件正在尝试执行的所述动作、所述动作的运算符代码或所述动作的寄存器。

    5.根据权利要求3所述的系统,其中所述安全软件被配置为将所获得的所述动作的所述特性与表示能够在所述存储器中执行的动作的信息进行比较。

    6.根据权利要求5所述的系统,其中所述信息仅能够由所述安全软件访问。

    7.根据权利要求1所述的系统,还包括存储器保护单元,所述存储器保护单元被配置为限定所述存储器中的区域并且为所述区域分配保护水平。

    8.根据权利要求7所述的系统,其中所述异常由所述存储器保护单元生成。

    9.一种用于保护存储器的方法,所述方法包括:

    响应于用于在所述存储器中执行动作的未经授权的尝试而生成异常;以及

    响应于所述异常,由安全软件确定所述安全软件是否被授权执行所述动作。

    10.根据权利要求9所述的方法,还包括:由所述安全软件解密所述异常以获得所述动作的特性。

    11.根据权利要求9所述的方法,还包括由所述安全软件执行所述动作。

    12.根据权利要求11所述的方法,其中所述未经授权的尝试由其他软件执行。

    13.根据权利要求12所述的方法,其中在所述安全软件执行所述动作之后,所述其他软件继续其执行。

    14.根据权利要求9所述的方法,其中所述确定还包括:

    由所述安全软件,从所生成的所述异常获得所述动作的特性;以及

    由所述安全软件,将所获得的所述动作的所述特性与表示能够在所述存储器中执行的动作的信息进行比较。

    15.一种系统,包括:

    第一非暂态存储器存储装置,包括特权存储器和非特权存储器;

    硬件存储器保护单元,与所述第一非暂态存储器存储装置通信,其中所述硬件存储器保护单元被配置为:响应于用于在所述第一非暂态存储器存储装置中的所述特权存储器中执行动作的未经授权的尝试,而生成异常;以及

    第二非暂态存储器存储装置,包括与所述硬件存储器保护单元通信的安全软件,其中所述安全软件被配置为:响应于所述异常,来确定所述安全软件是否被授权执行所述动作,并且被配置为:

    响应于确定所述安全软件被授权执行所述动作,执行所述动作;或

    响应于确定所述安全软件未被授权执行所述动作,禁止所述动作的执行。

    16.根据权利要求15所述的系统,其中所述第一非暂态存储器存储装置和所述第二非暂态存储器存储装置是同一存储器存储装置。

    17.根据权利要求15所述的系统,其中所述安全软件被配置为确定包括所述安全软件被配置为:

    从所生成的所述异常获得所述动作的特性;以及

    将所获得的所述动作的所述特性与表示能够在所述第一非暂态存储器存储装置中执行的动作的信息进行比较。

    18.根据权利要求17所述的系统,其中所获得的所述特性包括以下中的一项或多项:所述未经授权的尝试针对的存储器位置的地址、尝试所述动作的软件的标识、其他软件正在尝试执行的所述动作、所述动作的运算符代码或所述动作的寄存器。

    19.根据权利要求15所述的系统,其中所述未经授权的尝试由其他软件执行。

    20.根据权利要求15所述的系统,其中所述硬件存储器保护单元还被配置为:

    限定所述第一非暂态存储器存储装置中的多个区域;以及

    为所述区域中的每个区域分配特权保护水平或非特权保护水平。

    技术总结
    本公开的各实施例涉及用于存储器的保护系统和方法。一种用于保护存储器的实施例系统,包括安全软件,该安全软件被配置为从存储器中未经授权的动作尝试期间生成的异常,确定安全软件是否可以执行该动作。

    技术研发人员:M·让
    受保护的技术使用者:意法半导体(大西部)公司
    技术研发日:2020.09.11
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22472.html

    最新回复(0)