一次写入多次读取(worm)存储器器件的验证和保护的制作方法

文档序号:6350678阅读:808来源:国知局
专利名称:一次写入多次读取(worm)存储器器件的验证和保护的制作方法
一次写入多次读取(WORM)存储器器件的验证和保护
背景技术
便携式存储器器件、诸如存储卡通常与消费电子设备、诸如数码相机、移动电话和个人计算机(PC) —起使用,来存储和/或传输数据。除了存储介质以外,许多便携式存储器器件包含可以将从主机设备接收的逻辑地址变换为由存储器器件使用的物理地址的电路、诸如微处理器或控制器,由此允许在存储器器件上的电路控制在存储介质中何处存储数据。许多存储器器件使用可重写存储器,可重写存储器允许为系统或用户目的而擦除和重写存储器地址。但是,其它存储器器件使用一次可编程(one-time programmable,OTP) 存储器阵列。在OTP存储器阵列中,一旦在某存储器地址处的存储器单元被改变为已编程状态,则不能将该存储器单元改变回到其原始、未编程状态。由于这种对存储器地址可以被写的次数的限制,因此具有OTP存储器阵列的存储器器件可能不与使用流行的DOSFAT文件系统或期望能够对存储器地址重写的其它文件系统的主机设备兼容。对于使用数次可编程 (few-time programmab 1 e,FTP)存储器阵列的存储器器件,类似的问题较少地发生,该存储器器件的存储器单元可以被写多于一次,但不像可重写存储器阵列中的存储器单元那么多次。另一类存储器器件是一次写入多次读取(write-once,read-many, WORM)存储器器件。该存储器器件不可重写,从而数据一旦写入就不能以后改变、擦除、或覆写。这对于数据可靠性和安全极为重要的应用、诸如存档文档存储或永久记录保持很有用。


图1是主机设备与一个实施例的存储器器件通信的图示。图2是一个实施例的存储器器件的双模式行为的图示。图3和4是即使在基础存储器是一次可编程的情况下,一个实施例的存储器器件的控制器如何使得逻辑存储器看起来可重写的图示。图5是在一个实施例的逻辑存储器和物理存储器之间的关系的图示。图6是一个实施例的一次写入多次读取(WORM)存储器器件的双模式行为的图示。图7是一个实施例的一次写入多次读取(WORM)存储器器件的逻辑存储器的图示。图8是正由远程密钥服务器验证的一个实施例的存储器器件的图示。图9是正由本地密钥服务器验证的一个实施例的存储器器件的图示。图10是主机设备与具有加密解密功能的一个实施例的存储器器件通信的图示。图11是向一个实施例的存储器器件写数据的主机设备的图示。图12A、12B、和12C是主机设备从一个实施例的存储器器件读数据的图示。
具体实施例方式作为介绍,以下实施例总体涉及提供使用一次可编程(OTP)(或数次可编程 (FTP))存储器阵列的存储器器件和使用期望能够对存储器器件中的存储器地址重写的文件系统、诸如DOSFAT文件系统的主机设备之间的兼容性。OTP存储器是如下存储器,存储器单元制造为初始、未编程的数字状态,且可以在制造之后一次切换为替换、经编程数字状态。例如,原始、未编程数字状态可以被标识为逻辑1(或逻辑0)状态,且经编程数字状态可以被标识为逻辑0(或逻辑1)状态。因为所述存储器单元是OTP,因此存储位置的原始、 未编程数字状态(例如,逻辑1状态)一旦切换到经编程数字状态(例如,逻辑0状态),则不能再恢复。相反,FTP存储器是如下存储器,存储器单元可以被写多于一次、但并非如典型可重写(或多次写)存储器阵列那么多次。可以使用许多技术来使得OTP存储器器件与主机设备的可重写文件系统兼容。在一个技术中,该存储器器件配置为,与标准快闪可重写存储器器件表现完全相同,直到该存储器被完全消耗(consume),在此时间点,该存储器器件将停止进行写操作。在该存储器被消耗前,该存储器器件基本上与普通可重写存储器器件无差别。以此方式,这种存储器器件与现有主机应用和器件后向兼容。美国专利申请公开NO.US2006/0047920和U. S.专利 No. 6,895,490提供了有关后向兼容的存储器器件的进一步细节,该两者通过引用并于此。 但是,对于特定主机和特定主机表现,可能存在针对边界情况(corner case)的危险其中主机可能试图向存储器器件写数据,但该存储器器件将用完存储空间,且不能存储该数据 (典型的例子是,试图在存储卡上存储图片的数码相机)。在最坏的情况下,主机设备甚至不会意识到写已经失败,且不会向用户指示出了问题。为了避免该风险(和伴随的负面终端用户感受),以下实施例提供一种存储器器件,其利用(leverage)只读存储器(ROM)卡类型的现有定义,提供与现有主机设备(诸如现有安全数字(SD)主机设备)的读兼容性,且最小化为修改主机设备以对OTP存储器器件写付出的努力。在一个当前优选的实施例中,存储器器件基于OTP存储器、采用SD存储卡的形式,OTP存储器根据安全数字(SD)协会阐述的正式的OTP卡类型规范来操作。这些实施例的各种特征包括、但不限于以下特征* 一种存储器器件,其在只读存储器(ROM)模式中加电,以与现有规范兼容,且在现有SD兼容的主机设备中可读。* 一种存储器器件,其实现(使用SD规范中定义的协议)将存储器器件切换到读取/写入(R/W)模式的新功能。当处于R/W模式中时,该存储器器件总体表现如同标准可重写(例如快闪)卡,因此,主机设备仅需要最小改变以实现对OTP卡的支持。*因为与可重写存储器不同,OTP存储器是有限的,且可能被完全消耗,因此在一个实施例中,该存储卡定义(优选地与SD规范中的定义兼容的)新命令以供主机设备跟踪物理存储器消耗。*还提供另外修改,用于由于OTP存储器(相比于可重写存储器)的限制所致的编程寄存器的操作。现在转到附图,图1是主机设备10与一个实施例的存储卡20通信的图示。如在
此使用的,术语“与......通信”意思是与......直接通信或通过一个或多个组件(可能
有也可能没有在本文示出或描述)间接通信。在该具体图示中,主机设备10经由配对的端口与存储卡20通信。应该注意,虽然如图1所示使用存储卡20,不过存储卡20仅是可以与这些实施例一起使用的存储器器件的一个例子。通常,“存储器器件"可以采用任何适当的形式、诸如、但不限于存储卡、通用串行总线(USB)器件和硬盘。在一个当前优选的实施例中,该存储器器件采用固态存储卡的形式、诸如安全数字(SD)存储卡。如图1所示,在该实施例中,存储卡20包括控制器30,控制器30与一个或多个存储器器件40通信。(一个或多个)存储器器件40可以包括任何适当类型的存储器,诸如、 但不限于固态、光学、和磁性存储器。在一个实施例中,(一个或多个)存储器器件40中的至少一些包括OTP和/或FTP存储器。在使用多个存储器器件40的情况下,应该理解,各种存储器器件每个可以使用相同或不同的存储器技术(例如(i)所有都是OTP、(ii) OTP和 FTP、或(iii)OTP,FTP和可重写)。优选地,存储器器件40包括现场可编程固态存储器阵列。在存储器阵列中的存储器单元可以以二维或三维方式组织。在一个优选的实施例中, 该存储器阵列是三维阵列、诸如在Johnson等人的美国专利No. 6,034,882中描述的阵列, 该美国专利通过引用被附于此。应该注意,仅参考图1,术语“存储器器件”指存储器芯片本身。在该文档的其它实例中,“存储器器件”更通常指包括存储器芯片和其它组件(诸如控制器、输入输出端口等)的整体器件(诸如存储卡)。控制器30可操作以进行各种功能,以下描述其中一些功能。虽然图1中示出了控制器30,但是应该理解,该存储卡20可以包括任何适当的电路130。如在此使用的,“电路” 可以包括一个或多个组件,且可以是纯粹的硬件实施方式和/或组合的硬件/软件(或固件)实施方式。因此,例如,“电路”可以采用如下所列各项中的一个或多个形式例如,执行计算机可读程序代码(例如存储器器件40中存储的软件或固件)的控制器、微处理器或处理器、逻辑门、开关、特定用途集成电路(ASIC)、可编程逻辑控制器和嵌入式微控制器。而且,“主机设备”指可以置于与存储器器件通信且可以用于在存储器器件中存储数据和/或从存储器器件读数据的任何设备。主机设备的例子包括、但不限于消费电子设备、诸如移动电话、数字媒体播放器、数码相机、游戏设备、个人计算机(例如,桌面或便携式(诸如膝上或笔记本)计算机)、电子邮件和/或文本消息设备和个人数字助理(PDA)。 主机设备可以是相对移动的设备(诸如移动电话)或相对静态的设备(诸如桌面个人计算机)。在该实施例中,OTP存储卡20实现两种操作模式。在第一模式中,存储卡120在与现有ROM卡定义兼容的配置中加电,现有ROM卡定义已经在SD规范中定义的(因此,得到兼容的SD主机设备支持)。在第二模式中,存储卡20在接受和进行写之前被切换为可写模式。(在SD部分1物理层规范v2. 00以及部分1物理层规范版本2. 00补充注释版本 1. 00中,描述了适当的ROM卡配置和行为)。在使能SD卡的扩展或另外特征的通常情况的 SD规范中定义了切换命令协议(见SD部分1物理层规范、版本2. 00的章节4. 3. 10)。)通过在与现有卡定义兼容的只读模式中加电,现有的主机设备仍可以从存储卡20中读取,但不能对存储卡20写,由此提供与现有主机设备的读兼容性,但避免如下危险,即非启用的主机设备将对存储卡20写,并陷入上面讨论的有问题的边界情况。因为在该实施例中,主机设备必须发出命令,来将存储卡20切换到可写模式,所以将只有那些已经被使能来与OTP存储卡20 —起工作且理解其独特特征的主机设备才能够对OTP存储卡20写。图2图示存储卡20的双模式行为。图2中的左手边图示出了 (1) 存储卡20在只读模式中加电,因此传统主机设备仅可以从卡20读,(2)只有被使能的主机设备才知道如何将卡20切换到读取/写入模式,且C3)在读取/写入模式中,被使能的主机设备可以对卡20读和写。
在可写模式中,存储卡20行为类似于"普通"快闪可重写存储卡,至少直到存储卡的OTP存储器40被完全耗费之前是这样。因此,例如,如果主机设备10用不同数据覆写 (overwrite)数据扇区(对于可重写存储卡由于各种原因经常进行这种操作),则存储卡 20接受并进行被请求的写操作。(因为在该实施例中基础存储器器件40是OTP,所以器件 40上的存储器本身在被写之后不能被改变,但卡20固件可以自动地将更新的数据写到存储器中的新位置,且将旧位置“重新映射”到新位置。该重新映射功能类似于在现有快闪存储器器件中的固件中发生的重新映射(见例如美国专利No. 7,139,864,其通过引用被附于此)。)该“覆写”行为确保主机设备10为支持OTP存储卡20所必须进行的变化最少。该主机设备10可以使用任何文件系统(大多数使用工业标准FAT文件系统),且仍可以进行针对可重写存储卡进行的所有操作,包括例如文件重命名、改变和删除操作。再次参考图1,主机设备10使用逻辑地址与存储卡20相接口,控制器30用作在主机设备10和物理存储器器件40之间的接口,且进行逻辑到物理的寻址。在控制器30和存储器器件40之间的接口使用物理地址。该接口实施方式对现有快闪存储器器件来说是标准的(见例如美国专利No. 7,139,864,其通过引用被附于此。)图3和4示范了即使基础存储器40是OTP,控制器30如何使得逻辑存储器看起来可重写。图3示出在逻辑地址处存储的原始数据被存储在存储器器件30内的物理位置中。图4示出当主机设备10在逻辑地址处覆写该数据时,新更新的数据被存储在新物理地址处,且控制器30更新逻辑到物理的寻址来引用该更新的数据、而非现在被取代(super-ceded)的原始数据。再次,该处理类似于上述现有快闪存储器器件实施方式;但是,在该实施例和快闪实施方式之间的不同在于, 在该实施方式中的存储器40 (在此,OTP)不被擦除和重新使用。在可写模式中,存储卡20实施新命令(读取剩余存储器(ReacLMenUtemaining)) 以供主机设备10跟踪剩余物理存储器(OTP)的量。(在SD第1部分物理层规范,版本2. 00, 章节4. 3. 12命令系统中,分配且定义了该命令码,作为切换命令协议的部分,但针对OTP卡应用,数据值及格式被具体地定义。)下表列举在当前优选实施例中(当然,可使用其它实施方案)Read_Mem_Remaining返回的值。优选地以最有效字节、最有效位次序返回值。
字节位置参数说明511: 508剩余的主要区域卡的“主要”区域中剩余的存储器的量。以扇区为单位(200h字节) 艮告507: 504剩余的保留区域卡的’‘主要’’区域中剩余的存储器的量。以扇区为单位(200h字节)报告 通过使主机设备10负责跟踪存储器消耗,存储卡20定义避免原始OTP卡实施方案存在的卡尝试辨别主机设备正在做什么及为什么这样做的问题。利用此新定义,存储卡 20自由地接受及执行所有写入操作,这是因为将只有被使能的主机设备才能够向其写入, 且该主机设备负责跟踪存储器消耗及避免不合法的操作。
在此实施例中,新命令(“主要”及“保留”)返回的前两个值向主机设备10报告卡20上剩余的物理空间的量(1)用于一般/非特定的使用(文件数据及文件系统操作) (“主要区域”)及(2)仅为文件系统操作(不为文件数据)保留(“保留的区域”)。该主要值被定义以使得,主机设备10可以与当前使用FAT表的相同方式使用该主要值来既确定可将多少更多文件(或,更一般而言,多少更多数据)写入至卡20,又决定何时卡20是满的且主机设备10应停止将数据写入至卡20。该保留值被定义以使得,主机设备10将总是能够在卡20完全被消耗(如由主要区域所报告的)时,以与针对FAT文件系统结构进行的方式相同的方式,执行为完成已在进行中的文件所需的文件系统相关操作。这使得主机设备10除了可重写卡之外为支持OTP卡必须进行的改变最小。图5图示说明(对主机设备10可见的)逻辑存储器与(对主机设备10不直接可见的)物理存储器40之间的关系。通过文件系统结构(通常针对标准的FAT文件系统是 “文件分配表”)跟踪未使用的逻辑存储器的量。存储卡20中的控制器30管理逻辑至物理寻址。此图中由交叉阴影表示的重写数据不再被参考但仍消耗物理存储器。控制器30使用新命令来报告剩余的物理存储器的量,因此主机设备可确定可用的空间量。剩余的物理存储器的量可小于或大于剩余的逻辑存储器的量。在此实施例中,也修改“Program_CSD” (编程卡状态预设)及“Lockjnlock” (锁定解除锁定)命令的行为,以反映卡存储器40是OTP且不可重写的事实。也即,这些命令优选地仅使用一次以更新/编程相关的寄存器。卡状态预设(Card Status Defaults, CSD) 寄存器报告卡20的操作条件及支持的命令与特征。卡状态预设(CSD)寄存器也包含少量可写位,用于指示卡20的写入保护状态及卡20是原始数据还是副本。这些位总体上仅可设定一次;如果通过发出Program_CSD命令改变了任何位,则不可再次使用该命令再次更新CSD寄存器。L0Ck_Unl0Ck命令既用以设定卡20密码,又用以供应该密码以稍后解除锁定卡20。对于OTP卡20,密码仅可设定一次,且一旦设定即决不可改变或清除。若密码已经设定,则如SD规范所要求的,这对卡20的将来行为具有暗示。并且,OTP卡20优选地不支持SD规范中所述的“强制擦除”操作,在“强制擦除”操作中,若忘记密码则可完全地擦除卡20 (清除密码),这是因为OTP卡20不支持擦除操作。规定这两个寄存器仅可改变一次,每个均实现两个目的。第一,这固定了卡20必须保留以便存储更新的寄存器值的空间量;第二,这允许主机设备10确定该寄存器是否已改变(若该寄存器不匹配其默认值,则该寄存器一定已经被改变了,且由于已经被改变了,因此不可再次修改)。若主机设备10可改变寄存器值多于一次,则此将明显不是真的。如以上所陈述,本文中所述的实例仅是这些实施例可采取的诸多实施方案中的某些实施方案。并且,虽然在这些实例中利用了 OTP存储器的使用,但应注意,本文中所述的教导也可应用于FTP存储器。此外,虽然这些实施例中的存储卡20采用了 SD卡的形式, 如以上所提及,但可使用任何适合类型的存储器器件,包含但不限于与MultiMedia(多媒体)、MemoryStick (记忆棒)、CompactFlash (紧致型闪存)、SmartMedia (智能媒体)、xD、 USB或HS-MMC规范兼容的那些存储器器件。作为另一替代方案,可以修改以上实施例,以添加用以防止意外或蓄意覆写、改变或删除在一次写入多次读取(WORM)存储器器件中的现有数据的特征。优选地,这些特征以固件逻辑及算法来实施,且不依赖于任特定存储器类型。因此,WORM存储卡可使用单次可编程(OTP)、数次可编程(FTP)或读取/写入存储器器件来构造,且可使用二维闪存或三维存储器来构造。(更一般而言,本文中所述的实施例中的任一(包含上述的OTP实施例)可使用任一类型的存储器(例如,OTP或可重写)来构造,这是因为在这些实施例中,是控制器而非基础存储器实现卡“OTP”或“WORM”。)一般而言,WORM卡被设计用于OEM/工业应用,其中数据可靠性及安全至关重要, 诸如,当存储用于警方证据的数字静态图像、视频图像及录音;用于税收目的的销售点收据;及长期存储的财务记录时。对于这些及其它应用,WORM卡的用以确保写入卡的数据的完整性及安全的能力是其首要属性。因此,期望防止意外或蓄意覆写、改变或删除现有数据的特征。此实施例在添加额外特征的同时使用上述的OTP实施例的特征中的某些特征。具体而言,如同OTP卡,此实施例的WORM卡*以只读模式加电、与定义的“ROM” SD存储卡类型兼容,且在现有SD兼容主机设
备中可读。*需要主机设备将卡切换为不同模式(此处,读取/写入WORM模式,其不同于OTP 卡中使用的OTP模式);WORM模式实施下文陈述的用以确保数据完整性的额外特征。*实施与OTP卡类似的命令以供主机设备跟踪物理存储器消耗。*针对Program_CSD及Lock/Unlock命令,表现方式与OTP卡类似。然而,此实施例的WORM卡实施新特征,用以确保数据可被添加至卡,但在写入之后不会被改变或删除。具体而言,此实施例的WORM卡*实施新写入“filter (过滤器)”,其分析由主机设备发出的写入命令以确定是否应执行写入。*实施WORM模式中的新命令,以供主机设备将写入指定为“开放”或“关闭”。此特征与写入过滤器一起使用,以确保数据在写入之后不会被改变。在一个当前优选实施例中,WORM卡的实施遵循与其它SD卡产品相同的卡结构。也即,控制器30实施卡20的特征及算法,且充当主机设备10与内部存储器器件40之间的接口,如图1中所图示的。如以上所陈述,WORM卡不需要任何特别的存储器技术,且可利用例如OTP、FTP或读取/写入存储器来构造。如图6中所示,如同上述的OTP卡20,此实施例中的WORM卡60实施两个操作模式,其中,以ROM模式加电、可由兼容的SD主机设备读取,且必须在可执行写入之前切换为可写模式。然而,与上述的OTP卡20不同,将WORM卡60切换为“WORM”模式(而非“OTP” 模式),这可使用相同命令但不同变量来执行。在WORM模式中,卡60实施用以确保数据可添加至卡60但以后不被改变的特征。内部地,在卡60接受写入命令(且写入过滤器不拒绝卡60实施以确保数据不在写入之后改变)之后,卡60操作类似于上述的OTP卡20,且针对更新现有数据扇区的写入而更新内部数据结构。若读取/写入基础存储器器件,则可以擦除及重新使用新取代的“原始数据”扇区。若基础存储器器件是0ΤΡ,则被更新的数据扇区将决不重新使用且将简单地决不再次被参考或存取。WORM卡60优选地实施与OTP卡20相同的读取剩余存储器命令,以供主机跟踪物理存储器消耗。并且,在Program_CSD及LockUnlock命令下的WORM卡60的行为优选地与上述的OTP卡20实施方案相同。然而,WORM卡60优选地实施新命令,以供主机将写入操作标记为“开放”或“关闭”。结合下文所述的写入过滤器使用此信息,以确保数据不在写入之后被改变或删除。(在SD第1部分物理层规范,版本2. 00,章节4. 3. 12命令系统中将该命令码分配及定义为切换命令协议的部分,但针对WORM卡应用,数据值及格式被具体地定义)。在一个实施例中,主机通过针对“开放”规定变量Olh或针对“关闭”规定变量0 来使用此命令。一旦被设定,模式即是“固定的”,且直到再次发出该命令才改变。当首次将卡 60切换为WORM模式时,写入模式默认为“开放”。在此实施例中,WORM卡60使用FAT文件系统来组织写入至卡60的文件及目录。 (这是SD规范在第2部分文件系统规范中推荐的文件系统。)如以上的OTP卡说明中所陈述,使用FAT文件系统的主机设备通常将在执行正常文件系统操作的过程中发出覆写现有数据的写入操作。在此实施例中,WORM卡60需要主机设备对其FAT文件系统实施方案进行改变,以满足WORM卡数据覆写要求,但存在覆写现有数据的某些FAT文件系统操作,WORM 卡60必须仍支持该FAT文件系统操作以(一般而言)可与FAT文件系统兼容。因此,在此实施例中,WORM卡60优选地实施写入过滤器,以分析由主机发出的写入命令且确定哪些是合法的且应执行以及哪些是不合法的且应拒绝。在高等级上,WORM卡60允许与添加或形成新文件或目录相关的写入操作,但拒绝改变已写入数据的写入操作。举例而言,所拒绝的写入操作包含改变文件数据(诸如,对所完成文件覆写、删除或追加数据)的那些操作以及改变文件的(或目录的)文件条目(entry)(诸如,重命名文件条目、删除文件条目(或将其标记为“被删除”,不同操作)、改变其属性(只读、归档等)或者改变创建或最后修改的日期及时间戳,及其它类似操作)的那些操作。为支持写入过滤器,WORM卡60优选地将其逻辑存储器划分为三个区,如图7中所示。系统区域在位于存储器的开始(逻辑地址00h)处的“主启动记录(Master Boot Record)”结构处开始,直到且包含“分区启动记录(Partition Boot Record)”结构。FAT 区域由文件分配表的两个副本组成且位于紧邻系统区域后面。用户区域由卡的存储器的剩余部分组成,在根目录处开始,紧邻第二 FAT后面,直到卡的逻辑存储器的结尾。FAT文件系统结构的地址(其标记各种区之间的边界)可通过将该结构解码来确定,该结构开始于位于逻辑位置OOh处的MBR。在此实施例中,WORM卡60实施用以确保数据不可在已被写入之后被修改的写入规则。这些规则按扇区来分析每写入命令,以确定每个扇区是否应如同主机所请求的那样被写入。该写入规则优选地在确定是允许还是拒绝写入时使用三个信息片段写入操作的位置(系统区域、FAT区域或用户区域)、该扇区先前是否已被写入及其已被写入为“开放” 还是“关闭”,及主机正尝试写入的数据图样。在一个当前优选实施例中,由WORM卡60实施的写入规则如下*不管是开放还是关闭,都不允许向系统区域写入。*向FAT区域写入仅可改变未经编程的集群(cluster)条目(entry)。不可将经编程的集群条目改变为任一值,包含OOOOh (未经编程的值)。集群条目是偶数字节地址上对准的两个字节值;若集群条目的任一位非零,则该集群条目被认为已被编程了且不可改变。在一个当前优选实施例中,向用户区域写入服从以下规则*数据只能以32字节数量(目录条目的大小)的倍数来修改,从而与32字节地址对准。若32字节群组的任一位非零,则该32字节群组被认为是已被编程且不可改变。
*若扇区(512个字节)先前已写入任何非零资料,则只能以编程的 (programmed) 32字节数量向该扇区追加(以后写入)额外数据。若扇区具有先前经编程了的一个或多个32字节数量,从而存在未被编程的一个或多个32字节数量(全部是OOh值) 的“间隙”,则不能编程这些介入的(intervening)空的32字节数量。*若扇区先前已被写入为“关闭”,则不管主机所请求的位置或数据图样如何,该扇区都决不可再次被写入。若主机违反这些规则中的任一个,则卡将返回写入保护违反(Write Protection Violation)错误。当然,以上规则仅是实例,且可使用其它规则。举例而言,在某些实施例中,只能以 32字节数量的倍数修改数据的规则可能是不必要的限制,且可能更好的做法是,允许更新至先前被编程的32字节数量,只要那些32字节数量留下了空着的“开始集群”和/或“文件长度”字段,且仅更新那些字段而不更新任何其它字段。此修改会使得主机设备更容易支持WORM卡,这是因为主机设备将必须对它们的现有FAT文件系统实施方案进行的改变更少。作为另一实例,只能以32字节数量追加数据的规则在WORM卡依赖于主机设备适当地遵循该规则时可能是不必要的。对于遵循所推荐的实施方案的主机设备,此情形应不会出现。另外,注意,以上的规则阐述支持“FAT 16"FAT文件系统的优选实施例;可开发类似规则用于FAT 12, FAT 32及exFAT文件系统,这些文件系统也是存储器器件常用的。WORM卡60优选地需要主机设备修改其FAT文件系统实施方案以满足写入规则。 WORM卡60优选地需要主机设备将文件数据(文件包含的数据,与文件系统相关的数据(诸如,文件名称)相对。)写入为“关闭”写入;通过这样做,不管文件的内容如何,文件数据都决不可改变。若主机不将文件数据写入为“关闭”且文件数据含有一个或多个空扇区(全部是OOh值),则恶意装置可通过改变该扇区以使得将某些OOh值改变至其它值,来破坏该文件。文件系统相关的信息因为稍后可能会更新这些扇区而应写入为“开放”,这是因为一扇区可能含有关于不止一个文件的信息。如上所述以及以引用方式并入本文中的美国专利申请No. 12/421,2 及 12/421,238号中所提及的,WORM存储器器件可以用以在数据完整性非常关键的归档情形下存储数据,诸如,当例如存储数字证据或其它类型的法庭可容许内容、国家安全信息、保险记录、保密信息及投票机数据时。在这些情形下,对于用户而言,确信WORM存储器器件将如预期那样运行且维持数据完整性较重要。为提供此保证,在允许主机将数据存储于存储器器件中之前,首先验证该存储器器件。此确保该存储器器件是来自可信源且不是伪造装置,其可能潜在地有意地或意外地删除或更改关键数据。此验证可以每一存储器器件仅发生一次(例如,一次注册)、每当主机尝试将数据存储于存储器器件中时发生(例如,每一会话均需要验证)或以任何其它期望间隔发生。可使用用于验证存储器器件的任何适合技术,不过以下段落提供某些例示性技术。在一个实施例中,WORM存储器器件预加载有安全密钥(或更一般而言,“安全信息”,其可以是用以验证该存储器器件的任何信息),且如果该安全密钥出现于被授权的安全密钥的列表上则该存储器器件得到验证。安全密钥可以采取任一适合形式,且可以是该存储器器件特有的(例如,由控制器随机地产生)或可以是一批存储器器件特有的。该安全密钥可存储于存储器器件中的任一适合位置中,且在一个实施例中,存储于隐藏区域中,以防止该密钥被未被授权的实体存取。在此实施例中,在该存储器器件的控制器初始化且进入操作模式之前,主机必须首先通过针对安全密钥的列表验证该安全密钥来登记该存储器器件。此列表可存储于主机上或所连接的服务器上。在存储于所连接的服务器上的情形下, 进行验证的主机优选地在验证期间例如经由因特网连接至该服务器,以访问安全密钥的最新列表。若该存储器器件的安全密钥在该列表上,则使该存储器器件进入操作模式。此可以任一适合方式发生。举例而言,在一个实施例中,在验证安全密钥时,主机可自动地通过在存储器器件中设定标记来登记存储器器件,其将解除锁定该存储器器件,从而允许该存储器器件进入操作模式中。在另一实施例中,人检验者(例如,具有针对监督验证处理的认证性密码权限的人)手动地设定该标记。在又一实施例中,替代在存储器器件中设定标记以使其进入操作模式,该存储器器件制造于操作模式下,且人检验者简单地将得到验证的那些存储器器件与未得到验证的那些存储器器件分离,以使得仅分发得到验证的存储器器件。此“监管链(chain of custody)”提供对得到验证的存储器器件的所期望保证。验证也可是基于视觉检验、确认供应通道的真实性或以电子方式比较该存储器器件与主“金副本(gold copy) ”。不管所用的特定方法如何,以上的技术都确保WORM存储器器件将如所宣传那样运行。出于额外安全起见,除了验证安全密钥之外,也可在认为存储器器件是真实的之前连同该安全密钥一起验证一个或多个值。这些额外值可采取任一适合形式,诸如,但不限于时间戳或存储器器件识别符(例如,存储器器件的串行ID)。这些额外值也可通过验证安全密钥的同一列表来验证,或可使用另一列表来验证。出于增加安全性起见,可使用预定密钥来将安全密钥和/或额外值中的一个或多个加密,其中主机在验证这些被加密组件之前将这些解密。并非出于限制权利要求的意图,在一个当前优选实施例中,验证方法使用RSA(或等效物,诸如,ECC)非对称协议及WORM存储器器件上的证书加密钥对,来通过密钥服务器验证该WORM存储器器件。此实例显示于图8及9中。在图8及图9两者中,WORM卡证书机构(CA) 800为WORM存储器器件820(或为一批WORM存储器器件)颁发安全证书810。CA 的根证书连同用以识别被注销证书的证书注销列表(CRL)存储于密钥服务器830上。同样的证书810连同私人密钥对(未显示)在生产期间被存储于WORM存储器器件820上。在初始化供使用的WORM存储器器件820之前,相对密钥服务器830上的证书CRL来验证存储器器件820上的证书。密钥服务器830可以保持已通过该过程启用的有效存储器器件的列表。在图8中,密钥服务器830远离主机840,且由主机840经由网络(诸如,因特网 850)访问,以访问证书及CRL的最新列表。在此情形下,主机840可通过安全连接来识别且验证密钥服务器830。相比之下,在图9中,密钥服务器830是主机840的部分。在此情形下,密钥服务器830是可信本地服务器,且不需要服务器验证,这是因为可本地地进行存储器验证。该主机/本地服务器可以是例如PC或数字相机。应注意,可使用其它密钥服务器配置。举例而言,密钥服务器可位于组织的与主机分离的内部网络内。现转至另一实施例,存储于WORM存储器器件上的数据可以是高度机密及保密的。 因此,可期望对WORM存储器器件实施一个或多个安全特征,以维持所存储数据的完整性及保密性。参考图10,WORM存储器器件1010的控制器1000可以在存储模式下操作,其中控制器1000在将数据写入至存储器1020时将该数据加密且将仅向已提供适当认证的主机1030 提供解密的数据。可使用任一加密方法。在项实施例中,WORM存储器器件1010使用硬件加密方法。举例而言,WORM存储器器件1010中的控制器1000可使用以引用方式并入本文中的美国专利申请公开No. 2006/0M2064及2008/0010685中所述的硬件加密方法。另一选择是,WORM存储器器件1010可使用软件加密方法或硬件及软件加密方法的组合。可使用的适合加密技术的实例包含,但不限于AES、DES、3DES、PKI、SHA-IHash (杂凑)、RSA及随机数产生。在一个当前优选实施例中,存储器器件1010使用来自SanDisk公司的TrustedFlash 安全平台。各种加密形式可供使用,且主机可在卡的验证期间设定加密类型。这在如下情形下可能是有用的,其中组织可能期望这些所有卡都以某一模式操作且他们可通过在验证过程期间设定加密类型来确保如此。在此情形下,他们将也具有被设定以用该模式写入数据的适当主机。存储器器件1010的控制器1000也可以被操作以实施多个存储模式,其中主机 1030可向存储器器件1010提供命令(例如,操作码)以选择这些模式之一。此允许主机 1030决定什么模式最适合给定的应用使用模型。举例而言,图11显示主机设备1030针对三个不同文件(“文件1”、“文件2”、“文件3”)发送三个不同操作码(“写入A”、“写入B”、 “写入C”)。响应于这些操作码,WORM存储器器件1010使用文件对应存储模式来存储文件。 因此,如图11中所示,文件1将使用存储模式A来存储,文件2将使用存储模式B来存储, 且文件3将以存储模式C来存储。当然,可使用更少(甚至一个)或更多的存储模式。虽然各种存储模式可具有任何期望的特性,但图12A至12C图示说明实施例的三个特定存储模式。存储模式A(图12A)是不安全模式。因此,当主机设备1030将命令发送至WORM存储器器件1010以读取(或更一般而言,“访问”(例如,读取或拷贝)使用存储模式A存储的文件(此处,文件1)时,WORM存储器器件1010简单地向主机设备1030提供文件1。也即,在此模式中,不需要安全,且WORM存储器器件1010将允许对文件的开放存取。存储模式B (图12B)是标准的安全模式,其中读取使用存储模式B存储的文件(此处,文件2、需要密码。如图12B中所图示说明,为读取文件2,主机设备1030发送用以读取文件2的命令以及有效认证(此处,用户ID及密码)两者。WORM存储器器件1010相对所存储的有效认证列表检查这些认证,且若存在匹配,则向主机设备1030提供文件2。WORM存储器器件1010 可以保持尝试(成功或不成功)读取文件2的存取日志(access log),且可以提供此日志给得到验证的主机设备1030。在存储模式B的另一实施方案中,主机已具有用以存取卡的有效密钥;然而,系统(例如,运行于PC上的程序)在允许主机存取卡之前需要用户输入有效用户ID及密码。此将是一种“本地验证”,其中由该组织来决定控制这些围墙(wall)内的存取。最后,存储模式C(图12C)是高安全模式,其需要主机设备1030连接至密钥服务器1210 (例如,经由因特网1220),以验证存储于主机设备1030上的证书1200 (或更一般而言,用户ID及存取密钥)。此安全等级可确保尝试在WORM存储器器件1010中存取数据的主机设备是当前得到验证的主机。在此实施例中,WORM主机证书机构向主机设备1010提供证书1200。WORM主机证书机构也将证书及证书注销列表(CRL)存储于密钥服务器1210上。 当主机设备1030期望读取使用存储模式C存储的文件(此处,文件幻时,主机设备1030首
14先将其证书提供给密钥服务器1210以供验证。若证书1200匹配密钥服务器1210上的证书且不在CRL上,则密钥服务器1210将验证证书1200且向主机设备1030提供有效认证。 当主机设备1030将这些有效认证连同读取文件3的请求提供给WORM存储器器件1010时, WORM存储器器件1010允许主机设备1030读取文件3。如同存储模式B —样,WORM存储器器件1010可保持尝试读取文件的存取日志。密钥服务器1210也可保持尝试验证证书的存取日志以及启动的主机设备的列表。在已使用某存储模式将文件写入至WORM存储器器件1010之后,可将该文件(和/ 或存储于WORM存储器器件1010中的其它文件)设定至较高安全等级。举例而言,使用存储模式A写入的文件可由得到验证的主机设定至存储模式B,且使用存储模式B写入的文件可设定至存储模式C。然而,优选地,可以防止将文件设定至较低存储模式(例如,不应将存储模式C设定至存储模式A)。一个使用实例是当相机主机拍摄图像时。该相机主机可使用存储模式A写入图像以允许用户浏览相机的显示装置上的图像。然而,在浏览该图像之后, 用户可以决定然后使WORM存储器器件上的该图像安全,且因此将该图像(且或许WORM存储器器件上的其它图像)切换至存储模式C,此时将读取访问仅授权给得到验证的主机。在存储模式C的另一实施方案中,主机上的证书必须首先通过远程密钥服务器来验证,此后, 系统(例如,运行于PC上的程序)在允许主机存取卡之前需要用户输入有效用户ID及密码。该密钥服务器可以是处于任何适合位置,诸如,但不限于在与主机分离的本地内部网络上。这些实施例提供优于先前存储技术的多个优点。举例而言,虽然可以使用模拟媒体(诸如,胶片及卡式磁带)来以不可更改的状态存储关键数据(诸如,证据),但模拟媒体比数字媒体(例如,闪存)难以复制,这是因为必须将数据转换至要电子地存储及分布的数字格式。虽然出于归档目的,可将原始模拟媒体保持为在将该模拟媒体锁定于外部外壳中以物理地限制数据存取之外,但难以保持数据保密且难以跟踪存取历史。此外,模拟媒体正逐渐变得稀少且逐渐被大多数制造商淘汰,从而使模拟媒体难以找到。并且,当传统的快闪媒体装置(诸如,标准的SD卡或CF卡)用以存储机密数据时,通常,需要针对该卡的严格的监管链过程,以在处置该卡期间确保不以任一方式更改存储于其中的数据,这是因为传统的快闪媒体装置可被更改。以上所论述的安全特征可用以解决这些担忧,这是因为对于WORM存储器器件本身而言,确保不更改所存储数据的功能性是内置的。并且,通过使用以上所论述的暂存特征,可向用户保证WORM存储器器件是合法的且将支持来自主机的实施WORM功能性所需的任何专用命令。可使用其它替代方案。举例而言,为保持WORM存储器器件防篡改,可在该存储器器件的生产期间从该存储器器件的基板移除可以提供对存储器的直接存取的测试垫。最后,如以上所陈述,这些实施例中使用的存储器可采取任何适合形式,这是因为实施该存储器器件的一次写入多次读取性质的是控制器(例如,纯硬件或运行固件或软件的硬件)。因此,该存储器可是一次可编程、数次可编程或可重写(例如,NAND)。在可重写存储器的情形下,使用控制器来限制写入的次数(最少限制为一次写入)可提供较长数据保持。并且,如以上所陈述,在一个实施例中,该存储器器件根据SDA标准工作,且使用来自 SDA物理层规范的标准的SD命令连同某些额外的WORM专用命令。虽然在该实施例中该存储器器件具有SD卡形式因素,但应注意,可使用其它形式因素。
某些权利要求可能陈述,组件被操作以执行某功能或被配置以用于某一任务。应注意,这些并非限制性限定。也应注意,权利要求中所叙述的动作可以任何次序执行,未必以对其进行叙述的次序执行。并且,意欲将前述详细说明理解为对本发明可采取的选定形式的图示说明,而非理解为对本发明的定义。意欲仅由以下权利要求(包含所有等效形式) 来定义本发明的范围。最后,应注意,本文中所述的任一优选实施例的任何方面可单独地或彼此组合地使用。
权利要求
1.一种存储器器件,包括 存储器;存储的安全信息;以及与所述存储器通信的控制器,其中,在存储的安全信息被确认之后,所述控制器可在第一和第二操作模式下操作,其中,在第一操作模式中,所述存储器器件在只读模式下操作, 且其中,在第二操作模式中,所述存储器器件在一次写入多次读取(WORM)模式下操作。
2.根据权利要求1的存储器器件,其中,所述存储的安全信息是存储器器件特有的。
3.根据权利要求1的存储器器件,其中,所述存储的安全信息是包括所述存储器器件的一批存储器器件特有的。
4.根据权利要求1的存储器器件,其中,在由与存储器器件通信的主机确认存储的安全信息之后,所述控制器可在第一和第二操作模式下操作。
5.根据权利要求4的存储器器件,其中,用于确认存储的安全信息的信息存储在主机上。
6.根据权利要求4的存储器器件,其中,用于确认存储的安全信息的信息存储在与主机通信的服务器上。
7.根据权利要求4的存储器器件,其中,所述存储的安全信息包括RSA证书,且其中,用于确认RSA证书的信息包括证书机构根证书和证书废除列表。
8.根据权利要求1的存储器器件,其中,在确认存储的安全信息之后,在存储器器件中存储标记,来使得所述控制器在第一和第二操作模式下操作。
9.根据权利要求1的存储器器件,其中,所述存储的安全信息存储在存储器器件中的隐藏区域中。
10.根据权利要求1的存储器器件,其中,在确认存储的安全信息之后,且在确认至少一个额外项目之后,所述控制器可在第一和第二操作模式下操作。
11.根据权利要求10的存储器器件,其中,所述至少一个额外项目包括时间戳或存储器器件的标识符。
12.根据权利要求10的存储器器件,其中,所述存储的安全信息和所述至少一个额外项目中的至少一个被加密。
13.根据权利要求1的存储器器件,其中,由与存储器器件通信的主机自动确认存储的安全信息。
14.根据权利要求1的存储器器件,其中,由经授权的用户操作的、与存储器器件通信的主机确认存储的安全信息。
15.根据权利要求1的存储器器件,其中,所述存储器包括NAND。
16.根据权利要求1的存储器器件,其中,在确认了存储的安全信息之后,将所述存储器器件与未验证的存储器器件分离。
17.—种验证存储器器件的方法,该方法包括 利用包括控制器的存储器器件进行以下步骤从与存储器器件通信的主机接收对存储器器件中存储的安全信息的请求; 向主机发送安全信息;以及如果安全信息被确认,则从主机接收使得所述控制器能够在第一和第二操作模式下操作的信息,其中,在第一操作模式中,所述存储器器件在只读模式下操作,且其中,在第二操作模式中,所述存储器器件在一次写入多次读取(WORM)模式下操作。
18.根据权利要求17的方法,其中,所述存储的安全信息对存储器器件是唯一的。
19.根据权利要求17的方法,其中,所述存储的安全信息对包括所述存储器器件的一批存储器器件是唯一的。
20.根据权利要求17的方法,其中,用于确认所述安全信息的信息存储在主机上。
21.根据权利要求17的方法,其中,用于确认所述安全信息的信息存储在与主机通信的服务器上。
22.根据权利要求17的方法,其中,所述安全信息包括RSA证书,且其中,证书机构根证书和证书废除列表用于确认RSA证书。
23.根据权利要求17的方法,其中,从所述主机接收的使得控制器能够在第一和第二操作模式下操作的信息包括标记。
24.根据权利要求17的方法,其中,所述安全信息存储在存储器器件中的隐藏区域中。
25.根据权利要求17的方法,还包括向所述主机发送至少一个额外项目用于确认,其中如果安全信息和至少一个额外项目都被确认了,则所述存储器器件从主机接收使得控制器能够在第一和第二操作模式下操作的信息。
26.根据权利要求25的方法,其中,所述至少一个额外项目包括时间戳或存储器器件的标识符。
27.根据权利要求25的方法,其中,加密所述存储的安全信息和所述至少一个额外项目中的至少一个。
28.根据权利要求17的方法,其中,由所述主机自动确认所述存储的安全信息。
29.根据权利要求17的方法,其中,由所述主机确认存储的安全信息,且其中,由授权的用户操作所述主机。
30.根据权利要求17的方法,其中,所述存储器包括NAND。
31.一种存储器器件,包括存储器;以及与所述存储器通信的控制器,其中,所述控制器可在第一和第二操作模式下操作,其中,在第一操作模式中,所述存储器器件在只读模式下操作,且其中,在第二操作模式中,所述存储器器件在一次写入多次读取(WORM)模式下操作;其中,所述控制器还可在第一存储模式下操作,其中所述控制器可操作来加密控制器在存储器中存储的数据;以及对控制器从存储器中读取的加密数据进行解密,且仅向提供适当认证的主机提供解密的数据。
32.根据权利要求31的存储器器件,其中,所述控制器还可在至少一个额外存储模式下操作。
33.根据权利要求32的存储器器件,其中,可由请求将数据存储在存储器中的主机选择所述第一存储模式和所述至少一个额外存储模式。
34.根据权利要求33的存储器器件,其中,所述至少一个额外存储模式包括其中所述控制器可操作以允许对文件的开放存取的存储模式。
35.根据权利要求33的存储器器件,其中,所述至少一个额外存储模式包括其中所述控制器可操作以在所述主机提供有效认证之后允许对文件的存取的存储模式。
36.根据权利要求35的存储器器件,其中,所述有效认证包括有效用户名和密码。
37.根据权利要求35的存储器器件,其中,所述有效认证包括对主机的证书的确认。
38.根据权利要求31的存储器器件,其中,所述控制器还可操作以在已经存储文件之后改变该文件的安全级别。
39.根据权利要求31的存储器器件,其中,所述控制器还可操作以维持试图存取存储器中存储的文件的日志。
40.根据权利要求31的存储器器件,其中,所述存储器包括NAND。
41.根据权利要求31的存储器器件,其中,加密类型由主机在存储器器件的验证期间设置。
42.一种用于存取存储器器件中的数据的方法,该方法包括利用存储器器件进行以下步骤,其中,存储器器件包括存储器和与所述存储器通信的控制器,所述控制器可在第一和第二操作模式下操作,其中,在第一操作模式中,所述存储器器件在只读模式下操作,且其中,在第二操作模式中,所述存储器器件在一次写入多次读取(WORM)模式下操作(a)接收存储数据的请求,其中,所述请求包括对多个存储模式之一的选择,其中,在该多个存储模式的至少一个中,该数据在存储在存储器中之前加密,且仅可由经授权的主机从存储器中读取;以及(b)根据所选存储模式来存储该数据。
43.根据权利要求42的方法,其中,在另一个存储模式中,所述控制器可操作以允许对该数据的开放存取。
44.根据权利要求42的方法,其中,在另一个存储模式中,仅提供有效认证的主机可以存取该数据。
45.根据权利要求44的方法,其中,所述有效认证包括有效用户名和密码。
46.根据权利要求44的方法,其中,所述有效认证包括对主机的证书的确认。
47.根据权利要求42的方法,还包括在已经将数据存储在存储器中之后改变该数据的安全级别。
48.根据权利要求42的方法,还包括维持试图存取存储器中存储的数据的日志。
49.根据权利要求42的方法,其中,所述存储器包括NAND。
50.根据权利要求42的方法,其中,加密类型由主机在存储器器件的验证期间设置。
全文摘要
这些实施例关于一次写入多次读取(WORM)存储器器件的验证及保护。在一个实施例中,存储器器件包括控制器,该控制器可在验证所存储的安全信息之后以第一操作模式及第二操作模式操作,其中在该第一操作模式中,该存储器器件以只读模式操作,且在该第二操作模式中,该存储器器件以一次写入多次读取(WORM)模式操作。在另一实施例中,该控制器操作以执行安全方法。
文档编号G06F12/14GK102576334SQ201080044619
公开日2012年7月11日 申请日期2010年9月16日 优先权日2009年10月2日
发明者C.S.莫尔, H.伊诺, J.S.惠特斯通, R.巴齐莱, S.Y.俞 申请人:桑迪士克科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1