CN103109296A - 具有对抗重放攻击的保护的用于存储器加密的可调加密模式 - Google Patents
具有对抗重放攻击的保护的用于存储器加密的可调加密模式 Download PDFInfo
- Publication number
- CN103109296A CN103109296A CN2011800458315A CN201180045831A CN103109296A CN 103109296 A CN103109296 A CN 103109296A CN 2011800458315 A CN2011800458315 A CN 2011800458315A CN 201180045831 A CN201180045831 A CN 201180045831A CN 103109296 A CN103109296 A CN 103109296A
- Authority
- CN
- China
- Prior art keywords
- logical partition
- handle
- processor
- distributes
- data block
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000005192 partition Methods 0.000 claims description 46
- 238000012546 transfer Methods 0.000 claims description 24
- 230000007246 mechanism Effects 0.000 abstract description 2
- 230000005055 memory storage Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000008485 antagonism Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000005728 strengthening Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
提供用于进行保护以对抗系统存储器上的硬件攻击的方法和设备。用于块密码的操作模式通过扩展调柄以包括“时间戳”指示符来增强执行存储器加密的标准XTS-AES操作模式。使用“时间戳”指示符的递增机制生成分离在不同时间上的不同上下文的调柄,从而减轻“类型2重放攻击”的影响。
Description
技术领域
本公开涉及对数据的密码保护,并且特别涉及对存储器中的存储区中存储的软件应用的加密。
背景技术
需要保护由安全软件应用所使用的系统中的易失性存储器的区免受未授权的实体的恶意修改。这些恶意修改(也称作“攻击”)可以是软件攻击或硬件攻击。针对安全软件应用提供机密性和完整性保护的一种方法是,将大的易失性存储器集成在中央处理单元(CPU)封装中以被安全软件应用用作“专用存储器”。然而,将大的易失性存储器集成在CPU封装中是昂贵的。
因此,安全软件应用典型地被存储在外部(也就是在CPU外部)存储器中。存储安全软件应用的外部存储器中的存储区(区域)可以对系统中的操作系统(OS)来说可见或不可见。如果这些存储区对OS来说可见,则需要保护这些存储区免受软件攻击。如果这些存储区对OS来说不可见(称为“被窃存储区域”)并且存在某种访问控制机制,则需要保护这些存储区免受硬件攻击,也就是来自对外部存储器具有物理访问的攻击者。
附图说明
随着下列详细描述的进行以及在参照附图时,要求保护的主题的实施例的特征将变得显而易见,在附图中相似的附图标记描绘相似的部分,以及在附图中:
图1示出包括被窃存储区的系统存储器;
图2A示出扩展调柄(tweak)的一个实施例;
图2B示出扩展调柄的另一实施例;
图3是包括用于执行存储器加密的存储器加密引擎的系统的框图;
图4是存储要加密的数据的图3中所示的外部存储器中的存储区的一部分的框图;
图5示出供应用使用图4中所示的外部存储器中的存储区的部分中的分区的方法;
图6示出将可信应用存储在存储器中的方法的一个实施例;以及
图7示出将存储器的附加分配添加至可信应用的方法的一个实施例。
尽管下列详细描述将在参照要求保护的主题的说明性实施例的情况下进行,但是其许多替换、修改和变型将对本领域技术人员来说显而易见。因此,意图是要求保护的主题应当被宽泛地考虑,并且仅如所附权利要求中阐述的那样来限定。
具体实施方式
图1示出包括被窃存储区域102的系统存储器100的一个实施例。被窃存储区域102是对操作系统(OS)来说不可见的存储区(存储部分)。系统存储器100是“外部”存储器,也就是与系统中的中央处理单元(CPU)分离。被窃存储区域102包括多个物理页106。三个软件应用104-1, 104-2, 104-3驻留在跨越被窃存储区域102中的一个或多个物理页106的存储区内部。每个软件应用104-1, 104-2, 104-3跨越在系统(外部)存储器100中的被窃存储区域102的多个物理页106上。
保护由安全软件应用所使用的存储区的一种方法是,对系统存储器100中的存储区中存储的数据进行加密。使用在CPU内部生成和存储的密钥,在CPU中执行对存储区中存储的数据的加密和解密。然而,数据本身的加密被设计成仅提供数据的机密性。对存储区中存储的数据的加密有助于保护数据的机密性免受可以被动地读取外部存储器或者可以在数据在CPU与系统存储器100之间传送时窥探该数据的攻击者。
然而,对外部存储器100中的存储区中存储的数据的加密未提供完整性检验。将数据的加密形式存储在外部存储器100中的被窃存储区域102中的存储区中并未进行保护以对抗可以主动地修改或重放外部存储器100中的被窃存储区域102中存储的存储图像的部分的攻击者。
恶意攻击者(敌方)可以从外部存储器100中的一个存储位置进行拷贝,并写入到外部存储器中的不同存储位置。例如,攻击者可以将在地址a处的页x的内容拷贝到在地址b处的页y上。对加密存储区具有读/写访问的敌方可以通过下述操作来执行重放攻击:观察加密存储区何时被修改(例如在时间2(t2)处);以及通过拷贝在时间1(t1)处写入的加密区的内容来重置存储区。执行重放攻击的攻击者可以具有对可以在不同时间驻留在相同存储区域处的两个不同应用(上下文)之一的控制。例如,攻击者可以使用应用中的一个来攻击另一应用。
减轻重放攻击的一种方法是,将具有加密数据的认证标签安全地存储在外部存储器100中。然而,这需要昂贵的附加存储器。
本发明的一个实施例通过将这种攻击的影响减小至仅仅是能够引起对存储图像的随机(不可预测且不可控制的)改变来减轻重放攻击。
具有调柄和密文窃取的XEX加密模式(XTS)-高级加密标准(AES)可调块密码(IEEE标准1619-2007)是在国家标准与技术研究院(NIST)联邦信息处理标准(FIPS)140-2下的操作模式,所述FIPS 140-2定义用于对恒定长度块中存储的数据进行密码保护的架构的元件。在一个实施例中,提供了增强标准XTS-AES操作模式以及用于在将XTS-AES操作模式用于块密码时实施存储器加密的方法和设备的针对块密码的新操作模式。
XTS-AES操作模式适用于对被划分成连续相等大小的数据单元的数据流的加密,除了该数据流的最后数据单元可以小于其他数据单元之外。每个数据单元在密钥范围内具有128个或更多个数据位。密钥范围是由特定密钥加密的、被划分成相等大小的数据单元的数据。密钥范围由下述三个非负整数来标识:对应于第一数据单元的调柄值、数据单元大小、以及数据的长度。调柄值是用来表示利用XTS-AES加密或解密的数据流中的数据的逻辑位置的128位值。每个数据单元被指派作为非负整数的调柄值。以任意非负整数开始连续地指派调柄值。
XTS-AES操作模式是“可调窄块加密”,并且是用于盘加密(静态数据加密)的标准模式。它可以被视为电子码本(ECB)模式中的加密,其中该加密使用作为其“索引”位置的函数对数据块的加密进行修改的调柄值(调柄)。在ECB模式中,每个明文块利用块密码被独立地加密。对于盘加密,在XTS-AES操作模式中,该调柄被用于将加密绑定至所加密的盘驱动器(存储介质)上的扇区。
在一个实施例中,存储器加密单元使用XTS-AES操作模式以用于将加密绑定至经处理的数据块的(物理)存储地址。使用AES-XTS在很大程度上帮助对抗下述攻击者:所述攻击者可以物理地操控经加密的存储图像,并且通过交换加密块的位置或者通过利用其他加密块盖写加密块来进行攻击。由于AES-XTS调柄是物理存储地址的函数,因此这种攻击变为等效于引起攻击者不可预测且不可控制的随机改变的弱得多的攻击。换言之,攻击者从交换/盖写中获得不多于攻击者可以从“盲目地”改变存储器中所获得的东西。
然而,由于XTS-AES调柄是物理地址的函数,因此它不进行保护以对抗重放攻击,在重放攻击中攻击者利用先前写入到相同地址的加密块来盖写块。为了说明这种攻击的潜在严重性,考虑在时间1(t1)处将经加密的图像写入到存储器中的页x的软件应用。攻击者使用对存储器的硬件访问来保存该经加密的图像。然后,攻击者经由软件方法来驱逐该软件应用,并加载恶意软件应用以占据相同存储区。攻击者然后物理地重放经加密的图像的拷贝至页x,并且此时,恶意软件应用获得图像的全部所有权。例如,恶意软件应用可以将秘密解密为明文并将其转储至该恶意软件应用所选择的任何存储位置。即使CPU针对存储加密单元使用有限数目的密钥,也可以发动该攻击,这是因为其仅需要重复攻击过程足够的次数以耗尽密钥可能性。这种攻击可以被用来从CPU获得任何秘密(例如增强隐私标识符(EPID))或者从敏感代码获得任何秘密。
在用于盘加密的标准XTS模式中,通过首先生成调柄值并且然后使用该调柄值从明文生成密文来执行其在单元(u)中的索引为(j)的数据块P的AES-XTS。
例如,使用块标识符(单元(u),该单元(u)中单元的位置(j))上的16字节密钥值(K1)以及多项式(Poly)x128+x7+x2+x+1来生成调柄值(X),如下所示:
X = AES (K1, u) * 2j mod Poly 等式1
其中:“*”表示无进位乘法。
已生成调柄值(X),则使用该调柄值(X)和另一16字节密钥值(K2)从明文(P)生成密文(C),如下所示:
C = AES (K2, P+X)+X 等式2
AES-XTS针对单元(u)的值预留64位(8个字节)。由于AES加密在16字节块上操作,因此将块(16个字节)(=“u”)的如等式1所示加密的64个剩余位(8个字节)定义为0。
可以通过将“单元”定义为64字节高速缓存线并定义索引j=0, 1, 2, 3以指示该高速缓存线中的16字节数据块的位置,来将AES-XTS应用于存储器加密。在这种情况下,“u”的值是高速缓存线的(物理)地址。典型地使用48位来对物理地址进行编码。
在本发明的一个实施例中,提供了基于扩展标准AES-XTS模式以使用调柄中的更多信息(扩展调柄)的新操作模式。扩展调柄除包括标准信息(例如高速缓存线地址和块位置)外,还包括时间戳值。在另一实施例中,扩展调柄包括例如至少一个附加标签。在一个实施例中,附加标签是在系统中正在运行的软件应用的版本号。将版本号添加至该调柄防止了从软件应用的旧版本拷贝高速缓存线并在软件应用的较新版本上的相同地址处重放该高速缓存线以在运行旧版本的同时获得较新版本的特权。
在一个实施例中,扩展调柄中的存储附加信息的位驻留在扩展调柄的头(最高有效)64位中。如较早所讨论的,在标准AES-XTS模式中将最高有效位设置为0。在另一实施例中,附加信息驻留在被保证为0的其他位中。因此,扩展AES-XTS是标准AES-XTS的推广,这是因为如果所有附加信息位退化至0,则加密是标准XTS模式。
在一个实施例中,如下所示在等式3中生成扩展调柄:
X = AES (K1, L | T | u) * 2j mod Poly 等式3
其中,P是在由T指示的时间处加密并且具有标签L的单元u中的索引为j的数据块,并且符号“|”表示级联。
在另一实施例中,不使用标签,以及使用高速缓存线地址和时间来生成扩展调柄。生成扩展调柄,使得该调柄描述在时间0, 1, …, 2^(32)-1处对区的地址进行计数的连续整数。针对CL [j](在时间TIME处)(其中,j =0, 1, 2, …, m-1,以及TIME=0, 1, 2, …, 2^(32)-1)的调柄是:
TWEAK = 00…0 [127 : 55] | (ACL [j] >>6) [33 : n+14] | TIME [31:0] | (ACL [j] >>6) [n+13 : 0]
其中:单元 = 高速缓存线(CL);
每个CL是作为(4 x 128位(2^(20))个块)的64个字节;
每个CL具有40位基地址ACL [39 : 0],其中ACL [5 : 0] = [000000];分区具有2^n个MB;
m(分区中CL的数目)= 2^(n+14);
j是数据流中的m个CL之一;
在不同时间处,该数据流是m个CL,即CL [j](在时间t处),如下:
CL[0], CL[1], …, CL [m-1] 在时间t=0处
CL[0], CL[1], …, CL [m-1] 在时间t=1处
…
CL[0], CL[1], …, CL [m-1] 在时间t=2^(32)-1处
以及,针对CL [j]的基地址由ACL [j]表示(其中j = 0, 1, 2, …, m-1)。
当仔细检查数据流的CL(单元)(按照上面指定的顺序)时,TWEAK在下述所有正整数上连续运行:
开始于正整数00…0 [127 : 55] | (ACL[0] >>6)[33 : n+14] | 00…0 [31:0] | (ACL[0] >>6) [n+13 : 0]
并且结束于00…0 [127 : 55] | (ACL[m-1] >>6)[33 : n+14] | 11…1 [31:0] | (ACL[m-1] >>6) [n+13 : 0]
例如:
考虑2 MB分区,其中n=1和m=15。
针对CL [j]的、在时间TIME(32位)处的调柄被定义如下:
00…0 [127 : 55] | (ACL[j] >>6)[33 : 15] | TIME [31:0] | (ACL[j] >>6) [14 : 0]。
图2A示出扩展调柄200的一个实施例。图2A中所示的扩展调柄200是128位值。针对地址(u)预留扩展调柄200的最低有效48位(位47:0)206,并针对时间戳(T)预留剩余80个最高有效位(位127:48)204。
图2B示出扩展调柄202的另一实施例。在图2B中所示的扩展调柄202的实施例中,针对地址(u)212预留扩展调柄202的最低有效64位[位63:0],针对时间戳(T)214预留接下来32位[位95:64],并针对标签(L)208预留最高有效32位[位127:96]。
对利用图2B中所示的扩展AES-XTS的实施例加密的块进行解密需要密文C、地址u、索引j、以及还有时间戳T和标签L。在一个实施例中,时间戳(T)和标签(L)的值不是秘密的,但是该值是以可信方式存储的。
扩展AES-XTS调柄的优点是下列“时间隔离”特性:如果在地址A1上重放在时间t1处向地址A1加密的密文C,但是在时间t2处对密文C进行解密,则将其解密成不可预测的串,这是因为调柄值由于不同时间戳值而不同。
该“时间隔离”特性进行保护以对抗类型2重放攻击,这是因为攻击者从“重放至相同地址”中得到不多于攻击者可以从对存储图像的随机(不可预测且不可控制)改变中所得到的任何东西。类似地,扩展AES-XTX调柄模式还实现了由其标签(L)区分的上下文之间的隔离。
已经针对XTS-AES描述了一个实施例,然而,扩展调柄模式不限于XTS-AES,并且可以在其他实施例中被应用于其他可调加密方案。例如,在LRW(M. Liskov、R. Rivest和D. Wagner)可调块密码的一个实施例中,可以以类似的方式将LRW增强至增强的LRW模式。
图3是包括用于执行存储器加密的存储器加密引擎303的系统300的框图。系统300包括处理器301、存储控制器集线器(MCH)302和输入/输出(I/O)控制器集线器(ICH)304。MCH 302包括控制在处理器301与外部存储器100之间的通信的存储控制器306。处理器301和MCH 302通过系统总线316进行通信。
处理器301可以是多个处理器中的任一个:例如单核Intel? Pentium IV ?处理器、单核Intel Celeron处理器、Intel? XScale处理器,或者多核处理器,例如Intel? Pentium D、Intel? Xeon?处理器或Intel? Core? Duo处理器,或者任何其他类型的处理器。
处理器301中的存储器加密引擎303可以对可以被存储在存储器100中和/或被存储在存储设备312中的数据执行加密和解密。存储器加密引擎303提供了机密性以对抗可以读取存储器308的内容的被动攻击者。存储器加密引擎303还提供了保护以对抗主动攻击者,该主动攻击者可以利用在16个字节上操作的密码、以16个字节的粒度读取和写入存储器中的存储区,并且存储器308中的高速缓存线具有64个字节。例如,如果64字节高速缓存线中的16字节段中的一位被修改,则该16字节段对攻击者来说“随机”且不可预测。
存储器100可以是动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、双数据速率2(DDR2)RAM或Rambus动态随机存取存储器(RDRAM)或者任何其他类型的存储器。
可以使用高速芯片到芯片互连314(例如直接媒体接口(DMI))将ICH 304耦合至MCH 302。DMI经由两个单向通道来支持2千兆比特/秒同时传送速率。
ICH 304可以包括用于控制与耦合至ICH 304的至少一个存储设备312的通信的存储I/O控制器310。存储设备可以是例如盘驱动器、数字视频盘(DVD)驱动器、光盘(CD)驱动器、独立盘冗余阵列(RAID)、磁带驱动器或其他存储设备。ICH 304可以使用串行存储协议(例如串行附着小型计算机系统接口(SAS)或串行高级技术附着(SATA))、通过存储协议互连318来与存储设备312进行通信。
将针对存储器100中的地址范围的保护来描述一个实施例。
图4是存储加密数据的图3中所示的外部存储器100中的存储区402的一部分的框图。存储区402在逻辑上被划分成N个“分区”。返回至图3,在处理器301中存在N个计数器350,在图4中所示的存储区402的部分中每逻辑分区一个计数器。
图5示出供应用使用图4中所示的外部存储器100中的存储区402的部分中的分区的方法。结合图4来描述图5。
在框500处,将存储区402的部分划分成N个分区404-1, …, 404-N。将计数器406-1, …, 406-N指派给每个分区404-1, …, 404-N。将所有计数器406-1, …, 406-N初始重置为0。处理继续至框502。
在框502处,当将软件应用存储在(写入到)存储器100中时,软件应用410, 412, 414填充一个或多个逻辑分区404-1, …, 404-N中的一个或多个高速缓存线。在一个实施例中,每个高速缓存线具有64个字节,并且操作系统以存储页的粒度进行操作,该粒度可以是4096个字节。如果应用被加载至存储器100中,则处理继续至框504。如果已被加载至存储器100的应用被驱逐,并且另一应用(可能是恶意的)被加载至相同地址空间中,则处理继续至框504。如果否的话,则处理继续至框502。
在框504处,每当(由某个高速缓存线)第一次填充分区404-1, …, 404-N时,处理器都递增该分区的对应计数器406-1, …, 406-N。另外,作为驱逐和/或加载过程的一部分,处理器自动地递增对应分区404-1, …, 404-N的计数器值。处理继续至框502。
返回至图4,在不同时间上,将每个应用410, 412, 414置于具有可以在由该应用填充的逻辑分区上不同的不同计数器值的逻辑分区404-1, …, 404-N中。处理器301中的存储器加密引擎303实施XTS-AES增强调柄操作模式,其中,T是计数器值,u是物理地址,以及j是块的索引。这样,调柄值(X)不仅受存储器中的逻辑分区的地址约束,而且受在应用410, 412, 414被加载至存储器100中时CPU所存储的计数器值约束。
“计数器”以及对该“计数器”进行初始化和递增的方法可以变化。在一个实施例中,计数器可以是线性反馈移位寄存器(LFSR),其被初始化为固定或随机化的且使用时钟输入而递增的非零值。在另一实施例中,计数器可以是包括随机地或确定性地初始化的递增逻辑的寄存器。在又一实施例中,计数器可以是从随机位发生器中采样的值。可以以下述方式确定计数器的长度(输出位的数目):使得尝试在相同计数器值处重放拷贝的图像是不切实际的。
在图4中所示的实例中,存在三个应用410, 412, 414,它们被存储在存储器100的不同分区404-1, …, 404-N中,使得没有两个应用410, 412, 414被存储在相同分区404-1, …, 404-N中。向每个逻辑分区404-1, …, 404-N指派不同计数器。应用412使用两个分区404-2, 404-3中的页,这些分区中的每一个具有相应计数器406-2, 406-3。如果向该应用指派的处理器内部的计数器不递增,则对逻辑分区中存储的应用的解密正确地工作。计数器值不递增,除非首先从相应分区中驱逐该应用。
当一个应用被驱逐并且另一应用(可能是恶意的)被加载至相同地址空间中时,作为驱逐和/或加载过程的一部分,CPU自动地递增(一个或多个)对应分区的计数器值。在类型2攻击中,攻击者拷贝属于前一应用的存储图像,并在攻击代码正在填充相关存储区域时将其重放至相同地址。如果利用标准XTS-AES加密来对存储器进行加密,则该攻击成功,并且攻击者可以读取在存储图像中存储的秘密。然而,对于XTS-AES增强调柄模式,攻击者没有得到结果,这是因为计数器值不匹配。使用计数器值好于随机修改,这是因为XTS-AES增强调柄在解密中使用不同计数器值。
优点在于:该方法仅使用具有调柄的加密,并且存储器读和写转换为单个存储器访问。此外,分区的数目可以由实施来确定,以作为计数器的附加硬件成本与存储器利用效率之间的折衷,即更多的分区提供更好的粒度。
图6示出将可信应用存储在存储器中的方法的一个实施例。首先初始化可信应用,并且然后,可信应用以要求附加物理页的形式请求针对其自身的存储器分配。
在框600处,接收要被存储在存储器中的应用。接收到的应用与应用标识符相关联,并且包括应用的第一页。针对该应用分配逻辑分区。处理继续至框602。
在框602处,将应用的标识符存储在逻辑分区中,将与所分配的逻辑分区相关联的标识符设置为应用的标识符。将与所分配的逻辑分区相关联的页号存储在与所分配的逻辑分区相关联的页号中。递增与所分配的逻辑分区相关联的分区计数器。处理继续至框604。
在框604处,将应用的第一页中的数据存储在所分配的逻辑分区的第一页中。
图7示出将存储器的(一个或多个)页的附加分配添加至可信应用的方法的一个实施例。
在框700处,在接收到将数据存储在针对应用的存储器中的请求时,确定最后逻辑分区从该最后逻辑分区中针对该应用分配了页。处理继续至框702。
在框702处,如果当前页号是所分配的逻辑分区中的最后页,则处理继续至框704。如果否的话,则处理继续至框706。
在框704处,在当前页是该应用的当前分配的逻辑分区的最后页时,针对该应用分配另一逻辑分区,并将该应用的页拷贝至新分配的逻辑分区的第一页中。
在框706处,在当前页不是该应用的当前分配的逻辑分区的最后页时,将在当前逻辑分区中分配给该应用的页的号码递增至下一页,并将该应用的页拷贝至当前分配的逻辑分区的下一页中。
对本领域普通技术人员来说将显而易见的是,在本发明的实施例中所涉及的方法可以体现在包括计算机可用介质的计算机程序产品中。例如,这种计算机可用介质可以由只读存储设备(例如光盘只读存储器(CD ROM)盘或常规ROM设备)或者其上存储有计算机可读程序代码的计算机磁盘构成。
尽管已经参照本发明的实施例特别地示出和描述了本发明的实施例,但是本领域技术人员将理解,在不脱离由所附权利要求包含的本发明的实施例的范围的情况下,可以在本发明的实施例中进行形式和细节上的各种改变。
Claims (22)
1.一种方法,包括:
由处理器对与应用相关联的数据块进行加密,所述数据块是使用调柄来加密的,所述调柄包括与所述处理器分离的存储器的高速缓存线标识符和要加密的数据块在所标识的高速缓存线中的位置;以及
分配所述存储器中的逻辑分区以存储经加密的数据块。
2.根据权利要求1所述的方法,还包括:
当经加密的数据被加载至所分配的逻辑分区时以及当从所分配的逻辑分区中驱逐经加密的数据时,由所述处理器将与所分配的逻辑分区相关联的时间戳值存储在所述调柄中,所述时间戳值将被递增。
3.根据权利要求2所述的方法,其中,所述时间戳值被存储在所述处理器中的计数器中,并且所述计数器被分配给所述逻辑分区。
4.根据权利要求3所述的方法,其中,所述计数器在所述处理器中自主地递增。
5.根据权利要求2所述的方法,还包括:
将与所分配的逻辑分区相关联的标签存储在所述调柄中。
6.根据权利要求1所述的方法,其中,所述应用是安全应用。
7.根据权利要求1所述的方法,其中,所述调柄是XTS-AES调柄。
8.根据权利要求1所述的方法,其中,所述调柄是LRW调柄。
9.一种设备,包括:
处理器中的逻辑,所述逻辑对与应用相关联的数据块进行加密,所述数据块是使用调柄来加密的,所述调柄包括与所述处理器分离的存储器的高速缓存线标识符和要加密的数据块在所标识的高速缓存线中的位置,所述逻辑分配所述存储器中的逻辑分区以存储经加密的数据块。
10.根据权利要求9所述的设备,其中,所述逻辑用于:当经加密的数据被加载至所分配的逻辑分区时以及当从所分配的逻辑分区中驱逐经加密的数据时,由所述处理器将与所分配的逻辑分区相关联的时间戳值存储在所述调柄中,所述时间戳值将被递增。
11.根据权利要求10所述的设备,其中,所述时间戳值被存储在所述处理器中的计数器中,并且所述计数器被分配给所述逻辑分区。
12.根据权利要求11所述的设备,其中,所述计数器在所述处理器中自主地递增。
13.根据权利要求10所述的设备,其中,所述逻辑将与所分配的逻辑分区相关联的标签存储在所述调柄中。
14.根据权利要求9所述的设备,其中,所述应用是安全应用。
15.根据权利要求9所述的设备,其中,所述调柄是XTS-AES调柄。
16.根据权利要求9所述的设备,其中,所述调柄是LRW调柄。
17.一种包括具有关联信息的机器可访问介质的物品,其中所述信息在被访问时导致机器执行下述操作:
由处理器对与应用相关联的数据块进行加密,所述数据块是使用调柄来加密的,所述调柄包括与所述处理器分离的存储器的高速缓存线标识符和要加密的数据块在所标识的高速缓存线中的位置;以及
分配所述存储器中的逻辑分区以存储经加密的数据块。
18.根据权利要求17所述的物品,还包括:
当经加密的数据被加载至所分配的逻辑分区时以及当从所分配的逻辑分区中驱逐经加密的数据时,由所述处理器将与所分配的逻辑分区相关联的时间戳值存储在所述调柄中,所述时间戳值将被递增。
19.根据权利要求17所述的物品,其中,所述时间戳值被存储在所述处理器中的计数器中,并且所述计数器被分配给所述逻辑分区。
20.一种系统,包括:
存储应用的大容量存储设备;以及
处理器,包括:
对与所述应用相关联的数据块进行加密的逻辑,所述数据块是使用调柄来加密的,所述调柄包括与所述处理器分离的存储器的高速缓存线标识符和要加密的数据块在所标识的高速缓存线中的位置,所述逻辑分配所述存储器中的逻辑分区以存储经加密的数据块。
21.根据权利要求20所述的系统,其中,所述逻辑用于:当经加密的数据被加载至所分配的逻辑分区时以及当从所分配的逻辑分区中驱逐经加密的数据时,由所述处理器将与所分配的逻辑分区相关联的时间戳值存储在所述调柄中,所述时间戳值将被递增。
22.根据权利要求21所述的系统,其中,所述时间戳值被存储在所述处理器中的计数器中,并且所述计数器被分配给所述逻辑分区。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/890,365 | 2010-09-24 | ||
US12/890365 | 2010-09-24 | ||
US12/890,365 US8468365B2 (en) | 2010-09-24 | 2010-09-24 | Tweakable encryption mode for memory encryption with protection against replay attacks |
PCT/US2011/053170 WO2012040679A2 (en) | 2010-09-24 | 2011-09-24 | A tweakable encrypion mode for memory encryption with protection against replay attacks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103109296A true CN103109296A (zh) | 2013-05-15 |
CN103109296B CN103109296B (zh) | 2016-01-20 |
Family
ID=45871895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180045831.5A Expired - Fee Related CN103109296B (zh) | 2010-09-24 | 2011-09-24 | 具有对抗重放攻击的保护的用于存储器加密的可调加密模式 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8468365B2 (zh) |
EP (1) | EP2619705B1 (zh) |
JP (1) | JP5632086B2 (zh) |
KR (1) | KR101479957B1 (zh) |
CN (1) | CN103109296B (zh) |
AU (1) | AU2011305189C1 (zh) |
TW (1) | TWI567557B (zh) |
WO (1) | WO2012040679A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104852798A (zh) * | 2015-05-11 | 2015-08-19 | 清华大学深圳研究生院 | 一种数据加解密系统及方法 |
CN107408081A (zh) * | 2015-03-26 | 2017-11-28 | 英特尔公司 | 提供对存储器的加强重放保护 |
CN109074446A (zh) * | 2016-05-10 | 2018-12-21 | 高通股份有限公司 | 熔丝防重放机制 |
CN111801659A (zh) * | 2018-02-12 | 2020-10-20 | 美光科技公司 | 存储器系统中的数据存取及通信的优化 |
US11552801B2 (en) * | 2019-05-10 | 2023-01-10 | Samsung Electronics Co., Ltd. | Method of operating memory system with replay attack countermeasure and memory system performing the same |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8468365B2 (en) | 2010-09-24 | 2013-06-18 | Intel Corporation | Tweakable encryption mode for memory encryption with protection against replay attacks |
JP5700481B2 (ja) * | 2011-06-29 | 2015-04-15 | インテル・コーポレーション | 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置 |
US9116991B2 (en) * | 2011-08-16 | 2015-08-25 | Google Inc. | Searching encrypted electronic books |
TW201423469A (zh) * | 2012-12-03 | 2014-06-16 | Inst Information Industry | 電子數位資料匿篩裝置、方法及其電腦可讀取紀錄媒體 |
US9910790B2 (en) * | 2013-12-12 | 2018-03-06 | Intel Corporation | Using a memory address to form a tweak key to use to encrypt and decrypt data |
US9614666B2 (en) | 2014-12-23 | 2017-04-04 | Intel Corporation | Encryption interface |
CN105516186B (zh) * | 2015-12-31 | 2019-07-23 | 华为技术有限公司 | 一种防止重放攻击的方法和服务器 |
US10585809B2 (en) | 2016-04-01 | 2020-03-10 | Intel Corporation | Convolutional memory integrity |
US10880082B2 (en) | 2017-10-19 | 2020-12-29 | Hewlett Packard Enterprise Development Lp | Rekeying keys for encrypted data in nonvolatile memories |
KR102488636B1 (ko) | 2017-11-23 | 2023-01-17 | 삼성전자주식회사 | 데이터 및 타임스탬프를 암호화하는 암호화 장치, 이를 포함하는 시스템 온 칩, 및 전자 장치 |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
DE102019128528A1 (de) | 2019-10-22 | 2021-04-22 | Infineon Technologies Ag | Datenkryptografievorrichtungen und speichersysteme |
US11500786B2 (en) * | 2019-12-03 | 2022-11-15 | Nxp B.V. | System and method for protecting memory encryption against template attacks |
US12010143B2 (en) * | 2021-08-25 | 2024-06-11 | International Business Machines Corporation | Bulk data transfers via transport layer security protocol |
WO2024049141A1 (ko) * | 2022-09-02 | 2024-03-07 | 삼성전자주식회사 | 암호화된 데이터를 비휘발성 메모리 내에 저장하기 위한 전자 장치 및 그 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080066074A1 (en) * | 2006-09-12 | 2008-03-13 | Mark Richard Nutter | System and Method for Securely Saving a Program Context to a Shared Memory |
US20090048976A1 (en) * | 2007-08-14 | 2009-02-19 | Seagate Technology Llc | Protecting Stored Data From Traffic Analysis |
US20090187771A1 (en) * | 2008-01-17 | 2009-07-23 | Mclellan Jr Hubert Rae | Secure data storage with key update to prevent replay attacks |
US7681050B2 (en) * | 2005-12-01 | 2010-03-16 | Telefonaktiebolaget L M Ericsson (Publ) | Secure and replay protected memory storage |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS504190B1 (zh) * | 1969-09-27 | 1975-02-15 | ||
US6016553A (en) | 1997-09-05 | 2000-01-18 | Wild File, Inc. | Method, software and apparatus for saving, using and recovering data |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
JP4153653B2 (ja) * | 2000-10-31 | 2008-09-24 | 株式会社東芝 | マイクロプロセッサおよびデータ保護方法 |
US7444523B2 (en) * | 2004-08-27 | 2008-10-28 | Microsoft Corporation | System and method for using address bits to signal security attributes of data in the address space |
US7716180B2 (en) | 2005-12-29 | 2010-05-11 | Amazon Technologies, Inc. | Distributed storage system with web services client interface |
JP4409619B2 (ja) * | 2006-02-24 | 2010-02-03 | 富士通株式会社 | 情報処理装置、制御装置および制御方法 |
WO2008018303A1 (fr) * | 2006-08-10 | 2008-02-14 | Nec Corporation | Dispositif de chiffrage de bloc équipé d'une fonction d'ajustement, procédé et programme |
US7890565B2 (en) * | 2007-04-30 | 2011-02-15 | Lsi Corporation | Efficient hardware implementation of tweakable block cipher |
US8477946B2 (en) * | 2008-02-27 | 2013-07-02 | International Business Machines Corporation | Method and apparatus for protecting encryption keys in a logically partitioned computer system environment |
US8522354B2 (en) * | 2008-05-24 | 2013-08-27 | Via Technologies, Inc. | Microprocessor apparatus for secure on-die real-time clock |
US20110145807A1 (en) * | 2008-06-02 | 2011-06-16 | Awox | Method and device for updating a computer application |
JP5333450B2 (ja) * | 2008-08-29 | 2013-11-06 | 日本電気株式会社 | 調整値付きブロック暗号化装置、方法及びプログラム並びに復号装置、方法及びプログラム |
FI20080534A0 (fi) * | 2008-09-22 | 2008-09-22 | Envault Corp Oy | Turvallinen ja valikoidusti kiistettävissä oleva tiedostovarasto |
EP2340631A1 (en) * | 2008-11-10 | 2011-07-06 | William V. Oxford | Method and system for controling code execution on a computing device using recursive security protocol |
US20110255689A1 (en) * | 2010-04-15 | 2011-10-20 | Lsi Corporation | Multiple-mode cryptographic module usable with memory controllers |
US8468365B2 (en) | 2010-09-24 | 2013-06-18 | Intel Corporation | Tweakable encryption mode for memory encryption with protection against replay attacks |
RU2011107568A (ru) * | 2011-03-01 | 2012-09-10 | ЭлЭсАй Корпорейшн (US) | Устройство (варианты) и способ генерирования конструкции комбинационного умножителя конечного поля малой глубины |
-
2010
- 2010-09-24 US US12/890,365 patent/US8468365B2/en active Active
-
2011
- 2011-09-23 TW TW100134373A patent/TWI567557B/zh not_active IP Right Cessation
- 2011-09-24 AU AU2011305189A patent/AU2011305189C1/en not_active Ceased
- 2011-09-24 CN CN201180045831.5A patent/CN103109296B/zh not_active Expired - Fee Related
- 2011-09-24 EP EP11827696.3A patent/EP2619705B1/en active Active
- 2011-09-24 WO PCT/US2011/053170 patent/WO2012040679A2/en active Application Filing
- 2011-09-24 JP JP2013529448A patent/JP5632086B2/ja active Active
- 2011-09-24 KR KR1020137007328A patent/KR101479957B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7681050B2 (en) * | 2005-12-01 | 2010-03-16 | Telefonaktiebolaget L M Ericsson (Publ) | Secure and replay protected memory storage |
US20080066074A1 (en) * | 2006-09-12 | 2008-03-13 | Mark Richard Nutter | System and Method for Securely Saving a Program Context to a Shared Memory |
US20090048976A1 (en) * | 2007-08-14 | 2009-02-19 | Seagate Technology Llc | Protecting Stored Data From Traffic Analysis |
US20090187771A1 (en) * | 2008-01-17 | 2009-07-23 | Mclellan Jr Hubert Rae | Secure data storage with key update to prevent replay attacks |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107408081A (zh) * | 2015-03-26 | 2017-11-28 | 英特尔公司 | 提供对存储器的加强重放保护 |
CN107408081B (zh) * | 2015-03-26 | 2021-09-21 | 英特尔公司 | 提供对存储器的加强重放保护 |
CN104852798A (zh) * | 2015-05-11 | 2015-08-19 | 清华大学深圳研究生院 | 一种数据加解密系统及方法 |
CN104852798B (zh) * | 2015-05-11 | 2017-10-03 | 清华大学深圳研究生院 | 一种数据加解密系统及方法 |
CN109074446A (zh) * | 2016-05-10 | 2018-12-21 | 高通股份有限公司 | 熔丝防重放机制 |
CN111801659A (zh) * | 2018-02-12 | 2020-10-20 | 美光科技公司 | 存储器系统中的数据存取及通信的优化 |
US11552801B2 (en) * | 2019-05-10 | 2023-01-10 | Samsung Electronics Co., Ltd. | Method of operating memory system with replay attack countermeasure and memory system performing the same |
Also Published As
Publication number | Publication date |
---|---|
AU2011305189B2 (en) | 2015-12-10 |
TWI567557B (zh) | 2017-01-21 |
EP2619705B1 (en) | 2017-12-27 |
EP2619705A2 (en) | 2013-07-31 |
CN103109296B (zh) | 2016-01-20 |
US8468365B2 (en) | 2013-06-18 |
WO2012040679A2 (en) | 2012-03-29 |
TW201224751A (en) | 2012-06-16 |
KR20130048260A (ko) | 2013-05-09 |
EP2619705A4 (en) | 2015-01-21 |
AU2011305189C1 (en) | 2016-05-12 |
AU2011305189A1 (en) | 2013-05-23 |
WO2012040679A3 (en) | 2012-07-19 |
US20120079285A1 (en) | 2012-03-29 |
JP2013538376A (ja) | 2013-10-10 |
KR101479957B1 (ko) | 2015-01-08 |
JP5632086B2 (ja) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103109296B (zh) | 具有对抗重放攻击的保护的用于存储器加密的可调加密模式 | |
EP3337082B1 (en) | Method and system for generation of cipher round keys by bit-mixers | |
US9076019B2 (en) | Method and apparatus for memory encryption with integrity check and protection against replay attacks | |
US8843767B2 (en) | Secure memory transaction unit | |
EP2016525B1 (en) | Encryption apparatus and method for providing an encrypted file system | |
US10313128B2 (en) | Address-dependent key generator by XOR tree | |
US20080285747A1 (en) | Encryption-based security protection method for processor and apparatus thereof | |
US20090113217A1 (en) | Memory randomization for protection against side channel attacks | |
CN103154963A (zh) | 对地址的加扰和对需存储于存储设备中的写入数据的加密 | |
US20080123858A1 (en) | Method and apparatus for accessing an encrypted file system using non-local keys | |
US20100095132A1 (en) | Protecting secrets in an untrusted recipient | |
EP2990953B1 (en) | Periodic memory refresh in a secure computing system | |
TWI728355B (zh) | 密碼保護的資料儲存裝置以及非揮發式記憶體控制方法 | |
CN102567688A (zh) | 一种安卓操作系统上的文件保密系统及其保密方法 | |
US9946662B2 (en) | Double-mix Feistel network for key generation or encryption | |
CN117614614A (zh) | 一种基于内部ram的密钥管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160120 Termination date: 20180924 |
|
CF01 | Termination of patent right due to non-payment of annual fee |