用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备的制作方法

文档序号:6484827阅读:372来源:国知局
用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备的制作方法
【专利摘要】本发明公开了提供加密完整性检查和重放保护以防止在系统存储器上的硬件攻击的方法和设备。通过扩展调整以包括“时间戳”指示符,用于分块密码的操作模式增强了标准XTS-AES操作模式以执行存储器加密。基于树的重放保护方案使用标准XTS-AES加密系统存储器中高速缓存行的内容。用于高速缓存行的消息验证码(MAC)使用增强XTS-AES和与高速缓存行相关联的“时间戳”指示符进行加密。“时间戳指示符”存储在处理器中。
【专利说明】用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备
【技术领域】
[0001]本公开涉及数据的加密保护,并且具体地说,涉及存储器中存储器区域中存储的软件应用的加密。
【背景技术】
[0002]由安全软件应用使用的系统中易失性存储器的区域需要受到保护,防止未经授权实体的恶意修改。这些恶意修改也称为“攻击”,可以是软件攻击或硬件攻击。为安全软件应用提供保密性和完整性保护的一种方法是在中央处理单元(CPU)或处理器封装中集成大的易失性存储器以用作安全软件应用的“专用存储器”。然而,在CPU封装中集成大的易失性存储器是昂贵的。
[0003]因此,安全软件应用一般情况下在外部(S卩,CPU外部)存储器中存储。外部存储器中存储安全软件应用的存储器区域(区块)能够对系统中的操作系统(OS)是可见或不可见的。如果这些存储器区域对OS是可见的,则它们需要受到保护,防止软件攻击和硬件攻击。如果这些存储器区域对OS是不可见的(称为“窃取的存储器区块”),并且存在某种访问控制机制,则它们需要受到保护,防止硬件攻击,即,防止可物理接近外部存储器的攻击者。
【专利附图】

【附图说明】
[0004]随着以下具体描述继续,并在参照其中类似的标号示出类似部件的附图时,所要求的主题的实施例的特征将变得明白,并且其中:
图1是根据本发明的原理,包括用于执行存储器加密的存储器加密控制器的系统的框
图;
图2是根据本发明的原理,示出处理器中N个计数器的框图,计数器由加密引擎用于执行基于树的重放保护以保护存储器中的地址范围和存储器中存储的消息验证码(MAC),提供加密完整性检查;
图3示出扩展调整(tweak)的一个实施例;
图4是示出在图1所示系统存储器中用于保护在系统存储器中存储的安全应用的区域的实施例的框图;
图5是示出用于执行对图4所示加密区域中高速缓存行的写入访问的方法的实施例的流程图;以及
图6是示出用于执行对图4所示加密区域中的读取访问的方法的实施例的流程图。
[0005]虽然以下具体描述将参照所要求主题的说明性实施例继续,但其许多备选、修改和变化将为本领域技术人员所明白。
[0006]相应地,所要求主题意图从广义上理解,并且只如随附权利要求所述那样定义。【具体实施方式】[0007]外部存储器上的硬件攻击(例如,来自可物理接近外部存储器的攻击者)可以为尝试损坏在外部存储器中存储的映像(例如,软件应用的可执行映像或数据)的方式,即,存储器损坏攻击。例如,攻击者(敌手)对假定为保密性进行了加密但无完整性检查的外部存储器中高速缓存行的修改导致在从存储器读取修改的高速缓存行时修改的高速缓存行的损坏解密。如果攻击者知道映像的内容,则攻击者能够选择性地损坏在其中其存储的外部存储器中受保护存储器区域中物理存储器位置的字符串变量(或其它常量/变量)。修改此变量能够导致各种状况,例如,造成数据被写入攻击者能够在其中访问数据的非受保护存储器区域的溢出状况。
[0008]类似地,能够使用试验和错误方法执行损坏软件应用的可执行映像的尝试,其中,存储软件应用的可执行映像的随机高速缓存行的恶意损坏导致程序执行流的意外更改,可能危及安全性,造成数据写入存储器中非受保护存储器区域。
[0009]硬件攻击也可用于将用于软件应用的可执行映像替代为恶意可执行映像(代码替换)或者将恶意脚本注入映像中。例如,为执行代码替换,攻击者取得外部存储器的受保护区域的内容的快照,并且在以后的时间在相同受保护区域中加载另一映像时重放该快照。例如,为注入恶意脚本,攻击者在映像存储在受保护存储器区域中时取得栈的快照,并且在以后的时间在完全相同的物理存储器位置存储临界指针或返回地址时重放栈的该快照。
[0010]根据本发明的原理,提供了对外部物理存储器的受保护区域提供加密完整性检查和重放保护以便防止在受保护存储器区域上恶意硬件攻击的方法和设备。
[0011]图1是根据本发明的原理,包括用于执行存储器加密的存储器加密控制器103的系统100的框图。系统100包括处理器101和输入/输出(I/O)控制器集线器(ICH) 104。处理器101包括控制在处理器101与外部存储器105之间通信的存储器控制器106。处理器101中的存储器加密控制器103可执行存储器105中存储的数据的加密和解密。存储器加密控制器103提供保密性,防止能够读取存储器105的内容的被动攻击者。
[0012]处理器101可以是多种处理器的任何一种处理器,如单核Intel? Pentium 4?处理器、单核Intel Celeron处理器、Intel? XScale处理器或多核处理器,如Intel? PentiumD、Intel? Xeon?处理器或Intel? Core? Duo处理器或Intel Core处理器或任何其它类型的处理器。
[0013]存储器105是易失性存储器,其可以为动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、双倍数据率(DDR) RAM、双倍数据率2(DDR2) RAM或存储器总线随机存取存储器(RDRAM)任何其他类型易失性存储器在另一实施例中,存储器105能够是非易失性存储器,其可以是NAND、N0R、闪存、相变存储器(PCM)或带开关的相变存储器(PCMS)或任何其它类型的非易失性存储器。
[0014]ICH 104可包括用于控制与耦合到ICH 104的至少一个存储装置112的通信的存储I/o控制器110。在本文中使用时,“存储装置”可表示可相应地将数据存储到其中和/或从中检索数据的一个或多个设备和/或其一个或多个部分。此外,在本文中使用时,术语“海量存储”和“海量存储装置”可交换使用以表示能够非易失性存储数据的存储。存储装置112可包括相应海量存储,相应海量存储可包括相应半导体、电机、磁和/或光存储装置和/或海量存储,如相应闪存、磁盘和/或光盘存储和/或海量存储。存储装置例如可以是硬盘驱动器、固态驱动器、混合光盘驱动器、数字视频光盘DVD)驱动器、压缩光盘(⑶)驱动器、独立磁盘冗余阵列(RAID)、磁带驱动器或其它非易失性存储装置。
[0015]存储I/O控制器110可能够根据例如小型计算机系统接口(SCSI)协议、光纤通道(FC)协议、因特网SCSI (iSCSI)协议、串行附接SCSI (SAS)协议、通用串行总线(USB)协议和/或串行高级技术附接(S-ATA)协议,来与存储装置(“存储”)交换数据和/或命令。
[0016]在另一实施例中,处理器101和ICH 104可集成到可称为系统芯片(SOC)的单个集成电路中。
[0017]将描述本发明的实施例用于存储器105中地址范围的保护。在一实施例中,处理器101中有N个计数器150,N个计数器的每个计数器用于保护存储器105中N个地址范围之一。要保护的地址范围可用于保护安全软件应用使用的存储器区域。受保护存储器区域可称为“窃取存储器区块”,即,包括对操作系统(OS)不可见的存储器的多个物理页的存储器区域(存储器的部分)。在一实施例中,N个计数器150能够在处理器101中的易失性存储器中存储,例如,易失性存储器能够是静态随机存取存储器(SRAM)。
[0018]保护存储器105中由安全软件应用使用的存储器区域的一种方法是将存储器105中存储的数据加密。在处理器101中,使用在处理器101内生成和存储的密钥,执行在存储器105中存储器区域中存储的数据的加密和解密。
[0019]在一实施例中,安全飞地(Enclave)是为应用提供安全位置以便在操作系统(OS)进程的上下文内执行代码和存储数据的指令集。在此环境中执行的应用称为飞地。飞地从飞地页高速缓存(EPC)执行。飞地页由OS加载到EPC中。无论何时从EPC删除飞地的页,加密保护便用于保护飞地的保密性,并且在飞地被加载回EPC时检测篡改。在EPC内,使用处理器提供的访问控制机制,保护飞地数据。
[0020]飞地页高速缓存(EPC)是执行飞地代码和访问受保护飞地数据之处。EPC位于平台的物理地址空间内,但只能够使用SE指令访问。EPC可包含来自许多不同飞地的页,并且提供访问控制机制以保护页的完整性和保密性。页高速缓存保持相干性协议,该协议类似于用于平台中相干物理存储器的协议。
[0021]然而,数据的本身加密设计成只提供数据的保密性。例如,在存储器区域中存储的数据的加密有助于保护数据的保密性,防止能够被动读取外部存储器或者能够在处理器301与系统存储器105之间传送数据时嗅探数据的攻击者。然而,外部(系统)存储器105中存储器区域中存储的数据的加密不提供完整性检查。在外部存储器105中存储数据的加密形式未防止能够主动修改或重放外部存储器105中存储的部分存储器映像的攻击者。
[0022]恶意攻击者(敌手)能够从外部存储器105的一个存储器位置复制,并且写入外部存储器105的不同存储器位置。例如,攻击者可将在地址a的第X页的内容复制到在地址b的第y页上。
[0023]在另一攻击中,对加密的存储器区域具有读/写访问能力的敌手能够通过观察和记录加密的存储器区域位置(例如,在时间2 (t2))并且通过复制在时间I (tl)写入的加密区域的内容来重置存储器区域,执行重放攻击。在仍有的另一类型的重放攻击中,执行重放攻击的攻击者可具有可在不同时间驻留在相同存储器区域的两个不同应用(上下文)之一的控制。例如,攻击者可在使用应用之一攻击另一应用。
[0024]本发明的一实施例通过将此类攻击的效应降低到不超过诱发存储器映像的随机(不可预测且不可控制)更改的能力,减轻了重放攻击。[0025]图2是根据本发明的原理,示出处理器101中N个计数器150的框图,计数器由存储器加密控制器用于执行基于树的重放保护以保护存储器105中的地址范围和存储器中105存储的消息验证码(MAC),提供加密完整性检查;
要保护202的存储器的区域(地址范围)由多个数据高速缓存行208和由MAC行206中存储的多个消息验证码(MAC) 204表示。在图2所示实施例中,要保护202的存储器的区域(“窃取的存储器区块”)包括M个数据高速缓存行208。M个数据高速缓存行208的每行与一个MAC 204相关联。MAC是在消息和秘密密钥上计算的单向哈希函数的结果。在所示实施例中,MAC是在数据高速缓存行208的内容和在处理器重置期间由处理器中随机号生成器生成的密钥上执行的单向哈希的结果。在一实施例中,相同密钥用于为M个数据高速缓存行的每个执行单向哈希。MAC 204被应用到高速缓存行,并且与在读取和解密高速缓存行208的内容时使用的重新计算的MAC进行比较,以检测在高速缓存行208中存储的数据的加密分块在高速缓存行208中存储时是否已改变。
[0026]基于树的重放保护方案能够由包括树根、MAC高速缓存行206和数据高速缓存行208的树结构提供。处理器101中有N个计数器150,存储器105中每MAC高速缓存行206一个计数器。树根是用于保护MAC高速缓存行206的内容的处理器101中N个计数器150中的计数器201之一。在一实施例中,高速缓存行的数量(M)为16,每个MAC高速缓存行206具有512比特以存储16个32比特MAC 204,并且每个数据高速缓存行208具有512比特(64字节)。
[0027]在一实施例中,使用带有调整和密文窃取(XTS)的XEX加密模式,为存储器105中需要保护的每个高速缓存行(CL) 208的内容加密。带有调整和密文窃取(XTS)-高级加密标准(AES)可调整分块密码(IEEE标准1619-2007)的XEX加密模式是根据国家标准和技术研究院(National Institute of Standards and Technology, NIST)联邦信息处理标准(FIPS) 140-2的操作模式,它定义用于加密保护以恒定长度分块存储的数据的体系结构的元素。在其它实施例中,每个高速缓存行(CL)的内容是明文(未加密)。
[0028]XTS-AES操作模式应用于除数据流的最后数据单元可小于其它单元外分成连续的相等大小数据单元的数据流的加密。每个数据单元具有在密钥范围内128或更多数据比特。密钥范围是分成相等大小的数据单元的、通过特定密钥加密的数据。密钥范围由三个非负整数识别:对应于第一数据单元的调整值、数据单元大小和数据的长度。调整值是用于表示在使用XTS-AES加密或解密的数据流中数据的逻辑位置的128比特值。每个数据单元指派有为非负整数的调整值。从任意非负整数开始,连续指派调整值。
[0029]XTS-AES操作模式是“可调整窄分块加密”,并且是用于磁盘加密的标准模式(静态数据(data-at-rest)加密)。它能够被视为在电子码书(ECB)模式中的加密,其中,加密使用根据其“索引”位置修改数据分块的加密的调整值(调整)。在ECB模式中,通过分块密码独立加密每个明文分块。对于磁盘加密,在XTS-AES操作模式中,调整用于将加密绑定到被加密的磁盘驱动器(存储媒体)上的扇区。
[0030]在一实施例中,存储器加密单元(控制器)使用XTS-AES操作模式将加密绑定到已处理数据分块的(物理)存储器地址。使用AES-XTS在很大程度上有助于防止能够物理操纵加密的存储器映像并且通过交换加密分块的位置或者通过将加密的分块重写为其它加密的分块而进行攻击的攻击者。由于AES-XTS调整随物理存储器地址而变化,因此,此类攻击变得相当于由攻击者诱发不可预测和不可控制的随机更改的更弱得多的攻击。换而言之,攻击者从交换/重写所获不会多于攻击者从“盲目”更改存储器能够得到的收获。
[0031]在用于磁盘加密的标准XTS模式中,通过先生成调整值,然后使用调整值从明文生成密文,执行其索引在单元(U)中为(j)的数据分块P的AES-XTS。
[0032]例如,使用在分块标识符(单元(U)上的16字节密钥值(Kl),在该单元(U)中单元的位置(j))和如下所示多项式(Poly) x128+x7+x2+x+l,生成的调整值(X):
【权利要求】
1.一种方法,包括: 由处理器生成用于与应用相关联的数据分块的消息验证码(MAC); 在处理器中提供多个计数器,每个计数器与存储器中多个MAC高速缓存行之一相关联; 由所述处理器将所述MAC加密,所述MAC使用调整来加密,所述调整包括用于所述MAC高速缓存行的高速缓存行标识符以存储所述MAC和从与所述MAC高速缓存行相关联的计数器读取的时间戳值; 由所述处理器在所述存储器的高速缓存行中存储所述数据分块;以及由所述处理器在所述存储器中MAC高速缓存行中存储所述MAC,所述存储器与所述处理器分开。
2.如权利要求1所述的方法,其中所述应用是安全应用,所述数据分块由所述处理器加密,并且所加密的数据分块由所述处理器在存储器的所述高速缓存行中存储。
3.如权利要求1所述的方法,其中所述调整是带有调整和密文窃取(XTS)-高级加密标准(AES)调整的XEX加密模式。
4.如权利要求1所述的方法,其中所述调整是LRW调整。
5.如权利要求1所述的方法,其中所述MAC高速缓存行是在所述存储器的受保护区域中。
6.如权利要求1所述的方法,其中所述高速缓存行是在所述存储器的重放受保护区域中。
7.如权利要求1所述的方法,其中所述MAC具有32比特,所述MAC高速缓存行具有512比特,以及所述高速缓存行具有512比特。
8.—种设备,包括: 多个计数器,每个计数器与外部存储器中多个MAC高速缓存行之一相关联;以及逻辑,所述逻辑生成用于与所述外部存储器中存储的应用相关联的数据分块的消息验证码(MAC),所述逻辑将所述MAC加密,所述MAC使用调整来加密,所述调整包括用于所述MAC高速缓存行的高速缓存行标识符以存储所述MAC和从与所述MAC高速缓存行相关联的所述计数器读取的时间戳值,所述逻辑在所述外部存储器的高速缓存行中存储所述数据分块以及在所述外部存储器中的MAC高速缓存行中存储所述MAC。
9.如权利要求8所述的设备,其中所述应用是安全应用,所述数据分块由所述处理器加密,并且所加密的数据分块由所述处理器在存储器的高速缓存行中存储。
10.如权利要求8所述的设备,其中所述调整是带有调整和密文窃取(XTS)-高级加密标准(AES)调整的XEX加密模式。
11.如权利要求8所述的设备,其中所述调整是LRW调整。
12.如权利要求8所述的设备,其中所述MAC高速缓存行是在所述外部存储器的受保护区域中。
13.如权利要求8所述的设备,其中所述高速缓存行是在所述外部存储器的重放受保护区域中。
14.如权利要求8所述的设备 ,其中所述MAC具有32比特,所述MAC高速缓存行具有512比特,以及所述高速缓存行具有512比特。
15.一种包括具有相关联信息的机器可存取媒体的制品,其中所述信息在被存取时促使机器执行以下操作:
由处理器生成用于与应用相关联的数据分块的消息验证码(MAC); 在处理器中提供多个计数器,每个计数器与存储器中多个MAC高速缓存行之一相关联; 由所述处理器将所述MAC加密,所述MAC使用调整来加密,所述调整包括用于所述MAC高速缓存行的高速缓存行标识符以存储所述MAC和从与所述MAC高速缓存行相关联的计数器读取的时间戳值; 由所述处理器在所述存储器的高速缓存行中存储所述数据分块;以及由所述处理器在所述存储器中的MAC高速缓存行中存储所述MAC,所述存储器与所述处理器分开,所述数据分块由所述处理器加密,并且所加密的数据分块由所述处理器在存储器的高速缓存行中存储。
16.如权利要求15所述的制品,其中所述应用是安全应用。
17.如权利要求15所述的制品,其中所述调整是带有调整和密文窃取(XTS)-高级加密标准(AES)调整的XEX加密模式。
18.如权利要求15所述的制品,其中所述调整是LRW调整。
19.一种系统,包括: 存储应用的海量存储装置;以及 处理器,包括: 多个计数器,每个计数器与外部存储器中多个MAC高速缓存行之一相关联;以及逻辑,所述逻辑生成用于与所述外部存储器中存储的应用相关联的数据分块的消息验证码(MAC),所述逻辑将所述MAC加密,所述MAC使用调整来加密,所述调整包括用于所述MAC高速缓存行的高速缓存行标识符以存储所述MAC和从与所述MAC高速缓存行相关联的计数器读取的时间戳值,所述逻辑在所述外部存储器的高速缓存行中存储所述数据分块以及在所述外部存储器中的MAC高速缓存行中存储所述MAC。
20.如权利要求19所述的系统,其中所述调整是带有调整和密文窃取(XTS)-高级加密标准(AES)调整的XEX加密模式。
【文档编号】G06F21/78GK103620617SQ201180071957
【公开日】2014年3月5日 申请日期:2011年6月29日 优先权日:2011年6月29日
【发明者】S.盖伦, U.萨瓦高恩卡, F.X.麦基恩, C.V.罗扎斯, D.M.杜尔罕, J.多克, O.穆拉, I.安娜蒂, Z.格林菲尔德, M.毛尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1