CN111026683A - 访问存储器的方法 - Google Patents

访问存储器的方法 Download PDF

Info

Publication number
CN111026683A
CN111026683A CN201910949244.7A CN201910949244A CN111026683A CN 111026683 A CN111026683 A CN 111026683A CN 201910949244 A CN201910949244 A CN 201910949244A CN 111026683 A CN111026683 A CN 111026683A
Authority
CN
China
Prior art keywords
access
microcontroller
value
memory
type
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.)
Pending
Application number
CN201910949244.7A
Other languages
English (en)
Inventor
L·戴内彻
X·科巴尼
N·范-登-博谢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
STMicroelectronics Grenoble 2 SAS
Original Assignee
STMicroelectronics Rousset SAS
STMicroelectronics Grenoble 2 SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Rousset SAS, STMicroelectronics Grenoble 2 SAS filed Critical STMicroelectronics Rousset SAS
Publication of CN111026683A publication Critical patent/CN111026683A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及访问存储器的方法。在微控制器的非易失性存储器中,存储表示在至少四个值中选择的值的第一信息。此外,对于存储器的多个区域中的每个区域,还存储表示在两个类型中选择的类型的第二信息。根据所选择的值和区域类型,制约对区域中的每个区域的访问。

Description

访问存储器的方法
优先权声明
本申请要求于2018年10月9日提交的法国专利申请第1871152号的优先权权益,其内容在法律允许的最大范围内全部以引用的方式并入本文。
技术领域
本公开总体上涉及电子电路领域,并且更具体地涉及微控制器领域。
背景技术
包括非易失性存储器的微控制器在本领域中是已知的,其中一个或多个应用程序在其由微控制器的微处理器读取和执行时引起对应应用的实施。
需要控制对微控制器的非易失性存储器的区域的访问,例如以防止对存储在存储器中的机密信息的访问。
进一步需要允许通过使用使得能够在程序由微控制器执行时标识应用的故障的工具,来开发应用的程序,同时保持微控制器的非易失性存储器的某些区域的机密性。
发明内容
一个实施例克服了访问存储器(尤其是微控制器的非易失性存储器)的已知方法的全部或部分缺点。
一个实施例提供了一种方法,该方法包括以下步骤:在微控制器的非易失性存储器中,存储表示在至少四个值中选择的值的第一信息,并且对于存储器的多个区域中的每个区域,存储表示在两个类型中选择的类型的第二信息;以及根据选择的值和区域的类型,制约对所述区域中的每个区域的访问。
根据一个实施例,对所述区域中的每个区域的访问进一步受以下事实的制约:访问是由连接至微控制器的调试器发起的。
根据一个实施例,当选择的值为第一值并且访问是由连接至微控制器的调试器发起时,授权对两个类型中的第一类型的区域的访问,并且禁止对两个类型中的第二类型的区域的访问。
根据一个实施例,当所选择的值为第二值时,授权对第一类型和第二类型的区域的访问。
根据一个实施例,所选择的值从第一值到第二值的改变被禁止,或者导致所述区域中的每个区域的删除。
根据一个实施例,当所选择的值为第三值时,对所述区域中的每个区域的访问进一步通过检测入侵来制约,优选地,当调试器连接至微控制器时,和/或当从与非易失性存储器不同的另一源读取微控制器启动程序时,检测到入侵。
根据一个实施例,当检测到入侵并且所选择的值为第三值时,禁止对第一类型和第二类型的区域的访问。
根据一个实施例,所选择的值从第三值到第一值的改变仅导致所述区域中的第一类型的每个区域的删除,并且优选地,导致微控制器的重新启动和/或微控制器的每个非易失性存储器的删除。
根据一个实施例,当所选择的值为第四值时,停用调试器到微控制器的连接,优选地,还停用来自与存储器不同的另一源的启动程序的执行。
根据一个实施例,所选择的值从第一值、第二值或第三值到第四值的改变是不可逆的。
根据一个实施例,对所述区域中的每个区域的每次访问具有两个特性中的一个特性,对区域的访问进一步受访问的特性的制约。
根据一个实施例,第一类型的区域通过两个特性中的第一特性或可选地第二特性的访问是可访问的,第二类型的区域仅通过第二特性的访问是可访问的。
根据一个实施例,该方法进一步包括以下步骤:对于由微控制器的微处理器所看到的每个地址,将表示在两个类别中选择的类别的第三信息非易失性地编程在微控制器和/或微控制器启动程序中;以及根据所选择的值和地址类别来制约对所述地址中的每个地址的访问,优选地,通过以下方式来制约:只有授权对第一类型的区域的访问,才授权对两个类别中的第一类别的地址的访问,并且只有授权对第二类型的区域的访问,才授权对两个类别中的第二类别的地址的访问。
另一实施例提供了一种非易失性存储器,其优选地是闪存类型的,其被配置为实施上述方法。
另一实施例提供了一种微控制器,其包括诸如上文所限定的存储器,该微控制器被配置为实施上述方法。
附图说明
将在结合附图对具体实施例的以下非限制性描述中,详细讨论前述和其他特征和优点,其中:
图1以框的形式非常示意性地示出了微控制器的一个实施例;
图2示意性地示出了图1的微控制器的非易失性存储器的一个实施例;
图3以框的形式图示了访问图2的存储器的区域的方法的一个实施例;以及
图4以框的形式示意性地示出了图1的微控制器的另一实施例,其中实施图3的方法的替代实施例。
具体实施方式
在不同的附图中,相同的元件用相同的附图标记指定。尤其,不同实施例共同的结构和/或功能元件可以用相同的附图标记指定,并且可以具有相同的结构、尺寸和材料性质。
为清楚起见,仅示出并详细描述了对于理解所描述的实施例有用的那些步骤和元件。尤其,没有详细描述构成微控制器的各种电路或元件以及微控制器的操作,所描述的实施例与通常的微控制器及其操作兼容。
贯穿本公开,术语“连接”用于指定电路元件之间的直接电连接,除了导体之外没有中间元件,而术语“耦合”用于指定电路元件之间的电连接,该电连接可以是直接的、或者可以是经由一个或多个中间元件。
在以下描述中,当提及限定绝对位置的术语(诸如术语“前”、“后”、“顶”、“底”、“左”、“右”等)、或者限定相对位置的术语(诸如术语“上方”、“下方”、“上”、“下”等)、或者限定方向的术语(诸如术语“水平”、“垂直”等)时,除非另有说明,否则指的是附图的定向。
术语“约”、“大体上”和“近似”在本文中用于指定所讨论的值的正负10%、优选地正负5%的公差。
图1以框的形式非常示意性地示出了微控制器1的一个示例,作为一个示例,将描述的实施例应用于该类型的微控制器1。
微控制器1包括:微处理器11(CU);例如RAM或寄存器类型的一个或多个易失性存储区域12(RAM),其被配置为临时存储信息(指令、地址、数据);一个或多个非易失性存储区域,其包括至少一个闪存型存储器2(FLASH),该至少一个闪存型存储器2被配置为在微控制器未通电时存储信息;一个或多个数据、地址和/或控制总线,其用于在微控制器1内部的不同元件之间建立连接,在此以单个总线13的形式示出了各种总线;以及一个或多个输入-输出接口14(I/O),其用于与微控制器1的外部通信。
进一步地,微控制器1可以集成由框15(FCT)符号化的其他功能,例如密码处理器、其他接口、其他存储器等。
闪存存储器2被配置为存储初始程序或启动程序。启动程序是在微控制器1的启动时(即,当微控制器启动或重新启动时)由微处理器11读取和执行的首个程序。闪存存储器2进一步被配置为存储软件应用的至少一个程序。
在此,措辞“软件应用的程序”指定一连串的指令,当它们由微处理器11读取和执行时,这些指令使得能够实施某个应用功能。根据一个具体实施例,某个应用的功能是有限脉冲响应滤波功能。
“调试器”在此指定用于搜索软件应用的故障的工具,该软件应用的程序由微控制器(例如,微控制器1)读取和执行。更具体地,调试器使得能够逐步执行应用的程序(例如,该程序被存储在微控制器1的闪存存储器2中),显示并且可能地修改程序的变量等。某些调试器甚至使得能够访问微处理器11的内部寄存器、微控制器1的存储器和/或微控制器1的寄存器(例如,用于对微控制器功能进行编程的寄存器)的内容。
以将第一应用的程序存储在闪存存储器2中的情况为例,该第一应用已由第一实体(例如,开发者、公司、微控制器供应商等)开发。然后将微控制器1供应给第二实体(例如,另一开发者、另一公司、用户等)。第二实体可能期望开发第二应用的程序以将该程序存储到闪存存储器2中,以借助微控制器实施第二应用。在第二应用的程序的开发期间,第二实体可以使用调试器。调试器的使用被认为是一种入侵,该入侵能够允许第二实体访问与第一应用的程序有关的信息。现在,在某些情况下,期望第二实体不能(尤其是通过使用调试器)访问与已经被编程或安装在存储器2中的第一应用有关的信息。能够允许访问与第一应用的程序有关的信息的另一入侵是源自外部的启动程序的执行,例如,从RAM 12执行。
优选地,微控制器1被配置为检测这种入侵。
作为一个示例,可以通过微控制器检测电路来检测与调试器到微控制器1的连接相对应的入侵。然后,电路可以修改微控制器1的至少某些元件(并且尤其是闪存存储器2)可访问的入侵标志(例如,用于控制总线13的位)的值,以向这些元件通知调试器的连接。作为一个示例,在微控制器1的、调试器可以连接到的每个接口14中提供了这种检测电路,例如,JTAG(联合测试行动组)总线接口或SWD总线(串行线调试)接口14、以及更一般地使得能够实施所谓的边界扫描技术的总线接口。
作为一个示例,微控制器1可以检测与和存储在存储器2中的启动程序不同的启动程序的执行相对应的入侵,并且可以将对该入侵的检测的指示供应给闪存存储器2。实际上,要由微处理器执行的启动程序被存储在的地址是由存储在存储器2中的选项供应的,这些选项在启动微控制器1时由启动控制器(未在图1中示出)分析。启动控制器优选地可被配置为根据存储该程序的地址来授权或不授权启动程序的执行。
尽管这未在图1中示出,但微控制器1在此被划分到两个环境中,即,安全环境(安全世界-SW)和非安全环境(非安全世界-NSW)。在读取模式、在写入模式和在执行模式下,属于安全环境SW的程序或电路可以访问安全环境SW以及可选地非安全环境NSW的地址。然而,在读取模式、在写入模式和在执行模式下,属于非安全环境NSW的程序或电路只可以访问属于非安全环境NSW的地址。更具体地,在微控制器1中,在对地址的读取、写入或执行访问期间,总线13包括对该访问的安全(SA-安全访问)或非安全(NSA-非安全访问)特性或类型的指示。安全访问SA例如由安全环境SW的程序或电路请求或发起,并且非安全访问NSA例如由非安全环境NSW的程序或电路请求或发起。作为一个示例,可以借助以商标名TrustZone指定的技术来实施微控制器1到SW和NSW两个环境中的划分。
当调试器连接至微控制器1时,其可以从微控制器的外部发起对微控制器的内部地址的SA型或NSA型访问,访问请求例如由与调试器连接的接口14接收,接口14然后被配置为将访问请求传输至微控制器的总线13。
图2示意性地示出了图1的微控制器的闪存存储器2的一个实施例。
存储器2包括非易失性存储空间或存储器空间21,例如,其由多个可寻址存储器字形成。存储器2进一步包括接口电路22(CTRL),接口电路22被配置为控制对存储器空间21的读取、写入和执行访问。
存储器空间21被分割或被划分到多个部分中,在本示例中,被分割或被划分到两个部分210和212中。部分210被配置为存储存储器2的配置信息。部分212被配置为存储软件应用程序。存储器空间21的每个部分210、212由参数来限定和/或标识,该参数诸如为其开始地址、其尺寸(即,其存储器字的数量)和/或其结束地址。表示这些参数的数据被非易失性地存储到存储器2中,优选地是在其部分210中。
作为一个示例,微控制器1的启动程序被存储在存储器空间21的部分212中。作为变型,存储器空间21可以包括第三部分,该第三部分被保留用于微控制器1的启动程序的存储。
在该实施例中,存储器空间21的部分212被分割或被划分到多个扇区或区域214中。优选地,每个区域214包括或对应于多个存储器字。换言之,每个区域214与(优选地连续的)多个地址相对应。每个区域214由参数来限定和/或标识,该参数诸如为其开始地址、其尺寸和/或其结束地址。表示这些参数的数据被非易失性地存储到存储器2中,优选地是在其部分210中。
在该实施例中,区域214分别属于安全环境SW或非安全环境NSW。因此,每个区域214可以是第一类型SW或第二类型NSW的,SW型区域214由图2中的阴影线指示。表示每个区域214的安全SW或非安全NSW特性的信息被非易失性地存储在存储器2中,优选地是在其部分210中。优选地,在存储器2的初始状态下,即,当存储器2为空白时,其仅包含安全型SW的区域214。
作为一个示例,在此假设安全应用程序要被存储在SW型区域214中,并且因此属于微控制器1的安全环境SW,并且要被存储在NSW型区域214中的非安全或公共应用程序因此属于微控制器1的非安全环境NSW。
在该实施例中,变量RDP(读出保护)的值选自至少四个值之中,优选地是选自四个值之中。表示变量RDP的值的信息被非易失性地存储在存储器2中,优选地是在其部分210中,如图2所示。
例如,如图2所示,存储器2的电路22连接在存储空间21与存储器2的输入/输出23之间,输入/输出23被配置为连接至总线13。
当总线13请求访问区域214时,根据变量RDP的值、根据区域214的类型(SW或NSW)、根据访问的安全SA或非安全NSA特性、和/或可能地根据检测到或未检测到入侵和/或根据调试器尚未发起访问的事实,电路22制约对区域214的访问。
优选地,电路22还控制与存储器2的配置有关的信息到存储器2中的编程或存储,这样的信息表示将存储器空间21划分到部分210和212中、将部分212分割到区域214中、每个区域214的SW或NSW类型、和/或变量RDP的值。优选地,区域214的SW或NSW类型的修改只可以借助总线13对存储器2的安全访问SA来执行。作为一个示例,值RDP的修改可以借助总线13对存储器2的安全访问SA或非安全访问NSA来执行。
在该示例中,电路22包括一个或多个易失性存储寄存器221,图2中示出了两个寄存器221。寄存器221被配置为在电路22已从存储器空间21读取与存储器2的配置有关的信息之后,存储这些信息。
作为变型,电路22包括一个或多个非易失性存储电路,该一个或多个非易失性存储电路具有存储在其中的信息,该信息表示:将存储器空间21划分到部分210和212中、将部分212分割到区域214中、每个区域214的类型(SW或NSW)和/或变量RDP的值。在这种情况下,可以不将信息存储在存储器空间21中。
现在将针对图3更详细地描述电路22根据以下来制约对区域214的访问的方式:根据区域214的SW或NSW类型、根据变量RDP的值、和/或根据访问的SA或NSA类型。
图3以框的形式图示了管理微控制器的操作(例如,确定对图2的存储器2的区域214的访问的控制)的方法的一个实施例,电路22优选地被配置为实施该方法。
在该示例中,变量RDP的值选自四个值L0、L05、L1和L2之中。然后,该方法包括与变量RDP的值分别为L05、L0、L1和L2的情况相对应的四个状态30(框RDP=L05)、31(框RDP=L0)、32(框RDP=L1)和33(框RDP=L2)。
无论状态30、31、32或33如何,都禁止对安全区域SW进行非安全访问NSA,例如,由电路22拒绝。
在状态30中,当访问源自连接至微控制器1的调试器时,禁止对安全区域SW的访问(甚至是安全访问SA)。然而,如果访问并非源自调试器,则授权对安全区域SW的安全访问SA。进一步地,无论访问是安全的(SA)还是非安全的(NSA),以及无论访问是否源自连接至微控制器1的调试器,都授权对区域NSW的访问。
因此,在状态30中,调试器只可以访问NSW型区域。然后,可以借助调试器标识将其程序存储在NSW非安全区域214中的软件应用的故障,同时使将其程序存储在SW安全区域214中的另一软件应用保持安全。
作为一个示例,在状态30中,与调试器连接的接口14被配置为例如在读取变量RDP的值之后,不向总线13传输由调试器从微控制器1的外部发起的任何SA型访问。因此,电路22看到的任何安全访问SA都不可以源自调试器。
在状态31中,即使安全访问SA源自连接至微控制器1的调试器,也例如由电路22授权对SW安全区域的安全访问SA。进一步地,无论该访问是安全的SA还是非安全的NSA,以及无论其是否源自调试器,都例如由电路22授权对NSW非安全区域的访问。换言之,在状态31中,调试器可以访问存储器2的所有区域214。
作为一个示例,在状态31中,与调试器连接的接口14被配置为例如在读取变量RDP的值之后,向总线13传输由调试器从微控制器1的外部发起的所有访问,无论该访问是安全的SA还是非安全的NSA。然而,调试器应该发起正确的访问,即是说,访问SW安全区域的安全访问SA和访问NSW非安全区域的安全SA或非安全NSA访问,调试器被配置为管理其发起的访问类型(SA或NSA)。
在状态32中,当检测到入侵(例如,调试器与微控制器1的连接)时,电路22不授权对SW型和NSW型区域214的任何访问(安全SA或非安全NSA)。然而,如果没有检测到入侵,则授权对SW型的和可选地NSW型的区域214的安全访问SA,并且仅授权对NSW非安全区域的非安全访问NSA。因此,在状态32中,入侵(尤其是调试器与微控制器的连接)的检测导致不再能访问存储器2,这使得能够保护其内容。然而,在没有调试器的连接的情况下,可以通过遵守微控制器的安全SW和非安全NSW环境之间的划分,来执行在微控制器上编程的应用。
优选地,在状态32中,微控制器1(并且更具体地其启动控制器)被配置为例如在读取变量RDP的值之后,防止执行与存储在存储器2中的启动程序不同的启动程序。
在状态33中,例如,通过(优选地决定性地)阻止对调试器可以使用的微控制器1的总线的访问,停用调试器与微控制器1的连接。作为一个示例,当变量RDP的值为L2时,这是在与总线相关联的每个接口14的级别处实施的,该总线使得能够执行调试器,作为一个示例,通过停用这些接口的时钟来实施。进一步地,例如通过微控制器1的启动控制器,还停用来自与闪存存储器2不同的另一源的启动程序的执行,然后其仅向微控制器1传输存储在存储器2中的启动程序的地址。进一步地,在状态33中,授权对SW型或可选地NSW型区域214的安全访问SA,并且分别授权和禁止对NSW型或SW型区域214的非安全访问NSA。
根据所描述的方法,仅授权由电路22对变量RDP的值的某些改变或重新编程,变量RDP的值的改变导致在产品重置之后状态的对应改变。
尤其,在该实施例中,授权从状态30、31和32到状态33的改变(图3,相应的箭头34、35和36)。然而,禁止从状态33到状态30、31和32中的任何状态的改变。因此,状态33是不可逆的状态,或者换言之,是决定性的状态。进一步地,授权从状态30或31到状态32的改变(图3,相应的箭头37和38),或者授权从状态31到状态30的改变(图3,箭头39)。
在该实施例中,还授权从状态32到状态30的改变(图3,箭头40),并且该改变导致删除所有NSW非安全区域214。因此,当在状态32中已经执行了存储在SW型区域214中的程序时,这种状态改变导致在转变到状态30之后删除存储在NSW非安全区域214中的可能的数据和/或指令。这使得能够避免这样的数据在状态30中由调试器读取,在状态30中授权调试器对NSW非安全区域214的访问。
在所示出的示例中,授权从状态32到状态31的改变(图3,箭头41),并且该改变导致删除所有区域214。这使得能够避免存储在安全区域214SW中的程序变得可由连接至微控制器1的调试器访问,在状态31中授权调试器对安全区域SW 214的访问。
在未示出的替代实施例中,授权从状态30到状态31的改变,并且该改变导致删除所有区域214。
在上述方法中,当需要对区域214的读取或写入访问、而同时该访问被禁止时,电路22可以在总线13上生成错误信号,可选地导致正在执行的程序的中断。
所描述的方法根据变量RDP的值、根据区域的NSW或SW类型、根据访问的安全(SA)或非安全(NSA)特性、和/或可能地根据检测到或未检测到入侵和/或根据访问的来源(即是说,访问是否是由连接至微控制器1的调试器发起的),来控制对区域214的访问,该方法可以延伸至控制所有微控制器1中的读取、写入和/或执行访问。实际上,从微处理器11的角度来看,微控制器1的连接至总线13的所有元件均被视为地址,这些地址可以属于相应的安全(SW)和非安全(NSW)环境。在此假设将微处理器11看到的地址分配到SW类型或类别的地址中以及NSW类型或类别的地址中。然后,根据变量RDP的值、地址的类别SW和NSW、访问的安全(SA)或非安全(NSA)特性、和/或可能地检测到或未检测到入侵和/或访问的来源(是否是调试器),来制约对这些地址的访问。
图4以框的形式示意性地示出了图1的微控制器1的另一实施例,其中实施图3的方法的替代实施例。
与图1所示的微控制器相比,已经示出了微控制器1的两个接口14I/O1和I/O2,并且已经示出了微控制器1的两个功能FCT1和FCT2(框15)。进一步地,已经示出了微处理器11的访问控制电路110(框SCU-安全控制单元)。电路110包括至少一个存储电路(未示出),例如,寄存器或易失性存储器。
闪存存储器2是针对图2描述的类型的,并且实施针对图3描述的方法。
在所示的示例中,由微处理器11(并且尤其是由其电路110)看到的地址(其对应于功能FCT1、接口I/O2、RAM 12的部分120以及闪存存储器2的SW型区域)是安全地址SW,并且由图4中的阴影符号化,其他地址(尤其是与RAM 12的其他部分122相对应的那些地址)是NSW非安全地址。
电路110被配置为在其存储电路中记录由微处理器11看到的每个地址的SW或NSW类别。例如,该电路通过存储在存储器2中的启动程序的执行来配置,启动程序向其供应微控制器1到SW安全和NSW非安全环境中的划分。
当通过闪存存储器2的电路22(图2)来实施访问闪存存储器2的区域214的方法时,电路110被配置为:以与电路22制约分别对安全和非安全区域214(SW和NSW)的访问相同的方式,来制约对SW安全和NSW非安全地址的访问;以与电路22制约分别从NSW非安全区域到SW安全区域的切换和从SW安全区域到NSW非安全区域的切换相同的方式,来制约从NSW非安全地址到SW安全地址中的切换和从SW安全地址到NSW非安全地址中的切换;以及以与电路22分别删除SW安全区域214和NSW非安全区域214的内容相同的方式,来删除SW安全地址和NSW非安全地址的内容。
优选地,在从状态32切换到状态30(图3中的箭头40)时,即,在变量RDP的值从值L1改变为值L05时,进一步提供微控制器的所有非易失性存储器的删除和/或微控制器的重新启动。
这种方法的实施使得能够通常在微控制器1中保护存储在闪存存储器2的SW安全区域214中的程序。
已经描述了各种实施例和变型。本领域的技术人员将理解,这些各种实施例和变型的某些特征可以进行组合,并且本领域的技术人员将会想到其他变型。尤其,将在本领域的技术人员的能力范围内的是,在更一般的情况下实施上述方法,其中调试器由微控制器1外部的任何程序或电路取代,该程序或电路需要访问区域214或微控制器1的内部地址。
最后,基于上文给出的功能指示,所描述的实施例和变型的实际实施在本领域的技术人员的能力范围内。尤其,尽管未对此进行描述,但是存储器2经由总线13接收对变量RDP的值进行重新编程和/或对区域214的类型进行重新编程的请求。作为一个示例,变量RDP的值的改变或重新编程是通过由微控制器1执行的用户代码来请求的,或者是经由接口14(例如,与调试器连接的接口,称为调试接口)从微控制器1的外部来请求的。然而,优选地,存储器2的区域的SW或NSW类型的改变或重新编程仅可以经由对存储器的安全访问来请求,并且可以(如果该动作源自调试器的话)取决于变量RDP的值。
这些变更、修改和改进意在作为本公开的一部分,并且意在落入本发明的精神和范围内。因此,前述描述仅是通过示例的方式,并且不意在是限制性的。本发明仅如所附权利要求及其等效物所限定的那样受到限制。

Claims (23)

1.一种方法,包括以下步骤:
在微控制器的非易失性存储器中,存储表示在至少四个值中选择的值的第一信息,并且对于所述存储器的多个区域中的每个区域,存储表示在两个类型中选择的类型的第二信息;以及
根据选择的所述值和所述区域的所述类型,制约对所述多个区域中的每个区域的访问。
2.根据权利要求1所述的方法,其中制约对所述多个区域中的每个区域的访问进一步包括:基于所述访问是否是由连接至所述微控制器的调试器发起的,来进行制约。
3.根据权利要求2所述的方法,其中当选择的所述值为第一值并且所述访问是由连接至所述微控制器的所述调试器发起时,授权对所述两个类型中的第一类型的所述区域的访问,并且禁止对所述两个类型中的第二类型的所述区域的访问。
4.根据权利要求3所述的方法,其中当选择的所述值为第二值时,授权对所述第一类型和所述第二类型的所述区域的访问。
5.根据权利要求4所述的方法,进一步包括:禁止选择的所述值从所述第一值改变为所述第二值。
6.根据权利要求4所述的方法,进一步包括:响应于选择的所述值从所述第一值改变为所述第二值,删除所述多个区域中的每个区域。
7.根据权利要求4所述的方法,其中制约对所述多个区域中的每个区域的访问进一步包括:当选择的所述值为第三值时,通过检测入侵来进行制约。
8.根据权利要求7所述的方法,进一步包括:检测当调试器连接至所述微控制器时的所述入侵。
9.根据权利要求7所述的方法,进一步包括:检测当从与所述非易失性存储器不同的另一源读取微控制器启动程序时的所述入侵。
10.根据权利要求7所述的方法,其中当检测到入侵并且选择的所述值为所述第三值时,禁止对所述第一类型和所述第二类型的所述区域的访问。
11.根据权利要求7所述的方法,进一步包括:响应于选择的所述值从所述第三值改变为所述第一值,仅删除所述多个区域中的所述第一类型的每个区域。
12.根据权利要求11所述的方法,进一步包括:重新启动所述微控制器。
13.根据权利要求11所述的方法,进一步包括:删除所述微控制器的每个非易失性存储器。
14.根据权利要求7所述的方法,进一步包括:响应于选择的所述值为第四值,停用调试器到所述微控制器的连接。
15.根据权利要求14所述的方法,进一步包括:停用来自与所述存储器不同的另一源的启动程序的执行。
16.根据权利要求14所述的方法,其中选择的所述值从所述第一值、所述第二值或所述第三值到所述第四值的改变是不可逆的。
17.根据权利要求3所述的方法,其中对所述多个区域中的每个区域的每次访问具有两个特性中的一个特性,对所述区域的所述访问进一步受所述访问的所述特性的制约。
18.根据权利要求17所述的方法,其中所述第一类型的区域通过所述两个特性中的第一特性或可选地第二特性的访问是可访问的,所述第二类型的区域仅通过所述第二特性的访问是可访问的。
19.根据权利要求1所述的方法,进一步包括以下步骤:
对于由所述微控制器的微处理器所看到的每个地址,将表示在两个类别中选择的类别的第三信息非易失性地编程在所述微控制器和/或微控制器启动程序中;以及
根据选择的所述值和所述地址的所述类别,制约对所述地址中的每个地址的访问。
20.根据权利要求19所述的方法,其中制约访问包括:只有授权对所述第一类型的所述区域的访问,才授权对所述两个类别中的第一类别的所述地址的访问,并且只有授权对所述第二类型的所述区域的访问,才授权对所述两个类别中的第二类别的所述地址的访问。
21.一种非易失性存储器,被配置为实施根据权利要求1所述的方法。
22.根据权利要求21所述的非易失性存储器,其中所述存储器是闪存类型的。
23.一种微控制器,包括根据权利要求21所述的非易失性存储器,其中所述微控制器被配置为实施根据权利要求1所述的方法。
CN201910949244.7A 2018-10-09 2019-10-08 访问存储器的方法 Pending CN111026683A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1871152 2018-10-09
FR1871152A FR3087020A1 (fr) 2018-10-09 2018-10-09 Procede d'acces a une memoire

Publications (1)

Publication Number Publication Date
CN111026683A true CN111026683A (zh) 2020-04-17

Family

ID=66166092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910949244.7A Pending CN111026683A (zh) 2018-10-09 2019-10-08 访问存储器的方法

Country Status (4)

Country Link
US (1) US11055237B2 (zh)
EP (1) EP3637266B1 (zh)
CN (1) CN111026683A (zh)
FR (1) FR3087020A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11436367B2 (en) * 2020-02-25 2022-09-06 Hewlett Packard Enterprise Development Lp Pre-operating system environment-based sanitization of storage devices
FR3129500A1 (fr) * 2021-11-25 2023-05-26 STMicroelectronics (Grand Ouest) SAS Procédé de gestion d’une mémoire au sein d’un système sur puce.

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130238831A1 (en) * 2012-03-06 2013-09-12 Freescale Semiconductor, Inc. Method for implementing security of non-volatile memory
US20130282951A1 (en) * 2012-04-19 2013-10-24 Qualcomm Incorporated System and method for secure booting and debugging of soc devices
CN104412242A (zh) * 2012-06-27 2015-03-11 北欧半导体公司 内存保护
US20150149703A1 (en) * 2013-11-22 2015-05-28 Nuvoton Technology Corporation Apparatuses for securing program code stored in a non-volatile memory
JP2017156789A (ja) * 2016-02-29 2017-09-07 キヤノン株式会社 情報処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3069935A1 (fr) * 2017-08-01 2019-02-08 Maxim Integrated Products, Inc. Dispositifs et procedes de protection de propriete intellectuelle de logiciel pour des plates-formes integrees
US20190042473A1 (en) * 2017-12-28 2019-02-07 Intel Corporation Technologies for enabling slow speed controllers to use hw crypto engine for i/o protection
US11105850B2 (en) * 2018-05-24 2021-08-31 Seagate Technology Llc Secure debug system for electronic devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130238831A1 (en) * 2012-03-06 2013-09-12 Freescale Semiconductor, Inc. Method for implementing security of non-volatile memory
US20130282951A1 (en) * 2012-04-19 2013-10-24 Qualcomm Incorporated System and method for secure booting and debugging of soc devices
CN104412242A (zh) * 2012-06-27 2015-03-11 北欧半导体公司 内存保护
US20150149703A1 (en) * 2013-11-22 2015-05-28 Nuvoton Technology Corporation Apparatuses for securing program code stored in a non-volatile memory
JP2017156789A (ja) * 2016-02-29 2017-09-07 キヤノン株式会社 情報処理装置

Also Published As

Publication number Publication date
US20200110713A1 (en) 2020-04-09
EP3637266B1 (fr) 2021-06-23
US11055237B2 (en) 2021-07-06
EP3637266A1 (fr) 2020-04-15
FR3087020A1 (fr) 2020-04-10

Similar Documents

Publication Publication Date Title
US7444668B2 (en) Method and apparatus for determining access permission
JP5419776B2 (ja) 半導体装置及びデータ処理方法
JP6306578B2 (ja) メモリ保護装置及び保護方法
US9389793B2 (en) Trusted execution and access protection for embedded memory
US8161258B2 (en) Method to qualify access to a block storage device via augmentation of the device'S controller and firmware flow
US9715601B2 (en) Secure access in a microcontroller system
US20130138975A1 (en) Protection of memory areas
CN103262092A (zh) 基于储存驱动器的防恶意软件方法和装置
CN110020561B (zh) 半导体装置和操作半导体装置的方法
CN111026683A (zh) 访问存储器的方法
US8782367B2 (en) Memory area protection circuit
CN113467844A (zh) 适用于工业级应用场景的嵌入式系统的控制方法、嵌入式系统和计算机可读存储介质
US20200293659A1 (en) Electronic apparatus and control method of electronic apparatus
CN113064663A (zh) 电脑装置及基于信任链的权限管理方法
JP5761880B2 (ja) 自動車
WO2018040678A1 (zh) 一种存储器数据保护方法、集成电路芯片及存储介质
JP5603993B2 (ja) 電装ユニット及びデータ処理方法
CN102637152B (zh) 具有处理单元和信息存储装置的设备
CN110023940A (zh) 适合于在受保护的和/或开放的运行状态下运行的设备单元以及所属的方法
JP2003203012A (ja) マイクロコンピュータ装置
US20240004804A1 (en) Method for managing access rights of memory regions and corresponding system on chip
CN110968254B (zh) 一种非易失性存储器的分区保护方法及装置
CN118210428A (zh) 用于闪存的数据存储方法、存储系统、芯片及其装置
JP2023032452A (ja) 電子制御装置及び更新ツール
CN117806993A (zh) 用于芯片的配置更新方法、装置和芯片

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination