暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

海量智库第17期 | 数据库全密态技术解读

海量数据 2023-08-18
1155

简介

...



全密态是一种能在数据库服务器端彻底解决数据全生命周期隐私保护的系统性解决方案,该方案被称为密态数据库解决方案。方案的核心思路为数据离开客户端时,在用户侧对数据进行加密,以密文的形式发送给服务端,数据在服务端全程以密文的形式存储且不影响服务端的检索与计算,从而实现数据保护。数据的密钥由用户侧保管,数据库管理员也无法获取明文数据,服务端数据即便是被窃取也无法获取明文。



实现

...



全密态数据库在学术界和工业界均有研究和尝试,主要有两种解决方案:


(1)密码学解决方案,或称为纯软解决方案,通过设计满足密文查询属性的密码学算法来保证查询的正确性,如已知常见的OPE(Order Preserving Encryption)算法,数据加密后仍保留顺序属性。

(2)硬件方案,通过可信执行环境(TEE, Trusted Execution Environment)来处理REE(Rich Execution Environment,REE与TEE相对应)环境中的密文数据运算。


Vastbase全密态目前使用纯软件方案,而且当前只实现了密态等值查询。



架构

...


整体架构



如上图,客户端增加了加密驱动模块,该模块集成在数据库的jdbc和libpq驱动中。加密驱动包含密钥管理、密钥运算、sql语句解析和替换功能。实现完全自动化的敏感信息加密替换,同时在数据库服务端中存储了所有加密相关的元信息。sql语句中的敏感信息相关的参数,会被加密处理,保证查询任务不会泄露用户查询意图。



密钥体系


全密态使用三层密钥机制,最终支持列级别加密。密钥管理模块生成根密钥(RK, Root Key)和客户端主密钥(CMK,Client Master Key)。有了CMK,可以通过SQL语法定义列加密密钥(CEK,Column Encryption Key),CMK由RK加密后保存在密钥存储文件(KSF,Key Store File)中,CMK和RK由密钥管理模块统一管理,CEK由CMK加密后存储在服务端。



1

Vastbase全密态目前只支持vsql(libpq)和jdbc,不支持odbc。

2

密钥管理代码中支持gs_ktool/huawei_kms/localkms,但是实际目前只支持localkms,底层使用openssl实现。

3

cmk加密默认使用aes256算法,cek加密支持rsa和sm2算法,列数据加密支持sm4、aes128、aes256算法。

4

由于需要支持的是密态等值查询,因此列数据加密算法必须是确定性算法,即就是使用该算法对相同的明文生成的密文也是相同的。


语法解析器 


全密态在客户端增加了一个轻量语法解析器,这个轻量级的解析器复用了服务端原有的解析器。用户输入语法后,如INSERT、SELECT等语法,客户端解析器进行词法和语法解析,获取到明文值及其位置,而加解密驱动则自动将明文替换为加密后的密文,然后将查询语句发送到服务端,此时在网络传输过程以及存储在数据库中的数据都是密文数据。在服务端将执行密文结果返回给客户端后,客户端加解密驱动自动将返回的密文数据进行解密并返回给用户。用户只能感知到输入的语法,获取到了明文的返回结果,对全程加密的整个流程并无具体的感知,而且语法和非密态数据的操作是完全相同的。全密态支持对函数和plpgsql内语法解析。



示例

...



1

通过vsql使用全密态时指定-C参数,否则不支持全密态功能。vsql -d vastbase -r -C

2

创建客户端主密钥(cmk)

3

使用cmk创建列加密密钥(cek)

4

创建加密表并插入数据,查询表数据为明文

5

更换为非全密态客户端或者其他客户端登录,查询表数据为密文


稿件提供 | 研发部门

图文编辑|程筱淇

内容审核|市场营销部


于海量数据

北京海量数据技术股份有限公司(股票代码:603138.SH)成立于2007年,是国内首家以数据库为主营业务的主板上市企业。公司十余年来秉承“专注做好数据库”的初心,始终致力于数据库产品的研发、销售和服务。核心产品海量数据库Vastbase系列、数据库一体机Vastcube系列、海量大数据Datalink系列,全栈国产化,应用满足度高,目前广泛应用于政务、制造、金融、通信、能源、交通等多个重点行业,已成为国产企业级数据库的首选之一。



文章转载自海量数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论