高质量专项 全密态机密计算
目录 目录 1 架构 1.1 整体架构 2 流程 2.1 整体流程 3 设计 3.1 驱动加密 3.2 机密计算 一、技术调研 二、方案对比 4 接口 5 实现 1 架构 1.1 整体架构 全密态数据库是一种由数据库提供的安全特性,指数据库在处理数据的过程中,确保数据在传输、计算、存储等全生命周期阶段,于任何不可信的介质或环境中,始终处于加密状态。不可信环境包括:网络、内存、磁盘等。以常见的拓扑模型为例,在使用数据库的过程中,威胁面较广: 全密态数据库中,对于传输、存储安全,采用驱动加密方案。应用向数据库发送数据时,先在驱动中加密数据,再发送数据密文。应用从数据库接收数据时,先接收数据密文,再在驱动中解密数据。数据在网络、磁盘、服务端内存中,均处于加密状态。基本架构如下图所示: 全密态数据库中,对于计算安全,采用机密计算方案。驱动加密方案,解决传输、存储安全,但是,数据库端无法在密文上计算。为解决计算问题,业界有两种方案: 基于密码学算法的密文计算方案:通过密码学算法,让数据库在直接在密文上进行计算,例如保序加密、可搜索加密、同态加密等 基于硬件隔离的机密计算方案:在CPU、内存中,划分逻辑独立的可信执行环境,让数据库在可信执行环境中解密数据密文,进行计算。 在充分对比安全性、功能完备性、性能、实现难度等特点,选择机密计算方案。结合驱动加密方案、机密计算方案,全密态数据库整体架构如下图所示: 全密态数据库中,对于加密模型,采用多级密钥方案。数据由数据密钥加密,密钥由主密钥加密,主密钥由根密钥加密。在驱动加密模块中,只能获取数据密钥,无法获取主密钥。在更安全的加密方案中,驱动加密模块无法获取数据密钥,由硬件加密机加密。在数据库端,仅存储密钥信息,无法获取密钥。全密态数据库加密模型如下图所示: 2 流程 2.1 整体流程 使用全密态数据库时,用户需定义主密钥、数据密钥、加密表,在执行存储、查询数据时,全密态数据库自动完成加密、解密、计算等操作。完整的使用流程如图所示: 3 设计 3.1 驱动加密 3.2 机密计算 一、技术调研 纯软路线 同态加密 软硬路线 x86 cpu sgx:硬件 tdx:硬件 固件 me:出厂自带 软件 sgx driver amd cpu sev:Secure Encrypted Virtualization,CPU扩展电路,为每台虚拟机分配内存密钥,运行时加密整段内存。需BIOS开启。 sev-snp/sev-es 固件 psp 软件 kvm sev arm cpu trust-zone:每个核新增总线, 固件 arm trusted fimware 软件 op-tee tee: https://github.com/OP-TEE/build ...