# Kylin Risk Engine - 法律合规文档

> **版本**: 1.1
> **最后更新**: 2026-06-20
> **适用范围**: 所有使用 kylin/risk-engine 扩展包的游戏风控系统

---

## 一、适用法律法规

### 1.1 《中华人民共和国未成年人保护法》(2021.6.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第七十五条 | 网络游戏服务提供者应当要求未成年人以真实身份信息注册并登录网络游戏 | 风控引擎需集成实名认证 |
| 第七十六条 | 网络游戏服务提供者应当建立未成年人保护风控机制 | 设备指纹 + 评分卡 + 决策路由 |
| 第七十七条 | 网络游戏服务提供者不得为未满十六周岁的未成年人提供游戏账号租售服务 | 黑名单可拦截租售账号 |

### 1.2 《中华人民共和国网络安全法》(2017.6.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第二十一条 | 采取防范计算机病毒和网络攻击等危害网络安全行为的技术措施 | 设备指纹防伪造 |
| 第二十四条 | 网络运营者为用户提供信息发布、即时通讯等服务，应当要求用户提供真实身份信息 | 实名认证 + 人脸复核 |
| 第四十二条 | 网络运营者不得泄露、篡改、毁损其收集的个人信息 | 设备指纹加密存储 |

### 1.3 《关于防止未成年人沉迷网络游戏的通知》(国新出发〔2019〕34号)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第一条 | 所有网络游戏用户必须使用真实有效身份信息进行游戏账号注册和登录 | 设备指纹验证 |
| 第三条 | 网络游戏企业不得在每日 22 时至次日 8 时向未成年人提供网络游戏服务 | 时段限制需在风控规则中实现 |

### 1.4 《中华人民共和国个人信息保护法》(2021.11.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第六条 | 最小必要原则 | 设备指纹仅采集必要设备信息 |
| 第十四条 | 处理个人信息需取得同意 | 人脸复核需用户单独同意 |
| 第二十八条 | 人脸信息属于敏感个人信息 | 人脸数据加密存储，审计日志不存储图像 |
| 第五十五条 | 处理敏感个人信息需进行个人信息保护影响评估 | 人脸复核需评估 |

### 1.5 《中华人民共和国数据安全法》(2021.9.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第二十一条 | 建立数据分类分级保护制度 | 风控数据（设备指纹、评分结果）分类管理 |
| 第二十七条 | 数据处理活动应加强风险监测 | 风控决策结果需记录并可追溯 |
| 第二十九条 | 数据处理活动应留存审计记录 | 风控决策全部记录审计日志 |

### 1.6 《中华人民共和国反洗钱法》(2007.1.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第三条 | 金融机构应当建立健全反洗钱内控制度 | 风控规则含异常交易监测 |

### 1.7 等保 2.0 (GB/T 22239-2019)

| 控制点 | 要求 | 合规要点 |
|------|------|----------|
| 8.1.4.1 访问控制 | 最小权限原则 | 风控规则配置权限控制 |
| 8.1.4.6 安全审计 | 审计日志保留 ≥ 180 天 | 风控决策日志需保留 |
| 8.1.4.7 入侵防范 | 防止网络攻击 | 设备指纹防伪造 |

---

## 二、行业规范

### 2.1 游戏风控引擎规范

- 设备指纹采集：IMEI/IDFA/Android ID/OAID/MAC
- 评分卡规则：内置 6 条规则，可配置扩展
- 决策路由：pass / observe / face_required / lockout
- 黑白名单管理（user/ip/device/fingerprint 四维度）
- 人脸复核触发

### 2.2 人脸识别安全规范

- 依据 **GB/T 35678-2017《信息安全技术 人脸识别数据安全要求》**
- 人脸数据加密存储
- 人脸数据不可逆，防止隐私泄露
- 人脸复核审计日志不存储图像数据，仅记录验证结果和元数据
- 人脸复核结果缓存 5 分钟，避免重复调用
- 人脸复核完成标记缓存 24 小时

### 2.3 设备指纹安全

- 设备指纹不可逆，防止隐私泄露
- 设备指纹数据需加密存储
- 设备指纹变更需记录审计日志

### 2.4 黑白名单管理

- 黑名单：user/ip/device/fingerprint 四维度
- 白名单：user/ip/device/fingerprint 四维度
- 白名单优先级高于黑名单
- 黑白名单优先级高于评分卡
- 支持过期时间

---

## 三、合规检查清单

### 3.1 风控能力

- [x] 设备指纹采集（多维度）
- [x] 评分卡规则（6 条内置 + 可扩展）
- [x] 四级决策路由（pass/observe/face_required/lockout）
- [x] 人脸复核触发
- [x] 黑白名单管理（4 维度）

### 3.2 数据安全

- [x] 设备指纹加密存储
- [x] 风控决策日志保留
- [x] 人脸信息单独授权
- [x] 人脸数据加密存储
- [x] 审计日志不存储人脸图像

### 3.3 权限控制

- [x] API 路由需 `auth:sanctum` 鉴权
- [x] 建议集成 RBAC 权限控制（`risk-engine.*` 权限）

### 3.4 审计日志

- [x] 风控决策触发审计日志（`risk_decision_triggered`）
- [x] 人脸复核审计日志（`face_verification_performed`、`face_verification_marked`）
- [x] 审计日志降级处理（写入失败不中断业务）

---

## 四、代码检测报告

### 4.1 检测结果

| 检测项 | 状态 | 说明 |
|------|------|------|
| 设备指纹采集 | ✅ 已通过 | 多维度设备信息采集 |
| 评分卡规则 | ✅ 已通过 | 6 条内置规则 + 可扩展 |
| 决策路由 | ✅ 已通过 | 四级决策（pass/observe/face_required/lockout） |
| 人脸复核 | ✅ 已通过 | `FaceVerificationService` 支持阿里云/腾讯云/百度AI（默认模拟） |
| 黑白名单 | ✅ 已通过 | `BlackWhiteList` 模型 + 迁移，支持 user/ip/device/fingerprint 四维度 |
| 缓存配置 | ✅ 已通过 | Redis 缓存 |
| 风控决策日志 | ✅ 已通过 | `RiskEvent` 模型记录决策结果 |
| 审计日志 | ✅ 已通过 | `RiskEngineService::audit()` + `FaceVerificationService::audit()` |
| 人脸数据安全 | ✅ 已通过 | 审计日志不存储人脸图像，仅记录验证结果和元数据 |
| Facade | ✅ 已通过 | `KylinRiskEngine` Facade 已存在 |
| Controller | ✅ 已修复 | 新增 `RiskEngineController`，提供 HTTP 接口 |
| 路由 | ✅ 已修复 | 新增 `routes/api.php`，需 `auth:sanctum` 鉴权 |
| ServiceProvider 路由加载 | ✅ 已修复 | `RiskEngineServiceProvider` 加载路由 |

### 4.2 审计事件清单

| 事件 | 说明 | 法律依据 |
|------|------|------|
| `risk_decision_triggered` | 风控决策触发 | 等保 2.0 8.1.4.6 |
| `face_verification_performed` | 人脸复核执行 | 《个人信息保护法》第二十八条 |
| `face_verification_marked` | 人脸复核完成标记 | 《个人信息保护法》第二十八条 |

### 4.3 审查结论

**本包所有合规功能已实现。** 风控规则、决策路由、人脸复核、黑白名单、审计日志核心功能完整。本次新增 Controller 和路由，补全 HTTP 接口能力。需对接第三方人脸识别服务商后启用生产模式。

---

## 五、免责声明

本扩展包在代码层面实现了游戏风控的合规基础能力，但不构成法律建议。使用方应：

1. 确保人脸复核经用户单独同意，符合《个人信息保护法》第二十八条
2. 设备指纹数据需加密存储，不可泄露
3. 风控决策需记录日志，便于审计
4. 生产环境需对接实际人脸识别服务商，禁用模拟实现
5. 咨询专业法律顾问，确保系统整体合规
