登录用户名密码增强加密

非通信加密的情况下,为了实现对登录用户名、密码的安全管理,达梦对登录消息中的用户名密码进行了增强加、解密处理。

具体实现分为四步:一是通过dmkey工具生成公钥文件和私钥文件。二是配置服务器参数,使用私钥对客户端发送过来的登录名和密码进行解密。三是配置客户端参数,使用公钥文件对登录用户名和密码进行加密。四,启动数据库服务器。

11.1 dmkey工具的使用

dmkey是一个RSA非对称加解密的公钥文件、私钥文件生成工具。公钥文件和私钥文件分别用于对登录消息中的用户名、密码进行加密和解密。

11.1.1 启动dmkey

安装好DM数据库管理系统后,在安装目录的“bin”子目录下可找到dmkey执行文件。

启动操作系统的命令行窗口,进入“dmkey”所在目录,可以准备启动dmkey工具了。

dmkey的使用需要指定必要的参数。为dmkey指定参数的格式为:

dmkey [ keyword=value [keyword=value ...] ]

常见的使用搭配有两种:

一,生成公钥和私钥。

dmkey.exe PATH=path PUBKEY=pubkey

PATH:指定生成公钥和私钥的所在目录(默认为dmkey.exe所在的目录);

PUBKEY:指定生成公钥的文件名(默认为dm_login.pubkey),私钥为固定文件名dm_login.prikey。公钥文件为文本方式存储,私钥文件则为二进制存储。

例如:

>dmkey PATH=D:\aa pubkey=test.pubkey
DMKEY V8.1.0.137-Build(2019.02.14-102842)ENT
generate public key file D:\aa\test.pubkey success!
generate private key file D:\aa\dm_login.prikey success!

二,显示私钥的相关信息(文件版本号、私钥Guid、私钥的生成时间、dmkey工具的版本号)。

该信息主要用于校验公钥、私钥是否匹配。同一套公钥文件、私钥文件的Guid一样的。文件版本号只有私钥文件有,公钥文件没有。

dmkey.exe PRIKEY=prikey

PRIKEY:私钥文件dm_login.prikey所在路径。

例如:

>dmkey PRIKEY=D:\aa\dm_login.prikey
DMKEY V8.1.0.137-Build(2019.02.14-102842)ENT
File version : 0
Guid : E829B15F16444E2A2376A1143D4E65AC
Generation time : 2019-02-25 10:48:42
Generation tool version: V8.1.0.137

11.1.2 查看dmkey参数

dmkey使用较为灵活,参数较多,用户可以使用“dmkey help”查看dmkey版本信息以及各参数的简单信息。

./dmkey HELP

DMKEY DMKEY V8

version: 1-2-101-21.12.16-153499-10000-ENT

格式: dmkey.exe KEYWORD=value

例程:

dmkey.exe path=C:\data\DAMENG pubkey=dm_login.pubkey
dmkey.exe prikey=C:\data\DAMENG\dm_login.prikey

关键字 说明

----------------------------------------------------------

PATH 生成公钥和私钥文件的目标目录

PUBKEY 要生成的公钥文件名,缺省为dm_login.pubkey

PRIKEY 要打印信息的私钥文件路径名

HELP 打印帮助信息

注意:
指定PRIKEY时仅打印所指私钥文件的相关信息,否则生成公钥文件和名为dm_login.prikey的私钥文件

11.2 服务器端配置

首先,将私钥文件拷贝到ini参数SYSTEM_PATH指定的目录下。

其次,配置INI参数FORCE_CERTIFICATE_ENCRYPTION=1,即非加密通讯的情况下,开启用户名密码强制证书加密。该参数有效值为0、1,默认值为0,运行中无法更改。

该项配置成功后,启动数据库服务器时,服务器会对登录的用户名密码强制使用SYSTEM_PATH目录下的私钥文件进行解密。

11.3 客户端配置

客户端配置有两种方式:一种是通过dm_svc.conf文件进行配置,供所有用户使用;另一种是通过DPI进行配置,供DPI编程用户使用。使用DPI编程的用户可以使用第一种方式设置,也可以使用第二种方式设置,当两种方式不一致时,第二种方式优先。

11.3.1 dm_svc.conf

使用配置项LOGIN_CERTIFICATE指定登录加密用户名密码公钥所在的路径。该配置项可全局配置也可在某个服务名下配置,一旦配置即认为开启了客户端的证书加密用户名密码模式。

11.3.2 DPI

指定con上属性DSQL_ATTR_LOGIN_CERTIFICATE,用于指定加密登录用户名密码的公钥所在的路径。该属性和dm_svc.conf中配置项LOGIN_CERTIFICATE功能一样。两者不一致时,DSQL_ATTR_LOGIN_CERTIFICATE设置优先。

11.4 启动数据库服务器

全部配置完成后,启动数据库服务器。服务器启动时自动加载SYSTEM_PATH目录下的私钥文件,对登录的用户名密码使用私钥文件dm_login.prikey进行解密。

11.5 应用实例

下面通过一个具体的实例,展示如何配置登录用户名和密码的增强加、解密功能。

第一步,通过dmkey生成公钥文件、私钥文件。

>dmkey PATH=D:\DAMENG pubkey=test.pubkey
DMKEY V8.1.0.137-Build(2019.02.14-102842)ENT
generate public key file D:\DAMENG\test.pubkey success!
generate private key file D:\DAMENG\dm_login.prikey success!

第二步,首先将私钥文件dm_login.prikey拷贝到数据库SYSTEM PATH目录下,然后配置服务器ini参数FORCE_CERTIFICATE_ENCRYPTION=1。

第三步,配置dm_svc.conf文件的LOGIN_CERTIFICATE配置项,指定公钥文件所在位置。dm_svc.conf文件内容如下:

TIME_ZONE=(480)
LANGUAGE=(cn)
LOGIN_CERTIFICATE=(D:\DAMENG\test.pubkey)

第四步,启动数据库服务器。

至此,配置完毕。

微信扫码
分享文档
扫一扫
联系客服