CN113495804A - 数据处理系统中冷启动存储器攻击的检测 - Google Patents

数据处理系统中冷启动存储器攻击的检测 Download PDF

Info

Publication number
CN113495804A
CN113495804A CN202110142189.8A CN202110142189A CN113495804A CN 113495804 A CN113495804 A CN 113495804A CN 202110142189 A CN202110142189 A CN 202110142189A CN 113495804 A CN113495804 A CN 113495804A
Authority
CN
China
Prior art keywords
memory
ratio
count
errors
read access
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
CN202110142189.8A
Other languages
English (en)
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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of CN113495804A publication Critical patent/CN113495804A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/52Monitoring 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
    • G06F21/54Monitoring 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 by adding security routines or objects to programs
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • G06F21/77Protecting 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
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

提供一种用于检测数据处理系统中冷启动攻击的方法。所述数据处理系统包括处理器、具有ECC的存储器和监测电路。在所述方法中,在所述数据处理系统的启动过程期间,所述监测电路就对所述存储器的读访问和写访问进行计数,并维持所述ECC检测到的所述存储器中的错误数量的计数。所述读访问计数和所述写访问计数以及所述错误计数用于检测可指示对所述存储器的冷启动攻击的可疑活动。还提供实施所述方法的数据处理系统。

Description

数据处理系统中冷启动存储器攻击的检测
技术领域
本公开大体上涉及数据处理,且更具体地,涉及数据处理系统中冷启动存储器攻击的检测。
背景技术
一些装置,比如交通卡、信用卡、医疗保障卡等,使用动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)之类的易失性存储器来存储例如未加密的私人加密密钥等敏感数据。通常提供装置的操作系统中的软件以用于保护敏感数据。在冷启动攻击中,攻击者试图通过将装置冷却到极低的温度(例如,冷却到约-100到0摄氏度范围内的温度)接着非常快速地关闭并再次打开装置来获得对装置的控制。通过冷却装置,存储器内容可仍处于断电前的相同状态。然后,攻击者可接管装置的启动过程。通常保护数据不被未授权的用户读出的操作系统软件在攻击中可能失效,因此允许攻击者访问敏感数据。
发明内容
根据本发明的第一方面,提供一种用于检测对数据处理系统的存储器的冷启动攻击的方法,所述方法包括:
检测所述系统中启动过程的发起;
就对所述存储器的读访问进行计数;
响应于检测到所述启动过程而在所述存储器上运行错误校正码(ECC);
在所述启动过程期间对所述ECC检测到的所述存储器中的错误进行计数;以及
使用所述读访问计数和检测到的错误计数,确定对所述存储器的攻击很可能正在发生。
在一个或多个实施例中,使用所述读访问计数和所述检测到的错误计数另外包括:
确定检测到的错误计数与所述读访问计数的比率;
其中确定攻击正在发生另外包括确定所述比率大于第一阈值;并且
提供所述可能的冷启动攻击的指示。
在一个或多个实施例中,对所述ECC检测到的所述存储器中的错误进行计数另外包括:
对所述存储器中的可校正错误进行计数;
确定可校正错误计数与所述读访问计数的比率;以及
确定所述读访问计数的所述比率大于第三阈值。
在一个或多个实施例中,通过所述ECC对所述存储器中的错误进行计数另外包括:
对所述存储器中的不可校正错误进行计数;
确定不可校正错误计数与所述读访问计数的比率;以及
确定所述读访问计数的所述比率大于第三阈值。
在一个或多个实施例中,在所述启动过程期间对所述ECC检测到的所述存储器中的错误进行计数另外包括检测可校正错误和检测不可校正错误。
在一个或多个实施例中,所述方法另外包括:
在所述存储器的所述启动过程期间就对所述存储器的写访问进行计数;
确定所述读访问计数与所述写访问计数的比率;以及
确定所述读访问计数与所述写访问计数的所述比率大于第二阈值。
在一个或多个实施例中,确定所述检测到的错误计数与所述读访问计数的比率另外包括:
在所述启动过程期间对从所述存储器读取的数据的可校正错误进行计数;
确定所述可校正错误计数与所述读访问计数的比率;
对从所述存储器读取的数据的不可校正错误进行计数;以及
确定所述不可校正错误计数与所述读访问计数的比率。
在一个或多个实施例中,提供所述可能的冷启动攻击的指示另外包括当以下各项中的一个或多个发生时确定对所述存储器的攻击已经发生:所述可校正错误计数与所述读访问计数的所述比率大于第二阈值,或所述不可校正错误计数与所述读访问计数的所述比率大于第三阈值。
在一个或多个实施例中,所述存储器是动态随机存取存储器。
在一个或多个实施例中,检测所述启动过程的发起另外包括将启动开始信号发送到耦合到所述存储器并耦合到ECC电路的监测电路,作为响应,所述监测电路接收所述检测到的所述存储器中的错误并提供所述可能的冷启动攻击的所述指示。
根据本发明的第二方面,提供一种用于检测对存储器的冷启动攻击的方法,所述方法包括:
在所述存储器的启动过程期间就对所述存储器的读访问和写访问进行计数;
确定所述读访问计数与所述写访问计数的比率;
在所述启动过程期间对从所述存储器读取的数据的可校正错误进行计数;
确定所述可校正错误计数与所述读访问计数的比率;
对从所述存储器读取的数据的不可校正错误进行计数;
确定所述不可校正错误计数与所述读访问计数的比率;以及
当以下任一项中的一个发生时确定对所述存储器的攻击很可能已经发生:所述读访问计数与所述写访问计数的所述比率大于第一阈值、所述可校正错误计数与所述读访问计数的所述比率大于第二阈值或所述不可校正错误计数与所述读访问计数的所述比率大于第三阈值。
在一个或多个实施例中,所述存储器是动态随机存取存储器。
在一个或多个实施例中,所述可校正错误是一位错误或两位错误。
在一个或多个实施例中,确定对所述存储器的所述攻击很可能已经发生另外包括提供所述攻击的指示。
在一个或多个实施例中,所述方法另外包括将启动开始信号发送到耦合到所述存储器并耦合到ECC电路的监测电路,且作为响应,所述监测电路接收所述检测到的所述存储器中的错误并提供所述可能的冷启动攻击的所述指示。
根据本发明的第三方面,提供一种数据处理系统,包括:
处理器,所述处理器用于执行指令;
存储器,所述存储器耦合到所述处理器,用于存储供所述处理器在执行所述指令时使用的数据;
错误校正码(ECC)块,所述ECC块耦合到所述存储器,用于检测所述存储数据中的错误,且用于校正所述检测到的所述存储数据中的错误中的至少一些;以及
监测电路,所述监测电路耦合到所述ECC块,且响应于接收到启动开始信号,所述监测电路用于对读访问进行计数且用于对所述ECC块检测到的所述存储器中的错误进行计数,所述监测电路在所述错误计数与所述读访问计数的比率大于第一阈值时提供可能的冷启动攻击的指示。
在一个或多个实施例中,所述存储器是动态随机存取存储器。
在一个或多个实施例中,所述数据处理系统另外包括用于就对所述存储器的写访问进行计数的所述监测电路,其中所述监测电路在所述读访问计数与所述写访问计数的比率超出第二阈值时提供可能的冷启动攻击的指示。
在一个或多个实施例中,所述监测电路检测到的所述错误另外包括可校正错误和不可校正错误,其中所述监测电路在所述检测到的可校正错误与所述读访问计数的比率大于第三阈值时提供可能的冷启动攻击的指示,且其中所述监测电路在所述检测到的不可校正错误与所述读访问计数的比率大于第四阈值时提供可能的冷启动攻击的指示。
在一个或多个实施例中,所述数据处理系统在至少一个集成电路上实施。
本发明的这些和其它方面将根据下文中所描述的实施例显而易见,且参考这些实施例予以阐明。
附图说明
本发明借助于例子示出且不受附图的限制,在附图中,类似标记指示类似元件。为了简单和清晰起见而示出图中的元件,并且这些元件不一定按比例绘制。
图1示出根据实施例的数据处理系统。
图2示出图1的数据处理系统的存储器和错误校正码(ECC)电路的实施例。
图3更详细地示出图1的数据处理系统的监测电路的实施例。
图4是根据实施例的用于检测对存储器的冷启动攻击的方法的流程图。
具体实施方式
一般来说,提供一种用于检测冷启动攻击的方法和一种实施所述方法的数据处理系统。数据处理系统包括处理器、具有错误校正码(ECC)的存储器和耦合到处理器并耦合到具有ECC的存储器的监测电路。当启动过程在具有数据处理系统的装置中开始时,启动开始信号被发送到监测电路。在装置启动时,监测电路就对存储器的读访问和写访问进行计数并维持读访问计数和写访问计数。而且,响应于启动开始信号,监测电路对使用ECC检测到的存储器错误进行计数。确定读访问与写访问的比率,且如果超出预定比率,则提供警告。而且,如果超出每次读访问的ECC检测到的错误的预定比率,则发出警告,所述警告可指示存储器中的高速率翻转的存储器单元状态,所述状态可为攻击的指示。响应于检测到攻击,可采取对策,例如关闭系统或覆写存储器。
更具体地说,在一个实施例中,可针对可校正错误和不可校正错误维持单独计数。使用读访问计数值、可校正错误计数值和可校正错误计数值,监测电路确定对数据处理系统的存储器的攻击是否正在进行。在一个实施例中,计算检测到的总错误计数与读访问计数的比率。如果所述比率大于阈值,则确定攻击很可能发生,并提供攻击的指示。在另一实施例中,计算可校正错误计数与读访问计数的比率,并将所述比率与阈值进行比较以检测可能的攻击。另外,可计算不可校正错误计数与读访问计数的比率,并将所述比率与另一阈值进行比较。在各情况下,如果计算出的比率大于阈值,则很可能攻击。
在许多不同类型的系统中,攻击者必须提供身份才能访问装置,其中必须先访问装置,然后才可对装置进行攻击。通过使用例如所描述的方法实现对冷启动攻击的检测,可识别攻击者,因此提供机会从而不仅阻止攻击者攻击他或她当前正在攻击的装置,而且阻止攻击者攻击其它装置。
根据实施例,提供一种用于检测对数据处理系统的存储器的冷启动攻击的方法,所述方法包括:检测所述系统中启动过程的发起;就对所述存储器的读访问进行计数;响应于检测到所述启动过程而在所述存储器上运行错误校正码(ECC);在所述启动过程期间对所述ECC检测到的所述存储器中的错误进行计数;以及使用所述读访问计数和检测到的错误计数,确定对所述存储器的攻击很可能正在发生。使用所述读访问计数和检测到的错误计数可另外包括:确定检测到的错误计数与所述读访问计数的比率;其中确定攻击正在发生另外包括确定所述比率大于第一阈值;以及提供所述可能的冷启动攻击的指示。对ECC检测到的存储器中的错误进行计数可另外包括:对存储器中的可校正错误进行计数;确定可校正错误计数与所述读访问计数的比率;以及确定所述读访问计数的比率大于第三阈值。通过所述ECC对所述存储器中的错误进行计数可另外包括:对所述存储器中的不可校正错误进行计数;确定不可校正错误计数与所述读访问计数的比率;以及确定所述读访问计数的所述比率大于第三阈值。在所述启动过程期间对所述ECC检测到的所述存储器中的错误进行计数可另外包括检测可校正错误和检测不可校正错误。所述方法可另外包括:在所述存储器的所述启动过程期间就对所述存储器的写访问进行计数;确定所述读访问计数与所述写访问计数的比率;以及确定所述读访问计数与所述写访问计数的所述比率大于第二阈值。确定所述检测到的错误计数与所述读访问计数的比率可另外包括:在所述启动过程期间对从所述存储器读取的数据的可校正错误进行计数;确定所述可校正错误计数与所述读访问计数的比率;对从所述存储器读取的数据的不可校正错误进行计数;以及确定所述不可校正错误计数与所述读访问计数的比率。提供所述可能的冷启动攻击的指示可另外包括当以下各项中的一个或多个发生时确定对所述存储器的攻击已经发生:所述可校正错误计数与所述读访问计数的所述比率大于第二阈值,或所述不可校正错误计数与所述读访问计数的所述比率大于第三阈值。所述存储器可为动态随机存取存储器。检测所述启动过程的发起可另外包括将启动开始信号发送到耦合到所述存储器并耦合到ECC电路的监测电路,作为响应,所述监测电路接收所述检测到的所述存储器中的错误并提供所述可能的冷启动攻击的所述指示。
在另一实施例中,提供一种用于检测对存储器的冷启动攻击的方法,所述方法包括:在所述存储器的启动过程期间就对所述存储器的读访问和写访问进行计数;确定所述读访问计数与所述写访问计数的比率;在所述启动过程期间对从所述存储器读取的数据的可校正错误进行计数;确定所述可校正错误计数与所述读访问计数的比率;对从所述存储器读取的数据的不可校正错误进行计数;确定所述不可校正错误计数与所述读访问计数的比率;以及当以下任一项中的一个发生时确定对所述存储器的攻击很可能已经发生:所述读访问计数与所述写访问计数的所述比率大于第一阈值、所述可校正错误计数与所述读访问计数的所述比率大于第二阈值或所述不可校正错误计数与所述读访问计数的所述比率大于第三阈值。所述存储器可为动态随机存取存储器。所述可校正错误可为一位错误或两位错误。确定对所述存储器的所述攻击很可能已经发生可另外包括提供所述攻击的指示。所述方法可另外包括将启动开始信号发送到耦合到所述存储器并耦合到ECC电路的监测电路,且作为响应,所述监测电路接收所述检测到的所述存储器中的错误并提供所述可能的冷启动攻击的所述指示。
在又一实施例中,提供一种数据处理系统,包括:处理器,所述处理器用于执行指令;存储器,所述存储器耦合到所述处理器,用于存储供所述处理器在执行所述指令时使用的数据;错误校正码(ECC)块,所述ECC块耦合到所述存储器,用于检测所述存储数据中的错误,且用于校正所述检测到的所述存储数据中的错误中的至少一些;以及监测电路,所述监测电路耦合到所述ECC块,且响应于接收到启动开始信号,所述监测电路用于对读访问进行计数且用于对所述ECC块检测到的所述存储器中的错误进行计数,所述监测电路在所述错误计数与所述读访问计数的比率大于第一阈值时提供可能的冷启动攻击的指示。所述存储器可为动态随机存取存储器。所述数据处理系统可另外包括用于就对所述存储器的写访问进行计数的所述监测电路,其中所述监测电路在所述读访问计数与所述写访问计数的比率超出第二阈值时提供可能的冷启动攻击的指示。由所述监测电路检测到的所述错误可另外包括可校正错误和不可校正错误,其中所述监测电路在所述检测到的可校正错误与所述读访问计数的比率大于第三阈值时提供可能的冷启动攻击的指示,且其中所述监测电路在所述检测到的不可校正错误与所述读访问计数的比率大于第四阈值时提供可能的冷启动攻击的指示。所述数据处理系统可在至少一个集成电路上实施。
图1示出根据实施例的数据处理系统10。数据处理系统10包括处理器12、具有ECC的存储器14和监测电路16。示出的实施例被大大简化,且实际实施方案将包括图1中未示出的额外电路和功能。数据处理系统10可在单个集成电路(IC)或多个IC上实施。处理器12可包括一个核心或多个核心,且可以是能够执行指令的任何硬件装置。处理器12可执行指令,所述指令存储在具有ECC的存储器14中或存储在数据处理系统10中的某一其它存储器(未示出)中。而且,处理器12可为(例如)微控制器(MCU)微处理器(MPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或类似装置。在示出的实施例中,处理器12包括输出,用于将控制信号、地址和数据提供到具有ECC的存储器14的输入。例如,处理器12具有用于提供读使能(READ ENABLE)信号的输出、用于提供写使能(WRITE ENABLE)信号的输出、用于提供时钟(CLOCK)信号的输出、用于提供地址(ADDRESS)的输出,以及用于将输入数据(DATA IN)提供到存储器的输出。读使能信号用于发起对具有ECC的存储器14的读访问,而写使能信号用于发起对具有ECC的存储器14的写访问。
具有ECC的存储器14包括用于提供输出数据、可校正错误(CORRECTABLE ERROR)、不可校正错误(UNCORRECTABLE ERROR)和输出数据(DATA OUT)的输出。存储器14可包括易失性存储器单元阵列,所述易失性存储器单元例如是动态随机存取存储器(DRAM)单元或静态随机存取存储器(SRAM)单元。也可能有其它随机存取存储器(RAM)类型。取决于系统要求,在存储器中实施的ECC和ECC 14可以是任何类型的ECC。在一个实施例中,ECC可校正存储器中的一位错误和两位错误。
监测电路16具有用于接收启动开始(BOOT START)信号的输入,所述启动开始信号用于指示发起启动过程。启动开始信号可由处理器12或例如看门狗电路的另一电路(未示出)生成。攻击者可能发起启动过程。当接收到有效启动开始信号时,监测电路16从处理器12接收读使能(READ ENBLE)信号、写使能(WRITE ENBLE)信号和时钟(CLOCK)信号作为输入,并且维持读使能信号和写使能信号的计数值。在一个实施例中,单个读访问和单个写访问各自占用单个时钟周期。当读使能(READ ENABLE)信号有效时,可通过对时钟周期进行计数来对读访问执行计数。同样地,当写使能(WRITE ENABLE)信号有效时,可通过对时钟周期进行计数来对写访问执行计数。
在数据处理系统10的启动过程期间,大多数存储器访问应为对存储器的写访问。写访问会在存储器中覆写数据或会将数据复制到存储器中。因此,启动过程期间过多读访问可为对存储器的攻击的指示,因为读访问可指示试图在启动过程之前读出存储器中存在的数据。具体地说,在一个实施例中,计算读访问与写访问的比率。如果所述比率高于预定阈值,则提供可能的冷启动攻击的指示。另外,冷启动攻击可引起存储器中的错误增加。监测电路16从具有ECC的存储器14接收可校正错误和不可校正错误的指示。提供计数器以对可校正ECC错误和不可校正ECC错误进行计数,如图3中所示。如果可校正错误与读访问计数的比率高于预定阈值,则冷启动攻击可能正在进行。而且,不可校正错误与读访问计数的比率可指示冷启动攻击。计数值和比率比较中的任一个可用作冷启动攻击的指示。当检测到可能的冷启动攻击时,由监测电路16提供攻击警告(ATTACK WARNING)。
监测电路16检测冷启动攻击而不干扰输入数据DATA IN和来自存储器的输出DATAOUT。监测电路16指示何时已检测到存储器处的可疑活动,使得分层较高的层级可采取适当的动作,例如,关闭系统或将数据写入到被设计成误导攻击者的存储器中。
图2示出图1的数据处理系统10的具有ECC的存储器14的实施例。具有ECC的存储器14包括RAM 20。随机存取存储器20可以是易受冷启动攻击影响的任何类型的RAM,例如DRAM。RAM还可为多端口或其它类型的RAM。在示出的实施例中,ECC功能包括在图2中示出为ECC编码器块22和ECC解码器块24的常规ECC。ECC功能可以是任何类型的常规ECC,且将至少部分地取决于系统要求。例如,在例如交通卡等具有相对较低处理能力的系统中,ECC功能会相对简单。ECC编码器块22将奇偶校验和/或其它校验位添加到存储器中的每个字。用于存储奇偶校验和/或其它校验位的存储器可为RAM 20或单独存储器(未示出)。ECC解码器块24确定在添加到字的奇偶校验或其它校验位中是否存在错误。在数据处理系统10的启动过程期间,ECC运行并检测存储器中的错误。监测电路16记录对存储器的读访问和写访问的数量,并记录ECC检测到的可校正错误和不可校正错误的数量。大多数对存储器的访问应为写访问。而且,在启动过程开始之后,大量ECC错误可指示可疑活动。检测到的错误以及对存储器的读访问和写访问的数量用于检测冷启动攻击。下文在图3的论述中提供使用检测到的错误以及读访问计数和写访问计数的一个实施例。
图3更详细地示出图1的数据处理系统10的监测电路16的实施例。监测电路16包括与逻辑门30-33、计数器34-37、比率函数40-42和阈值比较器44-46。将来自处理器12的时钟信号提供到与逻辑门30-33中的每一个的输入。与逻辑门30具有用于从具有ECC的存储器14中接收不可校正错误(UNCORRECTABLE ERROR)信号的输入。与逻辑门31具有用于从具有ECC的存储器14接收可校正错误(CORRECTABLE ERROR)信号的输入。与逻辑门32具有用于接收读使能(READ ENABLE)信号的输入。与逻辑门33具有用于接收写使能(WRITE ENABLE)信号的输入。当读使能信号和时钟信号都为逻辑高时,将逻辑高输出信号提供到计数器36。使用读使能信号,计数器36维持对具有ECC的存储器14的读访问的计数。当写使能信号和时钟信号都为逻辑高时,通过与逻辑门33将逻辑高信号提供到计数器37。使用写使能信号,计数器37维持对具有ECC的存储器14的写访问的计数。将读访问计数值提供到比率函数40、41和42。将写访问计数值提供到比率函数42。比率函数42接收读访问计数值和写访问计数值两者并确定读访问计数值与写访问计数值的比率(NR/NW)。在启动过程开始之后,大多数存储器访问应为写访问。阈值比较器46将NR/NW比率与预定阈值(THRESHOLD 3)进行比较。如果比率NR/NW大于THRESHOLD 3,则由监测电路16提供冷启动攻击警告(ATTACK WARNING 3)。在一个实施例中,仅当NW被舍入为2的幂(例如,210、212、216等)时执行NR/NW的计算。这简化了计算,因为Nr随后可在位上移位相应的指数。
每次通过ECC在存储器中检测到不可校正错误时,在与逻辑门30的输入处接收到不可校正错误(UNCORRECTABLE ERROR)信号。当时钟(CLOCK)信号和不可校正错误(UNCORRECTABLE ERROR)信号都为逻辑高时,由与逻辑门30将逻辑高输出提供到计数器34。计数器34维持检测到的不可校正错误的计数并将计数(ECCUNCORR)提供到比率函数40。比率函数40计算不可校正错误与读访问的比率(ECCUNCORR/NR),并将比率ECCUNCORR/NR提供到阈值比较器44。阈值比较器44将比率ECCUNCORR/NR与预定阈值(THRESHOLD 1)进行比较,且如果比率ECCUNCORR/NR大于THRESHOLD 1,则提供冷启动攻击警告(ATTACK WARNING 1)。
每次在具有ECC的存储器14中检测到可校正错误时,在与逻辑门31的输入处接收到可校正错误(CORRECTABLE ERROR)信号。当时钟(CLOCK)信号和可校正错误(CORRECTABLEERROR)信号都为逻辑高时,由与逻辑门31将逻辑高输出提供到计数器35。计数器35维持检测到的可校正错误的计数并将计数(ECCCORR)提供到比率函数41。比率函数41计算可校正错误与读访问的比率(ECCCORR/NR),并将比率ECCCORR/NR提供到阈值比较器45。阈值比较器45将比率ECCCORR/NR与预定阈值(THRESHOLD 2)进行比较,且如果比率ECCCORR/NR大于THRESHOLD2,则提供冷启动攻击警告(ATTACK WARNING 2)。应注意,代替与逻辑门,其它实施例可使用不同逻辑门或逻辑门的组合。而且,所使用的逻辑可部分地通过信号是高有效信号还是低有效信号来确定。
图4示出根据实施例的用于检测对具有ECC的存储器的冷启动攻击的方法50的流程图。方法50开始于步骤52。在步骤52,在具有存储器的数据处理系统的启动过程期间就对存储器的读访问和写访问进行计数。在步骤54,计算检测到的读访问计数与检测到的写访问计数的比率。在步骤56,对通过与存储器相关联的ECC检测到的可校正错误进行计数。在步骤58,确定可校正错误计数与读访问计数的比率。在步骤60,对ECC检测到的不可校正错误进行计数。在步骤62,确定不可校正错误计数与读访问计数的比率。在步骤64,当以下任一项中的一个或多个发生时可指示对存储器的攻击:读访问计数与写访问计数的比率大于第一阈值、可校正错误计数与读访问计数的比率大于第二阈值,或不可校正错误计数与读访问计数的比率大于第三阈值。
各种实施例或实施例的部分可实施于硬件中或作为非暂时性机器可读存储介质上的指令,所述非暂时性机器可读存储介质包括用于以例如个人计算机、膝上型计算机、文件服务器、智能电话或其它计算装置的机器可读的形式存储信息的任何机构。非暂时性机器可读存储介质可包括易失性和非易失性存储器,例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存存储器等。非暂时性机器可读存储介质不包括暂时性信号。
虽然本文中参考具体实施例描述了本发明,但是可以在不脱离如所附权利要求书中所阐述的本发明的范围的情况下进行各种修改和改变。因此,说明书和图式应视为说明性而不是限制性意义,并且预期将所有此类修改都包括在本发明的范围内。并不意图将本文中关于具体实施例所描述的任何优势、优点或针对问题的解决方案理解为任何或所有权利要求的关键、必需或必不可少的特征或元件。
此外,如本文中所使用,术语“一”或“一个”被限定为一个或多于一个。而且,权利要求书中如“至少一个”和“一个或多个”的介绍性短语的使用不应被解释为暗示由不定冠词“一”或“一个”引入的另一权利要求要素将含有这类引入的权利要求要素的任何特定权利要求限于仅含有一个这类要素的发明,甚至是在同一权利要求包括介绍性短语“一个或多个”或“至少一个”和如“一”或“一个”的不定冠词时也如此。这同样适用于定冠词的使用。
除非另外说明,否则例如“第一”和“第二”的术语用于任意地区分此类术语所描述的元件。因此,这些术语未必意图指示此类元件的时间或其它优先级排序。

Claims (10)

1.一种用于检测对数据处理系统的存储器的冷启动攻击的方法,其特征在于,所述方法包括:
检测所述系统中启动过程的发起;
就对所述存储器的读访问进行计数;
响应于检测到所述启动过程而在所述存储器上运行错误校正码(ECC);
在所述启动过程期间对所述ECC检测到的所述存储器中的错误进行计数;以及
使用所述读访问计数和检测到的错误计数,确定对所述存储器的攻击很可能正在发生。
2.根据权利要求1所述的方法,其特征在于,使用所述读访问计数和所述检测到的错误计数另外包括:
确定检测到的错误计数与所述读访问计数的比率;
其中确定攻击正在发生另外包括确定所述比率大于第一阈值;并且
提供所述可能的冷启动攻击的指示。
3.根据权利要求2所述的方法,其特征在于,对所述ECC检测到的所述存储器中的错误进行计数另外包括:
对所述存储器中的可校正错误进行计数;
确定可校正错误计数与所述读访问计数的比率;以及
确定所述读访问计数的所述比率大于第三阈值。
4.根据权利要求2所述的方法,其特征在于,通过所述ECC对所述存储器中的错误进行计数另外包括:
对所述存储器中的不可校正错误进行计数;
确定不可校正错误计数与所述读访问计数的比率;以及
确定所述读访问计数的所述比率大于第三阈值。
5.根据权利要求2所述的方法,其特征在于,在所述启动过程期间对所述ECC检测到的所述存储器中的错误进行计数另外包括检测可校正错误和检测不可校正错误。
6.根据权利要求2所述的方法,其特征在于,另外包括:
在所述存储器的所述启动过程期间就对所述存储器的写访问进行计数;
确定所述读访问计数与所述写访问计数的比率;以及
确定所述读访问计数与所述写访问计数的所述比率大于第二阈值。
7.根据权利要求6所述的方法,其特征在于,确定所述检测到的错误计数与所述读访问计数的比率另外包括:
在所述启动过程期间对从所述存储器读取的数据的可校正错误进行计数;
确定所述可校正错误计数与所述读访问计数的比率;
对从所述存储器读取的数据的不可校正错误进行计数;以及
确定所述不可校正错误计数与所述读访问计数的比率。
8.根据权利要求1所述的方法,其特征在于,检测所述启动过程的发起另外包括将启动开始信号发送到耦合到所述存储器并耦合到ECC电路的监测电路,作为响应,所述监测电路接收所述检测到的所述存储器中的错误并提供所述可能的冷启动攻击的所述指示。
9.一种用于检测对存储器的冷启动攻击的方法,其特征在于,所述方法包括:
在所述存储器的启动过程期间就对所述存储器的读访问和写访问进行计数;
确定所述读访问计数与所述写访问计数的比率;
在所述启动过程期间对从所述存储器读取的数据的可校正错误进行计数;
确定所述可校正错误计数与所述读访问计数的比率;
对从所述存储器读取的数据的不可校正错误进行计数;
确定所述不可校正错误计数与所述读访问计数的比率;以及
当以下任一项中的一个发生时确定对所述存储器的攻击很可能已经发生:所述读访问计数与所述写访问计数的所述比率大于第一阈值、所述可校正错误计数与所述读访问计数的所述比率大于第二阈值或所述不可校正错误计数与所述读访问计数的所述比率大于第三阈值。
10.一种数据处理系统,其特征在于,包括:
处理器,所述处理器用于执行指令;
存储器,所述存储器耦合到所述处理器,用于存储供所述处理器在执行所述指令时使用的数据;
错误校正码(ECC)块,所述ECC块耦合到所述存储器,用于检测所述存储数据中的错误,且用于校正所述检测到的所述存储数据中的错误中的至少一些;以及
监测电路,所述监测电路耦合到所述ECC块,且响应于接收到启动开始信号,所述监测电路用于对读访问进行计数且用于对所述ECC块检测到的所述存储器中的错误进行计数,所述监测电路在所述错误计数与所述读访问计数的比率大于第一阈值时提供可能的冷启动攻击的指示。
CN202110142189.8A 2020-04-02 2021-02-02 数据处理系统中冷启动存储器攻击的检测 Pending CN113495804A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/838,118 US11204832B2 (en) 2020-04-02 2020-04-02 Detection of a cold boot memory attack in a data processing system
US16/838,118 2020-04-02

Publications (1)

Publication Number Publication Date
CN113495804A true CN113495804A (zh) 2021-10-12

Family

ID=75252459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110142189.8A Pending CN113495804A (zh) 2020-04-02 2021-02-02 数据处理系统中冷启动存储器攻击的检测

Country Status (3)

Country Link
US (1) US11204832B2 (zh)
EP (1) EP3889817B1 (zh)
CN (1) CN113495804A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230334152A1 (en) * 2022-04-15 2023-10-19 Micron Technology, Inc. Temperature change measurement to detect attack

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059373A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation Integrated circuit chip for encryption and decryption using instructions supplied through a secure interface
US8650639B2 (en) * 2010-09-29 2014-02-11 Blackberry Limited System and method for hindering a cold boot attack
US11200322B2 (en) * 2014-06-10 2021-12-14 Stmicroelectronics (Rousset) Sas Protection of data stored in an integrated circuit
US9940457B2 (en) 2015-02-13 2018-04-10 International Business Machines Corporation Detecting a cryogenic attack on a memory device with embedded error correction
US11580057B2 (en) * 2019-10-28 2023-02-14 Xilinx, Inc. Subsystem for configuration, security, and management of an adaptive system

Also Published As

Publication number Publication date
EP3889817A1 (en) 2021-10-06
EP3889817B1 (en) 2023-10-11
US20210311823A1 (en) 2021-10-07
US11204832B2 (en) 2021-12-21

Similar Documents

Publication Publication Date Title
US10019312B2 (en) Error monitoring of a memory device containing embedded error correction
US10540297B2 (en) Memory organization for security and reliability
US9940457B2 (en) Detecting a cryogenic attack on a memory device with embedded error correction
KR101977733B1 (ko) 오류 기반 공격의 검출 방법
US9904591B2 (en) Device, system and method to restrict access to data error information
US8250288B2 (en) Flash memory storage system and controller and data protection method thereof
US20220067157A1 (en) Device and method for protecting a memory
US10824560B2 (en) Using a memory safety violation indicator to detect accesses to an out-of-bounds or unallocated memory area
US10915388B2 (en) Data storage device and associated operating method capable of detecting errors and effectively protecting data
EP3889817B1 (en) Detection of a cold boot memory attack in a data processing system
US7774587B2 (en) Dynamic redundancy checker against fault injection
US10665290B1 (en) Memory security techniques using auto refresh validation
CN106847342A (zh) 非易失性存储器装置及其空页检测方法
WO2023055806A1 (en) A method and apparatus for protecting memory devices via a synergic approach
EP3794480A1 (en) Electronic system and method for preventing malicious actions on a processing system of the electronic system
US11914703B2 (en) Method and data processing system for detecting a malicious component on an integrated circuit
US10691586B2 (en) Apparatus and method for software self-test
US7806319B2 (en) System and method for protection of data contained in an integrated circuit
US20230393763A1 (en) Protection against invalid memory commands
US20230367912A1 (en) Semiconductor chip apparatus and method for checking the integrity of a memory
US20230229759A1 (en) Method for detecting a fault injection in a data processing system
US20230359523A1 (en) Memory integrity check
US20140173392A1 (en) Hardware enforced protection of software data structures
WO2019090657A1 (zh) 一种存储器容错保护方法、装置、设备及存储介质
CN112052472A (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