软硬融合全密态功能是在密态等值查询的基础上,结合硬件机密计算技术,进一步实现密文数据的多种计算和查询功能,包括大小比较、数学运算、聚集函数计算等操作,丰富并完善密态数据库的功能,提升语法支持度。硬件方案主要依赖利用可信执行环境(Trusted Execution Environments,TEE)技术。该类技术通过在服务器上构建一个隔离且安全的容器环境Enclave,保证Enclave内计算和数据的机密性,从而可以安全地对密文进行解密后直接在明文上进行计算。使得攻击者即使在数据运行态也难以获取用户真实信息,从而提供更全面、更完整的数据隐私和安全的保护,总体架构如{REF _fig1378822025018 \r \h \* MERGEFORMAT |图4}所示。
目前的软硬融合全密态,暂未适配任何的安全硬件能力,仅作为密态等值查询的一个逃生通道使用,同时为未来升级到安全硬件方案做准备。在该逃生通道中,会将密钥传输到数据库中,在内存中对数据进行解密,从而实现密文字段的多种计算、查询功能,包括范围查询、排序等操作。

密钥传输安全通道
软硬融合全密态需要将密钥传输到可信执行环境TEE中,而密钥传输安全通道可以通过使用RSA非对称加密算法和ECDH密钥协商算法对密钥传输通道进行保护。在每次密钥传输前,服务端的内存加解密模块生成RSA私钥和公钥,分别用于签名和客户端验签;客户端驱动和内存加解密模块使用ECDH协商出传输密钥。客户端驱动使用协商出来的传输密钥对数据密钥(CEK)进行加密并传输到服务端。待加密密钥传输完成后,销毁ECDH密钥和RSA密钥。
内存加解密模块运算框架
目前的软硬融合全密态,暂未适配任何的安全硬件能力,仅作为框架为未来升级到安全硬件方案做准备。在安全硬件方案中,数据传入TEE后,可以安全地对密文进行解密后直接在明文上进行计算。而内存加解密模块运算框架则是在数据传到内存中,对密文进行解密后直接在明文上进行计算。内存加解密模块运算框架主要包括两个部分,第一部分是运算内存管理,第二部分是密文运算算子调用。运算内存管理使用session级别变量,在密钥传输之前创建运算内存,在用户清理密钥或者session退出时,会自动清零该内存。密文运算在语法解析的时候识别并标记运算算子为密文算子,在函数执行的时候根据具体的运算类型调用运算函数并返回结果。
密文运算算子
在内存加解密模块运算框架中,需要调用不同运算算子执行不同的运算,目前软硬融合全密态仅支持数据排序和范围查询功能。在内存加解密模块中的执行流程包括:解密数据、进行计算、返回计算结果。如果计算结果是布尔值,则不需要加密;如果是字符串、数值类型,则需要对返回值进行加密后再返回。
浙公网安备 33010602011771号