# 安全与鉴权方案 基于 `软件系统说明.docx` 整理。本文档用于把当前已知安全要求整理成可继续细化的设计骨架。 本文档不虚构签名算法、密钥管理方案或合规要求,只固定已知要求和必须补齐的实现细节。 ## 已确认事实 - 全链路传输使用 `TLS 1.2+` - 设备认证依赖 `DeviceSecret` - 用户认证为微信登录 + Token - Token 有效期为 7 天 - 敏感数据需要加密存储 - 需要 API 鉴权 - 需要角色权限控制 - 需要 API 级别鉴权 ## 安全边界拆分 当前系统至少存在四类安全边界: - 小程序用户身份安全 - 设备身份安全 - 云端 API 访问安全 - 后台管理权限安全 ## 用户鉴权待补项 至少需要明确: - 微信登录到自有 token 的完整链路 - Token 格式 - Token 签名算法 - Token 7 天有效期是否支持续期 - Token 失效、登出、吊销机制 - 多端并发登录规则 ## 设备鉴权待补项 至少需要明确: - `DeviceSecret` 的签发时机 - `DeviceSecret` 的保存位置 - `DeviceSecret` 是否可轮换 - 设备被盗用或泄露后的失效机制 - 设备认证失败后的告警与禁用策略 ## API 安全待补项 至少需要明确: - API 鉴权中间件规则 - 接口级权限定义 - 限流策略 - 防重放策略 - 防刷策略 - 请求日志中需要记录的审计字段 ## 数据安全待补项 至少需要明确: - 哪些字段属于敏感数据 - 加密字段范围 - 加密方式 - 脱敏展示规则 - 数据保留周期 - 备份与恢复的安全要求 ## 后台权限安全待补项 至少需要明确: - 管理员认证方式 - 角色权限模型 - 高风险操作的二次确认规则 - 操作日志保留策略 - 是否需要登录告警和异常操作审计 ## 建议最先统一的安全对象 为了后续设计不混乱,建议先统一这些对象的定义: - 用户身份 - 设备身份 - 管理员身份 - 访问 token - 设备密钥 - 角色 - 权限 ## 建议补充的安全设计模板 后续可按以下模板逐项补齐: | 主题 | 已知要求 | 待确认实现 | 风险 | | --- | --- | --- | --- | | 用户登录 | 微信登录 + Token | 待定义 | 待评估 | | 设备认证 | `DeviceSecret` | 待定义 | 待评估 | | API 鉴权 | API 级别鉴权 | 待定义 | 待评估 | | 数据加密 | 敏感数据加密存储 | 待定义 | 待评估 | ## 待确认问题 - 小程序 token 是否只用于云端 API,还是也影响设备绑定授权 - 后台是否与小程序共用用户体系 - 是否需要设备侧应用层签名或加密,而不仅是 TLS - 是否有合规或审计的特殊要求 ## 当前结论 当前说明已经明确安全目标,但没有给出实现方案。最先要补的是 token 生命周期、`DeviceSecret` 生命周期、权限模型和敏感数据定义。