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

存储装置、存储系统和存储装置之间安全数据移动的方法与流程

2022-09-02 20:39:20 来源:中国专利 TAG:

存储装置、存储系统和存储装置之间安全数据移动的方法
1.本技术要求于2021年3月1日提交的标题为“nvme ssd之间的安全数据移动(secure data movement between nvme ssds)”的第63/155,185号美国临时申请和于2021年4月16日提交的第17/233,145号美国申请的优先权和权益,所述美国申请的全部内容通过引用包含于此。
技术领域
2.本公开的一个或多个实施例的方面涉及存储装置,更具体地,涉及用于安全地发送数据的存储装置、包括该存储装置的存储系统和在存储装置之间安全地发送数据的方法。


背景技术:

3.通常,数字数据的各个阶段包括静态数据(data at rest)、使用中数据(data in use)和传输中数据(data in transit)。在这些阶段之中,静态数据可包括以任何合适的数字形式被物理地贮存在存储装置(诸如,以固态驱动器(ssd)、硬盘驱动器(hdd)等为例)上的数据,并且静态数据可包括结构化数据和非结构化数据二者。与使用中数据或传输中数据不同,静态数据通常可表示被存储在持久性存储设备中的数据,而使用中数据和传输中数据可表示正在被处理或临时存储在易失性存储器(诸如,以随机存取存储器(ram)为例)中的数据。为了防止对这样的静态数据的未授权访问,可采用各种安全措施(诸如,以密码保护、数据加密或它们的组合为例)。
4.虽然这些安全措施通常可在数据被物理地存储在存储装置中时针对未授权访问有效,但是当诸如以在虚拟机迁移、卷快照、数据的备份、数据的归档等期间为例将这样的静态数据从一个存储装置发送到另一存储装置时,数据可能以不安全格式(诸如,以明文(plain text)为例)被发送。例如,数据可以以加密格式被物理地存储在源存储装置处,可由源存储装置解密以便以解密格式(例如,以明文)被发送到目的地存储装置,可以以解密格式被发送到目的地存储装置,并且可在以加密格式被物理地存储在目的地存储装置中之前由目的地存储装置再次加密。因此,这样的静态数据当在存储装置之间被传送、移动或复制时可能容易受到未授权访问或攻击。
5.在本背景技术部分中公开的上面的信息用于增强本公开的背景的理解,因此可包含不构成现有技术的信息。


技术实现要素:

6.本公开的一个或多个实施例涉及用于安全地发送数据的存储装置、包括该存储装置的存储系统和在存储装置之间安全地发送数据的方法。
7.根据本公开的一个或多个实施例,一种存储装置包括:存储存储器组件,被配置为存储处于加密格式的所请求的数据;以及存储控制器,通过存储接口连接到存储存储器组件,存储控制器被配置为:通过主机接口从主机装置接收命令和解密覆盖指示符,以从存储
存储器组件读取所请求的数据;响应于命令,从存储存储器组件取得处于加密格式的所请求的数据;并且响应于解密覆盖指示符,通过传输层将处于加密格式的所请求的数据发送到目的地存储装置。
8.在一个实施例中,传输层可至少包括主机装置,并且为了将处于加密格式的所请求的数据发送到目的地存储装置,存储控制器可被配置为:至少通过主机装置将处于加密格式的所请求的数据发送到目的地存储装置。
9.在一个实施例中,传输层还可包括目的地主机装置,并且为了将处于加密格式的所请求的数据发送到目的地存储装置,存储控制器可被配置为:至少通过主机装置和目的地主机装置将处于加密格式的所请求的数据发送到目的地存储装置。
10.在一个实施例中,传输层可包括所述存储装置与目的地存储装置之间的安全通信通道,并且为了将处于加密格式的所请求的数据发送到目的地存储装置,存储控制器可被配置为:通过安全通信通道将处于加密格式的所请求的数据发送到目的地存储装置。
11.在一个实施例中,存储控制器还可被配置为:将与所请求的数据相关联的密钥传送到目的地存储装置,以用于对所请求的数据进行解密。
12.在一个实施例中,为了传送密钥,所述存储装置可被配置为:传送密钥的所有权或指示密钥的所有权的信息。
13.在一个实施例中,为了传送密钥,所述存储装置可被配置为:保留与所请求的数据相关联的私钥,并且传送与所请求的数据相关联的公钥。
14.在一个实施例中,为了传送密钥,所述存储装置可被配置为:将密钥传送到可通信地连接到主机装置的密钥服务器。
15.在一个实施例中,存储控制器可被配置为:响应于对密钥的请求而传送密钥。
16.在一个实施例中,所述存储装置可包括固态驱动器(ssd),存储存储器组件可包括闪存,存储接口可包括所述存储装置的闪存接口层。
17.根据本公开的一个或多个实施例,一种存储系统包括:第一存储装置,被配置为:存储处于加密格式的所请求的数据,并且通过传输层发送处于加密格式的所请求的数据;以及第二存储装置,通过传输层连接到第一存储装置,第二存储装置被配置为:通过传输层接收处于加密格式的所请求的数据,并且存储处于加密格式的所请求的数据。
18.在一个实施例中,第一存储装置可包括:第一存储存储器组件,被配置为存储处于加密格式的所请求的数据;以及第一存储控制器,通过第一存储接口连接到第一存储存储器组件,第一存储控制器被配置为:接收第一命令和解密覆盖指示符,以从第一存储存储器组件读取所请求的数据;响应于第一命令,从第一存储存储器组件取得处于加密格式的所请求的数据;并且响应于解密覆盖指示符,通过传输层将处于加密格式的所请求的的数据发送到第二存储装置。
19.在一个实施例中,第一存储控制器还可被配置为:将与所请求的数据相关联的密钥传送到第二存储装置,以用于对所请求的数据进行解密。
20.在一个实施例中,为了传送密钥,第一存储装置可被配置为:传送密钥的所有权或指示密钥的所有权的信息。
21.在一个实施例中,为了传送密钥,第一存储装置可被配置为:保留与所请求的数据相关联的私钥,并且传送与所请求的数据相关联的公钥。
22.在一个实施例中,所述存储系统还可包括:密钥服务器,可通信地连接到第一存储装置和第二存储装置,并且为了传送密钥,第一存储装置可被配置为:将密钥传送到密钥服务器。
23.在一个实施例中,第二存储装置可包括:第二存储存储器组件;以及第二存储控制器,通过第二存储接口连接到第二存储存储器组件,第二存储控制器被配置为:接收第二命令和加密覆盖指示符,以将处于加密格式的所请求的数据写入第二存储存储器组件;响应于加密覆盖指示符,跳过对所请求的数据的加密;以及将处于加密格式的所请求的数据存储在第二存储存储器组件中。
24.在一个实施例中,第二存储装置还可被配置为:接收用于从第二存储存储器组件读取所请求的数据的第三命令;从第二存储存储器组件取得处于加密格式的所请求的数据;取得密钥;以及根据密钥对所请求的数据进行解密。
25.在一个实施例中,第一存储装置或第二存储装置中的至少一个可包括固态驱动器;第一存储存储器组件或第二存储存储器组件中的至少一个可包括闪存;并且第一存储接口或第二存储接口中的至少一个可包括闪存接口层。
26.根据本公开的一个或多个实施例,一种在存储装置之间安全地发送数据的方法包括:在第一存储装置处读取处于加密格式的所请求的数据;通过传输层将处于加密格式的所请求的数据从第一存储装置发送到第二存储装置;通过跳过对所请求的数据的加密,将处于加密格式的所请求的数据写入第二存储装置处;将与所请求的数据相关联的用于对所请求的数据进行解密的密钥传送到第二存储装置;在第二存储装置处读取所请求的数据;取得与所请求的数据相关联的密钥;以及在第二存储装置处使用密钥对所请求的数据进行解密。
附图说明
27.从下面参照附图对说明性的、非限制性的示例实施例的详细描述,本公开的以上和其它方面和特征将更加清楚。
28.图1示出根据本公开的一个或多个实施例的存储系统。
29.图2示出根据本公开的一个或多个实施例的包括在存储系统中的主机装置和存储装置。
30.图3示出根据本公开的一个或多个实施例的在存储装置之间安全地发送数据的方法的流程图。
31.图4示出根据本公开的一个或多个实施例的用于存储装置之间的安全发送的读取数据的方法的各种处理的流程图。
32.图5示出根据本公开的一个或多个实施例的用于存储装置之间的安全发送的写入数据的方法的各种处理的流程图。
具体实施方式
33.在下文中,将参照附图更详细地描述示例实施例,其中,相同的参考标号始终表示相同的元件。然而,本公开可以以各种不同的形式来实现,并且不应被解释为仅限于在此示出的实施例。不如说,提供这些实施例作为示例,使得本公开将是彻底的和完整的,并且将
本公开的方面和特征充分传达给本领域技术人员。因此,可不描述对于本领域普通技术人员为了完全理解本公开的方面和特征而不是必须的处理、元件和技术。除非另外说明,否则贯穿附图和文字描述,相同的参考标记表示相同的元件,因此,它们的描述可不被重复。
34.通常,当将静态数据(data at rest)从源存储装置发送到目的地存储装置时,数据可能以不安全格式(诸如,以明文(plain text)为例)被发送。例如,响应于来自源主机装置的针对所请求的数据的读取命令,源存储装置可在将解密数据发送到源主机装置之前首先对所请求的数据(所请求的数据可以以加密格式被存储在源存储装置上)进行解密。源主机装置然后可以以接收的格式(例如,明文)将解密数据发送到目的地主机装置以用于存储在目的地存储装置中。因此,在发送期间,解密数据(例如,明文数据)可能容易受到未授权访问和/或攻击。
35.此外,当目的地主机装置从源主机装置接收解密数据时,目的地主机装置可将针对所请求的数据的写入命令发送到目的地存储装置。响应于写入命令,目的地存储装置可首先对解密数据进行加密,以将接收的解密数据生成并存储为加密数据。因此,以加密格式被存储在源存储装置处的所请求的数据可首先由源存储装置解密,随后可在被存储在目的地存储装置中之前由目的地存储装置再次加密。因此,所请求的数据可由源存储装置和目的地存储装置不必要地加密和/或解密,因此,延迟和功耗可被增加和/或吞吐量可被减少。
36.根据本公开的一个或多个实施例,当在源存储装置与目的地存储装置之间发送所请求的数据时,所请求的数据可从源存储装置以加密格式被读取,并且可在不首先对所请求的数据进行解密的情况下,按原样以加密格式被发送到目的地存储装置。因此,所请求的数据在存储装置之间的发送期间可以是相对安全的。
37.此外,根据本公开的一个或多个实施例,目的地存储装置可在不必首先对所请求的数据进行再次加密的情况下按原样以接收的加密格式存储所请求的数据。在这种情况下,(例如,响应于对密钥的请求)可将密钥从源存储装置被传送到目的地存储装置,使得目的地存储装置可根据需要或期望使用密钥来对所请求的数据进行解密,密钥用于对所请求的数据进行加密/解密。因此,存储装置可不用不必要地对所请求的数据进行加密/解密,因此,延迟和功耗可被减少和/或吞吐量可被增加。
38.图1示出根据本公开的一个或多个实施例的存储系统。作为示例,图1示出用于迁移数据的存储系统100,其中,数据从源存储装置(例如,第一存储装置)104被传送、移动或复制到目的地存储装置(例如,第二存储装置)108。虽然图1示出源存储装置104和目的地存储装置108连接到不同的主机装置102和主机装置106,但是本公开不限于此,并且源存储装置104和目的地存储装置108可连接到相同的主机装置(例如,主机装置102或主机装置106)。
39.参照图1,存储系统100可包括源主机装置(例如,第一主机装置)102、源存储装置(例如,第一存储装置)104、目的地主机装置(例如,第二主机装置)106和目的地存储装置(例如,第二存储装置)108。源主机装置102和目的地主机装置106可以可通信地彼此连接,以彼此交换数据。例如,源主机装置102和目的地主机装置106可通过用于彼此进行数据通信的各种合适的有线通信接口或无线通信接口(例如,插座、天线、发送器、接收器、收发器和/或有线端子等)彼此连接。在各种实施例中,通信可以是直接的(例如,本地的有线通信或无线通信)或者经由通信网络(例如,wan、互联网和/或蜂窝网络等)。例如,源主机装置
102和目的地主机装置106中的每个可包括用于经由基于以太网的通信链路或网络发送和接收数据的以太网卡和端口。在另一示例中,源主机装置102和目的地主机装置106中的每个可包括用于经由无线通信网络进行通信的wi-fi收发器。在另一示例中,源主机装置102和目的地主机装置106中的一者或二者可包括蜂窝通信收发器或移动电话通信收发器。
40.源存储装置104和目的地存储装置108中的每个可包括加密/解密元件(诸如,以高级加密标准(aes)引擎为例),以使用任何合适的加密/解密算法对存储在源存储装置104和目的地存储装置108中的每个中的数据进行加密和解密。因此,源存储装置104和目的地存储装置108中的每个可对数据进行加密并将加密数据存储在源存储装置104和目的地存储装置108中的每个中,并且可对存储的加密数据进行解密并发送解密数据。源存储装置104和目的地存储装置108可使用彼此相同的加密/解密算法,或者可使用彼此不同的加密/解密算法。然而,本公开不限于此,并且在一些实施例中,根据需要或期望,源存储装置104可至少包括用于对存储在源存储装置104中的数据进行加密的加密元件,目的地存储装置108可至少包括用于对存储在目的地存储装置108中的数据进行解密的解密元件。
41.在一些实施例中,在数据迁移期间,源主机装置102可将针对所请求的数据的读取(read)请求发送到源存储装置104,选择不对所请求的数据进行解密。例如,源主机装置102可将针对所请求的数据的读取命令和用于覆盖(例如,跳过)所请求的数据的解密的指示符(例如,位、标志、信号、插件和/或单独的命令等)一起发送到源存储装置104。在各种实施例中,只要源存储装置104可将解密覆盖指示符与其它读取命令(例如,读取和解密命令)区分开来,则指示符可以是读取命令的一部分(例如,作为修改的读取命令),可在源存储装置104的专用端口或通道处被接收以指示解密覆盖,和/或可作为与读取命令分离的命令或信号被接收等。所请求的数据可包括整个盘(例如,存储在源存储装置104中的整个数据)或盘的一部分(例如,任何合适的用户定义的抽象物(诸如,以存储在源存储装置104中的文件、对象、容器、命名空间、卷和/或虚拟机盘等为例))。
42.源存储装置104可(例如,从如图2中所示的源存储装置104的存储存储器组件216)取得处于加密格式的所请求的数据,并且可响应于解密覆盖的指示符而在不首先对所请求的数据进行解密的情况下通过合适的传输层(例如,合适的传送介质)将处于加密格式的所请求的数据按原样发送到目的地存储装置108。例如,在一些实施例中,如图1中所示,传输层可包括源主机装置102和目的地主机装置106。在这种情况下,源存储装置104可将处于加密格式的所请求的数据发送到源主机装置102,源主机装置102可将处于加密格式的所请求的数据发送到目的地主机装置106。
43.目的地主机装置106随后可将处于加密格式的所请求的数据的写入(write)请求发送到目的地存储装置108,选择不对所请求的数据进行加密。例如,目的地主机装置106可将针对所请求的数据的写入命令与用于覆盖(例如,跳过)所请求的数据的加密的指示符(例如,位、标志、信号、插件和/或单独的命令等)一起发送到目的地存储装置108。在各种实施例中,只要目的地存储装置108可将加密覆盖指示符与其它写入命令(例如,加密命令和写入(write)命令)区分开来,则指示符可以是写入命令的一部分(例如,作为修改的写入命令),可在目的地存储装置108的专用端口或通道处被接收以指示加密覆盖,和/或可作为与写入命令分离的命令或信号被接收等。目的地存储装置108可从目的地主机装置106按原样接收处于加密格式的所请求的数据,并且可响应于加密覆盖的指示符而在不对所请求的数
据进行再次加密的情况下(例如,在如图2中所示的目的地存储装置108的存储存储器组件216中)按原样存储处于加密格式的所请求的数据。
44.然而,本公开不限于此,并且在其它实施例中,源存储装置104和目的地存储装置108可通过任何合适的传输层(诸如,以通过安全通信通道或通路(例如,网卡和/或外围组件互连快速(pcie)等或它们的任何合适的组合(诸如,以对等(p2p,peer to peer)等为例)为例)彼此直接地通信,使得源存储装置104可在不使用源主机装置102和/或目的地主机装置106的情况下,将处于加密格式的所请求的数据直接地发送到目的地存储装置108。在其它示例中,源存储装置104和目的地存储装置108可使用任何合适的直接或间接通信机制在涉及或不涉及另外的装置的情况下彼此直接地或间接地通信。例如,如果主机总线适配器在与主机总线适配器连接的两个存储装置之间提供通信通道,则两个存储装置可在不涉及另外的装置的情况下通过提供的主机总线适配器的通信通道彼此通信。因此,传输层可包括源存储装置104与目的地存储装置108之间的任何合适的通信机制,以使得源存储装置104能够按原样将处于加密格式的数据发送到目的地存储装置108。
45.源存储装置104还可将加密/解密密钥传送到目的地存储装置108,使得目的地存储装置108可根据需要或期望使用密钥来对所请求的数据进行解密。例如,源存储装置104可将密钥传送到源主机装置102、密钥服务器110和目的地存储装置108中的至少一个。在一些实施例中,密钥的传送可使用非对称加密来执行,非对称加密允许密钥由发送器加密并由接收器解密。例如,如本领域普通技术人员将理解的,密钥可经由非对称加密通道被安全地传送(例如,具有降低的拦截可能性),并且在密钥被拦截的情况下,密钥可处于不可用格式(例如,密钥可处于加密格式)。只要目的地存储装置108可根据需要或期望安全地取得密钥(例如,通过推送(push)或拉取(pull))以便对所请求的数据进行解密,则密钥从源存储装置104到目的地存储装置108的传送不受具体限制。
46.例如,如图1中所示,在一些实施例中,源主机装置102和目的地主机装置106中的每个可以可通信地连接到密钥服务器110,密钥服务器110管理由源存储装置104和目的地存储装置108使用的密钥,但是本公开不限于此。当密钥服务器110用于管理密钥时,源存储装置104可将密钥传送到源主机装置102,源主机装置102可与密钥服务器110通信以将与所请求的数据相关联的密钥传送到目的地存储装置108(例如,经由目的地主机装置106)。在另一实施例中,源存储装置104可在不首先将密钥发送到源主机装置102的情况下直接地将密钥传送到密钥服务器110。
47.作为另一示例,在一些实施例中,密钥服务器110可被省略。例如,在一个实施例中,源存储装置104和目的地存储装置108中的每个可连接到同一主机装置(例如,102或106)。在这种情况下,主机装置可管理由源存储装置104和目的地存储装置108使用的密钥,使得主机装置可用作密钥服务器110。在另一实施例中,源主机装置102可直接地将密钥传送到目的地主机装置106(例如,通过如图2中所示的安全输入输出(io)层212),因此,密钥服务器110可不被使用。在另一实施例中,源存储装置104可例如在不使用源主机装置102、密钥服务器110和/或目的地主机装置106的情况下,将密钥直接地传送到目的地存储装置108。
48.在一些实施例中,密钥到目的地存储装置108的传送可(例如,在所请求的数据被发送到目的地存储装置108之后立刻)被推送到目的地存储装置108,或者可(例如,当响应
于读取请求而对所请求的内容进行解密时)根据需要或期望由目的地存储装置108拉取。例如,在后一种情况下,当目的地存储装置108(例如,从目的地主机装置106)接收对以加密格式存储在目的地主机装置108中的所请求的数据的读取命令时,目的地存储装置108可从目的地主机装置106(目的地主机装置106可已经具有密钥或者目的地主机装置106可进一步从密钥服务器110或源主机装置102请求密钥)请求密钥,从密钥服务器110(例如,直接地或通过目的地主机装置106)请求密钥,或者从源存储装置104(例如,直接地或通过源主机装置102和目的地主机装置106)请求密钥。
49.在各种实施例中,密钥的传送可包括将密钥所有权或指示密钥所有权的信息传送到目的地存储装置108,使得存储在源存储装置104中的所请求的数据被宣布无用(例如,即时安全擦除)。例如,在所请求的数据(诸如,以在虚拟机(vm)盘文件从一个存储装置被传送到另一存储装置的vm迁移期间为例)从源存储装置104被传送或移动到目的地存储装置108的情况下,这种情况可以是有用的。
50.在一些实施例中,密钥的传送可包括使用非对称密钥交换(例如,公钥/私钥),例如,使得源存储装置104、源主机装置102或密钥服务器110可保留私钥的所有权,而目的地存储装置108被分配公钥以根据需要或期望对存储在目的地存储装置108中的加密数据进行解密。例如,在用于确保迁移中的密钥的安全性的直接传送场景中,这种情况可以是有用的。
51.在一些实施例中,源存储装置104、源主机装置102或密钥服务器110可保留密钥的所有权,目的地存储装置108可不被提供用于对所请求的数据进行解密的密钥。例如,因为所请求的数据可以以从源存储装置104接收的加密格式按原样被存储在目的地存储装置108中,所以源存储装置104可之后在不首先由目的地存储装置108进行解密的情况下,按原样从目的地存储装置108取得(例如,可请求)处于加密格式的所请求的数据。例如,在源存储装置104保留所请求的数据并且将所请求的数据的副本提供给目的地存储装置108(例如,作为快照(例如,卷快照)、备份(例如,盘备份和/或卷备份等)和/或存档等)的情况下,这种情况可以是有用的。
52.图2示出根据本公开的一个或多个实施例的包括在存储系统中的主机装置和存储装置。图2示出存储系统200的简化示例,在存储系统200中,一个主机装置202连接到一个存储装置204,但是本公开不限于此,并且存储系统200可包括任何合适数量的主机装置,主机装置各自连接到任何合适数量的存储装置。此外,如上所述,存储系统200可包括可连接到同一主机装置(例如,主机装置202)或不同的主机装置(例如,源主机装置102和目的地主机装置106)的多个存储装置(例如,图1中示出的源存储装置104和目的地存储装置108)。例如,图1中示出的源主机装置102和目的地主机装置106中的至少一个可具有与图2中示出的主机装置202的配置和结构相同或基本相同(或类似)的配置和结构。类似地,图1中示出的源存储装置104和目的地存储装置108中的至少一个可具有与图2中示出的存储装置204的配置和结构相同或基本相同(或类似)的配置和结构。
53.参照图2,主机装置202可通过主机接口206连接到存储装置204。主机装置202可通过主机接口206向存储装置204发出数据访问命令(例如,读取命令/写入命令),并且可通过主机接口206从存储装置204接收所请求的数据。
54.主机装置202可包括主机处理器208、主机存储器210和安全io层212。主机处理器
208可以是通用处理器(诸如,以主机装置202的中央处理器(cpu)核为例)。主机处理器208可经由地址总线、控制总线和/或数据总线等连接到其它组件。主机存储器210可被认为是主机装置202的高性能主要存储器(例如,主存储器)。例如,在一些实施例中,主机存储器210可包括(或可以是)易失性存储器(诸如,以动态随机存取存储器(dram)为例)。然而,本公开不限于此,并且主机存储器210可包括(或可以是)如本领域技术人员将已知的用于主机装置202的任何合适的高性能主要存储器(例如,主存储器)替换物。例如,在其它实施例中,主机存储器210可以是相对高性能的非易失性存储器(诸如,nand闪存、相变存储器(pcm)、电阻式ram、自旋转移矩ram(sttram)、基于pcm技术、忆阻器技术的任何合适的存储器和/或电阻式随机存取存储器(reram)),并且可包括例如硫属化物等。
55.安全io层212可用于在主机装置202与存储装置204之间和/或在主机装置202与另一主机装置之间(例如,在图1中示出的源主机装置102与目的地主机装置106之间)安全地传送数据和/或信息。例如,如本领域普通技术人员将理解的,安全io层212可包括应用编程接口(api)、驱动器集成电路(ic)和/或其它支持固件/软件,以实现两个或更多个装置之间(诸如,以源存储装置104与目的地存储装置108之间、主机装置202与存储装置204之间、和/或存储装置204与网卡之间等为例)的安全通信。然而,只要两个或更多个装置之间的安全通信能够在两个或更多个装置之间安全地传送所请求的数据和/或密钥,则安全io层212不具体限于图2中示出的实施例。虽然安全io层212被示出为主机装置202的一部分,但是本公开不限于此,并且安全io层212可被实现为任何合适的装置的一部分(例如,作为存储装置204的一部分)以实现两个或更多个装置之间的安全通信。
56.存储装置204可被认为是可持久地存储可由主机装置202访问的数据的辅存储器。在这个背景下,当与主机存储器210的高性能存储器相比时,存储装置204可包括(或可以是)相对较慢的存储器。例如,在一些实施例中,存储装置204可以是主机装置202的辅存储器(诸如,以固态驱动器(ssd)为例)。然而,本公开不限于此,并且在其它实施例中,存储装置204可包括(或可以是)任何合适的存储装置(诸如,以磁存储装置(例如,硬盘驱动器(hdd)等)、光存储装置(例如,蓝光盘驱动器、光盘(cd)驱动器、数字通用光盘(dvd)驱动器等)和/或其它种类的闪存装置(例如,usb闪存驱动器等)等为例),可包括(或可以是)相对高性能的非易失性存储器(诸如,nand闪存、相变存储器(pcm)、电阻式ram、自旋转移矩ram(sttram)、基于pcm技术、忆阻器技术的任何合适的存储器和/或电阻式随机存取存储器(reram)),并且可包括例如硫属化物等。在各种实施例中,存储装置204可符合大形状因子标准(例如,3.5英寸硬盘驱动器形状因子)、小形状因子标准(例如,2.5英寸硬盘驱动器形状因子)、m.2形状因子和/或e1.s形状因子等。在其它实施例中,存储装置204可符合这些形状因子的任何合适或期望的衍生物。为了方便起见,存储装置204可在下文中在ssd的背景下被描述,但是本公开不限于此。
57.存储装置204可通过主机接口206可通信地连接到主机装置202。主机接口206可促进主机装置202与存储装置204之间的通信(例如,使用连接器和协议)。在一些实施例中,主机接口206可促进主机装置202与存储装置204之间的存储请求和响应的交换。在一些实施例中,主机接口206可促进由存储装置204将数据传送到主机装置202的主机存储器210和从主机装置202的主机存储器210传送数据。例如,在各种实施例中,主机接口206(例如,主机接口206的连接器和协议)可包括(或可符合)小型计算机系统接口(scsi)、非易失性存储器
快速(nvme)、外围组件互连快速(pcie)、以太网上的远程直接存储器访问(rdma)、串行高级技术附件(sata)、光纤通道、串行附接scsi(sas)和/或通过网络的nvme(nvme-of)等。在其它实施例中,主机接口206(例如,主机接口206的连接器和协议)可包括(或可符合)各种通用接口(诸如,以以太网和/或通用串行总线(usb)等为例)。
58.在一些实施例中,存储装置204可包括存储控制器214、存储存储器组件216和存储接口218。存储控制器214可通过存储接口218连接到存储存储器组件216。在ssd的背景下,存储接口218可被称为闪存接口层,并且可以是存储存储器组件216(例如,nand闪存)可使用其与处理器或其它装置(例如,存储控制器214)通信的接口。可通过存储接口218传送命令(诸如,复位、写入使能、控制信号和/或时钟信号等)。此外,软件接口可与可用于测试/验证存储接口218的工作的硬件元件组合使用。软件可用于经由存储接口218读取数据和将数据写入存储存储器组件216。此外,软件可包括可被下载到硬件元件上的固件(例如,用于控制擦除操作、写入操作和读取操作)。
59.存储控制器214可连接到主机接口206,并且可管理主机接口206上的信令。在一些实施例中,存储控制器214可包括相关联的软件层,以管理主机接口206的物理连接器。存储控制器214可响应于通过主机接口206从主机装置202接收的输入/输出(i/o)请求。存储控制器214还可管理存储接口218,以控制存储存储器组件216并提供对存储存储器组件216的访问和来自存储存储器组件216的访问。例如,存储控制器214可包括嵌入在其上的用于与主机装置202和存储存储器组件216接口连接的至少一个处理电路。处理电路可包括例如能够执行数据访问指令(例如,经由固件和/或软件)的数字电路(例如,微控制器、微处理器、数字信号处理器或逻辑装置(例如,现场可编程门阵列(fpga)和/或专用集成电路(asic)等)),以根据数据访问指令提供对存储在存储存储器组件216中的数据的访问和来自存储在存储存储器组件216中的数据的访问。例如,数据访问指令可包括任何合适的数据存储和取得算法(例如,读取/写入)指令等。存储存储器组件216可持久地存储从主机装置202接收的数据。在一个实施例中,存储存储器组件216可包括非易失性存储器(诸如,以nand闪存为例)。然而,本公开不限于此,并且根据存储装置204的类型(例如,磁盘、磁带和/或光盘等),存储存储器组件216可包括任何合适的存储器。
60.在一些实施例中,存储装置204还可包括加速器220。加速器220可增强存储控制器214的输入/输出操作,以增加存储装置204的效率。例如,在一些实施例中,加速器220可包括用于促进所请求的数据的加密/解密的加密/解密元件(例如,图1中示出的aes引擎)。然而,本公开不限于此,并且在一些实施例中,加速器220可根据需要或期望被省略。在这种情况下,存储控制器214(或包括在存储装置204中的另一处理电路或计算元件)可包括加密/解密元件,以根据需要或期望对所请求的数据进行加密/解密。
61.根据本公开的一个或多个实施例,存储控制器214可通过主机接口206从主机装置202接收读取命令/写入命令以及加密覆写指示符/解密覆写指示符,存储控制器214和/或加速器220可响应于加密覆写指示符/解密覆写指示符而放弃(例如,可覆写、跳过等)被存储/将被存储在存储存储器组件216中的所请求的数据的加密/解密。
62.图3示出根据本公开的一个或多个实施例的在存储装置之间安全地发送数据的方法300的流程图。
63.然而,本公开不限于图3中示出的方法300的操作的顺序或数量,并且图3中示出的
方法300的操作的顺序或数量可被改变为如本领域普通技术人员所认识到的任何期望的操作的顺序或数量。例如,在一些实施例中,次序可变化,或者方法300可包括更少或附加的操作。此外,方法300中示出的操作可由上述一个或多个示例实施例的组件和元件中的任何合适的一个或组件和元件的任何合适的组合来执行。
64.参照图1至图3,方法300开始,并且在框305,检查源存储装置104与目的地存储装置108之间的加密/解密算法的兼容性。例如,因为所请求的数据可由源存储装置104按原样以加密格式发送,所以目的地存储装置108可使用与源存储装置104的加密/解密算法兼容的加密/解密算法,以便根据需要或期望对所请求的数据进行解密。
65.在一些实施例中,源主机装置102可验证由源存储装置104使用的加密/解密算法与由目的地存储装置108使用的加密/解密算法是否兼容。例如,在一些实施例中,源主机装置102可根据源主机装置102的配置与目的地主机装置106或密钥服务器110通信,以确定由源存储装置104和目的地存储装置108使用的加密/解密算法是否彼此兼容。在另一实施例中,源存储装置104(例如,源存储装置104的存储控制器214和/或加速器220)可验证由目的地存储装置108使用的加密/解密算法与由源存储装置104使用的加密/解密算法是否兼容。
66.在一些实施例中,如果由源存储装置104使用的加密/解密算法与由目的地存储装置108使用的加密/解密算法不兼容,则方法300可结束,处于不安全格式(例如,以明文)的所请求的数据可在被发送到目的地存储装置108之前首先由源存储装置104进行解密,并且目的地存储装置108可在将所请求的数据存储在目的地存储装置108中之前对所请求的数据进行再次加密。然而,本公开不限于此。例如,在另一实施例中,如果源存储装置104和目的地存储装置108彼此交换加密/解密算法信息,则所请求的数据仍然可以以加密格式被发送到目的地存储装置108,并且源存储装置104可将加密/解密算法信息提供给目的地存储装置108,以用于根据需要或期望对所请求的数据进行解密。例如,当源存储装置104和目的地存储装置108由不同的制造商生产时,这种情况可以是有用的。作为另一示例,在一些实施例中,如果目的地存储装置108不具有解密能力或者使用与源存储装置104的解密算法不同的解密算法,但是可通信地连接到目的地存储装置108的另一装置(例如,目的地主机装置106)具有解密能力(或使用兼容的解密算法),则所请求的数据仍然可以以加密格式被发送到目的地存储装置108,以由目的地存储装置108以加密格式被存储,并且所请求的数据可根据需要或期望由可通信地连接到目的地存储装置108的另一装置进行解密。
67.在一些实施例中,在框310,在不由源存储装置104对可作为加密数据被存储在源存储装置104中的所请求的数据的进行解密情况下,可按原样从源存储装置104读取所请求的数据。例如,如下面参照图4更详细地所讨论的,响应于(例如,在框305)确定源存储装置104和目的地存储装置108的加密/解密算法彼此兼容,源主机装置102可将的读取命令和用于覆盖对所请求的数据的解密的指示符发送到源存储装置104。在这种情况下,源存储装置104(例如,存储控制器214)可从源存储装置104的存储存储器组件216读取处于加密格式的所请求的数据,并且可响应于解密覆盖指示符而跳过对所请求的数据的解密。
68.在一些实施例中,在框315,将作为加密数据的仍处于加密格式的所请求的数据通过合适的传输层发送到目的地存储装置108。例如,如上所述,在一些实施例中,加密数据可通过源主机装置102和目的地主机装置106从源存储装置104被发送到目的地存储装置108。在另一实施例中,如上所述,加密数据可通过源存储装置104与目的地存储装置108之间的
安全通信通道或通路从源存储装置104被直接地发送到目的地存储装置108。
69.在一些实施例中,在框320,在不在目的地存储装置108处对所请求的数据进行再次加密的情况下,将作为加密数据被接收的所请求的数据按原样写入目的地存储装置108。例如,如下面参照图5更详细地所讨论的,响应于从目的地主机装置106接收写入命令和用于覆盖对所请求的数据的加密的指示符,目的地存储装置108可在响应于加密覆盖指示符而跳过对所请求的数据的加密的同时,将所请求的数据以接收的加密格式存储在目的地存储装置108的存储存储器组件216中。
70.在一些实施例中,在框325,将密钥传送到目的地存储装置108。如上所述,密钥可被推送到目的地存储装置108(例如,直接地或经由目的地主机装置106和/或密钥服务器110),或者密钥可根据需要或期望由目的地存储装置108(例如,直接地或经由目的地主机装置106)从源存储装置104、源主机装置102和密钥服务器110中的至少一个(例如,按需)拉取。例如,目的地存储装置108可根据需要或期望使用密钥来对所请求的内容进行解密,所请求的内容作为接收的由源存储装置104加密的加密数据被存储在目的地存储装置108中。
71.在一些实施例中,在框330,在目的地存储装置108处读取被存储为加密数据的所请求的数据。例如,在一些实施例中,目的地主机装置106可随后将读取命令发送到目的地存储装置108,以从目的地存储装置108的存储存储器组件216读取所请求的数据。在这种情况下,如下面参照图4更详细地所讨论的,解密覆盖指示符可不被提供,使得目的地存储装置108可在将所请求的内容提供给目的地主机装置106之前首先对所请求的内容进行解密。
72.因此,在一些实施例中,在框335,可取得密钥。如上所述,在一些实施例中,可根据需要或期望从源主机装置102、源存储装置104和密钥服务器110中的至少一个(例如,直接地或使用目的地主机装置106)按需由目的地存储装置108取得(例如,拉取)密钥。在一些实施例中,密钥可(例如,在所请求的数据被发送到目的地存储装置108之后立刻)被推送到目的地存储装置108。在这种情况下,目的地存储装置108可从目的地主机装置106取得密钥,从内部存储器取得密钥,或者从存储密钥的任何合适的密钥存储设备取得密钥。
73.在一些实施例中,在框340,可使用取得的密钥在目的地存储装置108处对作为接收的加密数据被存储在目的地存储装置108中的所请求的数据进行解密。例如,如上所讨论的,目的地存储装置108(例如,目的地存储装置108的存储控制器214和/或加速器220)可使用取得的密钥来对被存储为由源存储装置104加密的加密数据的所请求的数据进行解密,所请求的数据。在对所请求的数据进行解密之后,解密数据可被发送到请求装置(例如,目的地主机装置106),并且方法300可结束。
74.图4示出根据本公开的一个或多个实施例的用于存储装置之间的安全发送的读取数据的方法400的各种处理的流程图。例如,方法400可由图2中示出的存储装置204执行,存储装置204可对应于图1中示出的源存储装置104和目的地存储装置108中的至少一个。
75.然而,本公开不限于图4中示出的方法400的操作的顺序或数量,并且图4中示出的方法400的操作的顺序或数量可被改变为如本领域普通技术人员所认识到的任何期望的操作的顺序或数量。例如,在一些实施例中,次序可变化,或者方法400可包括更少或附加的操作。此外,方法400中示出的操作可由上述一个或多个示例实施例的组件和元件中的任何合适的一个或组件和元件的任何合适的组合来执行。
76.参照图1至图4,方法400可开始,并且在框405,可从主机装置接收针对加密数据的
读取命令。例如,在一些实施例中,读取命令可在图3的方法300的框310中由源存储装置104从源主机装置102接收,或者读取命令可在图3的方法300的框330中由目的地存储装置108从目的地主机装置106接收。因此,根据情况,解密覆盖指示符可从主机装置被接收或未被接收。
77.因此,在框410,存储装置可确定解密覆盖指示符是否被接收。例如,在图3的方法300的框310,响应于在框305确定源存储装置104和目的地存储装置108使用彼此兼容的加密/解密算法,可接收到解密覆盖指示符(例如,在框410的“是”)。当解密覆盖指示符被接收时(例如,框410的“是”),在框415,存储装置可例如从存储装置的存储存储器组件216读取加密数据,并且在框420,存储装置可在不首先对加密数据进行解密的情况下按原样发送加密数据。在图4中的框420的加密数据的发送可对应于在图3的方法300的框315中通过合适的传输层将加密数据发送到目的地存储装置108。因此,在框420,存储装置可将加密数据发送到主机装置,以用于经由目的地主机装置106发送到目的地存储装置108,或者存储装置可例如通过存储装置之间的安全通信通道或通路将加密数据直接地发送到目的地存储装置108。
78.在一些实施例中,在框425。存储装置可进一步传送密钥,并且方法400可结束。例如,在框425的密钥的传送可对应于图3的方法300中的框325的将密钥传送到目的地存储装置108。因此,存储装置可(例如,当目的地存储装置108请求密钥时)按需(例如,拉取)将密钥传送到源主机装置102、目的地存储装置108和密钥服务器110中的至少一个,或者可(例如,在加密数据被发送之后立刻)将密钥推送到源主机装置102、目的地存储装置108和密钥服务器110中的至少一个。
79.如上所述,密钥的传送可包括将密钥所有权或指示密钥所有权的信息传送到目的地存储装置108,使得存储在源存储装置104中的所请求的数据被宣布无用(例如,即时安全擦除)。在一些实施例中,密钥的传送可包括使用非对称密钥交换(例如,公钥/私钥),例如,使得源存储装置104、源主机装置102或密钥服务器110可保留私钥的所有权,而目的地存储装置108被分配公钥。然而,本公开不限于此,并且如上所讨论的,在一些实施例中,诸如,以在快照(例如,卷快照)、备份(例如,盘备份和/或卷备份等)和/或存档等的场景中为例,源存储装置104、源主机装置102或密钥服务器110可保留密钥的所有权,目的地存储装置108可不被提供用于对所请求的数据进行解密的密钥。
80.另一方面,当解密覆盖指示符未被接收时(例如,框410的“否”),在框430,存储装置可例如从存储装置的存储存储器组件216读取加密数据,并且在框435,存储装置可取得密钥,以在框440根据取得的密钥(例如,由存储控制器214和/或加速器220)对加密数据进行解密以生成解密数据。在一些实施例中,例如,在图3的方法300的框310,响应于在框305确定源存储装置104和目的地存储装置108使用彼此不兼容的加密/解密算法,可不接收解密覆盖指示符(例如,框410的“否”)。在这种情况下,在框435,源存储装置104可从源主机装置102,从内部存储器,或者从存储密钥的任何合适的密钥存储设备取得密钥,在框440,源存储装置104可使用取得的密钥对加密数据进行解密,在框445,源存储装置104可将解密数据发送到源主机装置102,并且方法400可结束。
81.在一些实施例中,例如,在图3的方法300的框330,例如,当目的地主机装置106在没有解密覆盖指示符的情况下将读取命令发送到目的地存储装置108时,可不接收解密覆
盖指示符(例如,框410的“否”)。在这种情况下,在框435,目的地存储装置108可通过从源存储装置104、源主机装置102和密钥服务器110中的至少一个(例如,直接地或使用目的地主机装置106)拉取密钥来取得密钥,或者当密钥已经被推送时,目的地存储装置108可从目的地主机装置106,从内部存储器,或者从存储密钥的任何合适的密钥存储设备取得密钥。在框440,目的地存储装置108可使用取得的密钥对加密数据进行解密,在框445,目的地存储装置108可将解密数据发送到请求装置(例如,目的地主机装置106),并且方法400可结束。
82.图5示出根据本公开的一个或多个实施例的用于存储装置之间的安全发送的写入数据的方法500的各种处理的流程图。例如,方法500可由图2中示出的存储装置204执行,存储装置204可对应于图1中示出的源存储装置104和目的地存储装置108中的至少一个。
83.然而,本公开不限于图5中示出的方法500的操作的顺序或数量,并且图5中示出的方法500的操作的顺序或数量可被改变为如本领域普通技术人员所认识到的任何期望的操作的顺序或数量。例如,在一些实施例中,次序可变化,或者方法500可包括更少或附加的操作。此外,方法500中示出的操作可由上述一个或多个示例实施例的组件和元件中的任何合适的一个或组件和元件的任何合适的组合来执行。
84.参照图1至图3和图5,方法500可开始,并且在框505,可从主机装置接收针对数据的写入命令。例如,在一些实施例中,例如,当源存储装置104和目的地存储装置108的加密/解密算法在图3的方法300的框305彼此不兼容时,针对在图3的方法300的框320中接收的处于加密格式的数据,可由目的地存储装置108从目的地主机装置106接收写入命令,或者针对接收的处于不安全格式的数据(例如,明文数据),可由目的地存储装置108从目的地主机装置106接收写入命令。因此,根据情况,可从主机装置接收或不接收加密覆盖指示符。
85.因此,在框510,存储装置可确定加密覆盖指示符是否被接收。例如,在图3的方法300的框320,当目的地主机装置106以加密格式接收所请求的数据时,可接收加密覆盖指示符(例如,框510的“是”)。当接收加密覆盖指示符时(例如,框510的“是”),在框515,存储装置可接收处于加密格式的数据作为加密数据,并且在框520,存储装置可在不首先对加密数据进行再次加密的情况下,将加密数据按原样写入存储装置的存储存储器组件216中,并且方法500可结束。
86.另一方面,当未接收到加密覆盖指示符时(例如,框510的“否”),在框525,存储装置可接收作为不安全数据(例如,明文数据)的数据,在框530,存储装置可对数据进行加密以生成加密数据,在框535,存储装置可将加密数据写入存储装置的存储存储器组件216,并且方法500可结束。在一些实施例中,例如,响应于在图3的方法300的框305确定由源存储装置104和目的地存储装置108使用的加密/解密算法彼此不兼容,可不接收加密覆盖指示符(例如,框510的“否”)。在这种情况下,源存储装置104可在所请求的数据被发送到目的地存储装置108之前首先对所请求的数据进行解密,目的地存储装置108可在将接收的解密数据存储在目的地存储装置108中之前首先对接收的解密数据进行再次加密。
87.根据本公开的一个或多个实施例,处于加密格式的所请求的数据可在存储装置之间被发送,因此,所请求的数据在存储装置之间的发送期间可以是相对安全的。此外,根据本公开的一个或多个实施例,所请求的数据可不必在由源存储装置104发送之前被解密,并且不必在由目的地存储装置108存储之前被再次加密。因此,延迟和功耗可被减少和/或吞吐量可被增加。
88.虽然已经根据具有特定处理次序的各种处理描述了根据本公开的一个或多个实施例的各种方法,但是本公开不限于此。例如,当特定实施例可被不同地实现时,特定的处理次序可与描述的次序不同。例如,连续描述的两个处理可同时或基本上同时被执行,可以以与描述的次序相反的次序被执行,或者可以以不遵循本公开中呈现的顺序进展的次序被执行。
89.将理解,尽管在此可使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应被这些术语限制。这些术语用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分进行区分。因此,在不脱离本公开的精神和范围的情况下,上面描述的第一元件、第一组件、第一区域、第一层或第一部分能够被称为第二元件、第二组件、第二区域、第二层或第二部分。
90.将理解,当元件或层被称为“在”另一元件或层“上”、“连接到”或“结合到”另一元件或层时,该元件或层可直接在该另一元件或层上、直接连接到或直接结合到该另一元件或层,或者可存在一个或多个中间元件或层。另外,还将理解,当元件或层被称为“在”两个元件或层“之间”时,该元件或层可以是两个元件或层之间的唯一元件或层,或者也可存在一个或多个中间元件或层。
91.在此使用的术语出于描述特定实施例的目的,并不意在限制本公开。如在此所用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。还将理解,术语“包括”、“包含”和“具有”在本说明书中使用时,说明存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。如在此所用的,术语“和/或”包括相关所列项中的一个或多个的任何和全部组合。例如,表述“a和/或b”表示a,b,或者a和b。诸如
“……
中的至少一个”的表述在位于一列元素之后时,修饰整列元素,而不修饰列中的单个元素。例如,表述“a、b和c中的至少一个”指示:仅a、仅b、仅c、a和b二者、a和c二者、b和c二者、全部的a、b和c或者它们的变型。
92.如在此所用的,术语“基本上”、“约”和类似术语用作近似术语而不是程度术语,并且意在解释本领域普通技术人员将认识到的测量值或计算值的固有偏差。此外,在描述本公开的实施例时“可”的使用表示“本公开的一个或多个实施例”。如在此所用的,术语“使用”、“正在使用”和“被使用”可分别被认为与术语“利用”、“正在利用”和“被利用”同义。
93.根据在此描述的本公开的实施例的电子装置或电气装置和/或任何其它相关装置或组件可利用任何合适的硬件、固件(例如,专用集成电路)、软件、或者软件、固件和硬件的组合来实现。例如,这些装置的各种组件可形成在一个集成电路(ic)芯片上或分开的ic芯片上。此外,这些装置的各种组件可被实现在柔性印刷电路膜、载带封装件(tcp)、印刷电路板(pcb)上,或者形成在一个基底上。此外,这些装置的各种组件可以是在一个或多个计算装置中的一个或多个处理器上运行的执行计算机程序指令并与其它系统组件交互以执行在此描述的各种功能的进程或线程。计算机程序指令被存储在存储器中,存储器可使用标准存储器装置(诸如,以随机存取存储器(ram)为例)被实现在计算装置中。计算机程序指令还可被存储在其它非暂时性计算机可读介质(诸如,以cd-rom、闪存驱动器等为例)中。此外,本领域技术人员应认识到:在不脱离本公开的示例实施例的精神和范围的情况下,各种计算装置的功能可被组合或集成到单个计算装置中,或者特定计算装置的功能可被分布在一个或多个其它计算装置上。
94.除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有和本公开所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地如此定义,否则术语(诸如,在通用字典中定义的术语)应被解释为具有与它们在相关领域的上下文和/或本说明书中的含义一致的含义,而不应被理想化或过于形式化地解释。
95.尽管已经描述了一些示例实施例,但是本领域技术人员将容易理解,在不脱离本公开的精神和范围的情况下,在示例实施例中各种修改是可行的。将理解,除非另外描述,否则每个实施例内的特征或方面的描述通常应被认为可用于其它实施例中的其它类似特征或方面。因此,对本领域的普通技术人员将清楚的是,除非另有具体地指示,否则结合特定实施例描述的特征、特性和/或元件可被单独使用,或者与结合其它实施例描述的特征、特性和/或元件组合使用。因此,将理解,前述是各种示例实施例的说明,并且不应被解释为对在此公开的特定示例实施例的限制,并且对公开的示例实施例的各种修改以及其它示例实施例意在被包括在所附权利要求及其等同物中限定的本公开的精神和范围内。
再多了解一些

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

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

相关文献