全密态数据库等值查询

伴随着云基础设施的快速增长和成熟,与之对应的云数据库服务也层出不穷。云数据库俨然已成为数据库业务未来重要的增长点,绝大多数的传统数据库服务厂商正在加速提供更优质的云数据库服务。但无论是传统的线下数据库服务,还是日益增长的云数据库服务,数据库的核心任务都是帮助用户存储和管理数据,在复杂多样的环境下,保证数据不丢失、隐私不泄露、数据不被篡改,同时服务不中断。这就要求数据库具有多层次的安全防御机制,用来抵抗来自多方面的恶意攻击行为。通过成熟的安全技术手段,构建数据库多层级安全防御体系,保障数据库在应用中的安全。因此,为了更好的保护敏感和隐私数据,特别是针对云数据库服务,急需一种能在服务器端彻底解决数据全生命周期隐私保护的系统性解决方案,该方案被称为密态数据库解决方案。

  • 密态数据库总体方案

    密态等值查询属于密态数据库第一阶段方案,但是遵从密态数据库总体架构。密态数据库的总体架构示意图如图5所示。密态数据库的完整形态包括密码学方案和软硬结合方案。

    图 5 密态数据库总体架构

    f30587e29758b9f63fe69274677df7a3.png

    由于密态等值查询仅涉及到软件部分,仅需集成密态数据库总体架构的软件部分,其总体实现方案如图6所示。

    图 6 密态等值查询总体方案

    c79c8e9d4818528158c3af451f44c7c5.png

    从总体流程上来看,数据在客户端完成加密,以密文形式发送到openGauss数据库服务侧,即需要在客户端构建加解密模块。加解密模块依赖密钥管理模块,密钥管理模块生成根密钥(RK, Root Key)和客户端主密钥(CMK,Client Master Key)。有了CMK,可以通过SQL语法定义列加密密钥(CEK,Column Encryption Key),CMK由RK加密后保存在密钥存储文件(KSF,Key Store File)中,CMK和RK由KeyTool统一管理;CEK则由CMK加密后存储在服务端(加密算法使用对称加密算法AES256)和国密算法SM2。

    客户端依据生成的CEK来对数据进行加密,数据加密算法主要使用对称加密算法AES算法(包括AES128和AES256)和国密算法SM4。加密后的数据会存放在数据库服务端,经过密文运算后服务端返回密文结果集,并在客户端完成最后的解密,获取最终结果。

    用户根据业务需要对数据定义加密属性信息(被加密的列被称之为加密列),对于不需要加密的数据则按照原有明文格式发送至服务端。当查询任务发起后,客户端需要对当前的Query进行解析,如果查询语句中涉及加密列,则对对应的列参数(加密列关联参数)也要进行加密(这里说的加密均需要为确定性加密,否则无法支持对应的查询);如果查询语句中不涉及加密列,则直接发送至服务端,无需额外的操作。

    在数据库服务侧,加密列的数据始终以密文形态存在,整个查询也在密文形态下实现。对于第一阶段密态等值查询解决方案,需要采用确定性加密,使得相同的明文数据获得相同的密文,从而支持等值计算。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值