CN109901793B - 存储器安全装置及其方法 - Google Patents

存储器安全装置及其方法 Download PDF

Info

Publication number
CN109901793B
CN109901793B CN201810972166.8A CN201810972166A CN109901793B CN 109901793 B CN109901793 B CN 109901793B CN 201810972166 A CN201810972166 A CN 201810972166A CN 109901793 B CN109901793 B CN 109901793B
Authority
CN
China
Prior art keywords
data value
read
memory
allowed
address range
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
CN201810972166.8A
Other languages
English (en)
Other versions
CN109901793A (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.)
Nuvoton Technology Corp
Original Assignee
Nuvoton Technology Corp
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 Nuvoton Technology Corp filed Critical Nuvoton Technology Corp
Publication of CN109901793A publication Critical patent/CN109901793A/zh
Application granted granted Critical
Publication of CN109901793B publication Critical patent/CN109901793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices

Abstract

本发明提供了一种存储器安全装置及其方法,包含存储器、接口和读取限制逻辑。读取限制逻辑被配置为经由接口接收请求,以从存储器的特定地址读取数据值,于所述特定地址取得数据值时,当发现所述特定地址落入预定义受限地址范围时,检查所取得的数据值是否属于预定义的允许数据值群组,当所取得的数据值属于该组允许数据值群组时,用所取得的数据值来回应请求,否则,当所取得的数据值不属于该组允许数据值群组时,以用虚设数据值来回应该请求。

Description

存储器安全装置及其方法
技术领域
本发明大致上是涉及安全资料储存装置,更明确来说是涉及使用存储器读取限制实现存储器安全存取的方法和系统。
背景技术
在本领域中已知多种用于安全存取储存在存储器中的敏感信息的技术。例如,美国公开第2007/0237325号专利申请案描述了具有加密能力的装置,其含连接到微控制区块的安全系统。安全系统包含一个非易失性存储器和一个有限状态机。有限状态机管理装置以维持储存在非易失性存储器内的密钥中的内容安全,并防止藉由微控制区块内的计算机处理单元及/或装置的终端使用者存取密钥。
发明内容
在本文所描述的本发明实施例提供了一种存储器安全装置,该存储器安全装置包含存储器、接口和读取限制逻辑。读取限制逻辑被配置为经由接口接收请求,以从存储器的特定地址读取数据值,且由特定地址取得数据值时,当发现特定地址落入预定义受限制的地址范围内,则检查所取得的数据值是否属于预定义的一组允许数据值群组,当所取得的数据值属于允许数据值群组时,用所取得的数据值来回应请求;以及,否则,当所取得的数据值不属于该组允许数据值群组时,用虚设数据值来回应该请求。
在一些实施例中,该存储器安全装置进一步包含控制器,其被配置以运行第一软件程序,而允许第一软件程序从预定义为受限地址范围中读取任何数据值,以及仅于读取的数据值属于允许数据值群组时,允许在第一软件程序之后在处理器中运行的第二软件程序读取预定义受限地址范围中的数据值。
在一些实施例中,该存储器安全装置进一步包含控制器,其被配置以执行启动程序,在启动程序正在进行时禁止外部对存储器进行存取,并且在启动程序之后启动读取限制逻辑。
在一个实施例中,读取限制逻辑被配置以从(i)装置中的内置自我测试(BIST)模块及(ii)外部测试器中的一个接收请求。在例示性实施例中,允许数据值群组包含用于测试存储器的测试值。在所述的实施例中,读取限制逻辑被配置为回应于检测到(i)特定地址落入预定义受限地址范围中,并且(ii)所取得的数据值不属于允许数据值群组,而发起回应动作。
在一个实施例中,在一替代安全机制失效时,读取限制逻辑被配置为只有在所读取的数据值属于允许数据值群组的情况下,才允许从预定义受限地址范围内读出数据值群组。在另一个实施例中,读取限制逻辑被配置为以不同的该虚设数据值回应来自相同的特定地址的多个个读取动作。在又一个实施例中,该装置包含附加读限制逻辑,其被配置为限制对附加预定义受限地址范围的存取,其中读限制逻辑及附加的读限制逻辑是由不同的软件层控制。
根据本发明的实施例,另外提供了一种方法,该方法在包含存储器的装置中,接收从存储器的特定地址读取数据值的请求。当从特定地址取得数据值时,一旦发现特定地址落入预定义受限地址范围中,则检查所取得的数据值是否属于预定义的允许数据值群组。当取得的数据值属于允许数据值群组时,用所取得的数据值对请求进行回应。否则,当取得到的数据值不属于允许数据值群组时,用虚设数据值来回应请求。
附图说明
本发明将从下列与图式及其实施例一同的详细描述中被更充分的理解,其中:
图1是根据本发明实施例示意性地绘制安全电子装置的方块图;以及
图2是根据本发明的一个实施例示意性地绘制出使用读取限制于存储器安全装置的方法的流程图。
附图标号:
20:装置
24:存储器
28:主机接口
32:测试接口
36:控制器
40:启动软件(启动器)
44:多工器(MUX)
48:受限地址范围
52:硬件模块
56:读取限制逻辑
60、64、68、72、76、80、84:步骤
具体实施方式
概述
本文描述的本发明的实施例提供改良用于保护储存在存储器中的秘密信息的方法和系统。具体而言,所公开的技术能够测试储存秘密信息的存储器,而不损害测试品质或数据安全性。
在一些实施例中,安全电子装置包含存储器,其中指定某个地址范围(受限地址范围)用于储存诸如密钥的秘密信息。该装置包含测试接口,测试仪经由测试接口发出用于测试存储器的写入和读取请求。藉由测试接口接收到的一些读取请求可指定落入受限地址范围内的地址。除非妥善处理,否则回应这些请求可能会导致秘密信息的泄露。
为了减轻这种安全危害,在一些实施例中,该装置包含读取限制逻辑,该读取限制逻辑监视经由测试接口到达的读取请求,并且选择性地加以回应。一旦接收到其地址落入受限地址范围内的读取请求,读取限制逻辑撷取所请求的数据值并检查数据值是否属于预定义允许数据值群组。
允许数据值通常包含用于测试和开发的一小组数据值(每个数据单位)。例如,对于8位数据单元(位元组),可考虑0x00,0xAA和0xFF等十六进制值。其假设仅有合法的测试程序会使用这些数据值。如果所取得的数据值是允许值之一,则读取限制逻辑以此数据值回应请求。如果不是,读限制逻辑以一些虚设值来回应请求。
使用这种技术时,如果一系列读取请求尝试取得秘密信息,则大多数取得到的数据值可能不属于允许数据值群组。因此,读取限制逻辑将阻挡这些读取请求并返回虚设值。于此同时,作为真正测试过程一部分的合法读取请求不会被阻止,因为它们请求的数据值属于允许数据值群组。一般情况下,无论取得到的数据值如何,指定受限地址范围以外的地址的读取请求都不会被阻止。
本文描述了利用上述读取限制技术的安全电子装置的例示性配置。一些所述的配置使用安全启动程序来初始化读取限制逻辑。
系统描述
图1是根据本发明的实施例示意性绘制安全电子装置20的方块图。装置20包含存储器24,例如包含一个或多个快闪存储器装置的非易失性存储器(NVM)。装置20进一步包含控制器36,其管理装置的整体操作,包含在存储器24中的数据的储存。启动软件40,简称为“启动器(booter)”,其执行启动控制器36的启动(boot)过程,例如,在开机或重置时。一般会将至少第一部分的启动程序代码储存在装置20内部的ROM或其他形式的不可变(immutable)存储器中。
装置20可包含具有内部NVM和控制器的任何合适类型的电子装置。一个典型的例子是安全装置。安全装置的几个非限制性实例包含信任平台模块(TPM)、例如用于打印机墨盒防伪的认证集成电路(IC)、智慧卡、移动装置订购者身份模块(SIM)、销售点控制器等。
在本实例中,装置20包含两个接口,包含主机接口28和测试接口32。控制器36使用主机接口28而与主机(未图示)沟通,使用主机接口28来与装置20沟通。例如,装置20可为信任平台模块(TPM),并且主机可按照信任计算组(TCG)所定义的与其沟通。在另一个实例中,装置20可为储存装置,其支持在允许其存取存储器24的至少一部分之前与主机进行认证。如果允许,主机可使用主机接口来发送数据以储存在存储器24中,并提取先前已储存在存储器24中的数据,但是它永远不会具有对受限地址范围48的非限制读取。装置20可使用受限区域,例如用于储存用于验证和自我保护的密钥。
测试接口32用于测试装置20,而装置20可包含存储器24以及其他可能用于装置的元件。测试接口32在图中绘制为外部接口,例如用于连接到外部测试器或如JTAG或UART连接端的除错接口。然而,附加地或替代地,测试接口32可连接到装置20内的内部自我测试(BIST)模块。多工器(MUX)44经由读取限制逻辑56将接口28和32连接到存储器24。
在一些实施例中,存储器24的地址空间内的某些地址范围48被预定义为受限地址。该地址范围用于储存如密钥的秘密信息。储存在受限地址范围48中的信息可受各种元件,例如藉由硬件模块52(例如,加密引擎)或藉由控制器36中的启动器40存取。
为了妥善测试存储器24,一般希望允许经由测试接口32存取存储器。具体而言,希望允许存取受限地址范围48。除非正确管理,否则此类外部存取存在严重的安全危害。在本发明的一些实施例中,装置20包含读取限制逻辑56,其保护装置免受对受限地址范围48的未授权存取。读取限制逻辑56的操作在下文中详述。
图1所示的装置20的配置是纯粹为了概念清晰而示出的实例配置。在替代实施例中,可使用任何其他合适的配置。例如,存储器24可包含任何其他合适类型的易失性和/或非易失性存储器。作为另一个例子,主机接口28和测试接口32的功能可被组合在单一接口中。
作为又一个实例,装置20可包含存取在受限地址范围48中的信息的任何其他合适的类型的硬件模块52。在一些实施例中,装置20甚至可完全不包含直接连接的硬件模块52。在一些实施例中,存储器24和硬件模块52之间没有直接连接,启动器40可在启动时间内将受限地址范围48中的相关数据复制到硬件模块,例如复制到只写寄存器中。
在图1的示例配置中,硬件模块52直接连接到存储器24(即,不经由读取限制逻辑56)。然而,此配置不是强制性的,且硬件模块可经由读取限制逻辑替代地被连接到存储器。如果加密引擎如图1所示为直接连接,则应该强制执行某些限制:
■不受限制的数据不应暴露于控制器36的软件、固件或经由加密引擎的任何测试或除错功能。
■加密引擎可使用不受限制的数据,但应该保证不受限制的数据无法从加密引擎的输出中推导。
■一般而言,启动器40和装置20应确保在进入暴露模块内部的测试模式(例如,扫描或可观察性测试)之前,加密引擎中不存在不受限制的数据。例如,可藉由在启用测试模式之前删除数据,或者藉由在数据进入密码模块之前禁用测试模式来满足此条件。
典型地,装置20的各个元件(例如,存储器24,读取限制逻辑56,硬件模块52,MUX44和/或控制器36)被制造成几乎不可能将它们彼此分开并且获得对它们之间的接口的存取。在一个实施例中,装置20的各种元件可制造在相同的集成电路(IC)封装中或者在相同的硅芯片上。为了清楚起见,从图中省略了对于理解所述的技术不必要的元件。
在各种实施例中,图1中所示装置20的不同元件可使用任何合适的硬件来建置,诸如在特殊应用集成电路(ASIC)或现场可编程门阵列(FPGA)中。或者,装置20的一些功能,如控制器36的功能,可用软件或者使用软件和硬件元件的组合来建置。
在一些实施例中,控制器36包含通用处理器,其可在软件中编写以执行本文所述的功能。软件可经由网络或从主机以电子形式下载到处理器,例如,或其可替代的或附加的被提供和/或储存在如磁性、光学、以及电子存储器的非暂时性的有形介质上。
使用读限制的存储器安全装置。
在一些实施例中,读取限制逻辑56能够对存储器24进行全面测试,包含受限地址范围48,而不损害当前或未来储存在其中的任何秘密信息的安全性。
在一个实施例中,存储器24藉由将某些数据值写入存储器,从存储器读取数据值,以及验证读取的数据值与写入的值匹配来进行测试。典型地,虽然非必须,选择用于测试的数据值以切换所有存储器位元。例如,诸如0x00、0Xff、0x55及0xAA的8位元数据值可作为用于测试的合适的数据值。
换言之,用于测试的数据值通常取自预定义的一组数据值。该组数据值通常很小,意思是其由,相较于所有可能数据值的集合,更少的数据值组成。在上面的例子中,其指的是8位元数据值,在256个可能的数据值0x00-0xFF中,只有四个数据值(0x00、0xFF、0x55和0xAA)用于测试。注意到也可使用除8位元数据单元之外的数据单元(例如,16位或32位数据单元)。
在一些实施例中,装置20实际上使用如下:用于测试的数据值取自预定义的一组数据值(并且通常是一小组数据值)中,以保护储存在存储器24中的秘密信息。
在一个实施例中,读取限制逻辑56预先配置有用于测试的一组数据值。该组也被称为“受限数据范围”或“允许数据值群组”-所有在本文中的这些术语可互换使用。
如在图1可见,读取限制逻辑56(例如藉由控制器36)预先配置有(i)受限地址范围48的定义和(ii)受限数据范围的定义,即允许数据值群组。
当经由测试接口32接收到请求,以从受限地址范围48中的特定地址读取数据值时,读取限制逻辑56撷取所讨论的数据值并检查所取得的数据值是否为用于测试的允许值的其中之一。如果是,则读取限制逻辑56藉由在如所请求的测试接口32上输出数据值来回应该请求。如果不是,则读取限制逻辑56藉由输出一些虚设数据值来回应该请求。
以这种方式,只要在测试过程中写入及读回的数据值全部取自该组允许值中,一般测试可覆盖存储器24包含受限地址范围48的整个地址空间。即使存储器包含秘密信息,也可执行这种测试。如果经由测试接口32接收到的读取请求试图读取任何秘密信息,大部分所取得的数据值将不属于该组允许值,并且将触发读取限制逻辑56以虚设数据值进行回应。因此,有效地减轻了在测试界面上以任何可用形式输出秘密信息的风险。在一个可能的实施例中,秘密信息本身以不包含用于测试的「允许值」的方式被格式化。
所述的技术亦使装置20的安全功能能够完整测试,例如加密引擎或存取存储器24中秘密信息的其他硬件模块的安全功能。在例示性实施例中,控制器36或外部测试器可储存一个或多个在受限地址范围48中的“测试密钥”。测试密钥的功能类似于普通密钥,但由属于受限数据范围的数据值组成。这些密钥可以经由测试接口32自由读取。
注意,在一个实施例中,读取限制逻辑56可预配置为仅具有一些用于测试的数据值。例如,如果用于测试的数据值是0x00、0xFF、0x55以及0xAA,则仅用这些数据值中的三个(例如0x00、0xFF和0xAA)来预配置逻辑,并将虚设数据值设置为是第四个数据值(例如,0x55)就足够了。
图2是根据本发明的一个实施例示意性地示出使用读取限制用于存储器安全存取的方法的流程图。流程图的第一部分(步骤60和64)描述了控制器36以及整个装置20的启动过程。第二部分(步骤68-84)描述了装置20运作的正常模式。
注意,在正常模式下,支持测试和正常的读及写的操作,而无需切换到专用的测试模式。或者,如果藉由其他手段实施测试禁用保护(例如,藉由在生产中永久禁用测试功能),则所述的技术可作为“二道防线”应用,以防装置被非法地骗入测试启用模式或者恶意软件渗透到装置中的情况。
方法开始时(例如在电力开启或重置时),在启动步骤60中以启动器40藉由执行某些启动程序代码启动控制器36。作为启动程序的一部分,启动器40可在存储器24的受限地址范围48中存取秘密信息,例如对至少一部分启动程序代码签署的签章进行验证,和/或将密钥加载到密码加速器中。只要启动程序正在进行,启动器40通常阻挡经由主机接口28和测试接口32对存储器24的存取。
一旦启动程序完成,启动器40在限制启动步骤64启动读取限制逻辑56。在图1的实例中,启动器40使用表示为“限制读取”和“限制锁定”的两个信号来控制读取限制逻辑56。“限制读取”信号启动读取限制逻辑56,而“限制锁定”信号锁定“限制读取”信号,因此不可逆地启动限制直到下一次启动。在启动读取限制逻辑56之后,启动器40能够经由主机接口28和测试接口32存取存储器24。
在替代实施例中,“限制读取”和“限制锁定”信号的功能可使用执行启动和锁定的单一信号来实施。通常,受限地址范围和受限数据范围的数值可藉由启动器40配置和控制。当启动程序即将完成或者当测试模式即将被启用时,启动器40通常为随后的变化锁定这些数值。
在此阶段,在允许处理实际测试之前,控制器36通常检查是否启用测试模式。若否,阻挡测试模式存取直到下一个电源周期(例如,电力开启或重置)。若启用测试模式,则可进行该方法。上述限制(检查测试模式的启用)也可由装置20中的固件执行。在这种情况下,限制读取特定值的数据,于装置被非法开启测试模式的情境下,可作为“第二道防线”。
在稍后的某个时间点,在正常操作期间,装置20在读取请求步骤68中接收到读取请求(例如在测试接口32上)。读取请求指定存储器24中将被读取的数据值的地址。读取限制逻辑56从存储器24中的指定地址撷取数据值。
在地址检查步骤72,读取限制逻辑56检查特定地址是否属于受限地址范围48。如果特定地址不属于受限地址范围48,则读取限制逻辑56在数据输出步骤76中,例如通过测试接口32,如所请求的输出所取得的数据值。然后该方法返回到上面的步骤68。
如果特定地址属于受限地址范围48,则在数据检查步骤80,读取限制逻辑56检查所取得的数据值是否是允许数据值群组之一(受限制的数据范围)。如果是,则读取限制逻辑56在数据输出步骤76如请求的输出所取得的数据值。该方法返回到步骤68。
然而,如果逻辑56发现(在步骤80)所取得的数据值不是允许数据值群组之一,则读取限制逻辑56不输出所取得的数据值。取而代之地,读取限制逻辑56于输出步骤84处输出虚设数据值(例如在测试接口32上),并且该方法返回到上面的步骤68。在稍后的电力开启或重置事件的情况下,该方法在步骤60重新开始。
图2的方法流程是为了概念清晰起见而选择的实例流程。在替代实施例中,可使用任何其他合适的流程来实现所述的读取限制技术。
在一些实施例中,在步骤84,读取限制逻辑56可从一组多个个虚设值中选择一个虚设数据值,例如以随机的方式选择。在其他实施例中,读取限制逻辑56可就一个给定地址输出虚设数据值,而该虚设数值随逐次读取动作而改变。在例示性实施例中,读取限制逻辑56选择虚设数据值作为与秘密模糊钥匙(例如,使用轻量级加密算法)混合的地址的确定性函数。
在一些实施例中,在步骤80,当检测到未经授权的经由测试接口32读取在受限地址范围48中的秘密信息的意图时,读取限制逻辑56可发起适当的回应动作。例如,读取限制逻辑56可将任何非有效的读取值视为攻击意图。回应动作的实例可包含发出警报,关闭装置20中的一些或全部,阻止对存储器24或其部分的存取,和/或从存储器24中删除一些或全部秘密信息。
在上述实施例中,使用“限制读取(restrict read)”和“限制锁定(restrictlock)”机制,控制器36允许启动器40在启动程序期间存取受限地址范围48。对于稍后运行的软件程序,“限制读取”和“限制锁定”机制将限制为仅允许存取受限地址范围48内预定义的允许测试值群组。
因此,在本上下文中,术语“受限存取(restricted access)”是指仅当这些数据值属于所允许数据值群组的预定义子集时,才回传储存在特定地址中的实际数据值的读存取。相应地,“无限制存取(unrestricted access)”是指不论数据值为何,皆回传储存在特定地址中的实际数据值。
更一般地说,在一些实施例中,控制器36运行第一软件程序,允许第一软件程序存取预定义受限地址范围,但仅允许在第一软件程序之后在处理器中运行的第二软件程序,对预定义的受限地址范围内的受限存取。
在一些实施例中,存储器24包含多个个受限地址范围48,每个受限地址范围48与各别的读取限制逻辑56相关联。例如在此配置中,每个读取限制逻辑56可藉由不同的软件层控制。在例示性实施例中,在分层启动程序中依序地调用不同的软件层(每个软件层控制与不同受限地址范围48相关联的不同读取限制逻辑56)。这些软件层的一实例于England等人在2016年4月的微软研究技术报告MSR-TR-2016-18的“RIoT-信任物联网基金会”中描述。引用的文献描述了具有表示为L0、L1、L2和OS的软件层的分层启动程序。
可理解的是,上述实施例是作为实例引用的,并且本发明不限于上面已经特别示出和描述的内容。而是,本发明的范围包含上文描述的各种特征的组合和子组合,以及本领域技术人员在阅读前述描述时将会想到的并且未在现有技术中所述的变化及修饰。在本专利中,藉由引用并入的文件应被认为是说明书内容整体的一部分,除非在这些并入的文件中的名词与说明书内容明确揭示或隐含的定义相冲突,则应该仅考虑本说明书中的定义。

Claims (16)

1.一种存储器安全装置,其特征在于,包含:
一存储器;
一接口;及
一读取限制逻辑,其被配置为:
经由该接口接收一请求,以从该存储器的一特定地址读取一数据值;
由该特定地址取得该数据值;
当发现该特定地址落入一预定义受限地址范围内,检查所取得的该数据值是否属于预定义的一允许数据值群组;
当所取得的该数据值属于该允许数据值群组时,用所取得的该数据值来回应该请求;以及
当取得到的该数据值不属于该允许数据值群组时,用一虚设数据值来回应该请求;
更包含一控制器,其被配置以:
运行一第一软件程序;
允许该第一软件程序从该预定义为受限地址范围中读取任何该数据值;以及
仅于读取的该数据值属于该允许数据值群组时,允许在该第一软件程序之后在处理器中运行的一第二软件程序读取该预定义受限地址范围中的该数据值。
2.如权利要求1所述的存储器安全装置,其特征在于,更包含一控制器,该控制器被配置以执行一启动程序,在该启动程序正在进行时禁止外部对该存储器进行存取,并且在该启动程序之后启动该读取限制逻辑。
3.如权利要求1所述的存储器安全装置,其特征在于,该读取限制逻辑被配置以从该装置中的内置自我测试BIST模块及一外部测试器中的一个接收该请求。
4.如权利要求1所述的存储器安全装置,其特征在于,该允许数据值群组包含用于测试该存储器的测试值。
5.如权利要求1所述的存储器安全装置,其特征在于,该读取限制逻辑被配置为回应于检测到该特定地址落入该预定义受限地址范围中,并且所取得的该数据值不属于该允许数据值群组,而发起一回应动作。
6.如权利要求1所述的存储器安全装置,其特征在于,在一替代安全机制失效时,该读取限制逻辑被配置为只有在所读取的该数据值属于该允许数据值群组的情况下,才允许从该预定义受限地址范围内读出该数据值。
7.如权利要求1所述的存储器安全装置,其特征在于,该读取限制逻辑被配置为以不同的该虚设数据值回应来自相同的该特定地址的多个个读取动作。
8.如权利要求1所述的存储器安全装置,其特征在于,更包含一附加读取限制逻辑,该附加读取限制逻辑被配置为限制对一附加预定义受限地址范围的存取,其中该读取限制逻辑及该附加读取限制逻辑是由不同的软件层控制。
9.一种存储器安全方法,其特征在于,包含:
在包含一存储器的一装置中,接收从该存储器的一特定地址读取一数据值的一请求;
从该特定地址取得该数据值;
一旦发现该特定地址落入一预定义受限地址范围中,检查所取得的该数据值是否属于预定义的一允许数据值群组;
当所取得的该数据值属于该允许数据值群组时,用所取得的该数据值对该请求进行回应;以及
当取得到的该数据值不属于该允许数据值群组时,用一虚设数据值来回应该请求;
更包含:
运行一第一软件程序;
允许该第一软件程序从该预定义受限地址范围中读取任何该数据值;以及
仅于读取的该数据值属于该允许数据值群组时,允许在该第一软件程序之后运行的一第二软件程序读取该预定义受限地址范围中的该数据值。
10.如权利要求9所述的存储器安全方法,其特征在于,更包含:
执行一启动程序,在该启动程序正在进行时禁止外部对该存储器进行存取,以及在该启动程序之后启动对所取得的该数据值的该特定地址的检查。
11.如权利要求9所述的存储器安全方法,其特征在于,接收该请求包含接受来自装置中的内建自我测试BIST模块及外部测试器中的一者的该请求。
12.如权利要求9所述的存储器安全方法,其特征在于,该允许数据值群组包含用于测试该存储器的测试值。
13.如权利要求9所述的存储器安全方法,其特征在于,更包含回应于检测到该特定地址落入该预定义受限地址范围中并且所取得的该数据值不属于该允许数据值群组,而发起一回应动作。
14.如权利要求9所述的存储器安全方法,其特征在于,更包含:
在一替代安全机制失效时,仅在所读取的该数据值属于该允许数据值群组的情况下,才允许从该预定义受限地址范围内读出该数据值。
15.如权利要求9所述的存储器安全方法,其特征在于,对该请求的回应包含:
以不同的该虚设数据值回应来自相同的该特定地址的多个个读取动作。
16.如权利要求9所述的存储器安全方法,其特征在于,更包含在不同软件层的控制下,限制对该预定义受限地址范围的存取,以及限制对一附加预定义受限地址范围的存取。
CN201810972166.8A 2017-12-07 2018-08-24 存储器安全装置及其方法 Active CN109901793B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/834,087 US10318438B1 (en) 2017-12-07 2017-12-07 Secure memory access using memory read restriction
US15/834,087 2017-12-07

Publications (2)

Publication Number Publication Date
CN109901793A CN109901793A (zh) 2019-06-18
CN109901793B true CN109901793B (zh) 2022-06-10

Family

ID=66696911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810972166.8A Active CN109901793B (zh) 2017-12-07 2018-08-24 存储器安全装置及其方法

Country Status (4)

Country Link
US (1) US10318438B1 (zh)
JP (1) JP6771523B2 (zh)
CN (1) CN109901793B (zh)
TW (1) TWI691842B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11210238B2 (en) * 2018-10-30 2021-12-28 Cypress Semiconductor Corporation Securing data logs in memory devices
US10979054B1 (en) * 2020-01-14 2021-04-13 Nuvotonn Technology Corporation Coupling of combinational logic circuits for protection against side-channel attacks
FR3118219B1 (fr) * 2020-12-17 2024-03-15 Stmicroelectronics Grand Ouest Sas Procédé de protection d’un système, par exemple un microcontrôleur, et sytème correspondant
US20230063057A1 (en) * 2021-08-27 2023-03-02 Micron Technology, Inc. Memory access managment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102656550A (zh) * 2009-12-09 2012-09-05 桑迪士克以色列有限公司 使用公共存储器区域中的虚拟文件来访问私有存储器区域中的多个受保护文件的存储设备和方法
CN104050420A (zh) * 2013-03-15 2014-09-17 辉达公司 用于保护数据的系统和方法
CN104412242A (zh) * 2012-06-27 2015-03-11 北欧半导体公司 内存保护
US9483422B2 (en) * 2011-07-18 2016-11-01 Hewlett Packard Enterprise Development Lp Access to memory region including confidential information

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434562A (en) 1991-09-06 1995-07-18 Reardon; David C. Method for limiting computer access to peripheral devices
ATE278218T1 (de) 1994-05-26 2004-10-15 Commw Of Australia Gesicherte rechnerarchitektur
KR0174978B1 (ko) 1995-12-30 1999-04-01 김광호 하드웨어로 구현된 디지탈 컴퓨터 시스템 보안 장치
US20010011318A1 (en) * 1997-02-27 2001-08-02 Vishram P. Dalvi Status indicators for flash memory
US6643783B2 (en) * 1999-10-27 2003-11-04 Terence T. Flyntz Multi-level secure computer with token-based access control
JP3829041B2 (ja) * 2000-03-08 2006-10-04 株式会社東芝 強誘電体メモリ
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US7131000B2 (en) * 2001-01-18 2006-10-31 Bradee Robert L Computer security system
US7003676B1 (en) 2001-05-10 2006-02-21 Advanced Micro Devices, Inc. Locking mechanism override and disable for personal computer ROM access protection
EP1329787B1 (en) * 2002-01-16 2019-08-28 Texas Instruments Incorporated Secure mode indicator for smart phone or PDA
CA2496849A1 (en) 2004-02-12 2005-08-12 Divinity Data Security Inc. Method and apparatus for preventing un-authorized computer data access
US7325176B2 (en) * 2004-02-25 2008-01-29 Dell Products L.P. System and method for accelerated information handling system memory testing
US7457893B2 (en) * 2004-03-11 2008-11-25 International Business Machines Corporation Method for dynamically selecting software buffers for aggregation according to current system characteristics
US20070266444A1 (en) * 2004-12-03 2007-11-15 Moshe Segal Method and System for Securing Data Stored in a Storage Device
US7712131B1 (en) * 2005-02-09 2010-05-04 David Lethe Method and apparatus for storage and use of diagnostic software using removeable secure solid-state memory
DE102005011893B3 (de) * 2005-03-15 2006-09-21 Infineon Technologies Ag Halbleiterspeicherbauelement und Verfahren zum Prüfen von Halbleiterspeicherbauelementen mit eingeschränktem Speicherbereich (Partial-Good-Memorys)
US20070005918A1 (en) * 2005-06-29 2007-01-04 Rothman Michael A Methods and apparatus to provide interface access control
US8322608B2 (en) * 2005-08-15 2012-12-04 Assa Abloy Ab Using promiscuous and non-promiscuous data to verify card and reader identity
US8065512B2 (en) * 2005-08-22 2011-11-22 Nxp B.V. Embedded memory protection
US20070237325A1 (en) 2006-02-01 2007-10-11 Gershowitz Michael N Method and apparatus to improve security of cryptographic systems
US7395394B2 (en) * 2006-02-03 2008-07-01 Hewlett-Packard Development Company, L.P. Computer operating system with selective restriction of memory write operations
JP2008009696A (ja) * 2006-06-29 2008-01-17 Fuji Xerox Co Ltd 画像処理装置及びプログラム
US7580302B2 (en) * 2006-10-23 2009-08-25 Macronix International Co., Ltd. Parallel threshold voltage margin search for MLC memory application
JP4921953B2 (ja) * 2006-12-25 2012-04-25 株式会社東芝 半導体集積回路装置及び半導体記憶装置のテスト方法
US7895426B2 (en) * 2007-08-24 2011-02-22 International Business Machines Corporation Secure power-on reset engine
US8095851B2 (en) * 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
US20090113155A1 (en) * 2007-10-31 2009-04-30 Echostar Technologies Corporation Hardware anti-piracy via nonvolatile memory devices
US8688940B2 (en) * 2008-12-18 2014-04-01 Sandisk Technologies Inc. Method for using a CAPTCHA challenge to protect a removable mobile flash memory storage device
US8301694B2 (en) * 2010-05-20 2012-10-30 Sandisk Il Ltd. Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device
FR2976096B1 (fr) * 2011-06-06 2013-06-21 Qualtera Système d'analyse de données de test de semi-conducteurs
US9612977B2 (en) * 2011-07-15 2017-04-04 Standard Microsystems Corporation Method and system for controlling access to embedded nonvolatile memories
JP5464226B2 (ja) * 2012-03-30 2014-04-09 富士通株式会社 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
US8943251B2 (en) * 2012-05-14 2015-01-27 Infineon Technologies Austria Ag System and method for processing device with differentiated execution mode
US8925098B2 (en) * 2012-11-15 2014-12-30 Elwha Llc Data security and access tracking in memory
US8773905B1 (en) * 2013-03-06 2014-07-08 Apple Inc. Identifying and mitigating restricted sampling voltage ranges in analog memory cells
JP2014209312A (ja) * 2013-03-25 2014-11-06 株式会社東芝 集積回路
US9343162B2 (en) * 2013-10-11 2016-05-17 Winbond Electronics Corporation Protection against side-channel attacks on non-volatile memory
US20150301956A1 (en) * 2014-04-22 2015-10-22 Lsi Corporation Data storage system with caching using application field to carry data block protection information
US9959421B2 (en) * 2014-06-23 2018-05-01 Oracle International Corporation System and method for monitoring and diagnostics in a multitenant application server environment
JP2016031656A (ja) * 2014-07-29 2016-03-07 株式会社リコー 情報処理装置、自己検査方法及び自己検査プログラム
US9710651B2 (en) * 2015-04-10 2017-07-18 Vixs Systems Inc. Secure processor for SoC initialization
US9619647B2 (en) 2015-05-07 2017-04-11 Nxp Usa, Inc. Integrated circuit access
US9965402B2 (en) * 2015-09-28 2018-05-08 Oracle International Business Machines Corporation Memory initialization detection system
US10199084B2 (en) * 2016-03-28 2019-02-05 Intel Corporation Techniques to use chip select signals for a dual in-line memory module

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102656550A (zh) * 2009-12-09 2012-09-05 桑迪士克以色列有限公司 使用公共存储器区域中的虚拟文件来访问私有存储器区域中的多个受保护文件的存储设备和方法
US9483422B2 (en) * 2011-07-18 2016-11-01 Hewlett Packard Enterprise Development Lp Access to memory region including confidential information
CN104412242A (zh) * 2012-06-27 2015-03-11 北欧半导体公司 内存保护
CN104050420A (zh) * 2013-03-15 2014-09-17 辉达公司 用于保护数据的系统和方法

Also Published As

Publication number Publication date
JP6771523B2 (ja) 2020-10-21
TWI691842B (zh) 2020-04-21
US10318438B1 (en) 2019-06-11
US20190179774A1 (en) 2019-06-13
JP2019145070A (ja) 2019-08-29
TW201926047A (zh) 2019-07-01
CN109901793A (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
CN109901793B (zh) 存储器安全装置及其方法
US11089016B2 (en) Secure system on chip
US7464256B2 (en) Bios protection device preventing execution of a boot program stored in the bios memory until the boot program is authenticated
JP6433198B2 (ja) 安全なブートromパッチのためのシステム及び方法
US8156317B2 (en) Integrated circuit with secure boot from a debug access port and method therefor
US10691807B2 (en) Secure system boot monitor
US20080034350A1 (en) System and Method for Checking the Integrity of Computer Program Code
US8296528B2 (en) Methods and systems for microcode patching
US11556651B2 (en) Method for secure booting using route switchover function for boot memory bus and apparatus using the same
US7809934B2 (en) Security measures for preventing attacks that use test mechanisms
JP2019122030A (ja) コード署名の条件付き規定に基づくセキュアクライアント認証
EP1843250B1 (en) System and method for checking the integrity of computer program code
US7624442B2 (en) Memory security device for flexible software environment
JP7005676B2 (ja) システム起動を監視するための安全装置及び安全方法
US10691586B2 (en) Apparatus and method for software self-test
EP1535124B1 (en) Computer architecture for executing a program in a secure of insecure mode
US11928210B2 (en) Module and method for monitoring systems of a host device for security exploitations
JP6564549B1 (ja) 正当性認証起動管理システム
Ma et al. Booting IoT Terminal Device Securely with eMMC
CN110569205A (zh) 安全系统单芯片及其操作方法
AU2012245181A1 (en) Bios protection device

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