SoK Cryptographically Protected Database Search

SoK: Cryptographically Protected Database Search

注:SoK:Systemization of Knowledge papers evaluate, systematize, and contextualize existing knowledge. They provide an important new viewpoint on an established, major research area.

0.basic info

x y
文献类别 Survey, SoK, SE领域系统化的工作
文献来源 IEEE Symposium on Security and Privacy 2017
文献等级 CCF-A
关键字 searchable symmetric encryption, database search, oblivious random access memory, private information retrieval

1.研究对象

  1. 对象定义

    PDSS(Protected Database Search System)是一种支持各种数据库角色和操作的,参与方除预计的输出得不到任何信息的数据库系统。

    1)server:只负责查询和处理数据,无法知道query和数据库中的数据

    2)queryier:除了查询结果其他什么也知道不了

    本质:how to balance tradeoff between data utility and data privacy in large data storage

  2. 研究场景 (所研究问题具体产生之处)

image-20221102093850905

数据库系统面临的安全威胁主要有三方面:

Threat1: 信道的安全性,攻击者在网络上进行监听,安全方案为信道加密,比如TLS协议

Threat2: 后端数据库的安全性,攻击者获取到backend数据库(比如拖库),安全方案为对数据库进行加密

Threat3: database server的安全性,最难以解决的,server负责处理查询,返回数据,当攻击者是server的时候如何保证安全?

Threat3就是PDSS要解决的问题!

特别的,本文研究PDSS的范围如下:

  1. three-party scenario

​ three-party是指querier,server,以及provider(具体的细节见博文数据库基础知识),还有一种two-party场景是provider和querier是一个角色。

  1. semi-honest security against a persistent insider adversary

​ 对攻击者的几个限定:semi-honest, persistent, insider,定义如下,攻击者模型:

  • entity上分

    • insider
      在数据库中扮演某一个或者多个角色

    • outsider
      不参与数据库的工作流程,监视合法用户之间的网络通信

  • 行为上分类

    • semi-honest adversaries
      遵守既定的数据库工作协议,但是被动地尝试获取他们应当观测到的其他信息
    • malicious adversaries
      活跃地想采取行动得到数据库的额外信息或者赢影响系统运行(不会遵守数据库规则)
  • 生命周期上分

    • persist
      • persist for the lifetime of database
    • snapshot
      • obtain a snapshot at a single point time

2.研究目的

1. 告诉PDSS designers 目前以及未来的数据库技术发展,使得designer 可以致力于开发出适用于未来DBMS的安全技术

  1. 系统化总结现有PDSS实现技术的tradeoffs,以便安全人员根据自己的需求采取合适的PDSS技术

3.主要贡献

  1. 总结目前database search实现原语(basic queries&combined queries)

  2. 分析现有PDSS如何实现上述的search原语以及更加复杂的查询,并总结出功能上的缺陷

  3. 针对现有PDSS给出统一的leakage描述并评估现有的攻击手段

  4. 给出将PDSS转化为实际可用的数据库管理系统的方法

4.研究背景(Database基础知识(可以跳过))

1.生词术语

1.database paradigms-数据库范式

2.DBMS:database management systems support ingest, storage, search, and retrieval, among other functionality
功能:

  • software that accesses data stored in a database
  • enforcing data access policies
  • defining data structures
  • providing external applications with strong transaction guarantees
  • serving as building blocks in visualization and data presentation
  • replicating data
  • integrating disparate data sources
  • backing up important sources
  • perform analytics on stored data

3.primitive operations:原语操作

2.数据库的组成

数据库核心:提供在数据库上检索索引的功能
数据库管理系统:访问数据库数据的软件

3.数据库定义

作者认为虽然数据库的种类多样,但是有一个小集合里的统一基本操作(query basis)可以联合起来,完成这些数据库的功能。

  • SQL[40]
    • transactional guarantees
    • vertically scalable(performs better when greater hardware resource)
  • NoSQL[41]
    • relaxed transactional guarantees
    • 处理amounts of unstruture data
    • horizontal scaling
  • NewSQL[42]
    • bring together the scalabil- ity of NoSQL databases and the transactional guarantees of relational databases

4.数据库的Query bases

  • 关系代数:SQL[36],[68]
  • 关联数组(associate array),[50],[47]
    • NoSQL
  • 线性代数[69],[70],[71]
    • Graph database

5.数据库统一角色和操作

角色: 这里的角色不是独一无二的,一个user可能同时扮演着许多种角色。

  • A provider:提供数据和修改数据的角色
  • A querier:查询数据的角色
  • A server: handles storage and processing,存储并处理数据的角色
  • An authorizer, who specifies data- and query-based rules.
  • An enforcer, who ensures that rules are applied.

操作: 这里的操作是在protected search system场景下的。

  • Init
    发生在provider和server之间,server从provider那里的数据获取数据
  • Query
  • Update:provider和server之间
  • Refresh:provider和server之间,重新得到一个数据库,为了安全性和性能进行刷新。

6.数据库索引

https://blog.csdn.net/weixin_52938172/article/details/125739105

5.研究内容

image-20221102095617038

1.Leakage and Attacks

image-20221102170502005

1.1 common PDSS leakage profiles

  1. 什么是leakage profile

    leakage profile comprises a sequence of functions that formally describe all info that is revealed to each party beyond the intendted output.就是一系列函数,来系统地描述一个PDSS泄露信息的属性。

    eg:

  2. Leakage profile和15-survey中的security definition有什么联系和区别

    • security proof就是阐述声明的leakage profile是实际上系统泄露给攻击者的信息的上界(upper bound),如何理解?,按照粗略的理解是像其他文章中的证明那样,搞出一个攻击者挑战系统的场景等等。

    • leakge profile是security definition的参数化(SD is parameterized by system's specific leakage profile),自己的理解是security描述了系统要到达的安全性要求(比如IND-CPA等),leakage profile更具体地描述系统哪里不安全以及不安全的原因。

  3. 为什么文章要提出自己的common leakage profiles

    • 现有的security definition没有考虑到info leakage during or after a search??

    • 现有的security definition基于各种假设和模型,无法进行安全性的比较

image-20221102100340872

4.具体内容

  • 泄露对象
    • Data items, and any indexing data structures(比如关系型数据库中的records或者文档数据库中的文档)
    • Queries
    • Relationships between the data items and the queries(比如某些记录是某个查询的结果,或者是并查询的其中一个子句的匹配结果)
    • Access control rules and the results of their application.
  • 泄露信息的类型
    • Structure: 对象的特征,比如一个查询返回记录的个数,query字符串的长度等等,或者某个对象的树形表示
    • Identifiers: 这里指在多次访问中可分辨的对象,比如说一张表,或者特定的记录???
    • Predicates: identifiers加上额外的信息,比如一群记录是在某个范围之内,或者是两个子句查询的交集等等
    • Equalities: 哪些对象有相等的值
    • Order: 对象的按某种方式排列的顺序
  • 发生泄露的操作和可能获取泄露信息的参与方
    • Init: server可能获取到最初的data items
    • Query: server可能获取到data items,query,relationship和rules;querier可能获取到rules;provider可能获取到query和rules?;enforcer可能获取到data items,query,relationship
    • Update: server可能获取到data items
    • Refresh: server可能获取到data items

1.2 Leakage Inference Attacks

这一节作者总结目前针对PDSS的攻击手段,总结出了对应的threat model,常见的攻击手段,同时对现有的攻击手段进行评价。

image-20221102110204428
  1. Attacker Prior Knowledge

这里具体讲一下攻击需要的先决条件,文中将先决条件划分了下面几类:

  • Contents of full dataset: 数据库所有数据项,在这种情况下攻击的目的大概率是恢复query
  • Contents of a subset of dataset: 数据库一部分数据项
  • Distributional knowledge of dataset: 数据库的数据项的分布信息,比如说一个人名数据库,攻击者知道一些人名的统计分布等
  • Distributional knowledge of queries: 查询的分布信息,比如数据库数据项的字段查询的一些统计规律
  • Keyword universe(知道一些keyword对应的value): 数据库中一些字段的值,有哪些关键字等等
  1. Attack Techniques

大部分攻击手段基于以下两个事实:

​ 1.不同的keywords对应着不同的records数目

​ 2.大多数系统在rest的时候(就是指不query,在静态的时候)都有可能泄露记录中的Keyword的特征

​ 什么意思呢,比如DET(determined encryption)的情况下,相同的keyword密文是一样的,这就告诉攻击者有些records中的字段是相等的

3.Attack techniques

下图展示了先有的攻击手段的总结,其中S leakage是指攻击能影响到PDSS需要的leakage的数量级。

image-20221102144707763

一个例子: count attack[128]

  • assumpion
    攻击者知道数据库的全部内容,尝试破解出query内容
  • 内容
    攻击者看这个query返回record的个数,如果这个个数对应于一个query,且是唯一的,就可以确定是什么query,这样也可以知道返回的record是什么关键字的
  • example
    这种攻击有两种场景:
    • 攻击者知道前面的query是什么,并且这个query的记录数是独一无二的,这样就可以确定出query(???)
    • 这个query不是独一无二的,攻击者则可以通过比较一些query的重叠的records来确定query(详情见论文例子P9)
  • 优劣
    好处:方便执行
    坏处:it requires a large portion of the dataset to be known to the attacker,攻击条件比较苛刻。
  1. 攻击总结
  • 如果攻击者只能获得数据库的少量数据,或者只有一个snapshot的话,Custom泄露的信息比Legacy scheme要少一些。
  • 目前攻击的缺陷
    • 没考虑到捏造恶意的query,只想到了插入恶意数据(攻击者是server)
    • 没考虑泄露的信息对qurier或者provider的意义(他们作为攻击者)
    • 大部分只考虑Equaliy和range查询,没考虑布尔查询
  • 鼓励数据库设计者实现Refresh功能,增加安全性

2.PDSS implementations

image-20221102170445612

2.1 Base Queries

数据库的查询实现可以分为base queries和combined queries,后者是将前者组合完成更加复杂的功能,这一节主要内容就是把现有的PDS分成leacy、custom、oblivous三类,然后分别叙述这三类分别如何实现三种基本查询的。

image-20221102170518839
  1. Leacy Index(传统方案)
  • 特点
    Inserting ciphertexts into a traditional database, without changing the indexing and querying mechanisms.不改变原来的数据库机制,打个比方就是,原来数据库中存的是明文,现在存的是密文,只不过加上了可搜索的特性。
  • 使用技术
    • equality: Deterministic encryption(DET)
      • 对所有的数据项信息执行randomized-but-fixed 的重新排列(permution),这样的话相等的明文对应着相等的密文。
      • 坏处:server是知道哪些数据项相等的(不知道数据项的具体内容)
    • range: Order-preserving encryption (OPE)
      • 保持数据项明文的相对顺序,这样就可以在密文上进行range查询
      • 坏处:数据项顺序给别人了,而且会披露出数据项的一些内容(排序依据)
      • refer
        有人做出了改进:
        • [95] show how to hide message contents until queries are made against the database.
        • [96] further strengthen security using fake queries.
        • mutable OPE [97] reveals only the order of ciphertexts at the expense of added interactivity(交互) during insertion and query execution.
    • Boolean
      将equality和range结合起来就可以实现布尔查询。
  • 实例
    CryptDB
  • 优缺点
    优点:(1)可以继承原有数据库优点,改进原有数据库,改动可以直接继承到安全保护的数据库;(2) 数据库的更新很方便
    缺点:无法避免泄露大量的信息
  1. Custom Index(定制索引)
  • 特点

    推翻原有的数据库,建立特殊的,能保证安全性的索引结构,此种方法类型很多,因为依托着不同的索引数据结构,以满足定制的场景需求。

  • 使用技术

    Inverted index: Blind Storage [100], OSPIR-OXT [18]–[21], Kamara and Moataz [102]

    Tree Traversal: Kamara and Papamanthou [106], BLIND SEER system [16], [17], Arx-RANGE[110], Rochet al.’s partial OPE protocol [111]

  • 优缺点

    优点: 安全性相对更好(leak in Query),不会直接泄露大量信息

    缺点: (1)效率比较低

    ​ (2)更新不方便。因为更新数据时还要更新索引,主流的解决方案是,在更新时,将更新的数据的索引插入一个side-index中,在数据库refresh的时候再将side-index和主index进行合并。

  1. Oblivious Index
  • 特点

    Custom方法的子集,说白了就是在Custom方法的基础上,不让server知道每次查询查了谁,以及怎么查的,这样就算是两个查询返回同样的结果,server也没法确定上次和这次查的是哪个keyword,也就获取不到任何有用的信息。This class of protected search schemes aims to hide common results between queries. hide data identifiers across queries by re-encrypting and moving data around in a data structure

  • 使用技术

    传统: vORAM+HIRB[120], TWORAM[121], Moataz and Blass(substring queries)[123]

    Distributed: 3PC-ORAM[124], SisoSPIR[22]

  • 优缺点

    优点: 安全性更好,隐藏了search pattern

    缺点: (1)效率更低,这点考虑使用distributed servers解决。

    ​ (2)更新不方便。

  1. 几种方案的安全性特征
  • most Legacy systems leak information at ingestion(Init)
  • most Custom systems only leak information after queries have been made against the system(Query)

2.2 Extending functionality

这一节主要介绍PDSS的是如何用三种基本查询组成其他更丰富的查询的(query composition),但是这里有一点要注意,这里的composition不是简单组合:

  • composing base queries tend to have more leakage than schemes that natively support the same query type as a base query
  • using query composition, a scheme that supports the necessary base queries can be extended straightforwardly to support multiple query types(按下不表)

主要的实现方案如下:

  • equality using range: id=A 等价于 id in [A,A]
  • Disjunction of equalities/ranges using equality/range(实现多个相等查询和范围查询的并)
    • 很好理解,就是相等查询要查询一个集合的符合的记录,或者多范围查询,查询符合其中一个范围,可以使用多个eq或者range的交集替代
  • Conjunction of equalities using equality(多个eq的交)
    • 数据库变成k阶元组数据库,每个元组就是k列的一种排列取值
  • Stemming using equality(根茎查询)
    • 意思就是匹配关键词和它的变体,比如搜索run,返回running,runs等变体
    • 实现方式:在初始化的时候把每个词和它的变体放在一起,然后查询就等价于一次相等查询(集合相等)
  • Proximity using equality(模糊查询)
    • 查询出关键字值相近的其他关键字
    • 实现方式
      • 在初始化的时候为每个关键词建立邻居结合(加密后的),转换为相等查询[137]]
      • locality-sensitive hashing[138],[139],就是将所有的关键字搞成哈希,然后返回哈希值相近的记录。
  • Small-domain range query using equality(eq实现的小范围查询)
    • 实现方式:建立两个Index,假设范围是D,查询的属性是A,D中一个记录是a
      • index1是map a 到(小于a的记录数量,大于a的记录数量)
      • index2是根据A进行排序的记录
  • Large-domain range using equality and disjunction[16],[134]
    • 实现方式:使用range covers进行查询,可以在指数级的数据量上进行
    • 类似二分查询,比如查[2, 5)的,可以去查 [2, 4) 并 [4, 5)的
  • Negations using range and disjunction(实现非)
    • 实现方式:考虑一个排序好的关键字集合D,有最大值amax和最小值amin
    • A!=a 等价于 A in [amin, a) 并 A in (a, amax]

image-20221102152921664

下面这张图总结了所有的query composition实现、时空开销以及相应的泄露。

2.3 Functionality Gap in PDS

目前PDSS系统在功能性上的缺陷(相比于明文数据库):

  • 1.关系代数方面
    Support secure 笛卡尔积 using 𝙲𝚞𝚜𝚝𝚘𝚖 and 𝙾𝚋𝚕𝚒𝚟 approaches(Legacy scheme支持),也就是支持join
  • 2.关联数组方面
    • Incorporate secure computation into protected search systems to support array (+, ×),怎么安全地支持数组的加和乘
    • Support protected queries to output the minimum of two strings.,python中的min函数?涉及到字符串比较
  • 3.线性代数方面
    • Support efficient secure matrix multiplication and storage.(storage指Access patterns????)

3.From Queies to database systems

image-20221102154254828

这章主要介绍以下内容:

  • 如何将PDS转换为完整的数据库。

  • 使用工具对PDSS进行性能分析,总结PDSS的性能依赖于哪些因素

  • 对现有的PDSS技术进行总结,并指出相应的open problems

3.1 Controls, Rules and Enforcement

一个完成的数据库安全性要有如下控制:access control, inference control, flow control, and data encryption

  • access control

    • 强制访问控制
    • 自主访问控制
  • Inference control

  • Flow control
    ensures that information in an object does not flow to another object of lesser privilege

  • Data encryption
    used for transmitting data from the database back to the client and user.

  • query control
    limits which queries are acceptable, not which objects are visible by a user,比如有些查询必须指定查询字段不少于5个,以便精确查询
    Most current protected search designs do not consider either an authorizer or enforcer.

3.2 Performance Characterization(性能描述)

  1. 评测的标准
  • 1.integrity of responses and modifications
  • 2.query latency and throughput under a wide variety of conditions.(查询的延迟和吞吐量)
  1. PDSS的性能依赖

注:这里的性能依赖是指response time

  1. Network capacity, load, and number of records returned
    by a query.(PDS的话相对于五保户措施表的数据库,要多一些网络流量沟通)

  2. The ordering of terms and subclauses within a query.(现在PDS没考虑这个,只考虑query type去了)

  3. Existence and complexity of rules (query policy and
    access control)。PDS通常使用多方计算来评价这些rules,开销很大

  4. 用户体验表现

  5. 用户更关心response time的预估(给个准信),而不是缩短response time.

  6. 用户感知到protected system比unprotected system慢(不愿意做现有的数据库迁移)

  7. 用户希望性能和记录的树目和query的长度相关。(目前是和query type相关)

3.3 现有的Protected Search Databases

现有的PSS评价标准:

  • Security: information that is revealed, to an attacker with access to the database server
  • Functionality: query types that a protected database can answer
  • Performance and usability:database’s data structures and indexing mechanisms, as well as required computational and network cost.
image-20221102154430015
  1. 技术方案一: Relational Algebra without Cartesian product
  • 支持的DB:CryptDB, Blind Seer, OSPIR-OXT, and SisoSPIR
name 泄露 适用场景
CryptDB statistics about the entire dataset’s value on this column
Blind Seer and OSPIR-OXT 露给server data returned by the query 查询内容占数据库的小部分场景
SisoSPIR 适用于查询内容占数据库的大部分场景,不支持boolean查询
  1. 技术方案二: Full Relational Algebraproduct

只有CryptDB支持

  1. 技术方案三: Associative Array - NoSQL Key-Value
- -
支持的数据库 Arx,Blind Seer, OSPIR-OXT, and SisoSPIR
缺陷 只考虑查询效率,insert rates of Blind Seer, OSPIROXT, and SisoSPIR相对小很多(插入要大范围改变index)
open problems 1.Construct 𝙲𝚞𝚜𝚝𝚘𝚖 and 𝙾𝚋𝚕𝚒𝚟 techniques that can handle millions of inserts per second.
2.Construct protected search systems that leverage distributed server architectures.(同步是个问题,因为各个server都对他们处理的数据和操作一无所知)
  1. 技术方案四: Linear Algebra and Others

No current protected search system supports the linear algebra basis used to implement complex graph databases. 没有能支持的!

  1. PDS的固有缺陷
  • 1.会造成系统的可见性降低,显而易见,许多设计决定比如index,需要在把数据存在server之间决定好
  • 2.数据库难以管理和审计,比如说有database的恶意函数出问题了,因为不可见性,难以进行debug或者检查日志

4.Conclusion and Outlook

  1. 大部分产品基于Legacy, Custom和Oblivious scheme会有好的前景的
  1. For PDSS, there is currently no dominant solution for all use cases
  1. Advice for designer:

a) developing base queries that are useful in many applications

b) understanding how to combine queries to support multiple applications

c) rapidly applying techniques to emerging database technologies

6.思考

Question:

  • Access pattern in Oblivious
  • provider可能获取到query和rules?
  • Identifiers如何理解
  • security definition,leakage profile, security proof之间的关系(见1.1-2)
posted @ 2022-11-03 09:43  gentleNight  阅读(161)  评论(0编辑  收藏  举报