用于集成存储介质的静止数据(DAR)加密的制作方法

文档序号:13675250阅读:482来源:国知局

本发明总体上但非排它地涉及具有集成持久性存储介质的系统和计算装置,并且更具体地说,涉及用于向存储在集成持久性存储部中的静止数据(dar:data-at-rest)提供透明在线加密(in-lineencryption)技术的系统。



背景技术:

集成存储介质(如嵌入式多媒体卡(emmc)存储装置)通常用于向计算装置提供用于存储数据的集成持久性存储器。计算装置经常使用这种集成存储介质来存储静止数据(dar)。dar通常是指:计算装置的主机处理器未处理的,也未驻留在计算装置的系统存储器中的数据。用于加密dar的现有方法通常是带外加密技术(out-of-bandencryptiontechnique)。例如,用于加密dar的现有方法可以被实现为由计算装置的主机处理器所利用的分离服务。

这种现有的带外加密技术可以劣化计算装置的性能。例如,可以缩减主机处理器用于执行其它工作的可用性,同时利用该分离服务来加密dar,由此劣化计算装置的吞吐量和/或等待时间性能。而且,可能会损害联接主机处理器和分离服务的通信路径,由此缩减了加密技术的有效性。由此,需要一种用于加密存储在集成存储介质中的dar的改进方法和系统。



技术实现要素:

提供该摘要,以按简化形式介绍选择的概念,其在下面详细描述中进一步描述。本摘要不是旨在标识本要求保护的发明的关键特征或基本特征,也不是旨在用于限制本要求保护的发明的范围。

本发明公开了一种用于安全地存储静态数据(dar),而不会劣化主机装置的性能(如上利用现有加密技术所述的)的基于硬件的、在线加密技术,例如,不像带外加密技术,基于硬件的加密引擎的技术效果透明地向主机装置提供在线dar加密,由此释放主机处理器以执行其它工作。通过释放主机处理器来执行其它工作,基于硬件的加密引擎改进了主机装置的吞吐量和/或等待时间性能。

根据本发明一方面,提供了一种用于向由主机装置的主机控制器存储的dar提供透明在线加密的系统。所述系统实例化加密核心,该加密核心包括存储装置代理、加密引擎、以及多个主机装置代理。所述多个主机代理当中的每一个主机代理都经由所述存储装置代理将所述主机控制器接口连接至多个持久性存储装置当中的一个持久性存储装置。所述多个持久性存储装置包括:加密存储装置,其向所述主机装置提供存储器,用于存储加密dar;和恢复存储装置,其提供存储能够用于修复所述主机装置的系统资源的未加密恢复数据的存储器。所述存储装置代理将所述多个持久性存储装置暴露至所述主机控制器,作为单个持久性存储装置。所述系统还在所述存储装置代理处,从所述主机控制器接收用于启动数据传递操作的传递命令。所述系统基于由所述传递命令启动的所述数据传递操作和所述加密引擎的加密状态,来处理所述传递命令。

根据本发明另一方面,提供了一种用于向由主机装置的主机控制器存储的静止数据(dar)提供透明在线加密的方法。所述方法实例化加密核心,该加密核心包括存储装置代理、加密引擎、以及多个主机装置代理。所述多个主机代理当中的每一个主机代理都经由所述存储装置代理将所述主机控制器接口连接到多个持久性存储装置当中的一个持久性存储装置。所述多个持久性存储装置包括:加密存储装置,其向所述主机装置提供存储器,用于存储加密dar;和恢复存储装置,其提供存储可用于修复所述主机装置的系统资源的未加密恢复数据的存储器。所述存储装置代理将所述多个持久性存储装置暴露至所述主机控制器,作为单个持久性存储装置。所述方法还在所述存储装置代理处,从所述主机控制器接收用于启动写入操作的写入命令,并且确定所述加密引擎的加密状态。基于所述加密引擎的所述加密状态来处理所述写入命令。

根据本发明另一方面,提供了一种用于向由主机装置的主机控制器存储的静止数据(dar)提供透明在线加密的系统。所述系统实例化加密核心,该加密核心包括存储装置代理、加密引擎、以及多个主机装置代理。所述多个主机代理当中的每一个主机代理都经由所述存储装置代理将所述主机控制器接口连接至多个持久性存储装置当中的一个持久性存储装置。所述多个持久性存储装置包括:加密存储装置,其向所述主机装置提供存储器,用于存储加密dar;和恢复存储装置,其提供存储能够用于修复所述主机装置的系统资源的未加密恢复数据的存储器。所述存储装置代理将所述多个持久性存储装置暴露至所述主机控制器,作为单个持久性存储装置。所述系统还在所述存储装置代理处,从所述主机控制器接收用于启动读取操作的读取命令。所述系统基于所述加密引擎的加密状态来处理所述读取命令。

下面,对本发明系统的附加方面进行描述。

附图说明

当结合附图阅读时,前述摘要和下列的详细描述将更好理解。为了例示本公开,示出了本公开的各个方面。然而,本公开不限于所讨论的具体方面。包括以下附图:

图1描绘了用于实现本发明的多个方面的嵌入式多媒体卡的示例。

图2描绘了用于实现本发明的多个方面的示例计算装置。

图3描绘了根据本发明的多个方面的在线加密装置的示例示意图。

图4描绘了根据本发明的多个方面的示例计算装置。

图5描绘了用于向计算装置提供对存储在集成持久性存储介质中的数据进行透明在线加密的方法的实施方式。

图6描绘了用于向计算装置提供对存储在集成持久性存储介质中的数据进行透明在线加密的方法的另一实施方式。

图7描绘了用于向计算装置提供对存储在集成持久性存储介质中的数据进行透明在线加密的方法的实施方式。

图8是可以实现本发明的实施方式的示例性通用计算系统的框图。

具体实施方式

本公开描述了在符合法定要求的详细构造和操作方面的特定实施方式。贯穿附图,利用相同标号来引用相同部件。在此描述的实施方式仅通过例示而非限制的方式来进行阐述。本领域技术人员根据本文的教导将认识到,针对本文所述的示例性实施方式可以存在等同的范围。最为显著的是,可以有其它实施方式,可以对本文所述的实施方式进行改变,并且可以存在针对组成所述实施方式的组件、部件或步骤的等同物。为清楚和简洁起见,在没有不适当细节(其中本领域技术人员根据本文的教导将清楚这种细节和/或其中这种细节会模糊对某些实施方式的更相关方面的理解)的情况下,呈递了这些实施方式的组件或步骤的某些方面。

本文描述的技术的各个方面通常致力于用于提供对由主机计算装置(主机装置)存储在嵌入式持久性存储装置(嵌入式存储部)中的静止数据(dar)进行透明在线加密的系统、方法以及计算机可读存储介质等等。如在此使用的,“在线加密”是指对主机装置的主机控制器与该主机装置内的嵌入式存储装置之间的数据路径内的数据进行加密。本文公开的在线加密技术是“透明的”,因为在实现所公开技术之前,主机控制器与嵌入式存储装置之间的通信在实现所公开技术之后保持不变。

根据利用嵌入式多媒体卡(emmc)来存储dar以便实现的主机装置来描述本公开的一些实施方式。然而,应当明白,本文描述的原理可以应用于涉及利用任何类型的嵌入式存储部来存储dar的主机装置的其它情形。已知的嵌入式存储装置的示例包括:安全数字(sd)卡、多媒体卡(mmc)、微型sd卡等。

简要描述了本发明实施方式的概述,下面,参照图1,描述用于实现本发明的多个方面的emmc100的示例。如上所述,emmc100是合适的集成持久性存储装置的一个示例,并不意指暗示对本发明的使用范围或功能的任何限制。emmc100也不应被解释为具有与其中所示的任何单个组件或组件组合有关的任何依赖性或要求。

继续参照图1,emmc100通常是集成或嵌入式存储器装置,其向主机装置提供由嵌入式控制器管理的可寻址存储器空间(装置存储器空间),由此使主机处理器免于低级存储器管理功能。在实施方式中,emmc100向与主机装置的主机文件系统兼容的主机装置公开标准块接口。本领域技术人员应当认识到,emmc100的许多功能和结构方面由联合电子装置工程委员会(jedec)公布的各种标准来管理。例如,主机控制器与嵌入式控制器120之间的通信可以根据由jedec于2012年6月公布的emmc电气标准5.0来管理。

如图1中描绘,emmc100包括主机接口110、嵌入式控制器120、以及多个存储器阵列(在此统称为存储器130)。在实施方式中,主机接口110、嵌入式控制器120、存储器130被封装成单个半导体管芯。主机接口110经由内部总线结构将emmc100以通信方式联接至主机装置的主机控制器。在一实施方式中,emmc100、内部总线结构,以及主机控制器皆物理地联接至主机装置的主板。

联接至emmc100中的主机接口110的是如下嵌入式控制器120,其操作为管理由存储器130所提供的装置存储器空间的专用控制器。该嵌入式控制器120通过实现闪存转换层(ftl)来管理装置存储器空间。由ftl提供的存储器管理功能的示例包括块大小转换、纠错、磨损平衡等。由嵌入式控制器120实现的ftl呈现标准块接口,将装置存储器空间暴露给主机装置,作为可利用逻辑块地址(lba)寻址的逻辑地址空间。

将装置存储器空间作为逻辑地址空间暴露给主机装置提供了几个优点。首先,其向主机装置提供用于存储检索数据的可寻址存储器空间的一致视图。接下来,其还使得嵌入式控制器120能够自由地管理将数据物理存储在装置存储器空间中的什么地方。嵌入式控制器120利用数据结构(例如,页面表)来向主机装置呈现一致的可寻址存储器空间。该数据结构映射如主机装置所看到的数据的逻辑地址与表示数据在存储器130中的当前物理位置的物理地址之间的关系。同样地,主机装置没有控制如何管理存储在存储器130中的数据,因为其仅看到隐藏内部实现的所有方面的仿真块存储装置。

下面,转至图2,适于实现本发明的多个方面的计算装置的示例示意图被描绘并通常被称为主机装置200。主机装置200可以被实现为能够与嵌入式存储装置交换数据的任何装置。用于实现主机装置200的合适装置的示例包括:台式计算机、膝上型计算机、智能电话、笔记本计算机、销售点终端、游戏机、娱乐器具等。

如所示的,主机装置200包括:处理器210、主机控制器220、内部总线结构230、以及emmc240。处理器210被配置成利用一个或更多个执行线程来解释和执行存储在计算机可读介质中的指令序列(例如,应用或计算机程序)。处理器210还被配置成:接收输入数据(例如,来自用户或另一计算装置)、处理该输入数据以生成输出数据。在实施方式中,处理器210是中央处理单元(cpu)。

在操作中,如由处理器210所指示的,主控制器220经由内部总线结构230与emmc240启动数据传递操作。数据传递操作在和处理器210相关联的系统存储器空间与由emmc240所提供的装置存储器空间之间传送数据。在主机装置200中,将系统存储器空间用于存储使用中数据(diu:data-in-use),而将装置存储器空间用于存储dar。

如在此使用的,“使用中数据”是指当前由处理器(例如,处理器210)执行的计算机可读指令,以及存储在计算机可读指令所利用的非持久性存储器中的任何数据。例如,处理器210可以指示主机控制器220启动写入数据传送操作(写入操作),其将diu从系统存储器空间传递至用于非易失性存储的装置存储器空间,作为dar。在另一示例中,处理器210可以指示主机控制器220启动读取数据传送操作(读取操作),其将dar从装置存储器空间传递至系统存储器空间,以供处理器210执行。

当接收到来自处理器210的数据传递指令时,主机控制器220被配置成生成对emmc240进行操作的装置特定命令。由主机控制器220生成的装置特定命令包括:与引用emmc240的逻辑地址空间的数据相关联的lba,如通过主机装置200了解的。在实施方式中,由主机控制器230生成的装置特定命令是面向块的命令。在实施方式中,主机控制器220与emmc240之间的通信根据由jedec所公布的各种标准来管理。

例如,主机控制器220可以接收来自处理器210的读取指令,其指令主机控制器220利用emmc240来启动读取操作,以检索由emmc240存储的dar。响应与此,主机控制器220可以生成指令emmc240内的嵌入式控制器在lba处检索所请求dar的读取命令。接着,主机控制器220经由内部总线结构230将该读取命令传送至emmc240。当接收到该读取命令时,emmc240内的嵌入式控制器(例如,图1的嵌入式控制器120)将lba从逻辑地址空间映射至物理地址空间,以定位所请求的dar。接着,嵌入式控制器从物理地址空间位置检索所请求的dar,并经由内部总线结构230将其返回至主机控制器220。

作为另一示例,主机控制器220可以接收来自处理器210的写入指令,其指令主机控制器220利用emmc240来启动写入操作,以将diu存储在emmc240的装置存储器空间中。响应于此,主机控制器220可以生成指令嵌入式控制器将diu存储在特定lba处的写入命令。接着,主机控制器220经由内部总线结构230将该写入命令传送至emmc240。当接收到该写入命令时,emmc240内的嵌入式控制器将与写入命令相关联的数据存储在装置存储器空间中。嵌入式控制器还更新其数据结构,以将物理存储数据的物理地址空间位置与写入命令中的lba相关联。通过更新数据结构,当主机控制器220发出引用该lba的读取命令时,嵌入式控制器能够随后检索该数据。接着,嵌入式控制器向主机控制器220传送确认数据已被存储的响应。

在实施方式中,内部总线结构230包括双向命令通道,其适于将装置特定数据传递命令从主机控制器220传递至emmc240内的嵌入式控制器,以及从嵌入式控制器到主机控制器220的响应。在实施方式中,内部总线结构230包括多个双向数据传递通道,其用于在主机装置200的系统存储器空间与emmc240的装置存储器空间之间交换数据。

图3描绘了根据本发明的多个方面的用于提供在线dar加密的加密装置300的示例框图。加密装置300可以分别实现图5、6以及7的方法500、600以及700的任何组合。本领域技术人员可以清楚,例示图3所描绘的示例部件,以提供用于描述本发明的操作框架。同样地,在一些实施方式中,加密装置的物理布局可以根据不同的实现方案而不同。

加密装置300被配置成提供对由主机装置(例如,图2的主机装置200)的主机控制器存储的dar的透明在线加密。如所示,加密装置300包括表示物理联接至主机装置内的系统板的硬件装置的嵌入式可编程逻辑装置(pld)310。例如,嵌入式pld310可以连同主机装置的处理器、主机控制器以及一个或更多个集成存储装置(例如,图1的emmc100)一起,物理接合至主机装置内的主板。在另一示例中,嵌入式pld310可以物理联接至主机装置内的子板,该子板与包括主机装置的处理器、主机控制器以及一个或更多个集成存储装置在内的主板接口连接。

嵌入式pld310可以利用能够实现可重构逻辑电路或逻辑功能的任何已知硬件装置来实现。用于实现嵌入式pld310的合适硬件装置的示例包括:可编程逻辑阵列(pla)、可编程阵列逻辑(pal)、fpga、复杂可编程逻辑装置(cpld)、可擦除可编程逻辑装置(epld)、专用集成电路(asic)、可编程逻辑控制器(plc)等。

由嵌入式pld310实现的可重构逻辑电路或逻辑功能可以利用装置编程器来配置/重新配置。装置编程器接口连接嵌入式pld310,以在嵌入式pld310的非易失性存储器中存储一个或更多个知识产权(ip)核心。如本领域技术人员已知的,ip核心在嵌入式电路设计中提供的功能与库在计算机软件编程中提供的功能相当。存储在嵌入式pld310的非易失性存储器中的ip核心实现实例化加密核心320的限定逻辑电路或特定功能。在实施方式中,加密核心320利用软ip核心、硬ip核心,或其组合来实现。

加密核心320包括:存储装置代理330、加密引擎340以及多个主机装置代理350(例如,恢复主机代理350a和加密主机代理350b)和安全管理接口360。存储装置代理330被配置成向主机装置的主机控制器呈现标准块接口。由存储装置代理330呈现的标准块接口是对由多个持久性存储装置(例如,图1的emmc100)提供的聚合装置存储器空间的抽象引用。即,标准块接口将提供多个持久性存储装置的聚合装置存储器空间暴露给主机控制器作为单个持久性存储装置。

由存储装置代理330提供的抽象(abstraction)使得加密装置300能够控制聚合装置存储器空间如何暴露给主机控制器。例如,加密装置300可以仅经由存储装置代理330,将多个持久性存储装置的子集暴露给主机控制器。而且,加密装置300可以仅经由存储装置代理330将特定持久性存储装置的存储器空间的子集暴露给主机控制器。

由存储装置代理330提供的抽象还使得加密装置300能够控制主机控制器如何访问聚合装置存储器空间。例如,加密装置300可以向主机控制器提供对由存储装置代理330暴露的聚合存储器装置空间的只读访问,由此,仅准许读取数据传递操作。同样地,加密装置300可以向主机控制器提供对由存储装置代理330暴露的聚合存储器装置空间的读写访问,由此,准许读取和写入数据传递操作。而且,加密装置300可以向主机控制器提供对多个持久性存储装置的子集的读写访问或只读访问。

在操作中,存储装置代理330还被配置成将数据传递命令路由至多个主机装置代理350当中的一个主机装置代理。在实施方式中,存储装置代理330被配置成基于加密引擎340的加密状态来路由数据传递命令。在实施方式中,基于一个或更多个加密完整性参数来确定加密引擎340的加密状态。在实施方式中,所述一个或更多个加密完整性参数经由安全管理接口360从主机装置外部的安全架构管理员接收。在实施方式中,存储装置代理330被配置成,基于从安全将架构管理员接收的配置信息来路由数据传递命令。

加密引擎340包括:被配置成支持未加密持久性存储装置的空加密插件342,和被配置成支持加密存储装置的加密插件344。空加密插件342被配置成将存储装置代理330接口连接至与未加密持久性存储装置相关联的一个或更多个主机装置代理350。空加密插件342未如下各项提供加密旁路:数据传递命令,和在存储装置代理330与未加密持久性存储装置之间交换的相关联数据。

加密插件344被配置成,将存储装置代理330接口连接至与加密持久性存储装置相关联的一个或更多个主机装置代理350。在数据传递操作期间,与数据传递命令相关联的数据是在加密插件344与存储装置代理330之间传播时的明文数据。当在加密插件344与和加密持久性存储装置相关联的所述一个或更多个主机装置代理350之间传播时,与数据传递命令相关联的数据是密文数据。

加密插件344在数据传递操作期间,通过向所传递数据应用加密/解密算法(加密算法),将明文数据转换成密文数据(反之亦然)。在实施方式中,经由安全管理接口360从安全架构管理器接收加密算法。合适加密算法的示例包括:高级加密标准(aes)、blowfish、rsa等。在实施方式中,经由安全管理接口360从安全架构管理员接收与加密算法一起使用的密钥。

加密插件344还被配置成响应于接收到补零(zeroize)命令来实现一个或更多个动作。例如,在接收到补零命令时,加密插件344可能使加密算法不可用。作为另一示例,加密插件344可以向与加密持久性存储装置相关联的主机装置代理发出命令。响应于该命令,加密持久性存储装置的装置控制器将使存储在装置存储器空间中的数据的至少一部分不可用。而且,加密插件344可以响应于接收到补零命令而使与加密核心320相关联的一个或更多个ip核心不可用。在实施方式中,经由与主机装置相关联的网络接口从安全架构管理员接收补零命令。在实施方式中,响应于确定已经违反了一个或更多个加密完整性参数,通过在主机装置的处理器上执行的处理来发出补零命令。

图4,根据本发明的多个方面的计算装置的示例示意图被描绘并通常被称为主机装置400。在图4所描绘的示例中,主机装置400包括:处理器410、主机控制器420以及和内部总线结构430,其可以分别大致类似于图2的处理器210、主控制器220以及内部总线结构230。与主机装置200不同,主机装置400还包括向主机控制器420呈现标准块接口的加密装置440。如上所述,该标准块接口提供了抽象层,其使得加密装置440能够控制主机控制器420如何与由加密emmc450和恢复emmc460所提供的聚合装置存储器空间进行交互。

例如,加密装置440可以将加密emmc450暴露给向主机控制器420,其向主机装置400提供非易失性存储器以供存储dar。在这个示例中,加密装置440还可以向主机控制器420提供对加密emmc450的读写访问,由此,准许读取和写入数据传递操作两者。作为另一示例,加密装置440可以将恢复emmc460暴露给主机控制器420,其向主机装置400提供非易失性存储器,以存储用于系统恢复的数据。在这个示例中,加密装置440还可以向主机控制器420提供对恢复emmc460的只读访问,由此,仅准许读取数据传递操作。

图5-7描绘了用于向主机装置提供对存储在集成持久性存储装置中的数据进行透明在线加密的方法的实施方式。如上参照图3讨论的,可以实例化加密核心(例如,图3的加密核心320),以将主机装置内的嵌入式pld变换成加密装置。该加密核心包括:存储装置代理、加密引擎以及多个主机装置代理。加密核心的存储装置代理被配置成将所述多个持久性存储装置暴露给主机控制器,作为单个持久性存储装置。而且,所述多个主机代理当中的每个主机装置代理都被配置成,经由存储装置代理将其对应持久性存储装置接口连接至主机控制器。

在实施方式中,图5–图7所描绘的方法中的一种或多种可以由图3的加密装置300来实现,因为其加密由主机控制器(例如,图4的主机控制器420)发送的数据,以被存储在持久性存储装置(例如,图4的加密emmc450)上,并解密由主机控制器从持久性存储装置检索的存储数据。可以清楚,参照图5-7,本发明存在不实现全部所描绘操作,或者按与本文所描述的次序不同的次序来实现所描绘操作的实施方式。

图5描绘了用于向通过主机装置的主机控制器存储的dar提供透明在线加密的方法500的实施方式。在框510中,系统实例化加密核心,该加密核心包括存储装置代理、加密引擎以及多个主机装置代理。在框520中,加密核心的存储装置代理从主机装置的主机控制器接收用于启动数据传递操作的传递命令。在实施方式中,该传递命令是用于启动写入操作的写入命令。在实施方式中,该传递命令是用于启动接收操作的接收命令。

在框530中,由系统基于根据传递命令启动的数据传送操作和加密引擎的加密状态来处理该传递命令。在实施方式中,由系统部分地基于加密引擎的加密状态来处理该传递命令。例如,当加密引擎处于安全状态时,系统可以满足由主机装置外部的安全架构所设置的每个数据完整性参数。在这个示例中,通过系统加密的dar和用于加密dar的加密原语(cryptographicprimitives)没有被泄露。

在另一示例中,当加密引擎的加密状态为补零状态(zeroizedstate)时,系统可能无法满足由主机装置外部的安全架构设置的每个数据完整性参数。在这个示例中,通过系统加密的dar和用于加密dar的加密原语可能已经被泄露。

在实施方式中,由系统部分基于根据传递命令启动的数据传递操作来处理传递命令。例如,系统可以经由向主机控制器提供写入和/或读写访问的存储装置代理,将持久性存储装置(例如,加密存储装置)暴露给主机控制器。在这个示例中,系统准许持久性存储装置代表主机装置实现写入操作。同样地,系统可以将启动写入操作的传递命令,路由至持久性存储装置的对应主机装置代理。

在另一示例中,系统可以经由向主机控制器提供只读访问的存储装置代理,将持久性存储装置(例如,恢复存储装置)暴露给主机控制器。在这个示例中,系统不准许持久性存储装置代表主机装置实现写入操作。同样地,响应于启动写入操作的传递命令,系统可以经由存储装置代理向主机控制器通知,与存储装置代理相关联的文件系统是只读的。然而,响应于启动读取操作的传递命令,系统可以将传递命令路由至持久性存储装置的对应主机装置代理。

图6描绘了用于向通过主机装置的主机控制器存储的dar提供透明在线加密的方法600的实施方式。在框605中,系统实例化加密核心,该加密核心包括存储装置代理、加密引擎以及多个主机装置代理。在框615中,加密核心的存储装置代理从主机装置的主机控制器接收用于启动写入操作的写入命令。

在框625中,系统确定加密引擎的加密状态。在实施方式中,系统基于由主机装置外部的安全架构所设置的一个或更多个加密完整性参数,来确定加密引擎的加密状态。在实施方式中,安全架构经由主机装置的网络接口实时更新所述一个或更多个加密完整性参数。

如果在框625中,系统确定加密状态是补零状态,则方法600进行至框635。在框635中,系统经由存储装置代理向主机控制器通知,与存储装置代理相关联的文件系统是只读的。

如果在框625中,系统确定加密状态是安全状态(securestate),则方法600进行至框645。在框645中,存储装置代理接收与写入命令相关联的明文数据。在实施方式中,在系统向主机控制器发出响应消息之后,从主机控制器接收明文数据。在实施方式中,在通过加密存储装置发出响应消息之后,从主机控制器接收明文数据。在框655中,明文数据利用加密引擎加密,以生成密文数据。在框665中,系统经由对应主机装置代理将密文数据路由至加密持久性存储装置,以根据写入命令进行存储。

在框675中,系统确定加密状态已经从安全状态转换至补零状态。在框685中,存储装置代理从主机装置的主机控制器接收用于启动第二写入操作的第二写入命令。在框695中,系统经由存储装置代理向主机控制器通知,与存储装置代理相关联的文件系统是只读的。

图7描绘了用于向计算装置提供对存储在集成持久性存储介质中的数据进行透明在线加密的方法700的实施方式。在框710中,系统实例化加密核心,该加密核心包括存储装置代理、加密引擎以及多个主机装置代理。在框720中,加密核心的存储装置代理从主机装置的主机控制器接收用于启动读取操作的读取命令。

在框730中,系统确定加密引擎的加密状态。在实施方式中,系统基于由主机装置外部的安全架构设置的一个或更多个加密完整性参数,来确定加密引擎的加密状态。在实施方式中,安全架构经由主机装置的网络接口实时更新所述一个或更多个加密完整性参数。

如果在框730中,系统确定加密状态是补零状态,则方法700进行至框740。在框740中,系统从对应于恢复存储装置的主机装置代理接收与读取命令相关联的明文数据。在框750中,将明文数据经由存储装置代理路由至主机控制器。

如果在框730中,系统确定加密状态是安全状态,则方法700进行至框760。在框760中,系统从对应于加密存储装置的主机装置代理接收与读取命令相关联的密文数据。在框770中,利用加密引擎对密文数据进行解密,以恢复在密文数据中编码的明文数据。在框780中,系统经由存储装置代理将明文数据路由至主机控制器。

图8是可以实现本发明的实施方式的示例性通用计算系统800的框图。如图所绘,计算系统800包括:直接或间接联接下列组件的总线810:存储器820、一个或更多个处理器830、i/o接口840、以及网络接口850。总线810被配置成,在计算系统800的各种组件之间传送、发送以及传递数据、控制以及命令。本领域技术人员将认识到,总线810表示互连计算系统800的各种组件的一个或更多个系统总线的网络。所述一个或更多个系统总线可以是几种类型的总线结构中的任一种,这些总线结构包括存储器总线或存储器控制器、外围总线、以及利用多种总线架构中的任一种的局部总线。

存储器820包括可由处理器830执行的多种计算机可读介质数据和/或指令(即,处理器830可以根据指令编程),以使得处理器830能够执行本文所述的功能。一般来说,计算机可读介质可以是任何可用介质,其可通过装计算系统800存取并且包括易失性和非易失性介质、可去除和不可去除介质两者。计算机可读介质还可以包括计算机存储介质和通信介质。计算机存储介质不包括,并且事实上明确排除信号本身。

计算机存储介质包括按任何方法或技术实现的、用于存储信息(如计算机可读指令、数据结构、程序模块或其它数据)的易失性和非易失性的、可去除和不可去除的、有形的以及非暂时性介质。计算机存储介质包括:ram;rom;ee-prom;闪速存储器或其他存储器技术;cdrom;dvd或其它光盘存储部;磁带盒、磁带、磁盘存储部或其它磁存储装置;或者可以被用于存储希望信息并且可以由计算系统800访问的其它介质或计算机存储装置。

通信介质通常具体实施计算机可读指令、数据结构、程序模块、或调制数据信号中的其它数据(如载波或其它传输机制),并且包括任何信息递送介质。术语“调制数据信号”意指这样的信号,即,其具有按有关在该信号中编码信息的这种方式设置或改变的多个特征中的一个或更多个特征。通过示例的方式,通信介质包括:诸如有线网络或直接有线连接的有线介质,和无线介质,如声音、rf、红外线以及其它无线介质。上述中任何的组合都应被包括在计算机可读介质的范围内。

计算系统800还包括暴露执行存储在存储器820中的数据和/或指令的逻辑处理器的处理器830(例如,执行核心)。虽然在图8描绘的示例中示出了一个处理器830,但本领域技术人员将认识到,计算系统800可以具有多个处理器(例如,每处理器基板多个执行核心,和/或皆具有多个执行核心的多个处理器基板),每个处理器都接收计算机可读指令并相应地处理它们。

i/o接口840使得计算系统800能够与诸如显示器、键盘、鼠标器等这样的不同外围装置进行通信。i/o接口840被配置成协调存储器820、所述一个或更多个处理器830、网络接口850以及任何外围装置之间的i/o通信。网络接口850使得计算系统800能够经由任何合适网络与其它计算装置交换数据。

处理器830包括任何合适的可编程电路,包括一个或更多个系统和微控制器、微处理器、精简指令集电路(risc)、专用集成电路(asic)、可编程逻辑电路(plc)、现场可编程门阵列(fpga)、以及能够执行本文所述功能的任何其它电路。上述示例不旨在以任何方式限制术语“处理器”的定义和/或含义。

而且,本公开包括根据下列条款的实施方式:

条款1:一种向由主机装置的主机控制器存储的静止数据(dar)提供透明在线加密的系统,该系统包括:处理器;和计算装置,该计算装置包括要执行的第一组指令,在由所述处理器执行时所述第一组指令使所述系统进行如下操作:实例化加密核心,该加密核心包括存储装置代理、加密引擎、以及多个主机装置代理,所述多个主机装置代理当中的每一个主机装置代理都经由所述存储装置代理将所述主机控制器接口连接至多个持久性存储装置当中的一个持久性存储装置,所述存储装置代理将所述多个持久性存储装置暴露至所述主机控制器,作为单个持久性存储装置;在所述存储装置代理处,从所述主机控制器接收用于启动数据传递操作的传递命令;以及基于由所述传递命令启动的所述数据传递操作和所述加密引擎的加密状态来处理所述传递命令,其中,所述多个持久性存储装置包括:加密存储装置,其向所述主机装置提供存储器用于存储加密dar;和恢复存储装置,其提供存储可用于修复所述主机装置的系统资源的未加密恢复数据的存储器。

条款2:根据条款1所述的系统,其中,当所述传递命令是写入命令并且所述加密状态是安全状态时,所述传递命令被路由至对应加密存储装置的主机装置代理。

条款3:根据条款1所述的系统,其中,对应加密存储装置的主机装置代理向所述主机控制器提供针对所述加密存储装置的读写访问。

条款4:根据条款2所述的系统,其中,所述计算装置还包括要执行的第二组指令,在由所述处理器执行时所述第二组指令还使所述系统进行如下操作:经由所述存储装置代理,利用所述加密引擎加密从所述主机控制器接收的明文数据,以生成密文数据。

条款5:根据条款1所述的系统,其中,当所述传递命令启动读取操作并且所述加密状态是补零状态时,所述传递命令被路由至对应恢复存储装置的主机装置代理。

条款6:根据条款1所述的系统,其中,对应恢复存储装置的主机装置代理向主机控制器提供针对恢复存储装置的只读访问。

条款7:一种向由主机装置的主机控制器存储的静止数据提供透明在线加密的方法,该方法包括以下步骤:实例化加密核心,该加密核心包括存储装置代理、加密引擎、以及多个主机装置代理,所述多个主机装置代理当中的每一个主机装置代理都经由所述存储装置代理将所述主机控制器接口连接至多个持久性存储装置当中的一个持久性存储装置,所述存储装置代理将所述多个持久性存储装置暴露至所述主机控制器,作为单个持久性存储装置;在所述存储装置代理处,从所述主机控制器接收用于启动写入操作的写入命令;确定所述加密引擎的加密状态;以及基于所述加密状态处理所述写入命令,其中,所述多个持久性存储装置包括:加密存储装置,其加密存储装置向所述主机装置提供存储器用于存储加密dar;和恢复存储装置,其提供存储可用于修复所述主机装置的系统资源的未加密恢复数据的存储器。

条款8:根据条款7所述的方法,其中,处理所述写入命令的步骤包括以下步骤:当所述加密状态是安全状态时,经由所述对应主机装置代理将所述写入命令路由至所述加密存储装置。

条款9:根据条款8所述的方法,所述方法还包括以下步骤:在所述存储装置代理处,接收与所述写入命令相关联的明文数据;利用所述加密引擎加密所述明文数据,以生成密文数据;以及经由所述对应主机装置代理将所述密文数据路由至所述加密存储装置,以根据写入命令进行存储。

条款10:根据条款8所述的方法,所述方法还包括以下步骤:确定所述加密状态已经从安全状态转换至补零状态;在确定所述加密状态转换至补零状态之后,在所述存储装置代理处,从所述主机控制器接收用于启动第二写入操作的第二写入命令;以及响应于所述第二写入命令,经由所述存储装置代理向所述主机控制器通知与所述存储装置代理相关联的文件系统是只读的。

条款11:根据条款7所述的方法,其中,基于由所述主机装置外部的安全架构设置的一个或更多个加密完整性参数,来确定所述加密引擎的所述加密状态。

条款12:根据条款7所述的方法,所述方法还包括以下步骤:在所述加密引擎处接收补零命令;并且响应于接收到所述补零命令,使与所述加密引擎相关联的加密算法不可用,并且指示所述加密存储装置的嵌入式控制器以使存储在所述加密存储装置的存储器中的数据的至少一部分不可用。

条款13:根据条款12所述的方法,其中,通过所述主机装置外部的计算装置启动所述补零命令。

条款14:根据条款7所述的方法,其中,处理所述写入命令的步骤包括以下步骤:当所述加密状态是补零状态时,经由所述存储装置代理向所述主机控制器通知与所述存储装置代理相关联的文件系统是只读的。

条款15:根据条款7所述的方法,其中,所述加密引擎从所述主机装置外部的源接收加密密钥。

条款16:一种向由主机装置的主机控制器存储的静止数据(dar)提供透明在线加密的系统,该系统包括:

处理器;以及

计算装置,该计算装置包括要执行的第一组指令,在由所述处理器执行时所述第一组指令使所述系统至少进行如下操作:

实例化加密核心,该加密核心包括存储装置代理、加密引擎以及多个主机装置代理,所述多个主机装置代理当中的每一个主机装置代理都经由所述存储装置代理将所述主机控制器接口连接至多个持久性存储装置当中的一个持久性存储装置,所述存储装置代理将所述多个持久性存储装置暴露至所述主机控制器,作为单个持久性存储装置;并且

在所述存储装置代理处,从所述主机控制器接收用于启动读取操作的读取命令,确定所述加密引擎的加密状态;以及

基于所述加密状态来处理所述读取命令,其中,所述多个持久性存储装置包括:加密存储装置,其向所述主机装置提供存储器用于存储加密dar;和恢复存储装置,其提供存储可用于修复所述主机装置的系统资源的未加密恢复数据的存储器。

条款17:根据条款16所述的系统,其中,所述计算装置还包括要执行的第二组指令,在由所述处理器执行时,所述第二组指令还使所述系统进行如下操作:

当所述加密状态是安全状态时,经由所述对应主机装置代理将所述读取命令路由至所述加密存储装置;并且响应于所述读取命令,从所述加密存储装置接收与所述读取命令相关联的密文数据。

条款18:根据条款17所述的系统,其中,所述计算装置还包括要执行的第三组指令,在通过所述处理器执行时所述第三组指令还使所述系统进行如下操作:利用所述加密引擎对所述密文数据进行解密,以恢复在所述密文数据内编码的明文数据;并且将所述明文数据经由所述存储装置代理路由至所述主机装置。

条款19:根据条款16所述的系统,其中,所述计算装置还包括要执行的第二组指令,在通过所述处理器执行时所述第二组指令还使所述系统进行如下操作:当所述加密状态处于补零状态时,经由所述对应主机装置代理将所述读取命令路由至所述恢复存储装置;并且响应于所述读取命令,从所述恢复存储装置接收与所述读取命令相关联的未加密恢复数据。

条款20:根据条款19所述的系统,其中,所述多个持久性存储装置当中的至少一个持久性存储装置是嵌入式多媒体卡。

应当清楚,虽然各项被例示为,在使用时存储在存储器中或存储部上,但这些项或其部分可以在存储器与其它存储装置之间传递。另选的是,在其它实施方式中,这些软件模块和/或系统中的一些或全部可以在另一装置上的存储器中执行,并且经由计算机间通信与所示计算系统进行通信。在一些实施方式中,这些系统和/或模块中的一些或全部可以按其它方式来实现或提供,如至少部分地采用固件和/或硬件,包括但不限于,一个或更多个专用集成电路(asic)、标准集成电路、控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(fpga)、复杂可编程逻辑装置(cpld)等。这些模块、系统以及数据结构中的一些或全部也可以存储(例如,作为软件指令或结构化数据)在计算机可读介质上,如硬盘、存储器、网络或要通过合适驱动器或者经由合适连接读取的便携式介质制品。这些系统、模块以及数据结构也可以作为所生成的数据信号(例如,作为载波或其它模拟或数字传播信号的一部分),在多种计算机可读传输介质上传送,包括基于无线的和基于有线/线缆的介质,并且可以采取多种形式(例如,作为单个或复用模拟信号的一部分,或者作为多个离散数字包或帧)。在其它实施方式中,这种计算机程序产品也可以采取其它形式。因此,本发明可以利用其它计算机系统配置来实践。

应当清楚,在一些实施方式中,可以按另选方式来提供由上述例程所提供的功能,如在更多例程之间分割,或者或合并成更少例程。类似的是,在一些实施方式中,所示例程可以提供比所描述的更多或更少的功能,如当其它所示例程代替地缺少,或相应地包括这种功能时,或者当所提供的功能的量被改变时。另外,虽然各种操作可以被例示为按特定方式(例如,串行或并行)和/或按特定次序执行,但在其它实施方式中,这些操作可以按其它次序和其它方式来执行。类似的是,上述数据结构可以在其它实施方式中按不同方式构造,如通过将单个数据结构分成多个数据结构或者通过将多个数据结构合并到单个数据结构中,并且可以存储比所述更多或更少的信息(例如,当其它所示数据结构代替地缺少或相应地包括这种信息时,或者当存储的信息的数量或类型被改变时)。

本文所使用的条件化语言(其中如“能够(can)”、“可以(could)”、“会(might)”、“可能(may)”、“例如”等)除非另有明确规定,否则在如使用的上下文内的理解通常旨在,表达某些示例包括,而其它示例不包括某些特征、部件和/或步骤。由此,这种条件化语言通常不意指暗示特征、部件和/或步骤采用对于一个或多个示例来说是必需的任何方式,或者一个或多个示例必需包括用于在有或没有作者输入或提示的情况下,决定这些特征、部件和/或步骤是否被包括或要在任何特定示例中执行的逻辑。术语“包括”、“包含”、“具有”等是同义的,并且以开放的方式包含地加以使用,并且不排除附加部件、特征、动作、操作等。而且,术语“或”以其包容性意义(而不是以其排它意义)来使用,以使例如用于连接部件列表时,该术语“或”意指该列表中一个、一些或全部部件。如在本公开和所附权利要求书的描述中所使用的,单数形式“一”以及“该/所述”同样旨在包括多数形式,除非上下文另外进行了明确指示。还应明白,当在本说明书中使用时,术语“包括”或“包含”指定存在规定特征、整数、步骤、操作、部件和/或组件,而非排除存在或增加一个或更多个其它特征、整数、步骤、操作、部件、组件和/或其组合。而且,在本说明书中使用时,术语“资产”和“计算装置”可以互换使用。

一般来说,上述各种特征和处理可以彼此独立地使用,或者可以按不同的方式组合。所有可能的组合和子组合旨在落入本公开的范围内。另外,在一些实现中可以省略某些方法或处理框。本文描述的方法和处理也不限于任何特定的序列,并且与其有关的框或状态可以以适合的其它顺序来执行。例如,所描述的框或状态可以以除了具体公开的次序以外的其它次序来执行,或者多个框或状态可以按单个框或状态组合。该示例框或状态可以串行、并行,或者按某一其它方式来执行。框或状态可以添加到或从所公开的示例中移除。本文描述的示例系统和组件可以与所描述的不同地加以配置。例如,与所公开示例相比,可以添加、去除、重新排列部件。

本领域技术人员应当明白,在不脱离本文的教导范围的情况下,可以进行各种改变,并且其部件可以用等同物替代。另外,在不脱离本文的范围的情况下,可以对其进行许多修改,以使本文的教导适于特定情况。因此,权利要求书不是旨在限制于本文公开的特定实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1