CN111475871A - 存储器系统 - Google Patents

存储器系统 Download PDF

Info

Publication number
CN111475871A
CN111475871A CN201910729681.8A CN201910729681A CN111475871A CN 111475871 A CN111475871 A CN 111475871A CN 201910729681 A CN201910729681 A CN 201910729681A CN 111475871 A CN111475871 A CN 111475871A
Authority
CN
China
Prior art keywords
host
authenticator
command
authentication
access
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.)
Granted
Application number
CN201910729681.8A
Other languages
English (en)
Other versions
CN111475871B (zh
Inventor
神户友树
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Memory Corp filed Critical Toshiba Memory Corp
Publication of CN111475871A publication Critical patent/CN111475871A/zh
Application granted granted Critical
Publication of CN111475871B publication Critical patent/CN111475871B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/42User authentication using separate channels for security data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1657Word-line or row circuits
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B61/00Magnetic memory devices, e.g. magnetoresistive RAM [MRAM] devices
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10NELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10N50/00Galvanomagnetic devices
    • H10N50/10Magnetoresistive devices

Abstract

本发明提供一种能够强化对于向存储设备的访问的安全的存储器系统。根据实施方式,存储器系统具备非易失性存储器以及与上述非易失性存储器电连接的控制器。上述控制器从第1主机受理认证请求命令,在使用上述认证请求命令中包含的认证信息的上述第1主机的认证成功的情况下,向上述第1主机发送第1认证符。上述控制器构成为,在从第2主机受理了用来向上述非易失性存储器访问的访问命令的情况下,如果上述访问命令中包含的第2认证符与上述第1认证符一致,则许可向与上述访问命令对应的上述非易失性存储器的访问,如果上述第2认证符与上述第1认证符不一致,则禁止向与上述访问命令对应的上述非易失性存储器的访问。

Description

存储器系统
本申请基于日本专利申请2019-10138号(申请日:2019年1月24日)主张优先权,这里引用其全部内容。
技术领域
本发明的实施方式涉及具备非易失性存储器的存储器系统。
背景技术
近年来,具备非易失性存储器的存储器系统已广泛地普及。
作为这样的存储器系统之一,已知有具备NAND型闪速存储器的固态硬盘驱动器(SSD)。SSD作为各种各样的计算设备的主存储设备而被使用。
此外,为了防止数据的泄漏等,存储器系统有时具有在写入时将数据自动地加密的自加密功能的情况。具有该自加密功能的存储器系统也被称作自加密驱动器(selfencrypting drive:SED)。
作为SED应依据的安全标准之一,有可信计算组织(TCG)的标准。在TCG的标准中,例如规定了数据加密、按照存储设备的每个部分区域的访问控制。
发明内容
本发明的实施方式提供一种能够强化对于向存储设备的访问的安全的存储器系统。
根据技术方案,存储器系统具备非易失性存储器和控制器。上述控制器与上述非易失性存储器电连接,并且构成为,受理由多个主机分别发送的命令,将向上述非易失性存储器写入的数据加密,将从上述非易失性存储器读出的数据解密。上述控制器构成为,从第1主机受理认证请求命令,在使用上述认证请求命令中包含的认证信息的上述第1主机的认证成功的情况下,向上述第1主机发送第1认证符。上述控制器构成为,在从第2主机受理了用来向上述非易失性存储器访问的访问命令的情况下,如果上述访问命令中包含的第2认证符与上述第1认证符一致,则许可向与上述访问命令对应的上述非易失性存储器的访问,如果上述第2认证符与上述第1认证符不一致,则禁止向与上述访问命令对应的上述非易失性存储器的访问。
附图说明
图1是表示有关实施方式的存储器系统的结构例的框图。
图2是表示该实施方式的存储器系统的功能结构的框图。
图3是表示由该实施方式的存储器系统进行的主机的认证成功的情况下的动作例的框图。
图4是表示由该实施方式的存储器系统进行的主机的认证失败的情况下的动作例的框图。
图5是表示该实施方式的存储器系统从主机接收的认证请求命令的一结构例的图。
图6是表示从该实施方式的存储器系统向主机发送的应答的一结构例的图。
图7是表示由该实施方式的存储器系统进行的与来自已认证主机的读命令对应的动作例的框图。
图8是表示由该实施方式的存储器系统进行的与来自未认证主机的读命令对应的动作例的框图。
图9是表示由该实施方式的存储器系统进行的与来自已认证主机的写命令对应的动作例的框图。
图10是表示由该实施方式的存储器系统进行的与来自未认证主机的写命令对应的动作例的框图。
图11是表示由有关比较例的存储器系统执行的读控制处理的步骤例的流程图。
图12是表示由该实施方式的存储器系统执行的读控制处理的步骤例的流程图。
图13是表示由有关比较例的存储器系统执行的写控制处理的步骤例的流程图。
图14是表示由该实施方式的存储器系统执行的写控制处理的步骤例的流程图。
具体实施方式
以下,参照附图对实施方式进行说明。
首先,参照图1,说明包括有关一实施方式的存储器系统的信息处理系统1的结构。
该存储器系统是构成为向NAND型闪速存储器5那样的非易失性存储器写入数据、从非易失性存储器读出数据的半导体存储设备,也被称作存储设备。该存储器系统例如作为具备NAND型闪速存储器5的固态硬盘驱动器(SSD)3实现。以下,例示存储器系统(即存储设备)作为SSD3实现的情况,但存储器系统也可以作为硬盘驱动器(HDD)实现。
SSD3为了防止数据的泄漏等而具有在写入时将数据自动地加密的自加密功能。即,SSD3是具有自加密功能的自加密驱动器(SED)。SSD3依据例如可信计算组织(TCG)的标准,具有由TCG的标准设定的自加密功能。在TCG的标准中,例如规定了数据加密、按照存储设备的每个部分区域的访问控制。
信息处理系统1包括1个以上的主机(host)设备2-1,2-2,…,2-N(以下,也称作主机)、SSD3及中继器7。各主机2-1,2-2,…,2-N是经由中继器7对SSD3访问的信息处理装置。中继器7也被称作扩展器、开关。各主机2-1,2-2,…,2-N既可以是将大量且多种多样的数据向SSD3保存的存储服务器,也可以是个人计算机。以下,有时将1个以上的主机2-1,2-2,…,2-N或其中的1个主机称作主机2。
SSD3可以用作作为主机2发挥功能的信息处理装置的存储设备。SSD3既可以内置到该信息处理装置中,也可以经由线缆或网络连接到该信息处理装置。
作为用来将主机2与SSD3相互连接的接口,可以使用SCSI、Serial Attached SCSI(SAS)、ATA、Serial ATA(SATA)、PCI Express(PCIe)(注册商标)、Ethernet(注册商标)、Fibre channel、NVM Express(NVMe)(注册商标)等。
SSD3具备控制器4及NAND型闪速存储器5。控制器4可以由System-on-a-chip(SoC:芯片上系统)那样的电路实现。
此外,SSD3也可以具备作为易失性存储器的随机访问存储器(RAM)、例如动态随机访问存储器(DRAM)6。或者,也可以在控制器4中内置静态随机访问存储器(SRAM)那样的RAM。另外,DRAM6也可以内置在控制器4中。
在DRAM6等的RAM中,设置有用来将向NAND型闪速存储器5写入的数据及从NAND型闪速存储器5读出的数据暂时地保存的缓存区域20。
此外,在DRAM6等的RAM中,设置有作为逻辑物理地址变换表发挥功能的查找表(LUT)21的高速缓存区域。LUT21管理逻辑地址(例如逻辑块地址(LBA))各自与NAND型闪速存储器5的物理地址各自之间的映射。进而,在DRAM6等的RAM中,也可以设置为了处理从主机2受理的命令而使用的各种数据(例如,加密密钥22、临时认证符23)的保存区域。
NAND型闪速存储器5包括多个块B0~Bm-1。块B0~Bm-1分别包括多个页(这里是页P0~Pn-1)。块B0~Bm-1作为最小的擦除单位发挥功能。块也有被称作“擦除块”或“物理块”的情况。页P0~Pn-1分别包括连接在同一字线上的多个存储单元。页P0~Pn-1是数据写入动作及数据读出动作的单位。另外,也可以将字线作为数据写入动作及数据读出动作的单位。
在对于块B0~Bm-1的各自能够容许的最大编程/擦除循环数(最大P/E循环数)中有极限。某个块的1次的P/E循环包括用来将该块内的全部的存储单元设为擦除状态的擦除动作和向该块的页分别写入数据的写入动作。
控制器4经由与Toggle DDR、Open NAND Flash Interface(ONFI)等的接口标准对应的NAND接口13,与NAND型闪速存储器5电连接。NAND接口13作为构成为对NAND型闪速存储器5进行控制的NAND控制电路发挥功能。
NAND接口13也可以经由多个通道(channel)(Ch)与NAND型闪速存储器5中的多个NAND型闪速存储芯片分别连接。通过将多个NAND型闪速存储芯片并行地驱动,能够使对于NAND型闪速存储器5的访问宽带化。
控制器4作为构成为对NAND型闪速存储器5进行控制的存储器控制器发挥功能。
控制器4也可以作为构成为执行NAND型闪速存储器5的数据管理及块管理的闪存转换层(FTL)发挥功能。在由该FTL执行的数据管理中,包括表示(1)逻辑地址各自与NAND型闪速存储器5的物理地址各自之间的对应关系的映射信息的管理、(2)用来将页单位的读/写和块单位的擦除(erase)动作隠蔽的处理等。逻辑地址是为了对SSD3进行地址指定而由主机2使用的地址。以下,设想作为该逻辑地址而使用逻辑块地址(LBA)。
LBA各自与物理地址各自之间的映射的管理使用作为逻辑物理地址变换表发挥功能的LUT21执行。控制器4使用LUT21,将LBA各自与物理地址各自之间的映射以特定的管理尺寸单位进行管理。与某个LBA对应的物理地址表示该LBA的数据被写入的NAND型闪速存储器5内的物理存储位置。LUT21在SSD3的电源开启时从NAND型闪速存储器5装载到DRAM6中。
向1个页的数据写入在每1次的P/E循环中仅能够进行1次。因此,控制器4将与某个LBA对应的更新数据不是向与该LBA对应的以前的数据被保存的物理存储位置、而是向别的物理存储位置写入。并且,控制器4通过将LUT21更新以将该LBA与该别的物理存储位置建立关联,使以前的数据无效化。
在块管理中,包括坏块的管理、耗损均衡(wear leveling)、垃圾收集(garbagecollection)等。
控制器4也可以包括主机接口11、CPU12、NAND接口13、DRAM接口14、加密电路15等。这些主机接口11、CPU12、NAND接口13、DRAM接口14、及加密电路15也可以经由总线10相互连接。
主机接口11作为从主机2接收各种各样的命令——例如I/O命令、各种控制命令、依据TCG标准的TCG命令等的电路发挥功能。在I/O命令中可以包括写命令、读命令等。在控制命令中,可以包括空间回收(unmap)命令(TRIM命令)、格式化命令、校验命令等。格式化命令是用来对SSD3整体进行空间回收的命令。校验命令是不将数据或元数据向主机2发送、而是将被指定的LBA或LBA范围的数据及元数据从NAND型闪速存储器5读出,对保存在NAND型闪速存储器5中的信息的完整性进行验证的命令。保存在NAND型闪速存储器5中的信息的完整性例如基于是否能够进行使用所读出的数据及元数据的错误校正来验证。此外,TCG命令是用来对SSD3请求关于认证、向NAND型闪速存储器5的访问的设定变更等的命令。
DRAM接口14作为构成为对DRAM6的访问进行控制的DRAM控制电路发挥功能。DRAM6的存储区域被分配给用来保存LUT21、加密密钥22、临时认证符23等的区域,及被作为读/写缓存等利用的缓存区域20。
加密电路15进行用户数据的加密及解密。加密电路15例如将经由NAND接口13向NAND型闪速存储器5写入的用户数据加密,将经由NAND接口13从NAND型闪速存储器5读出的用户数据解密。加密电路15例如也可以使用由CPU12设定的加密密钥22进行用户数据的加密及解密。加密密钥22也可以保存到DRAM6等的RAM中。
CPU12是构成为对主机接口11、NAND接口13及DRAM接口14进行控制的处理器。CPU12通过执行保存在未图示的ROM等中的控制程序而进行各种各样的处理。该控制程序也被称作固件。CPU12除了上述的FTL的处理以外,还能够执行用来处理来自主机2的各种各样的命令的命令处理等。CPU12的动作受由CPU12执行的上述固件控制。另外,FTL处理及命令处理的一部分或全部也可以由控制器4内的专用硬件执行。
控制器4还具有自加密、主机2的认证及用于对于NAND型闪速存储器5的访问控制的功能。
另外,例如在依据TCG标准的SSD3上连接1个主机2的情况下,在SSD3中,使用由主机2发送的个人识别号(PIN)及口令那样的认证信息对主机2进行认证。如果该认证成功了,则能够进行由主机2对于NAND型闪速存储器5的访问,例如向NAND型闪速存储器5的数据的写入及从NAND型闪速存储器5的数据的读出。此外,如果认证失败,则不能进行由主机2向NAND型闪速存储器5的数据的写入及从NAND型闪速存储器5的数据的读出。即,进行控制,以使不具有合法的认证信息的主机2不能对NAND型闪速存储器5访问。
但是,例如在依据TCG标准的SSD3上连接着多个主机2、其中的1个主机2的认证成功的情况下,有时不仅是该主机2、认证没有成功的别的主机2也能够对NAND型闪速存储器5访问。或者,在SSD3上连接着1个主机2、在该主机2的认证成功后SSD3没有被关闭电源而再将别的主机2连接在SSD3上的情况下,有时该别的主机2尽管没有认证成功但也能够对NAND型闪速存储器5访问。
在这样依据TCG标准的SSD3中,认证没有成功的主机2有可能能够对NAND型闪速存储器5访问。没有认证成功的主机2可能是不具有合法的认证信息的主机。由认证没有成功的主机2进行的访问,成为保存在NAND型闪速存储器5中的数据的泄漏或篡改那样的安全上的缺陷。
因此,在本实施方式中,在依据TCG标准那样的关于自加密的标准及各种接口标准的SSD3中,进行控制,以使得仅认证成功的主机2能够对NAND型闪速存储器5访问,认证没有成功的主机2不能对NAND型闪速存储器5访问。
更具体地讲,SSD3在某个主机2的认证成功的情况下生成临时认证符,将临时认证符仅向该主机2发送。并且,该主机2将包含临时认证符的访问命令向SSD3发送。访问命令是用来对于NAND型闪速存储器5的访问的命令,例如是读命令、写命令等。
SSD3在所生成的临时认证符与访问命令中包含的临时认证符一致的情况下,许可向与访问命令对应的NAND型闪速存储器5的访问,在不一致的情况下,禁止向与访问命令对应的NAND型闪速存储器5的访问。由此,进行控制,以使得仅对应于认证成功而取得了临时认证符的主机2能够对NAND型闪速存储器5访问,能够将对于向NAND型闪速存储器5的访问的安全强化。
另外,在对于NAND型闪速存储器5的访问中,可以也包括向对应向NAND型闪速存储器5写入的用户数据进行高速缓存的缓存区域20(即写缓存)的访问,及向对从NAND型闪速存储器5读出的用户数据进行高速缓存的缓存区域20(即读缓存)的访问。因而,SSD3不论用户数据是被保存在NAND型闪速存储器5中、还是被高速缓存在缓存区域20中,在所生成的临时认证符与访问命令中包含的临时认证符一致的情况下,都许可向由访问命令指定的LBA或LBA范围的数据的访问,在不一致的情况下,禁止向由访问命令指定的LBA或LBA范围的数据的访问。即,SSD3不仅是控制向NAND型闪速存储器5自身的访问,也控制向用来暂时地保存向NAND型闪速存储器5写入的数据及从NAND型闪速存储器5读出的数据的缓存区域20的访问。
CPU12为了实现上述那样的动作,例如可以作为读/写命令处理部121、读/写数据处理部122、认证符处理部123、TCG命令处理部124、认证符管理部125及加密密钥生成部126发挥功能。参照图2,对这些各部的动作进行说明。
TCG命令处理部124、认证符管理部125及加密密钥生成部126对主机2的认证进行控制。TCG命令处理部124、认证符管理部125及加密密钥生成部126从主机2受理请求认证的认证请求命令,在使用在认证请求命令中包含的认证信息的主机2的认证成功的情况下,向该主机2发送临时认证符23。将临时认证符23例如向DRAM6保存。
此外,读/写命令处理部121、读/写数据处理部122及认证符处理部123控制由主机2对于NAND型闪速存储器5的访问。读/写命令处理部121、读/写数据处理部122及认证符处理部123在从主机2受理了用来对NAND型闪速存储器5访问的访问命令的情况下,如果访问命令中包含的临时认证符与保存在DRAM6等中的临时认证符23一致,则许可向与访问命令对应的NAND型闪速存储器5的访问,如果访问命令中包含的临时认证符与保存在DRAM6等中的临时认证符23不一致,则禁止向与访问命令对应的NAND型闪速存储器5的访问。
更具体地讲,TCG命令处理部124对从某个主机2经由主机接口11接收到的TCG命令进行处理。如上述那样,TCG命令是依据TCG标准的命令,例如被用于主机2对SSD3请求关于认证或安全的设定的变更等。TCG命令处理部124进行与请求认证的TCG命令(即认证请求命令)对应的认证处理。此外,TCG命令处理部124进行与请求设定变更的TCG命令(以下也称作设定变更命令)对应的设定变更处理。
认证请求命令包含PIN或口令那样的主机2的认证信息。也可以将认证请求命令使用例如TCG Secure Messaging技术加密,以免将认证信息以明文发送。在此情况下,TCG命令处理部124使用该技术,对认证请求命令中包含的加密的认证信息进行解密。
设定变更命令包括请求设定变更的属性的识别符和对该属性应新设定的值。例如作为请求设定变更的属性,在设定了对于NAND型闪速存储器5的读的可否、写的可否以及读及写的可否的某个的情况下,对于应对属性新设定的值而设定能够或不能。因而,例如在主机2请求能够进行对于NAND型闪速存储器5的读的情况下,在设定变更命令中包括表示“读的可否”的属性的识别符和表示“能够”的值。
TCG命令处理部124使用认证请求命令中包含的认证信息(或解密后的认证信息)和保存在NAND型闪速存储器5中的认证信息31,验证主机2是否具有合法的认证信息。如果认证请求命令中包含的认证信息与保存在NAND型闪速存储器5中的认证信息31一致,则TCG命令处理部124由于主机2具有合法的认证信息,所以判断为主机2的认证成功。如果认证请求命令中包含的认证信息与保存在NAND型闪速存储器5中的认证信息31不同,则TCG命令处理部124由于主机2不具有合法的认证信息,所以判断为主机2的认证失败。另外,保存在NAND型闪速存储器5中的认证信息31既可以是合法的认证信息本身,也可以是通过实施特定的处理而能够导出合法的认证信息的信息。
TCG命令处理部124在主机2的认证成功的情况下,将NAND型闪速存储器5设定为可访问。TCG命令处理部124基于设定变更命令中包含的请求设定变更的属性的识别符及应对该属性新设定的值,能够进行对于NAND型闪速存储器5的读访问和写访问的至少一方。
加密密钥生成部126在主机2的认证成功的情况下,生成加密密钥22,向加密电路15设定。加密密钥22被用于用户数据的加密和加密的用户数据的解密。
认证符管理部125在主机2的认证成功的情况下,生成临时认证符23,向DRAM6等的RAM保存。在临时认证符23中使用怎样的信息都可以,例如使用随机数。或者,认证符管理部125也可以生成将随机数与主机2的识别符组合的信息作为临时认证符23。主机2的识别符可以在例如主机2与SSD3的接口层的连接时(例如SATA或SAS的连起来时)等取得。
并且,TCG命令处理部124将包含表示认证的成功的信息和临时认证符23的应答经由主机接口11向发送了认证请求命令的主机2发送。与认证请求命令同样,也可以将应答也使用TCG Secure Messaging技术加密而发送。即,TCG命令处理部124能够将加密的临时认证符23向主机2发送。
另一方面,在主机2的认证失败的情况下,TCG命令处理部124将包含表示认证的失败的信息的应答经由主机接口11向该主机2发送。在此情况下,不生成临时认证符23,不向主机2发送。
读/写命令处理部121对从主机2接收到的用于对于NAND型闪速存储器5的访问的访问命令进行处理。访问命令例如是读命令及写命令,但也可以是空间回收命令、格式化命令、校验命令等的可能发生向NAND型闪速存储器5的访问的其他的命令。
读/写命令处理部121及认证符处理部123判定访问命令中包含的临时认证符与由认证符管理部125生成的临时认证符23(即保存在DRAM6中的临时认证符23)是否一致。访问命令中包含的临时认证符也可以由主机2使用会话密钥进行加密。在此情况下,读/写命令处理部121及认证符处理部123使用会话密钥将访问命令内的加密的临时认证符解密,认证符处理部123判定该解密后的临时认证符与由认证符管理部125生成的临时认证符23是否一致。会话密钥是在主机2与SSD3之间交换的加密密钥。
在访问命令中包含的临时认证符(或通过将访问命令内的加密的临时认证符解密而得到的临时认证符)与由认证符管理部125生成的临时认证符23一致的情况下,读/写数据处理部122动作,以许可向与访问命令对应的NAND型闪速存储器5的访问。
例如在访问命令是读命令的情况下,读/写数据处理部122及加密电路15从NAND型闪速存储器5将与读命令对应的用户数据读出,将该用户数据解密,将解密后的用户数据向主机2发送。
更具体地讲,读/写数据处理部122基于与由读命令指定的LBA对应的LUT21的条目(entry),决定与LBA对应的物理地址。读/写数据处理部122经由NAND接口13,向NAND型闪速存储器5请求写入在该物理地址中的用户数据的读出。
对应于该请求被从NAND型闪速存储器5读出的用户数据经由NAND接口13被向加密电路15送出。加密电路15使用加密密钥22将用户数据解密,向读/写数据处理部122送出。由此,读/写数据处理部122能够经由主机接口11将与读命令对应的用户数据向主机2发送。
此外,例如在访问命令是写命令的情况下,读/写数据处理部122及加密电路15随着受理了写命令而接收由主机2发送的用户数据,将该用户数据加密,将加密的用户数据向NAND型闪速存储器5写入。
更具体地讲,读/写数据处理部122经由主机接口11,接收随着写命令被受理而从主机2发送的用户数据。读/写数据处理部122将接收到的用户数据向加密电路15送出。加密电路15使用加密密钥22将用户数据加密,经由NAND接口13向NAND型闪速存储器5转送。
此外,读/写数据处理部122在由写命令请求将用户数据向某个LBA写入的情况下,决定该用户数据应被写入的物理地址。并且,读/写数据处理部122向NAND型闪速存储器5请求将该用户数据向与所决定的物理地址对应的块及页写入。因而,向NAND型闪速存储器5转送表示物理地址的信息(例如块及页)和加密的用户数据。
接着,读/写数据处理部122向NAND型闪速存储器5指示编程。即,读/写数据处理部122通过向NAND型闪速存储器5发送编程命令,对于NAND型闪速存储器5,使写入目标的块及页将加密的用户数据被编程。并且,读/写数据处理部122将LBA和物理地址映射。该映射被作为LUT21内的条目记录。
因而,如果在访问命令中包含有对应于认证成功而发送给主机2的临时认证符23,则SSD3进行与该访问命令对应的处理,所以能够许可由已认证的主机2向NAND型闪速存储器5的访问。
相对于此,在访问命令中包含的临时认证符与由认证符管理部125生成的临时认证符23不一致的情况下,读/写命令处理部121将包含错误的应答向主机2发送。例如在访问命令是读命令的情况下,读/写数据处理部122不从NAND型闪速存储器5将用户数据读出。此外,例如在访问命令是写命令的情况下,读/写数据处理部122不向NAND型闪速存储器5写入用户数据。因而,如果在访问命令中不包含对应于认证成功而发送给主机2的临时认证符23,则SSD3不进行与该访问命令对应的处理,所以能够禁止由未认证的主机2向NAND型闪速存储器5的访问。
参照图3及图4,对由TCG命令处理部124、认证符管理部125及加密密钥生成部126进行的用于认证及访问控制的动作更具体地进行说明。在图3及图4中,为了使说明容易理解而仅表示了与该动作有关联的要素。
图3表示主机2的认证成功的情况下的动作例。
首先,主机2将TCG命令向SSD3发送。该TCG命令是包含认证信息41的认证请求命令和设定变更命令。此外,该主机2是具有合法的认证信息的主机。即,该主机2具有的认证信息41是合法的认证信息。
TCG命令处理部124从主机2接收认证请求命令及设定变更命令。TCG命令处理部124判定在认证请求命令中包含的认证信息41与保存在NAND型闪速存储器5中的认证信息31是否一致。在NAND型闪速存储器5中,例如设置有保存认证信息31等的系统区域5A和保存用户数据的用户区域5B。用户区域5B是使用认证信息31控制由主机2进行的访问的区域。
在认证请求命令中包含的认证信息41与保存在NAND型闪速存储器5中的认证信息31一致的情况下,即在主机2的认证成功的情况下,TCG命令处理部124基于设定变更命令许可向用户区域5B的访问,向加密密钥生成部126请求加密密钥的生成,向认证符管理部125请求临时认证符的生成。TCG命令处理部124基于由设定变更命令指定的信息,许可例如对于用户区域5B的读和写的至少一方。换言之,TCG命令处理部124基于由设定变更命令指定的信息,将对于用户区域5B的读和写的至少一方的锁定解除。
加密密钥生成部126生成加密密钥22,向加密电路15设定。此外,认证符管理部125生成临时认证符23,向DRAM6等的RAM保存。
并且,TCG命令处理部124将包含表示认证成功的信息和生成的临时认证符23的应答向主机2发送。主机2将应答中包含的临时认证符23保存。以下,为了使说明容易理解,将在认证成功的主机2内保存的临时认证符23记作临时认证符42。
另外,在对应于某个主机2的认证成功而生成临时认证符23后,在别的主机2的认证成功的情况下,TCG命令处理部124也可以将已经生成的临时认证符23向该别的主机2发送。或者,也可以对于该别的主机2新生成并发送别的临时认证符23。在此情况下,将临时认证符23和与该临时认证符23建立了关联的主机2的识别符向DRAM6等的RAM保存。
如以上这样,在主机2的认证成功的情况下,许可向用户区域5B的访问,对加密电路15设定加密密钥22,生成临时认证符23。此外,认证成功的主机2能够取得临时认证符23。
图4表示主机2的认证失败的情况下的动作例。
首先,主机2将TCG命令向SSD3发送。该TCG命令是包含认证信息43的认证请求命令和设定变更命令。此外,该主机2是不具有合法的认证信息的主机。即,该主机2具有的认证信息43是非法的认证信息。
TCG命令处理部124从主机2接收认证请求命令及设定变更命令。并且,TCG命令处理部124判定认证请求命令中包含的认证信息43与保存在NAND型闪速存储器5中的认证信息31是否一致。
在认证请求命令中包含的认证信息43与保存在NAND型闪速存储器5中的认证信息31不同的情况下,即在主机2的认证失败的情况下,TCG命令处理部124将包含表示认证失败的信息的应答向主机2发送。TCG命令处理部124对于设定变更命令,向主机2发送包含表示因认证的失败而不能进行设定变更的信息的应答。即,TCG命令处理部124不许可向用户区域5B的访问(例如读及写)。换言之,TCG命令处理部124不将向用户区域5B的访问的锁定解除。此外,也不进行由加密密钥生成部126进行的加密密钥22的生成及由认证符管理部125进行的临时认证符23的生成。因而,认证失败的主机2不能取得临时认证符23。
图5表示由主机2发送的认证请求命令的一结构例。TCG命令例如包括8字节的MethodUID、8字节的Authority及32字节的PIN。
“MethodUID”表示由该命令请求的处理的内容。在“MethodUID”中,设定有用来请求认证(Authenticate)的值“00 00 00 06 00 00 00 0C”的TCG命令被作为认证请求命令处置。
“Authority”表示作为该TCG命令的对象的权限。在TCG命令是认证请求命令的情况下,“Authority”表示应使用命令中包含的PIN及口令那样的认证信息认证的权限。这里,例示了与BandMaster0的权限对应的值“00 00 00 09 00 00 80 01”。
“PIN”表示发送该TCG命令的主机2具有的认证信息。例如,在命令内的“PIN”中设定的值“61 61 61...61”与保存在SSD3内的对应于BandMaster0的权限的认证信息31一致的情况下,SSD3关于BandMaster0的权限,判断为主机2的认证成功。
图6表示由SSD3发送的应答的一结构例。应答例如包括1字节的认证结果、32字节的临时认证符及3字节的Method Status。
“认证结果”表示作为主机2的认证结果的成功或失败。在主机2的认证成功的情况下,在“认证结果”中记述表示成功(Success)的值。在主机2的认证失败的情况下,在“认证结果”中记述表示失败(Failure)的值。
在“临时认证符”中,在主机2的认证成功的情况下,表示用于向NAND型闪速存储器5的访问的临时认证符。在主机2的认证失败的情况下,在“临时认证符”中例如什么值都不记述。
“Method Status”表示关于与该应答对应的TCG命令的错误状态。例如,在TCG命令中包含的参数中没有非法、能够进行主机2的认证的情况下,在“Method Status”中记述表示成功的值。此外,在TCG命令中包含的参数中有非法、不能进行主机2的认证的情况下,在“Method Status”中记述表示失败的值。
参照图7及图8,表示从主机2向SSD3发送读命令的情况下的动作例。在图7及图8中,为了使说明容易理解,仅表示了与该动作有关联的要素。
在图7所示的例子中,从多个主机2中的已认证主机2A向SSD3发送读命令。已认证主机2A是通过参照图3上述的动作而由SSD3进行的认证成功、取得了临时认证符42的主机2。
首先,已认证主机2A将包含对应于该主机2A的认证成功而从SSD3取得的临时认证符42的读命令向SSD3发送。在该读命令中,包含有例如应读出的用户数据的LBA或LBA范围。
读/写命令处理部121受理该读命令。读/写命令处理部121将读命令内的临时认证符42向认证符处理部123送出。
认证符处理部123通过将读命令内的临时认证符42与保存在DRAM6内的临时认证符23比较,判定两个临时认证符42、23是否一致。这里,由于两个临时认证符42、23一致,所以认证符处理部123向读/写命令处理部121通知两个临时认证符42、23一致。
读/写命令处理部121根据该通知,对读/写数据处理部122指示与读命令对应的用户数据的读出。读/写数据处理部122使用LUT21,决定与由读命令指定的LBA或LBA范围对应的物理地址,经由NAND接口13向NAND型闪速存储器5指示从该物理地址的用户数据的读出。对应于该指示从NAND型闪速存储器5读出的用户数据是加密的用户数据,被向加密电路15转送。
加密电路15使用在已认证主机2A的认证成功时设定的加密密钥22,将加密的用户数据解密。加密电路15将解密后的用户数据向读/写数据处理部122送出。
读/写数据处理部122将包含解密后的用户数据的应答向已认证主机2A发送。由此,具有正确的临时认证符42的已认证主机2A能够使用读命令从NAND型闪速存储器5将用户数据读出。
相对于此,在图8所示的例子中,从多个主机2中的未认证主机2B向SSD3发送读命令。未认证主机2B是通过参照图4上述的动作而由SSD3进行的认证失败的主机2,或者是还没有对SSD3发送认证请求命令的主机2。
首先,未认证主机2B将包含临时认证符45的读命令向SSD3发送。该临时认证符45不是在由SSD3进行的主机2的认证成功的情况下生成的临时认证符,而是非法的临时认证符。或者,也可以代替包含非法的临认证符,读命令内的应包含临时认证符的字段是空。在读命令中,包含有例如应被读出的数据的LBA或LBA范围。
读/写命令处理部121受理读命令。读/写命令处理部121将读命令内的临时认证符45向认证符处理部123送出。
认证符处理部123通过将读命令内的临时认证符45与保存在DRAM6内的临时认证符23比较,判定两个临时认证符45、23是否一致。这里,由于两个临时认证符45、23不一致,所以认证符处理部123向读/写命令处理部121通知两个临时认证符45、23不一致。
读/写命令处理部121根据该通知,向未认证主机2B发送表示错误的应答。因而,不具有正确的临时认证符42的未认证主机2B不能将与读命令对应的用户数据从NAND型闪速存储器5读出。
参照图9及图10,表示从主机2向SSD3发送写命令的情况下的动作例。在图9及图10中,为了使说明容易理解,仅表示了与该动作有关联的要素。
在图9所示的例子中,从多个主机2中的已认证主机2A向SSD3发送写命令。如上述那样,已认证主机2A例如是通过参照图3上述的动作而由SSD3进行的认证成功、取得了临时认证符42的主机2。
首先,已认证主机2A向SSD3发送包含对应于该主机2A的认证成功而从SSD3取得的临时认证符42的写命令。此外,已认证主机2A将对应于该写命令而应写入的用户数据46向SSD3发送。在写命令中,包含有例如用户数据46应被写入的LBA或LBA范围。
读/写命令处理部121受理写命令。读/写命令处理部121将写命令内的临时认证符42向认证符处理部123送出。
认证符处理部123通过将写命令内的临时认证符42与保存在DRAM6内的临时认证符23比较,判定两个临时认证符42、23是否一致。这里,由于两个临时认证符42、23一致,所以认证符处理部123向读/写命令处理部121通知两个临时认证符42、23一致。
读/写命令处理部121根据该通知,对于读/写数据处理部122指示与写命令对应的用户数据的写入。
读/写数据处理部122将随着受理了写命令而从已认证主机2A接收到的用户数据46向加密电路15送出。加密电路15使用在已认证主机2A的认证成功时设定的加密密钥22,将用户数据46加密。加密电路15将加密的用户数据46经由NAND接口13向NAND型闪速存储器5转送。
读/写数据处理部122向NAND型闪速存储器5指示转送来的用户数据46的写入(更详细地讲是编程)。由此,将加密的用户数据46向NAND型闪速存储器5内的用户区域5B写入。并且,读/写数据处理部122以映射有用户数据46被写入的物理地址和LBA的条目将LUT21更新。
通过以上,具有正确的临时认证符42的已认证主机2A能够使用写命令将用户数据46向NAND型闪速存储器5写入。
相对于此,在图10所示的例子中,从多个主机2中的未认证主机2B向SSD3发送写命令。如上述那样,未认证主机2B例如是通过参照图4上述的动作而由SSD3进行的认证失败的主机2,或者是还没有对SSD3发送认证请求命令的主机2。
首先,未认证主机2B将包含临时认证符45的写命令向SSD3发送。该临时认证符45不是在由SSD3进行的主机2的认证成功的情况下生成的临时认证符,是非法的临时认证符。或者,也可以代替包含非法的临时认证符,写命令内的应包含临时认证符的字段是空。此外,未认证主机2B将与该写命令对应而应写入的用户数据47向SSD3发送。在写命令中,例如包含有用户数据47应被写入的LBA或LBA范围。
读/写命令处理部121受理写命令。读/写命令处理部121将写命令内的临时认证符45向认证符处理部123送出。
认证符处理部123通过将写命令内的临时认证符45与保存在DRAM6内的临时认证符23比较,判定两个临时认证符45、23是否一致。这里,由于两个临时认证符45、23不一致,所以认证符处理部123向读/写命令处理部121通知两个临时认证符45、23不一致。
读/写命令处理部121根据该通知,向未认证主机2B发送表示错误的应答。此外,读/写命令处理部121根据该通知,向读/写数据处理部122指示从未认证主机2B接收到的用户数据47的丢弃。读/写数据处理部122根据该指示而将用户数据47丢弃。因而,用户数据47没有被向NAND型闪速存储器5写入。
这样,不具有正确的临时认证符42的未认证主机2B不能使用写命令向NAND型闪速存储器5写入用户数据47。
另外,在上述的例子中,分别说明了从主机2向SSD3发送读命令和写命令的情况,但从主机2向SSD3发送的访问命令也可以是空间回收命令、格式化命令、校验命令等。已认证主机2A在哪个访问命令中都包含临时认证符42而向SSD3发送。SSD3进行包含正确的临时认证符42(即,与保存在DRAM6内的临时认证符23一致的临时认证符)的访问命令对应的处理,向不包含正确的临时认证符42的访问命令返回错误。由此,SSD3仅进行与由已认证主机2A发送的访问命令对应的处理,能够动作以不进行与由未认证主机2B发送的访问命令对应的处理。
参照图11的流程图,对在有关比较例的存储器系统中由不使用临时认证符的控制器执行的读控制处理进行说明,并参照图12的流程图,对由本实施方式的使用临时认证符的控制器4执行的读控制处理进行说明。
图11表示由不使用临时认证符的控制器进行的读控制处理的步骤的例子。该控制器构成为,在1个主机的认证成功后,对来自连接的全部的主机的访问命令响应。这里,对在具备该控制器的SSD上连接着多个主机2、从其中的1个主机2发送能够进行认证请求命令和数据读出的设定变更命令的情况进行例示。
首先,控制器判定是否从多个主机2的某个受理了由认证请求命令和设定变更命令构成的两个TCG命令(步骤S101)。在从哪个主机2都没有受理两个TCG命令的情况下(步骤S101的否),向步骤S101返回,再次判定是否受理了两个TCG命令。
另一方面,在从某个主机2(以下称作第1主机)受理了两个TCG命令的情况下(步骤S101的是),控制器使用认证请求命令中包含的第1主机2的认证信息,进行第1主机2的认证处理(步骤S102)。并且,控制器判定在认证处理中第1主机2的认证是否成功(步骤S103)。在第1主机2的认证失败的情况下(步骤S103的否),控制器向第1主机2发送表示认证失败的认证结果(步骤S104),向步骤S101返回。
在第1主机2的认证成功的情况下(步骤S103的是),控制器基于设定变更命令,将从NAND型闪速存储器的数据读出的锁定解除(步骤S105)。控制器生成与第1主机2的认证信息对应的加密密钥(步骤S106),将该加密密钥向加密电路设定(步骤S107)。所设定的加密密钥用于由加密电路进行的用户数据的加密及解密。并且,控制器向第1主机2发送表示认证成功的认证结果(步骤S108)。
接着,控制器判定是否从多个主机2的某个受理了读命令(步骤S109)。在从哪个主机2都没有受理到读命令的情况下(步骤S109的否),向步骤S109返回,再次判定是否受理到读命令。
另一方面,在从某个主机2(以下称作第2主机)受理了读命令的情况下(步骤S109的是),根据该读命令,控制器将加密的用户数据从NAND型闪速存储器读出(步骤S110),用被设定了加密密钥的加密电路,对加密的用户数据进行解密(步骤S111)。接着,控制器将解密后的用户数据向第2主机2发送(步骤S112),向步骤S109返回。该第2主机2是连接在SSD上的多个主机2的某个,既可以与第1主机2相同,也可以是与第1主机2不同的主机。从步骤S109到步骤S112的步骤可以反复进行直到SSD被关闭电源。
如以上这样,在1个主机(这里是第1主机2)的认证成功后,连接在SSD上的全部的主机2通过发送读命令,能够从SSD将用户数据读出。因而,在发送了读命令的第2主机2是与认证成功的第1主机2不同的主机的情况下,成为由没有进行认证处理的第2主机2从SSD将用户数据读出。因此,如果第2主机2是不具有合法的认证信息的未认证的主机,则由未认证的第2主机2将SSD内的用户数据读出,SSD内的用户数据有可能泄漏。
相对于此,图12表示由本实施方式的控制器4执行的读控制处理的步骤的例子。控制器4具有使用临时认证符、仅对应于来自认证成功的主机2的读命令而从NAND型闪速存储器5将数据读出的功能。这里,例示从某个主机2向该控制器4发送请求能够进行认证请求命令和数据读出的设定变更命令的情况。
首先,控制器4判定是否从连接在SSD3上的多个主机2的某个受理了由认证请求命令和设定变更命令构成的两个TCG命令(步骤S201)。在从哪个主机2都没有受理两个TCG命令的情况下(步骤S201的否),向步骤S201返回,再次判定是否受理了两个TCG命令。
另一方面,在从某个主机2(以下称作第1主机)受理了两个TCG命令的情况下(步骤S201的是),控制器4使用认证请求命令中包含的第1主机2的认证信息进行第1主机2的认证处理(步骤S202)。接着,控制器4判定在认证处理中第1主机2的认证是否成功(步骤S203)。在第1主机2的认证失败的情况下(步骤S203的否),控制器4向第1主机2发送表示认证失败的认证结果(步骤S204),向步骤S201返回。另外,也可以构成为,在认证的失败连续发生的次数超过了特定的次数的情况下,控制器4不受理进一步的认证请求命令。
在第1主机2的认证成功的情况下(步骤S203的是),控制器4基于设定变更命令,将从NAND型闪速存储器5的数据读出的锁定解除(步骤S205)。控制器生成与第1主机2的认证信息对应的加密密钥22和临时认证符23(步骤S206)。临时认证符23例如包括随机数、或者随机数及第1主机2的识别符。控制器4将所生成的加密密钥22向加密电路15设定(步骤S207)。设定的加密密钥22被用于由加密电路15进行的用户数据的加密及解密。接着,控制器4将表示认证成功的认证结果和所生成的临时认证符23向第1主机2发送(步骤S208)。
接着,控制器4判定是否从多个主机2的某个受理了读命令(步骤S209)。在从哪个主机2都没有受理读命令的情况下(步骤S209的否),向步骤S209返回。
在从某个主机2(以下称作第2主机)受理了读命令的情况下(步骤S209的是),控制器4判定由步骤S206生成的临时认证符23与读命令中包含的临时认证符是否一致(步骤S210)。该第2主机2是连接在SSD3上的多个主机2的某个。
在所生成的临时认证符23与读命令中包含的临时认证符不同的情况下(步骤S210的否),控制器4向第2主机2通知错误(步骤S211),向步骤S209返回。另外,也可以构成为,在连续发生由临时认证符的不一致带来的错误的次数超过了特定的次数的情况下,控制器4不受理进一步的读命令。
另一方面,在所生成的临时认证符23与读命令中包含的临时认证符一致的情况下(步骤S210的是),根据该读命令,控制器4将加密的用户数据从NAND型闪速存储器5读出(步骤S212)。控制器4用设定了加密密钥22的加密电路15将加密的用户数据解密(步骤S213)。接着,控制器4将解密后的用户数据向第2主机2发送(步骤S214),向步骤S209返回。从步骤S209到步骤S214的步骤可以反复进行,直到SSD3被关闭电源。
如以上这样,向认证成功的1个主机(这里是第1主机2)发送临时认证符23,仅对应于包含该临时认证符23的读命令,从NAND型闪速存储器5将用户数据读出。即,在受理了不包含临时认证符23的读命令的情况下,不从SSD3将用户数据读出。
因而,进行控制,以使得使用被发送给认证成功的第1主机2的临时认证符23,仅具有临时认证符23的第2主机2(即,与第1主机2相同的第2主机2)能够从SSD3将用户数据读出。另一方面,进行控制,以使得不具有临时认证符23的第2主机2(即,与第1主机2不同的第2主机2)不能从SSD3将用户数据读出。由此,能够防止由不具有合法的认证信息的未认证的主机2将SSD3内的用户数据读出而SSD3内的用户数据泄漏。
参照图13的流程图,对由有关比较例的存储器系统不使用临时认证符的控制器执行的写控制处理进行说明,并且参照图14的流程图,对本实施方式的由使用临时认证符的控制器4执行的写控制处理进行说明。
图13表示由不使用临时认证符的控制器进行的写控制处理的步骤的例子。该控制器构成为,在1个主机的认证成功后,对来自连接的全部的主机的访问命令进行响应。这里,对在具备该控制器的SSD上连接着多个主机2、从其中的1个主机2发送了请求能够进行认证请求命令和数据写入的设定变更命令的情况进行例示。另外,从步骤S301到步骤S304的步骤与参照图11的流程图上述的从步骤S101到步骤S104的步骤是同样的。
第1主机2的认证成功的情况下(步骤S303的是),控制器基于设定变更命令,将向NAND型闪速存储器的数据写入的锁定解除(步骤S305)。控制器生成与第1主机2的认证信息对应的加密密钥(步骤S306),将该加密密钥对加密电路设定(步骤S307)。设定的加密密钥被用于由加密电路进行的用户数据的加密及解密。接着,控制器将表示认证成功的认证结果向第1主机2发送(步骤S308)。
接着,控制器判定是否从多个主机2的某个受理了写命令(步骤S309)。在从哪个主机2都没有受理写命令的情况下(步骤S309的否),向步骤S309返回。
另一方面,在从某个主机2(以下称作第2主机)受理了写命令的情况下(步骤S309的是),控制器从第2主机2接收写入对象的用户数据(步骤S310)。控制器用设定了加密密钥的加密电路将接收到的用户数据加密(步骤S311)。接着,控制器将加密的用户数据向NAND型闪速存储器写入(步骤S312),向步骤S309返回。该第2主机2是连接在SSD上的多个主机2的某个,既可以与第1主机2相同,也可以是与第1主机2不同的主机。此外,从步骤S309到步骤S312的步骤可以反复进行直到SSD被关闭电源。
如以上这样,在1个主机(这里是第1主机2)的认证成功后,连接在SSD上的全部的主机2能够通过发送写命令而向SSD写入数据。因而,在发送了写命令的第2主机2是与认证成功的第1主机2不同的主机的情况下,成为由没有进行认证处理的第2主机2向SSD写入数据。因此,如果第2主机2是不具有合法的认证信息的未认证的主机,则有可能由未认证的第2主机2向SSD写入数据而SSD内的数据被篡改。
相对于此,图14表示由本实施方式的控制器4执行的写控制处理的步骤的例子。控制器4具有仅对应于来自认证成功的主机2的写命令向NAND型闪速存储器5写入数据的功能。这里,例示从某个主机2向该控制器4发送认证请求命令和请求能够进行数据写入的设定变更命令的情况。另外,从步骤S401到步骤S404的步骤与参照图12的流程图上述的从步骤S201到步骤S204的步骤是同样的。
第1主机2的认证成功的情况下(步骤S403的是),控制器4基于设定变更命令,将向NAND型闪速存储器5的数据写入的锁定解除(步骤S405)。控制器4生成与第1主机2的认证信息对应的加密密钥22和临时认证符23(步骤S406)。临时认证符23例如包含随机数、或者随机数及第1主机2的识别符。控制器4将所生成的加密密钥22向加密电路15设定(步骤407)。所设定的加密密钥22被用于由加密电路15进行的用户数据的加密及解密。接着,控制器4将表示认证成功的认证结果和所生成的临时认证符23向第1主机2发送(步骤S408)。
接着,控制器4判定是否从多个主机2的某个受理了写命令(步骤S409)。在从哪个主机2都没有受理写命令的情况下(步骤S409的否),向步骤S409返回。
在从某个主机2(以下称作第2主机)受理了写命令的情况下(步骤S409的是),控制器4从第2主机2接收写入对象的用户数据(步骤S410)。该第2主机2是连接在SSD3上的多个主机2的某个。控制器4判定在步骤S406中生成的临时认证符23与写命令中包含的临时认证符是否一致(步骤S411)。
在所生成的临时认证符23与写命令中包含的临时认证符不同的情况下(步骤S411的否),控制器4向第2主机2通知错误(步骤S412),向步骤S409返回。另外,也可以构成为,在连续地发生了由临时认证符的不一致带来的错误的次数超过了特定的次数的情况下,控制器4不受理进一步的写命令。
另一方面,在所生成的临时认证符23与写命令中包含的临时认证符一致的情况下(步骤S411的是),控制器4用设定有加密密钥22的加密电路将接收到的用户数据加密(步骤S413)。接着,控制器4将加密的用户数据向NAND型闪速存储器5写入(步骤S414),向步骤S409返回。从步骤S409到步骤S414的步骤可以反复地进行直到SSD3被关闭电源。
如以上这样,向认证成功的1个主机(这里是第1主机2)发送临时认证符23,仅对应于包含该临时认证符23的写命令而向SSD3写入用户数据。即,在受理了不包含临时认证符23的写命令的情况下,不向SSD3写入数据。
因而,进行控制,以使得使用向认证成功的第1主机2发送的临时认证符23,仅具有临时认证符23的第2主机2(即,与第1主机2相同的第2主机2)能够向SSD3写入数据。另一方面,进行控制,以使得不具有临时认证符23的第2主机2(即,与第1主机2不同的第2主机2)不能向SSD3写入数据。由此,能够防止由不具有合法的认证信息的未认证的主机向SSD3写入数据而将SSD3内的数据篡改的情况。
如以上说明,根据本实施方式,能够强化对于向存储设备的访问的安全。TCG命令处理部124从第1主机2受理认证请求命令,在使用认证请求命令中包含的认证信息的第1主机2的认证成功的情况下,向第1主机2发送第1认证符。读/写命令处理部121在从第2主机2受理了用来向NAND型闪速存储器5访问的访问命令的情况下,如果访问命令中包含的第2认证符与第1认证符一致,则许可与访问命令对应的向NAND型闪速存储器5的访问,如果第2认证符与第1认证符不一致,则禁止与访问命令对应的向NAND型闪速存储器5的访问。
由此,由于仅具有正确的临时认证符的主机2能够使用访问命令对NAND型闪速存储器5访问,所以能够强化对于向NAND型闪速存储器5的访问的安全。
此外,本实施方式所记载的各种各样的功能分别也可以由电路(处理电路)实现。在处理电路的例子中,包括中央处理装置(CPU)那样的被编程的处理器。该处理器通过执行保存在存储器中的计算机程序(命令群),执行所记载的各个功能。该处理器也可以是包含电路的微处理器。在处理电路的例子中,包括数字信号处理器(DSP)、面向特定用途的集成电路(ASIC)、微控制器、控制器、其他的电路零件。本实施方式所记载的CPU以外的其他的组件的各自也可以还由处理电路实现。
说明了本发明的几个实施方式,但这些实施方式是作为例子提示的,不是要限定发明的范围。这些新的实施方式能够以其他各种各样的形态实施,在不脱离发明的主旨的范围内能够进行各种各样的省略、替换、变更。这些实施方式及其变形包含在发明的范围或主旨中,并且包含在权利要求书所记载的发明和其等价的范围中。
标号说明
1…信息处理系统;2…主机;3…SSD;4…控制器;5…NAND型闪速存储器;6…DRAM;10…总线;11…主机接口;12…CPU;13…NAND接口;14…DRAM接口;15…加密电路;121…读/写命令处理部;122…读/写数据处理部;123…认证符处理部;124…TCG命令处理部;125…认证符管理部;126…加密密钥生成部;21…LUT;22…加密密钥;23…临时认证符;31…认证信息。

Claims (12)

1.一种存储器系统,
具备:
非易失性存储器;以及
控制器,与上述非易失性存储器电连接,并且构成为,受理由多个主机分别发送的命令,将向上述非易失性存储器写入的数据加密,将从上述非易失性存储器读出的数据解密;
上述控制器构成为,
从第1主机受理认证请求命令,在使用上述认证请求命令中包含的认证信息的上述第1主机的认证成功的情况下,向上述第1主机发送第1认证符;
在从第2主机受理了用来向上述非易失性存储器访问的访问命令的情况下,如果上述访问命令中包含的第2认证符与上述第1认证符一致,则许可向与上述访问命令对应的上述非易失性存储器的访问,如果上述第2认证符与上述第1认证符不一致,则禁止向与上述访问命令对应的上述非易失性存储器的访问。
2.如权利要求1所述的存储器系统,
上述访问命令是读命令;
上述控制器构成为,
如果上述读命令中包含的上述第2认证符与上述第1认证符一致,则从上述非易失性存储器将与上述读命令对应的第1数据读出,将上述第1数据解密,将解密后的上述第1数据向上述第2主机发送;
如果上述第2认证符与上述第1认证符不一致,则不将上述第1数据从上述非易失性存储器读出。
3.如权利要求2所述的存储器系统,
上述控制器,
在使用上述认证信息的上述第1主机的认证成功的情况下,生成与上述认证信息对应的加密密钥;
如果上述第2认证符与上述第1认证符一致,则使用上述加密密钥将上述第1数据解密。
4.如权利要求1所述的存储器系统,
上述访问命令是写命令;
上述控制器构成为,
接收随着受理上述写命令而由上述第2主机发送的第2数据;
如果上述写命令中包含的上述第2认证符与上述第1认证符一致,则将上述第2数据加密,将加密后的上述第2数据向上述非易失性存储器写入;
如果上述第2认证符与上述第1认证符不一致,则不将上述第2数据向上述非易失性存储器写入。
5.如权利要求4所述的存储器系统,
上述控制器,
在使用上述认证信息的上述第1主机的认证成功的情况下,生成与上述认证信息对应的加密密钥;
如果上述第2认证符与上述第1认证符一致,则使用上述加密密钥将上述第2数据加密。
6.如权利要求1~5中任一项所述的存储器系统,
上述第1认证符包含随机数。
7.如权利要求1~5中任一项所述的存储器系统,
上述第1认证符包含随机数和上述第1主机的识别符。
8.如权利要求1所述的存储器系统,
上述控制器在使用上述认证请求命令中包含的上述认证信息的上述第1主机的认证失败的情况下,不向上述第1主机发送上述第1认证符。
9.如权利要求1所述的存储器系统,
上述认证请求命令包含加密的上述认证信息;
上述控制器将加密的上述认证信息解密,在使用解密后的上述认证信息的上述第1主机的认证成功的情况下,向上述第1主机发送上述第1认证符。
10.如权利要求9所述的存储器系统,
上述控制器在上述第1主机的认证成功的情况下,将加密的上述第1认证符向上述第1主机发送。
11.如权利要求1所述的存储器系统,
上述访问命令包含加密的上述第2认证符;
上述控制器构成为,将加密的上述第2认证符解密,如果解密后的上述第2认证符与上述第1认证符一致,则许可向上述非易失性存储器的访问,如果解密后的上述第2认证符与上述第1认证符不一致,则禁止向上述非易失性存储器的访问。
12.如权利要求1所述的存储器系统,
上述存储器系统依据可信计算组织即TCG的标准。
CN201910729681.8A 2019-01-24 2019-08-08 存储器系统 Active CN111475871B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019010138A JP2020119298A (ja) 2019-01-24 2019-01-24 メモリシステム
JP2019-010138 2019-01-24

Publications (2)

Publication Number Publication Date
CN111475871A true CN111475871A (zh) 2020-07-31
CN111475871B CN111475871B (zh) 2023-11-24

Family

ID=71732870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910729681.8A Active CN111475871B (zh) 2019-01-24 2019-08-08 存储器系统

Country Status (4)

Country Link
US (1) US11362830B2 (zh)
JP (1) JP2020119298A (zh)
CN (1) CN111475871B (zh)
TW (1) TWI716023B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114527933A (zh) * 2022-01-06 2022-05-24 长江存储科技有限责任公司 存储器操作方法、存储器及存储系统

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020144689A (ja) * 2019-03-07 2020-09-10 キオクシア株式会社 ストレージ装置及びストレージ装置の制御方法
JP2021043708A (ja) * 2019-09-11 2021-03-18 キオクシア株式会社 メモリシステム
JP7366765B2 (ja) * 2020-01-20 2023-10-23 株式会社東芝 Icカード、icカード処理システム、及びicカード処理装置の制御プログラム
KR20210113906A (ko) * 2020-03-09 2021-09-17 에스케이하이닉스 주식회사 컴퓨팅 시스템 및 그 동작 방법
US11455102B2 (en) 2020-03-09 2022-09-27 SK Hynix Inc. Computing system and operating method thereof
US11461021B2 (en) 2020-03-09 2022-10-04 SK Hynix Inc. Computing system and operating method thereof
US20220057960A1 (en) * 2020-08-20 2022-02-24 Micron Technology, Inc. Host verification for a memory device
US11528126B2 (en) * 2021-02-16 2022-12-13 Google Llc Interface for revision-limited memory
JP2022135641A (ja) 2021-03-05 2022-09-15 キオクシア株式会社 I/oコマンド制御装置およびストレージシステム
JP2022144310A (ja) 2021-03-18 2022-10-03 キオクシア株式会社 電圧生成回路及び半導体装置
US20230205430A1 (en) * 2021-12-28 2023-06-29 Micron Technology, Inc. Verification of a volatile memory using a unique identifier

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881374A (zh) * 2014-02-27 2015-09-02 三星电子株式会社 自加密驱动器和包括自加密驱动器的用户装置
US20150256333A1 (en) * 2014-03-07 2015-09-10 Kabushiki Kaisha Toshiba Asymmetrical encryption of storage system to protect copyright and personal information
TW201616390A (zh) * 2013-06-20 2016-05-01 東芝股份有限公司 元件、主機裝置、主機系統及記憶體系統
CN106557802A (zh) * 2015-09-30 2017-04-05 株式会社东芝 存储装置以及信息处理系统
TW201826128A (zh) * 2017-01-05 2018-07-16 美商.高通公司 非揮發性隨機存取記憶體及閘控安全存取

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2242944B2 (de) 1972-08-31 1981-04-23 Robert Bosch Gmbh, 7000 Stuttgart Bohrhammer
US5058025A (en) * 1989-03-23 1991-10-15 F.M.E. Corporation Emergency post office setting for remote setting meter
JP2002352155A (ja) 2001-05-29 2002-12-06 Nec System Technologies Ltd 電子情報保管システム
KR100575767B1 (ko) * 2004-03-05 2006-05-03 엘지전자 주식회사 이동 통신 단말기의 장치번호 저장 방법
US20060129824A1 (en) * 2004-12-15 2006-06-15 Hoff James P Systems, methods, and media for accessing TPM keys
WO2009123630A1 (en) 2008-04-02 2009-10-08 Hewlett-Packard Development Company, L.P. Disk drive data encryption
JP5613596B2 (ja) 2011-03-08 2014-10-29 Kddi株式会社 認証システム、端末装置、認証サーバ、およびプログラム
US9117062B1 (en) * 2011-12-06 2015-08-25 Amazon Technologies, Inc. Stateless and secure authentication
JP2014016659A (ja) * 2012-07-05 2014-01-30 Nec Soft Ltd 電子認証システム、端末、サーバ、および電子認証プログラム
WO2014015073A1 (en) * 2012-07-18 2014-01-23 Cryptography Research, Inc. Protecting media items using a media security controller
US9996680B2 (en) * 2015-01-18 2018-06-12 F. Scott Deaver Methods and related apparatus for managing access to digital assets
US10754988B2 (en) * 2016-08-30 2020-08-25 Winbond Electronics Corporation Anti-rollback version upgrade in secured memory chip
TWI679554B (zh) * 2017-03-07 2019-12-11 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US10880296B2 (en) * 2017-03-30 2020-12-29 Kingston Digital Inc. Smart security storage
CN109067732B (zh) * 2018-07-26 2021-04-20 广州大学 物联网设备及数据接入系统、方法及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201616390A (zh) * 2013-06-20 2016-05-01 東芝股份有限公司 元件、主機裝置、主機系統及記憶體系統
CN104881374A (zh) * 2014-02-27 2015-09-02 三星电子株式会社 自加密驱动器和包括自加密驱动器的用户装置
US20150256333A1 (en) * 2014-03-07 2015-09-10 Kabushiki Kaisha Toshiba Asymmetrical encryption of storage system to protect copyright and personal information
CN106557802A (zh) * 2015-09-30 2017-04-05 株式会社东芝 存储装置以及信息处理系统
TW201826128A (zh) * 2017-01-05 2018-07-16 美商.高通公司 非揮發性隨機存取記憶體及閘控安全存取

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114527933A (zh) * 2022-01-06 2022-05-24 长江存储科技有限责任公司 存储器操作方法、存储器及存储系统

Also Published As

Publication number Publication date
CN111475871B (zh) 2023-11-24
US11362830B2 (en) 2022-06-14
TWI716023B (zh) 2021-01-11
US20200244458A1 (en) 2020-07-30
JP2020119298A (ja) 2020-08-06
TW202029047A (zh) 2020-08-01

Similar Documents

Publication Publication Date Title
CN111475871B (zh) 存储器系统
KR102254256B1 (ko) 보안형 메모리 칩의 롤백 방지 버전 업그레이드
US20100058073A1 (en) Storage system, controller, and data protection method thereof
US7873837B1 (en) Data security for electronic data flash card
US11775184B2 (en) Memory system, information processing apparatus, and information processing system
US11329814B2 (en) Self-encryption drive (SED)
CN114830595A (zh) 将密码密钥委托给存储器子系统
CN116420145A (zh) 基于多个组件的启动时间绑定的端点验证
CN115576483A (zh) 可信计算基础的组件之间的安全身份链接
US20220171715A1 (en) Electronic device
US20230179418A1 (en) Storage controller and method of operating electronic system
TWI775284B (zh) 記憶系統、其控制方法及資訊處理系統
US11468159B2 (en) Memory system
TWI821675B (zh) 記憶體系統
CN115391844A (zh) 安全密钥存储装置
CN115705438A (zh) 对安装于安全存储器装置中的文件系统中的文件的会话存取
US11113399B2 (en) Electronic apparatus and control method of electronic apparatus
CN114764504A (zh) 经由计算机网络对存储器装置的控制的批次转移
KR20220128394A (ko) 다인자 인증 가능 메모리 서브시스템
US20230091431A1 (en) Memory system and random number generation device

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Tokyo, Japan

Applicant after: Kaixia Co.,Ltd.

Address before: Tokyo, Japan

Applicant before: TOSHIBA MEMORY Corp.

GR01 Patent grant
GR01 Patent grant