CN105283921A - 非易失性存储器的操作 - Google Patents
非易失性存储器的操作 Download PDFInfo
- Publication number
- CN105283921A CN105283921A CN201480031820.5A CN201480031820A CN105283921A CN 105283921 A CN105283921 A CN 105283921A CN 201480031820 A CN201480031820 A CN 201480031820A CN 105283921 A CN105283921 A CN 105283921A
- Authority
- CN
- China
- Prior art keywords
- subregion
- key
- new data
- storage area
- controller
- 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
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
装置包括接口模块、控制器、密钥存储模块和非易失性存储模块,其中所述密钥存储模块被配置为存储密钥,所述非易失性存储模块被配置为存储数据。该非易失性存储模块具有第一分区和第二分区,其中,第一分区被指定为数据的只读存储区域,并且第二分区被指定为新数据的只写存储区域。响应于新数据与签名一起被写入第二分区并且控制器使用被存储在密钥存储模块中的密钥来验证签名,第一分区被重新指定为其它新数据的只写存储区域,并且第二分区被重新指定为新数据的只读存储区域。
Description
相关申请的交叉引用
本申请要求于2013年6月13日提交的题为“NON-VOLATILEMEMORYOPERATIONS(非易失性存储器的操作)”的第13/917,261号美国非临时专利申请的优先权,并作为该非临时专利申请的继续申请,该非临时专利申请的全部内容通过引用被合并进本文。
技术领域
本说明涉及非易失性存储器的操作的系统和方法,该非易失性存储器的操作包括电可擦除可编程只读存储器(EEPROM)的操作。
背景技术
计算机系统包括使用非易失性存储设备来存储诸如设备配置信息和像序列号、标识符和密码密钥的其它敏感信息的数据。非易失性存储设备可以包括包含电可擦除可编程只读存储器(EEPROM)的非易失性只读存储器(ROM),像上面提到的,非易失性只读存储器(ROM)被用来存储只读码或其它只读信息。在某些情况下,更新的或新的数据可以被写入非易失性存储设备。人们可能希望防止对非易失性存储设备的恶意或意外的重新编程。也可能希望更新或向非易失性存储设备写入新的可信数据
发明内容
本文件描述用于在非易失性存储设备中以安全的方式控制数据的设备和技术。在一个示例实现方式中,非易失性存储设备包括被分割成用于存储数据的多个分区的非易失性存储模块。例如,该非易失性存储模块可以被分割成第一分区和第二分区。第一分区可以被指定为只读存储区域,而第二分区可以被指定为只写分区。以这种方式,数据可以仅从只读分区被读取。控制器控制哪个分区是只读分区和哪个分区是只写分区。以这种方式,外部设备可以仅从只读分区中读取。
新数据可以被外部设备写入第二分区,在这个示例中第二分区是只写分区。新数据可以包括附加于新数据的签名。通过使用被存储在非易失性存储设备上的密钥存储模块中的密钥来验证签名,控制器确认这个新数据是可信的和安全的。在接收到新数据的完整的副本并且验证签名后,控制器可以将现在存储新数据的第二分区重新指定为只读分区,并且将第一分区重新指定为只写分区,其中其它新数据可以被写入。以这种方式,被写入非易失性存储设备的新数据或图像,在新数据可以被从设备读出之前,先通过验证附加于新数据的签名来确认其被认证或被信任。不完整或不能被验证的新数据可能被丢弃。
在一个示例实现方式中,控制器和密钥存储模块可能与非易失性存储模块位于相同的芯片上。在另一个示例实现方式中,控制器和密钥存储模块可能位于与非易失性存储模块分离的芯片上。在一个示例实现方式中,密钥存储模块可能与控制器位于相同芯片上,而在另一个示例实现方式中,密钥存储模块可能与非易失性存储模块位于相同的芯片上,该芯片可能与包含控制器的芯片是分离的。
在一个示例实现方式中,在制造和生产过程期间,描述的设备和技术可以被用于对非易失性存储设备编程或重新编程。
根据一个一般方面,装置包括接口模块、控制器、密钥存储模块和非易失性存储模块,其中该密钥存储模块被配置为存储密钥,该非易失性存储模块被配置为存储数据。该非易失性存储模块具有第一分区和第二分区,其中第一分区被指定为数据的只读存储区域,并且第二分区被指定为新数据的只写存储区域。响应于新数据与签名一起被写入第二分区并且控制器使用被存储在密钥存储模块中的密钥来验证签名,第一分区被重新指定为其它新数据的只写存储区域,并且第二分区被重新指定为新数据的只读存储区域。
在另一个一般的方面,装置包括接口模块和被配置为存储密钥的密钥存储模块。控制器被可操作地耦合到接口模块和密钥存储模块。该控制器被配置为与用于存储数据的外部非易失性存储设备接口。该控制器被配置为将该外部非易失性存储设备分割为第一分区和第二分区。第一分区被指定作为数据的只读存储区域,并且第二分区被指定作为通过接口模块接收到的新数据的只写存储区域。该控制器被配置为通过接口模块接收具有签名的新数据并将该新数据写入第二分区,使用被存储在密钥存储模块中的密钥来验证签名,并且响应于使用被存储在密钥存储模块中的密钥来验证签名,将第一分区重新指定为其它新数据的只写存储区域,并且将第二分区重新指定为新数据的只读存储区域。
在另一个一般的方面,方法包括将非易失性存储设备分割成第一分区和第二分区。第一分区被指定为数据的只读存储区域,并且第二分区被指定为通过接口模块接收到的新数据的只写存储区域。该方法包括通过接口模块接收具有签名的新数据,并且将所述新数据写入第二分区,通过控制器利用被存储在密钥存储模块中的密钥来验证签名,并且响应于利用被存储在所述密钥存储模块中的密钥来验证签名,将所述第一分区重新指定为其它新数据的只写存储区域,并且将所述第二分区重新指定为新数据的只读存储区域。
在另一个一般的方面,装置包括用于对接的设备、用于控制的设备、用于存储密钥的设备和用于非易失性存储的设备,其中用于存储密钥的设备被配置为存储密钥,用于非易失性存储的设备被配置为存储数据。用于非易失性存储的设备具有第一分区和第二分区,其中第一分区被指定为数据的只读存储区域,并且第二分区被指定为新数据的只写存储区域。响应于新数据与签名一起被写入第二分区并且用于控制的设备使用被存储在用于存储密钥的设备中的密钥来验证签名,第一分区被重新指定为其它新数据的只写存储区域,并且第二分区被重新指定为新数据的只读存储区域。
一个或多个实现方式的细节在下面的附图和说明中有详尽的解释。其它的特征根据说明和附图以及权利要求会变得显而易见。
附图说明
图1是非易失性存储设备的示例框图。
图2是非易失性存储设备和安全设备的示例框图。
图3是图2的多个非易失性存储设备和安全设备的示例框图。
图4是图示图1-3的设备的示例操作的示例流程图。
具体实施方式
图1是非易失性存储设备102的示例框图。非易失性存储设备102包括非易失性存储模块104、接口模块106、控制器108、密钥存储模块110和策略模块112。一般地,非易失性存储设备102被配置为通过接口模块106接收数据并且将数据写入非易失性存储模块104。例如,外围设备114可以将数据写入非易失性存储设备102。数据也可以通过接口模块106被从非易失性存储设备102读取。例如,外围设备114可以通过接口模块106从非易失性存储设备102中读取数据。
在整个文件中,非易失性存储设备102也可以被交换地称为存储设备102来指代相同的组件。非易失性存储设备102可以是不同类型的存储设备,包括不同类型的只读存储器(ROM)设备。例如,非易失性存储设备102可以是电可擦除可编程只读存储器(EEPROM)。在其它的示例中,非易失性存储设备102可以是闪存、相变存储器(PCM)、自旋力矩转移(STT)存储器、忆阻器以及其它非易失性存储设备。
在一个示例实现方式中,接口模块106可以是串行接口模块。例如,接口模块106可以是能支持一个或多个串行接口的串行接口模块,串行接口包括,但不限于,低引脚数(LPC)接口、I-平方-C(I2C)接口、1线接口、串行外围接口(SPI)和单线接口。其它的串行接口也可以被实现。将接口模块106连接到外围设备114的读写总线可以是对应于接口模块106所支持的接口类型的总线。在某些实现方式中,接口模块106可以支持多于一种类型的串行接口。
在一个示例实现方式中,接口模块106可以是并行接口模块。例如,接口模块106可以是能支持一个或多个并行接口的并行接口模块。将接口模块106连接到外围设备114的读写总线可以是对应于接口模块106所支持的接口类型的总线。在某些实现方式中,接口模块106可以支持多于一种类型的并行接口。
在一个示例实现方式中,接口模块106可以能够支持串行和并行两种接口。例如,接口模块106可以能够支持一个或多个以上描述的串行接口和一个或多个以上描述的并行接口。
非易失性存储设备102中的非易失性存储模块104可以被配置为存储数据。在整个文件中,非易失性存储模块104也可以被交换地称为存储模块104来意指相同的组件。存储模块104可以被实现为不同的存储容量。例如,存储模块104可以包括8K字节、16K字节、32K字节、64K字节、128K字节、256K字节的存储容量。在其它实现方式中,存储模块104可以包括更大规模的存储容量。
控制器108可以被配置为将存储模块104分割为多个分区。在一个示例实现方式中,控制器108可以将存储模块104分割为第一分区116和第二分区118。虽然图1图示出两个分区,但是多于两个分区是可能的。在一个实现方式中,控制器108可以在第一分区116和第二分区118之间平均地划分存储模块104的存储容量。例如,如果存储模块104的存储容量是128K字节,则第一分区116可以被分配64K字节的存储区域,并且第二分区118可以被分配64K字节存储区域。在另一个示例中,如果存储模块104的存储容量是256K字节,则第一分区116可以被分配128K字节的存储区域,并且第二分区118可以被分配128K字节的存储区域。在其它示例实现方式中,控制器108可以以非相等量分割存储模块104和/或可以将存储模块104分割成多于两个的分区。
控制器108可以通过分配一个地址(或存储器地址)集给第一分区116和分配另一个地址集给第二分区118来对存储模块104分区。控制器108可以顺序地或非顺序地分配地址。控制器108可以使用表来跟踪地址的分配和存储模块104的对应的分区,其中这张表可以被存储在另一个模块中,诸如,例如,密钥存储模块110、策略模块112或另一个表存储模块(未示出)中。控制器108可以使用其它的方案来对存储模块104分割。
在一个示例实现中,控制器108可以指定分区中的一个为只读分区而其它的分区作为只写分区。例如,控制器108可以指定第一分区116为只读分区,并且可以指定第二分区118为只写分区。控制器108可以通过控制可以被外围设备114读取的或可以被外围设备114写入的地址来控制分区的功能是只读或只写。以这种方式,控制器108可以指向对应于只读分区的地址来实现从外围设备114接收到的读取请求。这样,如果第一分区116被指定为只读分区,则控制器108通过指向第一分区116的地址满足读取请求,来将数据从存储模块104读出。如果第二分区118被指定作为只写分区,则第二分区118不用于响应读取请求。
换种说法,由于控制器108知道分区方案,控制器108可以执行任何必要的地址转换来满足来自外围设备114的读取请求。外围设备114可以不知道分区方案,并且因为它被控制器108控制,不需要知道这个方案。
在一个示例实现方式中,外围设备114对来自存储设备102的数据的读取可以是明文形式的。在其它示例实现方式中,外围设备114对来自存储设备102的数据的读取可以使用存储设备102和外围设备114之间的加密方案被加密。
在一个示例实现方式中,对存储设备102的数据的写入可以是写入被指定为只写分区的分区。对存储设备的写入可以是签有明文的写入,和/或可以是签有加密的写入。
在一个示例实现方式中,外围设备114可以将数据或新图像写入存储设备102。外围设备114可以将签有附加于包含数据的消息的签名的明文数据写入存储设备102。例如,外围设备114可以计算数据的密码哈希,并使用私有密钥签名密码哈希。在其它的实现方式中,除外围设备114以外的不同的外围设备(未示出)可以计算密码哈希,并使用私有密钥签名密码哈希。在另一个示例实现方式中,外围设备114可以计算数据的密码消息认证码和秘密密钥,其中的生成的消息认证码充当签名的角色。之后,外围设备114将签名的数据传送给存储设备102。
存储设备102通过接口模块114接收签名的数据。控制器108将接收到的签名的数据写入被指定为只写分区的分区。例如,如果第二分区118被指定为只写分区,则控制器使数据被写入第二分区118。当数据被接收时,控制器108验证附加于数据的签名。即,当数据正在被接收时,控制器108可以计算数据的密码哈希。控制器108可以使用对应于用于签名消息的密钥的密钥来验证签名。密钥可以通过成为公-私密钥对的公共部分而对应,或者可以是与外围设备114共享的相同的秘密密钥。被控制器108使用来验证签名的密钥可以被存储在密钥存储模块110中。
在一个示例实现方式中,密钥存储模块110可以存储对应于由可信源持有的密钥的一个或多个密钥。密钥存储模块110可以是非易失性存储模块。以这种方式,具有签名的数据能够被控制器108使用被存储在密钥存储模块110中的密钥中的一个密钥来验证。例如,密钥存储模块110可以存储对应于由外围设备114持有和使用的私有密钥的公共密钥。这个公共密钥被控制器108使用来验证通过外围设备114被写入存储设备102的数据的签名。在另一个示例中,密钥存储模块110可以存储对应于由外围设备114持有和使用的共享秘密密钥的秘密密钥。
在一个示例实现方式中,控制器108通过计算密码哈希和使用被存储在密钥存储模块110中的密钥来计算签名是否是私有密钥的持有者签名那个确切消息的密码哈希的结果来验证附加于接收到的消息的签名。在一个示例中,当数据正在通过接口模块106被流送进存储设备102时,控制器108可以计算流密码哈希。在另一个示例中,控制器108可以先接收所有的数据,并且然后在所有的数据被接收到以后,再计算密码哈希。在一个示例中,控制器108可以计算接收到的消息上的密钥消息认证码,并且将计算出的密钥消息认证码与附加于接收到的消息的签名进行比较来确定消息是否有效。
当接收数据的完整副本和验证签名时,控制器108可以重新指定刚刚接收到新数据的只写分区作为只读分区。控制器108可以重新指定存储有旧数据的只读分区作为只写分区来接收可能是被外围设备114通过接口模块106发送的其它新数据(或新数据的写入)。然后,这个新指定的只写分区被配置为接收下一次的对设备的数据写入,这也可以被称为其它新数据。
例如,响应于接收到数据的完整副本和验证附加于数据的签名,控制器108可以将第二分区118重新指定为只读分区。控制器108可以通过改变指向读取命令被引导到的一个或多个地址的指针来执行重新指定,使得只有被存储在第二分区118中的数据可以被读取。控制器108还将第一分区116从只读分区重新指定为只写分区。以这种方式,对存储设备102的随后的新数据的写入将被存储在第一分区116中。
当在写入过程中,控制器108没有重新指定分区时,可能有一个或多个实例。例如,如果在写入期间接收到的数据不是数据的完整副本,则控制器108将不会重新指定分区116、118。以这种方式,如果存储设备102是EEPROM,则被写入第二分区118的不完整的图像不会被从存储设备102中读出,因为当前的只读分区会保持为只读分区,而接收到该不完整或部分副本的只写分区会保持为只写分区。可能已经被写入只写分区的部分数据可以被删除或被写覆盖。
在另一个示例中,如果新数据的签名不能被验证,则控制器108不重新指定分区。例如,如果由控制器108计算的密码哈希与附加于数据的密码哈希不匹配,则控制器108不会重新指定分区,使得只读分区保持为只读分区,并且只写分区保持为只写分区。如果签名不能使用密钥存储模块110中的密钥被验证,则控制器108不会重新指定分区,使得只读分区保持为只读分区,并且只写分区保持为只写分区。
在一个示例实现方式中,新的密钥可以被附加到正在被写入存储设备102的消息。带有新密钥的消息可以使用对应于被存储在密钥存储模块110中的密钥的私有密钥而被签以签名。在控制器108验证这个签名时,新的密钥被存储在密钥存储模块110中,并且可以被激活用于验证对存储设备102的随后的写入的签名。以这种方式,被存储在密钥存储模块110中的公共密钥可以从可信源以安全方式更新。这个新的密钥可以被从与数据一起存储在非易失性存储模块104中删除,使得这个新的密钥只能存储在密钥存储模块110中。在另一个示例中,消息认证码可以被附加到正在被写入存储设备的消息,并被存储在密钥存储模块110中,用于验证新到来的消息的签名。
在一个示例实现方式中,策略模块112可以存储与存储设备102相关的信息,包括,例如,存储设备102的唯一标识符。策略模块112可以存储版本号或与被存储在只读分区的数据相关的其它附加标识信息。策略模块112还可以存储与在新数据的接收时由控制器108所采取的行动相关的其它策略规则或指令。当控制器108使用密钥存储模块110中的密钥验证新数据上的签名时,被存储在策略模块112中的策略和信息可以被以附加于新数据的新策略更新。
在一个示例实现方式中,位掩码可以被用于向存储设备102发送的数据中。该位掩码可以被用于包含将要被存储在策略模块112中的数据中的信息。例如,位掩码可以被用作权限掩码来包含被存储在策略模块112中的权限信息。还有,位掩码可以被用于给每个存储设备102分配唯一号码。例如,外围设备114可以分配与设备序列号分离的以太网MAC地址给存储设备102。在一个实现方式中,位掩码信息总是可以写入设备。在其它实现方式中,使用与用于验证数据的签名的密钥不同的密钥,位掩码信息可以写入存储设备102的策略模块112中。用于写入位掩码信息的密钥也可以被存储在密钥存储模块110中。
参考图2,示例框图图示出非易失性存储设备202和安全设备250。非易失性存储设备202包括非易失性存储模块204,非易失性存储模块204可以包括与图1中非易失性存储模块104相同的特征。例如,非易失性存储模块204可以被分割为多个分区216和218,就像上面关于被分成多个分区116和118的存储模块104所述的一样。
在图2中,接口模块206、控制器208、密钥存储模块210和策略模块212可以被实现在安全设备250上。安全设备250是单独的芯片或与存储设备202分离的设备。安全设备250可以通过接口260与存储设备202通信。安全设备250上的组件(即,接口模块206、控制器208、密钥存储模块210和策略模块212)可以与图1中的接口模块106、控制器108、密钥存储模块110和策略模块112以相同的方式工作。
以这种方式,可以将安全设备250与不同的存储设备202匹配来保证已被验证的仅加密的签名数据能被写入存储设备202和从其读出。例如,控制器208可以将存储模块204划分为第一分区216和第二分区218。控制器208可以指定第一分区216为只读分区,并且第二分区218为只写分区。外围设备214可以通过安全设备250将新数据写入存储设备202。外围设备214可以使用私有密钥签名数据的密码哈希,将签名附加到数据并且通过安全设备250将数据传送给存储设备202。
接口模块206接收数据,并且控制器208使用接口260引导数据被写入作为只写存储区域的第二分区218。控制器208使用被存储在密钥存储模块210中的密钥验证附加于数据的签名。如果控制器成功验证签名,则第一分区216和第二分区218分别被重新指定为只写分区和只读分区。以这种方式,被写入第二分区218的新数据可以由随后接收到的读取命令而被读出。如果控制器208不能验证签名或如果数据的不完整副本被接收,则控制器208不会重新指定分区216和218,并且随后的读取命令不会读出新数据,而是会继续读出被存储在第一分区216中的数据。控制器208可以执行这些和其它的附加功能,就像上面可以关于图1的控制器108所描述的一样。
在另一个示例实现方式中,密钥存储模块210可以被实现在非易失性存储设备202上,而不是被实现在安全设备250上。在这个实现方式中,控制器208可以位于安全设备250上,并且可以与密钥存储模块210交互,存储模块210可以被实现在非易失性存储设备202上,以使用被存储在密钥存储模块210中的一个或多个密钥来验证签名。
参考图3,示例框图图示出具有存储模块304a-304c的多个非易失性存储设备302a-302c和图2中的安全设备250。在图3的示例中,单个安全设备250可以通过相应的接口360a-360c为多个存储设备302a-302c控制数据的读取和数据的写入。安全设备250可以像上面图2中描述的安全设备250相同地工作。控制器208可以用来验证附加于从一个或多个外围设备314a和314b被写入存储设备302a-302c中的一个设备的数据的签名。控制器208引导数据到存储设备中被指定为只写分区的分区。当使用密钥存储模块210中的密钥验证签名时,控制器208为特定存储设备重新指定分区。如果验证失败,则控制器208不重新指定分区。
在图3的示例中,安全设备250可以包括多个接口模块306a和306b。接口模块306a和306b可以是不同类型的接口。例如,接口模块306a可以是串行接口模块而接口模块306b可以是并行接口模块。取决于使用在外围设备和安全模块250之间的接口类型,接口模块306a和306b可以与某些或全部的外围设备314a和314b兼容。
在图3的这个示例中,安全设备250是灵活的,因为它能通过接口模块306a和306b,使用不同类型接口被耦合到多个非易失性存储设备302a-302c和多个外围设备314a和314b。以相似的方式,接口360a-360c可以是与不同类型的非易失性存储设备302a-302c接口的不同类型的接口(例如,串行和并行接口)。
参考图4,示例流程图图示出过程400。过程400图示出上面在图1-3中描述的设备的示例操作。过程400包括将非易失性存储设备分区为第一分区和第二分区,其中第一分区被指定为数据的只读存储区域,并且第二分区被指定为通过接口模块接收到的新数据的只写存储区域(410)。例如,存储设备102包括存储模块104,存储模块104可以被分割为第一分区116和第二分区118,其中第一分区116被指定为数据的只读存储区域,并且第二分区118被指定为通过接口模块112接收到的新数据的只写存储区域(410)。
过程400包括通过接口模块接收具有签名的新数据并将该新数据写入第二分区(420)。例如,接口模块106可以接收来自外围设备114的新数据,其中数据包括使用私有密钥创建的签名。新数据可以被写入第二分区118(420)。
过程400包括通过控制器利用被存储在密钥存储模块中的密钥来验证签名(430)。例如,控制器108可以利用被存储在密钥存储模块110中的密钥来验证签名(430)。
过程400包括响应于利用被存储在密钥存储模块中的密钥来验证签名,将第一分区重新指定为其它新数据的只写存储区域,并且将第二分区重新指定为新数据的只读存储区域(440)。例如,控制器108可以将第一分区116重新指定为其它新数据的只写存储区域。控制器108可以响应于控制器108利用被存储在密钥存储模块110中的密钥来验证签名,将第二分区118重新指定为新数据的只读存储区域(440)。如果控制器108不能验证签名,则分区不被重新指定。
本文描述的各种技术的实现可以被实现为数字电路或计算机硬件、固件、软件或它们的组合。实现可以被实现为计算机程序产品,例如,有形体现在信息载体中的计算机程序,如存储在机器只读存储设备中,用于被控制数据处理装置执行或控制数据处理装置的运行,数据处理装置包括如可编程处理器、一台计算机或多台计算机。计算机程序,如上述的计算机程序,能用任何形式的编程语言来写,包括编译语言或解释语言,并且可以被部署为任何形式,包括作为独立的程序或作为模块、组件、子程序或其它适合使用在计算环境中的单元。计算机程序能被部署到一台计算机上执行,或一个站点的多台计算机上执行,或分布于多个站点的并通过通信网络连接的多台计算机上执行。
方法步骤可以被一个或多个执行计算机程序的可编程处理器执行,通过对输入数据的操作和产生输出来执行功能。方法步骤也可以被装置执行,这个装置可以被实现为专用逻辑电路,如FPGA(场可编程逻辑阵列)或ASIC(专用集成电路)。
适合执行计算机程序的处理器包括,举例来说,通用微处理器和专用微处理器,和任何种类的数字计算机中的任何一个或多个处理器。通常,处理器会从只读存储器或随机存取存储器或从两者接收指令和数据。计算机的元件包括用于执行指令的至少一个处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还可以包括或被可操作地耦合来接收来自用于存储数据的一个或多个大容量存储设备的数据,或向所述一个或多个大容量存储设备传递数据,或以上两种操作都有,所述大容量存储设备例如,磁盘、磁光盘或光盘。适合体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,举例来说,半导体存储器设备,例如,EPROM、EEPROM以及闪存设备;磁盘,例如,内部硬盘或可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以被专用逻辑电路补充,或被并入专用逻辑电路。
为提供与用户的交互,实现方式可以被实现在具有显示设备和键盘以及定点设备的计算机上,该显示设备,例如,阴极射线管(CRT)或液晶显示器(LCD)监视器,用于向用户显示信息;该定点设备,例如,鼠标或跟踪球,通过该键盘和定点设备,用户可以向计算机提供输入。其它种类的设备也能被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;来自用户的输入能被以任何形式接收,包括声学、语音或触觉输入。
实现方式可以被实现在计算系统中,该计算系统包括后端组件,例如,作为数据服务器,或包括中间件组件,例如,应用服务器,或包括前端组件,例如,具有图形用户界面的客户端计算机,或用户能通过其与一个实现方式交互的Web浏览器,或这样的后端组件、中间件组件或前端组件的任何组合。组件可以通过任何形式或媒介的数字数据通信(例如通信网络)被互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如,互联网。
虽然如在本文所述,已经图示出所述实现方式的某些特征,但是本领域的技术人员将会想到许多修改、替代、变化和等效。因此,可以理解的是,所附权利要求意在覆盖落于实施例的范围内的所有这样的修改和变化。
Claims (28)
1.一种装置,包括:
接口模块;
控制器,所述控制器可操作地耦合到所述接口模块;
密钥存储模块,所述密钥存储模块可操作地耦合到所述控制器,所述密钥存储模块被配置为存储密钥;以及
非易失性存储模块,所述非易失性存储模块可操作地耦合到所述控制器并且被配置为存储数据,所述非易失性存储模块具有第一分区和第二分区,其中:
所述第一分区被指定为所述数据的只读存储区域,
所述第二分区被指定为通过所述接口模块接收到的新数据的只写存储区域,以及
响应于所述新数据与签名一起被写入所述第二分区和所述控制器使用被存储在所述密钥存储模块中的所述密钥验证所述签名,所述第一分区被重新指定为其它新数据的只写存储区域,并且所述第二分区被重新指定为所述新数据的只读存储区域。
2.根据权利要求1所述的装置,其中,响应于接收到带有所述签名的所述新数据的完整副本和所述控制器使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,所述第一分区被重新指定为其它新数据的只写存储区域,并且所述第二分区被重新指定为所述新数据的只读存储区域。
3.根据权利要求1所述的装置,其中,所述新数据包括新密钥,响应于所述控制器使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,所述新密钥被存储在所述密钥存储模块中并且被激活。
4.根据权利要求3所述的装置,其中,所述新密钥仅被存储在所述密钥存储模块中。
5.根据权利要求1所述的装置,其中,响应于所述控制器使用被存储在所述密钥存储模块中的所述密钥不能验证所述签名,所述第一分区不被重新指定为其它新数据的只写存储区域,并且所述第二分区不被重新指定为所述新数据的只读存储区域。
6.根据权利要求1所述的装置,其中,响应于通过所述接口模块接收所述新数据的不完整的写入,所述第一分区不被重新指定为其它新数据的只写存储区域,并且所述第二分区不被重新指定为所述新数据的只读存储区域。
7.根据权利要求1或2所述的装置,其中,所述新数据被作为明文从所述第二分区读取。
8.根据权利要求1或2所述的装置,其中,所述第一分区和所述第二分区具有相同的大小。
9.根据权利要求1或2所述的装置,其中,所述接口模块包括串行接口模块。
10.根据权利要求1或2所述的装置,其中,所述接口模块包括并行接口模块。
11.根据权利要求1或2所述的装置,其中,所述装置是电可擦除可编程只读存储器(EEPROM)。
12.根据权利要求1或2所述的装置,其中,被存储在所述密钥存储模块中的所述密钥是与用于在所述装置外创建所述签名的私有密钥相对应的公共密钥。
13.根据权利要求1或2所述的装置,其中,被存储在所述密钥存储模块中的所述密钥是与用于在所述装置外创建所述签名的共享秘密密钥相对应的共享秘密密钥。
14.一种装置,包括:
接口模块;
密钥存储模块,所述密钥存储模块被配置为存储密钥;
控制器,所述控制器可操作地耦合到所述接口模块和所述密钥存储模块,所述控制器被配置为与用于存储数据的外部非易失性存储设备对接,并且所述控制器被配置为:
将所述外部非易失性存储设备分割为第一分区和第二分区,所述第一分区被指定为所述数据的只读存储区域,并且所述第二分区被指定为通过所述接口模块接收到的新数据的只写存储区域,
通过所述接口模块接收具有签名的所述新数据,并且将所述新数据写入所述第二分区,
使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,以及
响应于使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,将所述第一分区重新指定为其它新数据的只写存储区域,并且将所述第二分区重新指定为所述新数据的只读存储区域。
15.根据权利要求14所述的装置,其中,所述控制器被配置为:响应于接收到所述新数据的完整副本并且响应于使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,将所述第一分区重新指定为其它新数据的只写存储区域,并且将所述第二分区重新指定为所述新数据的只读存储区域。
16.根据权利要求14所述的装置,其中,所述新数据包括新密钥,并且响应于所述控制器使用被存储在所述密钥存储模块中的所述密钥来验证所述签名,所述新密钥被存储在所述密钥存储模块中并且被激活。
17.根据权利要求16所述的装置,其中,所述新密钥仅被存储在所述密钥存储模块中。
18.根据权利要求14所述的装置,其中,所述控制器被配置为:响应于所述控制器使用被存储在所述存储模块中的所述密钥不能验证所述签名,不将所述第一分区重新指定为其它新数据的只写存储区域,并且不将所述第二分区重新指定为所述新数据的只读存储区域。
19.根据权利要求14所述的装置,其中,所述控制器被配置为:响应于通过所述接口模块接收所述新数据的不完整的写入,不将所述第一分区重新指定为所述其它新数据的只写存储区域,并且不将所述第二分区重新指定为所述新数据的只读存储区域。
20.根据权利要求14-19中的任何一项所述的装置,其中,所述非易失性存储设备是电可擦除可编程只读存储器(EEPROM)。
21.根据权利要求14-19中的任何一项所述的装置,其中,所述接口模块包括串行接口模块。
22.根据权利要求14-19中的任何一项所述的装置,其中,所述接口模块包括并行接口模块。
23.根据权利要求14-19中的任何一项所述的装置,其中,被存储在所述密钥存储模块中的所述密钥是与用于在所述装置外创建所述签名的私有密钥相对应的公共密钥。
24.根据权利要求14-19中的任何一项所述的装置,其中,被存储在所述密钥存储模块中的所述密钥是与用于在所述装置外创建所述签名的共享秘密密钥相对应的共享秘密密钥。
25.一种方法,包括:
将非易失性存储设备分割成第一分区和第二分区,所述第一分区被指定为数据的只读存储区域,并且所述第二分区被指定为通过接口模块接收到的新数据的只写存储区域;
通过所述接口模块接收具有签名的所述新数据,并且将所述新数据写入所述第二分区;
通过控制器利用被存储在密钥存储模块中的密钥来验证所述签名;以及
响应于利用被存储在所述密钥存储模块中的所述密钥来验证所述签名,将所述第一分区重新指定为其它新数据的只写存储区域,并且将所述第二分区重新指定为所述新数据的只读存储区域。
26.根据权利要求25所述的方法,其中,所述非易失性存储设备是电可擦除可编程只读存储器(EEPROM)。
27.根据权利要求25所述的方法,其中,所述非易失性存储设备是处于所述控制器外部的电可擦除可编程只读存储器(EEPROM)。
28.一种装置,包括:
用于对接的设备;
用于控制的设备,所述用于控制的设备可操作地耦合到所述用于对接的设备;
用于存储密钥的设备,所述用于存储密钥的设备可操作地耦合到所述用于控制的设备,其中,所述用于存储密钥的设备被配置为存储密钥;以及
用于非易失性存储的设备,所述用于非易失性存储的设备可操作地耦合到所述用于控制的设备并且被配置为存储数据,所述用于非易失性存储的设备包括第一分区和第二分区,其中
所述第一分区被指定为所述数据的只读存储区域,
所述第二分区被指定为通过所述用于对接的设备接收到的新数据的只写存储区域,以及
响应于所述新数据与签名一起被写入所述第二分区并且所述用于控制的设备使用被存储在所述用于存储所述密钥的设备中的所述密钥来验证所述签名,所述第一分区被重新指定为其它新数据的只写存储区域,并且所述第二分区被重新指定为所述新数据的只读存储区域。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/917,261 US9697358B2 (en) | 2013-06-13 | 2013-06-13 | Non-volatile memory operations |
US13/917,261 | 2013-06-13 | ||
PCT/US2014/039817 WO2014200695A1 (en) | 2013-06-13 | 2014-05-28 | Non-volatile memory operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105283921A true CN105283921A (zh) | 2016-01-27 |
CN105283921B CN105283921B (zh) | 2019-09-13 |
Family
ID=52020269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480031820.5A Active CN105283921B (zh) | 2013-06-13 | 2014-05-28 | 非易失性存储器的操作 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9697358B2 (zh) |
EP (1) | EP3008732B1 (zh) |
CN (1) | CN105283921B (zh) |
DE (1) | DE202014010905U1 (zh) |
DK (1) | DK3008732T3 (zh) |
HK (1) | HK1221065A1 (zh) |
WO (1) | WO2014200695A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968254A (zh) * | 2018-09-29 | 2020-04-07 | 北京嘉楠捷思信息技术有限公司 | 一种非易失性存储器的分区保护方法及装置 |
WO2020118940A1 (zh) * | 2018-12-09 | 2020-06-18 | 江苏华存电子科技有限公司 | 一种内存多重型态配置管理方法 |
US20210240869A1 (en) * | 2017-04-21 | 2021-08-05 | Micron Technology, Inc. | Secure memory device with unique identifier for authentication |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9697358B2 (en) | 2013-06-13 | 2017-07-04 | Google Inc. | Non-volatile memory operations |
US20150143070A1 (en) * | 2013-11-19 | 2015-05-21 | Samsung Electronics Co., Ltd. | Nonvolatile storage and operating methods of computing devices including the nonvolatile storage |
US20170163614A1 (en) * | 2015-12-03 | 2017-06-08 | Xxlsec Oy | Method, a Device, a Dedicated Device and a System for Encrypting Communication |
WO2019083541A1 (en) * | 2017-10-27 | 2019-05-02 | Hewlett-Packard Development Company, L.P. | THREE-DIMENSIONAL (3D) MODEL PROTECTION THROUGH CONSUMABLES |
US10820068B2 (en) * | 2019-02-07 | 2020-10-27 | Simmonds Precision Products, Inc. | Configurable sensing systems and methods for configuration |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655143A (zh) * | 2004-02-11 | 2005-08-17 | 三星电子株式会社 | 使用大小减半的存储器的快速傅立叶变换处理器和方法 |
US20070234339A1 (en) * | 1999-05-27 | 2007-10-04 | Vladimir Kostadinov | Fieldbus upgradable apparatus and method |
CN102087524A (zh) * | 2009-12-03 | 2011-06-08 | 株式会社山武 | 现场总线系统 |
CN102272768A (zh) * | 2009-01-05 | 2011-12-07 | 飞思卡尔半导体公司 | 用于允许对存储器元件的存取的方法、系统和集成电路 |
US20120167205A1 (en) * | 2010-12-22 | 2012-06-28 | Ghetie Sergiu D | Runtime platform firmware verification |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289458B1 (en) * | 1998-09-21 | 2001-09-11 | Microsoft Corporation | Per property access control mechanism |
US6272533B1 (en) * | 1999-02-16 | 2001-08-07 | Hendrik A. Browne | Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device |
US7050892B1 (en) * | 1999-12-21 | 2006-05-23 | Spx Corporation | Diagnostic tool security key |
US8296467B2 (en) | 2000-01-06 | 2012-10-23 | Super Talent Electronics Inc. | Single-chip flash device with boot code transfer capability |
US6728876B1 (en) * | 2000-12-27 | 2004-04-27 | Cisco Technology, Inc. | Method and apparatus to use non-volatile read/write memory for bootstrap code and processes by relocating write instructions |
US20050114554A1 (en) * | 2003-11-25 | 2005-05-26 | Kameran Azadet | Peripheral controller with shared EEPROM |
US20060010326A1 (en) * | 2004-07-08 | 2006-01-12 | International Business Machines Corporation | Method for extending the CRTM in a trusted platform |
US7363305B2 (en) * | 2004-09-02 | 2008-04-22 | Microsoft Corporation | Centralized terminology and glossary management |
KR20090087119A (ko) | 2006-12-06 | 2009-08-14 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 빈 데이터 토큰 지시어를 사용한 저장 장치 내의 데이터 관리 장치, 시스템 및 방법 |
US20080263348A1 (en) * | 2007-04-17 | 2008-10-23 | Texas Instruments Incorporated | Dynamic asymmetric partitioning of program code memory in network connected devices |
US8909940B2 (en) | 2008-06-23 | 2014-12-09 | Intel Corporation | Extensible pre-boot authentication |
US20090327741A1 (en) | 2008-06-30 | 2009-12-31 | Zimmer Vincent J | System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid) |
US20100278533A1 (en) * | 2009-04-30 | 2010-11-04 | Telefonaktiebolaget L M Ericsson (Publ) | Bit mask to obtain unique identifier |
US8495604B2 (en) * | 2009-12-30 | 2013-07-23 | International Business Machines Corporation | Dynamically distribute a multi-dimensional work set across a multi-core system |
US8726087B2 (en) | 2011-03-18 | 2014-05-13 | Denso International America, Inc. | System and method for curing a read inability state in a memory device |
US9767298B2 (en) * | 2012-01-12 | 2017-09-19 | Sony Corporation | Information storage device, information processing system, information processing method, and program |
US8769693B2 (en) * | 2012-01-16 | 2014-07-01 | Microsoft Corporation | Trusted installation of a software application |
CN103294580B (zh) * | 2012-02-02 | 2017-08-08 | 塔塔咨询服务有限公司 | 实时性能监控 |
US9590959B2 (en) * | 2013-02-12 | 2017-03-07 | Amazon Technologies, Inc. | Data security service |
US9152776B2 (en) * | 2013-04-30 | 2015-10-06 | Netapp, Inc. | Secure access-based enumeration of a junction or mount point on a clustered server |
US9697358B2 (en) | 2013-06-13 | 2017-07-04 | Google Inc. | Non-volatile memory operations |
-
2013
- 2013-06-13 US US13/917,261 patent/US9697358B2/en active Active
-
2014
- 2014-05-28 DK DK14810905.1T patent/DK3008732T3/en active
- 2014-05-28 EP EP14810905.1A patent/EP3008732B1/en active Active
- 2014-05-28 DE DE202014010905.2U patent/DE202014010905U1/de active Active
- 2014-05-28 WO PCT/US2014/039817 patent/WO2014200695A1/en active Application Filing
- 2014-05-28 CN CN201480031820.5A patent/CN105283921B/zh active Active
-
2016
- 2016-07-26 HK HK16108925.5A patent/HK1221065A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070234339A1 (en) * | 1999-05-27 | 2007-10-04 | Vladimir Kostadinov | Fieldbus upgradable apparatus and method |
CN1655143A (zh) * | 2004-02-11 | 2005-08-17 | 三星电子株式会社 | 使用大小减半的存储器的快速傅立叶变换处理器和方法 |
CN102272768A (zh) * | 2009-01-05 | 2011-12-07 | 飞思卡尔半导体公司 | 用于允许对存储器元件的存取的方法、系统和集成电路 |
CN102087524A (zh) * | 2009-12-03 | 2011-06-08 | 株式会社山武 | 现场总线系统 |
US20120167205A1 (en) * | 2010-12-22 | 2012-06-28 | Ghetie Sergiu D | Runtime platform firmware verification |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210240869A1 (en) * | 2017-04-21 | 2021-08-05 | Micron Technology, Inc. | Secure memory device with unique identifier for authentication |
CN110968254A (zh) * | 2018-09-29 | 2020-04-07 | 北京嘉楠捷思信息技术有限公司 | 一种非易失性存储器的分区保护方法及装置 |
WO2020118940A1 (zh) * | 2018-12-09 | 2020-06-18 | 江苏华存电子科技有限公司 | 一种内存多重型态配置管理方法 |
Also Published As
Publication number | Publication date |
---|---|
DK3008732T3 (en) | 2018-03-12 |
HK1221065A1 (zh) | 2017-05-19 |
WO2014200695A1 (en) | 2014-12-18 |
CN105283921B (zh) | 2019-09-13 |
EP3008732B1 (en) | 2018-01-17 |
US9697358B2 (en) | 2017-07-04 |
EP3008732A1 (en) | 2016-04-20 |
EP3008732A4 (en) | 2017-01-25 |
US20140372665A1 (en) | 2014-12-18 |
DE202014010905U1 (de) | 2017-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6991431B2 (ja) | ホストシステムとデータ処理アクセラレータの間の通信を保護するための方法およびシステム | |
CN105283921A (zh) | 非易失性存储器的操作 | |
KR102451109B1 (ko) | 디바이스 익명성을 제공하는 키 증명문 생성 | |
CN107750363B (zh) | 保护与硬件加速器的通信以增加工作流安全性 | |
US8572410B1 (en) | Virtualized protected storage | |
US9794341B2 (en) | Data storage verification in distributed storage system | |
JP5969048B2 (ja) | グローバルプラットフォーム仕様を使用した発行元セキュリティドメインの鍵管理のためのシステム及び方法 | |
CN109886682B (zh) | 区块链中实现合约调用的方法及节点、存储介质 | |
CN102208001B (zh) | 硬件支持的虚拟化密码服务 | |
CN110008735B (zh) | 区块链中实现合约调用的方法及节点、存储介质 | |
KR20200064968A (ko) | 보안형 메모리 칩의 롤백 방지 버전 업그레이드 | |
US20130019105A1 (en) | Secure software and hardware association technique | |
US10652732B2 (en) | Provisioning authentication keys in computer processor | |
KR102030858B1 (ko) | 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법 | |
EP2947594A2 (en) | Protecting critical data structures in an embedded hypervisor system | |
JP2009003855A (ja) | 情報セキュリティ装置およびカウンタ制御方法 | |
CN112149144A (zh) | 聚合密码引擎 | |
JP2017033537A (ja) | 外部不揮発性メモリに間接アクセスするセキュリティデバイス | |
TWI541825B (zh) | 非依電性記憶體儲存可重置資料之技術 | |
CN109445705A (zh) | 固件认证方法及固态硬盘 | |
US11368291B2 (en) | Mutually authenticated adaptive management interfaces for interaction with sensitive infrastructure | |
CN113544674A (zh) | 用于安全接口控件的安全执行客户机所有者控制 | |
TWM575144U (zh) | A computing device that verifies a password through an operating system for encryption and decryption | |
TWI709099B (zh) | 透過作業系統驗證密碼以進行加解密之系統及方法 | |
CN114244565B (zh) | 密钥分发方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1221065 Country of ref document: HK |
|
CB02 | Change of applicant information |
Address after: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |