暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦数据库ssl通信加密配置过程

原创 刘宗宝 2021-01-07
6903

原文链接
达梦数据库使用ssl通信加密,需要在达梦数据库服务端配置ENABLE_ENCRYPT 和 COMM_ENCRYPT_NAME 参数来指定,客户端以服务端采用的通信方式与其进行通信,达梦数据库支持的加密算法可以通过V$CIPHERS动态视图获取,如下所示。

SQL> select cyt_name,cyt_type,block_size,kh_size from v$ciphers;

行号       CYT_NAME         CYT_TYPE    BLOCK_SIZE  KH_SIZE
---------- ---------------- ----------- ----------- -----------
1          DES_ECB          1           8           8
2          DES_CBC          1           8           8
3          DES_CFB          1           8           8
4          DES_OFB          1           8           8
5          DESEDE_ECB       1           8           16
6          DESEDE_CBC       1           8           16
7          DESEDE_CFB       1           8           16
8          DESEDE_OFB       1           8           16
9          AES128_ECB       1           16          16
10         AES128_CBC       1           16          16
11         AES128_CFB       1           16          16
12         AES128_OFB       1           16          16
13         AES192_ECB       1           16          24
14         AES192_CBC       1           16          24
15         AES192_CFB       1           16          24
16         AES192_OFB       1           16          24
17         AES256_ECB       1           16          32
18         AES256_CBC       1           16          32
19         AES256_CFB       1           16          32
20         AES256_OFB       1           16          32
21         RC4              2           0           16
22         MD5              4           0           16
23         SHA1             4           0           20
24         SHA224           4           0           28
25         SHA256           4           0           32
26         SHA384           4           0           48
27         SHA512           4           0           64
28         DES_ECB_NOPAD    1           8           8
29         DES_CBC_NOPAD    1           8           8
30         DESEDE_ECB_NOPAD 1           8           16
31         DESEDE_CBC_NOPAD 1           8           16
32         AES128_ECB_NOPAD 1           16          16
33         AES128_CBC_NOPAD 1           16          16
34         AES192_ECB_NOPAD 1           16          24
35         AES192_CBC_NOPAD 1           16          24
36         AES256_ECB_NOPAD 1           16          32
37         AES256_CBC_NOPAD 1           16          32
37 rows got
已用时间: 0.643(毫秒). 执行号:16.
SQL>

上述结果中加密算法类型(CYT_TYPE)列的值中,1指分组对称加密算法2指流式对称加密算法3指非对称加密算法4指散列算法。查看当前ENABLE_ENCRYPT 和 COMM_ENCRYPT_NAME 参数值,如下所示。

='COMM_ENCRYPT_NAME';
行号       NAME              TYPE    VALUE
---------- ----------------- ------- -----
1          ENABLE_ENCRYPT    IN FILE 0
2          COMM_ENCRYPT_NAME IN FILE
已用时间: 4.397(毫秒). 执行号:17.
SQL>

可以看到,这2个参数均为静态参数,ENABLE_ENCRYPT为0,代表不加密,配置为1代表ssl加密,2代表ssl认证;COMM_ENCRYPT_NAME值为空,未配置加密算法,配置的值为V$CIPHERS中CYT_NAME列中支持的算法值。此处以DES_CBC加密算法为例,如下所示。

sf_set_system_para_value('COMM_ENCRYPT_NAME','DES_CBC',1,1);
[-839]:不能修改静态配置参数的内存值.
已用时间: 2.610(毫秒). 执行号:0.
SQL> sf_set_system_para_value('COMM_ENCRYPT_NAME','DES_CBC',1,2);
DMSQL 过程已成功完成
已用时间: 13.516(毫秒). 执行号:37.
SQL>
SQL> sp_set_para_value(2,'ENABLE_ENCRYPT', 1);
DMSQL 过程已成功完成
已用时间: 15.461(毫秒). 执行号:40.
SQL>

参数配置完成后,需要重启数据库,使配置变量值生效,数据库层的配置就完成了。系统层ssl环境配置及证书生成,此处省略。需要注意的是达梦数据库选择使用ssl加密时,需要在达梦数据库安装目录(一般为DM_HOME/bin)所在的子目录server_ssl中存放CA的证书、服务器的证书和服务器的密钥,同时在客户端所在目录下的client_ssl子目录中存放 CA 的证书、客户端的证书和客户端的密钥,这样服务器和客户端的通信即是建立在加密的 SSL 连接之上的。

case sense user compare fail.
[-70070]:初始化SSL环境失败.
SQL>
SQL> conn sysdba/SYSDBA@localhost:5236#C:\dmdbms\bin\client_ssl\SYSDBA@123456

服务器[localhost:5236]:处于普通打开状态
登录使用时间 : 4.450(ms)
SQL>

通信加密中客户端证书存放的地址和客户端证书密钥。各用户只能使用自己的证书,例如 SYSDBA 账户只能使用\bin\CLIENT_SSL\SYSDBA 下的证书和密码。C:\dmdbms\bin\client_ssl\SYSDBA为此处客户端SYSDBA证书秘钥存放处,@后面的123456为证书密码,如果证书没有设置密码,可以缺省或任意数字代替。

最后修改时间:2021-01-07 17:46:24
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论