CN110543790B - 访问存储器的方法、装置、设备和计算机可读介质 - Google Patents

访问存储器的方法、装置、设备和计算机可读介质 Download PDF

Info

Publication number
CN110543790B
CN110543790B CN201910457470.3A CN201910457470A CN110543790B CN 110543790 B CN110543790 B CN 110543790B CN 201910457470 A CN201910457470 A CN 201910457470A CN 110543790 B CN110543790 B CN 110543790B
Authority
CN
China
Prior art keywords
address
original
memory
code
addresses
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.)
Active
Application number
CN201910457470.3A
Other languages
English (en)
Other versions
CN110543790A (zh
Inventor
贝恩特·甘默尔
格尔德·迪舍尔
贝恩德·迈尔
斯特芬·桑尼卡尔布
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN110543790A publication Critical patent/CN110543790A/zh
Application granted granted Critical
Publication of CN110543790B publication Critical patent/CN110543790B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

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

Abstract

提供了用于经由至少一个地址访问存储器的方法,其中,所述至少一个地址包括码的码字。此外,提出了相应的装置、包括该装置的设备和计算机可读介质。

Description

访问存储器的方法、装置、设备和计算机可读介质
技术领域
本发明的实施方式涉及减少成功攻击地址线的机会。
背景技术
在安全应用中,使用微控制器和ASICS,微控制器和ASICS可以优选地被保护以免受涉及物理操纵的攻击,即所谓的物理攻击。物理攻击允许操纵单个或多个逻辑值。
示例性物理攻击可以基于静态操纵,例如,切断导线或者损坏开关元件(例如,晶体管),使得逻辑值(位和/或信号)被永久地修改。
还存在各种动态物理攻击:例如,信号可以被强制为某个值,或者可以在短时间段内被反转为其相反的逻辑值。这种动态物理攻击允许攻击者在计算期间临时注入故障。这可以通过例如激光故障注入(LFI)或者通过将探针放置在信号线上从而对该信号线施加预定电位来实现。这种操纵是可逆的,并且攻击者可以实施多个故障注入以分析逻辑电路的行为,潜在地获得由于该电路的临时故障所导致的秘密值。
显著的攻击目标可以是携带用于访问某些外围接口寄存器或存储器位置的地址的信号线。因此,如果秘密是从被操纵的地址(即不是预期目标地址的地址,而是同一外围装置或另一外围装置内的错误地址)(即,存储器位置)被读取或被写入该被操纵的地址,则地址操纵可以揭示秘密值。
发明内容
目的是提供一种用于减少成功攻击用于访问存储器的地址的机会的改进的方法。
本文中提出的示例可以特别地基于以下解决方案中的至少一种。可以利用以下特征的组合来达到期望的结果。该方法的特征可以与装置、设备或系统的任何特征进行组合,而装置、设备或系统的任何特征也可以与方法的特征进行组合。
提出了一种经由至少一个地址访问存储器的方法,
-其中,至少一个地址包括码的码字。
存储器可以是存储器空间或存储器域,特别地,存储器可以是安全存储器。可以经由作为地址的码字来进行对存储器的访问。地址可以由地址解码器重定向。访问可以包括写入操作、读取操作或验证操作。
在一个实施方式中,地址是码的码字。码可以是检错码和/或纠错码。因此,可以确保只有在地址是码的码字时才能成功访问。
因此,有效地址空间可以限于码的码字。如果访问指向不是码字的地址,则可以拒绝该访问以及/或者可以触发预定动作。这允许检测针对地址的单个位的攻击。
根据一个实施方式,
-获得与一个地址相关联的命令,
-检查地址是否为码字,
-如果地址是码的码字,则执行命令,
-如果地址不是码的码字,则触发预定动作。
预定动作可以包括试图访问无效地址的通知。可以阻止访问,或者可以将访问转移到预定地址。预定动作可以触发指示试图危害系统的更高级别的动作。预定动作可以包括警报通知,或者预定动作可以对整个系统产生影响,例如,停止操作以避免危害系统的进一步尝试成功。
命令可以包括读取操作、写入操作、验证操作、重新读取操作(重复读取操作)等。
根据一个实施方式,命令由地址解码器获得并检查。
根据一个实施方式,
-至少一个地址包括至少两个地址的集合,其中,至少两个地址的集合包括原始地址和至少一个冗余地址,
-原始地址和至少一个冗余地址是码的码字,
-原始命令指向原始地址,并且至少一个附加命令指向至少一个冗余地址,
-对从原始命令和/或从至少一个附加命令获得的数据进行比较,以确定是否存在这些地址中的任何地址的不期望的改变。
根据一个实施方式,原始地址和至少一个冗余地址指向存储在存储器中的相同物理值,或者原始地址和至少一个冗余地址指向与相同地址对应的不同物理值,或者其中,由至少一个冗余地址引用的物理值中的至少一个被反转。
因此,可以经由原始地址以及经由至少一个冗余地址来引用公共值(数据)。然而,可选择的是,至少一个冗余值被(全部中的至少部分)反转。
根据一个实施方式,数据的比较可以是以下比较之一:
-将从原始地址读取的数据与从至少一个冗余地址读取的数据进行比较;
-将要写入原始地址的数据与从至少一个冗余地址读取的数据进行比较,或者将要写入至少一个冗余地址的数据与从原始地址读取的数据进行比较。
根据一个实施方式,数据的比较可以提供以下结果:
-如果从原始地址读取的数据或者被写入原始地址的数据不同于从冗余地址读取的数据,则触发预定动作;
-如果从原始地址读取的数据或者被写入原始地址的数据与从冗余地址读取的数据没有差异,则未检测到地址操纵。
注意,在这方面,“不同于”意味着该比较指示非预期的差异。这种非预期的差异触发预定动作。然而,预期的差异可能源于第一数据和第二数据,其中,这些数据之一被反转:例如,如果进行第一数据与第二数据之间的比较,其中,第二数据是第一数据的反转,则该比较将(由于预定义的反转而)指示第一数据与第二数据没有不同,因为反转是有目的的并且可以(例如,通过在进行实际比较之前将位反转)被固有地补偿。
根据一个实施方式,该命令是读取命令、写入命令或验证命令。
根据一个实施方式,
-存储器包括第一存储器空间和第二存储器空间;
-第一存储器空间的一部分可以通过若干地址访问;
-第二存储器空间的一部分可以通过若干地址访问;
-第一存储器空间的一部分的若干地址的组合和第二存储器空间的任何部分的若干地址的组合是码的码字。
第一存储器空间和第二存储器空间可以是不同安全域的存储器空间。特别地,存储器空间中的一个可以比另一个更安全。
还可以选择使用多于两个的存储器空间。在这种情况下,该教示可以应用于第一存储器空间与每个其他存储器空间之间。
(第一或第二)存储器空间的一部分可以是寄存器。该寄存器可以经由至少两个地址(例如,一个原始地址和至少一个冗余地址)被寻址。可以选择将若干地址硬编码到一个物理地址,或者可以由例如地址解码器将若干地址映射到该物理地址。
每个寄存器(或部分)的若干地址的组合可以建立码字,其他存储域的任何寄存器的若干地址的组合也是如此。因此,编码确保不存在来自第一存储器空间的下述地址元组,该地址元组可以通过使得wt(E)≤d的故障注入E而被改变到第二存储器空间的地址元组。换言之,攻击者需要多于d-1位的操纵才能克服所选码。
根据一个实施方式,
-使用每第一存储器空间的部分两个地址以及每第二存储器空间的部分两个地址,其中,所述两个地址包括原始地址和冗余地址;
-码具有达到至少二的码距离d;
-第一存储器空间和第二存储器空间中的至少一个被如下使用:原始地址被布置在第一地址空间中,并且冗余地址被布置在第二地址空间中。
根据一个实施方式,第一地址空间和第二地址空间不交叠。
根据一个实施方式,第一地址空间使用递增地址而第二地址空间使用递减地址,或者反之亦然。
递增地址是指经由递增地址计数器访问的地址,递减地址是指经由递减地址计数器访问的地址。因此,可以通过由地址计数器设置的值的不同范围来创建不同的地址空间。
根据一个实施方式,存储器包括连续或不连续的存储器空间。
根据一个实施方式,存储器包括至少一个物理存储器芯片。
存储器可以由一个或更多个物理存储器芯片提供。
根据一个实施方式,存储器包括处理器、ASIC或控制器的寄存器。
此外,提供了一种被布置成用于经由至少一个地址访问存储器的装置,其中,至少一个地址包括码的码字。
该装置可以包括用于执行如本文中所述的各步骤的处理单元。注意,本文中陈述的方法的各步骤可以在该装置和/或该处理单元上执行。
还应指出,所述处理单元可以包括被布置成执行本文中描述的方法的各步骤的至少一个、特别是若干个装置。该装置可以在逻辑上或物理上分开;特别地,若干逻辑上分离的装置可以被组合在至少一个物理单元中。
所述处理单元可以包括以下中的至少一个:处理器、微控制器、硬连线电路、ASIC、FPGA、逻辑装置。
此外,提出了一种包括用于经由至少一个地址访问存储器的装置的设备,其中,至少一个地址包括码的码字。
提供了一种能够直接加载到数字处理装置的存储器中的计算机程序产品,该计算机程序产品包括用于执行本文中描述的方法的各步骤的软件代码部分。
此外,提出了一种具有计算机可执行指令的计算机可读介质,该计算机可执行指令适于使计算机系统执行本文中描述的方法的各步骤。
附图说明
参照附图示出并说明了各实施方式。附图用于说明基本原理,因此仅示出了理解该基本原理所必需的方面。附图未按比例绘制。在附图中,相同的附图标记表示相同的特征。
图1示出了使得地址A被用于经由地址解码器访问存储器可视化的示例图;
图2示出了具有用于确定对存储器的访问被看作是有效还是无效的各步骤的示意性流程图;
图3示出了使得应用、地址解码器和存储器之间的通信可视化的示例性消息序列图;
图4示出了与图3所示的概念类似的概念,除了写入操作被另一个读取操作代替以外;
图5示出了在图4所示的地址解码器处不使用加法重映射的替选实施方式的消息序列图。
具体实施方式
本文中描述的示例特别地提出使用至少一个地址作为码字。
码可以是检错码和/或纠错码。该码包括由码定义的若干码字。码字彼此具有预定距离,从而可以检测和/或校正码字中的各个错误。
汉明距离(Hamming_distance,参见:https://en.wikipedia.org/wiki/Hamming_distance)用于定义编码理论中的一些概念,例如检错码和纠错码。特别地,码C称为检测来自码C的具有小于k的汉明距离的任何两个码字c1与c2是否一致的k-错误;否则,码是检测其任何两个码字之间的最小汉明距离是否至少为k+1的k-错误。
例如,如果用于地址的码的码字具有达到2的距离,则可以例如由地址解码器检测地址中的单个位地址操纵。
本文中描述的示例提供了下述解决方案,该解决方案不需要附加的边带信号。而且,这些解决方案可以与现有总线系统结合使用。该方法还提供了防止对地址线的单个位操纵的保护,并且该方法提供了防止多个位操纵的保护。
示例:使用单个地址作为码字
在示例中,地址是码字。可以由例如地址解码器来检查码字。如果码字有效,则进行对地址的访问。如果码字无效,则地址解码器可以发起预定动作,例如,发出警报或任何预定义的通知。因此,对不是码字的操纵地址的访问会被注意到并且可以被避免或者重定向。
图1示出了使得地址A被用于经由地址解码器102访问存储器101可视化的示例图。
命令Cmd被用于利用地址A进行操作,例如读取操作、写入操作、擦除操作、验证操作等。可选地,命令Cmd可以使用数据来进行操作;该选项由方括号表示。例如,如果命令Cmd是写入操作,则数据将被写入(存储)地址A处。如果命令Cmd是读取操作,则只有地址A可以用作操作数来读取该地址处的数据。
在地址解码器102处接收命令Cmd,地址解码器102确定地址A是否为预定码的码字。如果地址A是码字,则认为地址A是有效的,并且授予对地址A处的存储器的访问。
如果地址A不是码字,则认为地址A是无效的,并且触发预定动作。该预定动作可以包括试图访问无效地址的通知。可以阻止该访问,或者可以将该访问转移到预定地址。预定动作可以触发指示试图危害系统的更高级别的动作。
图2示出了具有用于确定对存储器的访问是被看作有效还是无效的各步骤的示意性流程图。图2中所示的步骤可以由如图1中示例性示出的地址解码器102执行。
在步骤201中,检查命令Cmd(A,<data>)中的地址A是否为码字。如果是这种情况,则转到步骤202并且执行命令Cmd,授予对存储器101的访问。
如果不满足步骤201的条件,则转到步骤203,并且不执行命令Cmd;替代地,可以触发如上所述的预定动作(例如,警报通知)。
因此,图1和图2中所示的解决方案仅允许访问作为预定码的码字的地址。访问可以包括例如读取、写入、擦除或验证访问。
注意,地址解码器是可以用于检查地址是否有效(即,地址是否为码字)的示例性实体。适合于访问实际内存的任何实体也可以用于此目的。
示例:将存储的信息连接到至少两个地址
在示例性场景中,为同一外围接口寄存器提供两个或更多个地址,并且数据值可以被发送两次(或更多次):一次使用第一地址(即“原始地址”A),并且第二次使用另一个地址(即“冗余地址”A*)。
注意,术语“原始地址”是指第一地址,而术语“冗余地址”是指至少一个附加(即第二、第三等)地址。因此,可能存在指代存储器的一个实际部分(例如寄存器或处理器)的至少两个地址A和A*。
然后可以使用经由不同地址A和A*接收的数据的比较来确定是否已经发生地址操纵。
注意,相同的数据寄存器可以连接到原始地址以及连接到冗余地址。在该场景中,可能存在包括经由两个不同的地址访问的数据的一个实际物理寄存器。还可以选择将存储器中的两个不同位置用于地址A和A*,而存储在这些不同位置的数据可以是相同的。作为一个选项,一个数据可以相对于另一数据被反转(被存储和/或被访问)。
图3示出了使得应用301、地址解码器302和存储器303之间的通信可视化的示例性消息序列图。
应用301可以是利用对存储器303的访问的任何功能。本文中描述的地址解码器302的功能是可选的,如稍后将关于例如图5所示。
图3中描绘的示例性场景示出了将信息“data”写入存储器303,然后通过随后的读取操作来检查写入操作是否成功。
因此,应用301在步骤304中向地址解码器302发出写入命令
写入(A,data),
从而指示地址A和信息“data”被写入。地址解码器302在步骤305中将地址A映射到实际地址a并且向存储器303的物理地址a发出实际写入命令306
写入(a,data)。
应指出,地址A和映射地址a可以相同。
应指出,存储器303可以是控制器或处理器的物理寄存器,或者存储器303可以是任何种类的连续或不连续存储器(空间)。
应用在步骤307中发出指向冗余地址A*的读取命令
读取(A*),
在该示例中,地址解码器302在步骤308中将冗余地址A*映射到物理地址a并且触发指向该地址a的读取命令309:
读取(a)。
在步骤310中,在步骤309中读取的信息data*被传送到应用301。在步骤311中,应用301将data和data*进行比较。如果二者相同,则写入操作很可能成功。如果二者不相同,则写入操作可能有缺陷,以及/或者地址操纵可能已经指向在步骤304或步骤307中传送的命令。
地址A和A*的组合可以特别地是预定码的码字,即(A,A*)→CW。作为另一个选项,地址A和A*中的每一个都是预定码的码字。
如果对地址A的攻击成功,这将导致不同的地址B,则地址解码器302将不使用实际地址a,而是使用另一地址b来访问存储器303。读取操作307(如果未被攻击)然后将返回与data不同的信息data*,因为对地址A的写入操作不成功。
如果写入操作304、306成功并且在读取操作307中使用的地址被重定向到地址B,则信息data*不同于写入地址A的信息data。因此,应用301可以识别出对操作304或307的攻击。
如果该码的码字具有达到二的汉明距离,则对码字内的单个位的操纵将不会导致另一个码字,因此它不会向攻击者揭示有效信息。
图4示出了类似的概念,除了步骤304中的写入操作被步骤401中的另一个读取操作代替以外。
应用在步骤401中发出指向原始地址A的读取命令
读取(A),
在该示例中,地址解码器302在步骤402中将地址A映射到物理地址a,并且触发指向该地址a的读取命令403:
读取(a)。
在步骤404中,将在步骤403中读取的信息data传送到应用301。
然后,如上面关于图3所描述的那样执行步骤307到311。
因此,读取操作被划分成两个读取操作,每个读取操作使用不同的地址,首先使用地址A,然后使用地址A*。在步骤401或307中对地址A或A*中的任一个的任何操纵会导致不同的物理地址a,这因而将揭示在步骤404和310中接收的信息是不同的。因此,应用可以识别出指向步骤401和307中使用的命令的地址的操纵。
图5示出了在地址解码器302处不使用加法重映射的替选实施方式的消息序列图。
读取命令(步骤501)
读取(A)
指向存储器303的地址A,并且返回存储在该地址A处的信息data(步骤502)。
然后,读取命令(步骤503)
读取(A*)
指向存储器303的地址A*,并且返回存储在该地址A*处的信息data*(步骤504)。
如果已经确保地址A和A*携带相同的信息,则步骤309中的比较可以指示在步骤501和503二者中的读取访问都已成功,因为data和data*是相同的。否则,可能已经发生了对地址A或地址A*的操纵。
这些示例表明,例如,应用301(或任何其他功能)可以确保存储器303是以容错方式被使用的:可以将每个信息data写入一组地址A和A*,其中,地址A和A*中的每一个可以是预定码的码字。
示例:使用多个地址作为单个码字
为了避免单个位操纵将两个地址(A和A*)移位到另一个外围装置的地址范围,可以使用以下方法。
注意,外围装置可以是定义特定安全域的任何实体,例如控制器、处理器、寄存器(集)、存储器。通常要求第一域的地址空间不干扰另一域的地址空间,特别是在第一域是安全域的情况下。在这样的示例中,如果指向安全域的特定地址的命令被重定向到该安全域的另一个地址,则可以认为危害较小。然而,如果对较不安全的地址空间的访问指向安全地址空间,然后可能从该安全地址空间返回信息(这当然应当防止),则可以认为是有问题的。
逻辑寄存器R1、R2、……可以被设置在原始地址A1、A2,……处,其中,原始地址中的每一个可以具有至少一个冗余地址A1*、A2*等。
逻辑寄存器可以是外围装置(例如处理器、控制器等)的寄存器。逻辑寄存器还可以是任何物理存储器的一部分。
作为选择,可以为每个原始地址(即,为每个寄存器)提供一个以上的冗余地址;因此,原始地址A1可以与冗余地址A1*、A1**等相关联。然而,以下示例假设一对地址,即用于寄存器中的每一个的一个原始地址和一个冗余地址:
-R1:A1、A1*;
-R2:A2、A2*;
-R3:A3、A3*;
-R4:A4、A4*。
寄存器R1至R4可以被分组成组GA、GB。每个组包括特定存储器域(例如特定外围装置(例如处理器))的寄存器。
在本文中提供的示例中,组GA和GB中的至少一个可以与安全处理器的寄存器相关联。
攻击的目的是多个地址线操纵将原始地址A及其相应的冗余地址A*移动到属于另一个组的寄存器的地址。
例如
-组GA包括寄存器
-R1:A1、A1*以及
-R2:A2、A2*,
-组GB包括寄存器
-R3:A3、A3*以及
-R4:A4、A4*。
差矢量E指示使得地址Ai变为故障地址Ai'的恶意地址操纵,即
Ai’=Ai+E
其中,差矢量E具有达到以下的权重wt
wt(E)≤d
其中,d表示差矢量E的汉明权重,其对应于攻击者能够注入以克服对策的单个位故障(需要,LFI点)的最大数目。
应指出,“+”是指按位加法模2,即异或(也称为EXOR)运算。
使用地址编码方案,以满足以下条件:
-A1+E≠A3且A1*+E≠A3*,
-A1+E≠A4且A1*+E≠A4*,
-A2+E≠A3且A2*+E≠A3*,以及
-A2+E≠A4且A2*+E≠A4*。
因此,编码确保不存在来自组GA的下述地址对,该地址对可以通过使得wt(E)≤d的故障注入E来被改变到组GB的地址对。
因此,地址对(A1,A1*)、(A3,A3*)、(A4,A4*)是预定码的码字。相应地,地址对(A2,A2*)、(A3,A3*)、(A4,A4*)是该码的码字。
可以选择合适的或优选的码,使得攻击者必须同时迫使一个位线为0并且另一个位线为1,这在一些物理攻击场景中可能比将两个位线强制为0或1更困难。
在这样的解决方案中,不需要用于奇偶校验位的附加硬件,并且可以调整安全级别以匹配描述攻击者的故障模型。
因此,该示例包括下述的组合
-可以经由多个地址访问的寄存器,
-一组寄存器,以及
-一系列地址编码方案,使得攻击者需要多于d-1位的操纵来克服所选码。
根据上面的示例,四个寄存器R1至R4按如下方式布置成两个组GA和GB:
-GA(R1,R2)以及
-GB(R3,R4)。
使用示例性距离达到d=3的示例性码。
作为附加要求,两个故障也应具有交替的极性。这可以表示如下(地址被表示为二进制字符串):
-组GA包括
-寄存器R1,其中
-原始地址A1=0000,并且
-冗余地址A1*=0001,
-寄存器R2,其中
-原始地址A2=0010,并且
-冗余地址A2*=0011,
-组GB包括
-寄存器R3,其中
-原始地址A3=1101,并且
-冗余地址A3*=1100,
-寄存器R4,其中
-原始地址A4=1111,并且
-原始地址A4*=1110。
寄存器R1通过引起四个故障的差矢量E=1111被映射到寄存器R4。在这种情况下,地址A1被映射到地址A4,而地址A1*被映射到地址A4*(运算“+”指示EXOR运算):
A1+E=0000+1111=1111=A4;
A1*+E=0001+1111=1110=A4*。
寄存器R1通过引起三个故障的差矢量E=1101而被映射到寄存器R3。此处,地址A1被映射到地址A3,而地址A1*被映射到地址A3*:
A1+E=0000+1101=1101=A3;
A1*+E=0001+1101=1100=A3*。
寄存器R2通过引起四个故障的差矢量E=1111而被映射到寄存器R3。在这种情况下,地址A2被映射到地址A3,而地址A2*被映射到地址A3*:
A2+E=0010+1111=1101=A3;
A2*+E=0011+1111=1100=A3*。
寄存器R2通过引起三个故障的差矢量E=1101被映射到寄存器R4。此处,地址A2被映射到地址A4,而地址A2*被映射到地址A4*:
A2+E=0010+1101=1111=A4;
A2*+E=0011+1101=1110=A4*。
因此,根据该示例,攻击至少需要包括三个位故障的差矢量E=1101。因此,在该示例中,码距离达到
d=max wt(E)=3。
仅使用两个位故障的任何差矢量E将不足以成功地将组GA的地址重定向到组GB的地址。
在示例性实施方式中,对于任意数目的组中的任意数目的寄存器,可以通过使用针对Ai的递增地址和针对Ai*的递减(特别地,非交叠)地址来实现d≥2的码距离。
在一个或更多个示例中,本文中描述的功能可以至少部分地用硬件实现,例如特定硬件部件或处理器。更一般地,这些技术可以用硬件、处理器、软件、固件或其任何组合来实现。如果用软件实现,则功能可以被存储在计算机可读介质上或者作为一个或更多个指令或代码在计算机可读介质上被传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,计算机可读存储介质对应于诸如数据存储介质的有形介质,或者包括有助于例如根据通信协议将计算机程序从一个地方传送到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂态的有形计算机可读存储介质或者(2)诸如信号或载波的通信介质。数据存储介质可以是可以由一个或更多个计算机或一个或更多个处理器访问以取回用于实现本公开内容中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
通过示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储装置、闪存或者可以用于以指令或数据结构的形式存储所需程序代码并且可以由计算机访问任何其他介质。而且,任何连接都被适当地称为计算机可读介质,即计算机可读传输介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(如红外线、无线电和微波)从网站、服务器或其他远程源传输指令,则该同轴电缆、光纤电缆、双绞线、DSL或无线技术(如红外线、无线电和微波)都被包括在介质的定义中。然而,应该理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂态介质,而是指非暂态有形存储介质。本文中使用的盘(disk和disc)包括压缩盘(CD)、激光盘、光盘、数字通用盘(DVD)、软盘和蓝光盘,其中,盘(disk)通常磁性地再现数据,而盘(disc)用激光光学地再现数据。上述的组合也应被包括在计算机可读介质的范围内。
指令可以由一个或更多个处理器(例如一个或更多个中央处理单元(CPU)、数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或者其他等效的集成或分立逻辑电路)执行。因此,本文中使用的术语“处理器”可以指前述结构中的任何一种或者适合于实现本文中描述的技术的任何其他结构。另外,在一些方面中,本文中描述的功能可以在为了编码和解码而配置的专用硬件和/或软件模块内提供,或者可以被并入组合的编解码器中。而且,这些技术可以在一个或更多个电路或逻辑元件中完全实现。
本公开内容的技术可以在包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)的各种装置或设备中实现。在本公开内容中描述了各种部件、模块或单元以强调被配置成执行所公开的技术的装置的功能方面,但不一定需要由不同的硬件单元实现。而是如上所述,可以将各种单元组合在单个硬件单元中,或者由包括如上所述的一个或更多个处理器的一组互操作硬件单元结合合适的软件和/或固件来提供。
尽管已经公开了本发明的各种示例性实施方式,但是对于本领域技术人员来说明显的是,在不脱离本发明的精神和范围的情况下,可以进行各种改变和修改,这些改变和修改将实现本发明的一些优点。对于本领域技术人员明显的是,可以适当地替换执行相同功能的其他部件。应该提及,可以将参照特定附图说明的特征与其他附图的特征进行组合,即使在没有明确提及的情况下也是如此。此外,本发明的方法可以在所有软件实现中使用适当的处理器指令来实现,或者在利用硬件逻辑和软件逻辑的组合来实现相同结果的混合实现中实现。对本发明构思的这些修改旨在被所附权利要求覆盖。

Claims (16)

1.一种用于经由至少一个地址访问存储器的方法,
其中,所述至少一个地址包括码的码字;
其中,所述码是检错码和/或纠错码;
其中,所述至少一个地址包括至少两个地址的集合,其中,所述至少两个地址的集合包括原始地址和至少一个冗余地址;
其中,所述原始地址和所述至少一个冗余地址是所述码的码字;
其中,原始命令指向所述原始地址,并且至少一个附加命令指向所述至少一个冗余地址;以及
其中,对从所述原始命令和/或从所述至少一个附加命令获得的数据进行比较,以确定是否存在所述原始地址和所述至少一个冗余地址中的任何地址的不希望的改变。
2.根据权利要求1所述的方法,
其中,获得与一个地址相关联的命令,
其中,检查所述地址是否为码字,
如果所述地址是所述码的码字,则执行所述命令,
如果所述地址不是所述码的码字,则触发预定动作。
3.根据权利要求2所述的方法,其中,所述命令由地址解码器获得并检查。
4.根据权利要求1所述的方法,其中,所述原始地址和所述至少一个冗余地址指向被存储在所述存储器中的相同物理值,或者所述原始地址和所述至少一个冗余地址指向与相同地址对应的不同物理值,或者其中,由所述至少一个冗余地址引用的物理值中的至少一个被反转。
5.根据权利要求4所述的方法,其中,对数据的所述比较可以是以下中之一:
将从所述原始地址读取的数据与从所述至少一个冗余地址读取的数据进行比较;
将要被写入所述原始地址的数据与从所述至少一个冗余地址读取的数据进行比较,或者将要被写入所述至少一个冗余地址的数据与从所述原始地址读取的数据进行比较。
6.根据权利要求5所述的方法,其中,对数据的所述比较可以提供以下结果:
如果从所述原始地址读取的数据或者被写入所述原始地址的数据不同于从所述至少一个冗余地址读取的数据,则触发预定动作;
如果从所述原始地址读取的数据或者被写入所述原始地址的数据与从所述至少一个冗余地址读取的数据没有差异,则未检测到地址操纵。
7.根据前述权利要求3至6中任一项所述的方法,其中,所述命令是读取命令、写入命令或验证命令。
8.根据权利要求1所述的方法,
其中,所述存储器包括第一存储器空间和第二存储器空间;
其中,所述第一存储器空间的一部分能够通过若干地址访问;
其中,所述第二存储器空间的一部分能够通过若干地址访问;
其中,所述第一存储器空间的一部分的若干地址的组合和所述第二存储器空间的任何部分的若干地址的组合是所述码的码字。
9.根据权利要求8所述的方法,
其中,针对每所述第一存储器空间的一部分使用两个地址以及针对每所述第二存储器空间的一部分使用两个地址,其中,所述两个地址包括原始地址和冗余地址;
其中,所述码具有达到至少二的码距离;
其中,所述第一存储器空间和所述第二存储器空间中的至少一个被如下使用:所述原始地址被布置在第一地址空间中,并且所述冗余地址被布置在第二地址空间中。
10.根据权利要求9所述的方法,其中,所述第一地址空间和所述第二地址空间不交叠。
11.根据权利要求9或10所述的方法,其中,所述第一地址空间使用递增地址并且所述第二地址空间使用递减地址,或者所述第一地址空间使用递减地址并且所述第二地址空间使用递增地址。
12.根据权利要求1至6中任一项所述的方法,其中,所述存储器包括连续或不连续的存储器空间。
13.根据权利要求1至6中任一项所述的方法,其中,所述存储器包括至少一个物理存储器芯片。
14.根据权利要求1至6中任一项所述的方法,其中,所述存储器包括处理器、专用集成电路或控制器的寄存器。
15.一种被布置成通过至少一个地址访问存储器的装置,
其中,所述至少一个地址包括码的码字;
其中,所述码是检错码和/或纠错码;
其中,所述至少一个地址包括至少两个地址的集合,其中,所述至少两个地址的集合包括原始地址和至少一个冗余地址;
其中,所述原始地址和所述至少一个冗余地址是所述码的码字;
其中,原始命令指向所述原始地址,并且至少一个附加命令指向所述至少一个冗余地址;以及
其中,对从所述原始命令和/或从所述至少一个附加命令获得的数据进行比较,以确定是否存在所述原始地址和所述至少一个冗余地址中的任何地址的不希望的改变。
16.一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令适于使计算机系统执行根据权利要求1至14中任一项所述的方法的步骤。
CN201910457470.3A 2018-05-29 2019-05-29 访问存储器的方法、装置、设备和计算机可读介质 Active CN110543790B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018112816.9A DE102018112816A1 (de) 2018-05-29 2018-05-29 Adresscodierter Zugriff auf Speicher
DE102018112816.9 2018-05-29

Publications (2)

Publication Number Publication Date
CN110543790A CN110543790A (zh) 2019-12-06
CN110543790B true CN110543790B (zh) 2023-12-12

Family

ID=68576001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910457470.3A Active CN110543790B (zh) 2018-05-29 2019-05-29 访问存储器的方法、装置、设备和计算机可读介质

Country Status (3)

Country Link
US (1) US11086796B2 (zh)
CN (1) CN110543790B (zh)
DE (1) DE102018112816A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112379843B (zh) * 2020-11-23 2022-09-23 上海儒竞智控技术有限公司 Eeprom数据处理方法、系统、存储介质及终端

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203890B1 (en) * 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits
CN102347083A (zh) * 2010-07-30 2012-02-08 英飞凌科技股份有限公司 通过内部操作验证进行安全的存储器存储
DE102013215055A1 (de) * 2013-07-31 2015-02-05 Infineon Technologies Ag Schaltungsanordnung und Verfahren mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
CN104900271A (zh) * 2014-01-28 2015-09-09 英飞凌科技股份有限公司 用于通过数据反演来提高数据存储的设备和方法
CN105308575A (zh) * 2013-08-06 2016-02-03 桑迪士克科技股份有限公司 用于错误校正码(ecc)错误处理的方法和装置
CN106897247A (zh) * 2015-12-17 2017-06-27 三星电子株式会社 计算系统及控制计算系统的方法
CN113903392A (zh) * 2020-06-22 2022-01-07 爱思开海力士有限公司 存储器、存储器系统和存储器系统的操作方法
CN115732016A (zh) * 2021-08-26 2023-03-03 三星电子株式会社 存储器装置、存储器控制器和纠正数据错误的方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8100650A (nl) * 1981-02-11 1982-09-01 Philips Nv Inrichting voor het corrigeren van pulsvervorming bij homochrone datatransmissie.
US4602275A (en) * 1984-03-19 1986-07-22 Rca Corporation Television memory system
DE102004033387B4 (de) * 2004-07-09 2008-06-05 Infineon Technologies Ag Digitale RAM-Speicherschaltung mit erweiterter Befehlsstruktur
US8352805B2 (en) * 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US20110246857A1 (en) * 2010-04-02 2011-10-06 Samsung Electronics Co., Ltd. Memory system and method
CN102203740B (zh) * 2011-05-27 2013-06-05 华为技术有限公司 数据处理方法、装置及系统
CN104008069B (zh) * 2013-02-22 2018-06-15 中兴通讯股份有限公司 一种数据保护方法、装置及设备
US9136873B2 (en) * 2013-03-11 2015-09-15 Intel Corporation Reduced uncorrectable memory errors
US9749319B2 (en) * 2015-05-20 2017-08-29 Google Inc. Address validation using signatures

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203890B1 (en) * 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits
CN102347083A (zh) * 2010-07-30 2012-02-08 英飞凌科技股份有限公司 通过内部操作验证进行安全的存储器存储
DE102013215055A1 (de) * 2013-07-31 2015-02-05 Infineon Technologies Ag Schaltungsanordnung und Verfahren mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
CN105308575A (zh) * 2013-08-06 2016-02-03 桑迪士克科技股份有限公司 用于错误校正码(ecc)错误处理的方法和装置
CN104900271A (zh) * 2014-01-28 2015-09-09 英飞凌科技股份有限公司 用于通过数据反演来提高数据存储的设备和方法
CN106897247A (zh) * 2015-12-17 2017-06-27 三星电子株式会社 计算系统及控制计算系统的方法
CN113903392A (zh) * 2020-06-22 2022-01-07 爱思开海力士有限公司 存储器、存储器系统和存储器系统的操作方法
CN115732016A (zh) * 2021-08-26 2023-03-03 三星电子株式会社 存储器装置、存储器控制器和纠正数据错误的方法

Also Published As

Publication number Publication date
US20190370190A1 (en) 2019-12-05
CN110543790A (zh) 2019-12-06
US11086796B2 (en) 2021-08-10
DE102018112816A1 (de) 2019-12-05

Similar Documents

Publication Publication Date Title
Cojocar et al. Exploiting correcting codes: On the effectiveness of ecc memory against rowhammer attacks
US9646716B2 (en) Circuit arrangement and method with modified error syndrome for error detection of permanent errors in memories
US9818492B2 (en) Method for testing a memory and memory system
JP7387725B2 (ja) アドレス障害を検出するためのシステム、方法、及び装置
US9208027B2 (en) Address error detection
JP2019169127A (ja) メモリエラーを訂正するための共有パリティチェック
US9665423B2 (en) End-to-end error detection and correction
US9734008B2 (en) Error vector readout from a memory device
CN102135925B (zh) 用于检测错误检查和纠正内存的方法和装置
US9086990B2 (en) Bitline deletion
US20120030543A1 (en) Protection of application in memory
CN110543790B (zh) 访问存储器的方法、装置、设备和计算机可读介质
US9329926B1 (en) Overlapping data integrity for semiconductor devices
CN106815153B (zh) 一种安全存储方法、装置和系统
JP6339697B2 (ja) 無効化動作後のキャッシュメモリ内の有効インジケータにおけるビットフリップを検出するためのキャッシュメモリエラー検出回路、ならびに関連する方法およびプロセッサベースのシステム
JP5869649B2 (ja) データ処理のための方法、機器、および装置
US10911181B2 (en) Method for checking address and control signal integrity in functional safety applications, related products
US11372720B2 (en) Systems and methods for encoding metadata
CN111428280B (zh) SoC安全芯片密钥信息完整性存储及错误自修复方法
CN110955916B (zh) 一种数据完整性保护方法、系统及相关设备
CN108572882B (zh) 一种数据存储的方法及存储设备
US10691586B2 (en) Apparatus and method for software self-test
CN114595090A (zh) 一种纠错方法及装置
RU2579954C2 (ru) Отказоустойчивое оперативное запоминающее устройство
WO2020199133A1 (en) Method for checking address and control signal integrity in functional safety applications, related products

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
GR01 Patent grant
GR01 Patent grant