CN114730342A - 数据存储设备加密 - Google Patents
数据存储设备加密 Download PDFInfo
- Publication number
- CN114730342A CN114730342A CN202180006733.4A CN202180006733A CN114730342A CN 114730342 A CN114730342 A CN 114730342A CN 202180006733 A CN202180006733 A CN 202180006733A CN 114730342 A CN114730342 A CN 114730342A
- Authority
- CN
- China
- Prior art keywords
- data
- file system
- stored
- storage medium
- host computer
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本公开涉及数据存储设备(DSD)硬件,并更具体地涉及用于对存储在DSD上的数据进行加密的系统和方法。DSD包括用于使用块寻址来存储多个文件系统数据对象的非易失性存储介质。设备控制器与该DSD集成,并包括被配置为对要存储在该存储介质上的数据进行加密的硬件电路系统。该控制器从主机计算机系统接收对加密的文件系统数据对象的请求,识别块范围中的其中所请求的加密的文件系统数据对象存储在该存储介质上的一个范围,并将存储在所识别的块范围中的该文件系统数据对象以如存储在该存储介质上的加密形式发送到该主机计算机系统。
Description
技术领域
本公开的各方面大体上涉及数据存储设备硬件,并且更具体地说涉及用于对存储在数据存储设备上的数据进行加密的系统和方法。
背景技术
图1示出了典型场景100,该典型场景包括主机计算机系统101和数据存储设备(DSD)102,该DSD经由例如光纤信道(FC)、串行高级技术附件(SATA)、串行连接小型计算机系统接口(SAS)等的数据链路103连接到主机计算机系统101。DSD 102可以位于主机计算机系统101内或位于主机计算机系统101外部,例如位于服务器机房中的单独机架上。
主机计算机系统101还包括处理器104和易失性存储器,例如随机存取存储器(RAM)105。主机计算机系统101可以是台式或膝上型计算机、移动设备或位于数据中心的服务器,并且可以具有安装在其上的例如Microsoft Windows或Linux的操作系统。主机计算机系统101还可以是虚拟机或云实例或任何其他计算设备。DSD 102包括控制器106、物理数据存储介质107和读取/写入设备108。虽然当前示例描述了具有旋转介质的硬盘驱动器(HDD),但是本公开同样适用于其他存储介质,例如在固态驱动器(SSD)或磁带中发现的存储介质。
数据存储的一个难点是,DSD 102可以被物理地移除或窃取并安装在不同的主机计算机中以检索存储在DSD 102上的敏感信息。因此,重要的是提供加密的“静态数据”。
一种用于提供加密的静态数据的方法是全磁盘硬件加密。为此,控制器106包括执行例如高级加密标准(AES)的加密功能的硬件电路系统。控制器106接着可以对其经由数据链路103接收的所有数据进行加密,并将加密的数据存储在存储介质107上。反过来也一样,控制器106从存储介质107检索加密的数据,对该数据进行解密,并通过数据链路103发送解密的数据。
处理器104接着可以执行软件加密以对从DSD 102接收的数据进行加密,这在例如该数据接着通过不安全信道发送到不同计算机系统的情况下可以是有用的。然而,这不是端对端解决方案,因为DSD与主机计算机系统101之间的数据链路103以纯文本(即未加密的)携带数据。因此,有可能使攻击者窃听数据链路103并获得对未加密的数据的未经授权的访问。
发明内容
通过对接收的数据进行加密但在请求数据时停用解密来改进硬件加密。这样,可以呈加密形式的多个块的形式检索跨越限定的块范围的文件。接着可以跨不安全链路发送块并将其存储在第二计算机系统上。第二计算机系统的解密硬件接着可以在需要时对块进行解密。
本文公开了一种数据存储设备,包括:
非易失性存储介质,该非易失性存储介质用于使用块寻址来存储多个文件系统数据对象,该多个文件系统数据对象可由相应范围的块来寻址;和
设备控制器,该设备控制器与该数据存储设备集成并且包括硬件电路系统,该硬件电路系统被配置为:
基于加密密钥而对要存储在该存储介质上的数据进行加密;
其中该设备控制器被配置为:
从主机计算机系统接收对加密的文件系统数据对象的请求;
识别该块范围中的其中所请求的加密的文件系统数据对象存储在该存储介质上的一个范围;和
将存储在所识别的块范围中的该文件系统数据对象以如存储在该存储介质上的加密形式发送到该主机计算机系统。
在一些实施方案中,该设备控制器还被配置为控制该硬件电路系统以针对该块范围使用单个加密密钥而对要存储在该存储介质上的该数据进行加密。
在一些实施方案中,该设备控制器还被配置为控制该硬件电路系统以针对一个卷或一个分区使用单个加密密钥而对要存储在该存储介质上的该数据进行加密。
在一些实施方案中,该设备控制器还被配置为:
控制该硬件电路系统以对存储在该存储介质上的数据进行解密,以及
接收并执行来自命令集的命令,并且
该命令集包括用于停用对存储在该存储介质上的该数据的解密以使该设备控制器将存储在所识别的块范围中的该文件系统数据对象以如存储在该存储介质上的加密形式发送到该主机计算机系统的命令。
在一些实施方案中,该设备控制器还被配置为执行在接收到该用于停用对存储在该存储介质上的该数据的解密的命令之后从该主机计算机系统接收对该加密的文件系统数据对象的该请求的步骤。
在一些实施方案中,该多个文件系统数据对象是以下中的一者或多者:
文件;
文件组;和
目录。
在一些实施方案中,该设备控制器还被配置为:
从主机文件系统接收块范围的指示,该主机文件系统维护与该块范围相关联的文件结构;
控制该硬件电路系统以使用该加密密钥对数据进行加密;和
将该数据以加密形式写入到该存储介质的该块范围。
在一些实施方案中,该数据存储设备还包括数据存储装置以存储该文件系统数据对象与该相应范围的块之间的关联,
其中:
该文件系统数据对象与该相应范围的块之间的该关联是用加密密钥进行加密的,并且
该设备控制器还被配置为:
接收对该文件系统数据对象与该相应范围的块之间的该关联的请求;
将该文件系统数据对象与该相应范围的块之间的该关联发送到主机计算机系统以使该主机计算机系统能够基于所存储的关联而确定块范围;
从主机文件系统接收块范围的指示,该主机文件系统维护与该块范围相关联的文件结构;和
将存储在该块范围中的该文件系统数据对象以如存储在该存储介质上的加密形式发送到该主机计算机系统。
在一些实施方案中,该设备控制器还被配置为:
接收该加密密钥;
控制该硬件电路系统以使用该加密密钥对该文件系统数据对象与该相应范围的块之间的该关联进行解密;和
将该文件系统数据对象与该相应范围的块之间的该关联以解密形式发送到该主机计算机系统。
在一些实施方案中,该设备控制器还被配置为:
控制该硬件电路系统以基于不同加密密钥而对要存储在该存储介质上的数据进行加密;和
将该不同加密密钥中的每个密钥用于该块范围中的对相应文件系统数据对象进行寻址的一个范围。
在一些实施方案中,该设备控制器还被配置为控制该硬件电路系统以计算该文件系统数据对象的散列值并将该散列值发送到该主机计算机系统以供验证。
在一些实施方案中,用于对要存储在该存储介质上的该数据进行加密的该加密密钥是与存储在该数据存储设备外部的私有密钥相关联的公共密钥。
在一些实施方案中,该数据存储设备还包括用于存储该加密密钥的易失性存储器。
在一些实施方案中,该设备控制器还被配置为:
从该主机计算机系统接收该加密密钥的指示;和
控制该硬件电路系统以使用该加密密钥对数据进行加密,直到接收到另一加密密钥的指示为止。
在一些实施方案中,该设备控制器还被配置为:
接收并执行来自命令集的命令,其中该命令集包括用于激活对存储在该存储介质上的该数据的解密的命令;
接收已在该数据存储设备外部被加密的加密的文件系统数据对象;
将该加密的文件系统数据对象以加密形式存储在该存储介质上;
从该主机计算机系统接收该加密密钥;
接收该用于激活对存储在该存储介质上的该数据的解密的命令;
控制该硬件电路系统以使用从该主机计算机系统接收的该加密密钥对该存储介质上的该文件系统数据对象进行解密;和
将该文件系统数据对象以解密形式发送到该主机计算机系统。
本文公开了一种用于将数据存储在数据存储设备中的方法,该方法包括:
使用块寻址将多个文件系统数据对象存储在存储介质上,该多个文件系统数据对象可由相应范围的块来寻址;
由与该数据存储设备集成的硬件电路系统使用加密密钥以对要存储在该存储介质上的数据进行加密;
从主机计算机系统接收对加密的文件系统数据对象的请求;
识别该块范围中的其中所请求的加密的文件系统数据对象存储在该存储介质上的一个范围;和
将存储在所识别的块范围中的该文件系统数据对象以如存储在该存储介质上的加密形式发送到该主机计算机系统。
在一些实施方案中,该方法还包括:
接收并执行来自命令集的命令,该命令集包括用于激活对存储在该存储介质上的该数据的解密的命令;
接收已在该数据存储设备外部被加密的加密的文件系统数据对象;
将该加密的文件系统数据对象以加密形式存储在该存储介质上;
从主机计算机系统接收该加密密钥;
接收该用于激活对存储在该存储介质上的该数据的解密的命令;
由与该数据存储设备集成的该硬件电路系统使用从该主机计算机系统接收的该加密密钥对该存储介质上的该文件系统数据对象进行解密;和
将该文件系统数据对象以解密形式发送到该主机计算机系统。
在一些实施方案中,该方法还包括:
接收并执行来自命令集的命令,该命令集包括用于停用对存储在该存储介质上的该数据的解密的命令;
在接收到该用于停用对存储在该存储介质上的该数据的解密的命令之后,从主机计算机系统接收对加密的文件系统数据对象的请求,该请求包括块范围的指示;和
以如存储在该存储介质上的加密形式发送存储在该块范围中的该文件系统数据对象。
本文公开了一种非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质与数据存储设备并与存储在其上的固件集成,该固件在由该数据存储设备的控制器执行时使该控制器执行以下步骤:
使用块寻址来存储多个文件系统数据对象,该多个文件系统数据对象可由相应范围的块来寻址;
由与该数据存储设备集成的硬件电路系统使用加密密钥以对要存储在该存储介质上的数据进行加密;
从主机计算机系统接收对加密的文件系统数据对象的请求;
识别该块范围中的其中所请求的加密的文件系统数据对象存储在该存储介质上的一个范围;和
将存储在所识别的块范围中的该文件系统数据对象以如存储在该存储介质上的加密形式发送到该主机计算机系统。
本文公开了一种数据存储设备,包括:
用于使用块寻址来存储多个文件系统数据对象的装置,该多个文件系统数据对象可由相应范围的块来寻址;
用于由与该数据存储设备集成的硬件电路系统使用加密密钥以对要存储在该用于存储的装置上的数据进行加密的装置;
用于从主机计算机系统接收对加密的文件系统数据对象的请求的装置;
用于识别该块范围中的其中所请求的加密的文件系统数据对象存储在该用于存储的装置上的一个范围的装置;和
用于将存储在所识别的块范围中的该文件系统数据对象以如存储在该用于存储的装置上的加密形式发送到该主机计算机系统的装置。
附图说明
图1示出了根据现有技术并且涉及主机计算机系统和数据存储设备(DSD)的典型场景。
现在将参考以下附图描述示例:
图2示出了根据实施方案的其中DSD针对不同块范围使用不同密钥的示例。
图3示出了根据实施方案的具有使用不同密钥的块边界和块范围的示例性数据存储介质。
图4示出了根据实施方案的其中控制器以解密形式发送数据(其存储在存储介质上)的一个示例。
图5示出了根据实施方案的其中控制器以如数据存储在存储介质上的加密形式发送数据(其存储在存储介质上)的示例。
图6示出了接收加密的文件系统数据对象的接收DSD。根据实施方案,接收DSD可以在接收到适当的密钥时对文件系统数据对象进行解密。
图7示出了根据实施方案的主机计算机系统与DSD之间的数据流的另一示例。
图8示出了根据实施方案的用于将数据存储在DSD中的方法。
图9示出了根据实施方案的包括用于使用块寻址来存储多个文件系统数据对象的装置的DSD。
具体实施方式
图2示出了根据实施方案的场景200。场景200包括主机计算机系统201和数据存储设备(DSD)202,该DSD经由例如光纤信道(FC)、串行ATA(SATA)、串行连接SCSI(SAS)等的数据链路203连接到主机计算机系统201。DSD 202可以位于主机计算机系统201内或位于主机计算机系统201外部,例如位于服务器机房中的单独机架上、位于云存储架构中或作为外部驱动器经由通用串行总线(USB)或Firewire而连接。
主机计算机系统201包括处理器204和易失性存储器(RAM)205。DSD 202包括控制器206,该控制器包括硬件电路系统210,例如具有x86、精简指令集计算(RISC)、高级RISC机器(ARM)或其他架构的微控制器。有利的是,控制器206包括专用硬件电路系统210以执行加密功能,例如加密和解密算法的硬件实现。这提供了以下优点:可以DSD 202的全速对向和从DSD 202的所有读取和写入进行加密和解密,使得加密和解密不会减慢主机计算机系统201与DSD 202之间的数据传送。可以在硬件中实现的示例性加密和解密算法包括具有128位、192位或256位密钥长度的Blowfish和高级加密标准(AES)。在一个示例中,控制器仅包括加密功能性(而非解密功能性),该加密功能性可以用于例如在相机捕获设备中使用的存储卡介质。控制器206在要执行解密或加密时使用专用硬件电路系统210。在这种意义上,控制器206控制专用硬件电路系统210以执行加密或解密,例如通过设置将控制器206中的处理器连接到硬件电路系统210的数字启用信号而激活硬件电路系统210。
DSD 202还包括非易失性物理数据存储介质207和读取/写入设备208以使用块寻址来存储多个文件系统数据对象。这意味着多个文件系统数据对象可由相应范围的块来寻址。这通常被称为块设备,这意味着DSD 202支持在固定大小的块、扇区或集群中读取和写入数据。例如,这些块可各自为512字节或4096字节。示例包括:具有旋转介质的块设备,例如硬盘驱动器;以及使用固态介质的块设备,例如与非(NAND)闪存卡、NAND闪存芯片和固态驱动器(SSD)。
块范围意指逻辑序列中的一起存储文件系统数据对象的多个块。块范围可以是相连的或可以具有间隙或分隔。此外,块范围可以由起始逻辑块地址(LBA)和结束LBA限定。替代地,块范围可以由起始LBA和该范围的块数目限定。还有可能的是,该范围中的最后一个块在文件系统数据对象遍布多个范围的情况下包括指向另一范围的指针。
控制器206(也被称为“设备控制器”)与DSD集成,这意味着控制器206位于容纳DSD202的包括物理数据存储介质207的所有部件的外壳内。重要的是,控制器206与DSD 202的集成意味着在不拆卸DSD 202的情况下不易从DSD 202的外部访问控制器206与存储介质和读取/写入设备208之间的信号。应注意,DSD 202的一些设计不允许在不损坏DSD 202的情况下对其进行拆卸。
控制器配置
虽然图2中的场景看起来类似于图1中的场景,但是图2中的控制器206现在被配置为以与图1中的控制器106不同的方式起作用。控制器206的配置可以借助于安装在程序存储器209上的固件而进行,因为本文描述的方法被实现为源代码、被编译并被写入到程序存储器209上作为机器代码。图2还展示了可以用于存储加密密钥的数据存储器210,如下文将描述。程序存储器209和数据存储器210可以是易失性存储器(例如,RAM)、非易失性存储器(例如,只读存储器(ROM))、电可擦除可编程只读存储器(EEPROM)、闪存等。此外,程序存储器209和数据存储器210可以集成到控制器206中,例如通过与控制器206组装到同一个板上、制造在同一个芯片/裸片内或经由数据连接而连接到控制器206。还有可能的是,控制器206将存储介质207用作数据存储器210和/或程序存储器209。
控制器206执行程序代码(其存储在程序存储器209上),并且因此通过控制加密硬件电路系统210而对要存储在存储介质207上的数据进行加密。控制器206还通过控制加密硬件电路系统210基于加密密钥而对数据(其存储在存储介质上)进行解密。控制器206包括被配置为对数据进行加密和解密的硬件电路系统210,这意味着例如专用集成电路(ASIC)实现或加密算法的门级、半定制或全定制实现的电路系统可用于控制器206。然而,电路系统210的部件可以如本文所述被禁用以发送和接收加密的数据。控制器206使用加密密钥以通过针对硬件电路系统210提供对密钥的访问或通过向硬件电路系统210指示选择哪个加密密钥进行加密或解密而对数据进行加密或解密。
图3展示了根据实施方案的示例性数据存储介质300,其中块边界被示出为竖直虚线,例如限定块302(被展示为正方形)的线301。同样,每个块可以具有预定义大小,例如512字节或4096字节。为了简单起见,存储介质300被展示为矩形形状,但在旋转介质中,水平线将弯曲以围绕旋转轴线形成圆圈,而竖直线将成角度以限定“扇区”,该扇区因此在本文中用作“块”的同义词。
示例性块范围303被展示为由加粗矩形显示轮廓。在此示例中,块范围是用不同的相应加密密钥被加密,应注意,在其他示例中,整个存储介质300可以用单个加密密钥被加密。示例性块范围303是由控制器206中的硬件电路使用第一加密密钥进行加密。这由示例性块范围303的阴影图案指示。下一范围遍及存储介质300的两行延伸,并且不同的密钥被使用,这由正方形阴影图案指示。实际上,每个范围是使用不同的密钥被加密,这通常由图3中的对应阴影图案指示。应注意,块范围中的块不需要为相连的。例如,用“Key4”加密的块范围被分段成第一子范围304(单个块)和第二子范围305(四个相连块)。块被连续编号,并且文件分配表(FAT)存储指示每个文件的起始和从该块起的范围长度的块编号,该块编号可以在分段文件的子范围的情况下链接到下一起始块。当本文参考FAT时,这还应被理解为包括带有日志数据的文件系统元数据。
命令集
存储在程序存储器209上的程序代码使控制器206能够接收、解释和执行从主机计算机系统201接收的命令。例如,控制器206可以被配置为实现串行ATA(SATA)和/或ATA分组接口(ATAPI)命令集,该命令集可以从技术委员会T13获得,应注意,可以在可信计算组(TCG)Opal、SCSI和其他专有架构内实现相同的功能性。重要的是,命令集包括具有扇区的计数和起始扇区的索引的命令输入的READ SECTORS命令(应注意,“扇区”在本文中与“块”同义地使用)。应注意,存在安装于主机计算机系统101上的DSD驱动器,并且DSD驱动器使用命令集以向操作系统提供高级服务,例如文件读取功能性。在本文中公开新命令的情况下,应理解,这些命令可以并入到安装于主机计算机系统101上的DSD驱动器中,使得新命令可用于主机计算机系统101。例如,操作系统提供加密的文件读取功能,该加密的文件读取功能在文件已由与DSD 202集成的硬件电路系统210在存储该文件时加密的情况下返回该文件。
命令集可以包括来自ATA SECURITY特征集的命令集。确切地说,命令集可以包括命令SECURITY SET PASSWORD。应注意,ATA标准中的此命令并不与加密相关,而是仅与对存储介质207上的数据的访问相关。换句话说,用户数据可以纯文本(未加密的)存储,但控制器拒绝访问,直到通过SECURITY SET PASSWORD命令提供正确密码并且用SECURITY UNLOCK命令解锁设备为止。
在本公开中,SECURITY SET PASSWORD命令还可以由主机计算机系统201使用以针对每个块范围向DSD 202发送密码。然而,控制器206可以实现其他加密命令,例如SECURITYDECRYPT ON和SECURITY DECRYPT OFF。虽然这些命令并不限定主机计算机系统201是否可以访问存储介质207上的用户数据,但是这些命令限定控制器206是否对用户数据进行解密(SECURITY DECRYPT ON)或以如存储在存储介质207上的加密形式发送数据(SECURITYDECRYPT OFF),如下文进一步描述。应注意,先前提及的命令仍然可以用于根据所有数据访问来锁定/解锁数据存储设备202。
在另一示例中,控制器206计算可以被发送回到主机计算机系统201的每个文件上的散列,例如消息摘要5(MD5)。可以计算此散列以验证写入到存储介质207的数据被正确写入(例如,通过写入值、读回值并且计算散列值)。主机计算机系统201可以请求最终散列值以查看该最终散列值是否匹配原始文件散列值。此特征提供硬件加速散列,这将为在较高级别执行此功能(例如,在写入整个文件之后读取该整个文件以计算散列)的企业节省时间。其还可以是供控制器206在稍后日期计算文件上的散列值以验证文件的数据完整性的特征。散列可以位于加密的或未加密的文件数据上。这可以用SET HASH ON/OFF、READ HASHVALUE和PERFORM HASH ON BLOCK RANGE nn至mm型命令来实现。
文件分配表
每个文件系统数据对象的块范围可以在存储于数据存储器210或存储介质207上的文件分配表(FAT)中被限定。在此表中,每个文件系统数据对象由单个链接的块列表来表示。换句话说,数据存储器210存储文件系统数据对象与相应范围的块之间的关联。此外,应注意,此关联(FAT)可以例如根据FAT32格式而存储在存储介质207自身上。FAT也可以被称为“块图结构”。
文件系统数据对象包括文件、文件组、文件夹和文件夹组。在一个示例中,控制器206针对所有文件使用相同的加密密钥,而在不同的示例中,控制器206针对存储在存储介质207上的每个文件使用不同的加密密钥。在其他示例中,文件被划分为组,例如具有同一个所有者的文件组,使得具有同一个所有者的所有文件可以用相同的加密密钥被加密和解密,但具有不同所有者的文件需要不同的密钥。
应注意,FAT可以加密形式存储在数据存储器210或存储介质207上。在这种情况下,用于FAT的加密和解密的密钥被称为“卷密钥”。在许多情况下,FAT与其他文件相比是相对较小的,因此用于对FAT进行解密的计算负荷相对较低。这意味着:实际上,主机计算机系统201以及控制器206可以对FAT进行解密。因此,主机计算机系统201可以(1)发送SECURITYDECRYPT OFF命令、读取加密的FAT、用处理器204在本地对FAT进行解密并且识别用于特别请求文件的块范围,或(2)发送具有SECURITY SET PASSWORD的卷密钥(volume_key)、用SECURITY DECRYPT ON开启解密并且读取未加密的FAT。在此上下文中应注意,卷密钥可以与用于对文件系统数据对象进行加密的加密密钥相同或不同。
从控制器206的角度来看,数据存储器210存储文件系统数据对象与相应范围的块(FAT)之间的关联。文件系统数据对象与相应范围的块之间的关联是用卷密钥被加密。控制器206接着接收对FAT的请求并将FAT发送到主机计算机系统201以使该主机计算机系统能够基于FAT确定块范围。对FAT的请求可以是标准读取命令(READ SECTORS),其中起始块是FAT的预定义起始,例如逻辑块地址(LBA)65,并且块数目是FAT的大小。
如本文更详细地描述,控制器206接着从主机计算机系统201接收数据密钥(其可以与卷密钥相同)和块范围的指示(如由主机计算机系统201基于FAT所确定)。在这种意义上,主机计算机系统201维护与块范围相关联的文件结构。最后,控制器206使用数据密钥以对存储在块范围中的文件系统数据对象进行解密,并将解密的文件系统数据对象发送到主机计算机系统。
在一个示例中,控制器206以解密形式发送FAT。也就是说,控制器206接收卷密钥,使用卷密钥对FAT进行解密,并将FAT以解密形式发送到主机计算机系统。主机计算机系统201接着可以通过使用每个文件的完整路径查找块范围而使用FAT来确定文件的块范围。在另一示例中,控制器206以加密形式发送FAT,并且主机计算机系统201使用卷密钥对FAT进行解密。
发送解密的数据
图4示出了根据实施方案的其中设备控制器206以解密形式发送数据(其存储在存储介质207上)的一个示例。应注意,控制器206可以提供发送加密的数据和解密的数据的两个功能性。这些可以发生在不同的时间,并且可以借助于如本文所述的从主机计算机接收的命令通过解密电路系统的激活和停用而被控制。控制器206可以从数据存储器210获得必要的加密密钥。控制器206还可能已经用例如SECURITY SET PASSWORD 401的先前命令从主机计算机系统201接收加密密钥,并且将该密钥保存在数据存储器210上。接着,控制器206从主机计算机系统201接收对解密的文件系统数据对象的请求402。此请求可以是用于读取块范围的标准SATA命令,例如READ SECTORS。作为响应,控制器206例如通过从读取请求中提取块编号来识别块范围中的其中存储有文件系统数据对象的一个范围。接着,控制器206通过使用来自步骤401的最后接收的密钥或来自所存储的密钥列表的密钥来基于块范围中的一个范围而获得不同的加密密钥403中的一个加密密钥。控制器206接着可以使用获得的加密密钥对存储在存储介质上的文件系统数据对象进行解密404,并且将解密的文件系统数据对象405发送到主机计算机系统201。
应注意,可以存在可以各自对不同文件系统数据对象进行加密的多个不同加密密钥,如图3中所展示。这意味着DSD 202可以支持每文件加密。这种每文件加密将类似于主机系统201的处理器204进行的文件加密,但由于与DSD 202集成的加密和解密算法的硬件实现而具有硬件加速的优点。因此,主机计算机系统201可以维护每个文件具有一个密钥的密钥列表。
发送加密的数据
图5示出了根据实施方案的其中控制器206以如数据存储在存储介质207上的加密形式发送数据(其存储在存储介质207上)的另一示例。更确切地说,控制器206接收并执行来自命令集的命令,该命令集如上所述包括用于停用对存储在存储介质上的数据的解密的命令(SECURITY DECRYPT OFF)501。此命令使控制器206响应于读取请求502而将文件系统数据对象以如存储在存储介质207上的加密形式发送503到主机计算机系统201。在另一示例中,默认情况是控制器206发送加密的数据而无需命令。在又一示例中,控制器206不具有对任何数据进行解密的能力,并且因此可以仅发送加密的数据。有利的是,攻击者无法通过拦截DSD 202与主机计算机系统201之间的通信来窃取任何未加密的数据。主机计算机系统201可以通过例如电子邮件或云存储的不安全信道发送加密的数据,并且接收系统可以通过将数据存储在另一存储介质上并激活解密而对数据进行解密。在图5所示的示例中,控制器206仍然可以提供硬件加速加密。
应注意,整个磁盘可以加密形式从一个磁盘发送到另一磁盘。这将会用于磁盘克隆以及通过网络将整个内容传送到另一计算机。
接收加密的数据
接收系统可以是与图2中所展示的DSD类似的DSD,因此对于以下描述,假设DSD202从另一DSD接收加密的文件系统数据对象(该DSD与该另一DSD之间具有相应主机计算机系统)。因此,图6展示了根据实施方案的作为接收DSD的DSD 202并且控制器206再次被配置为接收并执行来自命令集的命令。然而,现在,命令集包括用于激活对存储在存储介质上的数据的解密的命令。接收DSD 202接收601加密的文件系统数据对象,该加密的文件系统数据对象已例如由发送DSD在接收DSD外部加密。重要的是应注意,文件系统数据对象不由主机计算机系统或另一第三方计算机系统加密。相反,文件系统数据对象已由另一DSD加密,即由与发送DSD集成的硬件电路系统210加密。这确保了数据始终被加密,并且不以未加密形式传输。
控制器206将加密的文件系统数据对象以加密形式存储602在存储介质207上。在此阶段,数据与控制器206首先对数据进行加密的情况相同(假设使用相同的密钥)。控制器206从主机计算机系统接收603该密钥。例如,已发送加密的数据的一方还已经经由单独信道向主机计算机系统201提供对应密钥,该主机计算机系统将密钥转发到DSD 201。
控制器206还接收用于激活对存储在存储介质上的数据的解密的命令604。这使控制器206响应于数据请求而由与DSD集成的设备控制器的硬件电路系统210对存储介质上的文件系统数据对象进行解密605。为了进行此解密,在步骤603中,控制器206使用从主机计算机系统接收的加密密钥。最后,控制器206将文件系统数据对象以解密形式发送606到主机计算机系统。
具有或不具有块范围的读取请求
关于将文件系统数据对象映射到块范围存在不同的选项。在大多数情况下,DSD202存储例如文件的文件系统数据对象与块范围之间的关联。示例包括文件分配表和块图结构。主机计算机系统201或控制器206可以使用此关联。在一个示例中,主机计算机系统201执行映射,这意味着来自主机计算机系统201的读取请求已根据标准ATA命令集而包括块范围的指示。控制器206通常在接收到用于停用对存储在数据存储介质上的数据的解密的命令之后接收该读取请求。作为响应,控制器206不对数据进行解密,但以如存储在存储介质上的加密形式发送多个文件系统数据对象中的存储在块范围中的一个文件系统数据对象。
在另一示例中,控制器206执行映射,这意味着控制器206从主机计算机系统接收对加密的文件系统数据对象的请求。此请求例如通过提供文件的完整路径而非块范围来识别文件系统数据对象。因此,控制器206识别块范围中的其中所请求的加密的文件系统数据对象存储在存储介质上的一个范围。例如,控制器206通过查询FAT中的所存储的关联以找到第一块和块数目来实现这一点。控制器206接着将文件系统数据对象(其存储在所识别的块范围中)以如存储在存储介质上的加密形式发送到主机计算机系统。
密钥生成
在一个示例中,控制器206生成包括公共密钥和私有密钥的不对称密钥对。控制器206可以包括用于生成新密钥的电路系统或软件,该新密钥可以是对称的或不对称的。控制器206接着经由数据链路203将公共密钥发送到主机计算机系统201,其中该公共密钥存储在易失性存储器205上。此公共密钥被称为与存储在DSD 202上的对应私有密钥相关联。公共密钥是由控制器206通过执行椭圆曲线加密(ECC)基元ECC-Pub({私有密钥})来生成的。(回想一下,虽然出于计算效率和安全性的原因,在本文中将椭圆曲线加密用作示例,但需注意,可同样使用其他加密技术。)对应私有密钥存储在DSD 202的数据存储器210上,并且公共密钥被发送到主机计算机系统201并存储在存储器205中。主机计算机系统201被配置为使用也被称为标识符的公共密钥或生成并存储另一公共密钥,以生成对DSD 202的质询。此处应当注意,质询是独特的,因为每个质询是不同的,使得后续质询不同于任何先前的质询。如下所述,这通过将所存储的数据乘以随机盲因子来实现。接着,主机计算机系统201通过可以与数据链路203不同的通信信道而向DSD 202发送质询。例如,数据链路203可以包括有线USB连接,而主机计算机系统201与DSD 202之间的密钥通信信道是无线(例如,蓝牙)连接。
控制器206可以计算对无法由任何其他设备计算的质询的响应。更具体地说,不能够访问与存储在存储器205上的标识符对应的数据的设备无法计算正确响应。例如,控制器206使用所存储的私有密钥(其与存储在存储器205上的对应公共密钥相关联)来计算对质询的响应。正确响应接着可以用于计算加密密钥以对存储在存储介质207上的数据进行加密和解密。在一个示例中,在控制器206不对加密的数据进行解密的情况下,控制器206可以仅存储公共密钥并使用该公共密钥进行加密。在请求时,控制器206接着将加密的数据发送到具有解密所需的私有密钥的设备。例如,可以存在两个DSD,其中第一DSD生成私有/公共密钥对并仅将公共密钥发送到第二DSD(例如相机存储卡)。第二DSD控制集成硬件电路系统以使用公共密钥对数据进行加密,并且在请求时将加密的数据发送到第一DSD(可能经由主机计算机系统,包括存储卡读取器)。第一DSD接着可以使用私有密钥以对数据进行解密。
在又一示例中,主机计算机系统201生成私有/公共密钥对并将私有密钥安全地存储在非易失性存储器上。控制器206接着通过存储与存储在主机计算机系统201上的私有密钥相关联的公共密钥来登记主机计算机系统201。控制器206接着可以向主机计算机系统201发送质询,并且仅主机计算机系统201可以基于所存储的私有密钥计算正确响应。控制器206通过通信信道从主机计算机系统201接收对质询的响应。此处应当注意,如果控制器206仅验证了对质询的响应并且在成功时从存储器210读取加密密钥,则该加密密钥将以纯文本存储,这并不理想,因为这将使攻击者能够拆卸DSD 202并从存储器210读取密钥以访问存储在存储介质207上的用户内容数据。
计算密钥
因此,相反,控制器206至少部分地基于来自主机计算机系统201的响应而计算加密密钥。这意味着加密密钥不是响应的纯函数,而是还涉及其他值。加密密钥以加密形式存储在存储器210上,并且基于存储在主机计算机系统201上的私有密钥的响应使得能够计算对加密密钥进行解密的秘密。
在一个示例中,由控制器206生成并发送到主机计算机系统201的质询是基于椭圆曲线加密。这具有较短密钥的优点,导致更有效的通信和存储。此外,主机计算机系统可以在安全硬件模块内提供椭圆曲线加密的专用功能性。安全硬件模块安全地存储私有密钥并在安全硬件模块内执行加密基元,而密钥不会离开安全硬件模块并且不被发送到通用处理器核心,例如处理器204,其中密钥可能受到攻击而进行未经授权的检索。在一个实施方案中,安全硬件模块包括执行其自身微内核的单独处理器,该微内核不能由在通用处理器核心上运行的操作系统或任何程序直接访问。安全硬件模块还可包括用于存储256位椭圆曲线私有密钥的非易失性存储装置。在一个实施方案中,安全硬件模块是在一些Apple设备上可用的Secure Enclave协处理器。安全硬件模块可以位于主机计算机系统201中或位于DSD202中以分别生成和存储私有密钥。接着可以针对不同块范围的不同加密密钥中的每个加密密钥重复上述过程。主机计算机系统201和DSD 202还可以执行可以基于椭圆曲线加密(ECC-DH)的狄菲-赫尔曼(Diffie-Hellman,DH)密钥交换。
关于密钥生成的其他信息可见于2019年12月8日提交的名称为“解锁数据存储设备(Unlocking a data storage device)”的美国专利申请16/706,780中,该美国专利申请通过引用整体并入本文中。
还有可能使一个或多个密钥暂时存储在包括于DSD 202中的易失性存储器中。此“密钥高速缓存”将最小化通过数据链路203发送密钥以实现速度效率并提高安全性。主机计算机系统201可以将每个密钥称为表条目,即SET PASSWORD 1、SET PASSWORD 2、SECURITY DECRYPT ON 1、SECURITY DECRYPT ON 2等。如果DSD 202断电或DSD 202断开并且物理篡改检测电路被触发,则密钥会变得无法访问以保护DSD 202的安全性。如果DSD202处于密钥无法访问的状态,则其可以自动恢复为发送加密的数据而不接收任何密钥。在这种意义上,任何主机计算机系统可以为DSD202供电并读取加密的数据。但仅具有密钥(或能够用密钥访问DSD)的主机计算机系统可以对数据进行解密。
密钥选择
关于如何选择用于加密和解密的适当密钥存在不同的选项。在第一示例中,主机计算机系统201维护FAT,并且控制器206接收块范围的指示,例如起始块地址和块数目。控制器206接着基于所指示的块范围而选择不同加密密钥中的一个加密密钥。为此,控制器206可以维护针对每个起始块地址存储对应密钥的表。也就是说,该表针对每个文件系统数据对象具有一行,并且每行包括起始块地址和密钥。控制器206接着在表中查询所接收的起始块地址,并且使用选自表中的加密密钥以对数据进行加密。
在其他示例中,控制器206执行文件系统数据对象与如上所述的块范围之间的映射。也就是说,控制器206接收对文件系统数据对象的请求并且基于所存储的FAT确定块范围。控制器206接着基于所确定的块范围选择多个加密密钥中的一个加密密钥。此外,这可能涉及使用可以将起始块地址或文件系统数据对象的完整路径或这两者存储在具有对应密钥的行中的密钥表。因此,控制器206还可以通过查找密钥表中的完整路径而非起始块地址来选择密钥。控制器206接着使用所选择的加密密钥以对存储在所确定的块范围中的文件系统数据对象进行解密并发送解密的文件系统数据对象。
如上所述,控制器206还可以被配置为从主机计算机系统201接收不同的密钥。控制器206接着将密钥存储在DSD 202内,该DSD可以包括易失性存储器以存储不同加密密钥中的一个或多个加密密钥,使得密钥在DSD202断电时不保留在DSD 202中。控制器206可以用例如SECURITY SET PASSWORD的命令从主机计算机系统201接收不同的加密密钥。控制器206接着使用该密钥以对数据进行加密和解密,直到通过相同命令接收到不同密钥的指示为止。此外,可以仅存在单个密钥,并且控制器206使用该单个密钥以对所有文件进行加密。
在其他示例中,密钥是经由与用于发送加密的数据的通信信道不同的例如无线(例如,蓝牙)信道的通信信道被发送。此外,密钥可以相对于加密的数据在不同时间被发送,例如时间偏移,以使密钥与加密的数据解除关联。
数据流示例
图7示出了根据实施方案的展示完整数据流的另一示例。首先,主机计算机系统201通过发出SECURITY SET PASSWORD(file_key)命令来设置701每文件加密密钥。这用文件密钥来激活硬件加密模块。接着,主机计算机系统201发出702用于将文件数据以未加密形式发送到DSD 202的WRITE SECTORS命令。由于主机计算机系统201在此阶段维护FAT,因此主机计算机系统201还可以执行文件数据到块的分配并在写入命令中指定那些块或至少为起始块地址。控制器206接着用文件密钥对所接收的数据进行加密703并将加密的数据存储704在存储介质207上。数据现在被存储,并且DSD 202可以用于不相关的任务或断电。在稍后阶段,当数据需要被读取时,主机计算机系统201通过发出SECURITY DECRYPT OFF命令来停用解密705。替代地,可以默认地停用解密,因此没有必要发送命令。主机计算机系统201接着通过针对存储有FAT的预定义扇区发出READ SECTORS命令来读取706FAT表。作为响应,控制器206将加密的FAT返回707到主机计算机系统201。主机计算机系统201接着使用卷密钥(其不同于文件密钥)对FAT进行解密708。替代地,主机计算机系统201可以激活解密并以解密形式读取FAT。
根据解密的FAT,主机计算机系统201现在可以针对特定文件找到所需的块709并通过针对那些块发出READ SECTORS命令来读取那些块710。控制器206通过将加密的文件数据发送711回到主机计算机系统201来作出响应。此加密的文件数据现在可以存储在其他地方或通过不安全通信信道发送。由于文件密钥是可用的(当然具有受限访问),因此加密的文件数据可以由具有该密钥的经授权的实体解密。
方法
图8示出了根据实施方案的用于将数据存储在DSD 202中的方法800。方法800可以由控制器206执行,因为方法800是在存储于程序存储器209中的程序代码中实现的,应注意,程序代码控制硬件电路系统210以执行个别命令。也就是说,程序存储器209是与DSD并与存储在其上的固件集成的非暂时性计算机可读存储介质,该固件在由DSD的控制器执行时使该控制器执行方法800的步骤。
确切地说,该方法包括使用块寻址来存储801多个文件系统数据对象。多个文件系统数据对象可由如图3中所展示的相应范围的块来寻址。控制器206通过控制与DSD集成的硬件电路系统210来使用802加密密钥以对要存储在存储介质上的数据进行加密。不同加密密钥中的一个加密密钥用于块范围中的对多个文件系统数据对象中的一个文件系统数据对象进行寻址的相应范围。此外,控制器206从主机计算机系统接收803对加密的文件系统数据对象的请求,并且识别804块范围中的其中所请求的加密的文件系统数据对象存储在存储介质上的一个范围。接着,控制器206将存储在所识别的块范围中的文件系统数据对象以如存储在存储介质上的加密形式发送805到主机计算机系统。
数据存储设备
图9示出了根据实施方案的DSD 900,该DSD包括用于使用块寻址来存储多个文件系统数据对象的装置901。多个文件系统数据对象可由如图3中所展示的相应范围的块来寻址。用于存储的装置901可以包括旋转存储介质(例如磁性硬盘)、固态存储介质(例如位于固态驱动器(SSD)中)或其他合适的存储介质。DSD 900还包括用于由与DSD 900集成的硬件电路系统210使用加密密钥以对要存储在用于存储的装置901上的数据进行加密的装置902。不同的加密密钥可以用于对多个文件系统数据对象中的一个文件系统数据对象进行寻址的相应范围的块。DSD 900还包括用于从主机计算机系统接收对加密的文件系统数据对象的请求的装置903、用于识别块范围中的其中所请求的加密的文件系统数据对象存储在存储介质上的一个范围的装置904,以及用于将存储在所识别的块范围中的文件系统数据对象以如存储在存储介质上的加密形式发送到主机计算机系统的装置905。装置902、903、904和905可以是数据存储设备控制器,该数据存储设备控制器包括与硬件电路集成或连接到硬件电路的微处理器,该硬件电路在硬件中实现加密和解密算法。装置902、903、904和905可以集成和实现在例如处理器的单个电子设备中。此外,装置902可以被实现为单独的硬件电路系统,而装置903、904和905一起实现在一个处理器上。例如ASIC、现场可编程门阵列(FPGA)或其他架构的其他实现同样可以用于装置902、903、904和905。
本领域的技术人员应当理解,在不脱离本公开的广泛一般范围的情况下,可对上述实施方案作出许多变型和/或修改。本发明的实施方案因此将在所有方面被认为是示例性的而非限制性的。
Claims (20)
1.一种数据存储设备,包括:
非易失性存储介质,所述非易失性存储介质用于使用块寻址来存储多个文件系统数据对象,所述多个文件系统数据对象能够由相应范围的块来寻址;和
设备控制器,所述设备控制器与所述数据存储设备集成并且包括硬件电路系统,所述硬件电路系统被配置为:
基于加密密钥而对要存储在所述存储介质上的数据进行加密;
其中所述设备控制器被配置为:
从主机计算机系统接收对加密的文件系统数据对象的请求;
识别所述块范围中的其中所请求的加密的文件系统数据对象存储在所述存储介质上的一个范围;以及
将存储在所识别的块范围中的所述文件系统数据对象以如存储在所述存储介质上的加密形式发送到所述主机计算机系统。
2.根据权利要求1所述的数据存储设备,其中所述设备控制器还被配置为控制所述硬件电路系统以针对所述块范围使用单个加密密钥而对要存储在所述存储介质上的所述数据进行加密。
3.根据权利要求2所述的数据存储设备,其中所述设备控制器还被配置为控制所述硬件电路系统以针对一个卷或一个分区使用单个加密密钥而对要存储在所述存储介质上的所述数据进行加密。
4.根据权利要求1所述的数据存储设备,其中
所述设备控制器还被配置为:
控制所述硬件电路系统以对存储在所述存储介质上的数据进行解密,以及
接收并执行来自命令集的命令,并且
所述命令集包括用于停用对存储在所述存储介质上的所述数据的解密以使所述设备控制器将存储在所识别的块范围中的所述文件系统数据对象以如存储在所述存储介质上的加密形式发送到所述主机计算机系统的命令。
5.根据权利要求4所述的数据存储设备,其中所述设备控制器还被配置为执行在接收到所述用于停用对存储在所述存储介质上的所述数据的解密的命令之后从所述主机计算机系统接收对所述加密的文件系统数据对象的所述请求的步骤。
6.根据权利要求1所述的数据存储设备,其中所述多个文件系统数据对象是以下中的一者或多者:
文件;
文件组;和
目录。
7.根据权利要求1所述的数据存储设备,其中所述设备控制器还被配置为:
从主机文件系统接收块范围的指示,所述主机文件系统维护与所述块范围相关联的文件结构;
控制所述硬件电路系统以使用所述加密密钥对数据进行加密;以及
将所述数据以加密形式写入到所述存储介质的所述块范围。
8.根据权利要求1所述的数据存储设备,所述数据存储设备还包括数据存储装置以存储所述文件系统数据对象与所述相应范围的块之间的关联,其中:
所述文件系统数据对象与所述相应范围的块之间的所述关联是用加密密钥进行加密的,并且
所述设备控制器还被配置为:
接收对所述文件系统数据对象与所述相应范围的块之间的所述关联的请求;
将所述文件系统数据对象与所述相应范围的块之间的所述关联发送到主机计算机系统以使所述主机计算机系统能够基于所存储的关联而确定块范围;
从主机文件系统接收块范围的指示,所述主机文件系统维护与所述块范围相关联的文件结构;以及
将存储在所述块范围中的所述文件系统数据对象以如存储在所述存储介质上的加密形式发送到所述主机计算机系统。
9.根据权利要求8所述的数据存储设备,其中所述设备控制器还被配置为:
接收所述加密密钥;
控制所述硬件电路系统以使用所述加密密钥对所述文件系统数据对象与所述相应范围的块之间的所述关联进行解密;以及
将所述文件系统数据对象与所述相应范围的块之间的所述关联以解密形式发送到所述主机计算机系统。
10.根据权利要求1所述的数据存储设备,其中所述设备控制器还被配置为:
控制所述硬件电路系统以基于不同加密密钥而对要存储在所述存储介质上的数据进行加密;以及
将所述不同加密密钥中的每个密钥用于所述块范围中的对相应文件系统数据对象进行寻址的一个范围。
11.根据权利要求1所述的数据存储设备,其中所述设备控制器还被配置为控制所述硬件电路系统以计算所述文件系统数据对象的散列值并将所述散列值发送到所述主机计算机系统以供验证。
12.根据权利要求1所述的数据存储设备,其中用于对要存储在所述存储介质上的所述数据进行加密的所述加密密钥是与存储在所述数据存储设备外部的私有密钥相关联的公共密钥。
13.根据权利要求12所述的数据存储设备,所述数据存储设备还包括用于存储所述加密密钥的易失性存储器。
14.根据权利要求1所述的数据存储设备,其中所述设备控制器还被配置为:
从所述主机计算机系统接收所述加密密钥的指示;以及
控制所述硬件电路系统以使用所述加密密钥对数据进行加密,直到接收到另一加密密钥的指示为止。
15.根据权利要求1所述的数据存储设备,其中所述设备控制器还被配置为:
接收并执行来自命令集的命令,其中所述命令集包括用于激活对存储在所述存储介质上的所述数据的解密的命令;
接收已在所述数据存储设备外部被加密的加密的文件系统数据对象;
将所述加密的文件系统数据对象以加密形式存储在所述存储介质上;
从所述主机计算机系统接收所述加密密钥;
接收所述用于激活对存储在所述存储介质上的所述数据的解密的命令;
控制所述硬件电路系统以使用从所述主机计算机系统接收的所述加密密钥对所述存储介质上的所述文件系统数据对象进行解密;以及
将所述文件系统数据对象以解密形式发送到所述主机计算机系统。
16.一种用于将数据存储在数据存储设备中的方法,所述方法包括:
使用块寻址将多个文件系统数据对象存储在存储介质上,所述多个文件系统数据对象能够由相应范围的块来寻址;
由与所述数据存储设备集成的硬件电路系统使用加密密钥以对要存储在所述存储介质上的数据进行加密;
从主机计算机系统接收对加密的文件系统数据对象的请求;
识别所述块范围中的其中所请求的加密的文件系统数据对象存储在所述存储介质上的一个范围;以及
将存储在所识别的块范围中的所述文件系统数据对象以如存储在所述存储介质上的加密形式发送到所述主机计算机系统。
17.根据权利要求16所述的方法,还包括:
接收并执行来自命令集的命令,所述命令集包括用于激活对存储在所述存储介质上的所述数据的解密的命令;
接收已在所述数据存储设备外部被加密的加密的文件系统数据对象;
将所述加密的文件系统数据对象以加密形式存储在所述存储介质上;
从主机计算机系统接收所述加密密钥;
接收所述用于激活对存储在所述存储介质上的所述数据的解密的命令;
由与所述数据存储设备集成的所述硬件电路系统使用从所述主机计算机系统接收的所述加密密钥对所述存储介质上的所述文件系统数据对象进行解密;以及
将所述文件系统数据对象以解密形式发送到所述主机计算机系统。
18.根据权利要求17所述的方法,还包括:
接收并执行来自命令集的命令,所述命令集包括用于停用对存储在所述存储介质上的所述数据的解密的命令;
在接收到所述用于停用对存储在所述存储介质上的所述数据的解密的命令之后,从主机计算机系统接收对加密的文件系统数据对象的请求,所述请求包括块范围的指示;以及
以如存储在所述存储介质上的加密形式发送存储在所述块范围中的所述文件系统数据对象。
19.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质与数据存储设备并与存储在其上的固件集成,所述固件在由所述数据存储设备的控制器执行时使所述控制器执行以下步骤:
使用块寻址来存储多个文件系统数据对象,所述多个文件系统数据对象能够由相应范围的块来寻址;
由与所述数据存储设备集成的硬件电路系统使用加密密钥以对要存储在所述存储介质上的数据进行加密;
从主机计算机系统接收对加密的文件系统数据对象的请求;
识别所述块范围中的其中所请求的加密的文件系统数据对象存储在所述存储介质上的一个范围;以及
将存储在所识别的块范围中的所述文件系统数据对象以如存储在所述存储介质上的加密形式发送到所述主机计算机系统。
20.一种数据存储设备,包括:
用于使用块寻址来存储多个文件系统数据对象的装置,所述多个文件系统数据对象能够由相应范围的块来寻址;
用于由与所述数据存储设备集成的硬件电路系统使用加密密钥以对要存储在所述用于存储的装置上的数据进行加密的装置;
用于从主机计算机系统接收对加密的文件系统数据对象的请求的装置;
用于识别所述块范围中的其中所请求的加密的文件系统数据对象存储在所述用于存储的装置上的一个范围的装置;和
用于将存储在所识别的块范围中的所述文件系统数据对象以如存储在所述用于存储的装置上的加密形式发送到所述主机计算机系统的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063093738P | 2020-10-19 | 2020-10-19 | |
US63/093,738 | 2020-10-19 | ||
US17/218,180 | 2021-03-31 | ||
US17/218,180 US11995223B2 (en) | 2020-10-19 | 2021-03-31 | Data storage device encryption |
PCT/US2021/038168 WO2022086603A1 (en) | 2020-10-19 | 2021-06-21 | Data storage device encryption |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114730342A true CN114730342A (zh) | 2022-07-08 |
Family
ID=81185166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180006733.4A Pending CN114730342A (zh) | 2020-10-19 | 2021-06-21 | 数据存储设备加密 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11995223B2 (zh) |
CN (1) | CN114730342A (zh) |
DE (1) | DE112021000150T5 (zh) |
WO (1) | WO2022086603A1 (zh) |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6853727B1 (en) * | 2000-03-23 | 2005-02-08 | International Business Machines Corporation | File table copy protection for a storage device when storing streaming content |
US7549044B2 (en) * | 2003-10-28 | 2009-06-16 | Dphi Acquisitions, Inc. | Block-level storage device with content security |
JP4728060B2 (ja) | 2005-07-21 | 2011-07-20 | 株式会社日立製作所 | ストレージ装置 |
US20080114990A1 (en) * | 2006-11-10 | 2008-05-15 | Fuji Xerox Co., Ltd. | Usable and secure portable storage |
JP2009003676A (ja) * | 2007-06-21 | 2009-01-08 | Sony Corp | 電子機器、および情報処理方法 |
US8032689B2 (en) | 2007-12-18 | 2011-10-04 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques for data storage device virtualization |
US20090172393A1 (en) | 2007-12-31 | 2009-07-02 | Haluk Kent Tanik | Method And System For Transferring Data And Instructions Through A Host File System |
US8364983B2 (en) | 2008-05-08 | 2013-01-29 | Microsoft Corporation | Corralling virtual machines with encryption keys |
GB2460275B (en) | 2008-05-23 | 2012-12-19 | Exacttrak Ltd | A Communications and Security Device |
US8341430B2 (en) | 2008-10-03 | 2012-12-25 | Microsoft Corporation | External encryption and recovery management with hardware encrypted storage devices |
TW201015322A (en) * | 2008-10-08 | 2010-04-16 | Ee Solutions Inc | Method and system for data secured data recovery |
EP2710755B1 (en) | 2011-05-20 | 2018-08-01 | Citrix Systems Inc. | Securing encrypted virtual hard disks |
US9665501B1 (en) | 2013-06-18 | 2017-05-30 | Western Digital Technologies, Inc. | Self-encrypting data storage device supporting object-level encryption |
US20150242640A1 (en) | 2014-02-24 | 2015-08-27 | Western Digital Technologies, Inc. | Encryption key selection |
US10063257B1 (en) | 2015-11-03 | 2018-08-28 | Western Digital Technologies, Inc. | Data storage device encoding and interleaving codewords to improve trellis sequence detection |
US9620227B1 (en) | 2016-01-08 | 2017-04-11 | Western Digital Technologies, Inc. | Characterizing and operating a non-volatile memory device |
US10095445B2 (en) | 2016-03-29 | 2018-10-09 | Western Digital Technologies, Inc. | Systems and methods for offloading processing from a host to storage processing units using an interconnect network |
WO2017194473A1 (en) * | 2016-05-09 | 2017-11-16 | Bio-Itech Bv | Electronic laboratory notebook system and method |
US10452558B2 (en) | 2017-06-30 | 2019-10-22 | Western Digital Technologies, Inc. | Address range mapping for storage devices |
US20190042781A1 (en) | 2017-08-04 | 2019-02-07 | Bitdefender IPR Management Ltd. | Secure Storage Device |
US10387066B1 (en) | 2018-04-18 | 2019-08-20 | EMC IP Holding Company LLC | Providing data deduplication in a data storage system with parallelized computation of crypto-digests for blocks of host I/O data |
JP7109992B2 (ja) | 2018-05-22 | 2022-08-01 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11615214B2 (en) * | 2019-07-15 | 2023-03-28 | Micron Technology, Inc. | Cryptographic key management |
TWI733375B (zh) * | 2020-03-17 | 2021-07-11 | 群聯電子股份有限公司 | 資料轉移方法與記憶體儲存裝置 |
-
2021
- 2021-03-31 US US17/218,180 patent/US11995223B2/en active Active
- 2021-06-21 CN CN202180006733.4A patent/CN114730342A/zh active Pending
- 2021-06-21 WO PCT/US2021/038168 patent/WO2022086603A1/en active Application Filing
- 2021-06-21 DE DE112021000150.7T patent/DE112021000150T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
DE112021000150T5 (de) | 2022-07-28 |
WO2022086603A1 (en) | 2022-04-28 |
US11995223B2 (en) | 2024-05-28 |
US20220121781A1 (en) | 2022-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8370645B2 (en) | Protection of security parameters in storage devices | |
US8464073B2 (en) | Method and system for secure data storage | |
US8286004B2 (en) | Saving encryption keys in one-time programmable memory | |
CN102945355B (zh) | 基于扇区映射的快速数据加密策略遵从 | |
US8392727B2 (en) | System and method for transparent disk encryption | |
CN102855452B (zh) | 基于加密组块的快速数据加密策略遵从 | |
CN108139984B (zh) | 安全子系统 | |
US20100058066A1 (en) | Method and system for protecting data | |
TW200830830A (en) | Hard disc streaming cryptographic operations with embedded authentication | |
US20130191636A1 (en) | Storage device, host device, and information processing method | |
US20220123932A1 (en) | Data storage device encryption | |
CN113536330A (zh) | 存储装置及其数据清理方法 | |
AU2023201855A1 (en) | Module and method for authenticating data transfer between a storage device and a host device | |
US11995223B2 (en) | Data storage device encryption | |
US11863664B2 (en) | Method of performing key exchange for security operation in storage device and method of performing authority transfer in storage device using the same | |
US11088832B2 (en) | Secure logging of data storage device events | |
KR20230082807A (ko) | 스토리지 장치 및 전자 시스템의 동작 방법 |
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 |