通信加密

DM提供两种通信加密方式:一基于传输层的SSL协议加密;二基于应用层的消息包加密。两个层次的加密互不影响,可以同时使用。因为任何一种加密方式都足够安全,而且双重加密会占用更多的数据库资源,所以通常情况下,没必要同时开启这两种加密。

当未采用通信加密时,为了提高安全性,数据库系统自动对登录消息中的用户名密码使用内部算法进行了简单的加解密操作,如果用户需要对用户名密码进行增强加密,请参考[11登录用户名密码增强加密](#_11 登录用户名密码增强加密)。

下面对基于传输层的SSL协议加密和基于应用层的消息包加密进行详细介绍。

6.1 基于传输层的SSL协议加密

选择是否使用SSL协议加密以DM数据库服务器端的设置为准,即通过设置服务器配置文件DM.INI中的ENABLE_ENCRYPT参数来指定,客户端以服务器采用的通信方式与其进行通信。

ENABLE_ENCRYPT取值0、1和2。0:不开启SSL加密和SSL认证;1:开启SSL加密和SSL认证;2:开启SSL认证但不开启SSL加密。安全版本缺省值为1;非安全版本缺省值为0。不论设置为1还是2,它内部所使用的密码套件是SSL协议自动协商的,达梦未进行任何干涉。

系统管理员可通过查询V$PARAMETER动态视图查询ENABLE_ENCRYPT的当前值。

SELECT * FROM V$PARAMETER WHERE NAME='ENABLE_ENCRYPT';

也可以通过使用客户端工具Console或调用系统过程SP_SET_PARA_VALUE重新设置ENABLE_ENCRYPT的值。不过由于这个参数都为静态INI参数,修改后需要重启DM数据库服务器才能生效。

SP_SET_PARA_VALUE (2,'ENABLE_ENCRYPT',1);

当选择SSL加密时,需要在DM数据库服务器所在目录下的server_ssl子目录中存放CA的证书、服务器的证书和服务器的密钥,同时在客户端所在目录下的client_ssl子目录中存放CA的证书、客户端的证书和客户端的密钥,这样服务器和客户端的通信即是建立在加密的SSL连接之上的。此时如果没有配置好SSL环境,则通讯仍旧不加密。

当选择SSL认证时,不进行通信加密,只是检查客户端和服务器的证书是否匹配。此时如果服务器SSL环境没有配置则服务器无法正常启动,如果客户端SSL环境没有配置则无法连接服务器。

6.2 基于应用层的消息包加密

选择是否使用基于应用层的消息包加密以DM数据库服务器端的设置为准,即通过设置服务器配置文件DM.INI中的COMM_ENCRYPT_NAME参数来指定,客户端以服务器采用的通信方式与其进行通信。

COMM_ENCRYPT_NAME取值空串、算法名分别代表不加密、加密。缺省为空串。当算法名写错,则使用加密算法DES_CFB。DM支持的加密算法名可以通过查询动态视图V$CIPHERS获取。应用层加密的密钥是通过DH密钥交换算法协商生成。

系统管理员可通过查询V$PARAMETER动态视图查询COMM_ENCRYPT_NAME的当前值。

SELECT * FROM V$PARAMETER WHERE NAME='COMM_ENCRYPT_NAME';

也可以通过使用客户端工具Console或调用系统过程SP_SET_PARA_STRING_VALUE重新设置COMM_ENCRYPT_NAME的值。不过由于这个参数都为静态INI参数,修改后需要重启DM数据库服务器才能生效。

SP_SET_PARA_STRING_VALUE(2,'COMM_ENCRYPT_NAME','DES_OFB');
微信扫码
分享文档
扫一扫
联系客服