目录

  • introduction
  • background& motivation
    • 1.Intel SGX & shielded execution(屏蔽执行)
    • 2.threat model
  • design&implementation
    • 1.设计实现的挑战
    • 2.overview
    • 3.design
  • evaluation&conclusion

本文提出了一个安全的存储系统-speicher,提供了强大的机密性,数据的完整性,来防止rollback(回滚)、folk(分支)攻击。

introduction

在大数据时代,存储在数据中心的在线数据在以很快的速度进行增长。目前,主要使用持久化的KVS系统来支持这种服务。与之同时,存储系统中安全违规问题也显著增加,对系统本身构成极大的威胁。
为了实现一个安全的存储系统,我们希望系统使用屏蔽执行针对数据存储和查询操作有下面三个特性

  • 机密性-未授权的身份不能读取数据。
  • 完整性-可以检测到未尽授权的数据更改
  • 新鲜度 -检测到数据的过时状态。

因此在本文中,完成了下面工作:

  • I/O library for shielded execution:基于英特尔SPDK。执行IO操作的时候不需要退出安全区域(sevure enclave)。减少系统调用。
  • ** Asynchronous trusted monotonic counter**-异步可信单调计数器。用来保持数据的新鲜度。
  • Secure LSM data structure-存在于安全内存之外,克服intel SGX的内存以及IO限制。
  • 算法:提供了存储中所有操作的设计和实现:get、put、range queries、iterators(迭代器)、comapction、restore。

background& motivation

1.Intel SGX & shielded execution(屏蔽执行)

  • intel SGX - intel software guard extension
    这是对于可信任执行环节(trusted execution evironment)的X86 ISA的拓展技术。他提供了一个secure enclave抽象-硬件保护的内存区域。CPU会保护enclave 内存中数据和代码的机密性与完整性。

注意:enclave memory在enclave 页面缓存(EPC)中。EPC是由片上内存加密引擎(on-chip memory encryption engine)保护的专用内存区域,分别对EPC中对读写进行加密解密。
同时,SGX支持call-gate mechanism控制进出TEE。

  • shielded execution
    基于SGX的屏蔽执行部署在不可信的计算设备上为应用程序提供机密性和完整性保护。
    我们的工作建立在 Scone上。该模型讲应用程序的地址空间限制在enclave内存中,并通过系统调用接口和不可信内存进行交互。同时拥有异步系统调用机制,enclave外的线程异步执行操作。Scone保证了运行在SGX enclave中应用程序的内存安全。并提供了Docker集成,无线地部署容器。

2.threat model

除了标准的SGX threat模型,我们还要考虑可以使用不可信任存储介质的攻击。我们旨在

  • 防止回滚攻击。可以任意关闭系统,并回到过时的状态。
  • 防止分支攻击。可以创建多个存储系统分支(创建多个副本)
  • 保证数据的完整,机密以及新鲜(freshness)。以及奔溃一致性(crash consistency)

注意:这里我们假设从物理层面打开包装提取机密或者破坏CPU系统状态。
并且不考虑拒绝服务攻击。(这种攻击微不足道)


design&implementation

1.设计实现的挑战

这种挑战主要源于要解决intel SGX的四个架构限制

  • Limited EPC size
    自然SGX提供了安全的分页机制。可以将EPC放到不受保护的内存中(在进行加密之后,收回时将会解密并且检查其完整性)。这种机制会导致非常高的开销。因此我们重新设计了shielded storage engine,在不受信任的内存中设计实现了新的memtable数据结构保证数据的安全。
  • :Untrusted storage medium
    重新设计了LSM的数据结构,将信任拓展到不可信的存储介质中。
  • Expensive I/O syscall
    scone拥有一部系统调用接口是的enclave外部线程的系统调用不需要强制enclave线程退出enclave。但是仍然不适合构建需要频繁调用的存储系统。因此设计了新的IO库,利用SPDK进行shielded execution(屏蔽执行)。
  • trusted counter
    保护数据的新鲜新(防止回滚攻击)

2.overview

speicher是一个安全的持久性KVS,设计在不受信任的主机上运行。提供了数据存储和查询的全部操作。在本文中通过拓展RocksDB来实现Speicher,当然依然可以将这种架构借鉴到其他KVS中。

3.design

3.1 SPEICHER controller

controller提供基于SGX的可信执行环境。客户端通过相互验证的加密通道与控制器进行通信。

  • 基于scone的屏蔽执行框架来构建控制器。其中利用scone的容器支持在不受信任的主机上部署speicher。
  • 控制器还提供远程证明服务来检测用户身份,从而给予访问控制权限。
  • 控制器利用control path IO上的异步系统调用接口SCONE libc来进行系统配置。对于data path IO构建了一个direct IO library。
    3.2 Shielded direct I/O library(?)
    该IO库允许存储引擎从SGX enclave内部访问SSD或者HDD。通过基于SPDK的dorect IO library来实现。

SPDK是基于数据平面开发工具包(DPDK)的高性能用户模式存储库。

3.3 Trusted counter.

用于克服回滚攻击。SGX本身提供单调计数器,但他们的更新频率在每秒10次内,无法满足需求。

因此我们设计了单调计数器(AMC:asynchronous monotonic counter),达到每秒70k次更新。由于计数器在递增到稳定需要一定的时间,这意味着在计数器值没有被检测到的情况下无法被回滚。在递增的时候,AMC提供三条信息:

  • 当前的稳定值
  • 递增的计数器值
  • 该值稳定所需的时间
    综上,我们可以为WAL何manifest设置一个具有确定性增量的计数器从而讨论每个记录的新鲜度。

3.4 MemTable

由于内存限制,我们需要将MemTable存储在主机内存中。由于主机内存是不可信的,我们需要设计一种机制来确保MemTable的机密性、完整性和新鲜性

本文使用三种方法来设计memtable。最终采用下面方案:
重用RocksDB中MemTable的现有skip list数据结构。下图显示了SPEICHER的MemTable格式。特别地,我们将现有的MemTable分为两部分:key pathvalue path。在密钥路径中,我们将密钥作为skip list的一部分存储在enclave中。然而,MemTable中的加密值作为值路径的一部分存储在不受信任的主机内存中。**这种分区允许SPEICHER通过加密值来提供机密信息,同时仍然能够在enclave内进行快速密钥查找。**为了防止对值的完整性或新鲜性的攻击,SPEICHER在每个skip list节点中存储该值的加密哈希值以及该值的主机内存位置

3.5 SSTables.

通过调整SSTable文件格式来保证器安全属性。

  • 通过在SSTable文件写入持久性存储介质之前加密SSTable文件的每个块来确保机密性
  • SPEICHER计算每个块上的加密哈希。这些散列然后被分组到一个散列块中,并附加到SSTable文件的末尾。

在读取时,SPEICHER可以通过计算块的哈希值并将其与存储在页脚中的相应哈希值进行比较来检查每个块的完整性。
上述页脚上的哈希值使用额外哈希保存manifest中。由于manifest使用trusted counter保证不会受到回滚攻击。因页脚上的哈希值也不会受到回滚攻击。从而保证SSTable文件的新鲜度。

3.6 log files

该记录由加密的KV对和插入时WAL的加密可信计数器值以及两者的加密哈希组成。


evaluation&conclusion

 SPEICHER的设计基于利用Intel SGX的硬件辅助屏蔽执行。然而,SPEICHER的设计将屏蔽执行的信任扩展到安全的enclave内存区域之外,以确保安全属性也在不可信存储介质的有状态设置中被保留。为了在克服Intel SGX的体系结构限制的同时实现这些安全特性,我们设计了一个用于屏蔽执行的直接I/O库一个可信的单调计数器一个安全的LSM数据结构以及用于存储操作的相关算法。我们基于RocksDB实现了一个功能齐全的SPEICHER原型,并使用RocksDB基准测试对系统进行了评估。我们的实验评估表明,SPEICHER在提供强大的安全保证的同时实现了合理的性能开销


【论文阅读】Speicher: Securing LSM-based Key-Value Stores using Shielded Execution相关推荐

  1. 目标检测论文阅读:GHM(anchor based)

    目标检测论文阅读:GHM(anchor based) 论文链接:https://arxiv.org/abs/1811.05181 代码链接:https://github.com/libuyu/GHM_ ...

  2. 论文阅读 [TPAMI-2022] Grid Anchor Based Image Cropping: A New Benchmark and An Efficient Model

    论文阅读 [TPAMI-2022] Grid Anchor Based Image Cropping: A New Benchmark and An Efficient Model 论文搜索(stud ...

  3. 【论文阅读】Convolutional MKL Based MultimodalEmotion Recognition and Sentiment Analysis

    论文标题:Convolutional MKL Based Multimodal Emotion Recognition and Sentiment Analysis 论文链接:https://ieee ...

  4. 【论文阅读】Object affordance based multimodal fusion for natural Human-Robot interaction (视音信息融合)

    论文来源 摘要 利用语义识别控制.视觉上基于CNN二者的模态融合控制实现人机交互,研究可识别物体的功能可供性(affordance),并进行了分类抓取的实验. 1.介绍 语音控制自然直接,是人机交互重 ...

  5. 论文阅读2--Video text localization based on Adaboost(基于Adaboost的视频文本定位)阅读笔记

    目录 写在前面: 0.Abstract 1.Introduction 2.The candidate TEXT areas detection(检测候选文本区域) 2.1 Gray processin ...

  6. 论文阅读:Deep Learning–Based Segmentation andQuantification in Experimental Kidney Histopathology

    实验性肾脏组织病理学中基于深度学习的分割和量化 一.实验对象 健康小鼠.五种小鼠疾病模型和临床前研究中使用的其他物种的周期性酸-希夫染色肾组织. 分割六个主要的肾脏结构:肾小球簇.包括鲍曼囊在内的肾小 ...

  7. 【论文阅读】Attention Based Spatial-Temporal GCN...Traffic Flow Forecasting[基于注意力的时空图卷积网络交通流预测](1)

    [论文阅读]Attention Based Spatial-Temporal Graph Convolutional Networks for Traffic Flow Forecasting[基于注 ...

  8. 论文阅读——《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》

    论文阅读--<Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient> ...

  9. [论文阅读] (07) RAID2020 Cyber Threat Intelligence Modeling Based on Heterogeneous GCN

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  10. 论文阅读06——《CaEGCN: Cross-Attention Fusion based Enhanced Graph Convolutional Network for Clustering》

    欢迎到我的个人博客看原文 论文阅读06--<CaEGCN: Cross-Attention Fusion based Enhanced Graph Convolutional Network f ...

最新文章

  1. 东 北 大 学计算机辅助设计,东北大学计算机辅助设计(B)
  2. zookeeper 运维管理
  3. goahead content-length为0时的问题
  4. ace unlock 苹果解锁_Apple Watch将支持指纹识别功能?苹果最新专利曝光
  5. 若依集成CIM(即时推送系统)实现将服务端修改为SpringBoot+Vue前后端分离版(文末见代码下载)
  6. python 中单线程 与多线程 与多进程的性能分析
  7. 关于Python切片的问题,从左向右提取元素与从右向左提取元素
  8. Java并发编程75道面试题及答案 1
  9. springboot毕设项目医疗耗材管理系统833hr(java+VUE+Mybatis+Maven+Mysql)
  10. c#语言输出字符串长度,C#获取字符串长度(string.Length)
  11. halcon 相似度_怎样用深度学习判断两张图片的相似度?
  12. 考题篇(6.2) 07 ❀ FortiGate ❀ Fortinet 网络安全专家 NSE 4
  13. 计算机word资料,怎样快速找到电脑中的Word文档
  14. 智能家居带动路由器换代潮 中高端市场大门已敞开
  15. AAAI 2018 杰出论文出炉,两位中国留学生共同获奖
  16. py-19-JTWEB01
  17. 谈一谈Restful接口设计风格
  18. 求矩阵的逆的三种方法
  19. 关于坐标系和投影的相关知识探讨
  20. Runtime - 常用的runtime API介绍

热门文章

  1. 金蝶K3系统个别用户操作卡顿的处理办法
  2. 桌面计算机休眠快捷键,电脑休眠唤醒快捷键
  3. 计算机蓝屏代码0x0000007b,解决电脑蓝屏出现代码0x0000007b怎么解决
  4. 通过精益售后服务提升企业竞争力
  5. linux 内核 addr2line,内核调试 arm-none-linux-gnueabi-addr2line 工具使用
  6. 论现场跟客户演示软件产品
  7. 打造Linux三流娱乐环境,二流办公环境,一流Java开发环境
  8. 相爱相杀:移动联通IT支撑回忆录(十四)
  9. 三线表里加小短线_三线表的规范格式
  10. 做网站用企业网站模板好不好