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.