Skip to content

认证安全清单 ​

文档编号: SYS-SEC-AUTH-001
版本: 1.0
创建日期: 2026-03-08
作者: 安全架构师
状态: ✅ 已完成


1. 概述 ​

1.1 目的 ​

本文档定义System平台的认证安全要求,确保用户身份验证过程的安全性,防止未授权访问。

1.2 适用范围 ​

  • 用户登录认证
  • 管理员登录认证
  • API接口认证
  • 第三方系统集成认证

1.3 参考标准 ​

  • GB/T 22239-2019 信息安全技术 网络安全等级保护基本要求
  • OWASP Authentication Cheat Sheet
  • NIST SP 800-63B 数字身份指南

2. 密码策略 ​

2.1 密码复杂度要求 ​

检查项要求实现方式优先级
最小长度8位前端+后端校验必须
最大长度20位前端+后端校验必须
大写字母至少1个正则表达式校验必须
小写字母至少1个正则表达式校验必须
数字至少1个正则表达式校验必须
特殊字符至少1个正则表达式校验建议
密码历史不能与最近5次密码相同数据库记录建议

正则表达式: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,20}$

2.2 密码有效期策略 ​

检查项要求实现方式优先级
密码有效期90天定时任务检查建议
到期提醒提前7天提醒登录时检查建议
强制修改到期后强制修改登录拦截建议

2.3 密码存储安全 ​

检查项要求实现方式优先级
加密算法bcryptSpring Security必须
工作因子10-12配置参数必须
盐值随机生成bcrypt内置必须
明文存储禁止代码审查必须

3. 登录安全 ​

3.1 登录失败锁定 ​

检查项要求实现方式优先级
失败次数阈值5次Redis计数必须
锁定时间30分钟Redis过期时间必须
计数器重置登录成功后重置登录成功事件必须
锁定通知邮件/短信通知用户消息服务建议

实现逻辑:

java
// 登录失败处理
if (loginFailCount >= 5) {
    lockAccount(username, 30, TimeUnit.MINUTES);
    sendLockNotification(username);
}

3.2 会话管理 ​

检查项要求实现方式优先级
会话超时30分钟无操作过滤器检查必须
最大并发会话1个(可选配置)Session管理建议
会话固定保护登录后重新生成SessionSpring Security必须
安全退出清除Session和Token退出接口必须

3.3 登录日志 ​

检查项要求实现方式优先级
登录时间记录精确到秒数据库记录必须
IP地址记录客户端IP请求头获取必须
登录结果成功/失败数据库记录必须
失败原因密码错误/账号锁定等异常类型建议
设备信息浏览器/操作系统User-Agent解析建议

4. 多因素认证(MFA) ​

4.1 MFA支持 ​

检查项要求实现方式优先级
MFA开关可配置开启/关闭系统配置建议
短信验证码6位数字,5分钟有效SMS服务建议
邮箱验证码6位数字,10分钟有效邮件服务建议
TOTP基于时间的一次性密码Google Authenticator可选
备用码10个一次性备用码生成并加密存储可选

4.2 MFA触发场景 ​

场景是否启用MFA说明
管理员登录强制启用高权限账号
普通用户登录可选启用用户自行开启
敏感操作强制启用修改密码、修改手机号等
新设备登录强制启用首次在新设备登录
异地登录强制启用IP地址变化较大

5. 令牌安全 ​

5.1 JWT令牌 ​

检查项要求实现方式优先级
签名算法HS256或RS256JWT配置必须
密钥管理定期轮换,安全存储密钥管理服务必须
访问令牌有效期2小时JWT exp声明必须
刷新令牌有效期7天JWT exp声明必须
令牌撤销支持黑名单机制Redis存储建议

5.2 令牌传输 ​

检查项要求实现方式优先级
传输方式HTTP Only Cookie 或 Authorization Header前端实现必须
HTTPS强制使用Web服务器配置必须
敏感信息禁止在Payload中存储代码审查必须

6. 验证码安全 ​

6.1 图形验证码 ​

检查项要求实现方式优先级
验证码长度4-6位配置参数必须
字符类型字母+数字验证码生成器必须
干扰线/点添加干扰元素图形库建议
有效期5分钟Redis过期时间必须
使用次数一次性使用验证后立即删除必须
失败重试3次失败后刷新计数器建议

6.2 验证码场景 ​

场景验证码类型说明
登录图形验证码防止暴力破解
注册图形验证码 + 短信验证码防止恶意注册
找回密码短信/邮箱验证码身份验证
修改手机号短信验证码身份验证
批量操作图形验证码防止自动化攻击

7. 第三方认证 ​

7.1 OAuth2.0集成 ​

检查项要求实现方式优先级
授权码模式使用Authorization Code模式Spring Security OAuth2建议
PKCE支持PKCE扩展OAuth2配置建议
State参数必须携带并验证随机字符串必须
回调地址严格校验白名单配置必须
令牌存储不存储第三方令牌仅使用用户信息必须

7.2 支持的第三方平台 ​

平台优先级说明
微信建议国内主流
钉钉建议企业场景
企业微信可选企业场景
GitHub可选开发者场景

8. 安全检查清单 ​

8.1 开发阶段检查 ​

  • [ ] 密码复杂度校验实现
  • [ ] bcrypt加密集成
  • [ ] 登录失败锁定实现
  • [ ] 会话超时处理
  • [ ] JWT令牌生成与验证
  • [ ] 验证码生成与验证
  • [ ] 登录日志记录

8.2 测试阶段检查 ​

  • [ ] 弱密码拒绝测试
  • [ ] 登录暴力破解测试
  • [ ] 会话劫持测试
  • [ ] 令牌篡改测试
  • [ ] 验证码绕过测试
  • [ ] 并发登录测试

8.3 部署阶段检查 ​

  • [ ] HTTPS强制启用
  • [ ] JWT密钥安全配置
  • [ ] Session安全配置
  • [ ] Cookie安全属性(HttpOnly, Secure, SameSite)
  • [ ] 登录日志审计

9. 合规要求 ​

9.1 等保三级要求 ​

控制点要求实现
S3A1-身份鉴别用户身份唯一标识和鉴别用户名+密码+MFA
S3A1-口令复杂度强制口令复杂度策略密码策略实现
S3A1-登录失败处理失败锁定和连接超时登录锁定+会话超时

10. 评审记录 ​

10.1 评审意见 ​

序号评审项评审意见评审结果
1密码策略完整性覆盖复杂度、有效期、历史✓ 通过
2登录安全机制失败锁定、会话管理完善✓ 通过
3MFA支持支持多种MFA方式✓ 通过
4令牌安全JWT配置合理✓ 通过
5等保合规满足等保三级要求✓ 通过

10.2 评审结论 ​

评审结果: ✅ 通过

评审日期: 2026-03-08

评审人员:

  • 安全专家: _________________ (签字) 2026-03-08
  • 技术负责人: _________________ (签字) 2026-03-08
  • 产品经理: _________________ (签字) 2026-03-08

11. 修订记录 ​

版本日期作者变更内容
1.02026-03-08安全架构师初始版本,定义认证安全清单

Released under the MIT License.