CN109472172B - 用于防止来自存储器的未授权数据访问的方法 - Google Patents

用于防止来自存储器的未授权数据访问的方法 Download PDF

Info

Publication number
CN109472172B
CN109472172B CN201811042641.8A CN201811042641A CN109472172B CN 109472172 B CN109472172 B CN 109472172B CN 201811042641 A CN201811042641 A CN 201811042641A CN 109472172 B CN109472172 B CN 109472172B
Authority
CN
China
Prior art keywords
mode
data
memory
checking
payload data
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
CN201811042641.8A
Other languages
English (en)
Other versions
CN109472172A (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.)
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 CN109472172A publication Critical patent/CN109472172A/zh
Application granted granted Critical
Publication of CN109472172B publication Critical patent/CN109472172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • 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
    • 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/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0622Securing storage systems in relation to access
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

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

Abstract

本发明描述一种用于防止来自可以第一操作模式和至少一种第二操作模式操作的计算***(1)的存储器区域(3)的未授权数据访问的方法,所述方法包括:以所述第一操作模式从存储器控制器(11)请求(23)存储在存储器区域(3)中的净荷数据;通过所述存储器控制器(11)从所述存储器区域(3)检索(25)所述净荷数据;通过所述存储器控制器(11)从所述存储器区域(3)检索(27)与所述净荷数据相关联的第二检查数据;根据第一检查机制检查使用所述第二检查数据的所述净荷数据失败,而根据第二检查机制对使用所述第二检查数据的所述净荷数据的检查通过。

Description

用于防止来自存储器的未授权数据访问的方法
技术领域
本发明涉及一种用于防止来自计算***的存储器的未授权数据访问的方法和计算***,其中具体地说所述计算***可被配置为智能卡。
背景技术
存储器装置可分类成两种广泛类别:易失性和非易失性。易失性存储器装置可能需要用以保存数据的电力,而非易失性存储器能够在不存在电源的情况下保存数据。
差错码校正(ECC)引擎是通信信道、存储器中的普遍机制且为本领域的技术人员所熟知。ECC引擎是执行检测故障/差错并校正差错的过程以确保在发射/重复接收/检索期间的数据完整性的装置。
在基于存储器的集成芯片(IC)中,非易失性(NV)存储器对于存储用于产品配置的制造商数据且对于存储可由终端客户更新的用户数据可起重要作用。
另外,冗余位可与非易失性存储数据相关联从而作为常规机制确保数据完整性。这些冗余位可以是奇/偶校验位或差错码校正(ECC)位(例如1位校正、2位检测)。
US 2007/0061672A1公开一种具有差错检测的非易失性存储器,其中存储器装置中的差错检测电路可使用存储在存储器中的奇偶校验数据或ECC数据来操作,且其中差错检测的结果由存储器控制器接受以用于控制器的数据修复操作。
一般来说,这类IC中的全部或大部分可具有不同操作模式,如用户模式(具有最多限制且具有对存储器的受限访问)和测试模式(具有较小限制以用于调试且具体地说具有对存储器的完全访问)。因此,测试模式对于企图对芯片上的数据进行访问的黑客较有利可图。如果获得对测试模式的非有意访问,那么存储器中的任何关键配置或数据都可能易受攻击,这可能导致IC制造商的企业风险以及存储在集成电路上的终端客户个人数据的风险。
因此,可能需要一种用于防止来自计算***的存储器的未授权数据访问的方法且可能需要一种被配置成用于防止来自计算***的存储器的未授权数据访问的计算***,其中可以减少上述问题中的至少一些。
发明内容
根据本发明的一实施例,提供一种用于防止来自可以第一操作模式和至少一种第二操作模式操作的计算机***的存储器的未授权数据访问的方法,所述方法包括:以第一操作模式从存储器控制器请求存储在存储器区域中的净荷数据;通过存储器控制器从存储器区域检索净荷数据;通过存储器控制器从存储器区域检索与净荷数据相关的第二检查数据;根据第一检查机制检查使用第二检查数据的净荷数据失败,而根据第二检查机制对使用所述第二检查数据的净荷数据的检查通过。
具体地说,公开一种对于来自存储器对数据的访问的保护机制,其中***可适当地切换到多种预定义模式中的一种,从而保证数据/资产的安全且可在数据在遭到入侵之后被尝试非有意访问时触发复位。
所述方法可例如实施在硬件和/或软件中且可尤其在芯片上执行。计算***可包括台式计算机、笔记本计算机、蜂窝电话、智能手机、平板计算机、智能卡等。第一操作模式和第二操作模式可以是访问或登录到计算***的不同模式。当在第一操作模式中或在第二操作模式中时,可关于(不同用户或存储器区域的特定文件的)读取/写入/执行赋予不同权利。第一操作模式关于访问(如读取和/或写入和/或执行)计算***的存储器可具有相当小的限制,以使得第一操作模式尤其适用于测试计算***。
在已测试计算***之后且在将计算***传送到终端用户之后,所述计算***在正常条件下可仅以第二操作模式,例如用户模式运行。在此第二操作模式中,计算***可以不损害其基本功能或数据,这是因为在第二操作模式中,仅可使能或允许对存储器的受限访问。然而,潜在攻击者可设法以可允许对基本上整个存储器区域进行访问的第一操作模式登入到计算***中。攻击者可能对访问(具体地说读取)来自存储器区域的数据感兴趣,所述数据如用户数据、配置数据等。
为了防止未授权数据访问,本发明的实施例可使用与数据一起的奇偶校验/ECC位(一般还称为检查数据)以确保存储器内容的完整性,其中另外,奇偶校验/ECC位可连同数据一起反转且存储以增加数据鲁棒性。
净荷数据可例如包括用户数据、***操作数据、***配置数据、制造商数据等。可例如从未授权攻击者请求净荷数据。存储器区域可受存储器控制器控制且可使用或经由存储器控制器来执行对存储器区域的所有访问。存储器区域可包括若干区段,如用于净荷数据的区段和用于检查数据的至少一个区段。奇偶校验/ECC位(一般是任何种类的检查数据)可与数据一起使用以确保数据完整性。
检查数据可以表示可能已基于存储在存储器区域中的净荷数据且使用例如散列函数或校验和导出的冗余数据。当检查数据(具体地说第二检查数据)最初存储在存储器区域内时,其可能已从净荷数据中导出。第二检查数据可能已使用已应用于净荷数据的第二检查机制导出。因此,最初或先前,净荷数据可能已存储在存储器区域中,且另外,已使用第二检查机制从净荷数据中导出的第二检查数据可能已存储在存储器区域中。
第二检查机制可例如默认与第二操作模式相关联。然而,当攻击者以第一操作模式访问计算***或登录到计算***中时,默认地,不论何时存储器区域受到访问都可应用第一检查机制,例如当读取来自存储器区域的数据时。存储器控制器或一般来说计算***整体可被配置成应用特定检查机制,即取决于是处于第一操作模式还是处于第二操作模式而应用第一检查机制或第二检查机制。在特定操作模式与检查机制之间的此默认设定或默认关联可默认地提供,然而并非不包含此默认设定可以使用可能对攻击者来说未知的特定软件命令覆写的情况。
当使用第一检查机制处理净荷数据以产生对应检查数据时,这些检查数据并不与第二检查数据匹配(具体地说不等于第二检查数据),所述第二数据可能在于工厂中制造或配置计算***期间已存储在存储器区域中或在计算***的正常使用期间由终端用户存储。因此,根据第一检查机制使用第二检查数据来检查净荷数据会失败。然而,此失败并非由于存储器区域受损害而是由于未使用正确检查机制。然而,当对净荷数据使用第二检查机制来导出检查数据时,这些数据与第二检查数据相对应或相等。因为潜在攻击者并不了解第二检查机制且攻击者并不知道应用了第二检查机制来导出第二检查数据,所以由攻击者执行或触发的对净荷数据的读取将失败,这是因为对净荷数据应用第一检查机制(而非第二检查机制)且将结果与最终失败的第二检查数据进行比较。
所述失败可向用户指示或可阻断计算***的特殊(或所有)功能或甚至可以复位计算***。因此,攻击者不能访问计算***的存储器。
根据本发明的一实施例,当在第一操作模式中时,计算***(具体地说存储器控制器)被默认地配置成根据第一检查机制检查净荷数据,其中当在第二操作模式中时,计算***(具体地说存储器控制器)被默认地配置成根据第二检查机制检查净荷数据。
可使用对攻击者来说未知的特定命令改变默认。可存在超过两种检查机制且所述检查机制中的每一种可与一个或多个操作模式相关联。待使用的特定检查机制可能不仅取决于操作模式,而且可取决于特殊调用命令或可取决于哪一存储器区域被尝试访问且可取决于其它准则。
根据本发明的一实施例,计算***包括存储用于存储器控制器的配置的至少一种寄存器,所述配置为:当在第一操作模式中时将使用第一检查机制,以及当在第二操作模式中时将使用第二检查机制。
寄存器可例如在存储器控制器与***设备和/或时钟/复位机制之间配置或包括***总线。试图访问存储器的任何软件(在存储器控制器的控制下)可能都需要通过***总线,所述***总线也可被视为软件与硬件之间的边界。当第一操作模式默认地使用第一检查机制且第二操作模式默认地使用第二检查机制时,可有利地禁止或至少减少未授权访问。
至少一个寄存器提供简单实施方案以当在第一操作模式中时应用第一检查机制且当在第二操作模式中时应用第二检查机制。举例来说,至少一个寄存器可包括使第一操作模式与第一检查机制相关联且使第二操作模式与第二检查机制相关联的关联表。在其它实施例中,操作模式与检查模式之间不存在关联。
根据本发明的一实施例,第一检查机制被配置成从净荷数据导出第一检查数据,其中第二检查机制被配置成从净荷数据导出第二检查数据,其中在至少一个位转换或多个位转换或所有位转换或具体地说包括“AND)”和/或“OR”的更多逻辑运算和/或在位对上的类似运算中的一种中,第一检查数据不同于第二检查数据。
第一以及第二检查机制可应用确定性计算以从净荷数据导出对应检查数据。此可涉及应用散列函数或形成校验和等。具体地说,第二检查数据可以是第一检查数据的反转形式,即其中所有位已反转,将“0”设定成“1”且将“1”设定成“0”。可替换的是,所述位中的仅一些可反转且其它位可能不变。任何双射函数或映射可应用于从第一检查数据导出第二检查数据,且反之亦然。由此,可提供所述方法的简单实施方案。
根据本发明的一实施例,第一检查机制与第二检查机制两者包括相同散列函数和/或校验和算法,但存储应用不同转换和/或修改之后的结果。当两种检查机制(即第一和第二检查机制)包括相同散列函数和/或校验和算法时,方法可进一步简化。转换和/或修改可包括例如上文已解释的单个位反转或多个位反转。
根据本发明的一实施例,请求净荷数据与特异性针对第一操作模式的具体命令相关。相较于第二操作模式,第一操作模式可具有可供使用的较多命令。特定额外命令可与特定检查模式相关。因此,不论何时调用可涉及从存储器访问一些净荷数据的额外命令的特定命令,都可应用(命令)相关检查机制。由此,可提供较高柔性且可进一步降低对未授权攻击的防护。使用请求或访问净荷数据的命令仅仅是本发明在本发明的智能卡IC中的例子用途,因为所述IC必须基于命令与读取器交互。然而,一般来说,可在具有或不具有命令的情况下访问净荷。
根据本发明的一实施例,净荷数据包括操作***图像的至少部分,针对所述操作***图像的至少一部分已根据第二检查模式确定并存储第二检查数据。操作***图像可能已使用或应用例如第二检查机制存储在存储器(具体地说EEPROM)中,从而将第二检查数据作为冗余数据存储在存储器中。净荷数据可包括例如配置数据、用户数据或默认用户数据等其它数据,所述其它数据可能已在制造期间或在传送到终端客户之前或之后存储在存储器中。当在第二操作模式中时,潜在攻击者可能由于操作***所赋予的限制而不具有访问整个存储器的权限,因此,所述攻击者会试图以第一操作模式侵入***。然而,读取净荷数据中的任一个都可能会失败,因为所述净荷数据最初已使用第二检查机制写入。
根据本发明的一实施例,检查数据包括差错校正位和/或检测位,具体地说是ECC位和/或/校验位。差错校正位和/或检测位可适用于校正差错或至少检测差错。差错码校正(ECC)位以及奇偶校验位通常已知且提供可靠检测/校正能力。
根据本发明的一实施例,第一操作模式与第二操作模式关于存储器访问具有不同限制,其中第一操作模式具体地说是具有较小限制的测试模式,具体地说具有对存储器区域的完全访问,其中第二操作模式具体地说是具有对存储器的受限访问的限制的用户模式。
在计算***已传送到终端客户之后,所述计算***在正常操作条件下仅可以第二操作模式(如用户模式)操作。在用户模式中,可禁止对基本***数据(如操作(operating/operation)***数据)的访问。由此,可进一步防止计算***受损害。
根据本发明的一实施例,提供至少一种(或甚至超过一种,如2、3、4或甚至更多种)第三检查机制,所述第三检查机制可以不同于第一检查机制以及第二检查机制。不同检查机制可能已在计算***的制造或初始配置期间或在由终端用户正常使用计算***期间应用,且可例如特异性针对不同存储器区域或特定针对具体***命令。由此,可提供另外的防护。
根据本发明的一实施例,存储器包括非易失性存储器,具体地说是EEPROM。存储器可包括其它类型的存储器,如ROM、RAM或类似物。
根据本发明的一实施例,计算***被配置成在一或多次失败,具体地说是一或多次多位故障之后执行复位。由此,可有效地禁止潜在攻击者读取关键净荷数据,如用户数据或***数据。
应理解,在用于防止来自计算***的存储器的未授权数据访问的方法的上下文中,独立地或以任何组合公开、描述或解释的特征也独立地或以任何组合应用于根据本发明的实施例的计算***,且反之亦然。
根据本发明的一实施例,提供一种可以第一操作模式和至少一种第二操作模式操作且被配置成用于防止来自计算***的存储器的未授权数据访问的计算***,所述计算***包括:存储器区域;存储器控制器,其被配置成:从存储器区域检索当在第一操作模式中时所请求的净荷数据;从存储器区域检索与净荷数据相关的第二检查数据;根据第一检查机制检查使用第二检查数据的净荷数据,从而检测到失败,而在根据第二检查机制对使用第二检查数据的净荷数据的检查通过。
根据本发明的一实施例,计算***被配置为智能卡。
此外,提供一种程序元件(例如以Java、C、C++、perl、phyton等写入),所述程序元件在由处理器执行时适用于控制或实施前述实施例中的一个的方法。
此外,提供一种计算机可读介质(例如CD、快闪存储器、嵌入式存储器等),其中存储有计算机程序,所述计算机程序在由处理器执行时适用于控制或实施前述实施例中的一个的方法。
附图说明
本发明将在下文中参考实施例的例子更详细地描述,但本发明不限于所述例子。
图1示意性地示出根据本发明的一实施例的计算***,所述计算***被配置成实施用于防止来自根据本发明的一实施例的存储器的未授权数据访问的方法;
图2示意性地示出用于防止来自根据本发明的一实施例的存储器的未授权数据访问的方法的流程图;且
图3示意性地示出用于防止来自根据本发明的另一实施例的存储器的未授权数据访问的方法的流程图。
具体实施方式
图式中的图示为示意性的。在不同图式中,使用类似或相同附图标号来表示类似或相同的元件。
根据本发明的一实施例示意性地示出在图1中的计算***1可以第一操作模式和至少一种第二操作模式操作,且被配置成用于防止来自计算***的存储器的未授权数据访问。由此,计算***包括其中可存储如净荷数据和/或检查数据的数据存储器区域3。在所示出的实施例中,存储器区域包括ROM 5、EEPROM/快闪7以及RAM9。
计算***1另外包括控制对存储器区域3的访问的存储器控制器11。具体地说,存储器控制器11包括控制ROM 5的ROM控制器13、控制RAM 9的RAM控制器15以及控制EEPROM/快闪7的EEPROM控制器17。具体地说,EEPROM控制器17包括如下文将更详细地解释的实施第一检查机制和第二检查机制的数据检查模块19。
存储器控制器11被配置成当在第一操作模式中时从存储器区域3检索所请求的净荷数据,从存储器区域3检索与净荷数据相关的第二检查数据,且根据第一检查机制(包括在数据检查模块19中)检查使用第二检查数据的净荷数据,从而检测到失败,而根据第二检查机制(包括在数据检查模块19中)对使用第二检查数据的净荷数据的检查通过。
数据检查模块19也可称作ECC块,其指示ECC引擎。当软件配置对应SFR时,EEPROM控制器17适当地设定ECC模式,其中SFR指主要用于在软件与硬件之间同步交换的特殊功能寄存器。
在从/向EEPROM7读取/写入时,EEPROM控制器17负责适当ECC模式。根据本发明的一实施例,假定ECC位(例如作为检查数据)与存储器区域3,具体地说是非易失性存储器区域3中的数据相关。本发明的实施例在对软件代码规模和***性能的影响极小但对保护非易失性存储器(如存储器区域3)中的数据/资产改进巨大的情况下提供简单且有效的机制。本发明的实施例可通过维持如正常ECC模式(例如第一检查机制)和反转ECC模式(例如第二检查机制)的至少两种模式以用于ECC位操控(即第一检查机制和至少一种第二检查机制)来保护存储器内容。
计算***另外包括全部位于数字块16内的CPU 20、***总线2、时钟/复位模块4、***设备6。数字块与模拟块8通信。包括操作***12和固件14的软件8也与数字块16通信。
图2示意性地示出用于防止来自根据本发明的一实施例的存储器的未授权数据访问的方法21的流程图。方法21通过以第一操作模式从存储器控制器11请求23存储在存储器区域3中的净荷数据开始。方法继续到通过存储器控制器11从存储器区域3检索25净荷数据。在下一步骤27中,从存储器区域3中检索与净荷数据相关联的第二检查数据。在最后的方法步骤29中,根据第一检查机制来检查使用第二检查数据的净荷数据,进而失败,而根据第二检查机制对使用第二检查数据的净荷数据的检查通过。
图3示出用于防止来自根据本发明的另一实施例的存储器的未授权数据访问的方法的流程图。方法流程31开始于复位33,其中如图1中所示的计算***1的计算***复位。在以反转ECC模式准备EEPROM图像之后,执行复位。因此,操作***图像存储在EEPROM 7上,且第二检查数据使用或应用第二检查机制导出且还写入到存储器3。此外,硬件被配置以便当在存储器读取中检测到多位故障时触发复位。因此,硬件以使得如果在从非易失性存储器读取的数据上检测到多位故障,那么其应导致***复位的此方式设计。
方法继续到启动开始35继而是操作模式决策37,其中在方块39中检查硬件状态且在方块41中执行存储器配置检查。在潜在黑客访问***时,其也能够通过图3中所示的方法流程31的步骤33到41运行。
在***启动(start-up/boot)程序期间,如果程序流程进入用户模式(例如第一操作模式)(决策框43),那么软件应将硬件配置成使得以如在框45中所指示的反转ECC模式(例如第一检查机制)访问存储器。此可与存储在前述步骤中的非易失性图像匹配且导致成功存储器读取47。
如果不进入用户模式,那么其便分支到框49,其中执行复位或执行集成电路的冻结。
然而,如果程序流程进入决策框51中的测试模式(例如第一操作模式),那么软件应将硬件配置成使得以如在框53中所指示的正常ECC模式(例如第一检查机制)访问存储器,所述正常ECC模式可与第一检查机制相对应。在不切换到反转ECC模式(即第二检查机制)的情况下,将导致***复位55,因为存储器在框54中读取失败。
如果攻击者设法利用一些故障注入机制进入测试模式,那么所有步骤33到55将导致“傻瓜陷阱”,这是因为攻击者并不了解ECC位操控的两种模式。由此,攻击者不能读取非易失性存储器数据且不易于暴露安全资产。
在常规***中,当在用户模式中或在测试模式中时,将使用相同检查机制以使得攻击者将不会遭遇在框54中的存储器读取失败,因为框53当在用户模式中时将也如框45执行例如反转ECC模式。在图3中,存储器读取失败54为攻击者提供阻碍或禁止所述攻击者以防止其它数据访问,从而形成一种简单的防火墙。
本发明的实施例可在对软件代码规模和***性能的影响极小,但却获得巨大改进且保护非易失性存储器中的数据/资产的情况下提供简单机制。因为本发明的实施例可用于所有基于非易失性存储器的产品中,所以本发明的实施例提供巨大市场潜能。本发明的实施例可易于延伸到不同类型的非易失性存储器,如ROM、EEPROM、快闪。
实施例也可延伸到易失性存储器但需要谨慎评估,这是因为易失性数据可能充当地址指针或全局/局部变量。本发明的实施例在谨慎评估的情况下可延伸到特定***设备/协处理器。
本发明的实施例防止来自特定存储器/***设备的数据访问(通过触发***复位)。实施例并不阻碍对其它***设备/协处理器的访问,且因此这种访问可用于经由一些预定义测定命令来检测侵犯。
反转ECC仅仅是提供不同检查机制的例子。反转可由逻辑运算的任何其它组合替换。
尽管已作为例子使用ECC的两种模式解释了实施例,但其可易于延伸到给定IC支持的任意数目种模式。
尽管作为例子特征使用ECC解释了实施例,但其可易于延伸到对于最终产品所必须但在调试/实验室验证期间可禁用的任何产品特征。
本发明的实施例可与对于终端用户不可访问的任何测试模式(例如第一操作模式)特定命令相关。在使用这些测试命令之前,可适当地切换在前述优点中所提及的对应特征。
尽管作为例子使用非易失性存储器解释了实施例,但本发明的实施例可易于应用或延伸到不同种类的存储器,如RAM、ROM快闪、…等。
本发明的实施例从***视角以较高特权模式(测试模式)解决未授权数据访问(例如通过黑客)的问题。

Claims (9)

1.一种用于防止来自以第一操作模式和至少一种第二操作模式操作的计算***的存储器区域的未授权数据访问的方法,其特征在于,第一操作模式与第二操作模式关于存储器访问具有不同限制,其中第一操作模式具体地说是比起第二操作模式具有较小限制的测试模式,其中第二操作模式具体地说是具有对存储器的受限访问的限制的用户模式,所述方法包括:
通过存储器控制器根据第二检查机制将净荷数据和相关联的第二检查数据写入存储器区域;
以所述第一操作模式从存储器控制器请求存储在存储器区域中的净荷数据;
通过所述存储器控制器从所述存储器区域检索所述净荷数据;
通过所述存储器控制器从所述存储器区域检索与所述净荷数据相关联的第二检查数据;
在所述第一操作模式中,根据第一检查机制检查使用所述第二检查数据的所述净荷数据,从而检测到失败;
在所述第二操作模式中,根据第二检查机制检查使用所述第二检查数据的所述净荷数据,从而检查到通过;
其中,所述第一检查机制不同于所述第二检查机制。
2.根据权利要求1所述的方法,其特征在于,
其中当在所述第一操作模式中时,所述存储器控制器被默认地配置成根据第一检查机制检查所述净荷数据,
其中当在所述第二操作模式中时,所述存储器控制器被默认地配置成根据第二检查机制检查所述净荷数据。
3.根据在前的权利要求中任一项权利要求所述的方法,其特征在于,
其中所述计算***包括存储用于所述存储器控制器的配置的至少一种寄存器,所述配置为:当在所述第一操作模式中时将使用所述第一检查机制,以及当在所述第二操作模式中时将使用所述第二检查机制。
4.根据权利要求1所述的方法,其特征在于,
其中所述第一检查机制被配置成从所述净荷数据导出第一检查数据,
其中所述第二检查机制被配置成从所述净荷数据导出所述第二检查数据,
其中在至少一个位转换或多个位转换或所有位转换或包括“AND”和/或“OR”的更多逻辑运算中,所述第一检查数据不同于所述第二检查数据。
5.根据权利要求1所述的方法,其特征在于,
其中所述第一检查机制与所述第二检查机制都包括相同散列函数和/或校验和算法,但存储应用不同转换和/或修改之后的结果。
6.根据权利要求1所述的方法,其特征在于,
其中所述请求所述净荷数据与针对所述第一操作模式的具体命令相关。
7.根据权利要求1所述的方法,其特征在于,
其中所述净荷数据包括操作***图像的至少一部分,针对所述操作***图像的至少一部分已根据所述第二检查机制确定并存储所述第二检查数据。
8.一种计算机可读介质,其特征在于,其中存储有计算机程序,所述计算机程序在由处理器执行时适用于控制或实施在前的权利要求1到7中任一项权利要求所述的方法。
9.一种计算***,以第一操作模式和至少一种第二操作模式操作且被配置成用于防止来自所述计算***的存储器区域的未授权数据访问,其特征在于,第一操作模式与第二操作模式关于存储器访问具有不同限制,其中第一操作模式具体地说是比起第二操作模式具有较小限制的测试模式,其中第二操作模式具体地说是具有对存储器的受限访问的限制的用户模式,所述计算***包括:
存储器区域;
存储器控制器,其被配置成:
根据第二检查机制将净荷数据和相关联的第二检查数据写入存储器区域;
从所述存储器区域检索所请求的净荷数据;
从所述存储器区域检索与所述净荷数据相关联的第二检查数据;
在所述第一操作模式中,根据第一检查机制检查使用所述第二检查数据的所述净荷数据,从而检测到失败;
在所述第二操作模式中,根据第二检查机制检查使用所述第二检查数据的所述净荷数据,从而检查到通过;
其中,所述第一检查机制不同于所述第二检查机制。
CN201811042641.8A 2017-09-08 2018-09-07 用于防止来自存储器的未授权数据访问的方法 Active CN109472172B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17190154.9 2017-09-08
EP17190154.9A EP3454216B1 (en) 2017-09-08 2017-09-08 Method for protecting unauthorized data access from a memory

Publications (2)

Publication Number Publication Date
CN109472172A CN109472172A (zh) 2019-03-15
CN109472172B true CN109472172B (zh) 2023-09-08

Family

ID=59856390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811042641.8A Active CN109472172B (zh) 2017-09-08 2018-09-07 用于防止来自存储器的未授权数据访问的方法

Country Status (3)

Country Link
US (1) US10846421B2 (zh)
EP (1) EP3454216B1 (zh)
CN (1) CN109472172B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018122826A1 (de) * 2017-09-21 2019-03-21 Samsung Electronics Co., Ltd. Vorrichtung zum Unterstützen eines Fehlerkorrekturcodes und Testverfahren dafür
JP7332529B2 (ja) * 2020-04-21 2023-08-23 株式会社東海理化電機製作所 異常検出装置
CN114911740B (zh) * 2022-06-02 2024-06-28 中国长城科技集团股份有限公司 PCIe拆分方法、装置、电子设备及可读存储介质
KR20240010144A (ko) * 2022-07-15 2024-01-23 에스케이하이닉스 주식회사 메모리, 메모리 모듈, 메모리 시스템 및 메모리 시스템의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357529A (en) * 1992-04-24 1994-10-18 Digital Equipment Corporation Error detecting and correcting apparatus and method with transparent test mode
CN1571069A (zh) * 2003-02-07 2005-01-26 株式会社瑞萨科技 非易失性存储***
CN104063641A (zh) * 2014-06-23 2014-09-24 华为技术有限公司 硬盘安全访问控制方法和硬盘
US8996957B1 (en) * 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3871471B2 (ja) * 1999-07-12 2007-01-24 松下電器産業株式会社 Ecc回路搭載半導体記憶装置及びその検査方法
FR2884329A1 (fr) * 2005-04-11 2006-10-13 St Microelectronics Sa Protection de donnees d'une memoire associee a un microprocesseur
US7523381B2 (en) 2005-09-01 2009-04-21 Micron Technology, Inc. Non-volatile memory with error detection
JP4469783B2 (ja) * 2005-11-28 2010-05-26 株式会社東芝 メモリ保護装置、メモリ保護システムおよびメモリ保護方法
US8706914B2 (en) * 2007-04-23 2014-04-22 David D. Duchesneau Computing infrastructure
US8428929B2 (en) * 2010-09-30 2013-04-23 Intel Corporation Demand based USB proxy for data stores in service processor complex
JP5464226B2 (ja) * 2012-03-30 2014-04-09 富士通株式会社 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
AU2014205389A1 (en) * 2013-01-11 2015-06-04 Db Networks, Inc. Systems and methods for detecting and mitigating threats to a structured data storage system
CN103209174B (zh) * 2013-03-12 2016-03-30 华为技术有限公司 一种数据防护方法、装置及***
US9369150B2 (en) * 2014-07-29 2016-06-14 Freescale Semiconductor, Inc. Data storage device and method for protecting a data item against unauthorized access
US10218387B2 (en) * 2017-05-08 2019-02-26 Silicon Laboratories Inc. ECC memory controller supporting secure and non-secure regions
US10389379B2 (en) * 2017-05-12 2019-08-20 Qualcomm Incorporated Error correcting code testing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357529A (en) * 1992-04-24 1994-10-18 Digital Equipment Corporation Error detecting and correcting apparatus and method with transparent test mode
CN1571069A (zh) * 2003-02-07 2005-01-26 株式会社瑞萨科技 非易失性存储***
US8996957B1 (en) * 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
CN104063641A (zh) * 2014-06-23 2014-09-24 华为技术有限公司 硬盘安全访问控制方法和硬盘

Also Published As

Publication number Publication date
US10846421B2 (en) 2020-11-24
US20190080111A1 (en) 2019-03-14
CN109472172A (zh) 2019-03-15
EP3454216B1 (en) 2020-11-18
EP3454216A1 (en) 2019-03-13

Similar Documents

Publication Publication Date Title
CN109472172B (zh) 用于防止来自存储器的未授权数据访问的方法
JP5114617B2 (ja) 秘密鍵を保護する、セキュア端末、プログラム、および方法
US6986006B2 (en) Page granular curtained memory via mapping control
US8156317B2 (en) Integrated circuit with secure boot from a debug access port and method therefor
US20070266214A1 (en) Computer system having memory protection function
US20090055906A1 (en) Method and apparatus for embedded memory security
US8055989B2 (en) Boot security using embedded counters
US8639946B2 (en) System and method of using a protected non-volatile memory
US9262631B2 (en) Embedded device and control method thereof
US8195946B2 (en) Protection of data of a memory associated with a microprocessor
JP6518798B2 (ja) 安全な集積回路状態を管理する装置およびその方法
CN112086119B (zh) 存储器设备
CN112948863B (zh) 敏感数据的读取方法、装置、电子设备及存储介质
US10691586B2 (en) Apparatus and method for software self-test
US11113399B2 (en) Electronic apparatus and control method of electronic apparatus
US7688637B2 (en) Memory self-test circuit, semiconductor device and IC card including the same, and memory self-test method
US7806319B2 (en) System and method for protection of data contained in an integrated circuit
CN112015582B (zh) 自修正存储器***、提供错误修正至存储器内容的方法
CN111625784B (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
GR01 Patent grant
GR01 Patent grant