透明数据加密概述
所有文档
menu

向量数据库 VectorDB

透明数据加密概述

向量数据库支持透明数据加密(Transparent Data Encryption,简称TDE),对数据文件进行实时加密和解密,保护用户数据隐私,本文介绍向量数据库的透明加密概念和原理。

什么是数据透明加密

透明数据加密指对数据文件执行实时I/O加密和解密。通过在数据库层执行静态数据加密,防止攻击者直接从磁盘中获取用户存储的明文数据。经过数据库身份验证用户可以继续透明地访问应用数据,用户不需要修改配置以及应用代码。

相关名词说明

透明:数据库在将数据写入时自动加密,在数据读取时自动解密。

数据加解密:指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。向量数据库支持AES和SM4算法。工作模式为计数器模式CTR,用于提高数据的随机读取速度。

加密密钥(Key Encryption Key,简称KEK):可使用KMS服务密钥或用户自定义密钥(MasterKey),用于保护数据密钥。可由用户导入。用于生成数据密钥

数据密钥(Data Encryption Key,简称DEK):透明加密使用的密钥由KMS产生和管理,用于加密或解密数据。向量数据库会存储数据密钥的密文(明文通过KEK加密之后得到密文),在使用时传到KMS解密得到明文,将明文存储在内存中使用。向量数据库不直接提供加密所需的密钥和证书。

透明数据加密的优势

表级加密粒度:支持对表级别进行TDE加密和解密。

性能损耗低:开启TDE功能后,性能影响小。

加密解密流程

所有加密解密操作均在内存中进行,在数据进行IO时,将数据进行加密写入磁盘。避免攻击者侵入向量数据库OS时直接读取磁盘数据而产生的数据泄露问题,数据库的使用方式保持不变,不会造成易用性下降的问题。

数据库启动时会将DEK的密文通过KMS的MasterKey解密,解密后得到DEK的明文,而后直接在数据库启动时放在内存中,不会存储任何关于DEK的明文,用于数据写入读取时的加解密。

kms.drawio (1).png

上一篇
多用户与RBAC权限管理机制
下一篇
生态组件