GaussDB技术解读——GaussDB架构介绍之安全关键技术方案
安全关键技术一:密态等值查询密态等值查询属于密态数据库第一阶段方案,但是遵从密态数据库总体架构。密态数据库的总体架构示意图如下图所示。密态数据库的完备形态包括密码学方案和软硬结合方案。
https://i-blog.csdnimg.cn/direct/2a52f4882d8c4aea9b960235523a1d88.png
图8 密态数据库总体架构
由于密态等值查询仅涉及到软件部门,仅需集成密态数据库总体架构的软件部门,其总体实现方案如下图所示。
https://i-blog.csdnimg.cn/direct/cb24bdf88f74413e96ea508455e40071.png
图9 密态等值查询总体方案
从总体流程上来看,数据在客户端完成加密,以密文形式发送到GaussDB Kernel数据库服务侧,即需要在客户端构建加解密模块。加解密模块依赖密钥管理模块,密钥管理模块生成根密钥(RK, Root Key)和客户端主密钥(CMK,Client Master Key),有了CMK,可以通过SQL语法定义列加密密钥(CEK,Column Encryption Key)。其中,CMK由RK加密后保存在密钥存储文件(KSF,Key Store File)中,与RK一起由KeyTool同一管理;CEK则由CMK加密后存储在服务端,加密算法利用AES128和AES256。
按照原有明文格式发送至服务端。当查询任务发起后,客户端需要对当前的Query进行解析,如果查询语句中涉及加密列,则对对应的列参数(加密列关联参数)也要进行加密(这里说的加密均需要为确定性加密,否则无法支持对应的查询);如果查询语句中不涉及加密列,则直接发送至服务端,无需额外的操作。
在数据库服务侧,加密列的数据始终以密文形态存在,整个查询也在密文形态下实现。对于第一阶段密态等值查询解决方案,需要采用确定性加密,使得相同的明文数据得到相同的密文,从而支持等值计算。
按照用户利用的流程,整体设计思路将围绕用户的利用步调展开,即整个Use Case被切分成三部门。具体如下:
生成客户端主密钥:用户需要在本地部署密钥管理工具(KeyTool),通过密钥管理工具相关指令来管理密钥,如创建或删除密钥;当前该工具底层集成华为公司KMC组件,生成的主密钥通过KMC进行保存和管理,并返回密钥信息给用户,方便后续调用和管理;
记载CMK与CEK信息,在体系创建加密表:有了阶段1中生成的密钥信息后,为数据库设计专门的密钥创建语法,包括设计新的主密钥(CMK, Client Master Key)和列加密密钥(CEK, Column Encryption Key)语法;通过内核接口访问KeyTool中存储的主密钥并记载在体系中,列加密密钥则由主密钥在客户端完成加密后存储在数据库服务端;数据通过列加密密钥完成在客户端的加密,然后传输到服务端。为了做到查询对用户的透明,需要基于当前已有的创建表语法进行改造,紧张进一步增强列的option信息;
完成密态等值查询:为了完成密态等值查询需要在客户端和服务端完成共同设计。其中在客户端需要设计轻量级的解析模块,完成对查询语句的解析,定义密态等值查询所支持的规格。在客户端解析模块,需要辨认全部涉及的属性是否包含加密列信息,如果不涉及则直接返回并将查询发送到服务端,如果涉及加密列,则需要按照对应的列加密密钥和加密算法加密参数信息,然后发送查询任务到服务端。在服务端,需要在优化器和执行器的各个执行逻辑过程中完成功能适配,特殊的,数据在经过加密后,存储的数据类型发生变动,在服务端需要根据新的存储类型进行查询任务执行。
安全关键技术二:账本数据库
防篡改数据库的整体方案如图1所示,其终极形态是多个数据库之间的多方共识体系。我们基于GaussDB Kernel数据库,从存储层、应用层和传输层进行改造和增强。存储层为防篡改用户表增加校验信息,作为篡改校验的基础本领;应用层提供高效篡改校验接口,利用高性能校验算法,可以或许快速辨认出用户表、用户汗青表以及全局区块表的同等性,有效辨认篡改行为;传输层增加多方共识执行接口,并内置CFG、BFT等共识算法,使得体系中,每一次对防篡改用户表的修改都需要取得大多数参与方的认可和记载,保证核心数据的防篡改、可追溯。
https://i-blog.csdnimg.cn/direct/43b2c4ff1e4042cdbae22e410403c12f.png
图10 防篡改数据库总体方案
账本数据库属于防篡改数据库第一阶段方案,是防篡改数据库的单集群形态,紧张是实现了存储层、执行层的功能,提供了用于防篡改校验数据以及高效篡改校验算法。账本数据库作为防篡改数据库整体方案的基础功能和核心本领,需要精密结合内核并利用分布式数据库的执行框架和通信流程。
我们采用schema对防篡改用户表和普通表进行隔离。用户在防篡改schema中创建的表会成为防篡改用户表,防篡改用户表与普通表最大的差别是防篡改用户表会在创建时自动添加名为hash的体系列。hash列在用户插入数据时,自动通过单向加密哈希算法生成。同时在创建防篡改用户表时,会在blockchain体系schema中创建与之逐一对应的用户汗青表。用户对防篡改表进行DML操作,造成的行级数据更改记载会记载在对应的用户汗青表中,同时会将sql语句记载在全局区块表中,作为操作的记载。防篡改用户表、用户汗青表、全局区块表中的hash择要信息可以相互校验,如果校验通过,则视为用户表未被篡改。
需要特殊分析的是,我们通过判定数据的同等性来辨认篡改行为,不能防止恶意用户从文件层同等的修改多个文件以及越权用户通过sql语句对用户表进行修改。
账本数据库的功能紧张分为三个部门:防篡改用户表的DDL和DML操作、防篡改用户表的同等性校验以及校验数据的归档和修复功能。
首先我们介绍防篡改特性的隔离级别,我们利用schema来隔离普通用户表和防篡改用户表。通过增加创建防篡改schema的语法: CREATE SCHEMA schema_name WITH BLOCKCHAIN,在防篡改schema中创建的表,均为防篡改用户表。
其次是用户表的DDL和DML操作,在创建防篡改用户表的过程中,紧张有两点修改:
[*] 对该表增加一个名为hash的伪列,该列类型为uuid16,该列记载和每一行数据的校验信息。
[*] 生成防篡改用户表对应的用户汗青表,用户表中记载了行级数据的修改记载。
以上内容为数据恒久化存取层(DataNode)关键技术方案、全局事件管理层(GTM)关键技术方案、集群管理层(CM)关键技术方案、OM运维管理关键技术方案和安全关键技术方案的相关内容,下篇图文将接着分享智能关键技术方案、驱动接口关键技术方案的精彩内容,敬请期待!
欢迎小伙伴们交换~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]