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

GaussDB技术解析之密码安全策略

Gauss松鼠会 2025-01-17
187

1.密码安全策略 GaussDB

用户密码存储在系统表 pg_authid 中,为防止用户密码泄露,GaussDB对用户密码进行加密存储, 所采用的加密算法由配置参数 password_encryption_type 决定。 •当参数password_encryption_type设置为0时,表示采用MD5方式对密码加密。 MD5加密算法安全性低,存在安全风险,不建议使用。 •当参数password_encryption_type设置为1时,表示采用sha256MD5方式对密码加密。 MD5加密算法安全性低,存在安全风险,不建议使用。 •当参数password_encryption_type设置为2时,表示采用sha256方式对密码加密,为默认配置。 •当参数password_encryption_type设置为3时,表示采用sm3方式对密码加密。

2.查看已配置的加密算法。

gaussdb=# SHOW password_encryption_type; password_encryption_type -------------------------- 2 (1 row)

3.修改密码加密算法。

--0/1都不安全。 gs_guc reload -Z datanode -N all -I all -c "password_encryption_type=2"

4.账户密码的复杂度及长度要求如下

◾包含大写字母(A-Z)的最少个数(根据GUC参数password_min_uppercase配置)。 ◾包含小写字母(a-z)的最少个数(根据GUC参数password_min_lowercase配置)。 ◾包含数字(0-9)的最少个数(根据GUC参数password_min_digital配置)。 ◾包含特殊字符的最少个数(根据GUC参数password_min_special配置,特殊字符的列表请参见表1)。 ◾密码的最小长度(根据GUC参数password_min_length配置)。 ◾密码的最大长度(根据GUC参数password_max_length配置)。

5.关于若口令的说明。

◾弱口令指的是强度较低,容易被破解的密码,对于不同的用户或群体,弱口令的定义可能会有所区别, 用户需自己添加定制化的弱口令。 ◾弱口令字典中的口令存放在 gs_global_config 系统表中,当创建用户、修改用户需要设置密码时, 将会把用户设置口令和弱口令字典中存放的口令进行对比,如果命中,则会提示用户该口令为弱口令,设置密码失败。 ◾弱口令字典默认为空,用户通过以下语法可以对弱口令字典进行增加和删除 --示例如下: CREATE WEAK PASSWORD DICTIONARY WITH VALUES ('oracle'), ('mysql123'),('gaussdb001'); DROP WEAK PASSWORD DICTIONARY; --由此可见,我们可以通过创建弱口令字典来加强密码的管理。不让设置太简单容易被猜到的密码。

6.密码重用问题

不可重用天数默认值为60天,不可重用次数默认值是0。这两个参数值越大越安全 --查看已配置的参数。 gaussdb=# SHOW password_reuse_time; password_reuse_time --------------------- 60 (1 row) 密码过期后,60天以内不能设置和以前相同的密码。 不建议设置为0,即使需要设置也要将所有数据库节点中的password_reuse_time都设置为0才能生效。 数据库用户的密码都有密码有效期(password_effect_time), 当达到密码到期提醒天数(password_notify_time)时, 系统会在用户登录数据库时提示用户修改密码。 gs_guc reload -Z datanode -N all -I all -c "password_reuse_time=60" --0表示不能重用。每次设置必须不同。 gaussdb=# SHOW password_reuse_max; password_reuse_max -------------------- 0 (1 row) --修改密码可以重用的次数。 gs_guc reload -Z datanode -N all -I all -c "password_reuse_max = 0"

7.密码有效期

gaussdb=# SHOW password_effect_time; password_effect_time ---------------------- 90 (1 row) --设置密码有效期。 gs_guc reload -Z datanode -N all -I all -c "password_effect_time = 90" 这里需要注意账号(用户)有效期和密码有效期可以不同。从两个不同的维度进行约束。 gaussdb=# SHOW password_notify_time; password_notify_time ---------------------- 7 (1 row) --当达到密码到期提醒天数:过期前一个礼拜通知。 gs_guc reload -Z datanode -N all -I all -c "password_notify_time = 7"

8.修改密码。

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

评论