Deterministic, stash-free write-only oram
Roche D S, Aviv A, Choi S G, et al. Deterministic, stash-free write-only oram[C]//Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2017: 507-521.
确定性的、无堆栈的只写ORAM
摘要:只写无关RAM(WoORAM)协议通过加密数据内容并隐藏数据上的写操作模式来提供隐私性。WoORAMs提供了比普通加密更好的隐私性,比更通用的ORAM模式(同时隐藏读写访问模式)更好的性能,写无关设置已经应用于云存储同步和加密隐藏卷的重要应用程序。在本文中,我们将介绍一种全新的只写ORAM技术,称为DetWoORAM。与以前的解决方案不同,DetWoORAM使用了一种确定性的顺序写入模式,当写入失败时,不需要在本地状态中“存储”块。我们的协议虽然在概念上很简单,但在渐进和实验上都比以前的解决方案有了很大的改进。特别是,在典型的设置下,DetWoORAM对于写入设备的每个块只向后端内存写入2个块(按顺序),这是最优的。我们已经使用BUSE(用户空间中的块设备)模块实现了我们的解决方案,并针对dm-crypt的仅加密基线和之前的随机WoORAM解决方案测试了DetWoORAM,与仅加密基线相比,仅测量了3x-14x的减速,与之前的工作相比,仅测量了6x-19x的加速。
只写ORAM:只隐藏写操作,用于那些无法被获取读操作的应用程序,即假设对方只能看到写过程,无法看到任何读操作和快照。例如云存储和备份中的同步,攻击者只能看到写入过程,读取则是在本地。相比与读写全oram,只写oram在效率和客户端内存上具有更好的性能。
DetWoORAM:①确定的顺序的物理访问:如果某个逻辑写导致写两个物理块i和j,那么下一个逻辑写将导致写物理块(i + 1)对N和(j+1)对M取余,其中M是系统中的一个参数。②无缓存(stash),因为确定的写操作总是成功;③物理写的最佳通信复杂性。④优化技术:新的数据结构(a write-only oblivious data structure ,ODS)和打包技术。⑤无状态WoORAM,方案没有存储,所以可以将我们的方案转换为无状态WoORAM,除了存储加密密钥和一些计数器变量之外,没有任何开销。⑥减少IVs的随机性和存储开销。
基于平方根模型
迭代存储位置映射:存储位置映射的一种可能性是将尽可能多的位置打包到单个块中,然后存储一个相邻的、更小的WoORAM,其中只包含这些位置映射块。然后WoORAM的位置映射存储在一个较小的位置映射中,以此类推,直到大小是一个常量,并且可以存储在内存中或在每次写入时刷新。如果每个块中至少可以包含两个位置,那么这种递归位置映射中的层数为O(logB N)。
如果我们使用算法2中描述的相同的编写过程来考虑每个递归WoORAMs,问题很快就会出现。由于反平摊过程,写操作需要对位置映射进行多次更新:一次更新用于存储新写入数据的存储区域内的位置,另一次更新用于存储刷新后的主要区域。在递归设置中,由于位置映射的每个递归级别都必须进行这些位置映射更新,因此我们可以得到指数级放大。写的一个主要WoORAM需要O(M / N(1 + R)在最小的WoORAM写道,在R∈O(logB N)是递归的数量水平。
位置映射指针和一位差分技术:元组(ah,o,q)作为位置映射指针,ah为等候区地址【0,M),o为快内地址【0.B),q为一位值,偏移为o的最新块标记。读取时先检查main area中偏移o的值是否为q,是则为最新快,不是则ah是最新块
基于字典树(trie)的不经意数据结构:
Hardware-Supported ORAM in Effect: Practical Oblivious Search and Update on Very Large Dataset
Hoang T, Ozmen M O, Jang Y, et al. Hardware-Supported ORAM in Effect: Practical Oblivious Search and Update on Very Large Dataset[J]. Proceedings on Privacy Enhancing Technologies, 2019, 2019(1): 172-191.
硬件支持的事实上的ORAM:在非常大的数据集上使用的不经意搜索和更新
摘要:能够查询和更新加密数据是一个基本的功能,以支持突破弹性的网络基础设施。针对可搜索加密(SE)的统计攻击已经证明了在访问模式中密封信息泄漏的重要性。为了应对这种攻击,社区提出了遗忘随机访问机器(ORAM)。然而,由于ORAM的对数通信开销,在传统的客户机-服务器模型中,ORAM和SE的组合是非常昂贵的,这对其实际适应造成了很大的障碍。在本文中,我们提出了一种新的硬件支持的隐私增强平台,称为实用遗忘搜索和更新平台(Practical Oblivious Search and Update Platform,POSUP),该平台能够高效地对大型数据集进行遗忘关键字搜索和更新操作。我们利用Intel SGX实现高效的无关数据结构,用于无关搜索/更新。我们实现了POSUP和评估其性能在维基百科数据集包含≥229 keyword-file对。我们的实现非常高效,使用Circuit-ORAM只需要1ms就可以访问一个3kb的块。我们的实验表明,POSUP提供了端到端延迟少70×100×减少网络带宽消耗比传统ORAM-SE成分没有安全的硬件。POSUP也快至少4:5×99:5%的关键字可以搜索与最先进的英特尔SGX-assisted搜索平台。
可搜索加密(SE)技术被用来同时提供数据保密性、搜索和更新功能。这是通过创建加密索引(EIDX)来实现的,它表示加密文件(EDB)中的关键字文件关系,这两个文件都外包给了云。SE研究的一个领域集中于设计新的SE方案,该方案具有可证明的安全性,在安全性、功能和效率方面提供各种权衡。另一个研究领域的目标是支持与数据库管理系统(如mySQL、mongoDB)等遗留基础设施兼容的加密查询。尽管所有这些技术都有其优点,但是它们都会泄漏访问模式,从而导致对该路径中的节点进行统计分析攻击,从而在传统的客户机-服务器模型中找到正在刷新的节点的WoORAM保留区位置。为了减少这种通信开销,最近的研究调查了ORAM对安全硬件的支持[51,24,63,3,65]。最初的研究设计了自定义硬件(如FPGA)来增强ORAM性能,因此,它们可能不容易集成到具有遗留体系结构的商业服务器系统中(如[51,24,63])。随着可信任执行环境在普通硬件上的出现,部署这种硬件支持的加密原语变得更加可行。Intel SGX[37,38,17]已经被开发用来支持高效的加密操作,比如健忘内存访问原语[65,3]和功能性加密
标准客户机-服务器模型中的ORAM-SE组合:由于ORAM对数带宽放大,在标准网络设置下,ORAM和SE组合的性能低下[53,35,7]。Naveed等人对[53]进行了分析分析,得出的结论是,这种组合比某些关键字分发版的整个外包数据流更糟糕。Hoang等人在云环境下进行了真实实验,进一步证明了客户端-服务器模型中直接ORAM和SE组合的低效率。我们在本文中的实验进一步证实,对于具有标准网络设置的大型数据集,ORAM和SE组合会导致高延迟。我们在x6中的实验表明,这种方法为关键字搜索和更新操作带来了一到两个数量级的客户机-服务器带宽开销。最先进的硬件支持的遗忘搜索平台。现有系统[25,73]要求安全硬件(如Intel SGX)处理每个搜索查询的整个外包数据(如加密/解密),以完全隐藏访问模式。不幸的是,在处理大量外包数据时,这种方法可能会导致很大的延迟,因为它的成本与数据库大小成线性增长。此外,最先进的解决方案没有充分研究更新功能,而更新功能似乎是数据外包应用程序的一个基本特性。
贡献:在本文中,我们设计了一个新的硬件辅助的隐私增强平台,我们称之为实用无关搜索和更新平台(POSUP)。与现有的技术相比,我们提出的POSUP能够在非常大的数据集上以更高效和实用的方式实现不经意(单/多)关键字搜索和更新操作。我们的系统设计灵感来自于ZeroTrace[65],我们将sgx支持的ORAM与无关数据结构(ODS)[78]结合起来,使oblivious 关键字搜索和加密数据的更新操作成为可能。这种协同(i)解决了ORAMSE组合在客户机-服务器设置中的网络带宽和通信障碍;(ii)消除了[25,73]中在Intel SGX内部处理整个数据库的成本;更重要的是,(iii)允许在大型外包数据库上操作,而不像[3]中那样受到Intel SGX内存的限制。这种组合还支持高效的无关关键字更新能力。我们进一步概述了我们的贡献如下:
(1)使用SGX进行新的无关搜索和更新平台设计:我们使用Path-ORAM[71]和route - oram[76]利用Intel SGX构建EIDX和EDB的ODS实例化。POSUP允许一些查询类型,如单关键字和多关键字查询。此外,POSUP通过利用底层无关数据结构的一些特殊特性的优化技巧,支持高效的无关更新。
(2)完善的实现与评估:我们使用包含数亿关键字文件对和数百万文件的大型数据集(如完整的Wikipedia英语语料库),在商品硬件上实现POSUP并评估其性能。我们的实现是有效的,只需要1ms就可以通过SGX硬件访问一个3kb的块。我们的实验结果表明,POSUP的端到端延迟比最先进的解决方案低得多,具体如下:
•ORAM-SE成分相比传统的客户机-服务器模型(没有一个安全的硬件),POSUP会增加网络带宽开销和少100×1000×减少网络通信流量。因此,对于关键字搜索和更新操作,POSUP的端到端延迟都比这种方法低两个数量级(详细实验见x6)。
•与在Intel SGX中处理整个数据库(例如,[25,73])相比,POSUP需要enclave处理的数据更少(即O(log N) vs (N), O(N)是外包数据库的大小)。这导致POSUP拥有端到端延迟10×低于99.5%的现有技术关键字(见x6)。如果搜索文件的数量很小,可以快100×POSUP。此外,POSUP允许无关更新,这在最先进的sgx辅助平台(如[25])中似乎没有得到充分的研究。
(3)让硬件支持的ORAM真正发挥作用:我们将硬件支持的ORAM原语的概念提升到了一个新的层次,在这个层次上,我们开发了具有优化的无关数据结构和例程,以在大型数据库上提供实用的搜索和更新功能,这是现有的硬件支持的内存原语(例如,ZeroTrace)所没有研究的。
POSUP基本框架:
POSUP工作流概述。存储在服务器不可信内存中的加密数据结构(如ODS-IDX、ODS-DB)是由客户机在初始化阶段(在x4.1中描述)创建的。1-2:客户端使用会话密钥(Ks)加密(搜索/更新)查询,并将其发送到enclave。3-6: enclave对加密的数据结构组件执行无关访问(例如ODS、递归ORAM),以检索/更新与查询相关的文件。7 -8: enclave使用Ks加密查询结果并发送回客户机。
数据结构:
图3。在POSUP中将ODS-IDX和ODS-DB打包到ORAM树中的说明。空白节点表示虚拟块,彩色节点表示实际的le/index块。在彩色节点中,模式节点表示链表的头块
多用户设置:在POSUP中,客户机是无状态的。因此,很容易将POSUP扩展到多用户设置,包括数据所有者(拥有n个外包文件)、存储服务器和k个用户(希望搜索/更新n个文件),如下所示。数据所有者创建访问控制数据结构(ACDS)来为n个文件上的k个用户授予权限(例如,搜索/更新)。数据所有者对enclave加密并发送acd,以及加密索引(ODS-DB)和加密文件(ODS-DB),如x4.1中所述,所有这些都存储在服务器的不可信内存中(例如SSD)。假设用户希望搜索关键字,他/她将使用enclave进行身份验证,例如使用用户标识符和密码。如果通过身份验证,enclave将对ods - idx(如x4.2.2中所述)执行遗忘访问,以获取匹配查询的文件id。对于每个文件ID, enclave使用ORAM访问ACDS,以检查用户是否具有文件上的读权限。如果是这样,enclave对ods - db执行无关访问,以检索文件并将其发送给用户。同样的原则也适用于文件更新过程。粗略地说,enclave首先对用户进行身份验证,然后无保留地访问ACDS,以检查用户是否具有文件上的更新权限。如果允许,enclave执行x4.2.1中所示的健忘更新协议
总结:开发了一个新的sgx支持的遗忘搜索和更新平台POSUP。我们通过实现独特的sgx辅助无关数据结构来实现这一点,这种结构支持实用的无关搜索和更新操作。我们在商品硬件上实现和部署POSUP,并在一个非常大的数据集(全尺寸的英语Wikipedia语料库)上评估其性能。实验表明,与传统的客户端-服务器模型相比,POSUP实现了两到三个数量级的带宽放大和通信往返。类似地,POSUP在处理SGX内部整个外包数据库的备选方案时,处理速度会降低一个数量级。
InvisiMem: Smart memory defenses for memory bus side channel
Aga S, Narayanasamy S. InvisiMem: Smart memory defenses for memory bus side channel[C]//ACM SIGARCH Computer Architecture News. ACM, 2017, 45(2): 94-106.
InvisiMem:针对内存总线侧信道攻击的智能内存防御
摘要:一个实际可行的低开销硬件设计,提供对内存总线侧信道的强大防御仍然是难以实现的。本文观察到智能内存,具有计算能力和分组接口的内存,可以极大地简化这个问题。InvisiMem扩展了信任基础,将逻辑层包括在智能内存中,以实现加密原语,这有助于有效地解决多个内存总线侧信道漏洞。这允许安全主机处理器通过不受信任的内存总线发送加密地址,从而消除了基于健忘RAM (ORAM)的昂贵地址混淆技术的需求。此外,智能内存支持高效的解决方案,以确保新鲜度,而无需使用昂贵的Merkle树,并使用恒定的心跳数据包减轻内存总线定时通道。我们证明InvisiMem设计与以前的解决方案相比,在性能、空间、能量和内存带宽方面具有一到两个数量级的低开销。
LEO: Low Overhead Encryption ORAM for Non-Volatile Memories
Rakshit J, Mohanram K. LEO: Low Overhead Encryption ORAM for Non-Volatile Memories[J]. IEEE Computer Architecture Letters, 2018, 17(2): 100-104.
LEO:用于非易失性内存的低开销加密ORAM
摘要:利用内存访问模式的数据机密性攻击威胁现代主存中的数据公开。遗忘RAM (ORAM)是一种有效的密码原语,用于阻止基于DRAM的系统中基于访问模式的攻击。然而,在新兴的非易失性内存(NVM)系统中,由于对每个PATH ORAM(最先进的高效ORAM)访问上的多个数据块进行加密,增加了写操作,这将带来巨大的能量、生命周期和性能开销。LEO (Low - overhead Encryption ORAM)是一种高效的PATH ORAM加密体系结构,它解决了NVMs中ORAM集成的高写入开销,同时提供与基线路径ORAM等效的安全性。LEO通过在路径 ORAM访问的写阶段安全地减少块加密的数量来减少NVM单元的写。LEO使用了一种安全的、两级的计数器模式加密框架,它有机会消除未修改块的重新加密,减少了NVM写操作。我们的评估显示,平均而言,LEO在基线路径ORAM上减少了60%的NVM能量,提高了1.51的生存期,并提高了9%的性能。
LEO:低开销加密ORAM(Low Overhead Encryption ORAM)是NVM路径ORAM的一种安全且最优的加密框架。LEO在路径ORAM访问的写阶段最小化未修改块的冗余重新加密,减少NVM单元的写。LEO通过强制访问路径上的所有bucket都应该经历块重加密,从而安全地减少冗余的重加密,该重加密等于写入该路径上的单个bucket的新/修改块的最高数量。在bucket中,对新的/修改的块进行重新加密,如果需要,对随机选择的一些未修改的块进行重新加密,从而在所有bucket中实现统一的重新加密计数;其余未修改的块不会重新加密。LEO在基线路径ORAM[7]中保留加密体系结构的安全性,不会泄漏任何对对手有利的额外信息。
图2所示。LEO插图,L和Z值分别为3和4,path-6被写回。B1、B3、B7、B14的MRCOUNT分别为1、2、0、1,MRMAX为2。LEO分别从bucket B1、B3、B7、B14中随机选择1、0、2、1个相同/虚拟块,用于每个bucket中的MRMAX总重加密。在这里,LEO减少[(L+1)(Z-MRMAX)],或[4*(4-2)]=8个缓存行写操作。
二级计数器设计说明。显示了一个Z=4的桶,它的元数据块和块2被展开(不是按比例)。元数据包含用于4个数据块的LAs、叶id、共享桶计数器(BuCtr)和4个块计数器(BlkCtrs)。为了计算第2块中第3块的OTP,使用了与BuCtr一起使用的BlkCtr2;块ID和块ID值分别为2和3
More is less: Perfectly secure oblivious algorithms in the multi-server setting
Chan T H H, Katz J, Nayak K, et al. More is less: Perfectly secure oblivious algorithms in the multi-server setting[C]//International Conference on the Theory and Application of Cryptology and Information Security. Springer, Cham, 2018: 158-188.
摘要:(ORAM)问题传统上是在单服务器设置中研究的,但最近也考虑了多服务器设置。然而,多服务器设置是否具有任何固有优势仍然不清楚,例如,多服务器设置是否可以用于实现更强的安全目标,或者是否可以证明比单服务器情况下的效率更高。在这项工作中,我们构建了一个完全安全的3服务器ORAM模式,它比最著名的单服务器模式的性能要好一个对数因子。在这个过程中,我们还首次展示了存在一些特定的算法,对于这些算法,多个服务器可以克服单服务器设置中已知的下界。
定理1:有一个3台服务器的ORAM模式,它对于任何一个半诚实的损坏都是完全安全的,并且在长度为N的数组上实现每个逻辑内存访问的O(log2n)带宽。此外,我们的模式不依赖于服务器端计算。
定理2:存在一种3服务器协议用于稳定压缩,该协议对于任何单一的半诚实的损坏都是完全安全的,并且实现O(N)带宽来压缩长度为N的数组(在服务器之间共享)。合并两个长度为N的排序数组的结果相同。
完美安全的ORAM:完美的安全性要求计算无限的服务器除了概率为1的请求数之外不学习任何东西。这意味着不管程序的输入是什么,遗忘程序的内存访问模式都应该是相同分布的;因此概率为1,关于程序的秘密输入信息不会泄露。
定理16:存在一种3台服务器的ORAM方案,该方案针对任意一台服务器的半诚实对手,满足完全的正确性和完全的安全性,并实现O(log2n)平摊带宽放大(其中N表示逻辑块的总数)。
置换-存储-分离范式(permutation-storage-separation paradigm):
协议:
Obfscuro: A commodity obfuscation engine on intel sgx
Ahmad A, Joe B, Xiao Y, et al. Obfscuro: A commodity obfuscation engine on intel sgx[C]. NDSS, 2019.
Obfscuro:一个intel sgx上的商业混淆引擎
摘要:程序混淆是一种流行的密码构造,具有广泛的用途,如防止IP盗窃。尽管用于程序混淆的加密解决方案带来了不切实际的高开销,但最近利用可信硬件的突破显示出了希望。然而,现有的解决方案基于特殊用途的受信任硬件,将其用例限制在有限的几个方面。在本文中,我们首先研究基于商品可信硬件Intel SGX的这种混淆是否可行,我们观察到商品硬件不提供某些重要的安全考虑。特别地,我们发现现有的混淆/遗忘方案如果直接应用于Intel SGX,主要是由于侧通道限制,是不安全的。为此,我们提出了混淆,第一个系统提供程序混淆使用商品可信硬件,英特尔SGX。关键思想是利用ORAM操作来执行安全的代码执行和数据访问。最初,OBFUSCURO将常规程序布局转换为侧通道安全和oram兼容的布局。然后,OBFUSCURO确保其ORAM控制器执行数据无关访问,以保护自己不受所有基于内存的侧通道的影响。此外,通过确保程序总是在预先配置的时间间隔内运行,OBFUSCURO确保程序不会受到计时攻击。在此过程中,OBFUSCURO还引入了一个系统优化,例如基于寄存器的ORAM隐藏。我们对OBFUSCURO进行了全面的安全性分析,并对其进行了经验攻击评估,结果表明,OBFUSCURO可以保护SGX程序执行不被基于访问模式和基于时间的通道泄漏。我们还提供了详细的性能基准测试结果,以展示OBFUSCURO的实际方面。
程序混淆:在程序混淆项下,拥有程序的发送方将其转换为程序的混淆版本,该混淆版本为:(a)在功能上与原始版本相同,(b)在返回输出之前运行一段固定时间。然后发送方将这个混淆的程序发送给接收方。接收方在类似黑盒的环境中运行混淆程序——接收方无法看到(或推断)混淆程序的中间计算结果和/或足迹。因此,即使接收者可以使用他/她选择的任何输入来运行混淆的程序,他/她也不会了解关于原始程序的任何信息。因此,就攻击者而言,他/她正在与一个虚拟黑盒进行交互,该黑盒接受输入并给出预期的输出。
为了应对这些挑战,OBFUSCURO1使用了三个主要思想。首先,OBFUSCURO使用数据无关的ORAM实现。我们的工作通过设计一个高效的基于寄存器的存储区,改进了先前提出的安全ORAM实现[16-18]。其次,为了消除攻击者所观察到的内存访问模式,弥补传统ORAM与本地程序执行之间的差距,OBFUSCURO设计了抗侧信道攻击的基于scratchpad的代码执行和数据访问模型。最后,OBFUSCURO通过为所有应用程序提供执行时间标准化来确保目标程序从头到尾的混淆,从而保护程序不受基于时间的通道的信息泄漏的影响。
Obfusmem: A low-overhead access obfuscation for trusted memories
Awad A, Wang Y, Shands D, et al. Obfusmem: A low-overhead access obfuscation for trusted memories[J]. ACM SIGARCH Computer Architecture News, 2017, 45(2): 107-119.
对可信内存的低开销访问混淆
内存技术的趋势是走向3D和2.5D的集成,支持重要的逻辑功能和复杂的内存接口。利用这些趋势,我们提出了一种访问模式混淆的新方法,称为混淆mem。ObfusMem将内存添加到可信计算基础,并在内存中集成加密引擎。混淆mem对内存总线上的命令和地址进行加密,因此外部观察者对访问模式进行加密混淆。我们的评估显示,ObfusMem平均会带来10.9%的开销,这比ORAM实现快一个数量级。此外,混淆mem不会产生容量开销,也不会放大写。我们分析和比较了ObfusMem和ORAM提供的安全保护,并突出了它们之间的差异。
总结:内存访问模式的混淆为系统安全和用户隐私提供了重要的硬件保护。本文提出了一种内存访问模式混淆系统,与ORAM相比具有开销优势。ObfusMem依赖于处理器和内存中的加密逻辑来加密和验证通过连接处理器和内存的公开连接进行通信的命令、地址和数据。我们的评估表明,在不受保护的内存访问成本之上,混淆mem平均只会导致11%的执行时间开销,这使得内存访问模式混淆对于普通计算机系统是可行的。ObfusMem几乎比ORAM快一个数量级。重要的是,对于非易失性内存,混淆不会导致早期损耗
OBLIVIATE: A Data Oblivious File System for Intel SGX
Ahmad A, Kim K, Sarfaraz M I, et al. OBLIVIATE: A Data Oblivious File System for Intel SGX[J]. 2018.
OBLIVIATE:一个用于Intel SGX的数据不经意文件系统
摘要:intel SGX提供了在enclave范围内运行的程序的机密性和完整性,并有望支持有价值的安全应用程序,如私有信息检索。本文主要研究SGX在访问关键系统资源、文件时的安全性问题。通过具体的攻击场景,我们展示了所有现有的SGX文件系统都容易受到系统调用窥探、页面错误或基于缓存的侧信道攻击的攻击。为了解决当前SGX文件系统中的这种安全限制,我们提供了一个针对Intel SGX的数据无关文件系统OBLIVIATE。OBLIVIATE背后的关键思想是调整ORAM协议,以便从SGX飞地中的文件读写数据。OBLIVIATE为SGX环境重新设计了ORAM的概念组件,它无缝地支持SGX程序,不需要对应用层进行任何更改。OBLIVIATE也使用sgx特定的防御和优化,以确保完全安全与可接受的开销。OBLIVIATE原型的评估展示了其在SQLite和Lighttpd等流行的服务器应用程序运行的实际效果,同时实现吞吐量提高2×8×基线ORAM-based解决方案,和小于2×开销在内存中的SGX文件系统。
本文介绍了一种用于Intel SGX的数据无关文件系统OBLIVIATE。OBLIVIATE背后的关键思想是为SGX使用ORAM操作来隐藏文件访问模式。为SGX精心实现ORAM的概念组件,使其能够无缝地作为文件系统运行,同时提供对上述侧通道攻击的系统防御。在更高的级别上,OBLIVIATE在单独的进程中运行独立的文件系统enclave,其中应用程序飞地通过加密的通信通道中继文件系统相关的操作。为了优化由于这种隔离和单独的文件系统设计而产生的通信开销,OBLIVIATE使用了exitless通信模式,即消息队列和共享内存,每个模式都促进进程内和进程间的通信。在采用ORAM方面,由于ORAM实现本身暴露于对enclave的侧通道攻击(例如基于[50]的页面错误或基于缓存的攻击[10,40]),所以OBLIVIATE在访问ORAM的关键数据结构时使用了数据无关算法。
优化技术:OBLIVIATE显示了两个性能优化技术关于在SGX上应用ORAM:(1)有效地维护ORAM服务器存储,OBLIVIATE开发一个额外的安全内存区域用SGX的非加密内存区域(即更精确、non-EPC内存)。这使得OBLIVIATE可以避免昂贵的上下文切换,如果上下文切换直接存储在enclave内存中,则会由于EPC内存有限而导致切换。(2)为了减少ORAM延迟,我们利用ORAM的内部工作特性,采用异步ORAM服务器更新方案。因此,OBLIVIATE在数据可用时立即返回所需的数据,并异步执行路径更新,而不是等待代价高昂的ORAM路径更新。
SGX限制:Intel SGX不提供针对侧通道攻击的系统保护机制,而是依赖于应用程序开发人员。虽然可以有许多可能的攻击向量(例如电力监控攻击,电磁攻击,和基于总线的访问模式分析窥探袭击[15]),我们主要关注三个可行的攻击,不需要物理访问这台机器:(a)系统调用探听,(b)基于页面错误和(c)cache-based边信道攻击。
Onion ORAM: A constant bandwidth blowup oblivious RAM
Devadas S, van Dijk M, Fletcher C W, et al. Onion ORAM: A constant bandwidth blowup oblivious RAM[C]//Theory of Cryptography Conference. Springer, Berlin, Heidelberg, 2016: 145-174.
Onion ORAM:一个恒定带宽放大的ORAM
摘要:我们提出Onion ORAM,一个健忘的RAM (ORAM)具有恒定的最坏情况带宽放大,利用多对数服务器计算来绕过ORAM带宽放大的对数下限。我们的构造并不需要完全同态加密,但雇佣了一个加法同态加密方案如Damg˚ard-Jurik密码系统,或者一个无引导的BGV-style samewhat同态加密方案。我们构建的核心是ORAM方案,该方案具有贯穿整个ORAM访问历史的“浅层电路深度”。我们还提出了新的技术来实现对恶意服务器的安全性,而不用求助于昂贵的和非标准的技术,如SNARKs。据我们所知,Onion ORAM是标准假设(即使是半诚实的设置)下第一个固定带宽放大ORAM的具体实例。
N是块的数量。最优块大小是达到规定带宽所需的数据块大小,以位为单位度量。所有方案都有O(B)客户端存储和O(BN)服务器存储(都是渐近最优的),n中的故障概率可以忽略不计。“M”代表恶意安全,“SH”代表半诚实。AHE (additively homomorphic encryption scheme 加性同态加密方案)/ SWHE(Somewhat Homomorphic Encryption,部分同态加密方案)
Practical private shortest path computation based on oblivious storage
Xie D, Li G, Yao B, et al. Practical private shortest path computation based on oblivious storage[C]//Data Engineering (ICDE), 2016 IEEE 32nd International Conference on. IEEE, 2016: 361-372.
摘要:随着基于位置的服务(LBSs)的流行,基于位置的查询可能会在查询处理过程中泄露敏感信息,从而引发了严重的隐私问题。在LBSs支持的典型查询中,最短路径查询不仅可以显示客户机当前位置的信息,还可以显示客户机的潜在目的地和旅行计划。遗憾的是,现有的私有最短路径计算方法存在隐私性弱、性能低下或可伸缩性差的问题。在本文中,我们的目标是一个强大的隐私保证,其中对手不能推断几乎任何关于查询的信息,具有更好的性能和可伸缩性。为了实现这一目标,我们引入了一种基于遗忘存储(OS)概念的通用系统模型,该模型可以处理需要强隐私属性的查询。此外,我们提出了一种新的无关洗牌算法来优化现有的操作系统方案。通过在查询性能、可伸缩性和隐私属性之间进行权衡,我们设计了不同的私有最短路径计算方案。最后,我们在实际的道路网络环境中对我们的方案进行了综合评价,并展示了方案的有效性。
在这篇文章中,我们着重于为最短路径查询开发有效的和隐私保护的解决方案。具体来说,我们采用了遗忘存储(OS)[4]的概念,它提供了一个通用的隐私模型,不仅保证了数据的保密性,而且还隐藏了数据访问模式。在此模型的帮助下,我们可以在受信任的环境中使用从不受信任的服务器检索的有用数据来处理查询。但是,为了隐藏访问模式,需要定期对存储在服务器中的数据进行洗牌和重新加密。这导致I/Os的平摊代价很高。因此,操作系统应用程序的性能将受到I/O效率和存储容量的严重影响。为了优化[5]中提出的操作系统方案,我们设计了一种新的无关洗牌算法——交织缓冲洗牌(Interleave Buffer shuffle, IBS)。这使得我们的数据检索操作比[3]中使用的PIR协议快得多。我们还提出了两种用于最短路径查询的方案,CompactKeypointIndex(CKI)和shortcutpassage Index(SPI)。通过利用干线层次结构(Arterial Hierarchy, AH)[6]生成的快捷方式,并采用经过修改的KD-tree作为分区策略,这两种方案都比目前的[3]提供了更好的性能和可伸缩性。我们还提出了一些新的优化数据组织和索引。
交织缓冲洗牌(Interleave Buffer shuffle, IBS):基于平方根模型,空间开销:O(N +√N)的服务器空间开销和O(√N)的客户端空间开销。计算开销:每次只需查询一项,O(1),考虑到重建阶段,均摊开销为每个请求是O (√N /α),IBS的成本是O (N)(最坏开销)。但OS服务在重新构建阶段将不可用,为了处理这个问题,可以在我方案中采用诸如副本之类的技术来减少这种不可用的时间。