《用于促进计算系统处的存储数据的无加密完整性保护的机制.pdf》由会员分享,可在线阅读,更多相关《用于促进计算系统处的存储数据的无加密完整性保护的机制.pdf(20页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104067287A43申请公布日20140924CN104067287A21申请号201380006289122申请日2013081213/601,96920120831USG06F21/6020060171申请人英特尔公司地址美国加利福尼亚72发明人D卡萨特金74专利代理机构永新专利商标代理有限公司72002代理人王英张立达54发明名称用于促进计算系统处的存储数据的无加密完整性保护的机制57摘要描述了根据一个实施例用于促进计算系统处的存储数据的无加密完整性保护的机制。本发明实施例的方法包括从计算设备处的软件应用接收读取请求以执行与存储在耦合到所述计算设备的存储设备处的数据。
2、的第一数据块有关的读取任务。所述读取任务可以包括读取所述第一数据块。所述方法可以进一步包括访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码,计算与所述第一数据块有关的第一新加密代码,对所述第一新加密代码与所述第一参考加密代码进行比较,并且如果所述第一新加密代码与所述第一参考加密代码相匹配则接受所述读取请求。所述接受可以进一步包括促进所述读取任务。30优先权数据85PCT国际申请进入国家阶段日2014072286PCT国际申请的申请数据PCT/US2013/0545352013081287PCT国际申请的公布数据WO2014/035650EN2014030651INTCL权利要。
3、求书4页说明书10页附图5页19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书10页附图5页10申请公布号CN104067287ACN104067287A1/4页21一种方法,包括从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述计算设备的存储设备处的数据的第一数据块有关的读取任务,其中,所述读取任务包括读取所述第一数据块;访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码;计算与所述第一数据块有关的第一新加密代码;将所述第一新加密代码与所述第一参考加密代码进行比较;并且如果所述第一新加密代码与所述第一参考加密代码相匹配,则接受所述读取请求,其中接受。
4、包括促进所述读取任务。2如权利要求1所述的方法,进一步包括如果所述第一新加密代码与所述第一参考加密代码不相匹配,则拒绝所述读取请求,其中拒绝包括对所述读取请求做出响应而发出错误消息,其中,如果包含所述第一参考加密代码的数据块从所述第一元数据高速缓存遗漏,则所述读取请求被提交以便促进针对遗漏的数据块的所述读取任务。3如权利要求1所述的方法,其中,所述第一参考加密代码和所述第一新加密代码包括基于散列的消息认证代码HMAC。4如权利要求1所述的方法,其中,所述软件应用包括在所述计算设备处运行的操作系统。5如权利要求1所述的方法,进一步包括从所述计算设备处的软件应用接收写入请求以便执行与第二数据块有关。
5、的写入任务,其中,所述写入任务包括将所述第二数据块写入到存储在所述存储设备处的所述数据;访问与所述第二数据块相关联的第二元数据高速缓存处的第二参考加密代码;计算与所述第二数据块有关的第二新加密代码;在所述第二元数据高速缓存中由所述第二新加密代码代替所述第二参考加密代码;并且接受所述写入请求,其中接受包括促进所述写入任务。6如权利要求5所述的方法,其中,所述第二元数据高速缓存维护所述第二新加密代码,以使得所述第二新加密代码用作参考加密代码,用于未来的读取请求。7如权利要求5所述的方法,其中,所述第二参考加密代码和所述第二新加密代码包括基于散列的消息认证代码HMAC。8如权利要求5所述的方法,其中。
6、,所述软件应用包括在所述计算设备处运行的操作系统。9一种装置,包括第一逻辑,用于从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述计算设备的存储设备处的数据的第一数据块有关的读取任务,其中,所述读取任务包括读取所述第一数据块;第二逻辑,用于访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码;第三逻辑,用于计算与所述第一数据块有关的第一新加密代码;第四逻辑,用于将所述第一新加密代码与所述第一参考加密代码进行比较;以及权利要求书CN104067287A2/4页3第五逻辑,用于如果所述第一新加密代码与所述第一参考加密代码相匹配则接受所述读取请求,其中接受包括促进所述读取任务。
7、。10如权利要求9所述的装置,其中,所述第五逻辑进一步用于如果所述第一新加密代码与所述第一参考加密代码不相匹配则拒绝所述读取请求,其中,拒绝包括对所述读取请求做出响应而发出错误消息,其中,如果包含所述第一参考加密代码的数据块从所述第一元数据高速缓存遗漏,则所述读取请求被提交以便促进针对遗漏的数据块的所述读取任务。11如权利要求9所述的装置,其中,所述第一参考代码和所述第一新加密代码包括基于散列的消息认证代码HMAC。12如权利要求9所述的装置,其中,所述软件应用包括在所述计算设备处运行的操作系统。13如权利要求9所述的装置,其中所述第一逻辑进一步用于从所述计算设备处的软件应用接收写入请求以便执。
8、行与第二数据块有关的写入任务,其中,所述写入任务包括将所述第二数据块写入到存储在所述存储设备处的所述数据;所述第二逻辑进一步用于访问与所述第二数据块相关联的第二元数据高速缓存处的第二参考加密代码;所述第三逻辑进一步用于计算与所述第二数据块有关的第二新加密代码;所述第四逻辑进一步用于在所述第二元数据高速缓存中由所述第二新加密代码代替所述第二参考加密代码;以及所述第五逻辑进一步用于接受所述写入请求,其中接受包括促进所述写入任务。14如权利要求13所述的装置,其中,所述第二元数据高速缓存维护所述第二新加密代码,以使得所述第二新加密代码用作参考加密代码,用于未来的读取请求。15如权利要求13所述的装置。
9、,其中,所述第二参考加密代码和所述第二新加密代码包括基于散列的消息认证代码HMAC。16如权利要求13所述的装置,其中,所述软件应用包括在所述计算设备处运行的操作系统。17一种系统,包括计算设备,具有用于存储指令的存储器和用于执行所述指令的处理设备,所述计算设备还具有一种机制以便执行下列操作从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述计算设备的存储设备处的数据的第一数据块有关的读取任务,其中,所述读取任务包括读取所述第一数据块;访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码;计算与所述第一数据块有关的第一新加密代码;将所述第一新加密代码与所述第一参考加密代码。
10、进行比较;以及如果所述第一新加密代码与所述第一参考加密代码相匹配,则接受所述读取请求,其中,接受包括促进所述读取任务。18如权利要求17所述的系统,其中,所述机制进一步用于如果所述第一新加密代码权利要求书CN104067287A3/4页4与所述第一参考加密代码不相匹配则拒绝所述读取请求,其中,拒绝包括对所述读取请求做出响应而发出错误消息,其中,如果包含所述第一参考加密代码的数据块从所述第一元数据高速缓存遗漏,则所述读取请求被提交以便促进针对遗漏的数据块的所述读取任务。19如权利要求17所述的系统,其中,所述第一参考加密代码和所述第一新加密代码包括基于散列的消息认证代码HMAC。20如权利要求1。
11、7所述的系统,其中,所述软件应用包括在所述计算设备处运行的操作系统。21如权利要求17所述的系统,其中,所述机制进一步用于从所述计算设备处的软件应用接收写入请求以执行与第二数据块有关的写入任务,其中,所述写入任务包括将所述第二数据块写入到存储在所述存储设备处的所述数据;访问与所述第二数据块相关联的第二元数据高速缓存处的第二参考加密代码;计算与所述第二数据块有关的第二新加密代码;在所述第二元数据高速缓存中由所述第二新加密代码代替所述第二参考加密代码;以及接受所述写入请求,其中接受包括促进所述写入任务。22如权利要求21所述的系统,其中,所述第二元数据高速缓存维护所述第二新加密代码,以使得所述第二。
12、新加密代码用作参考加密代码,用于未来的读取请求。23包括多个指令的至少一个机器可读存储介质,所述指令对在计算设备上被执行做出响应而使所述计算设备执行根据一个或多个操作的方法,所述一个或多个操作包括从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述计算设备的存储设备处的数据的第一数据块有关的读取任务,其中,所述读取任务包括读取所述第一数据块;访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码;计算与所述第一数据块有关的第一新加密代码;将所述第一新加密代码与所述第一参考加密代码进行比较;以及如果所述第一新加密代码与所述第一参考加密代码相匹配,则接受所述读取请求,其中,接受。
13、包括促进所述读取任务。24如权利要求23所述的机器可读存储介质,其中,所述一个或多个操作进一步包括如果所述第一新加密代码与所述第一参考加密代码不相匹配,则拒绝所述读取请求,其中,拒绝包括对所述读取请求做出响应而发出错误消息,其中,如果包含所述第一参考加密代码的数据块从所述第一元数据高速缓存遗漏,则所述读取请求被提交以便促进针对遗漏的数据块的所述读取任务。25如权利要求23所述的机器可读存储介质,其中,所述第一参考加密代码和所述第一新加密代码包括基于散列的消息认证代码HMAC。26如权利要求23所述的机器可读存储介质,其中,所述软件应用包括在所述计算设备处运行的操作系统。27如权利要求23所述的。
14、机器可读存储介质,其中,所述一个或多个操作进一步包括从所述计算设备处的软件应用接收写入请求以便执行与第二数据块有关的写入任务,其中,所述写入任务包括将所述第二数据块写入到存储在所述存储设备处的所述数据;权利要求书CN104067287A4/4页5访问与所述第二数据块相关联的第二元数据高速缓存处的第二参考加密代码;计算与所述第二数据块有关的第二新加密代码;在所述第二元数据高速缓存中由所述第二新加密代码代替所述第二参考加密代码;以及接受所述写入请求,其中,接受包括促进所述写入任务。28如权利要求27所述的机器可读存储介质,其中,所述第二元数据高速缓存维护所述第二新加密代码,以使得所述第二新加密代码。
15、用作参考加密代码,用于未来的读取请求。29如权利要求27所述的机器可读存储介质,其中,所述第二参考加密代码和所述第二新加密代码包括基于散列的消息认证代码HMAC。30如权利要求27所述的机器可读存储介质,其中,所述软件应用包括在所述计算设备处运行的操作系统。权利要求书CN104067287A1/10页6用于促进计算系统处的存储数据的无加密完整性保护的机制技术领域0001本发明的实施例涉及安全系统。更具体地说,本发明的实施例涉及用于促进计算系统处的存储数据的无加密完整性保护的机制。背景技术0002数据安全是计算机安全的公知分支,数据安全为存储数据提供安全以防盗窃、破坏、自然灾害等等。然而,用于提。
16、供数据安全的常规系统是受限且低效的。例如,许多常规系统依赖于数据加密来简单地隐藏数据,该数据会被拦截,并且它们的完整性会例如经过离线修改被攻击。此外,这些常规系统是资源低效且消耗功率的,并且还不为存储数据的任何未加密部分提供保护。附图说明0003在附图的图示中通过示例而非限制的方式说明了本发明的实施例,其中相似的附图标记指代类似的元件。0004图1说明了根据一个实施例用于在计算系统处使用的存储数据的无加密保护的基于映射框架的机制。0005图2说明了根据一个实施例用于计算系统处的存储数据的无加密保护的基于映射框架的机制。0006图3说明了根据一个实施例用于促进完整性存储数据的安全和保护的事务序列。
17、。0007图4A说明了根据一个实施例用于在处理读取操作时促进完整性存储数据的安全和保护的方法。0008图4B说明了根据一个实施例用于在处理写入操作时促进完整性存储数据的安全和保护的方法。0009图5说明了根据本发明一个实施例适合于实现本公开的实施例的计算机系统。具体实施方式0010在下面的描述中,阐述了各种具体细节。然而,本发明的实施例可以在没有这些具体细节的情况下实施。在其它实例中,没有详细地示出公知的电路、结构和技术,以便不混淆对本描述的理解。0011实施例促进提供存储数据的安全并且维护该存储数据的完整性以防例如由于黑客攻击、盗窃、破坏、自然或人为灾害等等引起的任何无意或者有意修改。实施例。
18、可以提供用于促进计算系统处的存储数据的无加密完整性保护的机制,其中该机制可以是基于映射框架的或者可以被实现为块设备驱动器等等,其可以例如帮助存储基于散列的消息认证代码HMAC。例如,实施例经过安全的内部计算和验证机制例如HMAC提供存储数据例如由操作系统访问的数据的基于设备映射器的安全和完整性以防任何修改例如离线修说明书CN104067287A2/10页7改等等,而不必例如移动或改变存储硬件,对存储数据进行加密/解密,等等。通过促进存储数据的安全和完整性而不必对数据进行加密,允许存储数据保持未加密,并且因而在需要时促进数据的更容易的访问和恢复。而且,不必对存储数据进行加密提供了更好的资源效率和。
19、低功耗。0012存储设备上的数据可以被组织在扇区中,例如512字节,并且被视为读取和写入操作的最小单位。扇区指代块中的组,例如4K块可以包括8个扇区。设想扇区和/或块尺寸可以改变。进而,文件系统典型地以块进行操作,并且可以发出读取/写入请求,例如,在单个块的情况下,用于读取一个或多个块的读取请求典型地转换到例如读取数据4K块的所有8个扇区。关于存储设备SD,整个存储装置可以被划分为分区,其中每一个分区可以由几个块组成;例如,存储设备SDA可以被划分为诸如SDA1、SDA2、SDA3等等的分区。这些分区可以被格式化到不同的文件系统,例如EXT4、文件分配表FAT、公司的新技术文件系统NTFS等等。
20、,例如SDA1可以是EXT4,SDA2可以是NTFS,等等。进而,文件系统可以调用一个或多个块层以便读取数据块,例如当读取请求被发出时,文件系统可以立即调用块层,而当写入请求被发出时,页可以被更新,但它们可能不被立即写入到块设备。这样的页可以被称为页高速缓存。页高速缓存可以在写回操作期间被写回到块设备,并且在该写回操作期间,文件系统可以将写入请求发送到块层。0013实施例提供如在整篇文档中描述的映射框架中实现的用于促进存储数据的无加密完整性保护的机制,但是设想这些实施例并不局限于该映射框架,以使得块设备驱动器可以被替代地用于实现该机制。0014图1说明了根据一个实施例用于在计算设备处使用的存储。
21、数据的无加密保护的基于映射框架的机制。计算设备100用作主机以便使用用于存储数据的无加密保护的基于映射框架的机制“完整性保护机制”110来促进存储在一个或多个存储设备处的数据的安全和完整性。在一个实施例中,存储数据保护机制110可以被提供为映射框架116也被称为“设备映射器”的插件模块,该映射框架116是操作系统内核114例如内核的一部分。内核114可以用作用于管理系统资源的操作系统106的部件,例如用作桥,或者促进软件应用例如经由用户空间112提供和在硬件级例如硬件存储设备处完成的任何数据处理之间的通信。映射框架116可以用作框架或映射器以便将一个块设备映射到另一块设备,或者将一个设备处的块。
22、映射到相同或其它设备处的块,用作企业卷管理系统EVMS、逻辑卷管理器LVM、DMCRYPT等等的基础。0015计算设备100可以包括例如蜂窝电话的移动计算设备,包括智能电话例如的RESEARCHIN的等等、个人数字助理PDA等等、平板计算机例如的的GALAXY等等、膝上型计算机例如笔记本计算机、上网本计算机、ULTRABOOKTM等等、电子阅读器例如的BARNES和的等等等等。计算设备100可以进一步包括机顶盒例如,基于互联网的有线电视机顶盒等等、电视机、车内娱乐系统和较大的计算设备,例如桌上型计算机、服务器计算机等等。0016计算设备100包括操作系统OS106,用作计算设备100的任何硬件。
23、或物理资源与说明书CN104067287A3/10页8用户之间的接口。计算设备100进一步包括一个或多个处理器102、存储器设备104、网络设备、驱动器等等以及诸如触摸屏、触控面板、触摸板、虚拟或常规键盘、虚拟或常规鼠标等等的输入/输出I/O源108。应该注意,类似“计算设备”、“节点”、“计算节点”、“客户端”、“主机”、“服务器”、“存储器服务器”、“机器”、“设备”、“计算设备”、“计算机”、“计算系统”等等的词语可以在整个文档中可互换地使用。0017图2说明了根据一个实施例用于计算设备处的存储数据的无加密保护的基于映射框架的机制。在一个实施例中,数据完整性保护机制110包括多个部件,例。
24、如接收逻辑202、提交逻辑204、参考逻辑206、计算逻辑208、比较逻辑210、更新逻辑212和决定逻辑214。如前面参照图1描述的,数据完整性保护逻辑110可以作为操作系统的一部分而存在,并且可以维护任何数量和类型的软件应用222和与诸如图1的计算设备100的计算设备相关联的任何数量和类型的存储设备232之间的通信。在整个文档中,词语“逻辑”可以被可互换地称为“处理逻辑”、“部件”或“模块”,并且可以通过示例的方式包括软件、硬件和/或软件和硬件的任何组合,例如固件。0018在一个实施例中,数据完整性保护机制110提供与计算设备耦合的一个或多个存储设备232处的数据的安全和完整性保护。存储数。
25、据可以由操作系统和/或在计算设备处运行的一个或多个软件应用222访问和使用。例如,数据可以包括软件代码、软件代码的相关部分和/或任何其它相关信息,例如可以由软件应用222和/或操作系统访问和使用的元数据高速缓存。存储设备232的示例可以包括任何数量和类型的存储系统,例如随机存取存储器RAM、独立磁盘冗余阵列RAID、非一致存储器存取NUMA存储器系统、存储区域网络、处理器寄存器、存储器通道、磁盘、光盘、磁带、网络附接的存储NAS设备、网络文件系统、关系数据库等等。0019在一个实施例中,数据完整性保护机制110的接收逻辑202可以用于从软件应用222接收对诸如数据读取或数据写入的任务的调用或请。
26、求。读取请求指代当尝试读取存储设备232处的数据的任何部分例如一个或多个数据块时由应用222促进的读取命令例如SYS_READ,例如软件应用可以使用READ库函数,其接着调用系统调用SYS_READ。相较而言,写入请求指代用于将一个或多个数据块进一步写入到存储设备232处的现有数据的写入命令例如SYS_WRITE,例如软件应用可以使用WRITE库函数,其接着调用系统调用SYS_WRITE,该写入包括修改数据,例如软件管理员或程序员改变现有的存储数据。提交逻辑204接着提交或传输所接收的请求,以使得所请求的任务例如读取、写入等等可以针对该存储数据的一个或多个相关数据块被执行,例如读取或写入如在所。
27、接收的请求中阐述的一个或多个数据块。0020在一个实施例中,参考逻辑206访问与相关的数据块相关联的完整性元数据高速缓存以便确定任何数据块是否具有存储在元数据高速缓存中的相对应的HMAC。完整性元数据高速缓存可以被组织为完整性元数据数据块的集合,其中每一个块被预期保持几个完整性元数据记录,例如保持HMAC。完整性元数据数据块可以被存储在其中存在真实的数据块的相同的分区块设备上,或者可以被存储在存在于相同或不同的存储设备上的专用分区上。如果包含参考HMAC的完整性元数据数据块从高速缓存遗漏,则它可以从适当的位置被读取。0021同时,计算逻辑208使用加密密钥来计算每一个相关数据块的新HMAC。设。
28、想用于说明书CN104067287A4/10页9计算HMAC的加密密钥的使用被提供作为示例,并且本发明实施例不局限于任何特定的过程或技术。加密密钥可以使用任意的一个或多个已知的过程被接收,例如在初始化时、在启动时,或者可以使用任何数量的已知方法在过程期间的任何点处被提供。进而,使用加密密钥和任何已知加密函数例如消息摘要算法5MD5、安全散列算法1SHA1等等的组合,可以为诸如HMACMD5、HMACSHA1等等的每一个相关数据块计算HMAC。例如,可以使用下式计算HMACHMACK,MHKOPADHKIPADM,其中H指代加密散列函数,K指代在右边用额外的零填补到散列函数的输入块尺寸或者原始密。
29、钥的散列如果它比该块尺寸长的秘密密钥,M指代待认证的消息数据块、请求的内容等等,|表示并置,表示异或XOR,OPAD指代外填补例如0X5C5C5C5C5C,一个块长十六进制常数,并且IPAD指代内填补例如0X3636363636,一个块长十六进制常数。例如,如果块尺寸是4K并且HMACSHA256尺寸是32字节,则单个块可以具有保持128个HMAC的能力。完整性元数据高速缓存可以包括特定数据块的完整性元数据例如一个或多个HMAC等等。例如,数据的一个4K块可以包含128个HMACSHA256。完整性元数据高速缓存可以指代包含在随机存取存储器中可用的完整性元数据HMAC的块例如4K块等等的集合。。
30、0022当所述请求是读取请求时,在一个实施例中,与由计算逻辑208使用的HMAC计算方法无关,一旦新HMAC对于每一个数据块被计算,它就接着通过比较逻辑210与该数据块的参考HAMC进行比较。在进行比较时,通过决定块214做出关于请求是被许可还是被拒绝的决定。例如,在进行成功的比较时,例如当在新计算的HMAC和所参考的HMAC之间存在匹配时,读取请求被许可并且被转发到上层,并且所请求的任务可以被执行,例如相关的数据块被读取。相较而言,在进行不成功的比较时,这样在所计算的HMAC和所参考的HMAC之间存在不匹配时,读取请求被拒绝,并且错误消息被发出并且被转发到上层,并且所请求的任务未被执行,例如。
31、相关的数据块被丢弃并且未被读取。0023当所述请求是写入请求时,在一个实施例中,与由计算逻辑208使用的HMAC计算方法无关,一旦新HMAC对于将被写入到存储数据的每一个数据块被计算,每一个数据块的相对应的参考HMAC就使用更新逻辑212用该数据块的新计算的HMAC进行更新或者代替。完整性元数据高速缓存中的这些新放置的HMAC可以接着对任何未来的读取请求做出响应而被参考和比较。0024设想任何数量和类型的部件可以被添加到数据完整性保护机制110和/或从该数据完整性保护机制110移除以便促进本发明的各种实施例,包括添加、移除和/或增强某些特征。为了数据完整性保护机制110的理解的简洁、清楚和容易。
32、,许多标准和/或已知的部件,例如计算设备的那些标准和/或部件,没有在这里被显示或讨论。设想本发明实施例不局限于任何特定的技术、拓扑、系统、架构和/或标准,并且是足够动态的以便采取并且适合任何未来的改变。0025图3说明了根据一个实施例用于促进完整性存储数据的安全和保护的事务序列。事务序列300可以由可以包括硬件例如电路、专用逻辑、可编程逻辑等等、软件例如在处理设备上运行的指令或其组合的处理逻辑执行。在一个实施例中,方法300可以由图1的数据完整性保护机制110执行。0026事务序列300以用户空间112处的软件应用222促进对事务例如读取事务例如SYS_READ、写入事务例如SYS_WRITE。
33、等等的调用开始。接着通过使操作系统的内说明书CN104067287A5/10页10核114处的系统调用接口302在虚拟文件系统VFS层304上进行调用例如VFS_READ、VFS_WRITE等等,经过该系统调用接口302将该请求传递到VFS。VFS层304在文件系统层306上进行调用以便读取该请求并且将它转发到块设备层308。文件系统层306将该请求例如块I/O读取请求提交到块设备层308,该块设备层308接着对该请求进行排队以便在映射框架或设备映射器116处被接收。0027在一个实施例中,映射框架116可以将该请求转发到数据完整性保护机制110或者经过该数据完整性保护机制110映射该请求,该。
34、数据完整性保护机制110可以被提供作为映射框架116的插件模块。在一个实施例中,数据完整性保护机制110处理该请求并且将它提交到块设备层310。在一个实施例中,块设备层310可以包括数据块设备和相对应的完整性块设备。数据块设备可以包括真实存储数据,而完整性块设备可以包括相关的完整性元数据例如参考HMAC。在一个实施例中,如前面提到的,在读取请求的情况下,数据完整性保护机制110可以计算HMAC并且将它与参考HMAC进行比较,而在写入请求的情况下,计算HMAC并且将它存储在完整性块设备中以便在未来用作参考HMAC。块设备层310接着将该请求排队到块设备驱动器312,因此在所述请求中阐述的所请求的。
35、任务可以被执行。块设备驱动器312接着执行与在相关的硬件320处的存储数据的一个或多个数据块有关的所请求的任务,该相关的硬件例如是包括SDA和/或SDB的存储设备232。0028图4A说明了根据一个实施例用于当处理读取操作时促进完整性存储数据的安全和保护的方法。方法400可以由可以包括硬件例如电路、专用逻辑、可编程逻辑等等、软件例如在处理设备上运行的指令或其组合的处理逻辑执行。在一个实施例中,方法400可以由图1的数据完整性保护机制110执行。0029方法400以在块405处从在计算系统处运行的软件应用例如操作系统或者任何其它软件应用接收请求以便访问并且读取存储在与所述计算系统通信的存储设备处。
36、的数据的数据块开始。设想不存在关于多少或什么类型的数据块可以被读取的所强加的限制。换句话说,请求可以被接收以便读取任何数量和类型的数据块。在块410处,读取请求被提交用于处理,以使得所请求的数据块可以被读取。在块415处,与数据块相关联的完整性元数据高速缓存被访问以便访问存储在该完整性元数据高速缓存处的参考HMAC,其中参考HMAC与所请求的数据块相对应或者参考该所请求的数据块。如果包含HMAC的数据块遗漏或者不存在于完整性元数据高速缓存中,则图2的参考逻辑206可以将该读取请求提交到相关的块层以便从该块设备读取数据块。0030在块420处,使用加密密钥和任意一个或多个已知的计算过程来计算与所。
37、请求的数据块相对应的新HMAC。在块425处,在一个实施例中,将新计算的HMAC与从完整性元数据高速缓存获得的参考HMAC进行比较。在决定块430处,做出关于所计算的HMAC是否与参考HMAC相匹配的确定。如果它们相匹配,则在块435处,该过程通过许可该请求并且将它转发到上层继续到促进该读取请求的软件应用在用户空间处来继续,例如所请求的数据块被读取。如果没有相匹配,则在块440处,该过程终止并且错误消息被发出且被转发到上层。0031图4B说明了根据一个实施例用于在处理写入操作时促进完整性存储数据的安全和保护的方法。方法450可以由可以包括硬件例如电路、专用逻辑、可编程逻辑等等、软件例如在处理设。
38、备上运行的指令或其组合的处理逻辑执行。在一个实施例中,方法说明书CN104067287A106/10页11450可以由图1的数据完整性保护机制110执行。0032方法450以在块455处从在计算系统处运行的软件应用例如操作系统或任何其它软件应用接收请求以便将数据块写入到与所述计算系统通信的存储设备处的现有数据开始。设想不存在关于多少或什么类型的数据块可以被读取的所强加的限制。换句话说,该请求可以被接收以便读取任何数量和类型的数据块。在块460处,写入请求被提交用于处理,以使得所请求的数据块可以被写入。在块465处,与数据块相关联的完整性元数据高速缓存被访问以便访问存储在完整性元数据高速缓存处的。
39、参考HMAC,其中参考HMAC与该数据块相对应或者参考该数据块。0033在块470处,使用加密密钥和任意一个或多个已知的计算过程来计算与所请求的数据块相对应的新HMAC。在块475,在一个实施例中,通过使用新计算的HMAC代替现有的参考HMAC来更新完整性元数据高速缓存。进而,图2的更新逻辑212可以更新HMAC,但是可能不立即发送写入请求以便将完整性块写入到块设备。在块480处,该过程通过许可所述写入请求继续,其中数据块被写入到存储数据。在块485处,被写入的数据块的确认被发送到上层。0034图5说明了计算系统500的实施例。计算系统500代表一系列计算和电子设备有线或无线,例如包括桌上型计。
40、算系统、膝上型计算系统、蜂窝电话、包括启用蜂窝的个人数字助理PDA的PDA、机顶盒、智能电话、平板计算机等等。可选的计算系统可以包括更多、更少和/或不同的部件。0035计算系统500包括总线505或者链路、互连或用于传递信息的另一类型的通信设备或接口和耦合到总线505的可以处理信息的处理器510。尽管计算系统500被说明为具有单个处理器,但是电子系统500可以包括多个处理器和/或协处理器,例如中央处理器、图形处理器和物理处理器等等中的一个或多个。计算系统500可以进一步包括耦合到总线505并且可以存储可以由处理器510执行的信息和指令的随机存取存储器RAM或者其它动态存储设备520被称为主存储。
41、器。主存储器520还可以用于在由处理器510执行指令期间存储临时变量或其它中间信息。0036计算系统500还可以包括耦合到总线505的可以存储处理器510的静态信息和指令的只读存储器ROM和/或其它存储设备530。数据存储设备540可以耦合到总线505以便存储信息和指令。诸如磁盘或光盘以及相对应的驱动器的数据存储设备540可以耦合到计算系统500。0037计算系统500还可以经由总线505耦合到显示设备550以便向用户显示信息,该显示设备例如是阴极射线管CRT、液晶显示器LCD或者有机发光二极管OLED阵列。包括字母数字和其它键的用户输入设备560可以耦合到总线505以便将信息和命令选择传递到。
42、处理器510。另一类型的用户输入设备560是诸如鼠标、轨迹球或光标方向键的光标控制装置570,以便将方向信息和命令选择传递到处理器510并且控制显示器550上的光标移动。计算机系统500的相机和麦克风阵列590可以耦合到总线505以便观察姿势、记录音频和视频并且接收和传输视觉和音频命令。0038计算系统500可以进一步包括网络接口580以便提供对诸如局域网LAN、广域网WAN、城域网MAN、个人域网PAN、蓝牙、云网络、移动网络例如第三代3G等等、内联网、互连网等等的网络的访问。网络接口580可以例如包括具有天线585的无线网络接说明书CN104067287A117/10页12口,天线585可。
43、以代表一个或多个天线。网络接口580还可以例如包括有线网络接口以便经由网络电缆587与远程设备进行通信,网络电缆587可以例如是以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。0039网络接口580可以例如通过符合IEEE80211B和/或IEEE80211G标准来提供对LAN的接入,和/或无线网络接口可以例如通过符合蓝牙标准来提供对个人域网的接入。也可以支持包括标准的以前和随后版本的其它无线网络接口和/或协议。0040除了或代替经由无线LAN标准的通信,网络接口580可以使用例如时分多址TDMA协议、全球移动通信系统GSM协议、码分多址CDMA协议和/或任何其它类型的无线通信协议来提供无。
44、线通信。0041网络接口580可以包括一个或多个通信接口,例如调制解调器、网络接口卡或其它公知的接口设备,例如用于耦合到以太网的接口设备、令牌环或用于提供通信链路以便支持诸如LAN或WAN的目的的其它类型的物理有线或无线附件。按照这一方式,计算机系统也可以经由例如包括内联网或者互联网的常规网络基础设施耦合到多个外围设备、客户端、控制表面、控制台或服务器。0042应该认识到,比上面描述的示例更少或更多配备的系统可能对于某些实现是优选的。因此,计算系统500的配置可以取决于各种因素而在实现之间变化,该各种因素例如是价格约束、性能要求、技术改进或其它情况。电子设备或计算机系统500的示例可以没有限制。
45、地包括移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手持设备、单向寻呼机、双向寻呼机、消息传送设备、计算机、个人计算机PC、桌上型计算机、膝上型计算机、笔记本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器场、网页服务器、网络服务器、互联网服务器、工作站、微型计算机、大型计算机、超级计算机、网络电器、网页电器、分布式计算系统、多处理器系统、基于处理器的系统、消费电子设备、可编程消费电子设备、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线网络控制器、路由器、集线器、网关、桥、交换机、机器或其组合。0043实施例可以被实现为下列部件中的任意一个或组合。
46、使用母版互连的一个或多个微芯片或者集成电路、硬连线逻辑、由存储器设备存储并且由微处理器执行的软件、固件、专用集成电路ASIC和/或现场可编程门阵列FPGA。词语“逻辑”可以通过示例的方式包括软件或硬件和/或软件和硬件的组合。0044实施例可以被例如提供为可以包括具有存储在其上的机器可执行指令的一个或多个机器可读介质的计算机程序产品,该机器可执行指令当由诸如计算机、计算机的网络或其它电子设备的一个或多个机器执行时可以导致该一个或多个机器执行根据本发明实施例的操作。机器可读介质可以包括但不局限于软盘、光盘、CDROM压缩盘只读存储器和磁光盘、ROM、RAM、EPROM可擦除可编程只读存储器、EEP。
47、ROM电可擦除可编程只读存储器、磁卡或光学卡、闪存或适合于存储机器可执行指令的其它类型的介质/机器可读介质。0045而且,实施例可以被下载为计算机程序产品,其中该程序可以通过体现在载波或其它传播介质中和/或由该载波或其它传播介质调制的一个或多个数据信号经由通信链路例如调制解调器和/或网络连接被从远程计算机例如服务器传输到请求计算机例如客户端。因此,如本文使用的,机器可读介质可以包括但不被要求包括这样的载波。说明书CN104067287A128/10页130046对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等等的提及指示这样描述的本发明实施例可以包括特定的特征、结构、特性,但是不。
48、必每一个实施例都包括该特定的特征、结构、特性。进而,一些实施例可以具有针对其它实施例描述的特征中的一些、全部或没有一个。0047在下面的描述和权利要求中,可以使用词语“耦合”连同其派生词。“耦合”用于指示两个或更多个元件彼此协作或交互作用,但是它们可以具有或不具有位于它们之间的中间物理或电气部件。0048如在权利要求中使用的,除非以其它方式表明,用于描述公共元件的顺序形容词“第一”、“第二”、“第三”等等的使用仅指示类似元件的不同实例被参照,并且不打算暗示这样描述的元件必须在时间上、空间上、等级上或者以任何其它方式按照给定顺序。0049下面的款项和/或示例属于进一步实施例或示例。该示例中的细节。
49、可以在一个或多个实施例中的任何地方使用。不同实施例或示例的各种特征可以与所包括的一些特征和没有包括的其它特征不同地进行组合以便适合各种不同的应用。一些实施例涉及一种方法,包括从计算设备处的软件应用接收读取请求以便执行与存储在耦合到所述计算设备的存储设备处的数据的第一数据块有关的读取任务,其中,所述读取任务包括读取所述第一数据块;访问与所述第一数据块相关联的第一元数据高速缓存处的第一参考加密代码;计算与所述第一数据块有关的第一新加密代码;将所述第一新加密代码与所述第一参考加密代码进行比较;并且如果所述第一新加密代码与所述第一参考加密代码相匹配,则接受所述读取请求,其中接受包括促进所述读取任务。0050实施例或示例包括上述方法中的任意一个,其中进一步包括如果所述第一新加密代码与所述第一参考加密代码不匹配,则拒绝所述读取请求,其中,拒绝包括对所述读取请求做出响应而发出错误消息,其中,如果包含所述第一参考加密代码的数据块从所述第一元数据高速缓存遗漏,则所述读取请求被提交以便促进对遗漏的数据块的读取任务。0051实施例或示例包括上述方法中的任意一个,其中所述第一参考加密代码和新加密代码包括基于散列的消息认证代码HMAC。0052实施例或示例包括上述方法中的任意一个,其中所述软件应用包括在所述计算设备处运行的操作系统。0053实施例或示例包括上述方法中的任意一个,进一步包括从计算。