CN105893877A - 安全数据读取的方法和数据处理系统 - Google Patents
安全数据读取的方法和数据处理系统 Download PDFInfo
- Publication number
- CN105893877A CN105893877A CN201610085662.2A CN201610085662A CN105893877A CN 105893877 A CN105893877 A CN 105893877A CN 201610085662 A CN201610085662 A CN 201610085662A CN 105893877 A CN105893877 A CN 105893877A
- Authority
- CN
- China
- Prior art keywords
- read requests
- abnormal signal
- memory
- reading
- memorizer
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
- G06F21/77—Protecting 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 in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Storage Device Security (AREA)
Abstract
公开了一种数据处理系统中的安全数据读取方法。该方法包括以下步骤:地址分派器向第一存储器区域分派第一读取请求;在分派第一读取请求之后,地址分派器向所述第一存储器区域分派第二读取请求;在分派第二读取请求之后,地址分派器向所述第一存储器区域分派第三读取请求;如果响应于第一读取请求由存储器产生的结果与响应于第三读取请求由存储器产生的结果不一致,则异常信号发生器产生第一异常信号;如果响应于第二读取请求,存储器并不产生预定的结果,则异常信号发生器产生第二异常信号;如果已经产生了第一异常信号和第二异常信号中的至少一个,则异常处理器断定已经发生了故障攻击。此外,公开了相应的数据处理系统。
Description
技术领域
本公开涉及安全数据读取的方法。此外,本公开涉及对应的数据处理系统。
背景技术
故障攻击可以用于例如数据处理系统(例如计算机产品)的安全性与完整性进行妥协。具体地,故障攻击是智能卡的区域。在系统操作期间,故障攻击将故障引入系统,由此导致系统偏离其计划的或意图的操作。例如,光攻击已经被发现是一种引入故障并干扰微控制器的程序流的相对容易的方式。光攻击典型地是在集成电路(IC)操作时在例如IC的表面上由闪光灯执行的。
发明内容
公开了一种数据处理系统中的安全数据读取方法,所述数据处理系统包括:用于向包括第一存储器区域的存储器分派读取请求的地址分派器、异常信号发生器和异常处理器,所述方法包括以下步骤:地址分派器向第一存储器区域分派第一读取请求;在分派第一读取请求之后,地址分派器向所述第一存储器区域分派第二读取请求;在分派第二读取请求之后,地址分派器向所述第一存储器区域分派第三读取请求;如果响应于第一读取请求由所述存储器产生的结果与响应于第三读取请求由所述存储器产生的结果不一致,则异常信号发生器产生第一异常信号;如果响应于第二读取请求所述存储器并不产生预定的结果,则异常信号发生器产生第二异常信号;如果已经产生了第一异常信号和第二异常信号中的至少一个,则异常处理器断定已经发生了故障攻击。
在该方法的示例性实施例中,第二读取请求是具有已知答复的读取请求。
在该方法的其它示例性实施例中,所述存储器还包括与第一存储器区域不同的第二存储器区域,并且所述地址分派器在分派第一读取请求与第三读取请求之间分派指向第二存储器区域的其它读取请求。
在该方法的其它示例性实施例中,所述故障攻击是通过光源执行的光攻击,并且第二存储器区域在光源的光斑之外。
在该方法的其它示例性实施例中,第一读取请求、第二读取请求和第三读取请求被包括在读取流的第一分支中,并且其它读取请求被包括在所述读取流的第二分支中。
在该方法的其它示例性实施例中,该方法还包括:如果既没有产生第一异常信号又没有产生第二异常信号,则断定没有发生故障攻击。
此外,公开了一种数据处理系统,包括:用于向存储器分派读取请求的地址分派器、异常信号发生器和异常处理器,所述地址分派器被布置为:向第一存储器区域分派第一读取请求;在分派第一读取请求之后,向所述第一存储器区域分派第二读取请求;在分派第二读取请求之后,向所述第一存储器区域分派第三读取请求;所述异常信号发生器被布置为:如果响应于第一读取请求由所述存储器产生的结果与响应于第三读取请求由所述存储器产生的结果不一致,则产生第一异常信号;如果响应于第二读取请求所述存储器并不产生预定的结果,则产生第二异常信号;并且所述异常处理器被布置为:如果已经产生了第一异常信号和第二异常信号中的至少一个,则断定已经发生了故障攻击。
在该系统的示例性实施例中,第二读取请求是具有已知答复的请求。
在该系统的其它示例性实施例中,所述存储器还包括与第一存储器区域不同的第二存储器区域,并且所述地址分派器被布置为:在分派第一读取请求与第三读取请求之间分派指向第二存储器区域的其它读取请求。
在该系统的其它示例性实施例中,所述故障攻击是通过光源执行的光攻击,并且所述第二存储器区域在所述光源的光斑之外。
在该系统的其它示例性实施例中,所述第一读取请求、所述第二读取请求和所述第三读取请求被包括在读取流的第一分支中,并且其它读取请求被包括在所述读取流的第二分支中。
在该系统的其它示例性实施例中,所述地址分派器还被布置为:如果既没有产生第一异常信号又没有产生第二异常信号,则断定没有发生故障攻击。
在该系统的其它示例性实施例中,所述地址分派器被包括在存储器控制器中。
在该系统的其它示例性实施例中,所述存储器控制器是闪存控制器或EEPROM存储器控制器。
附图说明
将参照附图用更详细地描述实施例,附图中:
图1示出了数据处理系统100的示例性实施例;
图2A示出了在所述类型的数据处理系统中的安全数据读取的方法200的示例性实施例;
图2B示出了在所述类型的数据处理系统中的安全数据读取的方法214的其它示例性实施例;
图2C示出了在所述类型的数据处理系统中的安全数据读取的方法218的其它示例性实施例。
具体实施方式
故障攻击典型地针对命令的,例如条件跳转或条件跳转之前的测试指令。例如,故障攻击可以用于规避智能卡中的个人识别码(PIN)的验证。如果用户输入不正确地PIN,他/她可以在程序将要跳转到处理错误PIN的固定程序时执行故障攻击。作为故障攻击的结果,不执行跳转到处理错误PIN的固定程序,并且程序继续执行,就像PIN正确一样。在这种情况下,即使他/她只拥有错误的PIN,通过故障攻击,用户可以获得与正确PIN相关联的权限。使用故障攻击的其它类型的安全攻击是对加密算法的安全攻击,例如在加密协议中使用的安全攻击。例如,使用故障攻击,攻击者可以使算法产生错误值。通过分析按照方式中出现的错误的类型,在一些情况下,攻击者能够断定出例如密钥。
光攻击影响对存储器的读取访问,包括易失性存储器(例如RAM)和非易失性存储器(例如只读存储器(ROM)、EEPROM和闪存)。光攻击的效果依赖于存储器的实际类型和实际条件而变化。例如,在非易失性存储器中,通常不是存储器单元的内容被光攻击改变,而只是读取回的值被光攻击暂时改变;在光攻击结束后,存储器可以回到其没有被光攻击改变的之前的内容。依赖于实际条件,效果可以是不对称的,也就是比特倾向于更容易地从一个值变为另一个值,而不是从其它值变为一个值。作为其它示例,在易失性存储器中,光攻击可以影响存储器中的永久变化或读取器件的瞬间变化。
引入故障的单个未中断延伸的故障攻击可以被称作简单故障攻击。对从存储器的单个读取进行折中的故障攻击可以被称作短故障攻击。对一个以上读取操作(例如覆盖一个以上的读取操作的长闪光)进行折中的简单故障攻击可以被称作长故障攻击。包括多个独立故障的故障攻击可以被称作多故障攻击。
实际上,可能不能可靠地检测到覆盖来自存储器的一个以上的读取操作的故障攻击。具体地,难以检测在读取流的分支(即在彼此间隔开的不同存储器区域上执行的读取操作的分支)中的具体读取操作上执行的长故障攻击。例如,可以使用具有特定光斑大小的激光束来执行光攻击:执行第一分支的读取操作的第一存储器区域可以在激光光斑尺寸之内,并且执行第二分支的读取操作的第二存储器区域可以不在激光光斑尺寸之内。在这样的情况下,相对难以检测第一分支中的具体读取操作上的长故障攻击,因为读取流可以已经分支到第二分支或分支到其它分支。
图1示出了数据处理系统100的示例性实施例。数据处理系统100能够执行当前公开的方法。例如,数据处理系统100可以基于如NXP B.V提交的专利申请WO 2009/138892 A1中描述的数据处理系统。在图1的示例中,数据处理系统100包括地址分派器102、存储器104、异常信号发生器106、异常处理器108以及中央处理单元(CPU)110。地址分派器102包括读取请求输入101。所述系统可以嵌入到设备(例如智能卡片)中。CPU 110通过能够传输读取请求的连接来连接到地址分派器102。地址分派器102通过能够传输读取请求的连接来连接到存储器104。存储器104被配置为响应于读取请求来检索数据对象。存储器104被布置为向异常信号发生器106转发所检索的数据对象。异常信号发生器106被配置为按照与地址分派器102使用的分派方法兼容的方式来检查由存储器104检索的数据对象。异常信号发生器106被配置为向异常处理器108有条件地发送至少一个异常信号。
在该示例中,异常信号发生器106被配置为向CPU 110发送检索的数据对象。异常处理器108被配置为在异常处理器108接收到异常信号的情况下进行校正活动。在操作中,CPU 110执行软件。例如,软件可以是:应用、操作系统软件、库、系统安全代码或网络协议。例如,CPU110可以执行需要校验PIN的银行业务应用。例如,CPU 110可以执行引导序列,并且如果引导图像是真实的,则需要校验。
CPU 110可以需要来自存储器104的一些数据对象。例如,CPU 110可以需要知晓下一个执行的指令,或下一个操作的数据对象。为此目的,CPU 110可以向包括在地址分派器102中的读取请求输入101发送读取请求。地址分派器102决定如何调度读取请求,例如,地址分派器102决定应当向存储器104分派在输入101处发生的读取请求的频率和时间。此外,地址分派器102使用当前公开的方法。
如果地址分派器102分派读取请求,则向存储器104传输读取请求。读取请求命令存储器104检索一个或多个数据对象。典型地,读取请求包括存储器104中的存储器区域内的地址,即包含一个或多个诸如存储器单元之类的位置的区域。存储器104检索读取请求命令其检索的至少一个数据对象,并向异常信号发生器106转发该数据对象。
异常信号发生器106缓冲读取请求的结果,并且/或者将读取请求的结果与响应于之前类似的读取请求而缓冲的结果相比较。如果异常信号发生器106发现其已经接收了指示存储器104中的故障或故障攻击(例如光攻击)的一系列数据对象,则异常信号发生器106产生异常信号,并且向异常处理器108发送异常信号。异常信号发生器106使用当前公开的方法。
例如,异常信号可以由表示已经发生故障的单个比特的信息构成。异常信号还可以包括调试应用以及/或者允许异常处理器108得出正确结论并且例如进行校正活动所需要的所有相关信息。异常处理器108因此可以被配置为在异常处理器108接收异常信号的情况下进行校正活动。校正活动可以包括:记录事件、终止应用、关闭系统100、启动系统自毁序列、清空一个或多个存储器、清空和/或破坏一个或多个保险丝、重新启动应用、重新引导系统100以及重复由异常信号引起的读取请求。异常处理器108还可以例如在当执行低安全性应用时发生故障的情况下或者在特殊调试模式下发生故障的情况下决定不进行活动。
可以使用专用的硬件来实现数据处理系统100,例如被配置为执行当前公开的方法的至少一部分步骤的电路。数据处理系统100可以由在操作使用中使用软件控制的通用硬件实现,或者数据处理系统100可以包括专用硬件、通用硬件和专用软件的组合来实现数据处理系统100。存储器104可以实现为存储库。可以按多种方式来装配地址分派器102、存储器104、异常信号发生器106与异常处理器108之间的连接。例如,连接可以按串联、并联、或者通过总线的方式来实现。在本实施例的变体中,存储器104可以向CPU 110和异常信号发生器106二者转发检索的数据对象,并且异常信号发生器106可以不需要向CPU 110转发检索的数据对象。由此,CPU 110可以实现对存储器104的内容的更快的访问。
图2A示出了在所述类型的数据处理系统中的安全数据读取的方法200的示例性实施例。该方法200包括以下步骤。在202处,地址分派器向存储器的第一区域分派第一读取请求。之后在204处,地址分派器向第一存储器区域分派第二读取请求。之后在206处,地址分派器向第一存储器区域分派第三读取请求。在208处,如果响应于第一读取请求由存储器产生的结果与响应于第三读取请求由存储器产生的结果不一致,则异常信号发生器产生第一异常信号。此外在210处,如果响应于第二读取请求,存储器不产生预定的结果,则异常信号发生器产生第二异常信号。最后在212处,如果已经产生了第一异常信号和第二异常信号中的至少一个,则异常处理器断定已经发生了故障攻击。应当注意的是,向存储器区域分派读取请求可以具体表示向所述区域中的具体地址或位置分派读取请求。
应当注意的是,第三读取请求能够检测第一读取请求上的短故障攻击,因为期望从存储器得到相同结果,或者期望从存储器得到彼此一致的结果。更具体地,第三读取请求能够检测在分派第一读取请求的时刻执行的、但在分派第三读取请求之前已经结束了的故障攻击:基本上,第三读取请求是应当产生与第一读取请求相同结果的冗余读取请求。如果故障攻击已经攻击了第一读取请求并且还没有攻击第三读取请求,那么响应于第一读取请求和第三读取请求由存储器产生的结果将不会彼此一致。因此,检测到故障攻击。然而,当在分派第三读取请求(即冗余读取请求)时故障攻击还没有结束时,并且在向不同的第二存储器区域(例如向执行攻击的光源的光斑之外的存储器区域)分派其它读取请求(即正常读取请求,可能紧接着是对应的冗余读取请求)的情况下,可能将仍然检测不到攻击。也就是说,如果这种其它读取请求在光源的光斑之内,则应当产生与其它读取请求相同的结果的其它冗余读取请求(未示出)仍能够检测到故障攻击。然而,如果其它读取请求没有受到故障攻击的影响,则仍然检测不到长故障攻击。当在第一读取请求与第三读取请求之间分派多个其它读取请求(即多个正常读取请求,可能紧接着是其对应的冗余读取请求)时也是如此。在所有这些情况下,读取流可能已经分支到与分派了第一、第二和第三读取请求的存储器区域不同的一个或多个存储器区域。在这些情况下,还将仍然检测不到长故障攻击,并且当前公开的方法可以促进长故障攻击的检测。图2B和图2C中示出了单个其它读取请求的示例。
例如,通过在作为其它读取请求的结果读取流已经分支到第二存储器区域的情况下分派第二读取请求(该读取请求应当产生预定的结果),可以实现更容易地检测到对第一读取请求的长故障攻击。也就是说,可能仍然检测不到长故障攻击,因为第一读取请求和第三读取请求二者都受到长故障攻击的影响(并且因此以相同的方式发生变化,因此产生相同的结果),但是在这种情况下第二读取请求将不会产生预定的结果,使得仍然可以检测到攻击。因此,只要在第三读取请求之前分派了第二读取请求,就可以检测到所有可能长度的故障攻击。
图2B示出了在所述类型的数据处理系统中的安全数据读取的方法214的其它示例性实施例。在该实施例中,在216处,地址分派器向与第一存储器区域不同的第二存储器区域分派其它读取请求。具体地,在第一读取请求与第二读取请求之间分派其它读取请求。备选地,如图2C所示,可以在第二读取请求与第三读取请求之间分派其它读取请求。在任何一种情况下,如上所述,其它读取请求可能已经导致读取流分支到不受对于第一读取请求执行的故障攻击影响的存储器区域,并且在这种故障攻击属于长故障攻击的情况下,其可能仍然不能被检测到。根据本公开,通过在第一读取请求和第三读取请求(即冗余读取请求)之间分派具有预定的结果的读取请求,可以更容易地检测到长故障攻击。
在示例性实施例中,第二读取请求被实现为具有已知答复的读取请求。由此,可以提供可信的值作为预定的结果。本领域技术人员将设想到的是,更具体地,可以按已知的各种形式来实现具有已知答复的读取请求。例如,可以向存储有固定值的存储器位置分派第二读取请求,该固定值应当被存储器返还来作为响应;该存储器位置可以与分派有第一读取请求的存储器位置相邻。备选但没有限制地,具有已知答复的读取请求可以实现为在读取已知答复模式下的读取请求。在这种情况下,可以向第一读取请求所分派的相同位置分派第二读取请求,并且读取已知答复模式强制该位置以预定的方式来答复。这样的读取已知答复模式可以基于被称作“禁止所有行”的特征,该特征在例如闪存和EEPROM存储器中可用。应当注意的是,也可以使用其它实现。此外,应当注意的是,应当广义的解释本文中使用的术语“存储器”,在这种理解方式下存储器可以包括例如寄存器、光学存储盘以及其它存储介质的存储单元。此外,应当注意的是,虽然上述实施例涉及光学攻击,但是本公开并不限于此。也就是说,当前公开的方法和系统可以等同地应用到其它类型的故障攻击。
本文中描述的系统和方法可以由一个或多个计算机程序来实现,这些计算机程序可以按多种形式主动的和被动的存在于单个计算机系统中,或者存在于多个计算机系统中。例如,它们可以作为软件程序存在,软件程序在源代码、目标代码、可执行代码或其他形式中由程序指令组成,用于执行一些步骤。上述任何一个都可以在计算机可读介质上实现,计算机可读介质可以包括存储设备和信号,信号是压缩形式的或者是非压缩形式的。
在本文中所使用的术语"移动设备"是指任何类型的便携式电子设备,包括蜂窝式电话,个人数字助理(PDA),智能电话,平板电脑等。此外,术语"计算机"是指包括处理器的任何电子设备,处理器诸如是通用目的的中央处理单元(CPU),特定目的的处理器或微处理器。计算机能够接收数据(输入),对数据执行一系列预定操作,以及从而产生信息或信号(输出)形式的结果。基于上下文,术语"计算机"是指处理器,该处理器特别是或者通常是与包含在单个壳体或外壳内的相互关联的元件的装配相关联的处理器。
术语"处理器"是指数据处理电路,该数据处理电路可以是微处理器、协处理器、微控制器、微型计算机、中央处理单元、现场可编程门阵列(FPGA)、可编程逻辑电路、和/或基于存储在存储器中的操作指令操作信号(模拟或者数字)的任何电路。术语"存储器"是指一个或多个存储电路,诸如只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪速存储器、超高速缓冲存储器、和/或存储数字信息的任何电路。
在本文中所使用的术语"计算机可读介质"或者"存储介质"可以是任何装置,能够包含、存储、通信、传送、或者传递要使用的或者与指令执行系统、设备或装置有关的计算机程序。计算机可读介质可以是,例如但是并不限于,电子的、磁的、光的、电磁的、红外线的或者半导体系统、设备、装置或传播介质。计算机可读介质的更多具体示例(非穷举列表)包括以下示例:具有一个或多个导线的电连接、便携式计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者闪速存储器)、光纤和便携式光盘只读存储器(CDROM)。
注意到,以上实施例是参照不同的主题进行描述的。具体地,可以参考方法类型权利要求描述一些实施例,同时参考装置类型权利要求描述其他实施例。然而,除非另外指示,本领域技术人员将从上文获知,除了属于一种类型的主题的特征的任意组合之外,认为本文件还公开了与不同主题有关的特征的任意组合,尤其是方法类型权利要求的特征与装置类型权利要求的特征的组合。
此外,应当注意的是,附图是示意性的。在不同附图中,相似或相同的元件用相同的附图标记来表示。此外,应注意在提供这些示例性实施例的简明描述中,可能并未描述落入本领域技术人员常规实践中的实现细节。应该理解的是,任何这种实施方式的开发中,如同在任何工程或设计项目中一样,为了实现开发者的特定目标(例如服从因实施方式而异的系统相关的或商业相关的制约),必须做出各种实施方式特定的判决。此外,应理解这种开发尝试可能是复杂的并消耗时间的,但依然是本领域普通技术人员惯常的设计、制作和制造。
最后,应当注意的是,本领域技术人员将能够在不背离所附权利要求的范围的情况下设计许多备选实施例。在权利要求中,置于括弧中的参考标号不应理解为限制权利要求。词语"包括"不排除权利要求中列举的元件或步骤之外的其他元件或步骤的存在。元件前面的词语"一个"不排除多个这种元件的存在。权利要求中引用的措施可以通过包括多个分立元件的硬件和/或通过适当编程的处理器来实现。在枚举了若干装置的设备权利要求中,这些装置中的一些可以通过一个相同的硬件项目来实现。唯一的事实在于,在相互不同的从属权利要求中叙述的一些措施并不表示这些措施的组合不能被有利地使用。
附图标记列表
100 数据处理系统
101 读取请求输入
102 地址分派器
104 存储器
106 异常信号发生器
108 异常处理器
110 中央处理单元
200 数据读取方法
202 分派第一读取请求
204 分派第二读取请求
206 分派第三读取请求
208 产生第一异常信号
210 产生第二异常信号
212 断定故障攻击
214 数据读取方法
216 分派其它读取请求
218 数据读取方法
Claims (14)
1.一种数据处理系统中的安全数据读取的方法,所述数据处理系统包括用于向包括第一存储器区域的存储器分派读取请求的地址分派器、异常信号发生器和异常处理器,所述方法包括以下步骤:
-所述地址分派器向第一存储器区域分派第一读取请求;
-在分派所述第一读取请求之后,所述地址分派器向所述第一存储器区域分派第二读取请求;
-在分派所述第二读取请求之后,所述地址分派器向所述第一存储器区域分派第三读取请求;
-如果响应于所述第一读取请求由所述存储器产生的结果与响应于所述第三读取请求由所述存储器产生的结果不一致,则所述异常信号发生器产生第一异常信号;
-如果响应于所述第二读取请求所述存储器不产生预定的结果,则所述异常信号发生器产生第二异常信号;
-如果已经产生了所述第一异常信号和所述第二异常信号中的至少一个,则所述异常处理器断定已经发生了故障攻击。
2.根据权利要求1所述的方法,其中所述第二读取请求是具有已知答复的读取请求。
3.根据权利要求1或2所述的方法,其中所述存储器还包括与所述第一存储器区域不同的第二存储器区域,并且其中所述地址分派器在分派所述第一读取请求与所述第三读取请求之间分派指向所述第二存储器区域的其它读取请求。
4.根据权利要求3所述的方法,其中所述故障攻击是通过光源执行的光攻击,并且其中所述第二存储器区域在所述光源的光斑之外。
5.根据权利要求3或4所述的方法,其中,所述第一读取请求、第二读取请求和第三读取请求被包括在读取流的第一分支中,并且其中所述其它读取请求被包括在所述读取流的第二分支中。
6.根据前述权利要求中的任一项所述的方法,还包括:如果既没有产生所述第一异常信号又没有产生所述第二异常信号,则断定还没有发生故障攻击。
7.一种数据处理系统,包括用于向存储器分派读取请求的地址分派器、异常信号发生器和异常处理器,
所述地址分派器被布置为:
-向第一存储器区域分派第一读取请求;
-在分派所述第一读取请求之后,向所述第一存储器区域分派第二读取请求;
-在分派所述第二读取请求之后,向所述第一存储器区域分派第三读取请求;
所述异常信号发生器被布置为:
-如果响应于第一读取请求由所述存储器产生的结果与响应于第三读取请求由所述存储器产生的结果不一致,则产生第一异常信号;
-如果响应于所述第二读取请求,所述存储器不产生预定的结果,则产生第二异常信号;
所述异常处理器被布置为:
-如果已经产生了所述第一异常信号和所述第二异常信号中的至少一个,则断定已经发生了故障攻击。
8.根据权利要求7所述的系统,其中所述第二读取请求是具有已知答复的请求。
9.根据权利要求7或8所述的系统,其中所述存储器还包括与所述第一存储器区域不同的第二存储器区域,并且其中所述地址分派器被布置为在分派所述第一读取请求与所述第三读取请求之间分派指向所述第二存储器区域的其它读取请求。
10.根据权利要求9所述的系统,其中所述故障攻击是通过光源执行的光攻击,并且其中所述第二存储器区域在所述光源的光斑之外。
11.根据权利要求9或10所述的系统,其中,所述第一读取请求、第二读取请求和第三读取请求被包括在读取流的第一分支中,并且其中所述其它读取请求被包括在所述读取流的第二分支中。
12.根据权利要求7至11任一项所述的系统,所述地址分派器还被布置为:如果既没有产生所述第一异常信号又没有产生所述第二异常信号,则断定还没有发生故障攻击。
13.根据权利要求7至12中任一项所述的系统,其中所述地址分派器被包括在存储器控制器中。
14.根据权利要求13所述的系统,其中所述存储器控制器是闪存控制器或EEPROM存储器控制器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP15155195.9A EP3057027B1 (en) | 2015-02-16 | 2015-02-16 | Method for secure data reading, computer program product and data handling system |
EP15155195.9 | 2015-02-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105893877A true CN105893877A (zh) | 2016-08-24 |
CN105893877B CN105893877B (zh) | 2020-11-20 |
Family
ID=52484360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610085662.2A Active CN105893877B (zh) | 2015-02-16 | 2016-02-15 | 安全数据读取的方法和数据处理系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160239365A1 (zh) |
EP (1) | EP3057027B1 (zh) |
CN (1) | CN105893877B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111989677A (zh) * | 2018-04-14 | 2020-11-24 | 微软技术许可有限责任公司 | Nop雪橇防御 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10339324B2 (en) * | 2016-12-22 | 2019-07-02 | Apple Inc. | Tamper-proof storage using signatures based on threshold voltage distributions |
EP3882798A1 (en) * | 2020-03-20 | 2021-09-22 | Thales Dis Design Services Sas | Method for securely accessing a memory component |
US11960358B1 (en) * | 2022-09-30 | 2024-04-16 | Nxp B.V. | More secure data reading with error correction codes |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100476892B1 (ko) * | 2002-04-29 | 2005-03-17 | 삼성전자주식회사 | 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템 |
DE10254659A1 (de) * | 2002-11-22 | 2004-06-03 | Philips Intellectual Property & Standards Gmbh | Schaltungsanordnung mit nicht-flüchtigem Speichermodul und Verfahren zum Erfassen von Lichtattacken auf das nicht-flüchtige Speichermodul |
FR2888960B1 (fr) * | 2005-07-19 | 2007-10-12 | Gemplus Sa | Detection d'une faute par perturbation longue |
US7587625B2 (en) * | 2006-02-16 | 2009-09-08 | Intel Corporation | Memory replay mechanism |
CN101140542A (zh) * | 2007-10-19 | 2008-03-12 | 华中科技大学 | 一种缩短写时拷贝快照写响应时间的方法 |
EP2294526B1 (en) * | 2008-05-15 | 2015-05-27 | Nxp B.V. | A method for secure data reading and a data handling system |
US8225401B2 (en) * | 2008-12-18 | 2012-07-17 | Symantec Corporation | Methods and systems for detecting man-in-the-browser attacks |
DE102014102623A1 (de) * | 2014-02-27 | 2015-08-27 | Infineon Technologies Ag | Speicheranordnung und verfahren zum detektieren eines angriffs auf eine speicheranordnung |
-
2015
- 2015-02-16 EP EP15155195.9A patent/EP3057027B1/en active Active
-
2016
- 2016-02-15 CN CN201610085662.2A patent/CN105893877B/zh active Active
- 2016-02-16 US US15/045,190 patent/US20160239365A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111989677A (zh) * | 2018-04-14 | 2020-11-24 | 微软技术许可有限责任公司 | Nop雪橇防御 |
CN111989677B (zh) * | 2018-04-14 | 2024-05-10 | 微软技术许可有限责任公司 | Nop雪橇防御 |
Also Published As
Publication number | Publication date |
---|---|
EP3057027B1 (en) | 2018-06-13 |
US20160239365A1 (en) | 2016-08-18 |
EP3057027A1 (en) | 2016-08-17 |
CN105893877B (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7814396B2 (en) | Apparatus and method for checking an error recognition functionality of a memory circuit | |
JP6373888B2 (ja) | 情報処理装置及び制御方法 | |
US10678920B2 (en) | Electronic device and protection method | |
US8867746B2 (en) | Method for protecting a control device against manipulation | |
US9454663B2 (en) | Data processing method and device | |
CN105893877A (zh) | 安全数据读取的方法和数据处理系统 | |
JP5923556B2 (ja) | データ処理システム、データ処理システムの初期化方法及びコンピュータプログラムプロダクト | |
US9047448B2 (en) | Branch auditing in a computer program | |
EP2876593A1 (en) | Method of generating a structure and corresponding structure | |
CN113168482B (zh) | 用于确保源码的可信性的方法 | |
KR20210028686A (ko) | 반복적인 사이드 채널 공격 대응책 | |
JP6622360B2 (ja) | 情報処理装置 | |
JP2018169694A (ja) | 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス | |
US8621617B2 (en) | Method of securing execution of a program | |
US10148671B2 (en) | Method for protecting a chip card against a physical attack intended to modify the logical behaviour of a functional program | |
WO2001097010A2 (en) | Data processing method and device for protected execution of instructions | |
US9652232B2 (en) | Data processing arrangement and method for data processing | |
US20080232582A1 (en) | Method for Dynamically Authenticating Programmes with an Electronic Portable Object | |
Lackner et al. | A defensive java card virtual machine to thwart fault attacks by microarchitectural support | |
US9684631B2 (en) | Processing sytem with a secure set of executable instructions and/or addressing scheme | |
JP6119345B2 (ja) | Icチップ、icカード、検証処理方法、及び検証処理プログラム | |
US10242183B2 (en) | Method of executing a program by a processor and electronic entity comprising such a processor | |
EP3460702A1 (en) | Method to detect an attack by fault injection on a sensitive operation | |
CN105426206B (zh) | 一种版本信息的控制方法和控制装置 | |
JP7383156B2 (ja) | セキュリティ関連プロセスのセキュアな実行のための方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |