等保测评2.0:应用身份鉴别(上)
字数 1392 2025-08-15 21:31:29
等保测评2.0:应用身份鉴别控制点详解
1. 概述
本文档详细解析等保测评2.0中应用系统身份鉴别控制点的测评要求,特别是测评项a的相关内容。应用测评相比服务器、数据库测评更为复杂,需要结合技术检查、配置验证和访谈等多种方法。
2. 测评项a详解
测评项a要求:
- 应对登录的用户进行身份标识和鉴别
- 身份标识具有唯一性
- 身份鉴别信息具有复杂度要求
- 定期更换身份鉴别信息
2.1 身份标识和鉴别功能验证
验证方法:
- 检查应用系统是否具备登录功能(用户名+口令是最常见形式)
- 确认所有用户访问系统前必须经过身份验证
- 典型表现:进入应用系统管理后台需要输入用户名和口令
注意事项:
- 几乎所有现代应用系统都满足此基本要求
- 重点在于验证是否所有功能入口都受到身份验证保护
2.2 身份标识唯一性验证
验证方法:
- 尝试创建重名用户,检查系统是否允许
- 检查用户管理功能,确认系统设计上保证用户名唯一
注意事项:
- 进行任何可能修改数据的操作前必须获得被测评单位许可
- 大多数系统在数据库层面已实现用户名唯一约束
2.3 身份鉴别信息复杂度要求
2.3.1 复杂度策略验证方法
方法一:查看配置界面
- 适用于有独立密码策略配置界面的系统
- 截图取证后应进行实际测试验证功能是否真正生效
方法二:实际测试修改密码
- 找到系统密码修改功能
- 尝试设置简单密码(如"123456")
- 观察系统反应:
- B/S架构系统通常在前端JS拦截并提示
- 部分系统可能仅在后端验证
方法三:分析前端代码
- 使用浏览器开发者工具审查元素
- 查找密码输入框相关HTML和JS代码
- 搜索密码验证相关逻辑:
- 常见验证方式包括正则表达式检查
- 示例正则:
/(?=.*[0-9])(?=.*[a-zA-Z]).{8,}/(要求至少8位,包含字母和数字)
方法四:绕过前端验证
- 修改或禁用前端验证JS代码
- 直接构造HTTP请求提交简单密码
- 观察后端是否拒绝简单密码
方法五:查看源代码
- 如有权限,直接检查服务器端密码验证逻辑
2.3.2 高风险情况
- 不存在密码复杂度策略:高风险项
- 存在弱口令或空口令:高风险项
修正方案:
- 互联网系统:必须实现密码复杂度校验
- 内网系统:可通过网络隔离降低风险
- 工控设备:视具体情况评估
- 双因素认证:可作为补偿措施
2.4 定期更换密码要求
验证方法:
- 访谈:询问系统管理员密码更换策略
- 配置检查:查找密码有效期相关配置
- 数据库检查:查看是否有密码修改时间记录
常见情况:
- 商业软件和知名开源系统通常具备此功能
- 定制系统可能缺少此功能
- 即使配置了有效期,用户可能通过不注销登录规避更换
3. 测评深度建议
- 根据实际情况决定测评深度
- 重点检查高风险项(弱口令、无复杂度策略)
- 部分符合判定:只要满足任一子要求即可判定为部分符合
- 高风险判定与测评项得分无必然关系
4. 常见问题处理
-
前端有验证但后端无验证:
- 通过绕过前端验证测试
- 检查HTTP请求响应
-
密码策略配置存在但未启用:
- 检查实际配置状态
- 验证策略是否真正生效
-
密码更换记录缺失:
- 检查数据库日志
- 访谈了解实际操作情况
5. 总结
应用系统身份鉴别测评需要综合运用多种方法,特别关注:
- 密码复杂度实际执行情况
- 弱口令存在风险
- 密码更换机制有效性
- 前后端验证一致性
测评人员应根据系统重要性、暴露程度等因素,合理确定测评深度和风险判定标准。