一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据存储设备加密的制作方法

2022-07-14 02:34:08 来源:中国专利 TAG:


1.本公开的各方面大体上涉及数据存储设备硬件,并且更具体地说涉及用于对存储在数据存储设备上的数据进行加密的系统和方法。


背景技术:

2.图1示出了典型场景100,该典型场景包括主机计算机系统101和数据存储设备(dsd)102,该dsd经由例如光纤信道(fc)、串行高级技术附件(sata)、串行连接小型计算机系统接口(sas)等的数据链路103连接到主机计算机系统101。dsd 102可以位于主机计算机系统101内或位于主机计算机系统101外部,例如位于服务器机房中的单独机架上。
3.主机计算机系统101还包括处理器104和易失性存储器,例如随机存取存储器(ram)105。主机计算机系统101可以是台式或膝上型计算机、移动设备或位于数据中心的服务器,并且可以具有安装在其上的例如microsoft windows或linux的操作系统。主机计算机系统101还可以是虚拟机或云实例或任何其他计算设备。dsd 102包括控制器106、物理数据存储介质107和读取/写入设备108。虽然当前示例描述了具有旋转介质的硬盘驱动器(hdd),但是本公开同样适用于其他存储介质,例如在固态驱动器(ssd)或磁带中发现的存储介质。
4.数据存储的一个难点是,dsd 102可以被物理地移除或窃取并安装在不同的主机计算机中以检索存储在dsd 102上的敏感信息。因此,重要的是提供加密的“静态数据”。
5.一种用于提供加密的静态数据的方法是全磁盘硬件加密。为此,控制器106包括执行例如高级加密标准(aes)的加密功能的硬件电路系统。控制器106接着可以对其经由数据链路103接收的所有数据进行加密,并将加密的数据存储在存储介质107上。反过来也一样,控制器106从存储介质107检索加密的数据,对该数据进行解密,并通过数据链路103发送解密的数据。
6.处理器104接着可以执行软件加密以对从dsd 102接收的数据进行加密,这在例如该数据接着通过不安全信道发送到不同计算机系统的情况下可以是有用的。然而,这不是端对端解决方案,因为dsd与主机计算机系统101之间的数据链路103以纯文本(即未加密的)携带数据。因此,有可能使攻击者窃听数据链路103并获得对未加密的数据的未经授权的访问。


技术实现要素:

7.通过在数据存储设备(dsd)中定义块范围并为每个块范围分配加密密钥,提供硬件加密的改进。这样,能够以呈加密形式的多个块的形式检索跨越限定的块范围的单个文件。接着可以跨不安全链路发送块并将其存储在第二计算机系统上。第二计算机系统的解密硬件接着可以在需要时对块进行解密。
8.本文公开了一种数据存储设备,包括:
9.非易失性存储介质,该非易失性存储介质用于使用块寻址来存储多个文件系统数
据对象,该多个文件系统数据对象能够由相应范围的块来寻址;和
10.设备控制器,该设备控制器与该数据存储设备集成并且包括硬件电路系统,该硬件电路系统被配置为:
11.基于不同的加密密钥而对要存储在该存储介质上的数据进行加密,以及
12.针对该块范围中的对相应文件系统数据对象进行寻址的一个块范围使用该不同加密密钥中的每个密钥。
13.在一些实施方案中,该设备控制器还被配置为:
14.从主机计算机系统接收对解密的文件系统数据对象的请求;
15.识别该块范围中的存储该文件系统数据对象的一个块范围;
16.基于该块范围中的该一个范围获得该不同加密密钥中的一个密钥;
17.控制该硬件电路系统,以使用获得的加密密钥对存储在该存储介质上的该文件系统数据对象进行解密;以及
18.将该解密的文件系统数据对象发送到该主机计算机系统。
19.在一些实施方案中,该设备控制器还被配置为:
20.控制该硬件电路系统以对存储在该存储介质上的数据进行解密,
21.以及
22.接收并执行来自命令集的命令,并且
23.该命令集包括用于停用对存储在该存储介质上的数据的解密以使该设备控制器将该多个文件系统数据对象中的一个文件系统数据对象以如存储在该存储介质上的加密形式发送到该主机计算机系统的命令。
24.在一些实施方案中,该设备控制器还被配置为:
25.在接收到用于停用对存储在该数据存储介质上的该数据的解密的命令之后,从主机计算机系统接收对加密的文件系统数据对象的请求,该请求包括块范围的指示;以及
26.以如存储在该存储介质上的加密形式发送存储在该块范围中的该多个文件系统数据对象中的一个文件系统数据对象。
27.在一些实施方案中,该设备控制器还被配置为:
28.从主机计算机系统接收对加密的文件系统数据对象的请求;
29.识别所述块范围中的其中所请求的加密的文件系统数据对象存储在所述存储介质上的一个范围;和
30.将存储在所识别的块范围中的所述文件系统数据对象以如存储在所述存储介质上的加密形式发送到所述主机计算机系统。
31.在一些实施方案中,该文件系统数据对象是以下中的一者或多者:
32.文件;
33.文件组;和
34.目录。
35.在一些实施方案中,该设备控制器还被配置为:
36.从主机文件系统接收块范围的指示,所述主机文件系统维护与所述块范围相关联的文件结构;
37.基于该指示的块范围来选择该不同加密密钥中的一个密钥;和
38.控制该硬件电路系统以使用选择的加密密钥对数据进行加密。
39.在一些实施方案中,该数据存储设备还包括数据存储装置以存储该文件系统数据对象与该相应范围的块之间的关联,
40.其中:
41.该文件系统数据对象与相应块范围之间的关联是用不同加密密钥中的第一密钥进行加密的,并且
42.所述设备控制器还被配置为:
43.接收对该文件系统数据对象与该相应的块范围之间的关联的请求;
44.将所述文件系统数据对象与所述相应范围的块之间的所述关联发送到主机计算机系统以使所述主机计算机系统能够基于所存储的关联而确定块范围;
45.从该主机计算机系统接收该不同加密密钥中的第二密钥;
46.从主机文件系统接收块范围的指示,所述主机文件系统维护与所述块范围相关联的文件结构;
47.控制该硬件电路系统,以使用该不同加密密钥中的第二密钥对存储在该块范围中的该文件系统数据对象进行解密;和
48.将该解密的文件系统数据对象发送到该主机计算机系统。
49.在一些实施方案中,该设备控制器还被配置为:
50.接收该不同加密密钥中的第一密钥;
51.控制该硬件电路系统,以使用该不同加密密钥中的第一密钥对该文件系统数据对象与该相应的块范围之间的关联进行解密;和
52.将所述文件系统数据对象与所述相应范围的块之间的所述关联以解密形式发送到所述主机计算机系统。
53.在一些实施方案中,该数据存储设备还包括数据存储装置以存储该文件系统数据对象与该相应范围的块之间的关联,
54.其中该设备控制器还被配置为:
55.接收对文件系统数据对象的请求;
56.基于该存储的关联确定块范围;
57.基于该确定的块范围来选择该不同加密密钥中的一个密钥;
58.控制该硬件电路系统,以使用选择的加密密钥对存储在该确定的块范围中的该文件系统数据对象进行解密;和
59.发送该解密的文件系统数据对象。
60.在一些实施方案中,该设备控制器还被配置为:
61.接收对文件系统数据对象的请求;
62.基于该请求的该文件系统数据对象选择该不同加密密钥的一个密钥;
63.控制该硬件电路系统,以使用选择的加密密钥对存储在该确定的块范围中的该文件系统数据对象进行解密;和
64.发送该解密的文件系统数据对象。
65.在一些实施方案中,该设备控制器被进一步配置为从主机计算机系统接收该不同加密密钥的一个或多个密钥并将该不同加密密钥的一个或多个密钥存储在该数据存储设
备内。
66.在一些实施方案中,该数据存储设备包括易失性存储器以存储该不同加密密钥的一个或多个密钥。
67.在一些实施方案中,该设备控制器还被配置为:
68.从该主机计算机系统接收该不同加密密钥中的一个密钥的指示;
69.和
70.控制该硬件电路系统以使用该不同加密密钥中的一个密钥对数据进行加密,直到接收到该不同加密密钥中的另一加密密钥的指示为止。
71.在一些实施方案中,该设备控制器还被配置为:
72.接收并执行来自命令集的命令,其中所述命令集包括用于激活对存储在所述存储介质上的所述数据的解密的命令;
73.接收已在所述数据存储设备外部被加密的加密的文件系统数据对象;
74.将所述加密的文件系统数据对象以加密形式存储在所述存储介质上;
75.从主机计算机系统接收该不同加密密钥中的一个密钥;
76.接收所述用于激活对存储在所述存储介质上的所述数据的解密的命令;
77.控制该硬件电路系统,以使用从该主机计算机系统接收的该不同加密密钥中的一个密钥对该存储介质上的该文件系统数据对象进行解密;和
78.将所述文件系统数据对象以解密形式发送到所述主机计算机系统。
79.本文公开了一种用于将数据存储在数据存储设备中的方法,该方法包括:
80.使用块寻址将多个文件系统数据对象存储在存储介质上,所述多个文件系统数据对象能够由相应范围的块来寻址;和
81.通过与该数据存储设备集成的硬件电路系统,使用不同加密密钥的一个密钥来加密要存储在存储介质上的数据,该不同加密密钥的一个密钥用于对该多个文件系统数据对象中的一个文件系统数据对象进行寻址的该块范围中的相应一个块范围。
82.在一些实施方案中,该方法还包括:
83.接收并执行来自命令集的命令,所述命令集包括用于激活对存储在所述存储介质上的所述数据的解密的命令;
84.接收已在所述数据存储设备外部被加密的加密的文件系统数据对象;
85.将所述加密的文件系统数据对象以加密形式存储在所述存储介质上;
86.从主机计算机系统接收该不同加密密钥中的一个密钥;
87.接收所述用于激活对存储在所述存储介质上的所述数据的解密的命令;
88.通过与该数据存储设备集成的该设备控制器的硬件电路系统,使用从该主机计算机系统接收的该不同加密密钥中的一个密钥对该存储介质上的文件系统数据对象进行解密;和
89.将所述文件系统数据对象以解密形式发送到所述主机计算机系统。
90.在一些实施方案中,该方法还包括:
91.接收并执行来自命令集的命令,所述命令集包括用于停用对存储在所述存储介质上的所述数据的解密的命令;
92.在接收到用于停用对存储在该数据存储介质上的该数据的解密的命令之后,从主
机计算机系统接收对加密的文件系统数据对象的请求,该请求包括块范围的指示;以及
93.以如存储在该存储介质上的加密形式发送存储在该块范围中的该多个文件系统数据对象中的一个文件系统数据对象。
94.本文公开了一种非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质与数据存储设备并与存储在其上的固件集成,该固件在由该数据存储设备的控制器执行时使该控制器执行以下步骤:
95.使用块寻址来存储多个文件系统数据对象,所述多个文件系统数据对象能够由相应范围的块来寻址;以及
96.通过与该数据存储设备集成的硬件电路系统,使用不同加密密钥的一个密钥来加密要存储在存储介质上的数据,该不同加密密钥的一个密钥用于解决相应文件系统数据对象的该块范围中的相应一个块范围。
97.本文公开了一种数据存储设备,包括:
98.用于使用块寻址来存储多个文件系统数据对象的装置,所述多个文件系统数据对象能够由相应范围的块来寻址;以及
99.用于通过与该数据存储设备集成的硬件电路系统使用不同加密密钥的一个密钥来加密要存储在存储介质上的数据的装置,该不同加密密钥的一个密钥用于对该多个文件系统数据对象中的一个文件系统数据对象进行寻址的该块范围中的相应一个块范围。
附图说明
100.图1示出了根据现有技术并且涉及主机计算机系统和数据存储设备(dsd)的典型场景。
101.现在将参考以下附图描述示例:
102.图2示出了根据实施方案的其中dsd针对不同块范围使用不同密钥的示例。
103.图3示出了根据实施方案的具有使用不同密钥的块边界和块范围的示例性数据存储介质。
104.图4示出了根据实施方案的其中控制器以解密形式发送数据(其存储在存储介质上)的一个示例。
105.图5示出了根据实施方案的其中控制器以如数据存储在存储介质上的加密形式发送数据(其存储在存储介质上)的示例。
106.图6示出了接收加密的文件系统数据对象的接收dsd。根据实施方案,接收dsd可以在接收到适当的密钥时对文件系统数据对象进行解密。
107.图7示出了根据实施方案的主机计算机系统与dsd之间的数据流的另一示例。
108.图8示出了根据实施方案的用于将数据存储在dsd中的方法。
109.图9示出了根据实施方案的包括用于使用块寻址来存储多个文件系统数据对象的装置的dsd。
具体实施方式
110.图2示出了根据实施方案的场景200。场景200包括主机计算机系统201和数据存储设备(dsd)202,该dsd经由例如光纤信道(fc)、串行ata(sata)、串行连接scsi(sas)等的数
据链路203连接到主机计算机系统201。dsd 202可以位于主机计算机系统201内或位于主机计算机系统201外部,例如位于服务器机房中的单独机架上、位于云存储架构中或作为外部驱动器经由通用串行总线(usb)或firewire而连接。
111.主机计算机系统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。
112.dsd 202还包括非易失性物理数据存储介质207和读取/写入设备208以使用块寻址来存储多个文件系统数据对象。这意味着多个文件系统数据对象可由相应范围的块来寻址。这通常被称为块设备,这意味着dsd 202支持在固定大小的块、扇区或集群中读取和写入数据。例如,这些块可各自为512字节或4096字节。示例包括:具有旋转介质的块设备,例如硬盘驱动器;以及使用固态介质的块设备,例如与非(nand)闪存卡、nand闪存芯片和固态驱动器(ssd)。
113.块范围意指逻辑序列中的一起存储文件系统数据对象的多个块。块范围可以是相连的或可以具有间隙或分隔。此外,块范围可以由起始逻辑块地址(lba)和结束lba限定。替代地,块范围可以由起始lba和该范围的块数目限定。还有可能的是,该范围中的最后一个块在文件系统数据对象遍布多个范围的情况下包括指向另一范围的指针。
114.控制器206(也被称为“设备控制器”)与dsd集成,这意味着控制器206位于容纳dsd 202的包括物理数据存储介质207的所有部件的外壳内。重要的是,控制器206与dsd 202的集成意味着在不拆卸dsd 202的情况下不易从dsd 202的外部访问控制器206与存储介质和读取/写入设备208之间的信号。应注意,dsd 202的一些设计不允许在不损坏dsd 202的情况下对其进行拆卸。
115.控制器配置
116.虽然图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。
117.控制器206执行程序代码(其存储在程序存储器209上),并且因此通过控制加密硬件电路系统210而对要存储在存储介质207上的数据进行加密。控制器206还通过控制加密硬件电路系统210基于不同加密密钥而对数据(其存储在存储介质上)进行解密。更具体地讲,该控制器206针对该块范围中的对相应文件系统数据对象进行寻址的一个块范围使用该不同加密密钥中的每个密钥。控制器206包括被配置为对数据进行加密和解密的硬件电路系统210,这意味着例如专用集成电路(asic)实现或加密算法的门级、半定制或全定制实现的电路系统可用于控制器206。然而,电路系统210的部件可以如本文所述被禁用以发送和接收加密的数据。控制器206使用加密密钥以通过针对硬件电路系统210提供对密钥的访问或通过向硬件电路系统210指示选择哪个加密密钥进行加密或解密而对数据进行加密或解密。
118.图3展示了根据实施方案的示例性数据存储介质300,其中块边界被示出为竖直虚线,例如限定块302(被展示为正方形)的线301。同样,每个块可以具有预定义大小,例如512字节或4096字节。为了简单起见,存储介质300被展示为矩形形状,但在旋转介质中,水平线将弯曲以围绕旋转轴线形成圆圈,而竖直线将成角度以限定“扇区”,该扇区因此在本文中用作“块”的同义词。
119.示例性块范围303被展示为由加粗矩形显示轮廓。示例性块范围303是由控制器206中的硬件电路系统使用第一加密密钥进行加密。这由示例性块范围303的阴影图案指示。下一范围遍及存储介质300的两行延伸,并且不同的密钥被使用,这由正方形阴影图案指示。实际上,每个范围是使用不同的密钥被加密,这通常由图3中的对应阴影图案指示。应注意,块范围中的块不需要为相连的。例如,用“key4”加密的块范围被分段成第一子范围304(单个块)和第二子范围305(四个相连块)。块被连续编号,并且文件分配表(fat)存储指示每个文件的起始和从该块起的范围长度的块编号,该块编号可以在分段文件的子范围的情况下链接到下一起始块。当本文参考fat时,这还应被理解为包括带有日志数据的文件系统元数据。
120.命令集
121.存储在程序存储器209上的程序代码使控制器206能够接收、解释和执行从主机计算机系统201接收的命令。例如,控制器206可以被配置为实现串行ata(sata)和/或ata分组接口(atapi)命令集,该命令集可以从技术委员会t13获得,应注意,可以在可信计算组(tcg)opal、scsi和其他专有架构内实现相同的功能性。重要的是,命令集包括具有扇区的计数和起始扇区的索引的命令输入的读取扇区命令(应注意,“扇区”在本文中与“块”同义地使用)。应注意,存在安装于主机计算机系统101上的dsd驱动器,并且dsd驱动器使用命令集以向操作系统提供高级服务,例如文件读取功能性。在本文中公开新命令的情况下,应理解,这些命令可以并入到安装于主机计算机系统101上的dsd驱动器中,使得新命令可用于主机计算机系统101。例如,操作系统可提供加密文件读取功能,该加密文件读取功能在存储该文件时如同该文件已由与dsd 202集成的硬件电路系统210加密一样返回该文件。
122.命令集可以包括来自ata security特征集的命令集。确切地说,命令集可以包括命令security set password。应注意,ata标准中的此命令并不与加密相关,而是仅与对存储介质207上的数据的访问相关。换句话说,用户数据可以纯文本(未加密的)存储,但控制器拒绝访问,直到通过security set password命令提供正确密码并且用security unlock
命令解锁设备为止。
123.在本公开中,security set password命令还可以由主机计算机系统201使用以针对每个块范围向dsd 202发送密码。然而,控制器206可以实现其他加密命令,例如安全解密开和安全解密关。虽然这些命令并不限定主机计算机系统201是否可以访问存储介质207上的用户数据,但是这些命令限定控制器206是否对用户数据进行解密(安全解密开)或以如存储在存储介质207上的加密形式发送数据(安全解密关),如下文进一步描述。应注意,先前提及的命令仍然可以用于根据所有数据访问来锁定/解锁数据存储设备202。
124.在另一示例中,控制器206计算可以被发送回到主机计算机系统201的每个文件上的散列,例如消息摘要5(md5)。可以计算此散列以验证写入到存储介质207的数据被正确写入(例如,通过写入值、读回值并且计算散列值)。主机计算机系统201可以请求最终散列值以查看该最终散列值是否匹配原始文件散列值。此特征提供硬件加速散列,这将为在较高级别执行此功能(例如,在写入整个文件之后读取该整个文件以计算散列)的企业节省时间。其还可以是供控制器206在稍后日期计算文件上的散列值以验证文件的数据完整性的特征。散列可以位于加密的或未加密的文件数据上。这可以用设置哈希开/关、读取哈希值以及执行哈希开块范围nn至mm型命令来实现。
125.文件分配表
126.每个文件系统数据对象的块范围可以在存储于数据存储器210或存储介质207上的文件分配表(fat)中被限定。在此表中,每个文件系统数据对象由单个链接的块列表来表示。换句话说,数据存储器210存储文件系统数据对象与相应范围的块之间的关联。此外,应注意,此关联(fat)可以例如根据fat32格式而存储在存储介质207自身上。fat也可以被称为“块图结构”。
127.文件系统数据对象包括文件、文件组、文件夹和文件夹组。在一个示例中,控制器206针对存储在存储介质207上的每个文件使用不同的加密密钥。在其他示例中,文件被划分为组,例如具有同一个所有者的文件组,使得具有同一个所有者的所有文件可以用相同的加密密钥被加密和解密,但具有不同所有者的文件需要不同的密钥。
128.应注意,fat可以加密形式存储在数据存储器210或存储介质207上。在这种情况下,用于fat的加密和解密的密钥被称为“卷密钥”。在许多情况下,fat与其他文件相比是相对较小的,因此用于对fat进行解密的计算负荷相对较低。这意味着:实际上,主机计算机系统201以及控制器206可以对fat进行解密。因此,主机计算机系统201可以(1)发送安全解密关命令、读取加密的fat、用处理器204在本地对fat进行解密并且识别用于特别请求文件的块范围,或(2)发送具有安全设置密码的卷密钥(volume_key)、用安全解密开开启解密并且读取未加密的fat。
129.从控制器206的角度来看,数据存储器210存储文件系统数据对象与相应范围的块(fat)之间的关联。文件系统数据对象与相应范围的块之间的关联是用卷密钥被加密。控制器206接着接收对fat的请求并将fat发送到主机计算机系统201以使该主机计算机系统能够基于fat确定块范围。对fat的请求可以是标准读取命令(读取扇区),其中起始块是fat的预定义起始,例如逻辑块地址(lba)65,并且块数目是fat的大小。
130.如本文更详细地描述,控制器206接着从主机计算机系统201接收数据密钥和块范围的指示(如由主机计算机系统201基于fat所确定)。在这种意义上,主机计算机系统201维
护与块范围相关联的文件结构。最后,控制器206使用数据密钥以对存储在块范围中的文件系统数据对象进行解密,并将解密的文件系统数据对象发送到主机计算机系统。
131.在一个示例中,控制器206以解密形式发送fat。也就是说,控制器206接收卷密钥,使用卷密钥对fat进行解密,并将fat以解密形式发送到主机计算机系统。主机计算机系统201接着可以通过使用每个文件的完整路径查找块范围而使用fat来确定文件的块范围。在另一示例中,控制器206以加密形式发送fat,并且主机计算机系统201使用卷密钥对fat进行解密。
132.发送解密的数据
133.图4示出了根据实施方案的其中设备控制器206以解密形式发送数据(其存储在存储介质207上)的一个示例。控制器206可以从数据存储器210获得必要的加密密钥。控制器206还可能已经用例如security set password 401的先前命令从主机计算机系统201接收加密密钥,并且将该密钥保存在数据存储器210上。接着,控制器206从主机计算机系统201接收对解密的文件系统数据对象的请求402。此请求可以是用于读取块范围的标准sata命令,例如读取扇区。作为响应,控制器206例如通过从读取请求中提取块编号来识别块范围中的其中存储有文件系统数据对象的一个范围。接着,控制器206通过使用来自步骤401的最后接收的密钥或来自所存储的密钥列表的密钥来基于块范围中的一个范围而获得不同的加密密钥403中的一个加密密钥。控制器206接着可以使用获得的加密密钥对存储在存储介质上的文件系统数据对象进行解密404,并且将解密的文件系统数据对象405发送到主机计算机系统201。
134.值得注意的是,存在可以各自对不同文件系统数据对象进行加密的多个不同加密密钥,如图3中所示。这意味着dsd 202支持每文件加密。这种每文件加密将类似于主机系统201的处理器204进行的文件加密,但由于与dsd 202集成的加密和解密算法的硬件实现而具有硬件加速的优点。因此,主机计算机系统201可以维护每个文件具有一个密钥的密钥列表。
135.发送加密的数据
136.图5示出了根据实施方案的其中控制器206以如数据存储在存储介质207上的加密形式发送数据(其存储在存储介质207上)的另一示例。更确切地说,控制器206接收并执行来自命令集的命令,该命令集如上所述包括用于停用对存储在存储介质上的数据的解密的命令(安全解密关)501。此命令使控制器206响应于读取请求502而将文件系统数据对象以如存储在存储介质207上的加密形式发送503到主机计算机系统201。有利的是,攻击者无法通过拦截dsd 202与主机计算机系统201之间的通信来窃取任何未加密的数据。主机计算机系统201可以通过例如电子邮件或云存储的不安全信道发送加密的数据,并且接收系统可以通过将数据存储在另一存储介质上并激活解密而对数据进行解密。在图5所示的示例中,控制器206仍然可以提供硬件加速加密。
137.应注意,整个磁盘可以加密形式从一个磁盘发送到另一磁盘。这将会用于磁盘克隆以及通过网络将整个内容传送到另一计算机。
138.接收加密的数据
139.接收系统可以是与图2中所展示的dsd类似的dsd,因此对于以下描述,假设dsd 202从另一dsd接收加密的文件系统数据对象(该dsd与该另一dsd之间具有相应主机计算机
系统)。因此,图6展示了根据实施方案的作为接收dsd的dsd 202并且控制器206再次被配置为接收并执行来自命令集的命令。然而,现在,命令集包括用于激活对存储在存储介质上的数据的解密的命令。接收dsd 202接收601加密的文件系统数据对象,该加密的文件系统数据对象已例如由发送dsd在接收dsd外部加密。重要的是应注意,文件系统数据对象不由主机计算机系统或另一第三方计算机系统加密。相反,文件系统数据对象已由另一dsd加密,即由与发送dsd集成的硬件电路系统210加密。这确保了数据始终被加密,并且不以未加密形式传输。
140.控制器206将加密的文件系统数据对象以加密形式存储602在存储介质207上。在此阶段,数据与控制器206首先对数据进行加密的情况相同(假设使用相同的密钥)。控制器206从主机计算机系统接收603该密钥。例如,已发送加密的数据的一方还已经经由单独信道向主机计算机系统201提供对应密钥,该主机计算机系统将密钥转发到dsd 201。
141.控制器206还接收用于激活对存储在存储介质上的数据的解密的命令604。这使控制器206响应于数据请求而由与dsd集成的设备控制器的硬件电路系统210对存储介质上的文件系统数据对象进行解密605。为了进行此解密,在步骤603中,控制器206使用从主机计算机系统接收的加密密钥。最后,控制器206将文件系统数据对象以解密形式发送606到主机计算机系统。
142.具有或不具有块范围的读取请求
143.关于将文件系统数据对象映射到块范围存在不同的选项。在大多数情况下,dsd 202存储例如文件的文件系统数据对象与块范围之间的关联。示例包括文件分配表和块图结构。主机计算机系统201或控制器206可以使用此关联。在一个示例中,主机计算机系统201执行映射,这意味着来自主机计算机系统201的读取请求已根据标准ata命令集而包括块范围的指示。控制器206通常在接收到用于停用对存储在数据存储介质上的数据的解密的命令之后接收该读取请求。作为响应,控制器206不对数据进行解密,但以如存储在存储介质上的加密形式发送多个文件系统数据对象中的存储在块范围中的一个文件系统数据对象。
144.在另一示例中,控制器206执行映射,这意味着控制器206从主机计算机系统接收对加密的文件系统数据对象的请求。此请求例如通过提供文件的完整路径而非块范围来识别文件系统数据对象。因此,控制器206识别块范围中的其中所请求的加密的文件系统数据对象存储在存储介质上的一个范围。例如,控制器206通过查询fat中的所存储的关联以找到第一块和块数目来实现这一点。控制器206接着将文件系统数据对象(其存储在所识别的块范围中)以如存储在存储介质上的加密形式发送到主机计算机系统。
145.密钥生成
146.在一个示例中,控制器206生成包括公共密钥和私有密钥的不对称密钥对。控制器206可以包括用于生成新密钥的电路系统或软件,该新密钥可以是对称的或不对称的。控制器206接着经由数据链路203将公共密钥发送到主机计算机系统201,其中该公共密钥存储在易失性存储器205上。此公共密钥被称为与存储在dsd 202上的对应私有密钥相关联。公共密钥是由控制器206通过执行椭圆曲线加密(ecc)基元ecc-pub({私有密钥})来生成的。(回想一下,虽然出于计算效率和安全性的原因,在本文中将椭圆曲线加密用作示例,但需注意,可同样使用其他加密技术。)对应私有密钥存储在dsd 202的数据存储器210上,并且
202中以分别生成和存储私有密钥。接着可以针对不同块范围的不同加密密钥中的每个加密密钥重复上述过程。主机计算机系统201和dsd 202还可以执行可以基于椭圆曲线加密(ecc-dh)的狄菲-赫尔曼(diffie-hellman,dh)密钥交换。
152.关于密钥生成的其他信息可见于2019年12月8日提交的名称为“解锁数据存储设备(unlocking a data storage device)”的美国专利申请16/706,780中,该美国专利申请通过引用整体并入本文中。
153.还有可能使一个或多个密钥暂时存储在包括于dsd 202中的易失性存储器中。此“密钥高速缓存”将最小化通过数据链路203发送密钥以实现速度效率并提高安全性。主机计算机系统201可以将每个密钥称为表条目,即set password 1、set password 2、security decrypt on 1、security decrypt on 2等。如果dsd 202断电或dsd 202断开并且物理篡改检测电路被触发,则密钥会变得无法访问以保护dsd 202的安全性。如果dsd 202处于密钥无法访问的状态,则其可以自动恢复为发送加密的数据而不接收任何密钥。在这种意义上,任何主机计算机系统可以为dsd 202供电并读取加密的数据。但仅具有密钥(或能够用密钥访问dsd)的主机计算机系统可以对数据进行解密。
154.密钥选择
155.关于如何选择用于加密和解密的适当密钥存在不同的选项。在第一示例中,主机计算机系统201维护fat,并且控制器206接收块范围的指示,例如起始块地址和块数目。控制器206接着基于所指示的块范围而选择不同加密密钥中的一个加密密钥。为此,控制器206可以维护针对每个起始块地址存储对应密钥的表。也就是说,该表针对每个文件系统数据对象具有一行,并且每行包括起始块地址和密钥。控制器206接着在表中查询所接收的起始块地址,并且使用选自表中的加密密钥来加密数据和解密数据。
156.在其他示例中,控制器206执行文件系统数据对象与如上所述的块范围之间的映射。也就是说,控制器206接收对文件系统数据对象的请求并且基于所存储的fat确定块范围。控制器206接着基于所确定的块范围选择多个加密密钥中的一个加密密钥。此外,这可能涉及使用可以将起始块地址或文件系统数据对象的完整路径或这两者存储在具有对应密钥的行中的密钥表。因此,控制器206还可以通过查找密钥表中的完整路径而非起始块地址来选择密钥。控制器206接着使用所选择的加密密钥以对存储在所确定的块范围中的文件系统数据对象进行解密并发送解密的文件系统数据对象。
157.如上所述,控制器206还可以被配置为从主机计算机系统201接收不同的密钥。控制器206接着将密钥存储在dsd 202内,该dsd可以包括易失性存储器以存储不同加密密钥中的一个或多个加密密钥,使得密钥在dsd 202断电时不保留在dsd 202中。控制器206可以用例如security set password的命令从主机计算机系统201接收不同的加密密钥。控制器206接着使用该密钥以对数据进行加密和解密,直到通过相同命令接收到不同密钥的指示为止。
158.在其他示例中,不同密钥是经由与用于发送加密的数据的通信信道不同的通信信道(诸如无线(例如,蓝牙)信道)被发送的。此外,密钥可以相对于加密的数据在不同时间被发送,例如时间偏移,以使密钥与加密的数据解除关联。
159.数据流示例
160.图7示出了根据实施方案的展示完整数据流的另一示例。首先,主机计算机系统
201通过发出security set password(file_key)命令来设置701每文件加密密钥。这用文件密钥来激活硬件加密模块。接着,主机计算机系统201发出702用于将文件数据以未加密形式发送到dsd 202的写入扇区命令。由于主机计算机系统201在此阶段维护fat,因此主机计算机系统201还可以执行文件数据到块的分配并在写入命令中指定那些块或至少为起始块地址。控制器206接着用文件密钥对所接收的数据进行加密703并将加密的数据存储704在存储介质207上。数据现在被存储,并且dsd 202可以用于不相关的任务或断电。在稍后阶段,当数据需要被读取时,主机计算机系统201通过发出安全解密关命令来停用解密705。替代地,可以默认地停用解密,因此没有必要发送命令。主机计算机系统201接着通过针对存储有fat的预定义扇区发出读取扇区命令来读取706fat表。作为响应,控制器206将加密的fat返回707到主机计算机系统201。主机计算机系统201接着使用卷密钥(其不同于文件密钥)对fat进行解密708。替代地,主机计算机系统201可以激活解密并以解密形式读取fat。
161.根据解密的fat,主机计算机系统201现在可以针对特定文件找到所需的块709并通过针对那些块发出读取扇区命令来读取那些块710。控制器206通过将加密的文件数据发送711回到主机计算机系统201来作出响应。此加密的文件数据现在可以存储在其他地方或通过不安全通信信道发送。由于文件密钥是可用的(当然具有受限访问),因此加密的文件数据可以由具有该密钥的经授权的实体解密。
162.方法
163.图8示出了根据实施方案的用于将数据存储在dsd 202中的方法800。方法800可以由控制器206执行,因为方法800是在存储于程序存储器209中的程序代码中实现的,应注意,程序代码控制硬件电路系统210以执行个别命令。也就是说,程序存储器209是与dsd并与存储在其上的固件集成的非暂态计算机可读介质,该固件在由dsd的控制器执行时使该控制器执行方法800的步骤。
164.确切地说,该方法包括使用块寻址来存储801多个文件系统数据对象。多个文件系统数据对象可由如图3中所展示的相应范围的块来寻址。控制器206通过控制与dsd集成的硬件电路系统210来使用802不同加密密钥中的一个密钥来对要存储在存储介质上的数据进行加密并对存储在存储介质上的数据进行解密。不同加密密钥中的一个加密密钥用于块范围中的对多个文件系统数据对象中的一个文件系统数据对象进行寻址的相应范围。
165.数据存储设备
166.图9示出了根据实施方案的dsd 900,该dsd包括用于使用块寻址来存储多个文件系统数据对象的装置901。多个文件系统数据对象可由如图3中所展示的相应范围的块来寻址。用于存储的装置901可以包括旋转介质(例如磁性硬盘)、固态存储介质(例如位于固态驱动器(ssd)中)或其他合适的存储介质。dsd 900还包括用于通过与dsd 900集成的硬件电路系统210使用不同加密密钥中的一个密钥来对要存储在用于存储的装置901上的数据进行加密以及对存储在用于存储的装置901上的数据进行解密的装置902。不同的加密密钥用于对多个文件系统数据对象中的一个文件系统数据对象进行寻址的相应范围的块。用于使用不同密钥的装置902可以是数据存储设备控制器,该数据存储设备控制器包括与硬件电路系统集成或连接到硬件电路系统的微处理器,该硬件电路系统在硬件中实现加密和解密算法。
167.本领域的技术人员应当理解,在不脱离本公开的广泛一般范围的情况下,可对上
述实施方案作出许多变型和/或修改。本发明的实施方案因此将在所有方面被认为是示例性的而非限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献