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

人大金仓数据库KingbaseES scram-sm3认证原理

数据猿 2023-09-04
929

关键字:

KingbaseES、scram-sm3

1.什么是scram-sm3

Kingbase支持scram-sm3算法认证。scram是指包含服务器和客户端双向确认的用户认证体系,配合信道加密可以比较好地抵御中间人、拖库、伪造等攻击。Kingbase原本支持scram-sha-256认证,sha256是国际标准,为符合国密标准,kingbase使用sm3 hmac算法完成scram认证流程。

2.scram-sm3的认证流程

2.1客户端发起认证流程

首先由客户端发起认证流程,并将用户名、IP等基本信息发送给服务器。服务器接收到客户端发起的连接请求后,会根据保存的数据判断应该使用scram-sm3认证,并将这一消息发送给客户端,告知即将开始scram-sm3认证流程。

2.2客户端开始scram-sm3认证流程

1)客户端生成一个客户端的nonce并发送给服务器。、

2)服务器接收到客户端nonce,同时会生成一个服务器nonce与客户端nonce拼接到一起,同时生成加密用的salt。将salt、iteration、nonce等信息发送给客户端。

3)客户端接收到服务器的信息,会通过nonce来验证该消息来自目标服务器,然后开始根据iteration,使用sm3 hmac算法迭代计算密码加密后的结果proof,并将proof连同nonce等信息发送给服务器。

4)服务器也会通过nonce验证消息来源,然后使用同样的方式验算客户端发来的加密结果,若客户端与服务器的计算结果相同,则会认为客户端认证通过,并向客户端发送最后一条认证消息。

5)客户端对服务器进行最后的认证完成后,完成scram-sm3认证流程。

3.配置scram-sm3认证方式

使用initdb初始化数据库时,可以使用-A指定认证方式。

image.png

查看文件夹中的sys_hba.conf可以看出认证方式已被设置为scram-sm3

image.png

启动并登陆数据库,可以使用show password_encryption 查看当前数据库使用的加密方式,查看sys_authid表中用户的密码也可以看到对应的加密方式。

image.png

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

评论