Files
16gagent/game-accelerator-tech-plan/10-安全设计.md
T

184 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第十部分:安全设计
## 10.1 用户认证
```
┌──────────────────────────────────────────────────────────────────┐
│ 用户认证体系 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 认证流程: │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 用户登录 │───→│ 身份验证 │───→│ Token签发│───→│ 返回客户端│ │
│ │ 提交凭证 │ │ 密码校验 │ │ JWT生成 │ │ 缓存Token │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ Token机制(JWT): │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Access Token: │ │
│ │ - 有效期:2小时 │ │
│ │ - 签名算法:RS256 (RSA + SHA256) │ │
│ │ - 包含信息:user_id, device_id, role, exp │ │
│ │ - 存储位置:客户端内存(不持久化) │ │
│ │ │ │
│ │ Refresh Token: │ │
│ │ - 有效期:30天 │ │
│ │ - 存储位置:Redis + 客户端安全存储 │ │
│ │ - 一次性使用(刷新后失效) │ │
│ │ - 支持主动撤销 │ │
│ │ │ │
│ │ Token刷新流程: │ │
│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ │
│ │ │Access │───→│过期检测│───→│Refresh │───→│新Token │ │ │
│ │ │过期 │ │自动刷新│ │验证 │ │签发 │ │ │
│ │ └────────┘ └────────┘ └────────┘ └────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 密码安全: │
│ - 哈希算法:bcrypt (cost=12) │
│ - 盐值:每个用户独立随机盐值 │
│ - 最小长度:8位 │
│ - 复杂度要求:大小写+数字+特殊字符 │
│ │
└──────────────────────────────────────────────────────────────────┘
```
## 10.2 设备绑定与防共享
```
┌──────────────────────────────────────────────────────────────────┐
│ 设备绑定与防共享 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 设备指纹生成: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 组合以下信息生成唯一指纹: │ │
│ │ - CPU ID │ │
│ │ - 主板序列号 │ │
│ │ - 硬盘序列号 │ │
│ │ - MAC地址 │ │
│ │ - 操作系统版本 │ │
│ │ - 客户端版本 │ │
│ │ │ │
│ │ 指纹算法:SHA256(组合字符串) │ │
│ │ 指纹格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 设备限制策略: │
│ ┌──────────────┬──────────────┬────────────────────────────┐ │
│ │ 套餐类型 │ 设备限制 │ 说明 │ │
│ ├──────────────┼──────────────┼────────────────────────────┤ │
│ │ 免费版 │ 1台 │ 绑定后不可更换 │ │
│ │ 月卡/季卡 │ 2台 │ 可解绑,30天冷却期 │ │
│ │ 年卡 │ 3台 │ 可解绑,30天冷却期 │ │
│ │ 电竞版 │ 5台 │ 可解绑,7天冷却期 │ │
│ └──────────────┴──────────────┴────────────────────────────┘ │
│ │
│ 防共享检测: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 规则1:同时在线检测 │ │
│ │ - 同一账号在不同设备同时在线 │ │
│ │ - 触发条件:不同设备指纹 + 相同账号 + 时间重叠 │ │
│ │ - 处理:通知用户 + 限制新设备登录 │ │
│ │ │ │
│ │ 规则2:异地登录检测 │ │
│ │ - 同一账号在短时间内不同地区登录 │ │
│ │ - 触发条件:城市变化 + 时间<30分钟 │ │
│ │ - 处理:要求二次验证 │ │
│ │ │ │
│ │ 规则3:频繁切换设备 │ │
│ │ - 同一账号频繁在不同设备切换 │ │
│ │ - 触发条件:24小时内切换>3次设备 │ │
│ │ - 处理:冻结账号24小时 + 人工审核 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────┘
```
## 10.3 数据加密
```
┌──────────────────────────────────────────────────────────────────┐
│ 数据加密方案 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 传输加密: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 客户端 ←──TLS 1.3──→ API Gateway │ │
│ │ - 证书:Let's Encrypt + 自签证书 │ │
│ │ - 密钥交换:X25519 │ │
│ │ - 加密套件:TLS_AES_256_GCM_SHA384 │ │
│ │ │ │
│ │ 客户端 ←──自定义加密──→ 加速节点 │ │
│ │ - 密钥交换:ECDH (Curve25519) │ │
│ │ - 数据加密:AES-256-GCM │ │
│ │ - 完整性:HMAC-SHA256 │ │
│ │ - 密钥轮换:每24小时 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 存储加密: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 敏感字段加密(应用层): │ │
│ │ - 手机号:AES-256-GCM 加密存储 │ │
│ │ - 邮箱:AES-256-GCM 加密存储 │ │
│ │ - 支付信息:不存储(支付平台处理) │ │
│ │ │ │
│ │ 数据库加密(存储层): │ │
│ │ - MySQL TDE (Transparent Data Encryption) │ │
│ │ - 备份文件加密 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 客户端安全: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ - 本地配置加密存储(DPAPI/Keychain │ │
│ │ - 代码混淆(VMProtect/Themida │ │
│ │ - 反调试检测 │ │
│ │ - 完整性校验 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────┘
```
## 10.4 防DDoS与防作弊
```
┌──────────────────────────────────────────────────────────────────┐
│ 防DDoS与防作弊 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 防DDoS
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 层级1:云服务商防护 │ │
│ │ - 阿里云DDoS防护(10Gbps基础防护) │ │
│ │ - Cloudflare Spectrum(游戏流量防护) │ │
│ │ │ │
│ │ 层级2:接入层防护 │ │
│ │ - SYN Cookie │ │
│ │ - 连接数限制 │ │
│ │ - IP限速 │ │
│ │ │ │
│ │ 层级3:应用层防护 │ │
│ │ - 请求频率限制 │ │
│ │ - 异常流量检测 │ │
│ │ - 自动封禁 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ 防作弊: │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 1. 加速时长作弊 │ │
│ │ - 服务端计时,不信任客户端 │ │
│ │ - 心跳验证(防止篡改时间) │ │
│ │ │ │
│ │ 2. 流量作弊 │ │
│ │ - 流量统计双端校验 │ │
│ │ - 异常流量检测 │ │
│ │ │ │
│ │ 3. 账号共享 │ │
│ │ - 设备指纹检测 │ │
│ │ - 同时在线限制 │ │
│ │ - 异地登录检测 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────┘
```