CN104160407A - 利用存储控制器总线接口以确保存储设备和主机之间的数据传输安全 - Google Patents

利用存储控制器总线接口以确保存储设备和主机之间的数据传输安全 Download PDF

Info

Publication number
CN104160407A
CN104160407A CN201380011608.8A CN201380011608A CN104160407A CN 104160407 A CN104160407 A CN 104160407A CN 201380011608 A CN201380011608 A CN 201380011608A CN 104160407 A CN104160407 A CN 104160407A
Authority
CN
China
Prior art keywords
order
data
encryption context
main frame
memory device
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
CN201380011608.8A
Other languages
English (en)
Other versions
CN104160407B (zh
Inventor
C·J·萨考纳
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN104160407A publication Critical patent/CN104160407A/zh
Application granted granted Critical
Publication of CN104160407B publication Critical patent/CN104160407B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明所公开的实施例提供了一种确保存储设备和主机之间的数据传输安全的系统。在操作过程中,系统从在主机上执行的设备驱动程序获取输入/输出(I/O)命令和与I/O命令相关联的加密上下文。接着,所述系统利用主机与存储设备之间的存储控制器总线接口将加密上下文应用于与I/O命令相关的数据,其中所述加密上下文使加密形式的数据能够在存储设备和主机之间传输。最后,系统利用存储控制器总线接口向存储设备发出I/O命令,其中I/O命令由存储设备处理。

Description

利用存储控制器总线接口以确保存储设备和主机之间的数据传输安全
技术领域
本实施例涉及用于计算机系统的存储设备。更具体地,本实施例涉及利用存储设备控制器总线接口来对存储设备和连接至所述存储设备上的主机之间传输的数据进行加密和解密的技术。
背景技术
现代计算机系统通常包括具有处理器和存储器的母板,以及通过多种接口连接至母板的一组外围组件。例如,串行高级技术附件(SATA)接口可有利于存储设备(例如,硬盘驱动器(HDD)、光驱、固态硬盘驱动器(SSD)、混合硬盘驱动器(HHD)等)和母板之间的数据传输,而外围组件快速互联(PCIe)总线可允母板与多个集成和/或添加式外围组件之间通信。
在计算机系统内此类数据传输可与多个安全问题和/或缺点相关联。具体地,存储和/或传输未加密明文形式的数据的存储设备可容易受到窃听者和/或攻击者未授权访问的攻击。例如,虽然所述数据在存储设备中静止和/或穿越HDD与计算机系统母板之间的接口(例如,SATA接口)进行传输,HDD未加密数据的保密性可能会受到影响。另一方面,存储之前采用HDD加密的数据可在静止的同时受到保护,但数据在HDD与母板之间进行传输之前也可能是未加密的,因此容易受到HDD外部的未授权访问的攻击。
为进一步确保数据安全,母板上的中央处理单元(CPU)可在通过接口向存储设备传输数据之前对数据进行加密。因此,所述数据的保密性既可在数据静止时得以保持,也可在数据通过接口传输的过程中保持。然而,基于CPU的存储数据的加密可需要CPU顺序检索数据,复制数据,加密复制的数据,然后将数据传输到存储设备,因此增加了计算开销和/或计算机系统的功耗。
从而,我们需要一种用于降低与确保计算机系统中的数据存储和传输安全相关联的功耗和/或计算开销的机构。
发明内容
本发明所公开的实施例提供一种确保在存储设备和主机之间的数据传输安全的系统。在操作过程中,所述系统获取来自在主机上执行的设备驱动程序的输入/输出(I/O)命令和与I/O命令相关联的加密上下文。接着,所述系统利用主机与存储设备之间的存储控制器总线接口将加密上下文应用于与I/O命令相关联的数据,其中加密上下文允许加密形式的数据在存储设备和主机之间传输。最后,所述系统利用存储控制器总线接口向存储设备发出I/O命令,其中I/O命令由存储设备处理。
在一些实施例中,在I/O命令由存储设备完成之后,所述系统还将已完成的I/O命令通知给设备驱动程序。
在一些实施例中,从主机获取I/O命令和加密上下文包括:
(i)从设备驱动程序中获取与I/O命令与加密上下文相关联的一组存储地址;以及
(ii)利用直接存储器访问(DMA)将I/O命令和加密上下文从主机上的存储地址传输到存储控制器总线接口上的缓冲区。
在一些实施例中,所述系统根据I/O命令的类型来处理I/O命令。如果I/O命令对应于写入命令,则系统在向存储设备发出I/O命令之前利用加密上下文来加密所述数据。如果I/O命令对应于读取命令,则在I/O命令由存储设备处理之后系统利用加密上下文来解密所述数据。
在一些实施例中,如果I/O命令对应于读取命令,则在将已完成的I/O命令通知给设备驱动程序之前,系统还将解密的数据传输到主机上的一组存储地址(例如,利用DMA)。
在一些实施例中,加密上下文与其中应用、文件和用户中的至少一者相关联。换句话讲,加密上下文可允许实现主机内不同加密粒度的数据加密,因此提供与常规的基于块的存储设备的加密和解密相比更大的数据安全灵活性。
在一些实施例中,加密上下文包括一个或多个密匙和一个初始向量。例如,密匙和/或初始向量可用于执行数据的AES-XTS加密。
附图说明
图1示出了根据本发明所公开的实施例的系统的示意图。
图2示出了根据本发明所公开的实施例的存储控制器总线接口。
图3示出了根据本发明所公开的实施例的示例性加密上下文。
图4示出了根据本发明所公开的实施例的流程图,该流程图举例示出确保存储设备和主机之间数据传输安全的过程。
图5示出了根据本发明所公开的实施例的计算机系统。
在附图中,类似的附图标号是指相同的附图元件。
具体实施方式
给出以下描述是为了使本领域的任何技术人员能够做出并使用实施例,并且以下描述是在特定应用及其要求的语境中提供的。对于本领域的技术人员而言,对本发明所公开的实施例的各种修改将是显而易见的,并且可以将本文定义的一般原理应用于其他实施例和应用而不脱离本公开的实质和范围。因此,本发明不限于所示的实施例,但要符合根据本文公开的原理和特征的最广泛范围。
该具体实施方式中描述的数据结构和代码通常存储在计算机可读存储介质上,其可以是能够存储供计算机系统使用的代码和/或数据的任何设备或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁性和光学存储设备,例如磁盘驱动器、磁带、CD(光盘)、DVD(数字多功能光盘或数字视频光盘)、或现在已知或以后开发的能够存储代码和/或数据的其他介质。
可以将具体实施方式部分描述的方法和过程具体化为代码和/或数据,该方法和过程可存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行计算机可读存储介质上存储的代码和/或数据时,计算机系统执行具体化为数据结构和代码并存储于计算机可读存储介质内的方法和过程。
此外,可以将本文描述的方法和过程包括在硬件模块或装置中。这些模块或装置可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件模块或一段代码的专用或共享处理器、和/或其他现在已知或以后开发的可编程逻辑设备。当激活硬件模块或装置时,它们执行包括在其中的方法和过程。
本发明所公开的实施例提供了一种用于在计算机系统内传输数据的方法和系统。如图1所示,计算机系统可包括存储设备110,诸如硬盘驱动器(HDD)、固态硬盘驱动器(SSD)和/或通过诸如串行ATA(SATA)接口的存储控制器总线接口108连接至处理器(例如,中央处理单元(CPU))和/或计算机系统内的存储器的混合硬盘驱动器(HHD)。
存储设备110可以存储用于在处理器上执行的应用程序102和/或文件系统104的数据。为了访问和/或修改数据,应用程序102可对一个或多个文件向文件系统104做出系统调用,并且文件系统104可向用于存储设备110的设备驱动程序106发出与系统调用对应的输入/输出(I/O)请求。接着,设备驱动程序106可构建I/O命令114,该命令包含逻辑块地址(LBA)、多个块、和/或与一个或多个请求文件相关的其他信息,并通过存储控制器总线接口108将I/O命令114传输到存储设备110。然后,存储设备110可通过读取和/或写入I/O命令114中指定的块来处理I/O命令114。
本领域的技术人员将会知道,当数据在存储设备110上静止和/或数据通过存储控制器总线接口108传输的同时,计算机系统上的未加密数据可容易受到未授权访问的攻击。为规避此类漏洞,数据可通过存储设备110和/或在计算机系统的CPU上执行的进程进行加密。例如,存储设备110的控制器可通过利用128位高级加密标准(AES)对数据进行加密来确保存储设备110上的数据的安全。
然而,通过CPU和/或存储设备110来加密所述数据可具有多个缺点。第一,由存储设备110加密的数据可被解密以用于通过存储控制器总线接口108进行传输,因此容易受到攻击者的窥探。另一方面,在通过存储控制器总线接口108传输到存储设备110之前,通过CPU来加密所述数据可防止数据存储和传输过程中的未授权数据访问,但也可增加计算开销和/或计算机系统的功耗。例如,通过将数据从第一个缓冲区复制到第二个缓冲区,在第二缓冲区对数据加密,然后将数据传送给存储设备110,CPU可以确保写入存储设备110过程中的数据安全。与数据复制和加密相关联的另外的CPU周期可导致相应的写入延迟增加,以及执行写入操作时CPU消耗的功率的增加。
在一个或多个实施例中,图1的系统通过在存储控制器总线接口108上执行加密来降低存储设备110上的功耗和/或与基于CPU的数据加密相关联的延迟。如上所述,应用程序102和/或计算机系统的另一个组件可以通过对文件系统104做出系统调用来读取和/或写入存储设备110上的数据。
接着,文件系统104可向设备驱动程序106提供用于系统调用的加密上下文112。在一个或多个实施例中,加密上下文112允许在存储设备110和计算机系统之间传输加密形式的数据。例如,加密上下文112可包括一个或多个密钥和一个初始向量,与AES-XTS数据加密一起使用。在向存储设备110传输数据之前,加密上下文112可然后用于对计算机系统上的数据进行加密,并且在从存储设备110接收到数据之后可用于对计算机系统上的数据进行解密。下面相对于图3还详细地讨论了加密上下文。
在一个或多个实施例中,文件系统104包括对不同加密粒度的数据的加密和解密进行管理的功能性。例如,文件系统104可维护一组加密上下文,包括加密上下文112,以用于加密和解密存储设备110上的数据。文件系统104还可将密钥和/或初始向量从每个加密分配至应用程序、文件和/或用户。然后,与应用程序、文件和/或用户相关联的数据可使用对应的加密上下文进行加密和解密。换句话讲,在确保计算机系统上的数据安全方面,与存储设备(例如,存储设备110)和/或执行基于块的数据加密和解密的控制器相比,文件系统104可提供更多的灵活性。
一旦加密上下文112可用,设备驱动程序106就可将加密上下文112放到计算机系统上的存储器内,并向存储控制器总线接口108提供用于加密上下文112的存储地址。设备驱动程序106还可基于系统调用在存储器内构建I/O命令114,并向存储控制器总线接口108提供用于I/O命令114的存储地址。然后,存储控制器总线接口108可使用直接存储器访问(DMA)将I/O命令114和加密上下文112从计算机系统上的存储地址转移至缓冲区116。一旦I/O命令114和加密上下文112位于缓冲区116中,存储控制器总线接口108就可将加密上下文112应用于与I/O命令114相关联的数据,并向存储设备110发出I/O命令114来由存储设备110进行处理,如下相对于图2进一步详细地讨论。
图2示出了根据本发明所公开的实施例的存储控制器总线接口108。如上所述,存储控制器总线接口108可用于在存储设备(例如,图1的存储设备110)和主机(例如,计算机系统)之间传输数据。例如,存储控制器总线接口108可对应于高级主机控制器接口(AHCI)控制器(例如,主机总线适配器),该控制器将SATA HDD连接至主机上的包含CPU和存储器的母板。作为另外一种选择,存储控制器总线接口108可以通过用于SSD的集成NAND控制器来实现,该集成NAND控制器将SSD上的一组NAND芯片连接至母板。
此外,存储控制器总线接口108可通过同时使加密形式的数据在存储设备和主机之间进行存储和传输来防止数据的未授权访问。首先,存储控制器总线接口108可利用诸如外围组件快速互连(PCIe)接口等存储器接口202和DMA引擎204从在主机上执行的设备驱动程序(例如,图1的设备驱动程序106)获取I/O命令(例如,图1的I/O命令114)和与I/O命令相关联的加密上下文(例如,图1的加密上下文112)。例如,所述设备驱动程序可向存储控制器总线接口108提供一组与I/O命令相关联的存储地址和加密上下文,并且DMA引擎204可利用存储器接口202将I/O命令、相关数据和/或加密上下文从主机上的存储地址传输到缓冲区116,而不直接访问主机的CPU。
为了保护数据,存储控制器总线接口108内的加密装置206可将加密上下文应用于数据,因此使得加密形式的数据能够在存储设备和主机之间进行传输。例如,加密装置206可包括一组平行操作的加密引擎,每个加密引擎利用来自加密上下文的一组密钥和初始向量可对一部分数据执行AES-XTS加密。
存储控制器总线接口108内的命令处理装置208也可以处理I/O命令,并通过存储设备接口210(例如,SATA接口)向存储设备发出I/O命令,以由存储设备进行处理。例如,如果I/O命令对应于写入命令,在命令处理装置208向存储设备发出I/O命令之前,加密装置206可以使用加密上下文来加密所述数据。如果I/O命令对应于读取命令,在I/O命令由存储设备处理并且数据通过存储设备接口210被接收之后,加密装置206可使用加密上下文来解密所述数据。然后,存储控制器总线接口108可将解密的数据传输到主机上的一组存储地址(例如,使用存储器接口202和DMA引擎204),以供应用程序和/或组件用来请求数据。
通过将用于对存储器进行读写的最小块尺寸(例如,通过存储器接口202)设定为用于在存储设备接口210上加密和解密传输的数据时采用的块尺寸,可进一步有利于存储控制器总线接口108的操作。例如,存储设备可对应于页面尺寸为4KB的SSD。因此,每个页面可对应于存储设备与存储控制器总线接口108之间传输的数据的最小单元。继而,存储器接口202上的I/O的最小块尺寸也可设置为4KB以简化数据的加密和解密(例如,通过允许加密装置206仅对完整页面进行加密和解密)。
在I/O命令由存储设备完成之后,存储控制器总线接口108可将已完成的I/O命令通知给设备驱动程序。例如,存储控制器总线接口108可以通过存储器接口202将已完成的I/O命令的通知发送到设备驱动程序。然后,存储控制器总线接口108可从设备驱动程序获取新的I/O命令和加密上下文,并按上述方式处理新的I/O命令,直到向存储设备发出的所有未处理I/O命令均已完成。
由于存储设备上的数据加密和解密是由存储控制器总线接口108提供的,因此当数据在存储设备上处于静止时,以及数据在存储设备和主机之间传输的过程中(例如,通过存储控制器总线接口108),数据都可以获得保护以防止未授权访问。此外,存储控制器总线接口108可减少与基于CPU的数据加密相关联的性能开销和/或功耗。例如,通过按顺序创建写入命令,复制与写入命令相关联的数据,在副本上执行加密,然后将写入命令和加密的数据传输到存储设备,CPU可以对存储设备执行写入操作。另一方面,当其他I/O命令正在由CPU和/或存储设备创建、传输和/或处理的同时,存储控制器总线接口108可对与写入命令相关联的数据进行加密而不复制数据。相似地,将数据加密从CPU卸载至存储控制器总线接口108可以使与加密相关联的功耗从10W以上减少到少于3W。
图3示出了根据本发明所公开的实施例的示例性加密上下文。加密上下文可被保存在包含其他加密上下文的加密上下文表中,加密上下文表中的条目可与存储控制器总线接口(例如,图1的存储控制器总线接口108)的命令表(例如AHCI命令表)中的I/O命令相匹配。例如,加密上下文表中的加密上下文可与命令表中对应的I/O命令共享一个索引。然后,加密上下文和I/O命令可通过同时向加密上下文表和命令列表提供索引来进行检索。
如图3所示,加密上下文可以由16个32位数据字构成。第一个数据字(例如,“DW0”)可包含块尺寸302、一组保留位304和使能位306。块尺寸302可规定每个待加密的块的长度,并可表示为4096字节的2x乘数。例如,块尺寸302的值为0可表示每个块长4096字节,值1可表示每个块长8192字节,并且值2可表示每个块长16384字节。在第一个数据字的后半部分中,保留位304可清零,并且使能位306可用于启用或禁用与加密上下文相关联的数据的加密和/或解密。例如,使能位306可以进行设置来启用块加密,并可以清零来禁用块加密。
第二数据字(例如,“DW1”)可包含块计数308,其表示利用加密上下文进行加密的块的数目。块计数308可以由DMA引擎(例如,图2的DMA引擎204)使用,以确定需要从初始向量表中获取多少数据。此外,第三数据字和第四数据字(例如,“DW2”和“DW3”)中的初始向量表地址310和上级初始向量表地址312可以指定针对初始向量表的64位地址。
最后,其余的加密上下文(例如,“DW4”到“DW15”)可能包括两个128位密钥314-316和一个128位初始向量318,以用于AES-XTS数据加密。因此,加密上下文可是结构化的,使得对于一个4KB大小的I/O,只需要从加密上下文表获取加密上下文,而不需要利用初始向量表地址310和上级初始向量表地址312来单独获取初始向量表。
图4示出了根据本发明所公开的实施例的流程图,该流程图示出了确保存储设备和主机之间的数据传输安全的过程。在一个或多个实施例中,可省略、重复和/或以不同顺序执行一个或多个步骤。因此,图4中所示步骤的具体布置不应理解为是对实施例的范围的限制。
初始,I/O命令和与I/O命令相关联的加密上下文从主机(操作402)上执行的设备驱动程序获取。为了获取I/O命令和加密上下文,与I/O命令和加密上下文相关联的一组存储地址可从设备驱动程序获得。然后,DMA可被用来将I/O命令和加密上下文从主机上的存储地址转移到主机与存储设备之间的存储控制器总线接口上的缓冲区。
通过将加密上下文应用于与I/O命令相关联的数据以及向存储设备发出I/O命令以由存储设备进行处理,存储控制器总线接口可对I/O命令进行处理。加密上下文可允许在存储设备和主机之间传输加密形式的数据,因此保护数据的保密性。此外,存储控制器总线接口可将加密上下文应用于与应用程序、文件和/或用户相关联的数据。换句话讲,加密上下文可允许主机内的数据按不同的加密粒度进行加密,因此在确保数据安全方面提供与常规的基于块的存储设备加密和解密相比更大的灵活性。
此外,存储控制器总线接口可基于I/O命令的类型对I/O命令进行处理(操作404)。如果I/O命令对应于读取命令,则存储控制器总线接口可以向存储设备发出I/O命令(操作406),然后在从存储设备中检索到数据后使用加密上下文来解密所述数据(操作408)。一旦数据被解密,存储控制器总线接口可将解密的数据传输到主机上的一组存储地址(操作410)以供主机使用。如果I/O命令对应于写入命令,则存储控制器总线接口可在向存储设备发出I/O命令(操作414)之前,对需要写入的数据进行加密(操作412)。最后,在I/O命令由存储设备和/或存储控制器总线接口完成之后,将已完成的I/O命令通知给设备驱动程序(操作416)。
图5示出根据本发明所公开的实施例的计算机系统500。计算机系统500可对应于包括处理器502、存储器504、存储设备506和/或存在于电子计算设备中的其他组件的装置。处理器502可支持与计算机系统500中的其他处理器一起进行并行处理和/或多线程操作。计算机系统500还可包括输入/输出(I/O)设备,例如键盘508、鼠标510和显示器512。
计算机系统500可包括执行本发明实施例的各种组件的功能性。具体地,计算机系统500可包括对计算机系统500上的硬件和软件资源的使用进行协调的操作系统(未示出),以及为用户执行专门任务的一个或多个应用程序。为了针对用户执行任务,应用程序可从操作系统获得计算机系统500上的硬件资源的使用情况,并通过由操作系统提供的硬件和/或软件框架与用户进行交互。
在一个或多个实施例中,计算机系统500提供了一种系统以确保存储设备(例如,存储器506)与主机之间的数据传输安全。该系统可包括设备驱动程序,以及主机与存储设备之间的存储控制器总线接口。设备驱动程序可在主机上执行,并向存储控制器总线接口提供输入/输出(I/O)命令以及与I/O命令相关联的加密上下文。存储控制器总线接口可将加密上下文应用于与I/O命令相关联的数据,以使加密形式的数据能够在存储设备和主机之间传输。存储控制器总线接口还可向存储设备发出I/O命令,以由存储设备对I/O命令进行处理。最后,该系统也包括文件系统。在主机使用存储设备期间,该文件系统创建并管理加密上下文。
此外,计算机系统500的一个或多个组件可被远程定位并经网络连接到其他组件。本发明实施例的各部分(例如,设备驱动程序、存储控制器总线接口、文件系统、存储设备等)也可位于实现实施例的分布式系统的不同节点上。例如,本发明实施例可采用云计算系统来实现,该系统可在远程存储设备和主机之间传输数据。
仅仅出于例示和描述的目的给出了各种实施例的前述描述。它们并非旨在为详尽的,也不旨在将本发明限制为所公开的形式。因此,对于本领域技术人员而言许多修改和变型将是显而易见的。另外,以上公开并非旨在限制本发明。

Claims (23)

1.一种确保存储设备和主机之间的数据传输安全的方法,包括:
从在所述主机上执行的设备驱动程序获取输入/输出(I/O)命令以及与所述I/O命令相关联的加密上下文;以及
利用所述主机和所述存储设备之间的存储控制器总线接口以:
将所述加密上下文应用于与所述I/O命令相关联的数据,其中所述加密上下文允许加密形式的所述数据能够在所述存储设备和所述主机之间传输;以及
向所述存储设备发出所述I/O命令,其中所述I/O命令由所述存储设备处理。
2.根据权利要求1所述的方法,还包括:
在所述I/O命令由所述存储设备完成之后,将所述已完成的I/O命令通知给所述设备驱动程序。
3.根据权利要求1所述的方法,其中从所述主机获取所述I/O命令和所述加密上下文包括:
从所述设备驱动程序中获取与所述I/O命令和所述加密上下文相关联的一组存储地址;以及
利用直接存储器访问(DMA)将所述I/O命令和所述加密上下文从所述主机上的存储地址传输到所述存储控制器总线接口上的缓冲区。
4.根据权利要求1所述的方法,其中将所述加密上下文应用于与所述I/O命令相关联的数据包括:
如果所述I/O命令对应于写入命令,则在向所述存储设备发出所述I/O命令之前利用所述加密上下文来加密所述数据;并且
如果所述I/O命令对应于读取命令,则在所述I/O命令由所述存储设备处理之后利用所述加密上下文来解密所述数据。
5.根据权利要求4所述的方法,其中如果所述I/O命令对应于所述读取命令,则所述方法还包括:
将所述解密的数据传输到所述主机上的一组存储地址。
6.根据权利要求1所述的方法,其中所述加密上下文与应用程序、文件和用户中的至少一者相关联。
7.根据权利要求1所述的方法,其中所述加密上下文包括:
一个或多个密钥;和
初始向量。
8.一种用于确保存储设备和主机之间的数据传输安全的系统,包括:
设备驱动程序,其在所述主机上执行,并被配置为向所述主机和所述存储设备之间的存储控制器总线接口提供输入/输出(I/O)命令以及与所述I/O命令相关联的加密上下文;和
所述存储控制器总线接口,其被配置为:
将所述加密上下文应用于与所述I/O命令相关联的数据,其中所述加密上下文使加密形式的所述数据能够在所述存储设备和所述主机之间传输;以及
向所述存储设备发出所述I/O命令,其中所述I/O命令由所述存储设备处理。
9.根据权利要求8所述的系统,还包括:
文件系统,其被配置为在所述主机使用所述存储设备的过程中创建和管理所述加密上下文。
10.根据权利要求8所述的系统,其中在所述I/O命令由所述存储设备完成之后,所述存储控制器被进一步配置为:
将所述已完成的I/O命令通知给所述设备驱动程序。
11.根据权利要求8所述的系统,其中向所述存储控制器总线接口提供所述I/O命令和所述加密上下文包括:
向所述存储控制器总线接口提供与所述I/O命令和所述加密上下文相关联的一组存储地址;以及
利用直接存储器访问(DMA)将所述I/O命令和所述加密上下文从所述主机上的存储地址传输到所述存储控制器总线接口上的缓冲区。
12.根据权利要求8所述的系统,其中将所述加密上下文应用于与所述I/O命令相关联的数据包括:
如果所述I/O命令对应于写入命令,则在向所述存储设备发出所述I/O命令之前利用所述加密上下文来加密所述数据;并且
如果所述I/O命令对应于读取命令,则在所述I/O命令由所述存储设备处理之后利用所述加密上下文来解密所述数据。
13.根据权利要求12所述的系统,其中如果所述I/O命令对应于所述读取命令,则所述存储控制器总线接口被进一步配置为:
将所述解密的数据传输到所述主机上的一组存储地址。
14.根据权利要求13所述的系统,其中所述解密的数据利用DMA传输到所述一组存储地址。
15.根据权利要求8所述的系统,其中所述加密上下文与应用程序、文件和用户中的至少一者相关联。
16.根据权利要求8所述的系统,其中所述加密上下文包括:
一个或多个密钥;和
初始向量。
17.一种存储指令的计算机可读存储介质,所述指令在由计算机执行时,使所述计算机执行一种方法来确保在存储设备和主机之间的数据传输安全,所述方法包括:
从在所述主机上执行的设备驱动程序获取所述输入/输出(I/O)命令以及与所述I/O命令相关联的加密上下文;以及
利用所述主机和所述存储设备之间的存储控制器总线接口以:
将所述加密上下文应用于与所述I/O命令相关联的数据,其中所述加密上下文使加密形式的所述数据能够在所述存储设备和所述主机之间传输;以及
向所述存储设备发出所述I/O命令,其中所述I/O命令由所述存储设备处理。
18.根据权利要求17所述的计算机可读存储介质,所述方法还包括:
在所述I/O命令由所述存储设备完成之后,将所述已完成的I/O命令通知给所述设备驱动程序。
19.根据权利要求17所述的计算机可读存储介质,其中从所述主机获取所述I/O命令和所述加密上下文包括:
从所述设备驱动程序获取与所述I/O命令和所述加密上下文相关联的一组存储地址;以及
利用直接存储器访问(DMA)将所述I/O命令和所述加密上下文从所述主机上的存储地址传输到所述存储控制器总线接口上的缓冲区。
20.根据权利要求17所述的计算机可读存储介质,其中将所述加密上下文应用于与所述I/O命令相关联的数据包括:
如果所述I/O命令对应于写入命令,则在向所述存储设备发出所述I/O命令之前利用所述加密上下文来加密所述数据;并且
如果所述I/O命令对应于读取命令,则在所述I/O命令由所述存储设备处理之后利用所述加密上下文来解密所述数据。
21.根据权利要求20所述的计算机可读存储介质,其中如果所述I/O命令对应于所述读取命令,则所述方法还包括:
将所述解密的数据传输到所述主机上的一组存储地址。
22.根据权利要求17所述的计算机可读存储介质,其中所述加密上下文与应用程序、文件和用户中的至少一者相关联。
23.根据权利要求17所述的计算机可读存储介质,其中所述加密上下文包括:
一个或多个密钥;和
初始向量。
CN201380011608.8A 2012-02-29 2013-02-27 利用存储控制器总线接口以确保存储设备和主机之间的数据传输安全 Active CN104160407B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/408,725 2012-02-29
US13/408,725 US9152825B2 (en) 2012-02-29 2012-02-29 Using storage controller bus interfaces to secure data transfer between storage devices and hosts
PCT/US2013/028053 WO2013130632A1 (en) 2012-02-29 2013-02-27 Using storage controller bus interfaces to secure data transfer between storage devices and hosts

Publications (2)

Publication Number Publication Date
CN104160407A true CN104160407A (zh) 2014-11-19
CN104160407B CN104160407B (zh) 2017-04-05

Family

ID=47892000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380011608.8A Active CN104160407B (zh) 2012-02-29 2013-02-27 利用存储控制器总线接口以确保存储设备和主机之间的数据传输安全

Country Status (7)

Country Link
US (1) US9152825B2 (zh)
EP (1) EP2803012B1 (zh)
JP (1) JP6067757B2 (zh)
KR (1) KR101742364B1 (zh)
CN (1) CN104160407B (zh)
AU (1) AU2013226133B2 (zh)
WO (1) WO2013130632A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688750A (zh) * 2016-08-05 2018-02-13 波音公司 用于集成存储介质的静止数据(dar)加密
CN108449172A (zh) * 2017-01-31 2018-08-24 慧与发展有限责任合伙企业 输入/输出数据加密
CN110337653A (zh) * 2017-02-24 2019-10-15 微软技术许可有限责任公司 保护无保护硬件总线
CN112836247A (zh) * 2019-11-25 2021-05-25 美光科技公司 与存储器子系统的安全数据通信
CN114691049A (zh) * 2022-04-29 2022-07-01 无锡众星微系统技术有限公司 一种存储设备的i/o控制方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665501B1 (en) * 2013-06-18 2017-05-30 Western Digital Technologies, Inc. Self-encrypting data storage device supporting object-level encryption
US9461815B2 (en) * 2013-10-18 2016-10-04 Advanced Micro Devices, Inc. Virtualized AES computational engine
KR102263880B1 (ko) * 2014-06-19 2021-06-11 삼성전자주식회사 호스트 컨트롤러 및 시스템-온-칩
US9661007B2 (en) * 2015-03-18 2017-05-23 Intel Corporation Network interface devices with remote storage control
US10140457B2 (en) * 2015-07-31 2018-11-27 Intel Corporation Secure input/output device management
CN105243344B (zh) * 2015-11-02 2020-09-01 上海兆芯集成电路有限公司 具有硬盘加密功能的芯片组以及主机控制器
US10225247B2 (en) 2015-12-14 2019-03-05 Intel Corporation Bidirectional cryptographic IO for data streams
US10157153B2 (en) 2016-02-03 2018-12-18 Qualcomm Incorporated Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems
US10310990B2 (en) 2016-06-24 2019-06-04 Hewlett Packard Enterprise Development Lp Direct memory access encryption with application provided keys
US11080409B2 (en) * 2018-11-07 2021-08-03 Ngd Systems, Inc. SSD content encryption and authentication
CN110245526B (zh) * 2019-05-07 2021-04-23 杭州电子科技大学 一种基于PCIe接口的加密方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246456A (zh) * 2007-02-15 2008-08-20 富士通株式会社 数据加密设备和方法、解密设备和方法、传送控制设备
CN101246529A (zh) * 2007-01-30 2008-08-20 科技资产股份有限公司 借由硬件锁装置的存储装置数据加密和数据访问的系统及方法
US7849330B2 (en) * 2006-03-20 2010-12-07 Hitachi, Ltd. Apparatus and method for secure data disposal
US20120036347A1 (en) * 2010-08-06 2012-02-09 Swanson Robert C Providing fast non-volatile storage in a secure environment

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003034227A2 (en) * 2001-10-12 2003-04-24 Koninklijke Philips Electronics N.V. Apparatus and method for reading or writing user data
JP2004070499A (ja) * 2002-08-02 2004-03-04 Fujitsu Ltd メモリデバイスおよび暗号化/復号方法
US20070180539A1 (en) 2004-12-21 2007-08-02 Michael Holtzman Memory system with in stream data encryption / decryption
WO2006071725A2 (en) * 2004-12-21 2006-07-06 Sandisk Corporation Memory system with in-stream data encryption/decryption
JP2007328619A (ja) * 2006-06-08 2007-12-20 Toshiba Corp メモリシステム
IL177756A (en) * 2006-08-29 2014-11-30 Lior Frenkel Encryption-based protection against attacks
US8464073B2 (en) * 2006-09-13 2013-06-11 Stec, Inc. Method and system for secure data storage
KR101206542B1 (ko) * 2006-12-18 2012-11-30 주식회사 엘지씨엔에스 하드웨어 기반의 동적공격 탐지 및 차단을 지원하는네트워크 보안 장치 및 방법
US8190784B1 (en) * 2011-03-30 2012-05-29 Emc Corporation In-band transport mechanism for carrying communications among functional components of a storage I/O interface stack

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849330B2 (en) * 2006-03-20 2010-12-07 Hitachi, Ltd. Apparatus and method for secure data disposal
CN101246529A (zh) * 2007-01-30 2008-08-20 科技资产股份有限公司 借由硬件锁装置的存储装置数据加密和数据访问的系统及方法
CN101246456A (zh) * 2007-02-15 2008-08-20 富士通株式会社 数据加密设备和方法、解密设备和方法、传送控制设备
US20120036347A1 (en) * 2010-08-06 2012-02-09 Swanson Robert C Providing fast non-volatile storage in a secure environment

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688750A (zh) * 2016-08-05 2018-02-13 波音公司 用于集成存储介质的静止数据(dar)加密
CN107688750B (zh) * 2016-08-05 2023-06-30 波音公司 用于向静止数据提供透明在线加密的系统和方法
CN108449172A (zh) * 2017-01-31 2018-08-24 慧与发展有限责任合伙企业 输入/输出数据加密
CN108449172B (zh) * 2017-01-31 2020-12-01 慧与发展有限责任合伙企业 加密/解密方法和计算设备的集成电路
US10896267B2 (en) 2017-01-31 2021-01-19 Hewlett Packard Enterprise Development Lp Input/output data encryption
CN110337653A (zh) * 2017-02-24 2019-10-15 微软技术许可有限责任公司 保护无保护硬件总线
CN110337653B (zh) * 2017-02-24 2023-06-20 微软技术许可有限责任公司 保护无保护硬件总线
CN112836247A (zh) * 2019-11-25 2021-05-25 美光科技公司 与存储器子系统的安全数据通信
CN112836247B (zh) * 2019-11-25 2024-04-05 美光科技公司 与存储器子系统的安全数据通信
CN114691049A (zh) * 2022-04-29 2022-07-01 无锡众星微系统技术有限公司 一种存储设备的i/o控制方法

Also Published As

Publication number Publication date
US20130227301A1 (en) 2013-08-29
JP2015513743A (ja) 2015-05-14
KR20140117635A (ko) 2014-10-07
JP6067757B2 (ja) 2017-01-25
AU2013226133A1 (en) 2014-08-28
US9152825B2 (en) 2015-10-06
EP2803012A1 (en) 2014-11-19
EP2803012B1 (en) 2020-08-05
AU2013226133B2 (en) 2016-01-21
WO2013130632A1 (en) 2013-09-06
KR101742364B1 (ko) 2017-05-31
CN104160407B (zh) 2017-04-05

Similar Documents

Publication Publication Date Title
CN104160407A (zh) 利用存储控制器总线接口以确保存储设备和主机之间的数据传输安全
US20230110230A1 (en) Technologies for secure i/o with memory encryption engines
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
KR102013841B1 (ko) 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US10503934B2 (en) Secure subsystem
CN107408175B (zh) 用于自加密驱动的挑战响应认证
US10810138B2 (en) Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME)
CN102945355A (zh) 基于扇区映射的快速数据加密策略遵从
CN102855452A (zh) 基于加密组块的快速数据加密策略遵从
CN101877246A (zh) 加密u盘实现方法
CN111949372B (zh) 一种虚拟机迁移方法、通用处理器及电子设备
CN106991061A (zh) 一种sata硬盘密码模块及其工作方法
CN203720848U (zh) 一种基于aes算法的硬盘加密设备
CN113158203B (zh) 一种soc芯片、电路和soc芯片的外部数据读写方法
CN104268489A (zh) 一种基于device mapper的加密卡性能优化的方法
KR20090059602A (ko) 세션 메모리 버스를 구비한 암호화 장치
EP4202740A1 (en) Process object re-keying during process creation in cryptographic computing
US20240121079A1 (en) Data clearing attestation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant