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

17 KiB
Raw Blame History

第十部分:安全设计

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. 账号共享                                              │   │
│  │     - 设备指纹检测                                        │   │
│  │     - 同时在线限制                                        │   │
│  │     - 异地登录检测                                        │   │
│  └──────────────────────────────────────────────────────────┘   │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘