用于促进计算系统处的存储数据的无加密完整性保护的机制的制作方法

文档序号:6532847阅读:179来源:国知局
用于促进计算系统处的存储数据的无加密完整性保护的机制的制作方法
【专利摘要】描述了根据一个实施例用于促进计算系统处的存储数据的无加密完整性保护的机制。本发明实施例的方法包括从计算设备处的软件应用接收读取请求以执行与存储在耦合到所述计算设备的存储设备处的数据的第一数据块有关的读取任务。所述读取任务可以包括读取所述第一数据块。所述方法可以进一步包括访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码,计算与所述第一数据块有关的第一新加密代码,对所述第一新加密代码与所述第一参考加密代码进行比较,并且如果所述第一新加密代码与所述第一参考加密代码相匹配则接受所述读取请求。所述接受可以进一步包括促进所述读取任务。
【专利说明】用于促进计算系统处的存储数据的无加密完整性保护的机 制

【技术领域】
[0001] 本发明的实施例涉及安全系统。更具体地说,本发明的实施例涉及用于促进计算 系统处的存储数据的无加密完整性保护的机制。

【背景技术】
[0002] 数据安全是计算机安全的公知分支,数据安全为存储数据提供安全以防盗窃、破 坏、自然灾害等等。然而,用于提供数据安全的常规系统是受限且低效的。例如,许多常规 系统依赖于数据加密来简单地隐藏数据,该数据会被拦截,并且它们的完整性会例如经过 离线修改被攻击。此外,这些常规系统是资源低效且消耗功率的,并且还不为存储数据的任 何未加密部分提供保护。

【专利附图】

【附图说明】
[0003] 在附图的图示中通过示例而非限制的方式说明了本发明的实施例,其中相似的附 图标记指代类似的元件。
[0004] 图1说明了根据一个实施例用于在计算系统处使用的存储数据的无加密保护的 基于映射框架的机制。
[0005] 图2说明了根据一个实施例用于计算系统处的存储数据的无加密保护的基于映 射框架的机制。
[0006] 图3说明了根据一个实施例用于促进完整性存储数据的安全和保护的事务序列。
[0007] 图4A说明了根据一个实施例用于在处理读取操作时促进完整性存储数据的安全 和保护的方法。
[0008] 图4B说明了根据一个实施例用于在处理写入操作时促进完整性存储数据的安全 和保护的方法。
[0009] 图5说明了根据本发明一个实施例适合于实现本公开的实施例的计算机系统。

【具体实施方式】
[0010] 在下面的描述中,阐述了各种具体细节。然而,本发明的实施例可以在没有这些具 体细节的情况下实施。在其它实例中,没有详细地示出公知的电路、结构和技术,以便不混 淆对本描述的理解。
[0011] 实施例促进提供存储数据的安全并且维护该存储数据的完整性以防例如由于黑 客攻击、盗窃、破坏、自然或人为灾害等等引起的任何无意或者有意修改。实施例可以提供 用于促进计算系统处的存储数据的无加密完整性保护的机制,其中该机制可以是基于映射 框架的或者可以被实现为块设备驱动器等等,其可以例如帮助存储基于散列的消息认证代 码(HMAC)。例如,实施例经过安全的内部计算和验证机制(例如HMAC)提供存储数据(例 如由操作系统访问的数据)的基于设备映射器的安全和完整性以防任何修改(例如离线修 改等等),而不必例如移动或改变存储硬件,对存储数据进行加密/解密,等等。通过促进存 储数据的安全和完整性而不必对数据进行加密,允许存储数据保持未加密,并且因而在需 要时促进数据的更容易的访问和恢复。而且,不必对存储数据进行加密提供了更好的资源 效率和低功耗。
[0012] 存储设备上的数据可以被组织在扇区中,例如512字节,并且被视为读取和写入 操作的最小单位。扇区指代块中的组,例如4K块可以包括8个扇区。设想扇区和/或块尺 寸可以改变。进而,文件系统典型地以块进行操作,并且可以发出读取/写入请求,例如,在 单个块的情况下,用于读取一个或多个块的读取请求典型地转换到例如读取数据4K块的 所有8个扇区。关于存储设备(SD),整个存储装置可以被划分为分区,其中每一个分区可 以由几个块组成;例如,存储设备SDA可以被划分为诸如 Sdal、sda2、sda3等等的分区。这 些分区可以被格式化到不同的文件系统,例如ext4、文件分配表(FAT)、Microsoft?公司 的新技术文件系统(NTFS)等等,例如sdal可以是ext4,sda2可以是NTFS,等等。进而,文 件系统可以调用一个或多个块层以便读取数据块,例如当读取请求被发出时,文件系统可 以立即调用块层,而当写入请求被发出时,页可以被更新,但它们可能不被立即写入到块设 备。这样的页可以被称为页高速缓存。页高速缓存可以在写回操作期间被写回到块设备, 并且在该写回操作期间,文件系统可以将写入请求发送到块层。
[0013] 实施例提供如在整篇文档中描述的映射框架中实现的用于促进存储数据的无加 密完整性保护的机制,但是设想这些实施例并不局限于该映射框架,以使得块设备驱动器 可以被替代地用于实现该机制。
[0014] 图1说明了根据一个实施例用于在计算设备处使用的存储数据的无加密保护的 基于映射框架的机制。计算设备100用作主机以便使用用于存储数据的无加密保护的基于 映射框架的机制("完整性保护机制")110来促进存储在一个或多个存储设备处的数据的 安全和完整性。在一个实施例中,存储数据保护机制110可以被提供为映射框架116 (也被 称为"设备映射器")的插件模块,该映射框架116是操作系统内核114(例如Linux?内 核)的一部分。内核114可以用作用于管理系统资源的操作系统106的部件,例如用作桥, 或者促进软件应用(例如经由用户空间112提供)和在硬件级(例如硬件存储设备)处完 成的任何数据处理之间的通信。映射框架116可以用作框架或映射器以便将一个块设备映 射到另一块设备,或者将一个设备处的块映射到相同或其它设备处的块,用作企业卷管理 系统(EVMS)、逻辑卷管理器(LVM)、dm-crypt等等的基础。
[0015] 计算设备100可以包括例如蜂窝电话的移动计算设备,包括智能电话(例如 Apple? 的 iPhone? 、Research in Motion? 的 BlackBerry? 等等)、个人数字助理 (PDA)等等、平板计算机(例如 Apple? 的 iPad?、Samsung? 的 Galaxy Tab?'等等)、 膝上型计算机(例如笔记本计算机、上网本计算机、ultrabook?等等)、电子阅读器(例如 Amazon?的Kindle?、Barnes和Nobles?的Nook?等等)等等。计算设备100可以 进一步包括机顶盒(例如,基于互联网的有线电视机顶盒等等)、电视机、车内娱乐系统和 较大的计算设备,例如桌上型计算机、服务器计算机等等。
[0016] 计算设备100包括操作系统(0S) 106,用作计算设备100的任何硬件或物理资源与 用户之间的接口。计算设备100进一步包括一个或多个处理器102、存储器设备104、网络 设备、驱动器等等以及诸如触摸屏、触控面板、触摸板、虚拟或常规键盘、虚拟或常规鼠标等 等的输入/输出(I/O)源108。应该注意,类似"计算设备"、"节点"、"计算节点"、"客户端"、 "主机"、"服务器"、"存储器服务器"、"机器"、"设备"、"计算设备"、"计算机"、"计算系统"等 等的词语可以在整个文档中可互换地使用。
[0017] 图2说明了根据一个实施例用于计算设备处的存储数据的无加密保护的基于映 射框架的机制。在一个实施例中,数据完整性保护机制110包括多个部件,例如接收逻辑 202、提交逻辑204、参考逻辑206、计算逻辑208、比较逻辑210、更新逻辑212和决定逻辑 214。如前面参照图1描述的,数据完整性保护逻辑110可以作为操作系统的一部分而存在, 并且可以维护任何数量和类型的软件应用222和与诸如图1的计算设备100的计算设备相 关联的任何数量和类型的存储设备232之间的通信。在整个文档中,词语"逻辑"可以被可 互换地称为"处理逻辑"、"部件"或"模块",并且可以通过示例的方式包括软件、硬件和/或 软件和硬件的任何组合,例如固件。
[0018] 在一个实施例中,数据完整性保护机制110提供与计算设备耦合的一个或多个存 储设备232处的数据的安全和完整性保护。存储数据可以由操作系统和/或在计算设备处 运行的一个或多个软件应用222访问和使用。例如,数据可以包括软件代码、软件代码的相 关部分和/或任何其它相关信息,例如可以由软件应用222和/或操作系统访问和使用的 元数据高速缓存。存储设备232的示例可以包括任何数量和类型的存储系统,例如随机存 取存储器(RAM)、独立磁盘冗余阵列(RAID)、非一致存储器存取(NUMA)存储器系统、存储区 域网络、处理器寄存器、存储器通道、磁盘、光盘、磁带、网络附接的存储(NAS)设备、网络文 件系统、关系数据库等等。
[0019] 在一个实施例中,数据完整性保护机制110的接收逻辑202可以用于从软件应用 222接收对诸如数据读取或数据写入的任务的调用或请求。读取请求指代当尝试读取存储 设备232处的数据的任何部分(例如一个或多个数据块)时由应用222促进的读取命令 (例如sys_read,例如软件应用可以使用read()库函数,其接着调用系统调用sys_read)。 相较而言,写入请求指代用于将一个或多个数据块进一步写入到存储设备232处的现有数 据的写入命令(例如sys_write,例如软件应用可以使用write ()库函数,其接着调用系统 调用syS_Write),该写入包括修改数据,例如软件管理员或程序员改变现有的存储数据。提 交逻辑204接着提交或传输所接收的请求,以使得所请求的任务(例如读取、写入等等)可 以针对该存储数据的一个或多个相关数据块被执行,例如读取或写入如在所接收的请求中 阐述的一个或多个数据块。
[0020] 在一个实施例中,参考逻辑206访问与相关的数据块相关联的完整性元数据高速 缓存以便确定任何数据块是否具有存储在元数据高速缓存中的相对应的HMAC。完整性元数 据高速缓存可以被组织为完整性元数据数据块的集合,其中每一个块被预期保持几个完整 性元数据记录,例如保持HMAC。完整性元数据数据块可以被存储在其中存在真实的数据块 的相同的分区(块设备)上,或者可以被存储在存在于相同或不同的存储设备上的专用分 区上。如果包含参考HMAC的完整性元数据数据块从高速缓存遗漏,则它可以从适当的位置 被读取。
[0021] 同时,计算逻辑208使用加密密钥来计算每一个相关数据块的新HMAC。设想用于 计算HMAC的加密密钥的使用被提供作为示例,并且本发明实施例不局限于任何特定的过 程或技术。加密密钥可以使用任意的一个或多个已知的过程被接收,例如在初始化时、在启 动时,或者可以使用任何数量的已知方法在过程期间的任何点处被提供。进而,使用加密密 钥和任何已知加密函数(例如消息摘要算法5(MD5)、安全散列算法l(SHA-l)等等)的组 合,可以为诸如HMAC-MD5、HMAC-SHA1等等的每一个相关数据块计算HMAC。例如,可以使用 下式计算 HMAC:HMAC(K,m) =H((K ? opad) //H((K ? ipad) //m)),其中 Η 指代加密散列 函数,Κ指代在右边用额外的零填补到散列函数的输入块尺寸或者原始密钥的散列(如果 它比该块尺寸长)的秘密密钥,m指代待认证的消息(数据块、请求的内容等等),| |表示并 置,Φ表不异或(XOR),〇pad指代外填补(例如0x5c5c5c…5c5c,一个块长十六进制常数), 并且ipad指代内填补(例如0x363636…3636, 一个块长十六进制常数)。例如,如果块尺 寸是4K并且HMAC-SHA256尺寸是32字节,则单个块可以具有保持128个HMAC的能力。完 整性元数据高速缓存可以包括特定数据块的完整性元数据(例如一个或多个HMAC等等)。 例如,数据的一个4K块可以包含128个HMAC-SHA256。完整性元数据高速缓存可以指代包 含在随机存取存储器中可用的完整性元数据(HMAC)的块(例如4K块等等)的集合。
[0022] 当所述请求是读取请求时,在一个实施例中,与由计算逻辑208使用的HMAC计算 方法无关,一旦新HMAC对于每一个数据块被计算,它就接着通过比较逻辑210与该数据块 的参考HAMC进行比较。在进行比较时,通过决定块214做出关于请求是被许可还是被拒绝 的决定。例如,在进行成功的比较时,例如当在新计算的HMAC和所参考的HMAC之间存在匹 配时,读取请求被许可并且被转发到上层,并且所请求的任务可以被执行,例如相关的数据 块被读取。相较而言,在进行不成功的比较时,这样在所计算的HMAC和所参考的HMAC之间 存在不匹配时,读取请求被拒绝,并且错误消息被发出并且被转发到上层,并且所请求的任 务未被执行,例如相关的数据块被丢弃并且未被读取。
[0023] 当所述请求是写入请求时,在一个实施例中,与由计算逻辑208使用的HMAC计算 方法无关,一旦新HMAC对于将被写入到存储数据的每一个数据块被计算,每一个数据块的 相对应的参考HMAC就使用更新逻辑212用该数据块的新计算的HMAC进行更新或者代替。 完整性元数据高速缓存中的这些新放置的HMAC可以接着对任何未来的读取请求做出响应 而被参考和比较。
[0024] 设想任何数量和类型的部件可以被添加到数据完整性保护机制110和/或从该数 据完整性保护机制110移除以便促进本发明的各种实施例,包括添加、移除和/或增强某些 特征。为了数据完整性保护机制110的理解的简洁、清楚和容易,许多标准和/或已知的部 件,例如计算设备的那些标准和/或部件,没有在这里被显示或讨论。设想本发明实施例不 局限于任何特定的技术、拓扑、系统、架构和/或标准,并且是足够动态的以便采取并且适 合任何未来的改变。
[0025] 图3说明了根据一个实施例用于促进完整性存储数据的安全和保护的事务序列。 事务序列300可以由可以包括硬件(例如电路、专用逻辑、可编程逻辑等等)、软件(例如在 处理设备上运行的指令)或其组合的处理逻辑执行。在一个实施例中,方法300可以由图 1的数据完整性保护机制110执行。
[0026] 事务序列300以用户空间112处的软件应用222促进对事务(例如读取事务(例 如sys_read)、写入事务(例如sys_write)等等)的调用开始。接着通过使操作系统的内 核114处的系统调用接口 302在虚拟文件系统(VFS)层304上进行调用(例如vfs_read、 vfs_write等等),经过该系统调用接口 302将该请求传递到VFS。VFS层304在文件系统 层306上进行调用以便读取该请求并且将它转发到块设备层308。文件系统层306将该请 求(例如块I/O读取请求)提交到块设备层308,该块设备层308接着对该请求进行排队以 便在映射框架或设备映射器116处被接收。
[0027] 在一个实施例中,映射框架116可以将该请求转发到数据完整性保护机制110或 者经过该数据完整性保护机制110映射该请求,该数据完整性保护机制110可以被提供作 为映射框架116的插件模块。在一个实施例中,数据完整性保护机制110处理该请求并且 将它提交到块设备层310。在一个实施例中,块设备层310可以包括数据块设备和相对应的 完整性块设备。数据块设备可以包括真实存储数据,而完整性块设备可以包括相关的完整 性元数据(例如参考HMAC)。在一个实施例中,如前面提到的,在读取请求的情况下,数据完 整性保护机制110可以计算HMAC并且将它与参考HMAC进行比较,而在写入请求的情况下, 计算HMAC并且将它存储在完整性块设备中以便在未来用作参考HMAC。块设备层310接着 将该请求排队到块设备驱动器312,因此在所述请求中阐述的所请求的任务可以被执行。块 设备驱动器312接着执行与在相关的硬件320处的存储数据的一个或多个数据块有关的所 请求的任务,该相关的硬件例如是包括sda和/或sdb的存储设备232。
[0028] 图4A说明了根据一个实施例用于当处理读取操作时促进完整性存储数据的安全 和保护的方法。方法400可以由可以包括硬件(例如电路、专用逻辑、可编程逻辑等等)、 软件(例如在处理设备上运行的指令)或其组合的处理逻辑执行。在一个实施例中,方法 400可以由图1的数据完整性保护机制110执行。
[0029] 方法400以在块405处从在计算系统处运行的软件应用(例如操作系统或者任何 其它软件应用)接收请求以便访问并且读取存储在与所述计算系统通信的存储设备处的 数据的数据块开始。设想不存在关于多少或什么类型的数据块可以被读取的所强加的限 制。换句话说,请求可以被接收以便读取任何数量和类型的数据块。在块410处,读取请求 被提交用于处理,以使得所请求的数据块可以被读取。在块415处,与数据块相关联的完整 性元数据高速缓存被访问以便访问存储在该完整性元数据高速缓存处的参考HMAC,其中参 考HMAC与所请求的数据块相对应或者参考该所请求的数据块。如果包含HMAC的数据块遗 漏或者不存在于完整性元数据高速缓存中,则图2的参考逻辑206可以将该读取请求提交 到相关的块层以便从该块设备读取数据块。
[0030] 在块420处,使用加密密钥和任意一个或多个已知的计算过程来计算与所请求的 数据块相对应的新HMAC。在块425处,在一个实施例中,将新计算的HMAC与从完整性元数 据高速缓存获得的参考HMAC进行比较。在决定块430处,做出关于所计算的HMAC是否与 参考HMAC相匹配的确定。如果它们相匹配,则在块435处,该过程通过许可该请求并且将 它转发到上层继续到促进该读取请求的软件应用(在用户空间处)来继续,例如所请求的 数据块被读取。如果没有相匹配,则在块440处,该过程终止并且错误消息被发出且被转发 到上层。
[0031] 图4B说明了根据一个实施例用于在处理写入操作时促进完整性存储数据的安全 和保护的方法。方法450可以由可以包括硬件(例如电路、专用逻辑、可编程逻辑等等)、 软件(例如在处理设备上运行的指令)或其组合的处理逻辑执行。在一个实施例中,方法 450可以由图1的数据完整性保护机制110执行。
[0032] 方法450以在块455处从在计算系统处运行的软件应用(例如操作系统或任何其 它软件应用)接收请求以便将数据块写入到与所述计算系统通信的存储设备处的现有数 据开始。设想不存在关于多少或什么类型的数据块可以被读取的所强加的限制。换句话说, 该请求可以被接收以便读取任何数量和类型的数据块。在块460处,写入请求被提交用于 处理,以使得所请求的数据块可以被写入。在块465处,与数据块相关联的完整性元数据高 速缓存被访问以便访问存储在完整性元数据高速缓存处的参考HMAC,其中参考HMAC与该 数据块相对应或者参考该数据块。
[0033] 在块470处,使用加密密钥和任意一个或多个已知的计算过程来计算与所请求的 数据块相对应的新HMAC。在块475,在一个实施例中,通过使用新计算的HMAC代替现有的 参考HMAC来更新完整性元数据高速缓存。进而,图2的更新逻辑212可以更新HMAC,但是 可能不立即发送写入请求以便将完整性块写入到块设备。在块480处,该过程通过许可所 述写入请求继续,其中数据块被写入到存储数据。在块485处,被写入的数据块的确认被发 送到上层。
[0034] 图5说明了计算系统500的实施例。计算系统500代表一系列计算和电子设备 (有线或无线),例如包括桌上型计算系统、膝上型计算系统、蜂窝电话、包括启用蜂窝的个 人数字助理(PDA)的PDA、机顶盒、智能电话、平板计算机等等。可选的计算系统可以包括更 多、更少和/或不同的部件。
[0035] 计算系统500包括总线505 (或者链路、互连或用于传递信息的另一类型的通信设 备或接口)和耦合到总线505的可以处理信息的处理器510。尽管计算系统500被说明为 具有单个处理器,但是电子系统500可以包括多个处理器和/或协处理器,例如中央处理 器、图形处理器和物理处理器等等中的一个或多个。计算系统500可以进一步包括耦合到 总线505并且可以存储可以由处理器510执行的信息和指令的随机存取存储器(RAM)或者 其它动态存储设备520 (被称为主存储器)。主存储器520还可以用于在由处理器510执行 指令期间存储临时变量或其它中间信息。
[0036] 计算系统500还可以包括耦合到总线505的可以存储处理器510的静态信息和指 令的只读存储器(ROM)和/或其它存储设备530。数据存储设备540可以耦合到总线505 以便存储信息和指令。诸如磁盘或光盘以及相对应的驱动器的数据存储设备540可以耦合 到计算系统500。
[0037] 计算系统500还可以经由总线505耦合到显示设备550以便向用户显示信息,该 显示设备例如是阴极射线管(CRT)、液晶显示器(LCD)或者有机发光二极管(0LED)阵列。 包括字母数字和其它键的用户输入设备560可以耦合到总线505以便将信息和命令选择传 递到处理器510。另一类型的用户输入设备560是诸如鼠标、轨迹球或光标方向键的光标控 制装置570,以便将方向信息和命令选择传递到处理器510并且控制显示器550上的光标移 动。计算机系统500的相机和麦克风阵列590可以耦合到总线505以便观察姿势、记录音 频和视频并且接收和传输视觉和音频命令。
[0038] 计算系统500可以进一步包括网络接口 580以便提供对诸如局域网(LAN)、广域网 (WAN)、城域网(MAN)、个人域网(PAN)、蓝牙、云网络、移动网络(例如第三代(3G)等等)、内 联网、互连网等等的网络的访问。网络接口 580可以例如包括具有天线585的无线网络接 口,天线585可以代表一个或多个天线。网络接口 580还可以例如包括有线网络接口以便 经由网络电缆587与远程设备进行通信,网络电缆587可以例如是以太网电缆、同轴电缆、 光纤电缆、串行电缆或并行电缆。
[0039] 网络接口 580可以例如通过符合IEEE802. lib和/或IEEE802. llg标准来提供对 LAN的接入,和/或无线网络接口可以例如通过符合蓝牙标准来提供对个人域网的接入。也 可以支持包括标准的以前和随后版本的其它无线网络接口和/或协议。
[0040] 除了或代替经由无线LAN标准的通信,网络接口 580可以使用例如时分多址 (TDMA)协议、全球移动通信系统(GSM)协议、码分多址(CDMA)协议和/或任何其它类型的 无线通信协议来提供无线通信。
[0041] 网络接口 580可以包括一个或多个通信接口,例如调制解调器、网络接口卡或其 它公知的接口设备,例如用于耦合到以太网的接口设备、令牌环或用于提供通信链路以便 支持诸如LAN或WAN的目的的其它类型的物理有线或无线附件。按照这一方式,计算机系 统也可以经由例如包括内联网或者互联网的常规网络基础设施耦合到多个外围设备、客户 端、控制表面、控制台或服务器。
[0042] 应该认识到,比上面描述的示例更少或更多配备的系统可能对于某些实现是优选 的。因此,计算系统500的配置可以取决于各种因素而在实现之间变化,该各种因素例如是 价格约束、性能要求、技术改进或其它情况。电子设备或计算机系统500的示例可以没有限 制地包括移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手持设备、单向寻 呼机、双向寻呼机、消息传送设备、计算机、个人计算机(PC)、桌上型计算机、膝上型计算机、 笔记本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器场、网页服务器、网 络服务器、互联网服务器、工作站、微型计算机、大型计算机、超级计算机、网络电器、网页电 器、分布式计算系统、多处理器系统、基于处理器的系统、消费电子设备、可编程消费电子设 备、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线网络控制 器、路由器、集线器、网关、桥、交换机、机器或其组合。
[0043] 实施例可以被实现为下列部件中的任意一个或组合:使用母版互连的一个或多个 微芯片或者集成电路、硬连线逻辑、由存储器设备存储并且由微处理器执行的软件、固件、 专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)。词语"逻辑"可以通过示例的方式 包括软件或硬件和/或软件和硬件的组合。
[0044] 实施例可以被例如提供为可以包括具有存储在其上的机器可执行指令的一个或 多个机器可读介质的计算机程序产品,该机器可执行指令当由诸如计算机、计算机的网络 或其它电子设备的一个或多个机器执行时可以导致该一个或多个机器执行根据本发明实 施例的操作。机器可读介质可以包括但不局限于软盘、光盘、CD-ROM(压缩盘只读存储器) 和磁-光盘、R0M、RAM、EPR0M(可擦除可编程只读存储器)、EEPR0M(电可擦除可编程只读存 储器)、磁卡或光学卡、闪存或适合于存储机器可执行指令的其它类型的介质/机器可读介 质。
[0045] 而且,实施例可以被下载为计算机程序产品,其中该程序可以通过体现在载波或 其它传播介质中和/或由该载波或其它传播介质调制的一个或多个数据信号经由通信链 路(例如调制解调器和/或网络连接)被从远程计算机(例如服务器)传输到请求计算机 (例如客户端)。因此,如本文使用的,机器可读介质可以包括但不被要求包括这样的载波。
[0046] 对"一个实施例"、"实施例"、"示例实施例"、"各种实施例"等等的提及指示这样描 述的本发明实施例可以包括特定的特征、结构、特性,但是不必每一个实施例都包括该特定 的特征、结构、特性。进而,一些实施例可以具有针对其它实施例描述的特征中的一些、全部 或没有一个。
[0047] 在下面的描述和权利要求中,可以使用词语"耦合"连同其派生词。"耦合"用于指 示两个或更多个元件彼此协作或交互作用,但是它们可以具有或不具有位于它们之间的中 间物理或电气部件。
[0048] 如在权利要求中使用的,除非以其它方式表明,用于描述公共元件的顺序形容词 "第一"、"第二"、"第三"等等的使用仅指示类似元件的不同实例被参照,并且不打算暗示这 样描述的元件必须在时间上、空间上、等级上或者以任何其它方式按照给定顺序。
[0049] 下面的款项和/或示例属于进一步实施例或示例。该示例中的细节可以在一个或 多个实施例中的任何地方使用。不同实施例或示例的各种特征可以与所包括的一些特征和 没有包括的其它特征不同地进行组合以便适合各种不同的应用。一些实施例涉及一种方 法,包括:从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述计算设备 的存储设备处的数据的第一数据块有关的读取任务,其中,所述读取任务包括读取所述第 一数据块;访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码; 计算与所述第一数据块有关的第一新加密代码;将所述第一新加密代码与所述第一参考加 密代码进行比较;并且如果所述第一新加密代码与所述第一参考加密代码相匹配,则接受 所述读取请求,其中接受包括促进所述读取任务。
[0050] 实施例或示例包括上述方法中的任意一个,其中进一步包括如果所述第一新加密 代码与所述第一参考加密代码不匹配,则拒绝所述读取请求,其中,拒绝包括对所述读取请 求做出响应而发出错误消息,其中,如果包含所述第一参考加密代码的数据块从所述第一 元数据高速缓存遗漏,则所述读取请求被提交以便促进对遗漏的数据块的读取任务。
[0051] 实施例或示例包括上述方法中的任意一个,其中所述第一参考加密代码和新加密 代码包括基于散列的消息认证代码(HMAC)。
[0052] 实施例或示例包括上述方法中的任意一个,其中所述软件应用包括在所述计算设 备处运行的操作系统。
[0053] 实施例或示例包括上述方法中的任意一个,进一步包括从计算设备处的软件应用 接收写入请求以便执行与第二数据块有关的写入任务,其中所述写入任务包括将所述第二 数据块写入到存储在所述存储设备处的数据;访问与所述第二数据块相关联的第二元数据 高速缓存处的第二参考加密代码;计算与所述第二数据块有关的第二新加密代码;在所述 第二元数据高速缓存中由所述第二新加密代码代替所述第二参考加密代码;并且接受所述 写入请求,其中接受包括促进所述写入任务。
[0054] 实施例或示例包括上述方法中的任意一个,其中所述第二元数据高速缓存维护所 述第二新加密代码,以使得所述第二新加密代码用作参考加密代码用于未来的读取请求。
[0055] 实施例或示例包括上述方法中的任意一个,其中所述第二参考加密代码和新加密 代码包括基于散列的消息认证代码(HMAC)。
[0056] 实施例或示例包括上述方法中的任意一个,其中所述软件应用包括在所述计算设 备处运行的操作系统。
[0057] 在另一实施例或示例中,一种装置包括:第一逻辑,用于从计算设备处的软件应用 接收读取请求以便执行与存储在耦合到所述计算设备的存储设备处的数据的第一数据块 有关的读取任务,其中,所述读取任务包括读取所述第一数据块;第二逻辑,用于访问与所 述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码;第三逻辑,用于计算 与所述第一数据块有关的第一新加密代码;第四逻辑,用于将所述第一新加密代码与所述 第一参考加密代码进行比较;以及第五逻辑,用于如果所述第一新加密代码与所述第一参 考加密代码相匹配则接受所述读取请求,其中接受包括促进所述读取任务。
[0058] 实施例或示例包括上述装置,其中所述第五逻辑进一步用于如果所述第一新加密 代码与所述第一参考加密代码不相匹配则拒绝所述读取请求,其中,拒绝包括对所述读取 请求做出响应而发出错误消息,其中,如果包含所述第一参考加密代码的数据块从所述第 一元数据高速缓存遗漏,则所述读取请求被提交以便促进对遗漏的数据块的读取任务。
[0059] 实施例或示例包括上述装置,其中所述第一参考加密代码和新加密代码包括基于 散列的消息认证代码(HMAC)。
[0060] 实施例或示例包括上述装置,其中所述软件应用包括在计算设备处运行的操作系 统。
[0061] 实施例或示例包括上述装置,其中所述第一逻辑进一步用于从计算设备处的软件 应用接收写入请求以便执行与第二数据块有关的写入任务,其中,所述写入任务包括将第 二数据块写入到存储在所述存储设备处的数据;所述第二逻辑进一步用于访问与所述第二 数据块相关联的第二元数据高速缓存处的第二参考加密代码;所述第三逻辑进一步用于计 算与所述第二数据块有关的第二新加密代码;所述第四逻辑进一步用于在所述第二元数据 高速缓存中由所述第二新加密代码代替所述第二参考加密代码;并且所述第五逻辑进一步 用于接受所述写入请求,其中接受包括促进所述写入任务。
[0062] 实施例或示例包括上述装置,其中所述第二元数据高速缓存用于维护所述第二新 加密代码,以使得所述第二新加密代码用作参考加密代码用于未来的读取请求。
[0063] 实施例或示例包括上述装置,其中所述第二参考加密代码和新加密代码包括基于 散列的消息认证代码(HMAC)。
[0064] 实施例或示例包括上述装置,其中所述软件应用包括在所述计算设备处运行的操 作系统。
[0065] 在另一实施例或示例中,一种系统包括:具有用于存储指令的存储器以及用于执 行所述指令的处理设备的计算设备,所述计算设备进一步具有一种机制以便执行下列操 作:从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述计算设备的存 储设备处的数据的第一数据块有关的读取任务,其中所述读取任务包括读取所述第一数据 块;访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码;计算与 所述第一数据块有关的第一新加密代码;将所述第一新加密代码与所述第一参考加密代码 进行比较;并且如果所述第一新加密代码与所述第一参考加密代码相匹配,则接受所述读 取请求,其中接受包括促进所述读取任务。
[0066] 实施例或示例包括上述系统,其中所述第五逻辑进一步用于如果所述第一新加密 代码与所述第一参考加密代码不相匹配则拒绝所述读取请求,其中拒绝包括对所述读取请 求做出响应而发出错误消息,其中如果包含所述第一参考加密代码的数据块从所述第一元 数据高速缓存遗漏,则所述读取请求被提交以便促进对遗漏的数据块的读取任务。
[0067] 实施例或示例包括上述系统,其中所述第一参考加密代码和新加密代码包括基于 散列的消息认证代码(HMAC)。
[0068] 实施例或示例包括上述系统,其中所述软件应用包括在所述计算设备处运行的操 作系统。
[0069] 实施例或示例包括上述系统,其中所述第一逻辑进一步用于从计算设备处的软件 应用接收写入请求以便执行与第二数据块有关的写入任务,其中所述写入任务包括将所述 第二数据块写入到存储在所述存储设备处的数据;所述第二逻辑进一步用于访问与所述第 二数据块相关联的第二元数据高速缓存处的第二参考加密代码;所述第三逻辑进一步用于 计算与所述第二数据块有关的第二新加密代码;所述第四逻辑进一步用于在所述第二元数 据高速缓存中由所述第二新加密代码代替所述第二参考加密代码;并且所述第五逻辑进一 步用于接受所述写入请求,其中接受包括促进所述写入任务。
[0070] 实施例或示例包括上述系统,其中所述第二元数据高速缓存用于维护所述第二新 加密代码,以使得所述第二新加密代码用作参考加密代码用于未来的读取请求。
[0071] 实施例或示例包括上述系统,其中所述第二参考加密代码和新加密代码包括基于 散列的消息认证代码(HMAC)。
[0072] 实施例或示例包括上述系统,其中所述软件应用包括在所述计算设备处运行的操 作系统。
[0073] 在另一实施例或示例中,一种装置包括用于执行上面提到的操作中的任意一个或 多个的模块。
[0074] 在又一实施例或示例中,至少一个机器可读介质包括多个指令,所述指令对在计 算设备上被执行做出响应而使所述计算设备执行根据上面提到的操作中的任意一个或多 个的方法。
[0075] 在又一实施例或示例中,至少一个非暂态或有形机器可读介质包括多个指令,所 述指令对在计算设备上被执行做出响应而使所述计算设备执行根据上面提到的操作中的 任意一个或多个的方法。
[0076] 在又一实施例或示例中,一种计算设备被布置为执行根据上面提到的操作中的任 意一个或多个的方法。
[0077] 附图和前面的描述给出了实施例的示例。本领域中的技术人员将认识到,所描述 的元件中的一个或多个可以被很好地组合为单个功能元件。可选地,某些元件可以被划分 为多个功能元件。来自一个实施例的元件可以被添加到另一实施例。例如,本文描述的过 程的顺序可以被改变,并且不局限于本文描述的方式。而且,任何流程图的动作不需要以所 示的顺序实现;所有动作也不一定都需要被执行。并且,不取决于其它动作的那些动作可以 被与其它动作并行地执行。实施例的范围决不由这些具体示例限制。很多变形是可能的, 无论是否在说明书中明确给出,例如在结构、尺寸和材料使用方面。实施例的范围至少与下 面的权利要求所给出的范围一样广泛。
【权利要求】
1. 一种方法,包括: 从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述计算设备的存 储设备处的数据的第一数据块有关的读取任务,其中,所述读取任务包括读取所述第一数 据块; 访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码; 计算与所述第一数据块有关的第一新加密代码; 将所述第一新加密代码与所述第一参考加密代码进行比较;并且 如果所述第一新加密代码与所述第一参考加密代码相匹配,则接受所述读取请求,其 中接受包括促进所述读取任务。
2. 如权利要求1所述的方法,进一步包括如果所述第一新加密代码与所述第一参考加 密代码不相匹配,则拒绝所述读取请求,其中拒绝包括对所述读取请求做出响应而发出错 误消息,其中,如果包含所述第一参考加密代码的数据块从所述第一元数据高速缓存遗漏, 则所述读取请求被提交以便促进针对遗漏的数据块的所述读取任务。
3. 如权利要求1所述的方法,其中,所述第一参考加密代码和所述第一新加密代码包 括基于散列的消息认证代码(HMAC)。
4. 如权利要求1所述的方法,其中,所述软件应用包括在所述计算设备处运行的操作 系统。
5. 如权利要求1所述的方法,进一步包括: 从所述计算设备处的软件应用接收写入请求以便执行与第二数据块有关的写入任务, 其中,所述写入任务包括将所述第二数据块写入到存储在所述存储设备处的所述数据; 访问与所述第二数据块相关联的第二元数据高速缓存处的第二参考加密代码; 计算与所述第二数据块有关的第二新加密代码; 在所述第二元数据高速缓存中由所述第二新加密代码代替所述第二参考加密代码;并 且 接受所述写入请求,其中接受包括促进所述写入任务。
6. 如权利要求5所述的方法,其中,所述第二元数据高速缓存维护所述第二新加密代 码,以使得所述第二新加密代码用作参考加密代码,用于未来的读取请求。
7. 如权利要求5所述的方法,其中,所述第二参考加密代码和所述第二新加密代码包 括基于散列的消息认证代码(HMAC)。
8. 如权利要求5所述的方法,其中,所述软件应用包括在所述计算设备处运行的操作 系统。
9. 一种装置,包括: 第一逻辑,用于从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述 计算设备的存储设备处的数据的第一数据块有关的读取任务,其中,所述读取任务包括读 取所述第一数据块; 第二逻辑,用于访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加 密代码; 第三逻辑,用于计算与所述第一数据块有关的第一新加密代码; 第四逻辑,用于将所述第一新加密代码与所述第一参考加密代码进行比较;以及 第五逻辑,用于如果所述第一新加密代码与所述第一参考加密代码相匹配则接受所述 读取请求,其中接受包括促进所述读取任务。
10. 如权利要求9所述的装置,其中,所述第五逻辑进一步用于如果所述第一新加密 代码与所述第一参考加密代码不相匹配则拒绝所述读取请求,其中,拒绝包括对所述读取 请求做出响应而发出错误消息,其中,如果包含所述第一参考加密代码的数据块从所述第 一元数据高速缓存遗漏,则所述读取请求被提交以便促进针对遗漏的数据块的所述读取任 务。
11. 如权利要求9所述的装置,其中,所述第一参考代码和所述第一新加密代码包括基 于散列的消息认证代码(HMAC)。
12. 如权利要求9所述的装置,其中,所述软件应用包括在所述计算设备处运行的操作 系统。
13. 如权利要求9所述的装置,其中: 所述第一逻辑进一步用于从所述计算设备处的软件应用接收写入请求以便执行与第 二数据块有关的写入任务,其中,所述写入任务包括将所述第二数据块写入到存储在所述 存储设备处的所述数据; 所述第二逻辑进一步用于访问与所述第二数据块相关联的第二元数据高速缓存处的 第二参考加密代码; 所述第三逻辑进一步用于计算与所述第二数据块有关的第二新加密代码; 所述第四逻辑进一步用于在所述第二元数据高速缓存中由所述第二新加密代码代替 所述第二参考加密代码;以及 所述第五逻辑进一步用于接受所述写入请求,其中接受包括促进所述写入任务。
14. 如权利要求13所述的装置,其中,所述第二元数据高速缓存维护所述第二新加密 代码,以使得所述第二新加密代码用作参考加密代码,用于未来的读取请求。
15. 如权利要求13所述的装置,其中,所述第二参考加密代码和所述第二新加密代码 包括基于散列的消息认证代码(HMAC)。
16. 如权利要求13所述的装置,其中,所述软件应用包括在所述计算设备处运行的操 作系统。
17. -种系统,包括: 计算设备,具有用于存储指令的存储器和用于执行所述指令的处理设备,所述计算设 备还具有一种机制以便执行下列操作: 从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述计算设备的存 储设备处的数据的第一数据块有关的读取任务,其中,所述读取任务包括读取所述第一数 据块; 访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码; 计算与所述第一数据块有关的第一新加密代码; 将所述第一新加密代码与所述第一参考加密代码进行比较;以及 如果所述第一新加密代码与所述第一参考加密代码相匹配,则接受所述读取请求,其 中,接受包括促进所述读取任务。
18. 如权利要求17所述的系统,其中,所述机制进一步用于如果所述第一新加密代码 与所述第一参考加密代码不相匹配则拒绝所述读取请求,其中,拒绝包括对所述读取请求 做出响应而发出错误消息,其中,如果包含所述第一参考加密代码的数据块从所述第一元 数据高速缓存遗漏,则所述读取请求被提交以便促进针对遗漏的数据块的所述读取任务。
19. 如权利要求17所述的系统,其中,所述第一参考加密代码和所述第一新加密代码 包括基于散列的消息认证代码(HMAC)。
20. 如权利要求17所述的系统,其中,所述软件应用包括在所述计算设备处运行的操 作系统。
21. 如权利要求17所述的系统,其中,所述机制进一步用于: 从所述计算设备处的软件应用接收写入请求以执行与第二数据块有关的写入任务,其 中,所述写入任务包括将所述第二数据块写入到存储在所述存储设备处的所述数据; 访问与所述第二数据块相关联的第二元数据高速缓存处的第二参考加密代码; 计算与所述第二数据块有关的第二新加密代码; 在所述第二元数据高速缓存中由所述第二新加密代码代替所述第二参考加密代码;以 及 接受所述写入请求,其中接受包括促进所述写入任务。
22. 如权利要求21所述的系统,其中,所述第二元数据高速缓存维护所述第二新加密 代码,以使得所述第二新加密代码用作参考加密代码,用于未来的读取请求。
23. 包括多个指令的至少一个机器可读存储介质,所述指令对在计算设备上被执行做 出响应而使所述计算设备执行根据一个或多个操作的方法,所述一个或多个操作包括: 从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述计算设备的存 储设备处的数据的第一数据块有关的读取任务,其中,所述读取任务包括读取所述第一数 据块; 访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码; 计算与所述第一数据块有关的第一新加密代码; 将所述第一新加密代码与所述第一参考加密代码进行比较;以及 如果所述第一新加密代码与所述第一参考加密代码相匹配,则接受所述读取请求,其 中,接受包括促进所述读取任务。
24. 如权利要求23所述的机器可读存储介质,其中,所述一个或多个操作进一步包括: 如果所述第一新加密代码与所述第一参考加密代码不相匹配,则拒绝所述读取请求,其中, 拒绝包括对所述读取请求做出响应而发出错误消息,其中,如果包含所述第一参考加密代 码的数据块从所述第一元数据高速缓存遗漏,则所述读取请求被提交以便促进针对遗漏的 数据块的所述读取任务。
25. 如权利要求23所述的机器可读存储介质,其中,所述第一参考加密代码和所述第 一新加密代码包括基于散列的消息认证代码(HMAC)。
26. 如权利要求23所述的机器可读存储介质,其中,所述软件应用包括在所述计算设 备处运行的操作系统。
27. 如权利要求23所述的机器可读存储介质,其中,所述一个或多个操作进一步包括: 从所述计算设备处的软件应用接收写入请求以便执行与第二数据块有关的写入任务, 其中,所述写入任务包括将所述第二数据块写入到存储在所述存储设备处的所述数据; 访问与所述第二数据块相关联的第二元数据高速缓存处的第二参考加密代码; 计算与所述第二数据块有关的第二新加密代码; 在所述第二元数据高速缓存中由所述第二新加密代码代替所述第二参考加密代码;以 及 接受所述写入请求,其中,接受包括促进所述写入任务。
28. 如权利要求27所述的机器可读存储介质,其中,所述第二元数据高速缓存维护所 述第二新加密代码,以使得所述第二新加密代码用作参考加密代码,用于未来的读取请求。
29. 如权利要求27所述的机器可读存储介质,其中,所述第二参考加密代码和所述第 二新加密代码包括基于散列的消息认证代码(HMAC)。
30. 如权利要求27所述的机器可读存储介质,其中,所述软件应用包括在所述计算设 备处运行的操作系统。
【文档编号】G06F21/60GK104067287SQ201380006289
【公开日】2014年9月24日 申请日期:2013年8月12日 优先权日:2012年8月31日
【发明者】D·卡萨特金 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1