资讯详情

资讯详情

INFORMATION DETAIL

技术分享:全密态数据库保序加密技术分析

2023-08-18 14:55:26

一、技术背景

数据库的核心任务是数据资产的管理,包括数据的分类、组织、编码、储存、检索和维护。在数据信息爆发式增长的今天,数据库承担了越来越多的数据处理与分析职责,以数据赋能的形式不断促进应用创新,助力数字化发展进程。

全密态数据库是一种用于存储和管理密文数据的数据库管理系统。它将数据以加密形式存储在数据库中,要求能够在密文状态下支持各种CRUD操作(创建、读取、更新、删除),并在密文状态下完成数据的存储、计算、检索和管理。与此同时,它集成了传统数据库的功能,包括语法解析、事务ACID等。

传统的加密方式会破坏数据的顺序关系,导致无法直接进行基于顺序的查询操作(如范围查询、排序操作等)。保序加密则能够在加密的同时保留数据的顺序信息,使得在加密数据上仍然可以进行有序查询操作,从而方便地进行范围查询、排序和比较等操作。

贝格迈思在研发以智能数据库AiSQL为核心的新一代自适应数据智能平台BigInsights中,充分运用了全密态数据库的保序加密技术,优化实现了数据可查询加密等先进功能,持续迭代数据库产品,不断进行数据库产品的优化。

本文对比分析了不同场景下的保序加密技术,旨在为数据库保序加密的实践提供思路。

二、数据库保序加密概念及需求

数据库作为数据资产的重要管理平台,其安全性尤为重要,数据库安全是确保数据库中存储的数据免受未经授权的访问、篡改和泄露的一系列措施。在数据库安全技术簇中,数据库加密是数据库安全的最后一道防线,能够从根本上杜绝数据盗库、内部泄密等安全事件。

为了在加密数据上进行比较和查询,一般有以下几种方法:

1、在进行数据访问时将敏感数据完全解密,然后基于明文数据进行查询和搜索操作;

2、使用同态加密技术,主要用于数值型数据的四则运算,将密文的计算结果返回给客户端后,客户端可以解密出对应明文的计算结果;

3、采用保序加密技术,在密文上进行排序和比较,从而同时实现加密和保证安全性。

然而,第一种方法存在严重的效率问题,同时安全性较低,可应用性较差。第二种同态加密方法,全同态可以支持各种四则运算,但最新的算法性能仍然难以满足数据库应用的需求。部分同态支持部分运算,有较好的性能,但无法一个表达式中包含多种运算符的需求。相对而言,第三种方法综合考虑了安全性和效率成本,并被认为是一种可行的方案。因此,本文将重点讨论不同保序加密技术的优缺点及区别,讨论其安全性等。

三、保序加密技术概览及分类

保序加密是一种特殊的加密技术,它能够在对数据进行加密的同时,保持原始数据的排序序列。通常情况下,传统的加密算法会将明文转换成乱序的密文,导致无法按照原始数据的顺序进行排序和比较操作。保序加密则通过特殊的算法和机制,使得加密后的数据仍然保持与明文数据相同的排序顺序,以支持范围查询和比较的工作。

其中,保序加密还可以分为OPE(Order Preserving Encryption)保序加密、专用索引保序加密和揭示顺序加密三类。此外,还有一种可信执行环境(Trusted Execution Environment,TEE)的技术,可以在 TEE 中进行实现包括保序在内的加密功能。

1、OPE保序加密

OPE保序加密通常使用某种形式的置换或映射来重新排列数据,以隐藏原始数据的真实值。这样一来,加密后的数据保留了明文数据的相对大小关系,但没有直接泄露敏感信息。

如图1所示为一种OPE保序加密的映射方法,横坐标是明文域,纵坐标是密文域,密文域要比明文域大。明文在保证顺序的情况下,将随机映射到密文域中。在二维坐标系中,这些点的连线是一个单调递增的函数。

图1 保序加密明文密文映射关系

这种保序加密可能会引入一些计算和存储开销。为了进行搜索和排序操作,可能需要进行更复杂的计算。此外,由于数据的重新排列,加密后的数据可能会占用更多的存储空间,且不防选择明文攻击,且暴露明文间部分距离信息。

2、专用索引的保序加密

在保持数据排序性质的同时,使用额外的索引结构来支持排序和搜索操作。相比于OPE保序加密,专用索引的保序加密不需要设计专用的加密算法。在构建带索引的保序加密方案中,对明文数据采用传统的加密方法(SM4)进行加密,在加密数据的同时建立一个保序索引,用来在密文状态下对数据进行范围查询。

专用索引的保序加密也可分为以下几种:

(1)基于排序技术的索引构建方法

此类方法通过对加密数据进行排序,并构建基于排序的索引结构,例如平衡二叉树、B+树等。排序过程需要确保按照保序加密的准则进行排序,以保持数据的排序关系。这样可以在密文状态下快速进行范围查询操作。

基于二叉树简历索引:

mOPE (mutable Order Preserving Encoding) 是一种基于二叉搜索树的保序编码算法,用于在加密数据的同时保持数据的顺序关系,其数据结构如图2所示。mOPE 的基本思想是将待加密的数据按照二叉搜索树的节点位置进行编码,然后使用确定性的加密算法对数据进行加密。

图2 mOPE数据结构

具体过程如下:

构建一个二叉搜索树,并将明文数据作为树节点的值。根据节点值的大小关系,将数据按照树节点的左右子树进行排序。使用任意确定性的加密算法对每个数据进行加密。加密后得到的密文将与其对应的编码值一起存储。将存储的加密数据和编码的内容存储在云服务器上。在服务器上,只有密文和编码信息,不会暴露原始明文数据。

对于查询操作,可以通过在加密状态下进行比较来判断两个密文的大小关系,从而实现按顺序搜索和范围查询。并且,由于采用了二叉搜索树的编码方式,即使在新增数据时,也可以根据树的结构快速找到合适的编码位置,不影响原有的数据顺序。这种方式的优点是支持动态插入新数据,同时保持顺序关系和查询性能,缺点则是开销大且索引维护的成本较高,且只适用于数据量比较小的场景,应用在数据库中有一定的限制。

(2)基于哈希技术的索引构建方法

即使用哈希函数对加密数据进行映射,构建基于哈希的索引结构,以便快速定位目标数据段并进行解密处理。例:基于分桶思想构建索引的方法,分桶思想是在构建索引时,将数据划分为多个桶,并使用哈希函数将数据映射到对应的桶中。这样可以快速定位目标数据段,并进行进一步的处理和查询操作。如图3所示,将数据的取值空间随机分为若干段,每段即为一个桶。对每个桶进行标号,每一个标号就为一个关键词,每个数据所在桶号就是本数据对应的关键词,即其索引号。

图3 桶划分思想

桶划分技术在查询时会引入冗余。不属于查询区间的数据也可能包含查询的值,从而被作为检索结果返回,造成通信量和计算量的浪费。

3、顺序揭示加密(ORE)

顺序揭示加密(Order Revealing Encryption,ORE)的设计原则是将明文的顺序信息嵌入到密文中,同时保持加密后的密文的机密性。它可以用于构建带有排序索引的加密数据库,使得在加密状态下可以进行高效的搜索和排序操作。

顺序揭示加密是一种接近于同态加密的技术方案,它可以在密文上直接进行大小比较运算,并且具备密码学安全性。目前,揭序加密主要采用双线性映射或伪随机函数进行构造。双线性映射方案能够提供理想的安全性,但运算开销较大,实际应用上存在一定的限制。相比之下,伪随机函数具有更高的检索效率,但会泄露部分比特信息。此外,揭序加密方案也面临明文扩张的问题,在实际应用中需要有所考虑。它需要服务端需要对整个基于ORE的索引进行线性扫描,以进行范围查询,所以是线性复杂度的,性能较差,难以在数据库场景实际使用。

4、可信执行环境(TEE)

基于可信执行环境(Trusted Execution Environment,TEE)的技术,在服务器端使用TEE技术,划分出一个安全的执行子系统。数据在用户侧加密后传入数据库管理系统,数据库引擎仅可见密文,引擎将密文交给TEE,在TEE中解密为明文完成计算,再加密返回数据库服务器,最后返回客户端,在客户端解密出明文。实现了端到端的数据强安全性。

相比于前述基于纯密码学工具,基于TEE能提供更丰富的功能和更好的性能,避免了复杂且功能受限的密码学方案设计,且性能较优。基于TEE需要将一部分数据库的功能和机密数据放到TEE中执行,所以对数据库内核进行改造以支持较好的性能。

通常使用TEE技术的厂家,也会支持一部分纯密码学工具,以满足部分用户高安全性的需求。使用TEE实现加密,可以在受保护环境中实现保序加密的所有需求。TEE 提供了对加密数据的安全计算能力,以防止关键数据泄露或被非授权的方式使用。

基于可信硬件的加密数据库具备以下优点:首先,TEE内部能自然地保护数据的私密性和完整性。其次,TEE提供更丰富的功能和更好的性能,避免了复杂且受限制的密码学方案设计。例如,在使用OPE/ORE加密方案时,只能进行范围查询,无法支持数据库查询中的所有运算符。而基于可信硬件的方案则避免了构建复杂的密码学方案,可以直接在可信硬件内部进行安全可信的明文处理。相对而言,可信硬件能够支持更复杂的加密数据查询和计算,并且具备更优的性能。

可信硬件给加密数据库带来灵活、高效计算性能的同时也面临着诸多问题。

首先,TEE 的实现通常需要特定的硬件支持,如安全处理器或可信执行环境。这意味着不是所有设备都能够支持 TEE,这可能限制了其广泛应用。另外,TEE 的安全性主要依赖于具体的实现和配置。如果实现过程中存在漏洞、错误配置或不当使用,可能会导致安全性风险。因此,必须仔细评估和管理 TEE 实施的安全性。

另一方面是可信硬件在设计时没有考虑侧信道攻击,比如Intel SGX明确表明不防御侧信道攻击。虽然这些攻击需要的条件较为苛刻,但也一定程度地影响了TEE的安全性。其次,如果运行在TEE内的代码本身存在漏洞,则仍可以被攻击者利用,破坏数据库的安全性。

四、对比总结

本文通过对不同保序加密技术的介绍,分析了其优缺点、安全性等,总结如下:

图4 保序加密技术比较

通常情况下,OPE保序加密和基于哈希技术的保序加密都具有较高的安全性和简单的实现方式,适用于大多数场景。但是基于排序技术的保序加密更适用于安全要求高、数据量较小的场景,并且在数据库中使用时有一定限制。顺序揭示加密适用于对存储空间要求不敏感、安全性要求高的场景,但可能会存在性能问题,并且难以直接应用于数据库场景。相比之下,基于硬件的TEE技术可在多种场景下应用,包括加密数据库等。

五、小结

这篇文章我们简要介绍了保序加密技术及其相关概念,通过对不同保序加密技术的对比和分析,总结其优缺点和针对数据库的使用场景。同时,对全密态数据库的安全性、可检索加密的实现,仍然有较大的探索空间,值得我们进一步探究。

贝格迈思作为行业的技术先锋,自主研发了以赋能人工智能的智能化数据库AiSQL为核心的新一代自适应数据智能平台BigInsights;不断迭代其功能和性能,开发多种支持智能决策的数据库应用产品,持续打造数据应用生态。

展望未来,贝格迈思将继续保持开放创新的心态,发布更多数据库核心技术,与业内同仁共享经验。我们期待与各位专家一起,推动数据库技术在支持决策分析、业务智能等领域的应用与发展!

参考文献:

1. Hoeteck Wee, Huijia Lin, Elaine Shi, Daniel Genkin, Yuval Ishai,Order-Revealing Encryption: New Constructions, Applications, and Lower Bounds, IACR ePrint Archive ,2014.

2. K.Ren et al., "HybrIDX: New Hybrid Index for Volume-hiding Range Queries in Data Outsourcing Services," 2020 IEEE 40th International Conference on Distributed Computing Systems (ICDCS), Singapore, Singapore, 2020, pp. 23-33, doi: 10.1109/ICDCS47774.2020.00014.

3. R.A. Popa, F. H. Li and N. Zeldovich, "An Ideal-Security Protocol for Order-Preserving Encoding," 2013 IEEE Symposium on Security and Privacy, Berkeley, CA, USA, 2013, pp. 463-477, doi: 10.1109/SP.2013.38.

产品与服务

解决方案

资源中心

关于我们

联系方式

深圳市南山区粤海街道高新南七道国家工程实验室大楼A1402

0755 - 8670 1822

贝格迈思微信公众号

仅在办公网络环境可见