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.研究对象
-
对象定义
PDSS(Protected Database Search System)是一种支持各种数据库角色和操作的,参与方除预计的输出得不到任何信息的数据库系统。
1)server:只负责查询和处理数据,无法知道query和数据库中的数据
2)queryier:除了查询结果其他什么也知道不了
本质:how to balance tradeoff between data utility and data privacy in large data storage
-
研究场景 (所研究问题具体产生之处)
数据库系统面临的安全威胁主要有三方面:
Threat1: 信道的安全性,攻击者在网络上进行监听,安全方案为信道加密,比如TLS协议
Threat2: 后端数据库的安全性,攻击者获取到backend数据库(比如拖库),安全方案为对数据库进行加密
Threat3: database server的安全性,最难以解决的,server负责处理查询,返回数据,当攻击者是server的时候如何保证安全?
Threat3就是PDSS要解决的问题!
特别的,本文研究PDSS的范围如下:
- three-party scenario
three-party是指querier,server,以及provider(具体的细节见博文数据库基础知识),还有一种two-party场景是provider和querier是一个角色。
- semi-honest security against a persistent insider adversary
对攻击者的几个限定:semi-honest, persistent, insider,定义如下,攻击者模型:
-
entity上分
-
insider
在数据库中扮演某一个或者多个角色 -
outsider
不参与数据库的工作流程,监视合法用户之间的网络通信
-
-
行为上分类
- semi-honest adversaries
遵守既定的数据库工作协议,但是被动地尝试获取他们应当观测到的其他信息 - malicious adversaries
活跃地想采取行动得到数据库的额外信息或者赢影响系统运行(不会遵守数据库规则)
- semi-honest adversaries
-
生命周期上分
- persist
- persist for the lifetime of database
- snapshot
- obtain a snapshot at a single point time
- persist
2.研究目的
1. 告诉PDSS designers 目前以及未来的数据库技术发展,使得designer 可以致力于开发出适用于未来DBMS的安全技术
- 系统化总结现有PDSS实现技术的tradeoffs,以便安全人员根据自己的需求采取合适的PDSS技术
3.主要贡献
-
总结目前database search实现原语(basic queries&combined queries)
-
分析现有PDSS如何实现上述的search原语以及更加复杂的查询,并总结出功能上的缺陷
-
针对现有PDSS给出统一的leakage描述并评估现有的攻击手段
-
给出将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.研究内容
1.Leakage and Attacks
1.1 common PDSS leakage profiles
-
什么是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:
-
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更具体地描述系统哪里不安全以及不安全的原因。
-
-
为什么文章要提出自己的common leakage profiles
-
现有的security definition没有考虑到info leakage during or after a search??
-
现有的security definition基于各种假设和模型,无法进行安全性的比较
-
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,常见的攻击手段,同时对现有的攻击手段进行评价。
- 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): 数据库中一些字段的值,有哪些关键字等等
- Attack Techniques
大部分攻击手段基于以下两个事实:
1.不同的keywords对应着不同的records数目
2.大多数系统在rest的时候(就是指不query,在静态的时候)都有可能泄露记录中的Keyword的特征
什么意思呢,比如DET(determined encryption)的情况下,相同的keyword密文是一样的,这就告诉攻击者有些records中的字段是相等的
3.Attack techniques
下图展示了先有的攻击手段的总结,其中S leakage是指攻击能影响到PDSS需要的leakage的数量级。
一个例子: 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,攻击条件比较苛刻。
- 攻击总结
- 如果攻击者只能获得数据库的少量数据,或者只有一个snapshot的话,Custom泄露的信息比Legacy scheme要少一些。
- 目前攻击的缺陷
- 没考虑到捏造恶意的query,只想到了插入恶意数据(攻击者是server)
- 没考虑泄露的信息对qurier或者provider的意义(他们作为攻击者)
- 大部分只考虑Equaliy和range查询,没考虑布尔查询
- 鼓励数据库设计者实现Refresh功能,增加安全性
2.PDSS implementations
2.1 Base Queries
数据库的查询实现可以分为base queries和combined queries,后者是将前者组合完成更加复杂的功能,这一节主要内容就是把现有的PDS分成leacy、custom、oblivous三类,然后分别叙述这三类分别如何实现三种基本查询的。
- 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结合起来就可以实现布尔查询。
- equality: Deterministic encryption(DET)
- 实例
CryptDB - 优缺点
优点:(1)可以继承原有数据库优点,改进原有数据库,改动可以直接继承到安全保护的数据库;(2) 数据库的更新很方便
缺点:无法避免泄露大量的信息
- 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进行合并。
- 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)更新不方便。
- 几种方案的安全性特征
- 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进行排序的记录
- 实现方式:建立两个Index,假设范围是D,查询的属性是A,D中一个记录是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]
下面这张图总结了所有的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
这章主要介绍以下内容:
-
如何将PDS转换为完整的数据库。
-
因为数据库除了search,还有enforces rules, defines,data structures, and provides transactional guarantees
transactional guarantees:https://huaweicloud.csdn.net/63354fffd3efff3090b53ef4.html
-
-
使用工具对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.integrity of responses and modifications
- 2.query latency and throughput under a wide variety of conditions.(查询的延迟和吞吐量)
- PDSS的性能依赖
注:这里的性能依赖是指response time
-
Network capacity, load, and number of records returned
by a query.(PDS的话相对于五保户措施表的数据库,要多一些网络流量沟通) -
The ordering of terms and subclauses within a query.(现在PDS没考虑这个,只考虑query type去了)
-
Existence and complexity of rules (query policy and
access control)。PDS通常使用多方计算来评价这些rules,开销很大 -
用户体验表现
-
用户更关心response time的预估(给个准信),而不是缩短response time.
-
用户感知到protected system比unprotected system慢(不愿意做现有的数据库迁移)
-
用户希望性能和记录的树目和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.
- 技术方案一: 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查询 |
- 技术方案二: Full Relational Algebraproduct
只有CryptDB支持
- 技术方案三: 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都对他们处理的数据和操作一无所知) |
- 技术方案四: Linear Algebra and Others
No current protected search system supports the linear algebra basis used to implement complex graph databases. 没有能支持的!
- PDS的固有缺陷
- 1.会造成系统的可见性降低,显而易见,许多设计决定比如index,需要在把数据存在server之间决定好
- 2.数据库难以管理和审计,比如说有database的恶意函数出问题了,因为不可见性,难以进行debug或者检查日志
4.Conclusion and Outlook
- 大部分产品基于Legacy, Custom和Oblivious scheme会有好的前景的
- For PDSS, there is currently no dominant solution for all use cases
- 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)