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

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

Info

Publication number
CN104160407B
CN104160407B CN201380011608.8A CN201380011608A CN104160407B CN 104160407 B CN104160407 B CN 104160407B CN 201380011608 A CN201380011608 A CN 201380011608A CN 104160407 B CN104160407 B CN 104160407B
Authority
CN
China
Prior art keywords
orders
storage
data
main frame
crypto context
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.)
Active
Application number
CN201380011608.8A
Other languages
English (en)
Other versions
CN104160407A (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命令相关联的数据应用加密上下文,所述加密上下文允许加密形式的所述数据能够在所述存储设备和所述主机之间传输;
在所述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命令和所述加密上下文配置从所述一组存储地址向所述存储控制器总线接口的直接存储器访问(DMA)传输。
9.根据权利要求8所述的系统,还包括:
文件系统,其被配置为在所述主机使用所述存储设备的过程中创建和管理所述加密上下文。
10.根据权利要求8所述的系统,其中在所述I/O命令由所述存储设备完成之后,所述存储控制器总线接口被进一步配置为:
将已完成的I/O命令通知给所述设备驱动程序。
11.根据权利要求8所述的系统,其中所述存储控制器总线接口与DMA引擎耦合以在不直接访问所述主机的中央处理器的情况下执行向所述主机或者从所述主机的传输。
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命令相关联的数据的装置,其中所述加密上下文使加密形式的所述数据能够在所述存储设备和所述主机之间传输;
用于在所述I/O命令对应于写入命令的情况下,在向所述存储设备发出所述I/O命令之前使用所述存储控制器总线接口加密所述数据的装置;以及
用于在所述I/O命令对应于读取命令的情况下,在所述存储设备处理了所述I/O命令之后使用所述存储控制器总线接口解密所述数据的装置。
18.根据权利要求17所述的系统,还包括:
用于在所述I/O命令由所述存储设备完成之后,将已完成的I/O命令通知给所述设备驱动程序的装置。
19.根据权利要求17所述的系统,其中用于从所述主机获取所述I/O命令和所述加密上下文的装置包括:
用于从所述设备驱动程序获取与所述I/O命令和所述加密上下文相关联的一组存储地址的装置;以及
用于利用直接存储器访问(DMA)将所述I/O命令和所述加密上下文从所述主机上的存储地址传输到所述存储控制器总线接口上的缓冲区的装置。
20.根据权利要求19所述的系统,其中用于利用直接存储器访问(DMA)的装置包括用于在不直接访问所述主机的中央处理器的情况下执行向所述主机上的存储地址或者从所述主机上的存储地址的传输的装置。
21.根据权利要求17所述的系统,还包括:
用于在所述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 US9152825B2 (en) 2012-02-29 2012-02-29 Using storage controller bus interfaces to secure data transfer between storage devices and hosts
US13/408,725 2012-02-29
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 CN104160407A (zh) 2014-11-19
CN104160407B true 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)

Families Citing this family (16)

* 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
US10476846B2 (en) * 2016-08-05 2019-11-12 The Boeing Company Data-at-rest (DAR) encryption for integrated storage media
US10896267B2 (en) 2017-01-31 2021-01-19 Hewlett Packard Enterprise Development Lp Input/output data encryption
US10417458B2 (en) * 2017-02-24 2019-09-17 Microsoft Technology Licensing, Llc Securing an unprotected hardware bus
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接口的加密方法
US11249924B2 (en) * 2019-11-25 2022-02-15 Micron Technology, Inc. Secure data communication with memory sub-system
CN114691049B (zh) * 2022-04-29 2023-03-17 无锡众星微系统技术有限公司 一种存储设备的i/o控制方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040048952A (ko) * 2001-10-12 2004-06-10 코닌클리케 필립스 일렉트로닉스 엔.브이. 사용자 데이터를 판독 또는 기록하는 장치 및 방법
JP2004070499A (ja) * 2002-08-02 2004-03-04 Fujitsu Ltd メモリデバイスおよび暗号化/復号方法
WO2006071725A2 (en) * 2004-12-21 2006-07-06 Sandisk Corporation Memory system with in-stream data encryption/decryption
US20070180539A1 (en) 2004-12-21 2007-08-02 Michael Holtzman Memory system with in stream data encryption / decryption
US7849330B2 (en) * 2006-03-20 2010-12-07 Hitachi, Ltd. Apparatus and method for secure data disposal
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 주식회사 엘지씨엔에스 하드웨어 기반의 동적공격 탐지 및 차단을 지원하는네트워크 보안 장치 및 방법
US20080181406A1 (en) 2007-01-30 2008-07-31 Technology Properties Limited System and Method of Storage Device Data Encryption and Data Access Via a Hardware Key
JP4347350B2 (ja) 2007-02-15 2009-10-21 富士通株式会社 データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法
US8539245B2 (en) * 2010-08-06 2013-09-17 Intel Corporation Apparatus and method for accessing a secure partition in non-volatile storage by a host system enabled after the system exits a first instance of a secure mode
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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN104160407B (zh) 利用存储控制器总线接口以确保存储设备和主机之间的数据传输安全
US11194920B2 (en) File system metadata protection
US20190229924A1 (en) Key rotating trees with split counters for efficient hardware replay protection
CN110618947A (zh) 用于利用存储器加密引擎的安全i/o的技术
US10503934B2 (en) Secure subsystem
KR20110032249A (ko) 암호키 선택장치를 구비하는 스토리지 시스템 및 암호 키 선택방법
JP7222971B2 (ja) 記憶データの暗号化及び復号の機器及び方法
CN102945355A (zh) 基于扇区映射的快速数据加密策略遵从
CN113158203B (zh) 一种soc芯片、电路和soc芯片的外部数据读写方法
CN116070230A (zh) 加密处理器、包括加密处理器的电子装置和计算方法
CN104268489A (zh) 一种基于device mapper的加密卡性能优化的方法
CN104021319A (zh) 一种防止可读写数据被复制的方法及装置
Walia et al. Mitigation of cold boot attack using an encrypted memory controller

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