用户口令强度校验机制

可获得性

本特性自openGauss 1.1.0版本开始引入。

特性简介

对用户访问数据库所设置的口令强度进行校验。

客户价值

用户无法设置过低强度的口令,加固客户数据安全。

特性描述

初始化数据库、创建用户、修改用户时需要指定密码。密码必须满足强度校验,否则会提示用户重新输入密码。账户密码复杂度要求如下:

  • 包含大写字母(A-Z)的最少个数(password_min_uppercase)
  • 包含小写字母(a-z)的最少个数(password_min_lowercase)
  • 包含数字(0-9)的最少个数(password_min_digital)
  • 包含特殊字符的最少个数(password_min_special)
  • 密码的最小长度(password_min_length)
  • 密码的最大长度(password_max_length)
  • 至少包含上述四类字符中的三类。
  • 不能和用户名、用户名倒写相同,本要求为非大小写敏感。
  • 不能和当前密码、当前密码的倒写相同。
  • 不能是弱口令。

    用户口令强度校验机制 - 图1 说明: 弱口令指的是强度较低,容易被破解的密码,对于不同的用户或群体,弱口令的定义可能会有所区别,用户需要自己添加定制化的弱口令。

参数password_policy设置为1时表示采用密码复杂度校验,默认值为1。

弱口令字典中的口令存放在gs_global_config系统表中(name字段为weak_password的记录是储存的弱口令),当创建用户、修改用户需要设置密码时,将会把用户设置口令和弱口令字典中存放的口令进行对比,如果命中,则会提示用户该口令为弱口令,设置密码失败。

弱口令字典默认为空,用户通过以下语法可以对弱口令字典进行增加和删除,示例如下:

  1. CREATE WEAK PASSWORD DICTIONARY WITH VALUES ('password1'), ('password2');
  2. DROP WEAK PASSWORD DICTIONARY;

其中“password1”,“password2”是用户事先准备的弱口令,该语句执行成功后将会存入弱口令系统表中。

当用户尝试通过CREATE WEAK PASSWORD DICTIONARY 插入表中已存在的弱口令时,会只在表中保留一条该弱口令。

DROP WEAK PASSWORD DICTIONARY语句会清空整张系统表弱口令相关部分。

gs_global_config系统表没有唯一索引,不建议用户通过COPY FROM命令重复用相同数据对该表进行操作。

若用户需要对弱口令相关操作进行审计,应设置audit_system_object参数中的第三位为1。

特性增强

openGauss 1.1.0版本实现了弱口令字典功能。

特性约束

  • 初始用户、系统管理员和安全管理员可以查看、新增、删除弱口令字典。
  • 普通用户可以查看但是不能新增或者删除弱口令字典。

依赖关系

无。