什么是密态数据库?

密态数据库的目标是在执行查询操作时最大限度地保护用户的隐私。当用户提交查询请求时,数据库系统不会直接操作明文数据,而是在加密的数据上执行查询操作。数据库系统无法获知查询操作的明确意图,因此无法推断出用户的隐私信息。查询结果在加密的状态下返回给用户,用户再使用相应的密钥进行解密。

密态数据库困难问题

密态数据库的关键在于在保护隐私的同时保持查询的有效性和可用性。这需要使用特定的加密方案和协议来确保查询操作仍然可以高效地执行,并返回正确的结果。

知名的密态数据库产品

  • 华为 GaussDB
  • 安华金和
  • APache Doris 和 MongDB 中也有少量功能实现。

密态数据库的常见实现方案

  • 前置代理组件
  • 触发器实现
    利用Mysql的常见数据库的触发器功能实现。
  • 后置安全模块
    要求用户输入密文查询,学习成本高,交互复杂。

评估密态数据的指标

  • 安全性
  • 时间性能
    主要是查询的效率,例如QPS等
  • 空间开销
  • SQL语句的支持情况
    能否让用户像使用正常的数据库一样使用密态数据库

密态数据库的交互流程

  1. 用户输入普通的SQL语句;
  2. 前置代理组件解析重构SQL,转换为可以检索密文的SQL语句;
  3. 数据库执行SQL语句,进行检索,输出密文数据;
  4. 前置代理组件解密密文,输出明文数据,返回给用户。

密态数据库的核心技术

  • 洋葱加密
    这是CryptDB中使用的技术。
  • 可搜索加密
    在对数据加密的同时,保障密文数据的可搜索性。无需对密文全部解密后,再明文数据进行搜索。