文件
jw-beauty/docs/design/07-安全与鉴权方案.md

113 行
2.8 KiB
Markdown

# 安全与鉴权方案
基于 `软件系统说明.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` 生命周期、权限模型和敏感数据定义。