CN110457236B - 存储系统以及对存储系统执行和验证写保护的方法 - Google Patents
存储系统以及对存储系统执行和验证写保护的方法 Download PDFInfo
- Publication number
- CN110457236B CN110457236B CN201910746223.5A CN201910746223A CN110457236B CN 110457236 B CN110457236 B CN 110457236B CN 201910746223 A CN201910746223 A CN 201910746223A CN 110457236 B CN110457236 B CN 110457236B
- Authority
- CN
- China
- Prior art keywords
- write protection
- memory
- information
- type
- write
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及了一种存储系统以及对存储系统执行和验证写保护的方法。所述方法包括在存储装置接收请求。所述请求包括请求消息验证码和写保护信息。写保护信息包括起始地址信息和长度信息中的至少一个。起始地址信息指示存储装置的非易失性存储器中的存储器区域起始的逻辑块地址,长度信息指示存储器区域的长度。该方法还包括:基于起始地址信息和长度信息中的至少一个以及存储在存储装置的密钥,在存储装置产生消息验证码;基于所产生的消息验证码和请求消息验证码,在存储装置处验证请求;以及基于验证结果在存储装置处处理请求。
Description
本申请是基于申请日为2015年3月27日、申请号为201510142514.5、发明创造名称为“存储系统以及对存储系统执行和验证写保护的方法”的中国专利申请的分案申请。
相关申请的交叉引用
本申请要求于2014年3月28日提交的美国临时专利申请No.61/971,673和于2014年9月4日在韩国知识产权局提交的韩国专利申请No.10-2014-0117786的优先权,所述申请的全部内容以引用方式并入本文中。
技术领域
本文描述的本发明构思涉及一种存储系统,更具体地说,涉及一种存储系统及其写保护方法。
背景技术
存储系统包括主机和存储装置。主机和存储装置通过诸如串行ATA(SATA)、通用闪存(UFS)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)和嵌入式MMC(eMMC)之类的多种标准化接口连接。
在常规存储装置中,任何人通过预定命令设置和释放写保护。还通过命令设置写保护的类型。另外,即使设置了写保护,任何人也可释放写保护或改变写保护的设置。
例如,被写保护的是操作系统的引导装入程序或内核映像。由于任何人释放写保护或改变其设置,因此使引导装入程序或内核映像受到未经允许访问的诸如超级根权限访问(rooting)之类的危险。
发明内容
至少一个实施例涉及一种非暂时计算机可读介质。
在一个实施例中,所述非暂时计算机可读介质在针对存储装置中的非易失性存储器执行写保护操作期间对用于控制存储装置的写保护操作的数据结构进行存储,所述数据结构包括:存储器分区标识符,其标识非易失性存储器的分区;起始地址信息,其指示针对所标识的存储器分区中的存储器区域的逻辑块地址;和长度信息,其指示所标识的存储器分区中的存储器区域的长度,并且所述数据结构包括类型信息,该类型信息向存储装置指示写保护的类型,以向存储器区域提供写保护操作。
在一个实施例中,如果长度信息是参考值,则长度信息指示将写保护应用于所标识的整个存储器分区。
在一个实施例中,数据结构还包括可写信息,其指示是否将写保护应用于存储器区域。
在一个实施例中,类型信息指示从至少包括第一类型的组中选出的类型,第一类型指示在每次存储器通电之后可写信息就可被改变且可写信息指示在存储器通电时应用写保护。
在一个实施例中,所述组包括第一类型、第二类型和第三类型;第二类型指示可写信息可被改变且可写信息指示在存储器通电之后不应用写保护;并且第三类型指示可写信息可被改变。
至少一个实施例涉及一种存储装置。
在一个实施例中,所述存储装置包括第一存储器。第一存储器是非易失性存储器。存储器装置还包括第二存储器,第二存储器被构造为存储:存储器分区标识符,其标识第一存储器的分区;起始地址信息,其指示针对所标识的存储器分区中的存储器区域的逻辑块地址;和长度信息,其指示所标识的存储器分区中的存储器区域的长度。第二存储器被构造为与起始地址信息和长度信息相关联地存储可写信息。该可写信息指示是否将写保护应用于存储器区域。
在一个实施例中,第二存储器被构造为与起始地址信息和长度信息相关联地存储类型信息,其中类型信息指示提供至存储器区域的写保护的类型。
至少一个实施例涉及一种方法。
在一个实施例中,所述方法包括在存储装置处接收请求。所述请求包括请求消息验证码和写保护信息。写保护信息包括起始地址信息和长度信息中的至少一个。起始地址信息指示在存储装置的非易失性存储器中存储器区域起始的逻辑块地址,并且长度信息指示存储器区域的长度。所述方法还包括步骤:基于(1)起始地址信息和长度信息中的至少一个以及(2)存储在存储装置的密钥,在存储装置处产生消息验证码;基于所产生的消息验证码和请求消息验证码,在存储装置处验证请求;以及基于验证结果在存储装置处处理请求。
在一个实施例中,写保护信息包括起始地址信息和长度信息二者;并且所述产生步骤基于起始地址信息、长度信息和密钥来产生消息验证码。
在一个实施例中,写保护信息包括起始地址信息、长度信息和分区标识符。分区标识符标识存储装置的非易失性存储器中的分区,并且所述分区包括了存储器区域。另外,所述产生步骤基于起始地址信息、长度信息、分区标识符和密钥来产生消息验证码。
在一个实施例中,写保护信息包括起始地址信息、长度信息、分区标识符和指示是否将写保护应用于存储器区域的可写信息;并且所述产生步骤基于起始地址信息、长度信息、分区标识符、可写信息和密钥来产生消息验证码。
在一个实施例中,写保护信息包括起始地址信息、长度信息、分区标识符、可写信息和指示提供至存储器区域的写保护的类型的类型信息;并且所述产生步骤基于起始地址信息、长度信息、分区标识符、可写信息、类型信息和密钥来产生消息验证码。
在一个实施例中,类型信息指示从至少包括第一类型的组中选出的类型,其中第一类型指示在存储器通电之后可写信息就可被改变且可写信息指示在存储器通电时应用写保护。
在一个实施例中,所述组包括第一类型、第二类型和第三类型。第二类型指示可写信息可被改变且可写信息指示在存储器通电之后不应用写保护。第三类型指示可写信息可被改变。
在一个实施例中,所述产生步骤产生基于散列的消息验证码。
在一个实施例中,所述验证步骤在所产生的消息验证码与请求消息验证码匹配的情况下验证请求;并且所述处理步骤在请求被验证的情况下处理请求。
在一个实施例中,所述请求利用包括在请求中的信息来请求存储装置更新写保护信息。
在一个实施例中,所述处理步骤包括:在所述处理步骤处理请求的情况下将更新计数器递增;以及在所述处理步骤处理请求的情况下发送响应消息。响应消息包括更新计数器的计数值。
在一个实施例中,所述处理步骤包括:在所述处理步骤处理请求的情况下响应于请求来发送响应消息。
在一个实施例中,所述处理步骤包括:存储写保护信息。
在另一实施例中,所述方法包括:在存储装置处接收写命令,以将数据写入存储装置中的非易失性存储器的第一区域;以及在存储装置处基于针对一个或多个被第一区域覆盖的存储器区域存储的写保护信息来确定针对各个存储器区域是否处理写命令。所述写保护信息包括:起始地址信息,其指示存储器区域的起始的逻辑块地址;长度信息,其指示存储器区域的长度;以及可写信息,其指示是否将写保护应用于存储器区域。
在一个实施例中,在第一区域与具有指示出应用写保护的相关可写信息的存储器区域之一重叠的情况下,所述确定步骤确定不处理写命令。
在一个实施例中,在与写命令相关的地址落入存储器区域之一中的情况下,所述确定步骤确定第一区域与存储器区域之一重叠。
在一个实施例中,对于各个存储器区域,写保护信息还包括:分区标识符,该分区标识符标识非易失性存储器中的分区,该分区包括存储器区域。如果将长度信息设为参考值,则长度信息指示所标识的整个分区被写保护。在第一区域与具有被设为参考值的相关长度信息的存储器区域之一重叠的情况下,所述确定步骤确定不处理写命令。
在另一实施例中,所述方法包括针对非易失性存储器的存储器区域存储写保护信息。写保护信息包括可写信息和类型信息。可写信息指示是否将写保护应用于存储器区域,而类型信息指示从至少包括第一类型的组中选出的类型。所述方法还包括:在类型信息是第一类型的情况下,在每次存储器通电之后,允许改变可写信息;以及在类型信息是第一类型的情况下,在存储器通电之后,设置可写信息以指示应用写保护。
在又一实施例中,所述方法包括将请求发送至存储装置,其中所述请求向存储装置请求针对存储装置中的非易失性存储器的存储器区域更新写保护信息。所述请求包括写保护信息。写保护信息包括:起始地址信息,其指示存储器区域的起始的逻辑块地址;长度信息,其指示存储器区域的长度;以及可写信息,其指示是否将写保护应用于存储器区域。
又一实施例涉及一种存储装置。
在一个实施例中,所述存储装置包括非易失性存储器和控制器。控制器被构造为接收请求。该请求包括请求消息验证码和写保护信息。写保护信息包括起始地址信息和长度信息中的至少一个。起始地址信息指示非易失性存储器的存储器区域起始的逻辑块地址,而长度信息指示存储器区域的长度。控制器被构造为基于(1)起始地址信息和长度信息中的至少一个以及(2)存储在存储装置处的密钥来产生消息验证码。控制器被构造为基于所产生的消息验证码和请求消息验证码来验证请求;并且控制器被构造为基于验证结果来处理请求。
在另一实施例中,所述存储装置包括非易失性存储器和控制器。控制器被构造为接收写命令以将数据写入存储装置中的非易失性存储器的第一区域,并且基于针对一个或多个被第一区域覆盖的存储器区域存储的写保护信息来确定是否处理写命令。对于各个存储器区域,写保护信息包括:起始地址信息,其指示存储器区域的起始的逻辑块地址;长度信息,其指示存储器区域的长度;以及可写信息,其指示是否将写保护应用于存储器区域。
附图说明
通过以下结合附图进行的描述,以上和其它目的和特征将变得清楚,除非另有说明,否则其中相同的附图标记在各个附图中始终指代相同的部件,其中:
图1是示意性地示出存储系统的框图;
图2是示意性地示出基于闪速存储器的UFS系统的框图;
图3是示意性地示出根据本发明构思的实施例的存储系统的框图;
图4是示出通过主机提供的逻辑块地址指定写保护区域的实施例的概念图;
图5是示出存储装置的整个分区被写保护的实施例的概念图;
图6是示出写保护(WP)描述符被设为‘NV-P’类型的实施例的概念图;
图7是示出根据本发明构思的实施例用于对存储系统的写保护进行锁定或解锁的请求和响应的时序图;
图8是用于描述计算HMAC的方法的概念图;
图9是示意性地示出图3所示的存储系统的HMAC验证方法的流程图;
图10是用于描述图3所示的存储系统的写保护执行方法的流程图;
图11是示意性地示出其中根据本发明构思的实施例的存储系统的一个或更多个区域被写保护的实施例的概念图;
图12是示意性地示出基于图3所示的闪速存储器的存储装置的硬件配置的框图;
图13是示意性地示出软件层结构的框图;
图14是示出固态驱动器的框图,该固态驱动器中应用了根据本发明构思的存储装置;
图15是示意性地示出图14所示的SSD控制器的框图;
图16是示意性地示出电子装置的框图,该电子装置中包括根据本发明构思的实施例的存储装置;以及
图17是示意性地示出存储卡的框图,该存储卡中应用了根据本发明构思的实施例的用户装置的存储装置。
具体实施方式
将参照附图详细描述实施例。然而,本发明的概念可按照许多不同的形式实现,并且不应理解为仅限于示出的实施例。相反,提供这些实施例作为示例以使得本公开将是彻底和完整的,并且将把本发明构思完全传递给本领域技术人员。因此,关于本发明构思的一些实施例,不描述已知工艺、元件和技术。除非另有指示,否则相同的附图标记在整个附图和撰写的说明中始终指代相同的元件,因此将不重复描述。在附图中,为了清楚,可夸大层和区的尺寸和相对尺寸。
应该理解,虽然本文中可使用术语例如“第一”、“第二”、“第三”等来描述多个元件、组件、区、层和/或部分,但是这些元件、组件、区、层和/或部分不应被这些术语限制。这些术语仅用于将一个元件、组件、区、层或部分与另一元件、组件、区、层或部分区分开。这样,下面讨论的第一元件、第一组件、第一区、第一层或第一部分可被称作第二元件、第二组件、第二区、第二层或第二部分,而不脱离本发明构思的教导。
为了方便描述,本文中可使用诸如“在……下方”、“在……之下”、“下”、“下方”、“在……之上”、“上”等的空间相对术语,以描述附图中所示的一个元件或特征与另一元件或特征的关系。应该理解,空间相对术语旨在涵盖使用或操作中的装置的除图中所示的取向之外的不同取向。例如,如果图中的装置颠倒,则被描述为“在其它元件或特征之下”或“在其它元件或特征下方”或“其它元件或特征下方”的元件将因此被取向为“在其它元件或特征之上”。这样,示例性术语“在……之下”和“下方”可涵盖在……之上和在……之下这两个取向。装置可按照其它方式取向(旋转90度或位于其它取向),并且本文所用的空间相对描述语将相应地解释。另外,还应该理解,当一层被称作位于两层“之间”时,其可为所述两层之间的唯一层,或者还可存在一个或多个中间层。
本文所用的术语仅是为了描述特定实施例,并且不旨在限制本发明构思。如本文所用,除非上下文清楚地给出相反指示,否则单数形式“一个”、“一”也旨在包括复数形式。还应该理解,术语“包括”当用于本说明书中时,指明存在所列特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组合。如本文所用,术语“和/或”包括相关所列项之一或多个的任意和所有组合。另外,术语“示例”旨在指代示例或示出。
应该理解,当元件或层被称作“位于”另一元件或层“上”、“连接至”、“结合至”或“邻近于”另一元件或层时,其可直接位于另一元件或层上、直接连接至结合至或邻近于另一元件或层,或者可存在中间元件或层。相反,当元件被称作“直接位于”另一元件或层“上”、“直接连接至”、“直接结合至”或“直接邻近于”另一元件或层时,不存在中间元件或层。
除非另外限定,否则本文中使用的所有术语(包括技术和科学术语)具有与本发明构思所属领域的普通技术人员通常理解的含义相同的含义。还应该理解,除非本文中明确定义,否则诸如在通用词典中定义的那些的术语应该被解释为具有与它们在相关技术和/或本说明书的上下文中的含义一致的含义,而不应该理想化地或过于形式化地解释它们。
图1是示意性地示出存储系统的框图。参照图1,存储系统1000包含主机1100和存储装置1200。主机1100与存储装置1200可通过诸如串行ATA(SATA)、通用闪存(UFS)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)和嵌入式MMC(eMMC)之类的多种标准化接口连接。
如图1所示,主机接口1101和装置接口1201通过用于交换数据或信号的数据线DIN和DOUT以及用于提供电源的电源线PWR连接。主机1100包括处理器1105、主机控制器1130和缓冲存储器1140。
处理器1105执行应用程序1110和装置驱动程序1120。应用程序1110可为将通过主机1100执行的多种应用程序之一。装置驱动程序1120可对通过与主机1100连接来使用的外围装置进行驱动,并且可驱动例如存储装置1200。应用程序1110和装置驱动程序1120可为被存储和/或加载到缓冲存储器1140中的分离的软件模块。在替代形式的实施例中,通过应用程序1110和装置驱动程序1120作为固件构造的硬件逻辑电路可替代处理器1105。作为另一替代形式,可使用处理器和硬件逻辑电路的组合。在又一实施例中,处理器1105和/或硬件逻辑电路可位于主机控制器1130的内部而非外部。主机控制器1130通过主机接口1101与存储装置1200交换数据。在一个实施例中,主机控制器1130包括一个或多个中央处理单元(CPU)。在替代形式的实施例中,主机控制器1130可包括通过固件构造的硬件逻辑电路。在又一实施例中,主机控制器1130可为CPU与硬件逻辑电路的组合。
缓冲存储器1140用作主机1100的主存储器和/或高速缓冲存储器,并且还用作用于对诸如应用程序1110或装置驱动程序1120之类的软件进行驱动的驱动存储器。
存储装置1200通过装置接口1201连接至主机1100。存储装置1200包括非易失性存储器1210、装置控制器1230和缓冲存储器1240。非易失性存储器1210可包括以下部分:闪速存储器、MRAM、PRAM、FeRAM等。装置控制器1230控制非易失性存储器1210的整体操作,包括写操作、读操作、擦除操作等。装置控制器1230可包括一个或更多个编程的CPU、配置的硬件逻辑电路或它们的组合。装置控制器1230通过数据总线与非易失性存储器1210或缓冲存储器1240交换地址,或者与非易失性存储器1210或缓冲存储器1240交换数据。
缓冲存储器1240可用于暂时地存储从非易失性存储器1210读取的数据或将被存储在非易失性存储器1210中的数据。缓冲存储器1240可通过易失性存储器或非易失性存储器实现。缓冲存储器1240可嵌入在装置控制器1230中,或者可与装置控制器1230形成整体。
图1所示的存储系统1000可应用于移动装置或基于闪速存储器的任何其它电子装置。下面,可使用通用闪存(UFS)作为示例来描述图1所示的存储系统1000的构造和操作方法。
图2是示意性地示出基于闪速存储器的UFS系统的框图。参照图2,UFS系统2000包括UFS主机2100和UFS装置2200。
UFS主机2100包括处理器2105、主机控制器2130和缓冲器RAM 2140。处理器2105执行应用程序2110和装置驱动程序2120。应用程序2110可为将被主机2100执行的多种应用程序之一。装置驱动程序2120可对通过与主机2100连接来使用的外围装置进行驱动,并且可驱动例如UFS装置2200。应用程序2110和装置驱动程序2120可为被存储和/或加载到缓冲器RAM 2140中的分离的软件模块。在替代形式的实施例中,通过应用程序2110和装置驱动程序2120作为固件构造的硬件逻辑电路可替代处理器2105。作为另一替代形式,可使用处理器和硬件逻辑电路的组合。在又一实施例中,处理器2105和/或硬件逻辑电路可位于主机控制器2130的内部而非外部。主机控制器2130通过主机接口2101与UFS装置2200交换数据。与主机控制器1130相同,主机控制器2130可包括一个或多个CPU、硬件逻辑电路或它们的组合。如图2所示,主机控制器2130被构造为包括命令队列2131、主机DMA 2132和功率管理器2133。
由主机控制器2130的命令队列2131来对通过主机控制器2130执行应用程序2110和装置驱动程序2120而产生的命令(例如,写命令)进行管理。命令队列2131按次序管理将被提供至UFS装置2200的命令。将存储在命令队列2131中的命令提供至主机DMA 2132。主机DMA 2132通过主机接口2101将命令发送至UFS装置2200。
UFS装置2200包括闪速存储器2210、装置控制器2230和缓冲器RAM 2240。装置控制器2230包括一个或多个编程的CPU 2231、配置的硬件逻辑电路或它们的组合。根据配置,装置控制器2230包括命令管理器2232、闪速DMA 2233、安全管理器2234、缓冲器管理器2235、闪存转换层(FTL)2236和闪存管理器2237。
通过装置接口2201将从UFS主机2100转移至UFS装置2200的命令提供至命令管理器2232。命令管理器2232分析从UFS主机2100提供的命令,并利用安全管理器2234验证所述命令。命令管理器2232分配缓冲器RAM 2240,以通过缓冲器管理器2235接收数据。在准备转移数据时,命令管理器2232将RTT(转移就绪(READY_TO_TRANSFER))UPIU发送至UFS主机2100。将基于UFS标准的数据包称作UPIU。
UFS主机2100响应于RTT UPIU将数据发送至UFS装置2200。通过主机DMA 2132和主机接口2101将数据发送至UFS装置2200。UFS装置2200通过缓冲器管理器2235将接收到的数据存储在缓冲器RAM 2240中。通过闪速DMA 2233将存储在缓冲器RAM 2240中的数据提供至闪存管理器2237。闪存管理器2237基于FTL 2236的地址映射信息来将数据存储在闪速存储器2210的所选地址处。
如果完成了用于命令的数据转移操作和程序操作,则UFS装置2200可通过接口将响应信号发送至UFS主机2100,并且可向UFS主机2100通知命令完成。UFS主机2100向在主机控制器2130上执行的装置驱动程序2120和应用程序2110通知是否处理了对应于响应信号的命令,并且随后终止对命令的操作。
在将UFS系统2000用于移动装置中的情况下所提供可靠性和安全性包括设置和释放写保护数据。根据本发明构思的实施例的UFS系统2000可利用带有密钥的加密散列函数(key-ed Crypto Hash)、私钥和请求计数来验证命令。
本发明构思可通过验证流程来设置或释放写保护,或者可改变写保护的属性或类型。另外,本发明构思可以主机2100的逻辑块地址LBA为单位来指定写保护区域。
I、WP(写保护)描述符的结构
图3是示出本发明构思的另一实施例的框图。在一个实施例中,主机3100可与主机2100相同。存储装置3200可与存储装置2200相同。在另一实施例中,存储装置3200可具有图12所示的硬件配置。
图12是示意性地示出基于图3所示的基于闪速存储器的UFS系统的存储装置的硬件配置的框图。图13是示意性地示出通过存储装置3200的存储器控制器3200b中的CPU3210执行的软件层结构的框图。
参照图12,存储装置3200包含闪速存储器3200a和存储器控制器3200b。存储器控制器3200b通过主机接口控制器3201连接至主机3100,并且通过闪存接口控制器3202连接至闪速存储器3200a。存储器控制器3200b包含中央处理单元(CPU)3210、代码RAM 3221、数据RAM 3222、缓冲器RAM 3223、ROM 3230、用于直接访问存储器的直接存储器访问(DMA)3240、用于数据安全的基于散列的消息验证码(HMAC)3250、AES(高级加密标准)3260、用于校正数据错误的ECC(错误校正编码)3270。DMA 3240、HMAC 3250、AES 3260和ECC 3270是硬件逻辑电路。
CPU 3210控制存储器控制器3200b的整体操作。例如,在启动时,CPU 3210将存储在闪速存储器3200a或ROM 3230中的启动代码加载到代码RAM 3221上,以控制存储装置3200的启动。
参照图13,存储装置3200的软件层结构包括主机接口层(HIL)110、安全层(SEL)115、闪存转换层(FTL)120、闪存接口层(FIL)130和闪存恢复层(FRL)140。
基于主机接口层(HIL)110,CPU 3210可控制通过主机接口控制器3201从主机接收数据以及在数据RAM 3222中存储接收到的数据的操作。HIL 110可包括命令管理器3232。当与主机交换数据时,CPU 3210使用安全层(SEL)115来验证主机命令,并且设置将被写保护的区域。安全层(SEL)115可包括安全管理器3234。
基于闪存接口层(FIL)130,CPU 3210通过闪存接口控制器3202将存储在数据RAM3222或缓冲器RAM 3223中的数据提供至闪速存储器3200a。CPU 3210根据闪存转换层(FTL)120管理闪速存储器3200a的地址映射。CPU 3210根据闪存恢复层(FRL)140管理闪速存储器3200a的恢复操作。
WP描述符存储在诸如闪速存储器2210或3200a或者ROM(未示出)之类的非易失性存储器中,并且在通电时被加载到诸如DRAM或SRAM(例如,缓冲器RAM 2240或3223)之类的易失性存储器上。WP描述符用于设置或释放写保护或者改变写保护的属性。
下表1示出了WP描述符的结构和说明。
表1
参照表1,WP描述符由‘分区ID’(PID)、‘起始LBA’、‘长度’、‘可写’和‘类型’构成。分区ID(PID)用于标识将被写保护的闪速存储器的分区。起始LBA表示将被写保护的逻辑块的起始地址。长度意指将被写保护的区域的大小。
图4是示出通过主机的逻辑块地址部分地限定写保护区域的实施例的概念图。参照图4,分区ID为‘1’。也就是说,标识第一分区。WP描述符的起始LBA和长度分别为‘100’和‘900’。因此,写保护区域始于LBA 100并终于LBA 1000。即,起始LBA和长度限定了可被写保护的分区的存储器区域。
图5是示出其中整个分区被写保护的实施例的概念图。参照表1,当WP描述符的长度设为‘0’时,整个分区被写保护。在图5所示的实施例中,WP描述符的分区ID和长度分别为‘1’和‘0’。因此,整个分区1被写保护。
参照表1,‘可写’表示是否应用写保护。‘可写’可被设为‘真’或‘假’。其中‘可写’设为‘真’的区域是可写的,并且未被写保护。而其中‘可写’设为‘假’的区域被写保护。
参照表1,写保护分为三种类型。‘P’类型是在断电或硬件复位之前保持写保护的类型。在通电后,‘可写’总是变为‘真’。当设为‘假’时,‘可写’在断电或硬件复位之前不变。‘NV’类型是‘可写’仅通过主机2100或3100的请求而改变的类型。‘NV-P’类型是‘可写’通过主机2100或3100的请求而改变的类型。然而,当WP描述符设为‘NV-P’类型时,‘可写’在断电或硬件复位后总是变为‘假’。
图6是示出WP描述符设为‘NV-P’类型的实施例的概念图。参照图6,WP描述符的‘分区ID’(PID)、‘起始LBA’、‘长度’、‘可写’和‘类型’分别设为‘1’、‘100’、‘900’、‘真’和‘NV-P’。在存储系统2000或3000的断电或硬件复位时,因为WP描述符设为‘NV-P’类型,所以‘可写’变为‘假’。当被写保护时,区域(从LBA 100至LBA 1000)不可写。
下表2针对讨论目的示出了图3所示的WP描述符的初始值的示例。可通过表2所示的值设置WP描述符作为默认状态。
表2
参照表2,存储装置2200或3200的存储区域被分为n个分区。分区PID1至PIDn的起始LBA和长度设为‘0’。因为长度设为‘0’,所以整个分区被写保护。在分区PID1至PIDn的每一个中,‘可写’设为‘真’,并且类型设为‘P’。
下表3针对讨论目的示出了WP描述符在存储系统2000或3000操作时的时间点的构造的示例。
表3
参照表3,第一分区PID1的起始LBA和长度分别为‘0’和‘5000’。‘可写’设为‘假’,并且写保护类型为‘P’。第二分区PID2的起始LBA和长度分别为‘0’和‘4000’。‘可写’设为‘真’,并且写保护类型为‘NV-P’。也就是说,第二分区PID2的写保护区域LBA0至LBA4000的‘可写’可通过主机3100的请求改变,并且‘可写’在断电或硬件复位后总是变为‘假’。
第三分区PID3的起始LBA和长度分别为‘9000’和‘10000’。‘可写’设为‘真’,并且写保护类型为‘P’。第n分区PIDn的起始LBA和长度分别为‘0’和‘2000’。‘可写’设为‘假’,并且写保护类型为‘NV’。第n分区PIDn的‘可写’仅可通过主机3100的请求而改变。
下表4示出了其中WP描述符在断电或硬件(HW)复位后已被改变的示例。
表4
参照表4,与表3相比,第一分区PID1的‘可写’从‘假’改变为‘真’。在表3中,第二分区PID2的‘可写’设为‘真’。因为写保护类型为‘NV-P’,所以在断电或硬件复位时,WP描述符的‘可写’从‘真’改变为‘假’。第三分区PID3的‘可写’保持‘真’。因为第n分区PIDn的写保护类型为‘NV’,所以‘可写’可通过主机3100的请求而改变。
II、写保护设置的请求和响应
在本发明构思中,假设主机3100和存储装置3200以安全方式共享私钥。
图7是示出根据本发明构思的实施例的用于设置或释放存储系统的写保护的请求和响应的时序图。参照图7,主机3100向存储装置3200提供用于设置和释放写保护的请求。存储装置3200接收主机3100的请求,并提供对应于该请求的响应。
参照图7,主机3100可向存储装置3200提供用于设置和释放写保护的四种类型的请求。也就是说,主机3100向存储装置3200提供WP描述符更新计数器读请求、WP描述符读请求、WP描述符更新请求和结果读请求。
存储装置3200响应于主机3100的请求向主机3100提供三种类型的响应。也就是说,存储装置3200向主机3100提供WP描述符更新计数器读响应、WP描述符读响应和结果读响应。主机3100可从存储装置3200接收关于除WP描述符更新请求以外的其余请求的响应。
下表5示出了用于处理各个请求和响应的数据帧的结构。
表5
主机3100向存储装置3200提供如表5所示地组织的数据帧,以执行对应于各个请求的操作。这里,可分别通过对应的响应检查WP描述符更新计数器读请求和WP描述符读请求的结果。相反,可通过结果读请求检查WP描述符更新请求的结果。
参照表5,‘WP描述符更新计数器’意指目前为止请求的计数器值。‘Nonce’是用于防止重放攻击的随机数。‘WP描述符’意指将被应用的WP描述符或已被应用的WP描述符。‘结果’是关于请求的结果,并提供了请求是成功还是失败以及失败原因。‘HMAC’(基于散列的消息验证码)用于验证请求。主机3100利用密钥和消息计算用于‘WP描述符更新请求’的HMAC。
图8是用于描述计算HMAC的方法的概念图。可通过图12所示的HMAC 3250的安全管理器3234计算HMAC(基于散列的消息验证码)。参照图8,安全管理器3234利用私钥和消息来计算HMAC。消息包含‘请求类型’、‘WP描述符更新计数器’、‘Nonce’、‘WP描述符’和‘结果’。安全管理器3234利用MD5、SHA1、SHA256等计算HMAC。
下面,将描述图7所示的请求和响应。
1、WP描述符更新计数器读请求/响应
主机3100请求目前为止所请求的WP描述符更新计数器以设置写保护。主机3100向存储装置3200提供WP描述符更新计数器读请求,以请求WP描述符已被更新的次数。
下表6示出了WP描述符更新计数器读请求的数据帧。
表6
名称 | 说明 |
请求类型 | 0x1 |
WP描述符更新计数器 | 0x0 |
Nonce | 主机产生的随机数 |
WP描述符 | 0x0 |
结果 | 0x0 |
HMAC | 0x0 |
参照表6,‘请求类型’为‘0x1’,‘WP描述符更新计数器’为‘0x0’(下面描述),并且‘Nonce’是主机产生的随机数。主机中的CPU可包括随机数产生器。‘WP描述符’为‘0x0’,‘结果’为‘0x0’,并且‘HMAC’为‘0x0’。
存储装置3200响应于表6所示的请求向主机3100提供下表7所示的响应。也就是说,主机3100读取如下表7所示地组织的数据帧,并且检查当前WP描述符更新计数器。
表7
名称 | 说明 |
响应类型 | 0x5 |
WP描述符更新计数器 | 移动存储的当前值 |
Nonce | 主机产生的随机数 |
WP描述符 | 0x0 |
结果 | 请求的执行结果 |
HMAC | 移动存储所计算的HMAC |
参照表7,‘响应类型’为‘0x5’,‘WP描述符更新计数器’表示多少存储装置3200已更新了‘WP描述符’。安全管理器3234可包括计数器,每当WP描述符更新时该计数器递增。‘Nonce’是主机产生并且在请求中接收的随机数。‘WP描述符’为‘0x0’,‘结果’是执行请求的结果,并且‘HMAC’是安全管理器3234计算的值。
在产生表7所示的数据帧时,存储装置3200利用下表8所示的值计算‘HMAC’。
表8
名称 | 说明 |
私钥 | 共享的私钥 |
响应类型 | 0x5 |
WP描述符更新计数器 | 移动存储的当前值 |
Nonce | 主机产生的随机数 |
WP描述符 | 0x0 |
结果 | 请求的执行结果 |
参照表8,‘私钥’是主机3100和存储装置3200共享的密钥(例如,在制造时预存储在ROM 3230中),‘响应类型’为‘0x5’,并且‘WP描述符更新计数器’表示目前为止存储装置3200更新‘WP描述符’的次数。‘Nonce’是主机产生的随机数,‘WP描述符’为‘0x0’,并且‘结果’是执行请求的结果。主机3100读取数据帧并随后计算HMAC。主机3100利用HMAC来验证响应并检查‘Nonce’值以防止重放攻击。
2、WP描述符读请求
为了设置写保护,主机3100读当前应用的WP描述符,并且随后检查当前设置和配置。主机3100将‘WP描述符读请求’提供至存储装置3200。下表9示出了用于‘WP描述符读请求’的数据帧。
表9
名称 | 说明 |
请求类型 | 0x2 |
WP描述符更新计数器 | 0x0 |
Nonce | 主机产生的随机数 |
WP描述符 | 0x0 |
结果 | 0x0 |
HMAC | 0x0 |
参照表9,‘请求类型’为‘0x2’,‘WP描述符更新计数器’为‘0x0’,并且‘Nonce’是主机产生的随机数。‘WP描述符’为‘0x0’,‘结果’为‘0x0’,并且‘HMAC’为‘0x0’。
存储装置3200响应于表9所示的请求向主机3100提供下表10所示的响应。主机3100读取表10所示的数据帧并检查‘WP描述符’。
表10
名称 | 说明 |
响应类型 | 0x6 |
WP描述符更新计数器 | 0x0 |
Nonce | 主机产生的随机数 |
WP描述符 | 移动存储的当前值 |
结果 | 请求的执行结果 |
HMAC | 表11中的移动存储所计算的HMAC |
参照表10,‘响应类型’为‘0x6’,并且‘WP描述符更新计数器’为‘0x0’。‘Nonce’是主机产生的随机数,‘WP描述符’是存储装置3200的当前‘WP描述符’值,并且‘结果’是执行请求的结果。‘HMAC’是安全管理器3234或HMAC 3250计算的值。
在产生表10所示的数据帧时,存储装置3200利用下表11所示的值计算‘HMAC’。
表11
名称 | 说明 |
私钥 | 共享的私钥 |
响应类型 | 0x6 |
WP描述符更新计数器 | 0x0 |
Nonce | 主机产生的随机数 |
WP描述符 | 移动存储的当前值 |
结果 | 请求的执行结果 |
参照表11,‘私钥’是主机3100和存储装置3200共享的密钥,‘响应类型’为‘0x6’,并且‘WP描述符更新计数器’为‘0x0’。‘Nonce’是主机产生的随机数,‘WP描述符’是存储装置3200的当前‘WP描述符’值,并且‘结果’是执行请求的结果。安全管理器3234或HMAC 3250读取表11所示的数据帧,并随后计算HMAC。
3、WP描述符更新请求
为了重新设置写保护,主机3100重新构造将被应用的‘WP描述符’,并请求利用由此构造的WP描述符在存储装置3200处进行更新。为了请求‘WP描述符’的更新,主机3100利用下表12所示的输入值产生HMAC。
表12
名称 | 说明 |
私钥 | 共享的私钥 |
请求类型 | 0x3 |
WP描述符更新计数器 | 移动存储的当前值 |
Nonce | 0x0 |
WP描述符 | 将被改变的描述符 |
结果 | 0x0 |
参照表12,‘私钥’是主机3100和存储装置3200共享的密钥,‘请求类型’为‘0x3’,并且‘WP描述符更新计数器’指示目前为止多少存储装置3200更新了‘WP描述符’。‘Nonce’为0x0,‘WP描述符’是将被改变的‘WP描述符’值,并且‘结果’为‘0x0’。
下表13示出了用于‘WP描述符更新请求’的数据帧。主机3100向存储装置3200提供如表13所示地组织的数据帧。
表13
名称 | 说明 |
请求类型 | 0x3 |
WP描述符更新计数器 | 移动存储的当前值 |
Nonce | 0x0 |
WP描述符 | 将被改变的描述符 |
结果 | 0x0 |
HMAC | 表12中的主机所计算的HMAC |
参照表13,‘请求类型’为‘0x3’,并且‘WP描述符更新计数器’指示目前为止多少存储装置3200更新了‘WP描述符’。‘Nonce’为‘0x0’,‘WP描述符’是将被改变的‘WP描述符’的值,并且‘结果’为‘0x0’。‘HMAC’是主机3100利用表12所示的数据帧计算的值。
主机3100将表13所示的数据帧提供至存储装置3200以更新‘WP描述符’。存储装置3200接收WP描述符更新请求,正常地处理请求,并且增加WP描述符更新计数器。
4、结果读请求/响应
主机3100请求对‘WP描述符’的更新,并且随后使用‘结果读请求’来检查请求的结果。针对结果读请求,主机3100如下表14所示地构造数据帧,并且接着将其提供至存储装置3200。
表14
名称 | 说明 |
请求类型 | 0x4 |
WP描述符更新计数器 | 0x0 |
Nonce | 0x0 |
WP描述符 | 0x0 |
结果 | 0x0 |
HMAC | 0x0 |
参照表14,‘请求类型’为‘0x4’,并且‘WP描述符更新计数器’为‘0x0’。‘Nonce’为‘0x0’,‘WP描述符’为‘0x0’,并且‘结果’为‘0x0’。‘HMAC’为‘0x0’。存储装置3200响应于表14所示的请求向主机3100提供下表15所示的响应。主机3100读取表15所示的数据帧,并且检查更新‘WP描述符’的结果。
表15
参照表15,‘响应类型’为‘0x7’,并且‘WP描述符更新计数器’指示目前为止多少存储装置3200更新了‘WP描述符’。‘Nonce’为‘0x0’,‘WP描述符’为‘0x0’,并且‘结果’为执行请求的结果。‘HMAC’是安全管理器3234计算的值。在产生表15所示的数据帧时,安全管理器3234或HMAC 3250利用下表16所示的值计算‘HMAC’。
表16
名称 | 说明 |
私钥 | 共享的私钥 |
响应类型 | 0x7 |
WP描述符更新计数器 | 移动存储的当前值 |
Nonce | 0x0 |
WP描述符 | 0x0 |
结果 | 请求的执行结果 |
参照表16,‘私钥’是主机3100和存储装置3200共享的密钥,‘响应类型’为‘0x7’,并且‘WP描述符更新计数器’指示目前为止多少存储装置3200更新了‘WP描述符’。‘Nonce’为‘0x0’,‘WP描述符’为‘0x0’,并且‘结果’是执行请求的结果。主机3100读取表16所示的数据帧并计算‘HMAC’。
III、WP描述符更新请求的验证
图9是示意性地示出图3所示的存储系统的HMAC验证方法的流程图。图9示出了其中存储装置3200验证‘WP描述符更新请求’的方法。
在步骤S110中,存储装置3200的命令管理器3232从主机3100接收WP描述符更新请求。存储装置3200响应于WP描述符更新请求更新对于写保护的设置。也就是说,存储装置3200重新构造将被应用的WP描述符。
在步骤S120中,命令管理器3232解析WP描述符更新请求的数据帧。上述表13示出了WP描述符更新请求的数据帧。参照表13,数据帧包含‘请求类型’、‘WP描述符更新计数器’、‘WP描述符’、‘Nonce’、‘结果’和‘HMAC’。
在步骤S130中,存储装置3200的安全管理器3234利用参照图8描述的共享的私钥来计算HMAC。也就是说,安全管理器3234利用私钥和消息计算HMAC。消息可包括‘请求类型’、‘WP描述符更新计数器’、‘Nonce’、‘WP描述符’和‘结果’。安全管理器3234可利用MD5、SHA1、SHA256等计算HMAC。作为另外一种选择,HMAC 3250计算HMAC,并将结果提供至安全管理器3234。
在步骤S140中,安全管理器3234将从WP描述符更新请求的数据帧中获得的HMAC与在步骤S130中计算出的HMAC进行比较。如表13所示,从主机3100提供的数据帧包括‘HMAC’。安全管理器3234通过将来自主机3100的HMAC与存储装置3200计算的HMAC进行比较来验证WP描述符更新请求。
在步骤S150中,安全管理器3234根据步骤S140的比较结果确定WP描述符更新请求是否有效。如果来自主机3100的HMAC等于存储装置3200中计算出的HMAC,则安全管理器3234确定WP描述符更新请求是有效的。如果来自主机3100的HMAC与存储装置3200中计算出的HMAC不同,则安全管理器3234确定WP描述符更新请求是无效的。
当WP描述符更新请求有效时,在步骤S160中,安全管理器3234响应于WP描述符更新请求来更新WP描述符。当WP描述符更新请求无效时,在步骤S165中,安全管理器3234拒绝WP描述符更新请求。
IV、写保护的执行
图10是用于描述图3所示的存储系统的写保护执行方法的流程图。当从主机3100接收写命令或擦除命令时,存储装置3200根据是否执行写保护来执行或防止在地址区域写数据的操作。
在步骤S210中,存储装置3200的命令管理器3232从主机3100接收写命令。在步骤S220中,命令管理器3232解析写命令的参数。写命令的参数可包含起始LBA、长度和分区ID(PID)。在步骤S230中,存储装置3200的安全管理器3234从WP描述符取出sdA。
在步骤S240中,安全管理器3234将写命令的分区ID PID_h与WP描述符的分区IDPID_d进行比较。‘PID_h’来自主机3100,而‘PID_d’得自存储装置3200。安全管理器3234确定写命令的分区ID PID_h是否等于WP描述符的分区ID PID_d。
当写命令的分区ID PID_h与WP描述符的分区ID PID_d不等时,在步骤S245中,确定WP描述符是否是最后一个WP描述符。当WP描述符不是最后一个时,方法前进至步骤S230,并且获得下一WP描述符。当WP描述符是最后一个时,方法前进至步骤S295以在其中执行写命令。
返回步骤S240,当写命令的分区ID PID_h等于WP描述符的分区ID PID_d时,方法前进至步骤S250,在步骤S250中安全管理器3234检查WP描述符的‘可写’。例如,安全管理器3234确定WP描述符的‘可写’是否设为‘假’。当WP描述符的‘可写’未设为‘假’时,方法前进至步骤S245。
当WP描述符的‘可写’设为‘假’时,在步骤S260中,存储装置3200检查WP描述符的长度。存储装置3200检查WP描述符的长度是否设为‘0’。如果是,则在步骤S290中,存储装置3200拒绝写命令。如参照表1的描述,WP描述符的长度设为‘0’意味着整个分区被写保护。
当WP描述符的长度未设为‘0’时,在步骤S270中,安全管理器3234检查由起始LBA和WP描述符的长度指示的写保护范围。
在步骤S280中,安全管理器3234确定写命令中的逻辑块地址LBA是否在写保护范围内。当写命令中的逻辑块地址LBA在写保护范围以外时,方法前进至步骤S245。
当写命令的逻辑块地址LBA在写保护范围内时,在步骤S290中,存储装置3200拒绝写命令。也就是说,存储装置3200将对应于WP描述符中的逻辑块地址LBA和长度的存储器区域写保护。
图11是示意性地示出其中根据本发明构思的实施例的存储系统的一个或多个存储器区域被写保护的实施例的概念图。在图3所示的存储系统3000中,一个分区的一个或多个区域可被写保护。作为另外一种选择,多个分区中的多个区域可被写保护。参照图11,第一分区PID1包括两个写保护区域。第一写保护区域WP1从LBA500至LBA1000,并且第二写保护区域WP2从LBA2000至LBA3000。第二分区PID2包括一个写保护区域。第三写保护区域WP3从LBA1100至LBA2200。第三分区PID3包括三个写保护区域。第四写保护区域WP4从LBA100至LBA600,第五写保护区域WP5从LBA1300至LBA2000,并且第六写保护区域WP6从LBA2900至LBA3300。第n分区PIDn整个被写保护。WP描述符的LBA分配方式可改变以在一个分区设置多个写保护区域。
根据本发明构思的实施例的存储系统涉及一种利用‘带有密钥的加密散列函数’的写保护方法。例如,HMAC是一种形式的‘带有密钥的加密散列函数’。如果通过‘带有密钥的加密散列函数’验证命令,则可仅通过具有与存储装置共享的私钥的主机来进行对写保护设置的改变,从而可防止数据被未经验证的主机改变。另外,根据本发明构思的实施例的存储系统在验证命令的同时通过逻辑块地址设置将被写保护的存储器区域。
在本发明的概念中,通过利用‘带有密钥的加密散列函数’、‘私钥’、‘请求计数’等执行的验证来完成写保护的设置,并且以主机的逻辑块地址为单位来设置写保护区域。另外,可通过防止未经验证的主机设置写保护来检查数据的无意改变。另外,主机通过逻辑块地址改变写保护区域从而动态和灵活地执行写保护。
同时,根据本发明构思的实施例的存储系统可应用于多种产品。根据本发明构思的实施例的存储系统可在诸如个人计算机、数码相机、摄像机、手持式电话、MP3播放器、便携式媒体播放器(PMP)、游戏站播放器(PSP)和个人数字助理(PDA)之类的电子装置中实现。可通过诸如存储卡、USB存储器和固态驱动器(SSD)之类的存储装置实现存储系统的存储介质。
图14是示出应用根据本发明构思的存储装置的固态驱动器的框图。参照图14,固态驱动器(SSD)系统4000包括主机4100和SSD 4200。
SSD 4200通过信号连接器4211与主机4100交换信号SGL,并且通过电源连接器4221被供应电源。SSD 4200包括多个闪速存储器4201至420n、SSD控制器4210和辅助电源4220。
多个闪速存储器4201至420n可用作SSD 4200的存储介质。SSD 4200不仅可采用闪速存储器,而且可采用诸如(相变随机存取存储器(RAM))PRAM、(磁阻式RAM)MRAM、(电阻式RAM)ReRAM和(铁电式RAM)FRAM之类的非易失性存储器装置。闪速存储器4201至420n通过多个通道CH1至CHn与SSD控制器4210连接。一个通道与一个或多个闪速存储器连接。与一个通道连接的闪速存储器可与相同的数据总线连接。
SSD控制器4210通过信号连接器4211与主机4100交换信号SGL。信号SGL可包括以下部分:命令、地址和数据。SSD控制器4210适于响应于主机4100的命令将数据写到对应的闪速存储器或从对应的闪速存储器读出数据。将参照图15更加完全地描述SSD控制器4210。
辅助电源4220通过电源连接器4221与主机4100连接。辅助电源4220通过电源PWR从主机4100充电。辅助电源4220可布置在SSD 4200以内或以外。例如,辅助电源4220可布置在主板上,以向SSD 4200提供辅助电源。
图15是示意性地示出图14所示的SSD控制器的框图。参照图15,SSD控制器4210包括(非易失性存储器)NVM接口4211、主机接口4212、ECC电路4213、中央处理单元(CPU)4214和缓冲存储器4215。
NVM接口4211可将从缓冲存储器4215转移的数据分散到通道CH1至CHn中。NVM接口4211将从闪速存储器4201至420n读取的数据发送至缓冲存储器4215。NVM接口4211例如可使用闪速存储器接口方式。也就是说,SSD控制器4210可按照闪速存储器接口方式执行读、写和擦除操作。
主机接口4212可依照主机4100的协议为SSD 4200提供接口。主机接口4212可通过USB(通用串行总线)、SCSI(小计算机系统接口)、快速PCI、ATA、PATA(并行ATA)、SATA(串行ATA)、SAS(串行连接SCSI)等与主机4100通信。主机接口4212还可执行使主机4100能够将SSD 4200标识为硬盘驱动器(HDD)的盘仿真。
ECC电路4213利用转移至闪速存储器4201至420n的数据产生错误校正码ECC。这样产生的错误校正码ECC存储在闪速存储器4201至420n的备用区域。ECC电路4213检测从闪速存储器4201至420n读取的数据的错误。如果检测到的错误是可校正的,则ECC电路4213可校正检测到的错误。
CPU 4214分析和处理从主机4100(参照图14)接收的信号。CPU4214通过主机接口4212控制主机4100,或者通过NVM接口4211控制闪速存储器4201至420n。CPU 4214利用用于驱动SSD 4200的固件来控制闪速存储器4201至420n。
缓冲存储器4215暂时地存储从主机4100提供的写数据,或从闪速存储器读取的数据。另外,缓冲存储器4215存储将被存储在闪速存储器4201至420n中的元数据或高速缓冲数据。在突然断电时,存储在缓冲存储器4215的元数据或高速缓冲数据被存储在闪速存储器4201至420n中。缓冲存储器4215可通过DRAM、SRAM等实现。
图16是示意性地示出包括根据本发明构思的实施例的存储装置的电子装置的框图。可利用个人计算机或诸如笔记本计算机、蜂窝电话、PDA和相机之类的手持式电子装置实现电子装置5000。
参照图16,电子装置5000包括存储器系统5100、电源5200、辅助电源5250、中央处理单元(CPU)5300、随机存取存储器(RAM)5400和用户接口5500。存储器系统5100包含闪速存储器5110和存储器控制器5120。
图17是示意性地示出存储卡的框图,存储卡中应用了根据本发明构思的实施例的用户装置的存储装置。存储卡系统6000包括主机6100和存储卡6200。主机6100包含主机控制器6110和主机连接单元6120。存储卡6200包括卡连接单元6210、卡控制器6220和闪速存储器6230。
主机6100在存储卡6200处写数据和从存储卡6200读数据。主机控制器6110通过主机连接单元6120为存储卡6200提供命令(例如,写命令)、从主机6100中的时钟产生器(未示出)产生的时钟信号CLK、和数据。
卡控制器6220响应于通过卡连接单元6210输入的命令在闪速存储器6230处存储数据。与从卡控制器6220中的时钟产生器(未示出)产生的时钟信号同步地存储数据。闪速存储器6230存储从主机6100转移的数据。例如,如果主机6100是数码相机,则存储卡6200可存储图像数据。
虽然已经参照示例实施例描述了本发明构思,但是本领域技术人员应该清楚,在不脱离本发明构思的精神和范围的情况下可作出各种改变和修改。例如,本发明的概念的范围可不限于闪速存储器装置。本发明的概念可应用于利用转换层变换地址的所有存储装置。因此,应该理解以上实施例并非限制性而是说明性的。
Claims (21)
1.一种存储装置,包括:
第一存储器,该第一存储器为非易失性存储器;以及
第二存储器,其被构造为存储写保护描述符,所述写保护描述符包括存储器分区标识符、起始地址信息、长度信息、可写信息和类型,所述存储器分区标识符标识所述第一存储器的一个分区,所述起始地址信息指示针对所标识的存储器分区中的存储器区域的逻辑块地址,所述长度信息指示所标识的存储器分区中的所述存储器区域的长度,所述可写信息与所述起始地址信息和所述长度信息相关联,所述可写信息指示是否将写保护应用于所述存储器区域,所述类型选自字段的第一写保护类型至第三写保护类型中,所述字段指示响应于断电、硬件复位、通电或请求而应用于所述存储器 区域的写保护的类型,其中
所述字段包括所述第一写保护类型至所述第三写保护类型,
所述第一写保护类型指示在所述存储装置通电之后所述可写信息改变为第一类型,所述第一类型指示所述存储器 区域是可写的,
所述第二写保护类型指示在所述存储装置断电或硬件复位之后所述可写信息改变为第二类型,所述第二类型指示所述存储器 区域被保护以防止写入,以及
所述第三写保护类型指示所述可写信息通过所述请求被改变。
2.一种方法,包括以下步骤:
在存储装置处接收请求,所述请求包括请求消息验证码、可写信息和写保护信息,所述写保护信息包括起始地址信息、长度信息、可写信息和类型中的至少一个,所述可写信息指示是否将写保护应用于存储器区域,以及所述类型选自字段的第一写保护类型至第三写保护类型中,所述字段指示响应于断电、硬件复位、通电或请求而应用于所述存储器 区域的写保护的类型,
所述第一写保护类型指示在所述存储装置通电之后所述可写信息改变为第一类型,所述第一类型指示所述存储器 区域是可写的,所述第二写保护类型指示在所述存储装置断电或硬件复位之后所述可写信息改变为第二类型,所述第二类型指示所述存储器 区域被保护以防止写入,以及所述第三写保护类型指示所述可写信息通过所述请求被改变,
所述起始地址信息指示在所述存储装置的非易失性存储器中一个所述存储器区域起始的逻辑块地址,所述长度信息指示所述存储器区域的长度;以及
基于所述起始地址信息和所述长度信息中的至少一个以及存储在所述存储装置处的密钥,在所述存储装置处产生所产生的消息验证码;
基于所产生的消息验证码和所述请求消息验证码,在所述存储装置处验证所述请求;以及
基于所述验证步骤的结果在所述存储装置处处理所述请求。
3.一种存储装置,包括:
第一存储器,该第一存储器是非易失性存储器;
第二存储器,其被构造为在写保护描述符中存储写保护信息;以及
控制器,其被构造为:
从外部装置接收写保护描述符读请求;
响应于所述写保护描述符读请求,向所述外部装置发送写保护描述符读响应;
从所述外部装置接收写保护描述符更新请求,该写保护描述符更新请求包括第一消息验证码;
通过以下步骤执行所述写保护描述符更新请求:
解析所述写保护描述符更新请求的数据帧;
基于密钥生成第二消息验证码,所述密钥由所述存储装置和所述外部装置两者共享;
比较所述第二消息验证码与所述第一消息验证码;以及
如果所述第一消息验证码与所述第二消息验证码匹配,则更新所述写保护描述符中的所述写保护信息,
其中,存储在所述写保护描述符中的所述写保护信息包括:存储器分区标识符、起始地址信息、长度信息、可写信息和类型,所述存储器分区标识符标识包括在所述存储装置中的第一存储器的一个分区,所述起始地址信息指示针对所标识的存储器分区中的存储器区域的逻辑块地址,所述长度信息指示所标识的存储器分区中的所述存储器区域的长度,所述可写信息与所述起始地址信息和所述长度信息相关联,所述可写信息指示是否将写保护应用于所述存储器区域,所述类型指示提供至所述存储器区域的写保护的类型,并且所述类型来自类型的组,
其中,所述组包括第一类型、第二类型和第三类型,并且所述第一类型指示在所述存储装置通电之后所述可写信息改变为可写,所述第二类型指示在所述存储装置断电或硬件复位之后所述可写信息改变为保护所述存储器区域防止写入,以及所述第三类型指示所述可写信息通过请求被改变。
4.根据权利要求3所述的存储装置,其中,所述控制器还被构造为从所述外部装置接收写保护描述符更新计数器读请求,并被构造为在接收所述写保护描述符更新请求之前,响应于所述写保护描述符更新计数器读请求,将写保护描述符更新计数器读响应发送到所述外部装置。
5.根据权利要求4所述的存储装置,其中,所述写保护描述符更新计数器读响应包括与更新存储在所述写保护描述符中的所述写保护信息的次数有关的信息。
6.根据权利要求3所述的存储装置,其中,所述控制器还被构造为从所述外部装置接收结果读请求,并在执行所述写保护描述符更新请求之后,响应于所述结果读请求将结果读响应发送到所述外部装置。
7.根据权利要求6所述的存储装置,其中,所述结果读响应包括指示所述写保护描述符中的所述写保护信息被成功更新的信息。
8.根据权利要求3所述的存储装置,其中,如果在执行所述写保护描述符更新请求时所述第一消息验证码和所述第二消息验证码不匹配,则所述写保护信息的更新被失败。
9.一种设置存储装置的写保护的方法,包括:
从外部装置接收写保护描述符读请求;
响应于所述写保护描述符读请求,向所述外部装置发送写保护描述符读响应;
从所述外部装置接收写保护描述符更新请求,该写保护描述符更新请求包括第一消息验证码;
通过以下步骤执行所述写保护描述符更新请求:
解析所述写保护描述符更新请求的数据帧;
基于密钥生成第二消息验证码,所述密钥由所述存储装置和所述外部装置两者共享;
比较所述第二消息验证码与所述第一消息验证码;以及
如果所述第一消息验证码与所述第二消息验证码匹配,则更新存储在写保护描述符中的写保护信息,
其中,所述写保护信息包括:存储器分区标识符、起始地址信息、长度信息、可写信息和类型,所述存储器分区标识符标识包括在所述存储装置中的第一存储器的一个分区,所述起始地址信息指示针对所标识的存储器分区中的存储器区域的逻辑块地址,所述长度信息指示所标识的存储器分区中的所述存储器区域的长度,所述可写信息与所述起始地址信息和所述长度信息相关联,所述可写信息指示是否将写保护应用于所述存储器区域,所述类型指示提供至所述存储器区域的写保护的类型,并且所述类型来自类型的组,
其中,所述组包括第一类型、第二类型和第三类型,并且所述第一类型指示在所述存储装置通电之后所述可写信息改变为可写,所述第二类型指示在所述存储装置断电或硬件复位之后所述可写信息改变为保护所述存储器区域防止写入,以及所述第三类型指示所述可写信息通过请求被改变。
10.根据权利要求9所述的方法,还包括:从所述外部装置接收写保护描述符更新计数器读请求,并且在接收所述写保护描述符更新请求之前,响应于所述写保护描述符更新计数器读请求,将写保护描述符更新计数器读响应发送到所述外部装置。
11.根据权利要求10所述的方法,其中所述写保护描述符更新计数器读响应包括更新所述存储装置中的所述写保护描述符的次数。
12.根据权利要求9所述的方法,还包括:从所述外部装置接收结果读请求,并且在执行所述写保护描述符更新请求之后,响应于所述结果读请求将结果读响应发送到所述外部装置。
13.一种存储装置的操作方法,包括:
由所述存储装置接收写命令,以将数据写入到所述存储装置的非易失性存储器中;
解析所述写命令的数据参数,所述写命令的所述数据参数至少包括第二起始地址信息、第二长度信息和第二分区标识符;
将所述第二分区标识符与存储在所述存储装置的写保护描述符中的第一分区标识符进行比较,所述第一分区标识符标识所述非易失性存储器中的分区,
其中所述写保护描述符包括:起始地址信息,其指示存储器区域的起始的逻辑块地址;长度信息,其指示所述存储器区域的长度;可写信息,其指示是否将写保护应用于所述存储器区域;以及类型,其指示提供至存储器区域的写保护的类型,并且其来自类型的组,其中,所述组包括第一类型、第二类型和第三类型,所述第一类型指示在所述存储装置通电之后所述可写信息改变为可写,所述第二类型指示在所述存储装置断电或硬件复位之后所述可写信息改变为保护所述存储器区域防止写入,以及所述第三类型指示所述可写信息通过请求被改变;以及
如果所述第一分区标识符与所述第二分区标识符不匹配,则执行所述写命令,并且如果所述第一分区标识符与所述第二分区标识符匹配,则执行写保护过程,
其中,所述写保护过程包括:
检查存储在所述写保护描述符中的可写信息;以及
如果所述可写信息指示可写状态,则执行所述写命令。
14.根据权利要求13所述的操作方法,其中,
所述第二分区标识符标识将要写入所述数据的所述非易失性存储器中的分区。
15.根据权利要求14所述的操作方法,其中,所述写保护过程还包括:如果所述可写信息指示不可写状态,则检查所述写保护描述符的长度信息是否为零。
16.根据权利要求15所述的操作方法,其中,所述写保护过程还包括:如果所述写保护描述符的所述长度信息为零,则拒绝所述写命令,并且如果所述写保护描述符的所述长度信息不为零,则检查存储在所述写保护描述符中的写保护范围。
17.根据权利要求16所述的操作方法,其中,如果所述长度信息被设置为参考值,则所述长度信息指示整个所标识的分区被写保护。
18.根据权利要求17所述的操作方法,其中,所述写保护过程还包括:如果与所述第二起始地址信息和所述第二长度信息相对应的存储器区域在所述写保护范围内,则拒绝所述写命令,并且如果与所述第二起始地址信息和所述第二长度信息相对应的所述存储器区域不在所述写保护范围内,则执行所述写命令。
19.一种电子装置,包括:
主机,其包括被构造为执行应用程序的处理器;和
存储装置,其可连接到所述电子装置并与所述主机通信,其中
所述存储装置包括作为非易失性存储器的第一存储器和第二存储器,
所述第二存储器被构造为存储写保护描述符,所述写保护描述符包括存储器分区标识符、起始地址信息、长度信息、可写信息和类型,所述存储器分区标识符标识所述第一存储器的一个分区,所述起始地址信息指示针对所标识的存储器分区中的存储器区域的逻辑块地址,所述长度信息指示所标识的存储器分区中的所述存储器区域的长度,所述可写信息指示是否将写保护应用于所述存储器区域,所述类型来自类型的组,以及
所述组包括:第一类型,其指示在所述存储装置通电之后所述可写信息改变为可写;第二类型,其指示在所述存储装置断电或所述存储装置硬件复位之后所述可写信息改变为保护所述存储器区域防止写入;以及第三类型,其指示所述可写信息通过所述主机的请求被改变。
20.根据权利要求19所述的电子装置,其中,所述电子装置为手持式电话、MP3播放器、便携式媒体播放器、个人数字助理、相机、蜂窝电话、个人计算机、笔记本计算机和手持式电子装置中的一种。
21.根据权利要求20所述的电子装置,其中,所述存储装置是存储卡。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461971673P | 2014-03-28 | 2014-03-28 | |
US61/971,673 | 2014-03-28 | ||
KR10-2014-0117786 | 2014-09-04 | ||
KR1020140117786A KR102196971B1 (ko) | 2014-03-28 | 2014-09-04 | 스토리지 시스템, 그것의 쓰기 방지 수행 방법, 그리고 그것의 쓰기 방지 인증 방법 |
US14/631,349 | 2015-02-25 | ||
US14/631,349 US9984007B2 (en) | 2014-03-28 | 2015-02-25 | Storage system and method for performing and authenticating write-protection thereof |
CN201510142514.5A CN104951405B (zh) | 2014-03-28 | 2015-03-27 | 存储系统以及对存储系统执行和验证写保护的方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510142514.5A Division CN104951405B (zh) | 2014-03-28 | 2015-03-27 | 存储系统以及对存储系统执行和验证写保护的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457236A CN110457236A (zh) | 2019-11-15 |
CN110457236B true CN110457236B (zh) | 2020-06-30 |
Family
ID=54166071
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910746223.5A Active CN110457236B (zh) | 2014-03-28 | 2015-03-27 | 存储系统以及对存储系统执行和验证写保护的方法 |
CN201510142514.5A Active CN104951405B (zh) | 2014-03-28 | 2015-03-27 | 存储系统以及对存储系统执行和验证写保护的方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510142514.5A Active CN104951405B (zh) | 2014-03-28 | 2015-03-27 | 存储系统以及对存储系统执行和验证写保护的方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN110457236B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6115740B1 (ja) * | 2015-12-17 | 2017-04-19 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US10140055B2 (en) * | 2015-12-21 | 2018-11-27 | Memory Technologies Llc | Ensuring that memory device actions are valid using reference values |
JP6258399B2 (ja) * | 2016-05-16 | 2018-01-10 | ウィンボンド エレクトロニクス コーポレーション | 半導体装置 |
KR102706118B1 (ko) * | 2016-09-22 | 2024-09-19 | 삼성전자주식회사 | 직렬로 연결되는 스토리지 장치들의 상이한 특성들을 보상하도록 구성되는 전자 장치, 및 그것에 포함되는 스토리지 장치 |
CN108073351B (zh) * | 2016-11-11 | 2021-06-15 | 阿里巴巴集团控股有限公司 | 芯片中非易失性存储空间的数据存储方法和可信芯片 |
CN108171041B (zh) | 2016-12-07 | 2020-03-27 | 澜起科技股份有限公司 | 用于对访问存储器的应用程序进行身份验证的方法和装置 |
KR20180104830A (ko) * | 2017-03-14 | 2018-09-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
CN107480545B (zh) * | 2017-08-10 | 2020-09-11 | 合肥联宝信息技术有限公司 | 一种数据保护方法和电子设备 |
KR102523327B1 (ko) * | 2018-03-19 | 2023-04-20 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN110647480B (zh) * | 2018-06-26 | 2023-10-13 | 华为技术有限公司 | 数据处理方法、远程直接访存网卡和设备 |
CN110968254B (zh) * | 2018-09-29 | 2024-06-28 | 嘉楠明芯(北京)科技有限公司 | 一种非易失性存储器的分区保护方法及装置 |
CN109446015B (zh) * | 2018-10-26 | 2022-05-27 | 北京计算机技术及应用研究所 | 一种NVMe原型仿真验证结构 |
CN111625295A (zh) * | 2020-05-22 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种嵌入式系统启动方法、装置、设备及存储介质 |
CN114327281B (zh) * | 2021-12-30 | 2023-12-05 | 深圳忆联信息系统有限公司 | 用于ssd的tcg软硬件加速方法、装置、计算机设备及存储介质 |
CN116126753B (zh) * | 2022-12-28 | 2024-02-02 | 江苏都万电子科技有限公司 | 一种防护存储器及存储方法 |
CN116486893B (zh) * | 2023-04-23 | 2023-12-12 | 珠海妙存科技有限公司 | Ufs验证方法、装置、电子设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1469382A (zh) * | 2002-07-15 | 2004-01-21 | 华为技术有限公司 | 一种引导用只读存储器的写保护实现方法 |
CN101464841A (zh) * | 2008-12-31 | 2009-06-24 | 杭州华三通信技术有限公司 | 实现对块存储体写保护的方法和系统 |
CN101826059A (zh) * | 2010-02-01 | 2010-09-08 | 华为技术有限公司 | 中央处理器及存储器写保护方法 |
CN103403805A (zh) * | 2011-03-23 | 2013-11-20 | 株式会社东芝 | 半导体存储装置及其控制方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI239447B (en) * | 2000-06-02 | 2005-09-11 | Koninkl Philips Electronics Nv | Recordable storage medium with protected data area |
US20030037237A1 (en) * | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
CN1319314C (zh) * | 2003-05-12 | 2007-05-30 | 明基电通股份有限公司 | 防止手机加密网络锁被破解的保护方法及相关装置 |
KR100614639B1 (ko) * | 2003-07-24 | 2006-08-22 | 삼성전자주식회사 | 쓰기 방지 가능한 버퍼 메모리를 갖는 메모리 장치 및그것을 포함하는 정보 처리 시스템 |
CN100399304C (zh) * | 2006-07-26 | 2008-07-02 | 北京飞天诚信科技有限公司 | 利用过滤驱动程序结合智能密钥装置自动保护磁盘数据的方法 |
US8452934B2 (en) * | 2008-12-16 | 2013-05-28 | Sandisk Technologies Inc. | Controlled data access to non-volatile memory |
CN102385556B (zh) * | 2011-11-08 | 2014-11-26 | 聚辰半导体(上海)有限公司 | 串行非易失性存储器及解除存储器写保护的方法 |
CN103617404A (zh) * | 2013-12-17 | 2014-03-05 | 天津赢达信科技有限公司 | 一种安全分区的存储装置 |
-
2015
- 2015-03-27 CN CN201910746223.5A patent/CN110457236B/zh active Active
- 2015-03-27 CN CN201510142514.5A patent/CN104951405B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1469382A (zh) * | 2002-07-15 | 2004-01-21 | 华为技术有限公司 | 一种引导用只读存储器的写保护实现方法 |
CN101464841A (zh) * | 2008-12-31 | 2009-06-24 | 杭州华三通信技术有限公司 | 实现对块存储体写保护的方法和系统 |
CN101826059A (zh) * | 2010-02-01 | 2010-09-08 | 华为技术有限公司 | 中央处理器及存储器写保护方法 |
CN103403805A (zh) * | 2011-03-23 | 2013-11-20 | 株式会社东芝 | 半导体存储装置及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104951405A (zh) | 2015-09-30 |
CN104951405B (zh) | 2019-09-06 |
CN110457236A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324864B2 (en) | Storage system and method for performing and authenticating write-protection thereof | |
US11615035B2 (en) | Storage system and method for performing and authenticating write-protection thereof | |
CN110457236B (zh) | 存储系统以及对存储系统执行和验证写保护的方法 | |
US10257192B2 (en) | Storage system and method for performing secure write protect thereof | |
US9678760B2 (en) | Memory card and storage system having authentication program and method for operating thereof | |
TWI620095B (zh) | 用以確保存取保護計畫之裝置及有形機器可讀媒體 | |
EP4020296B1 (en) | Operating method of storage device setting secure mode of command, and operating method of storage system including the storage device | |
US20150161399A1 (en) | Storage module with authenticated storage access | |
KR102424293B1 (ko) | 스토리지 시스템 및 그것의 보안 쓰기 방지 수행 방법 | |
KR102213665B1 (ko) | 인증 프로그램을 갖는 메모리 카드, 그것을 포함하는 스토리지 시스템, 및 그것의 동작 방법 | |
US11113399B2 (en) | Electronic apparatus and control method of electronic apparatus | |
US20230134534A1 (en) | Memory controller and storage device | |
TWI705330B (zh) | 資料儲存裝置以及參數改寫方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |