CN103988185B - 用于安全的重放保护存储的系统、装置和方法 - Google Patents

用于安全的重放保护存储的系统、装置和方法 Download PDF

Info

Publication number
CN103988185B
CN103988185B CN201180075706.9A CN201180075706A CN103988185B CN 103988185 B CN103988185 B CN 103988185B CN 201180075706 A CN201180075706 A CN 201180075706A CN 103988185 B CN103988185 B CN 103988185B
Authority
CN
China
Prior art keywords
flash memory
monotone counter
memory device
value
monotone
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
CN201180075706.9A
Other languages
English (en)
Other versions
CN103988185A (zh
Inventor
N.V.萨兰格哈尔
W.A.斯特文斯
J.J.维拉尼奇
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN103988185A publication Critical patent/CN103988185A/zh
Application granted granted Critical
Publication of CN103988185B publication Critical patent/CN103988185B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明的实施例在闪速存储器设备(例如,串行外围接口(SPI)闪速存储器设备)中创建底层基础设施使得可以保护它以免用户攻击-例如,替换SPI闪速存储器设备或中间人(MITM)攻击以在运行中修改SPI闪速存储器内容。在现有技术中,单调计数器因为SPI闪速存储器设备未对计数器提供重放保护而无法存储在所述设备中。用户还可移除闪速存储器设备并且对它重新编程。主机平台单独无法防止这样的硬件攻击。本发明的实施例使例如SPI闪速存储器设备的安全的标准存储闪速存储器设备能够对安全存储的数据实现重放保护。本发明的实施例利用闪速存储器控制器、闪速存储器设备、唯一设备密钥和HMAC密钥逻辑来对各种部件创建安全的执行环境。

Description

用于安全的重放保护存储的系统、装置和方法
技术领域
本发明的实施例一般关于计算设备并且更特定地关于单调计数器在计算设备中的使用。
背景技术
计算机安全指与计算机平台关联的信息安全。计算机安全的目的是确保在计算平台上存储或处理的信息的机密性、完整性和/或可用性。计算机安全可减少基于计算机的信息易受基于恶意软件和硬件的用户攻击。计算平台因此包括用于提供安全执行环境(SEE)的物理和逻辑特征。单调计数器可作为SEE的部分而被包括并且可结合各种认证规程使用来防止用户攻击。
实现单调计数器来产生递增或递减值。对于递增值实现,一旦计数值变成更高的数,它之后不应展现小于该更高数的任何值。对于递减值实现,一旦计数值变成更低的数,它之后不应展现大于该更低数的任何值。对于任一个实现,计数值的单调性质应在单调计数器操作所在的设备的整个寿命中维持,包括跨任何数量的通电和断电周期。使单调计数器不维持它的计数值并且回复到早期的值可以导致设备安全的妥协(在本文称为“重放攻击”)。
计算机平台可利用特定存储器模块用于存储引导指令(例如,基本输入输出系统(BIOS)指令)。串行外围接口(SPI)闪速存储器设备通常用作这些指令的存储装置。SPI闪速存储器是用于存储单调计数器的理想的候选;然而,标准SPI闪速存储器设备不支持保护单调计数器值免受重放攻击的机制(因此,可靠单调计数器对于设备的可用性提供建立重放保护的基本能力)。
对于单调计数器的重放保护的现有技术的解决方案可以利用片上闪存来建立;然而,片上闪存由于硅加工原因以及在不增加大量成本的情况下对于高性能硅设备并不总是可能的。现有技术的解决方案还可以用适度的成本利用片上静态随机存取存储器(SRAM)来建立;然而片上SRAM需要一直加电。如果去除电力,SRAM中的数据丢失。利用单调计数器的现有技术的解决方案可使它们移到提供重放保护存储器的不同存储器设备-例如,嵌入式多媒体卡(eMMC)设备;然而,这些现有技术的解决方案使用大块存储器以非常显著的成本提供重放保护。
发明内容
本发明的目的是克服现有技术中的缺陷。
提供了一种用于安全的单调计数器操作的系统,包括:
闪速存储器设备,其包括单调计数器;以及
主机设备,其通信地耦合于所述闪速存储器设备,以便:
生成认证证书;
使用所述认证证书和设备密钥来请求来自所述单调计数器的值,所述单调计数器包括在所述闪速存储器设备中;
从所述单调计数器接收所述值并且从所述闪速存储器设备接收所述认证证书;
用来自所述单调计数器的递增值对数据加密;以及
向所述闪速存储器发送加密数据、所述设备密钥和使所述单调计数器递增的命令;
其中所述闪速存储器设备用所述设备密钥来验证对来自所述单调计数器的所述值的所述请求和使所述单调计数器递增的所述命令。
提供了一种用于安全的单调计数器操作的装置,包括:
闪速存储器设备控制器;以及
主机设备,其通信地耦合于所述闪速存储器控制器,以便:
生成认证证书;
使用所述认证证书和设备密钥经由所述闪速存储器设备控制器请求来自单调计数器的值;
从所述单调计数器接收所述值并且从所述闪速存储器设备控制器接收所述认证证书;
用来自所述单调计数器的递增值对数据加密;以及
向所述闪速存储器控制器发送加密数据、所述设备密钥和使所述单调计数器递增的命令;
其中所述闪速存储器设备控制器用所述设备密钥来验证对来自所述单调计数器的所述值的所述请求和使所述单调计数器递增的所述命令。
提供了一种用于安全的单调计数器操作的方法,包括:
生成认证证书;
使用所述认证证书和设备密钥来请求来自单调计数器的值,所述单调计数器包括在闪速存储器设备中;
从所述单调计数器接收所述值和所述认证证书;
用来自所述单调计数器的递增值对数据加密;以及
向所述闪速存储器设备发送认证证书、所述设备密钥和使所述单调计数器递增的命令。
附图说明
下列描述包括附图的论述,附图具有通过本发明的实施例的实现示例的方式给出的说明。附图应通过示例而非限制的方式来理解。如本文使用的,对一个或多个“实施例”的引用要理解为描述在本发明的至少一个实现中包括的特定特征、结构或特性。从而,在本文出现的例如“在一个实施例中”或“在备选实施例中”的短语描述本发明的各种实施例和实现,并且不一定全部都指相同的实施例。然而,它们也不一定互相排斥。
图1是本发明的实施例的框图。
图2是根据本发明的实施例生成唯一根密钥和HMAC操作密钥的过程的流程图。
图3是根据本发明的实施例用于获得单调计数器值的流程图。
图4是根据本发明的实施例的系统的框图。
图5是可利用本发明的实施例的设备的框图。
接着是某些细节和实现的描述,包括附图的描述(这些图可描绘下文描述的实施例中的一些或全部)以及论述本文呈现的发明概念的其他潜在实施例或实现。在下文提供本发明的实施例的概述,后面是参考附图的更详细描述。
具体实施方式
本发明的实施例在闪速存储器设备(例如,串行外围接口(SPI)闪速存储器设备)中创建底层基础设施使得可以保护它以免用户攻击-例如,替换SPI闪速存储器设备或中间人(MITM)攻击以在运行中修改SPI闪速存储器内容。在现有技术中,单调计数器因为SPI闪速存储器设备未对计数器提供重放保护而无法存储在所述设备中。例如,用户可移除闪速存储器设备并且对它重新编程。主机平台单独无法防止这样的硬件攻击。
本发明的实施例使例如SPI闪速存储器设备的安全的标准存储闪速存储器设备能够对安全存储的单调计数器值实现重放保护。本发明的实施例利用闪速存储器控制器、闪速存储器设备、唯一设备密钥和基于哈希的消息认证代码(HMAC)密钥逻辑来对各种平台部件创建多个安全的执行环境(SEE)。
图1是本发明的实施例的框图。系统100示出为包括闪速存储器设备110和平台互连120(例如,平台控制器集线器(PCH))。在该实施例中,SPI闪速存储器设备110使用SPI协议与平台互连120通信,并且本发明的实施例实现为所述协议的扩展;在其他实施例中,可如下文描述的那样使用其他非易失性存储器设备和协议。
SPI闪速存储器设备110包括HMAC密钥寄存器111、HMAC逻辑112、单调计数器113和块写保护逻辑114,其禁用/启用到闪速存储器设备的存储器的写入。HMAC密钥寄存器111可存储从平台互连120(下文描述的)接收的一个或多个HMAC密钥。在一个实施例中,HMAC密钥寄存器111是不可读的,并且所述设备HMAC密钥永久写入所述寄存器。HMAC逻辑112应证实从平台互连120接收的经认证的命令,并且还应利用上文描述的设备HMAC密钥来生成经认证的对所述命令的响应。在一个实施例中,所述HMAC逻辑利用基于哈希的消息认证代码/安全哈希算法(HMAC-SHA)算法用于认证请求并且生成响应(例如,HMAC-SHA-256签名算法)。在其他实施例中,可利用任何其他相似的签名算法。
在对于使用SPI协议的SPI闪存的实施例中,可以使用下文的表1中的经认证的命令。
表1
单调计数器(或计数器)113代表单调计数器值的硬件存储。所述单调计数器可配置成在请求计数时这样做(例如,递增或递减),并且响应于读取对于计数器的操作而产生单调计数值。
平台互连120包括现场可编程熔丝(FPF)121、SPI闪速控制器122、管理引擎(ME)执行环境123、HMAC密钥寄存器124、HMAC逻辑125、单调计数器逻辑126和块写保护逻辑127。ME执行环境123提供安全和隔离环境,其例如可不被主机操作系统访问。所述管理引擎(ME)可例如认证用户并且控制对外围设备(未示出)的访问。
平台互连120可基于唯一设备密钥,其可以是熔断来得到唯一设备密钥的一组熔丝(例如在制造过程期间熔断)。在利用基于HMAC-SHA的消息传递的实施例中,所述唯一设备密钥可用于得到存储在HMAC密钥寄存器124中的唯一HMAC密钥。在印刷电路板(PCB)制造过程期间,唯一HMAC密钥使用根密钥寄存器写命令(在上文的表1中示出的)而预备到SPI闪存内。该密钥仅写一次并且在平台互连120与SPI闪存110之间建立公共秘密。在一个例示中,在SPI闪速存储器设备110与平台互连120之间交换的基于HMAC的命令和响应(如下文描述的)确保重放保护数据存储在所述闪速存储器设备中。
在对于SPI接口的实施例中,--OP1/OP2命令利用在下文在表2中示出的格式而发出:
表2
在接收OP1命令后,SPI闪存立即设置Busy并且在完全执行命令后重设它。控制器可以使用轮询状态命令来轮询Busy状态。在重设busy位后,扩展状态字段包含被执行命令的详细状态。控制器可以在接收重设的Busy位后响应于轮询状态命令来读取扩展状态。
在发出对于所有命令类型的OP1之前可需要写使能(WREN)。SPI闪存在执行OP1命令之前检查有效的WREN相关状态并且在执行OP1命令后更改写使能相关状态。如果接收了OP1命令并且WREN相关状态是不适当的,则在扩展状态寄存器中设置错误标志。
扩展寄存器状态在下文在表3中示出:
表3
在不同的例示中,HMAC根密钥与第一例示相似地存储,但在实际操作期间,HMAC操作密钥使用HMAC命令操作基于HMAC根密钥而得到。
本发明的实施例通过提供重放保护单调计数器存储机制来修改SPI闪速存储器设备110。这通过预备在SPI闪速存储器设备110与平台互连120之间交换的并且存储在例如HMAC密钥寄存器111和124中的公共HMAC密钥而创建。在该实施例中,操纵单调计数器113的所有命令是经认证的命令。因为经认证的命令仅可以由设备密钥的所有者(在该实施例中,ME执行环境123和SPI闪速存储器设备110)发出,没有其他实体能够访问单调计数器以便读取和/或操纵计数器。
访问或操纵单调计数器113的命令可以与串行闪存发现参数(SFDP)标准(例如,如在2011年4月的JEDEC标准JESD16中限定的)一致或基于它。
SFDP标准允许闪速存储器与设备内的重要设备特性的描述一起嵌入参数表的标准集中。主机系统然后可以读取参数表来理解设备的功能特性和能力。
本发明的实施例可利用如在下文在表4中描述的报头字段:
表4
表5是所述参数表的示例:
表5
图2是根据本发明的实施例生成唯一根密钥和HMAC操作密钥的过程的流程图。如本文图示的流程图提供各种过程动作的序列示例。尽管按特定序列或顺序示出,除非另外规定,可以修改动作的顺序。从而,图示的实现应仅理解为示例,并且图示的过程可以按不同的顺序进行,并且一些动作可并行执行。另外,在本发明的各种实施例中可以省略一个或多个动作;从而,在每一个实现中并不需要所有动作。其他过程流是可能的。
在一个实施例中,执行过程200使得在安全环境中对根密钥编程,210。在一个实施例中,安全环境是这样的制造环境,其中平台设备和SPI设备安装在相同的母板或PCB衬底上。在不同的实施例中,安全环境是这样的制造环境,其中平台设备和SPI设备安装在多芯片封装件中。所述制造环境是安全的,因为一旦完成平台制造,SPI接口迹线无法被保留或漏出。
主机平台设备互连基于FPF而维持内部状态来指示该编程之前是否完成,215。FPF仅可以熔断一次并且状态无法被保留。如果FPF熔断,它暗指根密钥编程之前完成并且未发出根密钥编程命令,220。如果FPF未熔断,发出根密钥编程命令,230并且通过熔断对应的FPF,240而将状态记录在平台互连中。一旦成功完成该命令,平台互连和SPI闪存具有可以用于未来事务的相同根密钥,250-260。
一旦已经用根密钥对SPI闪速存储器设备编程,230,相应的单调计数器可初始化,270。在一个实施例中,所述单调计数器初始化为零。在其他实施例中,非零值可用于使所述计数器初始化。
图2是根据本发明的实施例生成唯一根密钥和HMAC操作密钥的过程的流程图。在过程的正常操作期间,平台互连使用上面提到的生成的根密钥来生成HMAC操作密钥。在一个实施例中,平台互连使用当前安全版本号作为消息数据。由平台互连生成的HMAC操作密钥进而用于对经认证的HMAC消息签名。对应的签名附加到消息。
在包含安全版本号的SPI接口上发出HMAC密钥生成命令。一旦该命令由SPI设备接收,它使用安全版本号和之前编程的根密钥来生成HMAC操作密钥。SPI设备然后使用整个HMAC密钥生成命令作为消息数据和HMAC操作密钥作为生成签名的密钥。作为命令的部分,它将生成的签名与接收的签名比较。如果两个签名匹配,则允许成功完成HMAC密钥生成命令;否则,HMAC密钥生成命令失败。
图3是用于根据本发明的实施例获得单调计数器值的流程图。
如在过程300中示出的,平台互连的ME固件可生成认证证书,310。在一个实施例中,所述认证证书包括随机数(nonce)(即,随机或伪随机数),其发出用于下文描述的认证目的。
作为命令的部分,所述ME固件使用认证证书(随机数)来请求存储在SPI闪速存储器设备上的单调计数器的值,320。在一个实施例中,所述请求进一步包括基于操作HMAC密钥的签名使得所述SPI闪存可认证对源于认证实体的单调计数器值的请求。
SPI闪速存储器设备验证经认证的命令,330。如果命令被认证(例如,如果它包括使用HMAC密钥而签名的正确签名),计数器值连同上面提到的认证证书(例如,随机数、签名)返回平台互连,340。如果随机数和签名被证实为正确的,平台互连可在安全ME固件执行环境中使用计数器值,350(再次使用操作HMAC密钥)。
ME固件发送递增计数器命令、当前单调计数器值连同HMAC签名,360。SPI闪速存储器设备对于适当的签名和当前计数器值证实对使计数器递增的请求,370。如果它被证实,则单调计数器递增,380。在一些实施例中,高水位线或阈值用于单调计数器,并且如果递增的计数器等于或超出该阈值,上文描述的计数器在闪速存储器设备上未递增。响应于计数器超出阈值,本发明的实施例可使计数器重新初始化(或利用不同的计数器)并且再次执行过程300。
从而,如上文描述的,本发明的实施例对SPI闪存利用离开芯片(例如,离开平台互连)的单调计数器存储机制。由于闪速存储器设备的非易失性存储,这防止从利用例如SRAM等易失性存储器的现有技术的解决方案去除电池的任何敏感性。与使不同的闪速存储器设备添加有重放保护存储或在现有的闪存设备上添加全数据保护的现有技术的解决方案相比,本发明的实施例还导致更低的成本。
例如,在闪存替换攻击中,攻击者可以能够移除闪速存储器设备并且将单调计数器的值重新编程为较旧的值;然而,利用本发明,计数器内容无法被重写,除非程序员可以猜中设备密钥。如果攻击者用完全不同的闪存来替换SPI闪存,ME将因为从SPI闪存回来的响应不再能够对于有效签名被认证而检测到此。
在中间人(MITM)攻击中,攻击者可试图在ME固件栈不知道它的存在的情况下操纵单调计数器操作。例如,攻击者可希望响应于从平台互连发出的读计数器命令而替代单调计数器的旧值;然而,因为用随机数发出每个经认证的命令,如果攻击者用包含到单调计数器的旧值的早期响应来替换对读命令的响应,ME固件将检测到丢失或不正确的随机数值。
本发明的实施例可进一步支持多个重放保护单调计数器。每个个体单调计数器可作为对主机平台上的个体安全执行环境的资源而可用。从而,本发明的实施例可使不同的安全执行环境隔离并且保护它们以免访问不属于它们的单调计数器资源。在可需要一些固件更新/恢复机制的一个安全执行环境中还可存在安全漏洞。本发明的实施例可因此通过提供隔离的安全执行环境而支持独立固件更新/恢复。
尽管上文描述的实施例说明利用单调计数器来对平台互连提供SEE的本发明的实施例,其他实施例对例如处理器或处理核的其他平台部件提供SEE。
图4是根据本发明的实施例的系统的框图。在该实施例中,系统400包括SPI闪速存储器设备410,其支持多个重放保护单调计数器。每个个体单调计数器作为对主机平台上的各种设备的个体安全执行环境的资源而可用。除保护计数器免受用户攻击之外,本发明的实施例还使不同的安全执行环境隔离并且保护它们以免访问不属于它们的单调计数器资源。
SPI闪速存储器设备410包括HMAC密钥寄存器411、HMAC密钥逻辑412、单调计数器413和块写保护逻辑414。HMAC密钥寄存器411可存储从管理引擎(ME)逻辑420和处理器430(上文描述的)接收的一个或多个HMAC密钥。所述HMAC密钥可与特定单调计数器关联。在一个实施例中,HMAC密钥寄存器411是不可读的。HMAC逻辑412可证实从ME 420和处理器430接收的单调计数器请求命令,并且还可生成对所述命令的经认证的响应。
单调计数器413可以是对于多个计数器值的硬件存储。所述单调计数器还可配置成在请求计数时这样做(例如,递增或递减),并且响应于读操作而产生单调计数值。
SPI闪速存储器405包括主机命令访问控制406和SPI闪存接口控制407,用于从系统400的各种部件接收请求并且确保对系统400的每个SEE分配唯一单调计数器。
ME 420包括FPF 421、HMAC密钥衍生422、根密钥存储423、ME执行环境424、HMAC密钥寄存器425、HMAC密钥生成逻辑426、单调计数器逻辑427和块写保护428。HMAC密钥衍生422可使用存储在根密钥存储423中的根密钥来得到HMAC密钥(所述根密钥可进一步基于FPF 421的熔断熔丝而从设备密钥得到)。HMAC密钥寄存器425可存储所述HMAC密钥,并且HMAC逻辑426可认证对分配给ME 420的单调计数器的请求和命令(例如,如在图3的过程300中描述的命令)。
单调计数器逻辑427可存储它相应的单调计数器(即,单调计数器413中的一个)的检索值并且还可存储它相应的单调计数器的地址;从而SPI闪速控制器405转发来自ME 420的指向正确地址的单调计数器请求,从而确保ME执行环境424不访问无关的单调计数器。
处理器430包括FPF 431、HMAC密钥衍生432、根密钥存储433、处理器执行环境434、HMAC密钥寄存器435、HMAC逻辑436、单调计数器逻辑437和块写保护438。处理器执行环境434可以是可由主机系统OS访问的安全执行环境。
HMAC密钥衍生432可使用存储在根密钥存储433中的根密钥来得到HMAC密钥(所述根密钥可进一步基于FPF 431的熔断熔丝从设备密钥得到)。HMAC密钥寄存器435可存储所述HMAC密钥,并且HMAC逻辑436可认证对分配给处理器430的单调计数器的请求和命令(例如,如在图3的过程300中描述的命令)。
单调计数器逻辑437可存储它相应的单调计数器(即,单调计数器413中的一个)的检索值并且还可存储它相应的单调计数器的地址;从而SPI闪存控制器405可仅转发来自处理器430的指向正确地址的单调计数器请求,从而确保处理器执行环境434不访问无关的单调计数器。
图5是可利用本发明的实施例的设备的框图。计算设备500代表移动计算设备,例如计算平板、移动电话或智能电话、无线使能的电子阅读器或其他无线移动设备。将理解一般示出部件中的某些,并且不是这样的设备的所有部件都在设备500中示出。
设备500包括处理器510,其进行设备500的主要处理操作。处理器510可以包括一个或多个物理设备,例如微处理器、应用处理器、微控制器、可编程逻辑设备、处理器核或其他处理器件。由处理器510进行的处理操作包括执行应用和/或设备功能所在的操作平台或操作系统的执行。处理操作包括与人类用户或其他设备的涉及I/O(输入/输出)的操作、与电力管理有关的操作和/或与使设备500连接到另一个设备有关的操作。处理操作还可包括与音频I/O和/或显示I/O有关的操作。
在一个实施例中,设备500包括音频子系统520,其代表与向计算设备提供音频功能关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动器、编解码器)部件。音频功能可以包括扬声器和/或头戴受话器输出,以及经由上文描述的音频插孔中的任一个的麦克风输入。对于这样的功能的设备可以集成到设备500内,或连接到设备500。在一个实施例中,用户通过提供被处理器510接收和处理的音频命令而与设备500交互。
显示子系统530代表对用户提供视觉和/或触觉显示来与计算设备交互的硬件(例如,显示设备)和软件(例如,驱动器)部件。显示子系统530包括显示接口532,其包括用于向用户提供显示的特定屏幕或硬件设备。在一个实施例中,显示界面532包括与处理器510分离来进行与显示有关的至少一些操作的逻辑。在一个实施例中,显示子系统530包括触屏设备,其向用户提供输出和输入两者。
I/O控制器540代表与用户的交互有关的硬件设备和软件部件。I/O控制器540可以操作来管理作为音频子系统520和/或显示子系统530的一部分的硬件。另外,I/O控制器540图示对于连接到设备500的额外设备的连接点,用户可通过该连接点来与系统交互。例如,可以附连到设备500的设备可包括麦克风设备、扬声器或立体声系统、视频系统或其他显示设备、键盘或小键盘设备或用于与例如卡阅读器或其他设备等特定应用一起使用的其他I/O设备。
如上文提到的,I/O控制器540可以与音频子系统520和/或显示子系统530交互。例如,通过麦克风或其他音频设备的输入可以对设备500的一个或多个应用或功能提供输入或命令。另外,可以提供音频输出来代替显示输出,或除显示输出外还可以提供音频输出。在另一个示例中,如果显示子系统包括触屏,显示设备还充当输入设备,其可以至少部分由I/O控制器540管理。在设备500上还可以存在额外的按钮或开关来提供由I/O控制器540管理的I/O功能。
在一个实施例中,I/O控制器540管理例如加速计、照相机、光传感器或其他环境传感器等设备,或可以包括在设备500中的其他硬件。输入可以是直接用户交互的一部分,以及向系统提供环境输入来影响它的操作(例如对于噪声的过滤、调整显示器用于亮度检测、对照相机应用闪光灯,或其他特征)。在一个实施例中,设备500包括功率管理550,其管理电池功率使用、电池的充电和与功率节省操作有关的特征。
存储器子系统560包括用于将信息存储在设备500中的存储器设备。存储器可以包括非易失性(如果对存储器设备的电力被中断,状态不改变)和/或易失性(如果对存储器设备的电力被中断,状态不确定)存储器设备。存储器560可以存储应用数据、用户数据、音乐、照片、文件或其他数据,以及与系统500的应用和功能的执行有关的系统数据(无论是长期还是暂时的)。
连接性570包括用于使设备500能够与外部设备通信的硬件设备(例如,无线和/或有线连接器和通信硬件)和软件部件(例如,驱动器、协议栈)。设备可以是例如其他计算设备、无线接入点或基站的独立设备,以及例如头戴式送受话器、打印机或其他设备的外围设备。
连接性570可以包括多个不同类型的连接性。为了一般化,设备500图示有蜂窝连接性572和无线连接性574。蜂窝连接性572一般指由无线载波提供的蜂窝网络连接性,例如经由GSM(全球移动通信系统)或变化或衍生、CDMA(码分多址)或变化或衍生、TDM(时分复用)或变化或衍生或其他蜂窝服务标准提供的。无线连接性574指不是蜂窝的无线连接性,并且可以包括个人区域网(例如蓝牙)、局域网(例如WiFi)和/或广域网(例如WiMax)或其他无线通信。
外围连接580包括硬件接口和连接器,以及软件部件(例如,驱动器、协议栈),用于进行外围连接。将理解设备500可以既是到其他计算设备(“到”582)的外围设备,又具有连接到它的外围设备(“从”584)。设备500通常具有“对接”连接器,用于连接到其他计算设备用于例如管理(例如,下载和/或上传、改变、同步)设备500上的内容的目的。另外,对接连接器可以允许设备500连接到某些外设,其允许设备500控制例如到视听或其他系统的内容输出。
除外围对接连接器或其他外围连接硬件外,设备500可以经由公共或基于标准的连接器来进行外围连接580。公共类型可以包括通用串行总线(USB)连接器(其可以包括许多不同的硬件接口中的任一个)、DisplayPort,其包括MiniDisplayPort(MDP)、高清晰度多媒体接口(HDMI)、火线或其他类型。所述外围连接硬件可利用根据上文描述的本发明的实施例中的任一个的单调计数器。
本文描述的在上文称为过程、服务器或工具的各种部件可以是用于进行描述的功能的器件。本文描述的每个部件包括软件或硬件或这些的组合。每个和所有部件可实现为软件模块、硬件模块、专用硬件(例如,应用特定硬件、ASIC、DSP,等)、嵌入式控制器、硬接线电路、硬件逻辑等。软件内容(例如,数据、指令、配置)可经由制造物品而提供,该制造物品包括非暂时性、有形计算机或机器可读存储介质,其提供代表可以被执行的指令的内容。该内容可导致计算机进行本文描述的各种功能/操作。
计算机可读非暂时性存储介质包括提供(即,存储和/或传送)采用可被计算机(例如,计算设备、电子系统,等)访问的形式的信息的任何机制,例如可记录/不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储器设备,等)。内容可以是直接可执行的(“对象”或“可执行文件”形式)源代码或差分代码(“增量”或“补丁”代码)。计算机可读非暂时性存储介质还可包括可从其下载内容的存储或数据库。所述计算机可读存储介质还可包括在销售或交付时具有存储在其上的内容的设备或产品。从而,交付具有存储的内容的设备或提供内容用于通过通信介质来下载可理解为将本文描述的这样的内容提供给制造物品。

Claims (20)

1.一种用于安全的单调计数器操作的系统,包括:
闪速存储器设备,其包括单调计数器;以及
主机设备,其通信地耦合于所述闪速存储器设备,以便:
生成认证证书;
使用所述认证证书和设备密钥来请求来自所述单调计数器的值,所述单调计数器包括在所述闪速存储器设备中;
从所述单调计数器接收所述值并且从所述闪速存储器设备接收所述认证证书;
用来自所述单调计数器的递增值对数据加密;以及
向所述闪速存储器发送加密数据、所述设备密钥和使所述单调计数器递增的命令;
其中所述闪速存储器设备用所述设备密钥来验证对来自所述单调计数器的所述值的所述请求和使所述单调计数器递增的所述命令。
2.如权利要求1所述的系统,其中所述闪速存储器设备包括第二单调计数器,所述系统进一步包括:
第二主机设备,其通信地耦合于所述闪速存储器设备,以便:
生成第二认证证书;
使用所述第二认证证书和第二设备密钥来请求来自所述第二单调计数器的值,所述第二单调计数器包括在所述闪速存储器设备中;
从所述第二单调计数器接收所述值并且从所述闪速存储器设备接收所述第二认证证书;
用来自所述单调计数器的递增的第二值对数据加密;以及
向所述闪速存储器发送加密数据、所述设备密钥和使所述第二单调计数器递增的命令;
其中所述闪速存储器设备用所述第二设备密钥来验证对来自所述第二单调计数器的所述值的所述请求和使所述第二单调计数器递增的所述命令。
3.如权利要求2所述的系统,其中所述主机设备包括平台互连并且所述第二主机设备包括处理器。
4.如权利要求2所述的系统,所述闪速存储器设备将所述设备密钥和所述第二设备密钥存储在不可读密钥寄存器中。
5.如权利要求1所述的系统,其中所述闪速存储器设备包括串行外围接口(SPI)闪速存储器设备。
6.如权利要求1所述的系统,其中所述设备密钥基于在所述主机设备中包括的多个现场可编程熔丝(FPF)。
7.如权利要求1所述的系统,所述主机设备基于基于哈希的消息认证代码/安全哈希算法(HMAC-SHA)算法来对所述数据加密。
8.如权利要求1所述的系统,其中所述认证证书包括随机数。
9.一种用于安全的单调计数器操作的装置,包括:
闪速存储器设备控制器;以及
主机设备,其通信地耦合于所述闪速存储器控制器,以便:
生成认证证书;
使用所述认证证书和设备密钥经由所述闪速存储器设备控制器请求来自单调计数器的值;
从所述单调计数器接收所述值并且从所述闪速存储器设备控制器接收所述认证证书;
用来自所述单调计数器的递增值对数据加密;以及
向所述闪速存储器控制器发送加密数据、所述设备密钥和使所述单调计数器递增的命令;
其中所述闪速存储器设备控制器用所述设备密钥来验证对来自所述单调计数器的所述值的所述请求和使所述单调计数器递增的所述命令。
10.如权利要求9所述的装置,其中所述主机设备包括平台互连。
11.如权利要求9所述的装置,其中所述主机设备包括处理器。
12.如权利要求9所述的装置,其中所述闪速存储器设备控制器包括串行外围接口(SPI)闪速存储器控制器。
13.如权利要求9所述的装置,其中所述设备密钥基于在所述主机设备中包括的多个现场可编程熔丝(FPF)。
14.如权利要求9所述的装置,所述主机设备基于基于哈希的消息认证代码/安全哈希算法(HMAC-SHA)算法来对所述数据加密。
15.如权利要求9所述的装置,其中所述认证证书包括随机数。
16.一种用于安全的单调计数器操作的方法,包括:
生成认证证书;
使用所述认证证书和设备密钥来请求来自单调计数器的值,所述单调计数器包括在闪速存储器设备中;
从所述单调计数器接收所述值和所述认证证书;
用来自所述单调计数器的递增值对数据加密;以及
向所述闪速存储器设备发送认证证书、所述设备密钥和使所述单调计数器递增的命令。
17.如权利要求16所述的方法,其中所述闪速存储器设备包括串行外围接口(SPI)闪速存储器设备。
18.如权利要求16所述的方法,其中所述设备密钥基于多个现场可编程熔丝(FPF)。
19.如权利要求16所述的方法,其中对所述数据加密基于基于哈希的消息认证代码/安全哈希算法(HMAC-SHA)算法。
20.如权利要求16所述的方法,其中所述认证证书包括随机数。
CN201180075706.9A 2011-12-20 2011-12-20 用于安全的重放保护存储的系统、装置和方法 Active CN103988185B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/066188 WO2013095387A1 (en) 2011-12-20 2011-12-20 Secure replay protected storage

Publications (2)

Publication Number Publication Date
CN103988185A CN103988185A (zh) 2014-08-13
CN103988185B true CN103988185B (zh) 2017-02-15

Family

ID=48669046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180075706.9A Active CN103988185B (zh) 2011-12-20 2011-12-20 用于安全的重放保护存储的系统、装置和方法

Country Status (3)

Country Link
US (1) US9405707B2 (zh)
CN (1) CN103988185B (zh)
WO (1) WO2013095387A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152428B2 (en) 2012-09-28 2015-10-06 Intel Corporation Alternative boot path support for utilizing non-volatile memory devices
US10257192B2 (en) * 2014-05-29 2019-04-09 Samsung Electronics Co., Ltd. Storage system and method for performing secure write protect thereof
US10846438B2 (en) 2014-07-24 2020-11-24 Nuvoton Technology Corporation RPMC flash emulation
US9626119B2 (en) * 2014-11-14 2017-04-18 Intel Corporation Using counters and a table to protect data in a storage device
US9934412B2 (en) * 2015-06-23 2018-04-03 Microsoft Technology Licensing, Llc Implementing replay protected storage
US9864879B2 (en) 2015-10-06 2018-01-09 Micron Technology, Inc. Secure subsystem
CN108292340A (zh) 2016-02-19 2018-07-17 惠普发展公司,有限责任合伙企业 在运行时间期间向安全数据存储设备安全地写入数据
US10126960B2 (en) * 2016-05-10 2018-11-13 Qualcomm Incorporated Fuse-based anti-replay mechanism
JP6164712B1 (ja) 2016-08-18 2017-07-19 ウィンボンド エレクトロニクス コーポレーション フラッシュメモリ
WO2019081057A1 (en) * 2017-10-27 2019-05-02 Giesecke+Devrient Mobile Security Gmbh RULE MEMORY
US10659054B2 (en) * 2018-02-23 2020-05-19 Nxp B.V. Trusted monotonic counter using internal and external non-volatile memory
US10553058B2 (en) 2018-06-29 2020-02-04 Micron Technology, Inc. Secure wireless lock-actuation exchange
US11443072B2 (en) * 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
US11056192B2 (en) * 2018-12-21 2021-07-06 Micron Technology, Inc. Monotonic counters in memories
US11514174B2 (en) * 2019-01-23 2022-11-29 Micron Technology, Inc. Memory devices with cryptographic components
US10860500B2 (en) * 2019-01-28 2020-12-08 Intel Corporation System, apparatus and method for replay protection for a platform component
US11120167B2 (en) * 2019-03-25 2021-09-14 Micron Technology, Inc. Block chain based validation of memory commands
TWI728572B (zh) * 2019-07-04 2021-05-21 新唐科技股份有限公司 具有快閃記憶體仿真功能之控制器及其控制方法
US11681536B2 (en) 2019-12-06 2023-06-20 Lattice Semiconductor Corporation Fast boot systems and methods for programmable logic devices
WO2021174264A1 (en) * 2020-02-27 2021-09-02 Vietnam Onyx Joint Stock Company Method for remotely activating a remote lock system using cryptography and the remote lock system for implementing the method
CN111159720B (zh) * 2020-03-27 2020-07-24 深圳市芯天下技术有限公司 对应答保护单调计数器rpmc进行测试的系统
CN111261214B (zh) * 2020-04-30 2020-08-07 深圳市芯天下技术有限公司 应答保护单调计数器及管理其计数值的方法
US20220021544A1 (en) * 2020-07-15 2022-01-20 Micron Technology, Inc. Secure Serial Peripheral Interface (SPI) Flash
US11714561B2 (en) * 2020-07-17 2023-08-01 Samsung Electronics Co., Ltd. System, device and method for writing data to protected region
CN112560121B (zh) * 2020-12-08 2024-01-19 武汉新芯集成电路制造有限公司 单调计数器及其根密钥处理方法
CN112231777A (zh) * 2020-12-14 2021-01-15 武汉新芯集成电路制造有限公司 一种单调计数器及其单调计数方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101388053A (zh) * 2007-06-20 2009-03-18 英特尔公司 对数据进行加密、完整性和防重发保护的方法、系统和装置
CN101589399A (zh) * 2006-09-27 2009-11-25 信托逻辑公司 用于保护数据的系统和方法
US7774619B2 (en) * 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410710A (en) 1990-12-21 1995-04-25 Intel Corporation Multiprocessor programmable interrupt controller system adapted to functional redundancy checking processor systems
US5555420A (en) 1990-12-21 1996-09-10 Intel Corporation Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management
US5615343A (en) 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
US5701503A (en) 1994-01-04 1997-12-23 Intel Corporation Method and apparatus for transferring information between a processor and a memory system
US5551005A (en) 1994-02-25 1996-08-27 Intel Corporation Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches
US5572702A (en) 1994-02-28 1996-11-05 Intel Corporation Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US5797026A (en) 1994-02-28 1998-08-18 Intel Corporation Method and apparatus for self-snooping a bus during a boundary transaction
US5682516A (en) 1994-03-01 1997-10-28 Intel Corporation Computer system that maintains system wide cache coherency during deferred communication transactions
US5550988A (en) 1994-03-01 1996-08-27 Intel Corporation Apparatus and method for performing error correction in a multi-processor system
US6061599A (en) 1994-03-01 2000-05-09 Intel Corporation Auto-configuration support for multiple processor-ready pair or FRC-master/checker pair
US6006299A (en) 1994-03-01 1999-12-21 Intel Corporation Apparatus and method for caching lock conditions in a multi-processor system
US5572703A (en) 1994-03-01 1996-11-05 Intel Corporation Method and apparatus for snoop stretching using signals that convey snoop results
US5515516A (en) 1994-03-01 1996-05-07 Intel Corporation Initialization mechanism for symmetric arbitration agents
US5623628A (en) 1994-03-02 1997-04-22 Intel Corporation Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue
US5724527A (en) 1995-12-28 1998-03-03 Intel Corporation Fault-tolerant boot strap mechanism for a multiprocessor system
US6711675B1 (en) 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US6938153B2 (en) 2001-06-26 2005-08-30 Intel Corporation Method and system for using internal FIFO RAM to improve system boot times
US20030046524A1 (en) 2001-08-30 2003-03-06 Zimmer Vincent J. Method for dynamically designating initialization modules as recovery code
US6938127B2 (en) 2001-09-25 2005-08-30 Intel Corporation Reconfiguring memory to reduce boot time
US7299463B2 (en) 2001-09-28 2007-11-20 Intel Corporation Method for atomically updating a plurality of files
US20030188146A1 (en) 2002-03-28 2003-10-02 Hale Robert P. Method of ordered execution of firmware modules in a pre-memory execution environment
US6986035B2 (en) 2002-07-31 2006-01-10 Intel Corporation Modular bios for detecting resources of a system and reporting information about the resources during two separate phases
US7254676B2 (en) 2002-11-15 2007-08-07 Intel Corporation Processor cache memory as RAM for execution of boot code
US20050027940A1 (en) 2003-08-01 2005-02-03 Zimmer Vincent J. Methods and apparatus for migrating a temporary memory location to a main memory location
US7376870B2 (en) 2004-09-30 2008-05-20 Intel Corporation Self-monitoring and updating of firmware over a network
US20060136765A1 (en) 2004-12-03 2006-06-22 Poisner David L Prevention of data loss due to power failure
US20060271796A1 (en) * 2005-05-25 2006-11-30 Kaimal Biju R Method and system for protecting information stored in an electronic device against backup and restore attack
US7809957B2 (en) * 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US7945790B2 (en) * 2006-12-04 2011-05-17 Intel Corporation Low-cost pseudo-random nonce value generation system and method
US8646052B2 (en) 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
US8195973B2 (en) * 2008-04-14 2012-06-05 Dell Products, Lp Method to implement a monotonic counter with reduced flash part wear
US8966657B2 (en) 2009-12-31 2015-02-24 Intel Corporation Provisioning, upgrading, and/or changing of hardware
US8762742B2 (en) * 2011-05-16 2014-06-24 Broadcom Corporation Security architecture for using host memory in the design of a secure element
US9235719B2 (en) 2011-09-29 2016-01-12 Intel Corporation Apparatus, system, and method for providing memory access control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774619B2 (en) * 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory
CN101589399A (zh) * 2006-09-27 2009-11-25 信托逻辑公司 用于保护数据的系统和方法
CN101388053A (zh) * 2007-06-20 2009-03-18 英特尔公司 对数据进行加密、完整性和防重发保护的方法、系统和装置

Also Published As

Publication number Publication date
WO2013095387A1 (en) 2013-06-27
US20140223198A1 (en) 2014-08-07
US9405707B2 (en) 2016-08-02
CN103988185A (zh) 2014-08-13

Similar Documents

Publication Publication Date Title
CN103988185B (zh) 用于安全的重放保护存储的系统、装置和方法
US9411748B2 (en) Secure replay protected storage
US10496811B2 (en) Counterfeit prevention
US10474823B2 (en) Controlled secure code authentication
CN107743624B (zh) 用于对等证实的方法、系统和机器可读介质
CN107592964B (zh) 用于设备的所有权的多所有者转移的系统、装置和方法
CN104541280B (zh) 用于利用非易失性存储器装置的备选引导路径支持
US10110411B2 (en) Device programming with system generation
CN102016867B (zh) 基于至少一个已安装的简档来授权执行软件代码的系统和方法
CN105164633B (zh) 由可信提供商进行的配置和验证
CN109313690A (zh) 自包含的加密引导策略验证
CN102667802A (zh) 硬件的配备、升级和/或更改
CN106656502A (zh) 计算机系统及安全执行的方法
US20080184341A1 (en) Master-Slave Protocol for Security Devices
CN106341381A (zh) 管理机架服务器系统的安全金钥的方法与系统
CN106663063A (zh) 写保护管理系统
JP2008532106A (ja) コンピュータへのデバイスのバインド
JP2005260676A (ja) セキュリティ装置、情報処理装置、セキュリティ装置の制御方法、情報処理装置の制御方法、該制御方法を実行させるための装置実行可能なプログラムおよびチケット・システム
TW201109969A (en) Method and system for securely updating field upgradeable units
CN106796633B (zh) 设备认证方法、装置、电子设备及从设备
CN106033503A (zh) 在数字内容设备中在线写入应用密钥的方法、装置及系统
JP2015036847A (ja) 半導体装置
Opasiak et al. (In) secure android debugging: Security analysis and lessons learned
CN114662112A (zh) 平台安全机制
KR20140082542A (ko) 보안부팅을 위한 인증수단의 변경을 지원하는 방법 및 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant