首页 / 专利库 / 专利权 / 第I章 / 安全储存系统以及用于安全储存的方法

安全储存系统以及用于安全储存的方法

阅读:529发布:2020-05-12

专利汇可以提供安全储存系统以及用于安全储存的方法专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种安全储存系统以及用于安全储存的方法,其中安全储存系统包括非挥发性储存器以及 控制器 。非挥发性储存器配置以储存第一数据项以及进一步储存分配给第一数据项的相应第一版本识别符。控制器配置以接收第二数据项以取代第一数据项,其中第二数据项伴随第二版本识别符以及签章、使用签章来至少验证第二版本识别符,以及在储存的第一版本识别符与第二版本识别符之间进行比较。由储存的第一版本识别符与经验证的第二版本识别符之间的比较所指示以第二数据项取代第一数据项以验证(i)第二版本识别符验证成功以及(ii)第二数据项比第一数据项还要新。,下面是安全储存系统以及用于安全储存的方法专利的具体信息内容。

1.一种安全储存系统,其特征在于,包括:
一非挥发性储存器,配置以储存一第一数据项,且更储存关于该第一数据项的相应的一第一版本识别符;以及
控制器,配置以:
接收一第二数据项以取代在该非挥发性储存器中的该第一数据项,其中,该第二数据项伴随着一第二版本识别符以及一签章;
使用该签章来至少验证该第二版本识别符;
在储存的该第一版本识别符与该第二版本识别符之间进行一比较;以及由储存的该第一版本识别符与经验证的该第二版本识别符之间的该比较所指示以该第二数据项取代该第一数据项以验证该第二版本识别符验证成功以及该第二数据项比该第一数据项还要新,来以第二数据项取代第一数据项。
2.如权利要求1所述的安全储存系统,其特征在于,该控制器配置来:
至少认证该第二版本识别符以产生一认证结果;
进行该比较;以及
根据该认证结果以及该比较,以一不可间断的操作来有条件的以该第二数据项来取代该第一数据项。
3.如权利要求1所述的安全储存系统,其特征在于,
该控制器配置根据该控制器与该第二数据项的一提供者共享的一安全密钥以检验该签章,来验证该第二版本识别符;以及
该控制器配置根据该安全密钥以及至少该第二版本识别符以计算接收的该第二数据项的该签章以产生一经计算的签章,并检查该经计算的签章是否匹配接收的该签章。
4.如权利要求1所述的安全储存系统,其特征在于,
该第一数据项占据该非挥发性储存器的一物理地址空间中的一第一物理储存位置
该控制器于该物理地址空间中为该第二数据项配置一第二物理储存位置,以在该第一物理储存位置的物理地址与在该储存系统所使用的一逻辑地址空间中的一第一逻辑储存位置的逻辑地址之间进行映射,且在该第二物理储存位置的物理地址与在该逻辑地址空间中的一第二逻辑储存位置的逻辑地址之间进行映射。
5.如权利要求4所述的安全储存系统,其特征在于,
该控制器配置通过该第二逻辑储存位置将该第二数据项写入至该非挥发性储存器的该第二物理储存位置,并以该第二数据项取代该第一数据项;
该控制器将该第一逻辑储存位置的逻辑地址重新映射至用于读取该第二数据项的该第二逻辑储存位置的物理地址,并以该第二数据项取代该第一数据项;以及该控制器配置以指定一写入保护指示符对写入的该第二物理存位置的定与解锁,以在将该第二数据项写入至该第二物理储存位置之前解锁该第二物理储存位置,且在将该第二数据项写入至该第二物理储存位置结束之后锁定该第二物理储存位置。
6.如权利要求4所述的安全储存系统,其特征在于,
该控制器通过向该非挥发性储存器发送多个写入命令,以将该第二数据项写入该第二物理储存位置,每一该写入命令载有该第二数据项的一相应部分;
每一该写入命令包括使用与该第二数据项相关联的一安全密钥来计算获得的一相应的命令签章,且该控制器配置仅在使用与该第二数据项相关联的该安全金钥对该相应的命令签章的检验后,才执行对应的该写入命令;以及
该相应命令签章被计算以用于该第二数据项以及该第二版本识别符,且该控制器配置以确认该相应的命令签章的该第二版本识别符比该第一版本识别符还要新之后,才执行该写入命令。
7.如权利要求1所述的安全储存系统,其特征在于,该控制器配置将该第二版本识别符存入该非挥发性储存器,以用于将第二版本识别符与一后续更新的一版本识别符进行比较。
8.一种用于安全储存的方法,其特征在于,包括:
储存一第一数据项以及分配给该第一数据项的相应的一第一版本识别符至一储存系统的一非挥发性储存器;
接收用来取代在该非挥发性储存器中的该第一数据项的一第二数据项,其中,该第二数据项伴随着一第二版本识别符以及一签章;
使用该签章来至少验证该第二版本识别符;
在储存的该第一版本识别符与经验证的该第二版本识别符之间进行一比较;以及由储存的该第一版本识别符与经验证的该第二版本识别符之间的该比较所指示以第二数据项取代该第一数据项以验证该第二版本识别符验证成功以及该第二数据项比该第一数据项还要新。
9.如权利要求8所述的用于安全储存的方法,其特征在于,更包括:
实施一单一不可间断操作,包括:
至少认证该第二版本识别符以产生一认证结果;
进行该比较;以及
根据该认证结果以及该比较,有条件的以该第二数据项来取代该第一数据项。
10.如权利要求8所述的用于安全储存的方法,其特征在于,验证该第二版本识别符的步骤包括:
根据该储存系统与该第二数据项的一提供者共享的一安全密钥来检验该签章;以及其中,检验该签章的步骤包括:
根据该安全密钥以及至少该第二版本识别符来计算关于接收的该第二数据项的该签章,以产生一经计算的签章;以及
检查该经计算的签章是否匹配接收的该签章。
11.如权利要求8所述的用于安全储存的方法,其特征在于,
该第一数据项占据在该非挥发性储存器的一物理地址空间中的一第一物理储存位置;
该用于安全储存的方法更包括:
为该第二数据项分配在该物理地址空间中的一第二物理储存位置;
在该第一物理储存位置的物理地址与在该储存系统所使用的一逻辑地址空间中的一第一逻辑储存位置的逻辑地址之间进行映射;以及
在该第二物理储存位置的物理地址与在该逻辑地址空间中的一第二逻辑储存位置的逻辑地址之间进行映射。
12.如权利要求11所述的用于安全储存的方法,其特征在于,
以该第二数据项来取代该第一数据项的步骤包括:
通过该第二逻辑储存位置将该第二数据项写入至该非挥发性储存器的该第二物理储存位置;
以该第二数据项来取代该第一数据项的步骤更包括:
通过将该第一逻辑储存位置的逻辑地址重新映射至用于读取该第二数据项的该第二逻辑储存位置的物理地址;以及
以该第二数据项来取代该第一数据项的步骤更包括:
指定关于写入该第二物理存位置的锁定与解锁的一写入保护指示符;
在将该第二数据项写入至该第二物理储存位置之前,解锁该第二物理储存位置;以及在将该第二数据项写入至该第二物理储存位置结束之后,锁定该第二物理储存位置。
13.如权利要求11所述的用于安全储存的方法,其特征在于,
以该第二数据项来取代该第一数据项的步骤包括:
通过向该非挥发性储存器发送多个写入命令,以将该第二数据项写入该第二物理储存位置,其中,每一该写入命令载有该第二数据项的一相应部分;
其中,每一该写入命令包括使用与该第二数据项相关联的一安全密钥来计算获得的一相应的共同签章;
用于安全储存的方法更包括:
仅在使用与该第二数据项相关联的该安全金钥对该相应的共同签章的检验后,才执行相应的该写入命令;
该相应的共同签章被计算以用于该第二数据项以及该第二版本识别符;以及执行每一该写入命令的步骤包括:
仅在确认该相应的共同签章的该第二版本识别符比该第一版本识别符还要新之后,才执行相应的该写入命令。
14.如权利要求8所述的用于安全储存的方法系统,其特征在于,更包括:
将该第二版本识别符存入该非挥发性储存器,以用于与一后续版本更新的一版本识别符进行比较。

说明书全文

安全储存系统以及用于安全储存的方法

技术领域

[0001] 本发明关于数据储存,且特别是关于一种用于储存器芯片中受安全的版本升级的方法与系统。

背景技术

[0002] 在各种手持式与其他装置中,处理器耦接至储存器芯片且执行储存在储存器芯片的电脑程序。在一些这样的装置中,储存器芯片以安全的方式来管理数据的储存。

发明内容

[0003] 本发明的一实施例提供一种安全储存系统,其包括非挥发性储存器以及控制器。非挥发性储存器配置以储存第一数据项,且更储存关于第一数据项相应的第一版本识别符。控制器配置以接收第二数据项以取代非挥发性储存器中的第一数据项。第二数据项伴随着第二版本识别符以及签章。控制器还配置来使用签章来至少验证第二版本识别符,以及在储存的第一版本识别符与第二版本识别符之间进行比较。控制器更配置由储存的第一版本识别符与经验证的第二版本识别符之间的比较所指示以第二数据项取代第一数据项以验证(i)第二版本识别符验证成功以及(ii)第二数据项比第一数据项还要新,来以第二数据项取代第一数据项。
[0004] 在一些实施例中,控制器配置以(i)至少认证第二版本识别符以产生认证结果、(ii)进行上述比较;以及(iii)根据认证结果以及上述比较,以不可间断的操作来有条件的以第二数据项来取代第一数据项。在其他实施例中,控制器配置根据控制器与第二数据项的提供者共享的安全密钥以检验签章,来验证第二版本识别符。在其他实施例中,控制器根据安全密钥以及至少第二版本识别符来计算接收的第二数据项的签章以产生经计算的签章以及检查经计算的签章是否匹配接收的签章。
[0005] 在一实施例中,第一数据项占据非挥发性储存器物理地址空间中的第一物理储存位置。控制器于物理地址空间中为第二数据项配置第二物理储存位置,以在第一物理储存位置的物理地址与在储存系统所使用的逻辑地址空间中的第一逻辑储存位置的逻辑地址之间进行映射,且在第二物理储存位置的物理地址与在逻辑地址空间中的第二逻辑储存位置的逻辑地址之间进行映射。在另一实施例中,控制器通过第二逻辑储存位置将第二数据项写入至非挥发性储存器的第二物理储存位置并以第二数据项取代第一数据项。在又一实施例中,控制器将第一逻辑储存位置的逻辑地址重新映射至用于读取第二数据项的第二逻辑储存位置的物理地址并以第二数据项取代第一数据项。
[0006] 在一些实施例中,控制器配置以指定写入保护指示符对写入的第二物理存位置定与解锁,以在将第二数据项写入至第二物理储存位置之前解锁第二物理储存位置,以及在将第二数据项写入至第二物理储存位置结束之后锁定第二物理储存位置。在其他实施例中,控制器通过向非挥发性储存器发送多个写入命令,以将第二数据项写入第二物理储存位置。每一写入命令载有第二数据项的一相应部分。在又一些其他实施例中,每一写入命令包括使用与第二数据项相关联的安全密钥来计算获得的相应的命令签章,且控制器配置仅在使用与第二数据项相关联的安全金钥对相应的命令签章的检验后,才执行对应的写入命令。
[0007] 在一些实施例中,上述相应指令签章被计算以用于第二数据项以及第二版本识别符,且控制器配置以确认相应的命令签章的第二版本识别符比第一版本识别符还要新之后,才执行写入命令。在其他实施例中,控制器配置以将第二版本识别符存入该非挥发性储存器,以用于将第二版本识别符与后续更新的版本识别符进行比较。
[0008] 本发明的一实施例提供一种用于安全储存的方法,包括以下步骤:储存第一数据项以及分配给第一数据项相应的第一版本识别符至储存系统的非挥发性储存器;接收用来取代在非挥发性储存器中的第一数据项的第二数据项,其中,第二数据项伴随着第二版本识别符以及签章;使用签章来至少验证第二版本识别符;在储存的第一版本识别符与经验证的第二版本识别符之间进行比较;以及由储存的第一版本识别符与经验证的第二版本识别符之间的比较所指示以第二数据项取代第一数据项以验证(i)第二版本识别符验证成功以及(ii)第二数据项比第一数据项还要新,来以第二数据项取代第一数据项。
[0009] 为让本发明的上述目的、特征及优点能更明显易懂,下文特举一较佳实施例,并配合所附的图式,作详细说明如下。附图说明
[0010] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0011] 图1表示根据本发明一实施例,接收将被安全的储存在本地储存器芯片的更新的使用者装置的示意方图。
[0012] 图2表示根据本发明一实施例,图1中的储存器芯片的储存器控制器的示意方块图。
[0013] 图3表示根据本发明一实施例,安全地储存新数据项的方法的示意流程图
[0014] 图4根据本发明一实施例,安全地更新一储存的数据项的方法的示意流程图。
[0015] 附图标号:
[0016] 24 使用者装置;      28 主机;
[0017] 32 储存器芯片;     36 通信总线或链路;
[0018] 40 处理器;         44 非挥发性储存器;
[0019] 48 储存器控制器;   52 通信总线;
[0020] 56 密码引擎;
[0021] 60A、60B 应用程序(APP1、APP2);
[0022] 62A、62B 版本识别符(VER1、VER2);
[0023] 64A、64B 提供者(PROVIDER1、PROVIDER2);
[0024] 68 通信网络;
[0025] 72A APP1的更新版本(APP1’);
[0026] 72B APP2的更新版本(APP2’);
[0027] 76A、76B 版本识别符(VER1’、VER2’);
[0028] 80A、80B 安全密钥(KEY1、KEY2);
[0029] 86 存取控制模块;  88 地址映射器;
[0030] 90A APP1的描述符;
[0031] 100、104、108、112、116 方法步骤;
[0032] 200、204、208、212、216 方法步骤;
[0033] LA1、LA2 逻辑地址;  PA1、PA2 物理地址;
[0034] SEC_1L、SEC_2L 逻辑储存位置;
[0035] SEC_1P、SEC_2P 物理储存位置。

具体实施方式

[0036] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域相关技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护的范围。
[0037] 于下文中将参照相关图式以解说本发明的数个实施例的范例。
[0038] 概要:
[0039] 本文所叙述的实施例提供了用于储存器系统中的安全数据储存的方法和系统。储存系统可以包括储存器芯片或任何其他合适类型的储存系统,例如,固态硬盘(solid-state drive,SSD)。在下面的描述中,主要涉及包括一储存器芯片的示范储存系统。此储存器芯片包括一储存器控制器,例如闪存装置的非挥发性储存器装置。储存器芯片可以用于各种用户设备,例如个人电脑(personal computer,PC)、手机、或物联网(Internet of Things,IOT)节点
[0040] 在一些实施例中,储存器芯片将关于使用者装置的处理器的数据项目储存在非挥发性储存器中,且根据需要来撷取关于处理器的数据项目。举例来说,数据项可以包括可执行的程序码,例如,应用程序或底层操作系统的开机程序码。可替代地或另外地,也可以使用其它合适类型的数据项。其他类型的数据项可以包括密钥与其他加密信息、密码与识别凭证、指纹与其他生物数据、行与财务数据、电子钱包、医疗数据、其他个人信息等等。
[0041] 储存在非挥发性储存器中的一数据项可能需要不时地进行更新。例如,当前储存的应用程序的版本可能被包括错误修复、最近添加的特征等的进阶版本所取代。
[0042] 数据项的更新版本有时可以从远端服务器下载。原则上,储存器芯片可以与数据项的授权提供者共享授权提供者用于签署数据项的版本的安全密钥,并且储存器芯片使用来检验下载的数据项的完整性和真实性。”授权提供者”与储存器芯片共享密钥。
[0043] 上述更新方案可能容易受到回复攻击(roll-back attack),于其中,攻击者尝试在储存器芯片中安装由授权提供商使用正确的安全密钥而于过去签发,但由授权提供者比当前储存的数据项更早发行的先前获取的数据项。攻击者可能会启动回复攻击(也称为零日攻击),目的是利用应用程序码的先前版本的已知漏洞。
[0044] 在一些公开的实施例中,为了储存在储存器芯片中而接收的数据项为指定的版本识别符。通常,授权的提供者以某些发行顺序发行给定的数据项的更新,并根据发行顺序将各别的版本识别符分配给已发行的更新。
[0045] 在一些实施例中,储存器控制器一数据项以取代在非挥发性储存器中的一储存的数据项。储存器控制器仅仅是为了(i)检验所接收的数据项的版本识别符被成功验证,并且(ii)基于它们各自的版本识别符之间的比较来检验接收到的数据项比储存的数据项还要新。在一些实施例中,将数据项和版本识别符一起签署在公共签章中,并且储存器控制器使用该公共签章对数据项进行验证。
[0046] 在一些实施例中,储存器控制器以数据项来接收相应的签章。储存器控制器使用共享的安全密钥对接收的数据项计算以获得计算的签章。储存器控制器通过检查计算的签章与所接收的数据项的签章是否匹配来检验所接收的数据项的版本识别符。
[0047] 在一些实施例中,储存器控制器执行在由储存器芯片的主机所使用的逻辑地址与由非挥发性储存器装置所使用的物理地址之间的映射。在物理地址空间中,储存器控制器为存储项分配用于当前使用的版本的储存空间和用于写入数据项的更新版本的另一个储存空间。在验证更新的版本之后,如上所述,储存器控制器重新映射逻辑-物理地址以交换此两储存空间之间的色。
[0048] 在一些实施例中,为了将一数据项写入储存空间,储存器控制器在写入之前解锁此储存空间,并且在写入数据项结束之后锁定储存空间。在其他实施例中,储存器控制器通过向非挥发性储存器发送多个写入命令来写入数据项,使得每个命令携带数据项内容的各自部分,并且每个命令都用各自的签章进行签署。只有在验证各自的签章之后,非挥发性储存器才执行每个写入命令。
[0049] 在一些实施例中,储存器控制器验证所接收的版本识别符,并且在不可间断的单个原子操作(atomic operation)中,基于各自的版本识别符来确认所接收的数据项比储存的数据项还要新。这样的实施例确保了仅当满足所有所需条件时才允许实际的更新。
[0050] 所揭露的技术支持储存器芯片中的安全数据储存。使用所揭露的技术,不需要复杂的通信链路,且在储存器芯片中的数据项可以安全有效地更新,导致最小的延迟。
[0051] 系统叙述:
[0052] 图1表示根据本发明一实施例,接收将被安全的储存在本地储存器芯片32的更新的使用者装置24的示意方块图。使用者装置24包括主机28,其通过通信总线或链路36而耦接使用者装置的储存器芯片32。储存器芯片32将关于主机的数据储存在非挥发性储存器44,在此实施例中,非挥发性储存器44例如为闪存。储存器芯片32支持以安全的方式来更新储存在非挥发性储存器44内的信息,将于下文中详细描述。
[0053] 储存器芯片32可用在各种使用者主机系统和设备中,例如在计算装置、个人电脑(personal computer,PC)或电脑服务器、手机或其他通信终端、笔记本电脑平板电脑、可移动储存器模块、固态硬盘(solid state disk,SSD)、储存装置(例如硬盘、安全数字(secure digital,SD)卡、多媒体卡(multi-media card,MMC)、以及嵌入式MMC(embedded MMC,eMMC))、数字码相机、音乐与其他媒体播放器、IOT节点以及/或数据储存与撷取所在的任何其他系统或装置。
[0054] 主机28包括处理器40,其通常执行诸如操作系统、开机管理程序(boot-loader)功能、固件、一个或多个使用者应用程序、通信栈(communication stack)等的程序。使用者装置24通常包括用于在处理器40和人类使用者(例如键盘或触控板、以及显示器(未显示)之间进行接口的装置。主机28包括用于与远端服务器进行通信的装置,将于下文叙述。
[0055] 非挥发性储存器44通常包括多个存储单元(未显示)。在本例子中,非挥发性储存器44包括闪存,但是也可以使用任何其它合适的技术来实现。非挥发性储存器44的储存容量取决于主持的使用者装置的储存要求,并且可以在几兆位或甚至几个千兆位的等级。
[0056] 储存器芯片32包括储存器控制器48,其管理非挥发性储存器44内的数据储存。储存器控制器48经由一内部通信总线52或包含任何合适的通信总线的链路52耦合到非挥发性储存器44。在储存器芯片32中,通过在储存器控制器与非挥发性储存器之间的通信总线52传送的任何信息在储存器芯片32之外是不可存取的。
[0057] 虽然非挥发性储存器44可以包括多个物理存储库,但储存器控制器如同存取统一逻辑储存器一般地存取非挥发性储存器。
[0058] 在一些实施例中,主机28在包括逻辑地址的地址空间中操作,而非挥发性储存器44在包括物理地址的依不同地址空间中操作。在储存数据至非挥发性储存器以及自非挥发性储存器撷取数据的情况下,储存器控制器在逻辑地址和物理地址之间进行转换,如将在下文中参考的2图的详细描述。
[0059] 主机与储存器芯片之间的通信总线36可以包括根据任何合适协议操作的任何合适的总线或链路。通信总线36可以包括,例如,串行外设接口(Serial  Peripheral Interface,SPI)总线或内部储存器电路(Inter-Integrated Circuit,I2C)总线。通信总线36可以作为序列总线或并列总线操作,且以任何合适的速率发送和接收信息。SPI总线和类似的I2C总线可以在几Kbps至几Mbps的位率(例如,在基于50MHz的八进制SPI总线中超过
400Mbps)下运行。串行ATA(SATA)和IDE(Integrated Drive Circuit,整合装置电路)总线通常以几百Mbps的位率运行。
[0060] 在图1的示范实施例中,储存器芯片32包括用于实现储存器芯片的各种安全方面的密码引擎56,将于下文中详细叙述。在一个实施例中,密码引擎56将储存器控制器从例如加密、解密、认证、数据杂凑(data hashing)、签章确认等复杂的密码操作的负担中卸载。在替代实施例中,储存器控制器执行所需的密码操作中的一些或全部。
[0061] 在一些实施例中,通过通信总线36在主机28和储存器芯片32之间的数据传送是受到保护的。在这样的实施例中,主机28和储存器控制器48中的每一者对将通过通信总线36发送的数据进行加密(使用任何合适的加密方法),并对接收自通信总线36的以加密数据进行解密。对在通信总线36上的数据传送进行加密确保了可能获得对通信总线36进行存取的攻击者不能破解传送的信息。通过通信总线36的进行通信的其他安全方面包括基于签章的真实性检验、以及基于循环冗余校验(Cyclic Redundancy Check,CRC)码、杂凑函数、签章或任何其他合适的完整性检查方法的完整性检验。
[0062] 主机28可以将数据储存在储存器芯片32中,并且根据需要撷取数据。储存的数据通常包括任何合适类型的一个或多个数据项,例如可执行程序码,如例如操作系统、操作系统的开机码或使用者应用程序。其他相关数据类型包括安全密钥、识别凭证、使用者数据、固件、各种驱动程序等。
[0063] 在图1的例子中,非挥发性储存器44储存将由主机的处理器40执行的应用程序60A和60B,分别以APP1和APP2来标示。在一些实施例中,为了执行例如APP1或APP2的应用程序,主机例如通过向储存器芯片32适当的读取命令来从非挥发性储存器44读取应用程序的程序码。
[0064] 非挥发性储存器44另外储存关于应用程序60A和60B的各自版本识别符62A(表示为VER1)或62B(表示为VER2)。储存器控制器使用版本识别符以检验只有为真实的且比当前储存的副本还要新的数据项的更新将被安装,如下所述。
[0065] 例如为应用程序APP1和APP2的每个数据项的初始版本以及该数据项的更新版本通常可以由使用者装置24通过通信网络68下载。在图1的例子中,提供者64A(标示为PROVIDER1)储存应用程序APP1 60A的更新版本(标示为APP1'72A),提供者64B(标示为PROVIDER2)储存应用程序APP2 60B的更新版本(标示为APP2' 72B)。提供者64通常在连接到通信网络68的服务器中储存每个数据项的一个或多个版本。
[0066] 通信网络68可以包括,例如,封包网络(packet network),举例来说,乙太网络或网际网络协议(Internet Protocol,IP)网络。或者,通信网络68可以根据任何其它合适的标准或协议进行操作。通信网络68可以包括有线网络,例如区域网络(Local Area Network,LAN)或广域网络(Wide Area Network,WAN),或者包括有无线网络,例如手机网络或诸如Wi-Fi网络的无线LAN。可替代地或另外地,通信网络68组合有线和无线网络。
[0067] 在一些实施例中,取代了(或除了)与通信网络68的介面,使用者装置24包括以直接方式接收数据项的初始版本或更新版本的一个或多个专用介面(未显示)。例如,储存装置可以下载储存在光碟(compact disc,CD)中或者在通用序列总线(Universal Serial Bus,USB)储存装置中的数据项。
[0068] 每个提供者64可以偶尔地更新本地储存在提供者的服务器中的数据项。例如,提供者64A(或64B)可以发布其修复应用程序的功能中的问题的应用程序APP1(或APP2)的更新版本,例如解决安全险、以及/或加入至应用程序的新特征。例如,当更新版本APP1'(72A)在提供者端变为有效时,使用者装置24可以通过通信网络68下载更新的版本,以替换当前储存在非挥发性储存器44中的APP1(60A)。
[0069] 在一些实施例中,每个提供者64分配的版本识别符给其本地储存的数据项的相应版本。在此例子中,提供者64A将版本识别符76A(标示为VER1’)分配给APP1,且将本版识别符76B(标示为VER2')分配给APP2。
[0070] 提供者64中的每一者以递增顺序的次序将版本识别符分配给相应的数据项。因此,数据项的较新版本被分配到在次序中较高的版本识别符。例如,假设提供者64A以某种顺序发布版本识别符,由于APP1'(72A)是APP1(60A)的更新版本,所以提供者64A分配给APP1的版本识别符VER1'(76A)在次序上更高于APP1的版本VER1(62A)。在一些实施例中,版本识别符包括版本编号。在这样的实施例中,分配的版本编号满足VER1'>VER1。相似的版本识别符的分配用于应用程序APP2和任何其他合适类型的数据项。
[0071] 使用者装置24下载数据项的更新版本,并伴随下载其识别符。在本此例子中,使用者装置24下载具有版本识别符VER1’的APP1'以及具有版本识别符VER2’的APP2’。储存器控制器比较相关数据项的接收到的版本识别符与储存的版本识别符,并且只允许比储存的版本还新且验证过的版本安装在非挥发性储存器中,将于下文中详细说明。
[0072] 在一些实施例中,储存器控制器使用与数据项的授权提供者共享的安全密钥来验证下载的数据项的版本识别符。在下文的描述中,术语“授权提供者”是指存于储存器芯片共享安全密钥所相应的数据项的提供者。
[0073] 在图1的例子中,储存器芯片32与APP1(和APP1')的提供者64A共享安全密钥80A(标示为KEY1),且与APP2(和APP2')的提供者64B共享安全密钥80B(表示为KEY2)。每个提供者64使用安全密钥来签署具有签章的相应数据项,并且储存器芯片32通过使用安全密钥检验签章来验证接收到的数据项及其版本识别符。密钥80通常储存在非挥发性储存器44中,并且仅可在储存器芯片32内存取,例如由储存器控制器48以及/或密码引擎56来存取。
[0074] 尽管在图1中,每个数据项(应用程序APP1和APP2)与相应的安全密钥相关联,但该分配不是强制性的。例如,由储存器芯片所验证的一或多个数据项,甚至是所有的数据项可与一共用安全密钥相关联。如另一例子,一个或多个使用者装置可以与使用者装置24共享给定的安全密钥。安全密钥80通常在储存器芯片32的制造期间或稍后的时间,被储存器芯片或使用者装置的制造者初始化。或者,使用者装置24的依使用者初始化安全密钥80。在初始化之后,安全密钥不能通过储存器芯片或使用者装置的任何设计的介面来被读取或改写。
[0075] 在储存器芯片中的安全存取控制:
[0076] 图2表示根据本发明一实施例,图1中的储存器芯片32的储存器控制器48的示意方块图。图2的例子主要涉及对应用程序APP1(图1中的60A)实施存取控制,但是也适用于其他合适的应用程序和数据项。
[0077] 储存器控制器48包括存取控制模块86,用于管理对非挥发性储存器44的安全存取。在一些实施例中,为了管理储存和存取控制,储存器控制器分配相应的描述符给储存在非挥发性储存器的至少一些数据项,例如,储存器控制器将描述符90A分配给应用程序APP1。在一个实施例中,储存器控制器将描述符储存在非挥发性储存器中。描述符,例如描述符90A,通常包括多个栏位,例如以下列出的栏位:
[0078] 地址
[0079] 尺寸(例如,以字节表示)
[0080] 版本识别符(例如,版本编号)
[0081] 数据项的签章
[0082] 状态
[0083] 存取权限:例如,读取保护与写入保护指示符。
[0084] 描述符中的地址栏为可以包括物理地址、逻辑地址、或前两者。地址栏位通常用于识别一个或多个储存位置。状态栏位可以用于控制和管理,例如用于保持验证状态(例如,通过或失败)和地址交换状态。
[0085] 在一些实施例中,例如为APP1的给定数据项在非挥发性储存器中占据多个储存空间,将于下文叙述。描述符可以包括对应分配给数据项的每个储存空间的至少一些栏位的个别数值组。为了使能(或禁能)数据项(例如APP1)的读取,储存器控制器设定(或清除)相关的读取保护指示符。类似地,为了使能(或禁能)非挥发性储存器中的数据项的写入或更新,储存器控制器设定(或清除)相关的写入保护指示符。当储存器控制器请求存取数据项时,存取控制模块块86检查在相应描述符中(例如在APP1的描述符90A中)的存取权限并且相应地允许或防止存取。
[0086] 储存器控制器可以对数据项的不同储存空间设定不同的存取权限。防止和允许存取对储存空间存取的操作本文中分别称为“锁定”和“解锁”操作。例如,在一段时间期间内,储存器控制器可以解锁数据项的一个储存空间以仅用于读取,并解锁相同数据项的另一储存空间以仅用于写入。
[0087] 每个描述符可以与相应的安全密钥相关联。图2描绘了与应用程序APP1 60A的相应描述符90A相关联的KEY1 80A。或者,数据项及其相应的描述符可以与不同的相应的安全密钥相关联。在一些实施例中,获得对描述符(例如,90A)的栏位的存取需要知道相应的安全密钥(例如,80A)。
[0088] 在一些实施例中,储存器控制器将数据(例如APP1)与相应的签章一起储存在储存空间中。在一些实施例中,储存器控制器将签章储存在分配给数据项的描述符的一栏位中。储存器控制器使用储存的签章来检验在相关储存空间中的数据项的完整性。为此,储存器控制器计算签章,并将计算的签章与储存的签章进行比较。根据检测出所计算的签章与储存的签章相匹配,储存器控制器决定数据项目未被篡改(即,完整性检查已经成功地通过)。
[0089] 储存器控制器可以各种方式计算对应于在相应储存空间中的数据项的签章。在一些实施例中,储存器控制器通过计算合适的密码杂凑函数(SHA杂凑函数)来计算关于此储存空间的签章。在一些实施例中,储存器控制器使用与数据项相关联的安全密钥来计算关于数据项及其版本识别符的签章。或者,储存器控制器使用任何合适的对称密钥加密方法(使用相关的安全密钥)来计算签章,举例来说,配置操作于密码区块连结(Cipher Block Chaining,CBC)模式下的进阶加密标准(Advance Encryption Standard,AES)方法。
[0090] 在一些实施例中,反应于接收来自处理器40的一合适的确认命令,储存器控制器确认储存在非挥发性储存器中的数据项(例如,如上所述,使用签章来进行确认)。可替代地或另外地,相关描述符可以包括验证栏位,其指示储存器控制器确认在一相应储存空间的相应数据项,其中,于此储存空间中储存了此数据项的当前使用的版本。举例来说,根据储存器芯片、使用者装置、或此两者的重新启动的结束,储存器控制器扫描当前储存的数据项的描述符,并确认被指定于相应描述符的确认的数据项。
[0091] 在一些实施例中,储存器控制器自处理器40接收指定一给定数据项的储存命令,其中,此储存命令已由具有与此给定数据项的描述符相关联的安全密钥的提供者所签署。储存命令可以包括例如用于锁定或解锁给定数据项的储存空间的命令、用于确认在相应储存空间中的数据项的命令、或任何其它合适的储存命令。在这些实施例中,储存器控制器在执行储存命令之前使用安全密钥检验储存命令的真实性。
[0092] 在一些实施例中,储存器控制器解锁对用于写入的一储存空间,其中,相应数据项的更新版本将被写入于此储存空间,且当写入更新版本结束时,储存器控制器锁定此储存空间。例如,在写入APP1的更新版本至非挥发性储存器之前,储存器控制器解锁用于写入的储存空间SEC_1P或SEC_2P之一。
[0093] 在一些实施例中,为了避免在相对长的时间内解锁储存空间,储存器控制器通过向非挥发性储存器发送多个写入命令,以将数据项的更新版本写入相关储存空间,其中,每个写入命令使用与相应数据项相关的安全密钥来签署。非挥发性储存器通过检验每个写入命令的签章且通过只在根据它们各自的签章来验证写入命令之后执行写入命令,来写入更新的版本。在一个实施例中,通过第二数据项及其相应的版本识别符来计算签章。在此实施例中,储存器控制器仅在检验出写入命令的相应签章的版本识别符比数据项的当前使用版本的版本识别符还要新之后才执行写入命令。
[0094] 在一些实施例中,每个写入命令(例如包括16个字节)被单独签章,并且储存器控制器另外接收在经签章的命令中的检验识别符以及地址信息。储存器控制器接收一完整更新“套件(package)”,其包括多个写入命令以及随后的“回复保护(rollback protection)”命令。储存器控制器将经过检验的写入命令所携带的数据储存到非挥发性储存器中,然后执行回复保护命令以验证写入的整个数据项。储存器控制器最终交换逻辑-物理地址映射,以使用数据项的更新版本来取代储存的数据项。
[0095] 存取控制模块86包括地址映射器88,其在由主机28所使用在逻辑地址空间中的逻辑地址与在非挥发性储存器44中使用的物理地址空间中的物理地址之间进行映射。主机的处理器40使用逻辑地址来对储存器芯片32实施储存操作,并且通常不知道逻辑地址被映射到的物理地址。在一个实施例中,地址映射器88被实现为储存在非挥发性储存器44或储存器芯片32的一些其它储存器(未显示)中的表单。
[0096] 在一些实施例中,每个数据项分配给在每个逻辑地址空间和物理地址空间中的一个或多个储存空间。
[0097] 在本说明书权利要求的上下文中,包括多个地址的储存空间也被称为“储存位置”。物理储存位置包括物理地址空间中的多个物理地址,并且逻辑储存位置包括逻辑地址空间中的多个逻辑地址。在一些实施例中,储存位置中的地址占据相关地址空间中的地址的连续范围。或者,储存位置中的地址在相关地址空间中为不连续的。在下面的描述中,术语“储存空间”和“储存位置”可互换使用。
[0098] 在图2中,图1的应用程序APP1分配给在逻辑地址空间中标示为SEC_1L和SEC_2L的两个储存空间以及在物理地址空间中标示为SEC_1P和SEC_2P的两个储存空间。
[0099] 在一些实施例中,表示为LA1的SEC_1L的逻辑地址用于自储存器芯片读取APP1的当前安装的APP1,而表示为LA2的SEC_2L的逻辑地址用于将APP1的更新版本写入至储存器芯片。APP1当前使用版本可以储存在非挥发性储存器的SEC_1P或SEC_2P中。
[0100] 当APP1的当前使用的版本储存在SEC_1P中时,地址映射器88将逻辑地址LA1映射至用于自SEC_1L读取应用程序APP1的物理地址PA1。当储存器控制器接收应用程序APP1的更新版本时,经由逻辑地址LA2,地址映射器将逻辑地址LA2映射到用于将APP1的更新版本写入SEC_2P的物理地址PA2。
[0101] 类似地,APP1的当前使用的版本可以储存在非挥性发储存器的SEC_2P中,并且由地址映射器存取而被读出以将逻辑地址LA1映射至物理地址PA2。在这种情况下,储存器控制器通过使用地址映射器88将逻辑地址LA2映射至物理地址PA1来将APP1的更新版本写入SEC_1P。表格1总结了所选择的逻辑-物理映射选择项目。
[0102]
[0103] 表格1:逻辑-物理地址映射
[0104] 通过使用关于每个数据项(例如,APP1)的两个单独的储存空间,储存器控制器可以从非挥发性储存器的一个储存空间读取一数据项的当前安装的版本,并将所接收到用来取代当前使用数据项的数据项的一版本写入至非挥发性储存器的不同储存空间。
[0105] 储存器控制器仅在确认接收到的版本识别符的完整性和真实性之后,且接收到的数据项的版本比当前储存的版本还要新时,才实际地以接收到的版本来取代当前使用的版本。在一些实施例中,储存器控制器通过交换SEC_1P和SEC_2P的逻辑-物理地址映射来以数据项的更新(和经验证过)的版本来取代当前使用的数据项。交换后,储存器控制器可以通过逻辑为只LA1读取数据项的更新版本。此外,储存器控制器可以经由逻辑地址LA2将数据写入至过时版本的储存空间。
[0106] 在一些实施例中,分配储存空间,使得SEC_1P中的每个物理地址具有在SEC_2P中的相应物理地址,如此一来,使得这两个物理地址仅在物理地址空间的最高有效位(Most Significant Bit,MSB)中具有相异处。在这些的实施例中,地址映射器通过反转物理地址的MSB来实现SEC_1P和SEC_2P之间的交换,从而在执行地址重映射时实现最小的延迟时间(latency)。
[0107] 图1和图2中的使用者装置24和储存器芯片32的配置是仅为了概念清楚而选择的示例配置。在替代实施例中,也可以使用使用者装置和储存器芯片的任何其它合适的配置。例如储存器控制器48、非挥发性储存器44和密码引擎56之类的储存器芯片32的不同元件可以使用任何合适的硬件来实现,例如在特殊应用集成电路(Application-Specific Integrated Circuit,ASIC)或现场可编程阵列(Field-Programmable Gate Array,FPGA)。在一些实施例中,可以使用软件或使用硬件和软件元件的组合来实现储存器芯片32的一些元件。
[0108] 在一些实施例中,例如储存器控制器48的储存器芯片32的某些元件可以包括通用处理器,其以软件编程来执行本文所描述的功能。此软件可以以电子形式通过网络下载到处理器,例如,或者可替代地或另外地,其可以被提供以及/或储存在例如磁性、光学、或电子的储存器的非暂态具体介质上。
[0109] 在使用者装置24中,主机28和储存器芯片32的每一者可以包括一单独的半导体晶粒,并且两个晶粒位于共同包装或个别包装上。在一些实施例中,储存器控制器48,非挥发性储存器44和加密引擎56都位于包含储存器芯片32的共同晶粒中。
[0110] 用于在储存器芯片中的数据项的安全更新的方法:
[0111] 图3表示根据本发明一实施例安全地储存新数据项的方法的示意流程图,将于下文说明。此方法可以例如由储存器芯片32的储存器控制器48来执行。主要参考图1和图2的数据项APP1(60A)来说明图3的方法。然而,此方法类似地适用于任何其他合适类型的数据项。在图3的方法中,版本识别符包括版本编号。
[0112] 此方法开始于接收步骤100,于其中,储存器控制器48接收应用程序APP1以将其储存。在本例子中,我们假设APP1尚未安装在储存器芯片32中。储存器控制器另外接收关于APP1的相应版本编号和签章。当APP1由授权的提供商(例如,本例子中的PROVIDER1(64A))发起时,授权提供者已将版本编号VER1(62A)分配给APP1,并且已通过使用储存器芯片与PROVIDER1共享的安全密钥来计算APP1的签章和版本编号。
[0113] 在地址分配步骤104中,储存器控制器分别在逻辑储存位置SEC_1L和SEC_2L中分配APP1的逻辑地址LA1和LA2。储存器控制器使用地址映射器88将逻辑地址LA1和LA2映射到非挥发性储存器中相应物理储存位置SEC_1P和SEC_2P的相应物理地址PA1和PA2。在一些实施例中,储存器控制器初始化用于在非挥发性储存器中的APP1的描述符(90A)。
[0114] 在写入步骤108中,储存器控制器,例如,使用APP1的描述符90A中的存取权限,来解锁用于写入的物理地址PA1,并通过逻辑储存位置SEC_1L的逻辑地址LA1来将接收到的数据项APP1写入至物理储存位置SEC_1P的物理地址PA1。
[0115] 在检验步骤112中,储存器控制器检验储存在物理地址PA1中的APP1的真实性和完整性。为此,储存器控制器计算关于储存的APP1的签章,包括接收到的版本编号,并且将其与在步骤100中接收到的签章进行比较。如果所计算的签章和接收到的签章一致,则APP1及接收到的其版本编号被成功的验证。
[0116] 在初始化步骤116,反应于在步骤112的成功检验,储存器控制器将接收到的APP1的版本编号VER1储存在例如,相应的描述符90A中。储存的版本编号将被用作参考版本识别符,其用于接受由PROVIDER1所发布且晚于APP1下载的APP1后续更新。储存器控制器还通过在描述符90A中设定读取与写入存取权限,来分配用于读取APP1的(逻辑储存位置SEC_1L的)逻辑地址LA1,以及用于写入APP1的更新版本的(逻辑储存位置SEC_L2的)逻辑地址LA2。在步骤116之后此方法终止。
[0117] 图4表示根据本发明一实施例安全地更新一储存的数据项的方法的示意流程图,将于下文说明。此方法可以例如由储存器芯片32的储存器控制器48所执行。在叙述图4的方法时,假设应用程序APP1已经例如使用图3的方法而安装在储存器芯片,并占用物理储存位置SEC_1P的物理地址PA1。然而,此方法同样适用于任何其它合适类型的数据项。在图4的方法中,版本识别符包括版本编号。
[0118] 此方法开始于接收步骤200,于其中,储存器控制器48接收更新版本APP1',此更新版本APP1'用于替换当前储存在非挥发性储存器中的物理储存位置SEC_1P的物理地址PA1中的版本APP1。储存器控制器另外接收APP1'的相应更新的版本编号VER1'和相应的签章。
[0119] 当APP1与储存器芯片共享KEY1的授权提供者(在APP1的情况下为PROVIDER1)发起时,授权提供应已将更新的版本编号VER1'分配给APP1',并且已使用安全密钥KEY1(80A)来计算关于APP1'和VER1'的上的签章。此外,授权提供者分配更新的版本编号VER1',使得VER1'>VER1,即大于当前安装的APP1版本的版本编号。
[0120] 在写入步骤204中,储存器控制器通过逻辑储存位置SEC_2L的逻辑地址LA2将接收的更新版本APP1'写入物理储存位置SEC_2P的物理地址PA2。在确认步骤208,储存器控制器使用在步骤200接收的签章和与数据项APP1相关联的安全密钥KEY1来验证APP1'和更新的版本编号VER1'。储存器控制器类似于上述图3的步骤112,而对于物理储存位置SEC_2P的物理地址PA2中的APP1'进行验证。
[0121] 在版本编号检验步骤212中,反应于检测到VER1'被成功地验证,储存器控制器进一步确认VER1'等于或大于VER1,即当前储存的APP1的版本编号。由于只有授权提供者持有相关的共享密钥(KEY1)并且可以签署APP1和一选定的版本编号,所以在步骤208和212的确认提供了防止回复攻击的保护。
[0122] 在交换步骤216中,根据在步骤208中的成功验证以及在步骤212中的成功确认,储存器控制器重新映射逻辑-物理地址。具体来说,地址映射器88将逻辑储存位置SEC_1L的逻辑地址LA1映射到物理储存位置SEC_2P的物理地址PA2(其中更新的版本APP1'是现在储存),并将逻辑储存位置SEC_2L的逻辑地址LA2映射到物理储存位置SEC_1P的物理地址PA1,用于在可用时写入APP1的后续更新。
[0123] 在一些实施例中,储存器控制器使用单个原子操作来更新数据项。在此实施例中,储存器控制器执行上述步骤208,212和216作为可中断操作,包括:验证版本识别以产生验证结果(步骤208),比较接收到的和储存的版本编号(步骤212),并有条件地替根据验证结果与比较结果以接收到的数据项来取代储存的数据项(步骤216)。此实施例确保仅当满足所有的所需条件时,储存器控制器实际上才更新数据项。
[0124] 在上述实施例作为示范例,并且也可以使用其他合适的实施例。例如,尽管在上述实施例中在非挥发性储存器中分配了两个储存空间给数据项,但是在替代实施例中,一数据项可以与多于两个的储存空间相关联,例如,用于储存数据项的多个版本。
[0125] 在上述实施例中,我们通常假设共享密钥(例如,KEY180A)在提供者侧和储存器芯片上是相同的。在替代实施例中,可以共享非对称密钥,其支持在提供者侧签署数据项且检验在储存器芯片的数据项的真实性。
[0126] 虽然在上述实施例中,例如KEY180A和KEY280B的共享密钥用于验证,但是这些密钥或其他例如由KEY1和KEY2所导出的密钥可以用于通过通信网络发送的数据项的端到端加密。
[0127] 在上述实施例中,我们主要涉及每个数据项的两个逻辑储存位置(即SEC_1L和SEC_2L),其中,此两逻辑储存位置中的一个用于读取数数据,另一个用于写入数据项的更新版本。然而,此配置并非强制的,并且在其他实施例中,此两个逻辑储存位置可以在读取和写入之间(例如,动态地)交换角色。
[0128] 虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作更动与润饰,因此本发明的保护范围当视权利要求所界定者为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈