本申请案享有以日本专利申请案2017-181632号(申请日:2017年9月21日)为基础申请案的优先权。本申请案通过参照该基础申请案而包含基础申请案的全部内容。
具体实施方式
以下,参照附图对实施方式进行说明。以下说明例示用以将实施方式的技术性思想具体化的装置或方法,实施方式的技术性思想并不限定于以下说明的构成零件的构造、配置等。本领域技术人员容易想到的变化当然包围在公开的范围内。为使说明更明确,在多个附图中,对具有大致同一功能及构成的构成要素附上相同参照数字,也存在省去重复说明的情况。
[第1实施方式]
图1表示第1实施方式的存储器装置与主机装置的连接例。存储器装置12连接于主机装置14,将从主机装置14发送的数据写入至自身的存储介质,或者将从存储介质读出的数据发送至主机装置14。存储器装置12与主机装置14的接口有SCSI(Small ComputerSystem Interface,小型计算机***接口)、ATA(Advanced Technology Attachment,高技术附件)、NVMExpress(注册商标)、e·MMC(Embedded Multi Media Card,嵌入式多媒体卡)等。存储器装置12可如图1(a)所示那样相对于主机装置14以一对一连接,也可如图1(b)所示那样经由网络16而相对于主机装置14以多对一连接。主机装置14在图1(a)中为个人电脑(以下,称为PC)等电子设备,在图1(b)中为服务器等。图1(a)所示的存储器装置12也可通过PC供应商组入于PC的壳体内。使用1台存储器装置12的用户的人数并不限定于1人。也存在1台存储器装置12由多个用户使用的情况。例如,在如图1(b)所示那样主机装置14对多个用户进行提供虚拟机的服务的情况,可为将1台存储器装置12分割为多个区域(例如Namespace、Range、分区),各区域成为各用户的虚拟机。
[概略构成]
图2表示存储器装置12的构成的一例。存储器装置12具备I/F处理部22,I/F处理部22经由主机接口(I/F)与主机装置14连接。在I/F处理部22连接有认证处理部102、许可允许部104、删除方式显示部106、删除方式显示要求接收部108。
认证处理部102为进行向存储器装置12的存取控制而使用PIN(PersonalIdentification Number,个人识别号)进行用户认证。在认证处理部102连接有PIN管理部112。PIN管理部112管理多个PIN,例如所有者PIN(Security Identifier(安全标识符):也称为SID)112a、管理者PIN(也称为AdminPIN)112b、标识PIN(也称为PSID)112c、用户PIN112d等。为对用户权限进行分级,设定管理者PIN与用户PIN。
用户有时会因某些原因而想将存储器装置12恢复至出厂时的状态。例如,在废弃存储器装置12时,想防止数据储存部34中存储的用户数据从存储器装置12泄漏。该说明书中,将存储器装置12恢复至出厂时的状态称为重置。重置包含用户数据的删除(读出)与出厂后设定的PIN的初始化的两者。此处,重置需要特定的PIN,例如所有者PIN或标识PIN。此外,存储器装置12具备锁定功能,为进行锁定(从解锁状态变为锁定状态)或者解锁(从锁定状态变为解锁状态),需要特定的PIN。
在许可处理部104连接有认证处理部102、锁定管理部110、区域信息管理部114、数据删除部118及读出/写入处理部122。认证处理部102当从主机装置14指示重置时,对指示的用户进行认证。具体而言,进行检查所输入的PIN的值是否与PIN管理部112中存储的PIN的值一致的处理。例如,在从主机装置14接收到作为所有者的认证要求的情况下,进行检查认证要求中所包含的PIN的值是否与PIN管理部114中存储的所有者PIN112a一致,如果一致则判定为成功,如果不一致则判定为失败。许可处理部104判定指令的发行源(主机装置14的用户)是否具有发行该指令的权限,并根据其结果而将指令传送至锁定管理部110、读出/写入处理部122及数据删除部118等。即,许可处理部104管理判定哪一指令能以哪一执行权限执行的表,在接收指令时进行是否为能以该权限执行的处理的判定处理。例如,许可处理部104管理为只要在以所有者PIN与标识PIN认证的情况下,就能执行用以将存储器装置12重置的Revert指令。此时,以所有者PIN认证成功的用户从主机装置14发送用以将存储器装置12重置的Revert指令。许可处理部104进行Revert指令的发行源是否具有能发行Revert指令的权限的判定处理。该例中以所有者PIN允许Revert指令的执行,因此判定为具有权限。如果在以用户PIN认证成功的用户想执行Revert指令的情况下,判定为无权限。在判定为具有权限的情况下,为将存储器装置12重置,将Revert指令传送至执行数据删除部118而使之执行数据删除,并且将PIN重新设定为初始值。
此外,许可处理部104在以用户PIN或管理者PIN认证的发行源发行解锁指令的情况下,将解锁指令传送至锁定管理部110,锁定管理部110将存储器装置12解锁。锁定管理部110可为能设定由区域信息管理部114管理的数据储存部34的用户区域全体的锁定·解锁,也可为能设定数据储存部34的特定区域的锁定·解锁。另外,即便使用标识PIN的认证成功的发行源发行解锁指令,许可处理部104也不会将解锁指令传送至锁定管理部110,因此存储器装置12不会被解锁。
在删除方式显示部106连接有删除方式显示要求接收部108及删除信息管理部124。删除方式显示要求接收部108接收来自主机装置14的数据删除方式咨询并传送至删除方式显示部106。删除方式显示部106将存储器装置12支持的数据删除方式提示给主机装置14。
数据删除方式的例有覆写删除、区块删除、非映射、写入指标重置、加密消除(密钥更新)等。覆写删除是指对保存着要删除的数据的区域全部覆写通过"0"或乱数产生的数据。区块删除是指使包含要删除的数据的区块全体无法读出原数据。非映射是指将表示数据存储在存储介质的哪一区块的映射表针对该数据进行重置。写入指标重置是指将表示数据存储在存储介质的哪一区块的指标重置。加密消除是指通过存储器装置12具有的密钥将输入数据加密,于在数据储存部34存储有加密数据的情况下,对用于数据加密的密钥进行更新。由此,加密数据无法解密,从而无法读出输入数据。
删除信息管理部124连接于数据删除部118。删除信息管理部124在数据删除中不受理读出/写入指令,且管理数据删除处理的状态以防数据删除中的断电,在断电时的重新启动后将表示数据删除至何处的信息提示给主机装置12。
数据删除部118与读出/写入处理部122连接于数据储存部34。数据储存部34包含大容量的非易失性的存储介质,例如闪速存储器、硬盘。数据储存部34受理来自主机装置14的读出命令、写入命令而进行数据的写入、读入。
存储器装置12的各部由CPU24控制。
[PIN]
参照图3对PIN进行说明。图3(a)表示可根据PIN的种类来发行的指令。所有者PIN具有发行Activate/Revert指令的权限。在许可处理部104管理哪一PIN可发行哪一指令。
Activate指令为用以使锁定功能有效化的指令。Revert指令为用以将PIN设定为初始值而使锁定功能无效来将数据强制删除的指令。管理者PIN(也称为AdminPIN)具有发行RevertSP指令的权限。RevertSP指令是用以将PIN设定为初始值而使锁定功能无效的指令,且为关于数据强制删除能以参数指定是否删除的指令。标识PIN(也称为PSID)具有发行Revert指令的权限。用户PIN不具有发行指令的权限,但可将分配给用户的区域解锁。
图3(b)关于存储器装置12的重置,表示通过指令而开始的动作,即初始化的PIN的种类与删除的数据的种类。Activate指令不为重置,而是关于其相反的激活(activate),不进行PIN的初始化与数据的删除。Revert指令进行数据删除,将所有者PIN与管理者PIN初始化。RevertSP指令进行数据删除,将管理者PIN初始化。RevertSP指令能在指令发行时通过参数指定进行数据删除或不进行数据删除而保留数据。在Revert指令中并无是否进行数据删除的参数,始终进行数据删除。
指令除此以外还有用以设定PIN的Set指令。Set指令包含表示设定哪一种类的PIN的参数,根据参数的值,即设定哪一种类的PIN而发行者权限不同。例如,可发行设定用户PIN的Set指令者为管理者与用户,所有者不具有设定用户PIN的权限。因此,标识PIN对设定用户PIN的Set指令的认证失败。另外,Activate指令、Revert指令、RevertSP指令不取决于参数,而取决于发行权限。
第1实施方式能设定2种标识PIN(PSID)。如图3(c)所示那样,第1种类的标识PIN(PSID1)为用于上述存储器装置14的重置的PIN,进行存储区域全体的数据删除、所有者PIN及管理者PIN的初始化。第2种类的标识PIN为每一用户的标识PIN(PSID2、PSID3、…)。存储区域被分配给多个用户(此处为用户1、用户2)。通过用户1的标识PIN(PSID2)发行的Revert指令进行分配给用户1的区域的数据删除与用户1的用户PIN的初始化。通过用户2的标识PIN(PSID3)发行的Revert指令进行分配给用户2的区域的数据删除与用户2的用户PIN的初始化。换言之,通过用户1的标识PIN(PSID2)发行的Revert指令进行分配给用户2的区域的数据删除与用户2的用户PIN的初始化。通过用户2的标识PIN(PSID3)发行的Revert指令进行分配给用户1的区域的数据删除与用户1的用户PIN的初始化。
由此,可提高每一用户的安全性。
管理者PIN可将存储器装置12重置为出厂时的状态,但为防备管理者PIN丢失,存在将重置用的标识PIN印刷于存储器装置12的某处,例如贴在存储器装置的壳体上的铭版标识的情况。例如,在存储区域分配给多个用户1、用户2的情况下,存在将PSID1、PSID2、PSID3印刷于铭板标识的情况。
也可采用不将标识PIN印刷于存储器装置12而是通知给PC供应商或用户的方法。例如,也可为PC供应商对用户提供Web站点,只要输入PC的串号就可显示标识PIN。此外,同样地存储器装置的供应商对用户提供Web站点,只要输入存储器装置的串号就可显示标识PIN。如图1(b)所示那样,在如服务器那样的主机装置14连接有多个存储器装置12,为防备欲对服务器内的存储器装置12一次性地进行重置的情况,也可为存储器装置12的供应商对多个存储器装置12设定同一值的标识PIN,并利用电子邮件等对服务器供应商通知标识PIN的值。
[存储器装置的状态转移]
图4表示存储器装置12的状态转移的一例。出厂时为Inactive状态40A。Inactive状态40A为无法设定管理者PIN、用户PIN的状态,且为锁定功能无效的状态。SID(所有者PIN)为初始值。存在定义MSID PIN作为SID的初始值的情况。MSID PIN是任何人使用Get指令均可获取。SID的初始值向用户的通知方法并不限定于使用指令,也可预先将SID的初始值记载于用户手册,或预先将SID的初始值印刷于铭板标识。刚出厂的存储器装置12使用SID的初始值,例如MSID PIN作为SID来进行认证。SID的初始值为MSID PIN,因此认证成功。其后,可将SID从初始值设定为任意值(所有者想用的PIN的值)。
设想为存储器装置12维持Inactive状态40A出货给例如PC供应商,PC供应商例如以所述方法设定SID。Inactive状态40A的存储器装置12当从主机装置14接收到用以设定SID的Set指令时,检查Set指令的发行源用户的权限。Set指令在参数中包含想要设定的SID。可设定SID的权限为所有者。在从所有者发行Set指令的情况下,设定SID。在Inactive状态40B中,SID为由所有者使用Set指令设定的值(初始值)。
Inactive状态40B的存储器装置12当从主机装置14接收到Activate指令时,检查Activate指令的发行源用户。Activate指令为用以使存储器装置12转移至Active状态的指令,发行权限如图3(a)所示那样为所有者。在从所有者发行Activate指令的情况下,存储器装置12成为Active状态40C。在Active状态40C,管理者PIN、用户PIN成为初始值,锁定功能为有效的状态。
例如设想为组入于PC的存储器装置12维持Active状态40C出货给终端用户,在终端用户侧设定管理者PIN或者用户PIN。Active状态40C的存储器装置12当从主机装置14接收到用以设定管理者PIN的Set指令或者用以设定用户PIN的Set指令时,检查Set指令的发行源用户。Set指令在参数中包含想要设定的管理者PIN或用户PIN。可设定管理者PIN的权限为管理者。可设定用户PIN的权限为管理者与所有者。在具有发行权限的用户发行Set指令的情况下,由终端用户使用Set指令设定管理者PIN或者用户PIN(初始值状态),存储器装置12成为Active状态40D。
Active状态40D的存储器装置12当从主机装置14接收到用以将存储器装置12重置的Revert指令时,检查Revert指令的发行源用户。可发行Revert指令的权限为知道所有者PIN或者标识PIN的用户。在从具有权限的用户发行Revert指令的情况下,将数据删除,且将所有者PIN、管理者PIN、用户PIN初始化,存储器装置12成为Inactive状态(出厂时)40A。
另一方面,Active状态40D的存储器装置12当从主机装置14接收到用以将存储器装置12重置的RevertSP指令时,检查RevertSP指令的发行源用户。可发行RevertSP指令的权限为管理者。在具有权限的用户发行RevertSP指令的情况下,将数据删除,且将管理者PIN、用户PIN初始化,存储器装置12成为Inactive状态40B。另外,即便在利用RevertSP指令进行的重置后,存储器装置也可不为Inactive状态而停留在Active状态。另外,当将PIN初始化时,自动解锁。所有者PIN可通过Revert指令将PIN初始化,因此也可解锁。但是,由于通过Revert指令将数据删除,因此解锁后,不会保留用户记录的数据。
标识PIN也可通过Revert指令将PIN初始化,因此也可解锁。但是,由于通过Revert指令将数据删除,因此解锁后,不会保留用户记录的数据。
存储器装置12当接收到Revert指令时,在通过内部处理进行数据删除的同时也进行解锁。但是,严格地说,任一方先执行,另一方后执行。当考虑到断电时,数据删除后不解锁的方法较安全。其原因在于,当解锁并在即将进行数据删除之前产生断电,则有可能维持不进行数据删除处理的状态而解锁。但是,如果采取措施以不在产生断电时出现此种情况,则也可解锁后进行数据删除。
[数据删除顺序]
图5A、图5B表示用以将存储器装置12重置的数据删除顺序的一例。在重置之前,主机装置14预先对存储器装置12发送用以咨询存储器装置12支持的删除方式的删除方式显示要求。该发送时序的一例为主机装置14的引导时。
在删除方式显示要求接收部108接收到的删除方式显示要求被发送至删除方式显示部106。在步骤50A,删除方式显示部106从删除信息管理部124获取表示所支持的一个或多个删除方式的信息。删除方式显示部106将表示所获取的一个或多个删除方式的删除方式响应信息回传至主机装置14。
参照图6对删除方式显示要求与删除方式响应信息的一例进行说明。此处,应用由TCG Storage,Security Subsystem Class:Opal,Specification Version2.01,Revision1.00,August 5,2015,URL:https://trustedcomputinqqroup.orq/wp-content/upIoads/ TCG-Storage-OpalSSCv2.01revl.00.pdf(2017年8月29日检索)定义的Level 0 DiscoveryHeader与Level 0 Discovery Response。图6(a)表示利用Level 0 Discovery Header的删除方式显示要求的一例。Level 0 Discovery Header仅以对存储器装置12回复Level 0Discovery Response的方式指示,仅在header部不包含内容部。
图6(b)表示应用Level 0 Discovery Response的删除方式响应信息的一例。Level 0 Discovery Response包含图6(a)所示的Level 0 Discovery Header与内容部。内容部即特征描述符中定义有多个特征描述符。
如图7(a)所示那样,特征描述符之一为删除方式。将特征描述符的数据构造的一例表示于图7(b)。特征描述符包含前导部与内容部,字节0-3为前导部,字节4-n为内容部。前导部包含特征码。存储器装置12支持的删除方式的特征描述数据描述在字节4中。对字节4的各位如图7(c)所示那样分配有删除方式。如果各位为"1",则表示支持该删除方式,如果为"0",则表示不支持该删除方式。例如,如果特征描述数据的位0为"1",则表示支持覆写删除(Overwrite Data Erasure)方式,如果位1为"1",则表示支持区块删除方式(BlockErasure),如果位2为"1",则表示支持非映射方式(Unmap),如果位3为"1",则表示支持写入指标重置方式(Reset Write Pointers),如果位4为"1",则表示支持密钥更新(加密消除)方式(Crypto Erasure)。
返回至图5A、图5B所示的删除顺序的说明,设想如下情况,即,主机装置14在从存储器装置12回传有表示一个删除方式的信息的情况下,指定该删除方式,在回传有表示多个删除方式的信息的情况下,从其中选择一个,并将表示所选择的删除方式的信息通知给存储器装置12。但是,主机装置14也有可能指定除此以外的删除方式。主机装置14也可使用例如在其参数中包含删除方式信息的Set指令将删除方式通知给存储器装置12。
在存储器装置12接收到的删除方式指定信息供给至认证处理部102。认证处理部102对在步骤50B指定删除方式的Set指令的发行源用户进行认证。许可处理部104为了检查指令的发行源是否具有指令的发行权限,而在步骤50C中检查通过使用哪一PIN认证的发行源(authority)发送Set指令。通过使用标识PIN或用户PIN认证的发行源发行Set指令的情况在步骤50D中设为许可失败,许可处理部104将表示许可失败的信息发送至主机装置14。通过使用所有者PIN或管理者PIN认证的发行源发行Set指令的情况设为许可成功。在许可成功的情况下,删除信息管理部124在步骤50C-1检查通过主机装置14指定的删除方式是否为自身支持的删除方式。在不支持通过主机装置14指定的删除方式的情况下(步骤50C-1中为否),在步骤50D-1中,删除信息管理部124将表示指定错误的信息发送至主机装置14。在支持通过主机装置14指定的删除方式的情况下(步骤50C-1中为是),删除信息管理部124在步骤50E中,将通过主机装置14指定的删除方式设定在数据删除部118。
其后,当需要将存储器装置12重置时,主机装置14对存储器装置12通知重置指示(删除指示)。主机装置14也可使用例如Revert指令或者RevertSP指令将删除指示通知给存储器装置12。
在存储器装置12接收到的删除指示供给至认证处理部102。认证处理部102在步骤50F对删除指示即Revert指令或者RevertSP指令的发行源用户进行认证。许可处理部104检查在步骤50G接收到的指令是Revert指令或RevertSP指令。
在接收到Revert指令的情况下,许可处理部104为了检查发行源是否具有发行Revert指令的权限,而在步骤50H检查通过使用哪一PIN认证的发行源发送Revert指令。通过使用管理者PIN或用户PIN认证的发行源发行Revert指令的情况在步骤50I设为许可失败,不进行数据删除及PIN的初始化。通过使用所有者PIN或标识PIN认证的发行源发行Revert指令的情况设为许可成功,在步骤50J中,数据删除部118执行数据删除,PIN管理部112将所有者PIN、管理者PIN、用户PIN初始化。由此,存储器装置12成为图4所示Inactive状态(出厂时)40A。
在接收到RevertSP指令的情况下,许可处理部104为了检查发行源是否具有发行RevertSP指令的权限,而在步骤50K检查通过使用哪一PIN认证的发行源发送RevertSP指令。通过使用所有者PIN、标识PIN或用户PIN认证的发行源发行RevertSP指令的情况在步骤50L设为许可失败,不进行数据删除及PIN的初始化。通过使用管理者PIN认证的发行源发行RevertSP指令的情况设为许可成功,在步骤50M检查在RevertSP指令中是否在参数中指定数据删除。在指定数据删除的情况下(步骤50M中为是),在步骤50J中,数据删除部118执行数据删除,PIN管理部112将管理者PIN、用户PIN初始化。在未指定数据删除的情况下(步骤50M中为否),在步骤50N中,PIN管理部112将管理者PIN、用户PIN初始化。由此,存储器装置12成为图4所示的Inactive状态40B。
如以上所说明,存储器装置12将自身支持的删除方式通知给主机装置14,主机装置14可根据该信息来对存储器装置12执行删除方式。存储器装置12检查指定者的权限,在具有权限的情况下,设定所指定的删除方式。在实际重置时,主机装置14对存储器装置赋予重置指示。存储器装置12检查重置指示者的权限,在具有权限的情况下,进行依照之前设定的删除方式的数据的删除与PIN的初始化。
由此,存储未加密的数据的存储器装置12也可重置。不会从已重置的存储器装置12在废弃后泄漏数据,可确保安全性。由于存储器装置12不存储加密数据,因此主机装置14无需具备加密应用程序,主机装置14的处理负载较低。由于无需加密电路,因此可抑制存储器装置12的制造成本。存储器装置12可不在存储区域全体设定相同的存取权限(解锁),而根据LBA范围将存储区域分割为多个区域(也称为Range),针对每一Range设定不同的存取权限(解锁所需的PIN)。Range的概念将在下文参照图13叙述。例如,如图8所示那样,Range2为任何人均可存取的解锁状态,Range1为仅通常使用存储器装置的用户与管理者可解锁的锁定状态,Range3可设为仅管理者可解锁的锁定状态。如此,通过将存储器装置12的存储区域分割为多个Range,多个用户可在保持相互安全性的情况下共用存储器装置12。
[删除处理的管理]
图9(a)是防备产生断电的删除处理的一例的流程图。存储器装置12在步骤222中接收Revert/RevertSP指令("/"是指"或者")。在步骤224中,许可处理部104检查指令的发行权限,在步骤226中判定是否为从具有发行权限的用户发行指令。在未从具有发行权限的用户发行指令的情况下,在步骤228中许可失败。
在从具有发行权限的用户发行指令的情况下,在步骤230中,许可处理部104向数据删除部118发送Revert/RevertSP指令。在步骤232中,数据删除部118对Revert/RevertSP指令进行解析而判定是符合哪一Range的Revert/RevertSP指令。数据删除部118获取与判定结果的Range对应的LBA范围,例如LBA X-Y,从其最初的LBA X开始数据删除。删除信息管理部124在删除数据的期间,在步骤234中将删除完毕LBA写入至非易失性存储器中。该非易失性存储器也可通过设置在删除信息管理部124的闪速存储器实现,也可通过数据储存部34的一部分实现。数据删除部118在步骤236中判断与判定结果的Range对应的LBA范围的数据删除是否完成,在未完成的情况下,继续数据删除。在完成的情况下,在步骤238中,数据删除部118使删除信息管理部124将表示Revert/RevertSP指令的处理完成的完成旗标写入至非易失性存储器中。
如此,即便在Revert/RevertSP指令的处理中产生断电,由于Revert/RevertSP指令的处理未完成及删除完毕LBA存储在非易失性存储器中,因此存储器装置12可在电源恢复时从数据未删除的LBA高效地重新开始未完成的Revert/RevertSP指令。由于在重新开始后无需从最初进行数据删除,因此数据删除时间不会不必要地变长。
图9(b)是表示电源恢复时的Revert/RevertSP指令的重新开始处理的一例的流程图。当电源接通时,在步骤242中删除信息管理部124判定是否有未完成的Revert/RevertSP指令。在不存在未完成的Revert/RevertSP指令的情况下,在步骤246中进行通常处理。在存在未完成的Revert/RevertSP指令的情况下,在步骤244中删除信息管理部124从非易失性存储器读出删除完毕LBA,将删除完毕LBA设定在数据删除部118的删除开始地址,使数据删除部118自未删除LBA开始数据删除。删除信息管理部124在删除数据的期间,在步骤248中将删除完毕LBA写入至非易失性存储器中。数据删除部118在步骤250中判断当前删除中的Range的数据删除是否完成,在未完成的情况下,继续数据删除。在完成的情况下,在步骤252中数据删除部118使删除信息管理部124将表示Revert/RevertSP指令的处理完成的完成旗标写入至非易失性存储器中。其后,在步骤254中进行通常处理。
图9所示的删除处理可如图5A、图5B所示那样,存储器装置12对主机装置14通知自身支持的删除方式,在主机装置14指定删除方式之后执行,也可与图5A、图5B所示的顺序无关地单独执行。
[数据删除的排他性控制]
参照图10~图12对使执行中的数据删除处理优先的排他性控制进行说明。
图10为表示在删除中拒绝存取而使删除处理优先的处理的一例的流程图。存储器装置12在步骤262中接收Revert/RevertSP指令。在步骤264中许可处理部104检查指令的发行权限,在步骤266判定是否为从具有发行权限的用户发行指令。在未从具有发行权限的用户发行指令的情况下,在步骤268中成为许可失败。
在从具有发行权限的用户发行指令的情况下,存储器装置12在指令执行中在步骤270判定是否从主机装置14接收到读出/写入指令。在接收到读出/写入指令的情况下,存储器装置12将指令存储到队列中,或者将错误回传至主机装置14。队列例如也可设置在读出/写入处理部122内。在未接收读出/写入指令的情况下,存储器装置12在步骤274中继续执行指令。
图10所示的删除处理也可如图5A、图5B所示那样,存储器装置12对主机装置14通知自身支持的删除方式,在主机装置14执行删除方式之后执行,也可与图5A、图5B所示的顺序无关地单独执行。
图11是表示作为数据删除处理的排他性控制的第2例的删除中拒绝向Range存取(能向删除中的区域以外的区域存取)的一例的流程图。在图10的处理中,未在存储区域定义多个区域,但在图11的处理中,在存储区域定义有多个区域(Range)。存储器装置12在步骤282中接收RevertSP指令。在步骤284中,许可处理部104检查指令的发行权限,在步骤286中判定是否为从具有发行权限的用户发行指令。在未从具有发行权限的用户发行指令的情况下,在步骤288中成为许可失败。
在从具有发行权限的用户发行指令的情况下,在步骤290中,许可处理部104向数据删除部118发送RevertSP指令。在步骤292中,数据删除部118对RevertSP指令进行解析而判定是符合哪一Range的RevertSP指令。数据删除部118开始与判定结果的Range对应的LBA范围的数据删除。存储器装置12在数据删除的执行中在步骤294判定是否从主机装置14接收到读出/写入指令。在未接收读出/写入指令的情况下,存储器装置12在步骤296中继续执行RevertSP指令。
在接收到读出/写入指令的情况下,存储器装置12在步骤298中判定接收到的读出/写入指令是否为针对删除中的Range的读出/写入指令。在为针对删除中的Range的读出/写入指令的情况下,存储器装置12在步骤300中将指令存储到队列中,或者将错误回传至主机装置14。在不为针对删除中的Range的读出/写入指令的情况下,存储器装置12在步骤302中对删除中的Range以外的Range执行读出/写入指令。
如此,在正对一区域进行数据删除中,即便进行向其他区域的写入,也不会在该其他区域进行数据删除,因此可进行通常的数据写入、读出。另一方面,进行数据删除的区域如上述那样进行不执行删除以外的存取的排他控制,因此不会违背用户期望而保留·删除数据。
图11所示的删除处理也可如图5A、图5B所示那样,存储器装置12对主机装置14通知自身支持的删除方式,在主机装置14指定删除方式之后执行,也可与图5A、图5B所示的顺序无关地单独执行。
图12是表示作为数据删除处理的排他性控制的第3例的多个Revert/RevertSP指令的执行控制的一例的流程图。存储器装置12在步骤312中接收第1Revert/RevertSP指令。在步骤314中,认证处理部102检查指令的发行权限,在步骤316中判定是否为从具有发行权限的用户发行指令。在未从具有发行权限的用户发行指令的情况下,在步骤318中成为许可失败。
在从具有发行权限的用户发行指令的情况下,在步骤320中,许可处理部104向数据删除部118发送第1Revert/RevertSP指令。在步骤322中,数据删除部118对第1Revert/RevertSP指令进行解析而判定符合哪一Range的Revert/RevertSP指令。数据删除部118开始与判定结果的Range对应的LBA范围的数据删除。存储器装置12在数据删除的执行中在步骤324判定是否接收到第2Revert/RevertSP指令。另外,步骤324也可在步骤322之前执行。
在未接收第2Revert/RevertSP指令的情况下,存储器装置12在步骤328中继续执行第1Revert/RevertSP指令。在接收到第2Revert/RevertSP指令的情况下,在步骤322中,认证处理部102检查指令的发行权限,在步骤334中判定是否为从具有发行权限的用户发行指令。在未从具有发行权限的用户发行指令的情况下,在步骤336成为许可失败。
在从具有发行权限的用户发行指令的情况下,在步骤338中,许可处理部104向数据删除部118发送第2Revert/RevertSP指令。在步骤342中,数据删除部118对第2Revert/RevertSP指令进行解析而判定是符合哪一Range的Revert/RevertSP指令,且判定第1Revert/RevertSP指令的Range与第2Revert/RevertSP指令的Range是否不同。
在第2Revert/RevertSP指令的Range与第1Revert/RevertSP指令的Range不同的情况下,数据删除部118在步骤344中判定所接收到的2个指令是否为第1RevertSP指令与第2RevertSP指令。在为2个指令第1RevertSP指令与第2RevertSP指令的情况下,由于接收到不同的Range的2个RevrrtSP指令,因此在步骤346中数据删除部118也执行第2RevertSP指令。另外,在步骤346中也可代替执行第2RevertSP指令,而将第2RevertSP指令的删除作业存储到队列中。
当在步骤342中判定第2Revert/RevertSP指令的Range与第1Revert/RevertSP指令的Range相同的情况下,及在步骤344中判定2个指令不为第1RevertSP指令与第2RevertSP指令的情况下,数据删除部118在步骤348中将第2Revert/RevertSP指令的删除作业存储到队列中,或者将错误回传至主机装置14。第1指令与第2指令的组合有(第1Revert指令、第2Revert指令)、(第1Revert指令、第2RevertSP指令)、(第1RevertSP指令、第2Revert指令)、(第1RevertSP指令、第2RevertSP指令)。其中,关于(第1RevertSP指令、第2RevertSP指令),在第1、第2指令的Range不同的情况下,如步骤346所示那样与第1RevertSP指令一起也执行第2RevertSP指令。关于其他(第1Revert指令、第2Revert指令)、(第1Revert指令、第2RevertSP指令)、(第1RevertSP指令、第2Revert指令),在第1、第2指令的Range相同的情况下及不同的情况下,均如步骤348所示那样不执行第2指令。
由此,存储器装置12可集中执行各Revert/RevertSP指令。因此,数据删除时间不会变长。
图12所示的删除处理也可如图5A、图5B所示那样,存储器装置12对主机装置14通知自身支持的删除方式,在主机装置14指定删除方式之后执行,也可与图5A、图5B所示的顺序无关地单独执行。
[利用Namespace的多个区域删除]
图13概念性地表示存储器装置12的存储区域。在NVMExpress,Revision1.3,May1,2017定义有Namespace(命名空间)。Namespace为将存储器装置12的存储区域全体分割而成的部分区域,具体而言为逻辑区块的集合。能对一个存储器装置定义利用NamespaceID识别的至少一个Namespace。大小n的Namespace包含逻辑区块地址0~(n-1)的逻辑区块。在各Namespace内有Namespace Global Range,各Namespace Global Range包含多个Range。如上述那样在各Range可设定各不相同的PIN。存在跨及多个Namespace的Global Range。
另外,作为将存储区域全体分割而成的部分区域而有分区,但分区是主机装置14管理的部分区域,Namaspace是存储器装置12管理的部分区域。在主机装置14对分区存取时,主机装置14指定包含在存取对象的分区中的逻辑地址,但在对Namespace存取时,主机装置14指定存取对象的Namespace。存储器装置12的Range信息管理部114管理图13所示的Namespace与Range的关系。
图14(a)是表示Namespace单位的删除的一例的流程图。在步骤402中,存储器装置12从主机装置14接收Namespace单位的删除指令。由于可对删除指令追加参数,因此也可追加Namespace等参数来作为Namespace单位的删除指令。或者,由于也可对上述的Revert/RevertSP指令追加参数,因此也可追加Namespace等参数,而将执行Namespace单位的删除的Revert/RevertSP指令设为Namespace单位的删除指令。进而,也可如图14(b)所示那样,预先定义表示Revert/RevertSP指令对哪一Namespace执行删除处理的Namespace Table。Namespace向Namespace Table的注册可利用Set指令,以Set指令的参数指定NamespaceID。另外,Namespace单位的删除包含一个Namespace的删除与全部Namespace(即,GlobalRange)的删除的两者。因此,在以参数指定00h或FFh的情况下,也可视为指定全部Namespace。
图14(c)表示Namespace Table的设定的一例。存储器装置12当在步骤412中接收到Set指令时,将以参数指定的NamespaceID设定在Namespace Table中。如果在NamespaceID=00h或FFh的情况下,将所有NamespaceID设定在Namespace Table中。其后,存储器装置12当从主机装置接收到Revert/RevertSP指令时(步骤414),在步骤416中参照Namespace Table而获取NamespaceID,执行与所获取的NamespaceID对应的Namespace中所包含的所有Range的数据删除。
由此,在存储器装置12具备多个Namaspace,且各Namaspace具备多个Range的情况下,仅主机装置14指示Namaspace单位的删除,存储器装置12可简单地进行所指示的Namaspace中所包含的所有Range的数据删除。由于不需要主机装置14对Namespace与Range的关系进行管理,因此主机装置14的应用程序的构成变得简单,成本降低。
图14所示的删除处理也可如图5A、图5B所示那样,存储器装置12对主机装置14通知自身支持的删除方式,在主机装置14指定删除方式之后执行,也可与图5A、图5B所示的顺序无关地单独执行。
进而,参照图9至图14对几个删除动作进行说明,但也可将这些删除动作自由组合而执行。
根据第1实施方式,存储器装置12将自身支持的删除方式通知给主机装置14,主机装置14指定删除方式,存储器装置12通过指定的删除方式删除数据,因此存储不加密的数据的存储器装置12也可重置。不会从已重置的存储器装置12在废弃后泄漏数据,可确保安全性。由于存储器装置12不存储加密数据,因此主机装置14无需具备加密应用程序,主机装置14的处理负载较低。由于无需加密电路,因此可抑制存储器装置12的制造成本。以下,对其他实施方式进行说明。其他实施方式仅说明与第1实施方式不同之处,省略相同的说明。
[第2实施方式]
从重置后废弃的存储器装置12泄漏数据的可能性并非为0。在欲使该可能性无限为0的情况下,在废弃时,考虑将存储器装置12机械性地破坏·破碎而使存储器装置12为在物理上不存在的状态。机械性地破坏·破碎耗费工夫与时间。第2实施方式中,可使存储器装置12为电气性破坏状态。
第2实施方式中,如图15所示那样,作为存储器装置12的状态,除Active状态、Inactive状态以外,还定义有Destroy(破坏)状态。当主机装置14对Active状态的存储器装置12发行Destroy指令时,存储器装置12成为Destroy状态。
图17表示可设定为Destroy状态的第2实施方式的存储器装置12A的概略。存储器装置12A相对于图2所示的存储器装置12在追加有破坏处理部116的方面不同。破坏处理部116连接于I/F处理部22、许可处理部104、读出/写入处理部122、及数据删除部118。破坏处理部116在存储器装置12为Destroy状态的情况下,对读出/写入处理部122指示无法受理指令(能受理确认指令)。
图16(a)表示将存储器装置12设定为Destroy状态的流程的一例。存储器装置12在步骤422中接收Destroy指令。由于Destroy指令也与Revert/RevertSP指令同样地发行,因此需要所有者PIN或管理者PIN,除所有者或管理者以外的用户无法发行Destroy指令,从而无法破坏存储器装置12。在步骤424中许可处理部104检查指令的发行权限,在步骤426中判定是否为从具有发行权限的用户发行指令。在未从具有发行权限的用户发行指令的情况下,在步骤428中成为认证失败。
在从具有发行权限的用户发行指令的情况下,在步骤429中存储器装置12在来自主机装置14的指令中能受理咨询是否为破坏状态的确认指令,无法受理除此以外的指令(例如读出/写入指令)。并且,将数据删除,且将PIN初始化。其后,存储器装置12成为Destroy状态。因此,Destroy状态与Inactive状态(出厂时)40A同样为无法设定管理者PIN、用户PIN的状态,且为无法解锁或锁定的状态。此外,无法受理除确认指令以外的指令或指令。因此,Destroy状态的存储器装置12无法转移至其他状态、Active状态或Inactive状态。
图16(b)是表示Destroy状态时的存储器装置12的动作的一例的流程图。存储器装置12当接收到指令时(步骤434中为是),在步骤436中判定所接收到的指令是否为确认指令。在所接收到的指令为确认指令的情况下,存储器装置12在步骤440中将表示破坏状态的破坏状态信息回传至主机装置14。在所接收到的指令为除确认指令以外的指令的情况下,存储器装置12在步骤438中将表示错误的错误信息回传至主机装置14。
由此,存储器装置12当接收到向Destroy状态的移行指示时,将数据储存部34的数据删除,使PIN恢复至初始值,存储器装置12在Destroy状态中,无法向数据储存部34存取,泄漏数据的可能性无限为0。此外,在破坏状态的情况下,存储器装置12响应于来自主机装置14的确认指令而将表示破坏状态的响应回传至主机装置14,因此主机装置14可识别存储器装置12为破坏状态、故障状态或者重置状态。由于不需要破坏·破碎装置,因此存储器装置12的管理成本较低。此外,由于与故障品有区别,不会错当成故障品废弃,因此可防止从废弃品泄漏数据。
另外,在Destroy状态的情况下无法受理读出/写入指令,但也可允许对即便泄漏也无妨的数据进行读出存取。即,即便泄漏也无妨的数据的存储区域也可作为只读区域。
[第3实施方式]
在上述说明中,存储器装置12不具备数据加密而存储明文数据。接下来,对存储加密数据的存储器装置12的第3实施方式进行说明。图18表示第3实施方式的存储器装置12B的概略。存储器装置12B相对于图2所示的存储器装置12在追加有加密处理部142与密钥管理部140的方面不同。密钥管理部140产生用于数据加密的密钥并存储在自身中。密钥为通过乱数产生器生成的随机值。加密处理部142使用该密钥对输入至数据储存部34的明文数据进行加密。加密算法的一例有Advanced Encryption Standard(AES,高级加密标准)那样的公知的公钥算法。加密处理部142对从数据储存部34输出的加密数据使用与用于加密的密钥相同的密钥进行解密处理,将加密数据恢复至明文数据。即,数据在写入至数据存储部34时始终加密,且从数据存储部34读出时始终解密。
如上述那样,主机装置14具有指定存储器装置12执行的数据删除方式的功能。如图7(c)所示那样,存储器装置12也可安装Crypto Erase作为数据删除方式。在主机装置14指定Crypto Erase作为数据删除方式的情况下,及以Revert指令或者RevertSP指令进行数据删除指示的情况下,数据删除部118对密钥管理部140指示密钥更新。当密钥管理部140被指示密钥更新时,生成新的乱数而产生新的密钥值,将迄今为止使用的密钥值废弃,取而代之的是将新的密钥值存储在自身中。加密处理部142以后使用新值密钥进行加密、解密处理。
当如此将密钥值更新时,由于已记录于数据储存部34的数据以旧值密钥加密,因此即便使用新值密钥进行解密处理,也无法解密(复原)为正确的明文数据。如此更新密钥后,加密处理部142的加密处理、解密处理自身变得无意义,因此也可使加密处理、解密处理自身的执行停止。图18所示的密钥管理部140在密钥更新后对加密处理部142发送使加密处理、解密处理停止的指示。
因此,在存储器装置12存储加密数据的情况下,主机装置14也可指定数据删除方式,存储器装置12以指定的删除方式重置。
[第4实施方式]
图19表示存储加密数据的第4实施方式的存储器装置12C的概略。存储器装置12C相对于图18所示的具备密钥管理部140与加密处理部142的存储器装置12B而在追加有破坏处理部116的方面不同。破坏处理部116连接于I/F处理部22、许可处理部104、读出/写入处理部122、数据删除部118、及加密处理部142。在存储器装置12为Destroy状态的情况下,破坏处理部116对加密处理部142指示加密功能的无效化,并且对读出/写入处理部122指示无法受理指令(可受理确认指令)。进而,在存储器装置12为Destroy状态的情况下,也可为密钥管理部140生成新的乱数而产生新的密钥值,将迄今为止使用的密钥值废弃,取而代之的是将新的密钥值存储在自身中。通过密钥值的更新,无法将用以前值的密钥加密的加密数据解密。进而,在存储器装置12为Destroy状态的情况下,密钥管理部140也可对加密处理部142发送使加密处理、解密处理停止的指示。
根据第4实施方式,可发挥第2实施方式的效果及第3实施方式的效果。
[第5实施方式]
第1~第4实施方式中设想为如下,即,存储器装置12、12A、12B或12C维持Inactive状态40A出货给例如PC供应商,PC供应商设定SID而以Active状态出货给终端用户,终端用户设定管理者PIN与用户PIN。即,第1~第4实施方式中,至少需要PC供应商以例如记载于用户手册中等的方法对终端用户通知管理者PIN的初始值。第5实施方式中,表示即便在终端用户丢失管理者PIN的情况下,也不会将数据删除,而使通知给终端用户的管理者PIN恢复至初始值的方法。
第5实施方式中,如图20所示那样,存储器装置12D的PIN管理部112具备多个管理者PIN。此处,定义为管理者PIN1及管理者PIN2。图20是在第1实施方式的存储器装置12具备多个管理者PIN,但也可在第2~第4实施方式的存储器装置12A、12B、12C具备多个管理者PIN。当PC供应商通过Activate指令使存储器装置为Active状态时,管理者PIN1与管理者PIN2被设定为初始值。此处,PC供应商设定管理者PIN1与管理者PIN2的值,但管理者PIN1的值被以记载于用户手册中等的方法通知给终端用户。但是,管理者PIN2的值未对终端用户公开,PC供应商预先适当管理以不使该值泄漏到外部。此外,如图21所示预先将管理者PIN1与管理者PIN2的设定权限分离。即,在管理者PIN1的权限下,能以Set指令浏览管理者PIN1的值,或者以Get指令设定管理者PIN1的值,但无法以Set指令浏览管理者PIN2的值,或以Get指令设定管理者PIN2的值。同样地,在管理者PIN2的权限下,能以Set指令浏览管理者PIN2的值,或以Get指令设定管理者PIN2的值,但无法以Set指令浏览管理者PIN1的值,或以Get指令设定管理者PIN1的值。
管理者PIN1是用户为进行管理而可由用户知道的值。如果以管理者PIN1的权限变更(设定)管理者PIN2的值,则管理者PIN2的值成为与在PC供应商的工厂设定的管理者PIN2的值不同的值。为防止此情况,进行权限分离以使在管理者PIN1的权限下无法浏览(Set指令)或设定(Get指令)管理者PIN2的值。另外,图21中,设为在管理者PIN2的权限下也无法设定及浏览管理者PIN1,但设为在管理者PIN1的权限下无法变更管理者PIN2即可,因此也能以在管理者PIN2的权限下可设定与浏览管理者PIN1的方式设定存取控制。
如第1实施方式的图3(a)所示,以管理者PIN可发行RevertSP指令。PC供应商根据来自终端用户的请求,以管理者PIN2使用RevertSP指令进行重置处理。该重置处理,即RevertSP指令的执行命令,也可经由网络从PC供应商管理的服务器自远距离发送至终端用户的PC。RevertSP指令中可指定表示删除或保留数据的参数。即,如果以管理者PIN2在Revert指令中指定保留数据的选项,则数据直接保留,但将管理者PIN1初始化。另外,也可为即便在利用RevertSP指令的重置后,存储器装置也不为Inactive状态而停留在Active状态。
如此,通过预先以定义多个管理者PIN的方式构成存储器装置12D,即便在终端用户丢失管理者PIN1的情况下,仍可实现管理者PIN1的初始化。
[第6实施方式]
第1~第5实施方式中,设想为如下,即,存储器装置12、12A、12B、12C或12D维持Inactive状态40A出货给例如PC供应商,PC供应商设定SID而以Active状态出货给终端用户,终端用户设定管理者PIN与用户PIN。第6实施方式中设想为如下,即,PC供应商设定SID,但并未转移至Active状态而是维持Inactive状态将存储器装置出货给终端用户,在终端用户侧转移为Active状态进行管理者PIN与用户PIN的设定。
如图3(a)所示,为了从Inactive状态向Active状态转移而需要所有者PIN。所述设想中,PC供应商将管理者PIN从初始值设定为PC供应商知道的值,但Activate指令在终端用户侧执行,因此在终端用户侧必须将所有者PIN输入至存储器装置。为了实现此而有如下两种方法,即:(1)使PC具备所有者PIN的值本身的方法;及(2)PC不具有所有者PIN的值本身,在终端用户侧计算所有者PIN的方法。
(1)使PC具备所有者PIN的值本身的方法
PC供应商在BIOS(Basic Input Output System,基本输入输出***)等用户无法容易地浏览(读出:read)的区域存储SID而将存储器装置出货给终端用户。由于对终端用户以Inactive状态出货,因此在初始状态下锁定功能无效化。在终端用户使锁定功能有效化时,通过存储在BIOS等中的程序而将存储在该终端用户无法容易浏览的区域中的SID读出,并通过Activate指令使存储器装置从Inactive状态转移至Active状态。
(2)PC不具有所有者PIN的值本身的方法
PC供应商预先使用SID的标识信息与存储器装置的串号等生成SID,并将该SID的值预先设置在存储器装置中。对于该生成算法,包含参数在内仅PC供应商预先知道。标识信息是指SID的ID。SID的值(例如XXX、YYY、ZZZ)与标识信息(例如0001、0002、0003)对应。SID的值不发布给用户,但标识信息发布给用户。
在存储器装置的用户无法设定(写入:write)的区域存储SID的标识信息。在终端用户侧存储在BIOS等中的程序使用该标识信息与存储器装置的串号等生成SID。终端用户使用该SID通过Activate指令使存储器装置从Inactive状态转移至Active状态。此外,在PC连接于网络的情况下,使PC与PC供应商的服务器通信,从PC将SID的标识信息与存储器装置的串号发送至PC供应商的服务器,PC供应商根据这些信息生成SID。由此,在终端用户侧不具有所有者PIN的情况下可进行所有者PIN的认证。
或者,PC供应商也可预先将SID的值(例如XXX、YYY、ZZZ)与标识信息(例如0001、0002、0003)的对保存在表中。在各存储器装置的用户无法容易浏览且用户无法设定的SID存储区域设定SID的值(例如XXX)。PC将SID的标识信息、即设定哪一SID通知给PC供应商的服务器。因此,优选标识信息无法由用户擅自变更。PC供应商可参照所述表从标识信息获取SID。PC供应商即便将获取的SID经由网络传送至PC的程序,在终端用户侧不具有所有者PIN的情况下仍可进行所有者PIN的认证。
在所述任一情况下,存储器装置均需确保预先存储SID的标识信息的区域。较理想为该区域定义在LBA区域外以使终端用户无法以通常的读出·写入指令存取。进而,需要预先将写入权限限定在SID以不使终端用户擅自变更SID的标识信息。图22表示本实施方式的存储器装置12E的构成图。如图22所示那样,存储器装置12E新具备标识存储(LabelStore)管理部150。标识存储管理部150向标识存储表152设定SID的标识信息,或者从标识存储表152浏览标识信息。标识存储表152不是通过向LBA的读出指令或写入指令,而是通过Set指令与Get指令存取。即,标识存储管理部150通过Set指令在标识存储表152设定值,且通过Get指令从标识存储表152获得所设定的值。图22是在第1实施方式的存储器装置12具备标识存储管理部150,但也可在第2~第5实施方式的存储器装置12A、12B、12C或12D具备标识存储管理部150。
进而,如图23所示那样,向标识存储表152的存取权限通过指令的发行源来限制。无论是哪一权限均可读入标识存储表152的值(Get),但向标识存储表152的写入(Set)被限定在管理者PIN的权限。例如,当关于标识存储表152的Set指令供给至存储器装置12E时,认证处理部102进行PIN认证,许可处理部104判定Set指令的发行源是否为所有者。在Set指令的发行源为所有者的情况下,将标识信息设定在标识存储表152中。
在PC供应商的工厂设定SID。使用该SID的权限预先将SID的标识信息存储到标识存储表152中。如此一来,可实现将SID的标识信息的写入权限预先限制在SID。
由此,可在终端用户侧通过Activate指令从Inactive状态转移至Active状态,在不利用锁定功能的情况下,可直接利用以Inactive状态出货的PC。欲利用锁定功能的用户可通过在手边利用Activate指令从Inactive状态转移至Active状态而使锁定功能有效化。如此可对利用锁定功能的用户与不想利用锁定功能的用户提供两者的功能,从而可提高用户的便利性。
另外,本发明并非原封不动地限定于所述实施方式,在实施阶段可在不脱离其主旨的范围将构成要素加以变化而具体化。此外,可通过所述实施方式中公开的多个构成要素的适当组合而形成各种发明。例如,也可从实施方式所示的所有构成要素删除几个构成要素。进而,也可将跨及不同的实施方式的构成要素适当组合。
[符号的说明]
12 存储器装置
14 主机装置
22 I/F处理部
34 数据储存部
102 认证处理部
104 许可处理部
106 删除方式显示部
116 破坏处理部
118 数据删除部
112 PIN管理部
122 读出/写入处理部
124 删除信息管理部