一.全密态数据库特性简介
全密态数据库意在解决数据全生命周期的隐私保护问题,使得系统无论在何种业务场景和环境下,数据在传输、运算以及存储的各个环节始终都处于密文状态。当数据拥有者在客户端完成数据加密并发送给服务端后,在攻击者借助系统脆弱点窃取用户数据的状态下仍然无法获得有效的价值信息,从而起到保护数据隐私的能力。
二. 全密态数据库的客户价值
由于整个业务数据流在数据处理过程中都是以密文形态存在,通过全密态数据库,可以实现:
-
保护数据在云上全生命周期的隐私安全,无论数据处于何种状态,攻击者都无法从数据库服务端获取有效信息。
-
帮助云服务提供商获取第三方信任,无论是企业服务场景下的业务管理员、运维管理员,还是消费者云业务下的应用开发者,用户通过将密钥掌握在自己手上,使得高权限用户无法获取数据有效信息。
-
让云数据库服务借助全密态能力更好的遵守个人隐私保护方面的法律法规。
三.全密态数据库的使用
全密态数据库目前支持两种连接方式:gsql连接和jdbc连接。本章将从四个步骤详细介绍两种连接方式下,数据库的使用流程。
3.1连接全密态数据库
1.GSQL连接数据库执行以下命令打开密态开关:gsql -p PORT –d postgres -r –C
参数说明
-p端口号,-d数据库名称 –C是打开密态开关。
2.JDBC支持密态数据库相关操作,需要设置enable_ce=1
3.2创建用户密钥
全密态数据库有两种密钥,即客户端主密钥CMK和数据加密密钥CEK。CMK用于加密CEK,CEK用于加密用户数据。
在创建密钥之前,首先要使用gs_ktool工具创建密钥ID,此ID用于创建客户端主密钥CMK:
openGauss=# \! gs_ktool -g
密钥创建的顺序和依赖依次为:创建密钥IDà创建CMKà创建CEK。
1. GSQL环境下创建CMK和CEK:
【创建CMK】
CREATE CLIENT MASTER KEY
client_master_key_name WITH (KEY_STORE =
key_store_name, KEY_PATH = "key_path_value",
ALGORITHM = algorithm_type);
参数说明