一文汇总全密态数据库的基本使用方法_olap全密态数据库(1)

全密态数据库目前支持两种连接方式: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);

参数说明

• client_master_key_name

该参数作为密钥对象名,在同一命名空间下,需满足命名唯一性约束。

取值范围:字符串,需符合标识符的命名规范。

• KEY_STORE

独立管理密钥的工具/服务。目前,仅支持由GaussDB Kenel提供的密钥管理工具gs_ktool,以及由华为云提供的在线密钥管理服务huawei_kms。取值范围为:gs_ktool,huawei_kms。

• KEY_PATH

用于指定密钥管理工具/服务中的一个密钥。通过KEY_STORE和KEY_PATH参数可唯一确定一个密钥实体。当KEY_STORE = gs_ktool时,取值范围为:gs_ktool/KEY_ID;当KEY_STORE = huawei_kms时,取值范围为:36字节的密钥ID。

• ALGORITHM

用于指定该密钥实体将用于何种加密算法。当KEY_STORE = gs_ktool时,取值范围为:AES_256_CBC,SM4;当KEY_STORE = huawei_kms时,取值为:AES_256。

【创建CEK】

CREATE COLUMN ENCRYPTION KEY column_encryption_key_name WITH(CLIENT_MASTER_KEY = client_master_key_name, ALGORITHM = algorithm_type, ENCRYPTED_VALUE = encrypted_value);

参数说明

• column_encryption_key_name

该参数作为密钥对象名,在同一命名空间下,需满足命名唯一性约束。

取值范围:字符串,要符合标识符的命名规范。

• CLIENT_MASTER_KEY

指定用于加密本CEK的CMK,取值为:CMK对象名,该CMK对象由CREATE CLIENT MASTER KEY语法创建。

• ALGORITHM

指定该CEK将用于何种加密算法,取值范围为:AEAD_AES_256_CBC_HMAC_SHA256、AEAD_AES_128_CBC_HMAC_SHA256和SM4_SM3;

• ENCRYPTED_VALUE(可选项)

该值为用户指定的密钥口令,密钥口令长度范围为28 ~ 256位,28位派生出来的密钥安全强度满足AES128,若用户需要用AES256,密钥口令的长度需要39位,如果不指定,则会自动生成256比特的密钥。

说明:

由于SM2、SM3、SM4等算法属于中国国家密码标准算法,为规避法律风险,需配套使用。即如果将CEK用于SM4_SM3算法,则仅能使用SM4算法来对该CEK进行加密。

【示例:GSQL环境下】

--(1)使用密钥管理工具gs_ktool创建密钥,该工具会返回新生成的密钥的ID[cmd] gs_ktool -g-- (2) 使用特权账户,创建一个普通用户alice。openGauss=# CREATE USER alice PASSWORD '********';-- (3)使用普通用户alice的账户,连接密态数据库,并执行本语法gsql -p 57101 postgres -U alice -r -C-- 创建客户端加密主密钥(CMK)对象openGauss=> CREATE CLIENT MASTER KEY alice_cmk WITH ( KEY_STORE = gs_ktool , KEY_PATH = "gs_ktool/1" , ALGORITHM = AES_256_CBC);-- 创建客户端列加密密钥(CEK)对象openGauss=> CREATE COLUMN ENCRYPTION KEY a_cek WITH VALUES (CLIENT_MASTER_KEY = a_cmk, ALGORITHM  = AEAD_AES_256_CBC_HMAC_SHA256);openGauss=> CREATE COLUMN ENCRYPTION KEY another_cek WITH VALUES (CLIENT_MASTER_KEY = a_cmk, ALGORITHM  = SM4_SM3);
2. JDBC环境下创建CMK和CEK
// 创建客户端主密钥Connection conn = DriverManager.getConnection("url","user","password");Statement stmt = conn.createStatement();int rc = stmt.executeUpdate("CREATE CLIENT MASTER KEY ImgCMK1 WITH ( KEY_STORE = gs_ktool , KEY_PATH = \"gs_ktool/1\" , ALGORITHM = AES_256_CBC);");
// 创建列加密密钥int rc2 = stmt.executeUpdate("CREATE COLUMN ENCRYPTION KEY ImgCEK1 WITH VALUES (CLIENT_MASTER_KEY = ImgCMK1, ALGORITHM  = AEAD_AES_256_CBC_HMAC_SHA256);");

3.3创建加密表

在创建了客户端主密钥CMK和数据加密密钥CEK之后,就可以使用CEK创建加密表了。加密表的创建支持对加密列进行随机加密和确定性加密两种· 123··方式。

1. GSQL连接环境下创建加密表

【示例】

openGauss=# CREATE TABLE creditcard_info (id_number int, name text encrypted with (column_encryption_key = ImgCEK, encryption_type = DETERMINISTIC),credit_card  varchar(19) encrypted with (column_encryption_key = ImgCEK1, encryption_type = DETERMINISTIC));

本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。

最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。

最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。

学习路线图

其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。

相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。

网络安全工具箱

当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。

项目实战

最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

面试题

归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值