---
id: 009
title: 实名认证（二代身份证 OCR + 人脸比对）
status: open
labels: [compliance, p0, security]
assignee: team-lead
created_at: 2026-04-23
---

# #009 实名认证

## 背景

中国相亲 / 社交类 App 2019 年网信办《互联网个人信息保护》《未成年人保护》等法规要求**强制实名**。不做实名：
- 应用商店（App Store / 国内安卓市场）无法上架
- 被举报后可能被下架 / 约谈
- 用户匿名注册 → 诈骗 / 骚扰高发

当前 xiangqin：只手机号注册，无身份核验。

## 方案

三段式核验：

### 1. 二代身份证 OCR
- 用户上传身份证正反面图片
- 云厂商 OCR API 识别姓名 + 身份证号 + 有效期
- 候选：阿里云身份证 OCR、腾讯云 OCR、百度 AI

### 2. 二要素 / 三要素核验
- 姓名 + 身份证号 → 公安数据库核验
- 三要素 = + 手机号（已注册绑定的）
- 阿里云 / 腾讯云实人认证 API

### 3. 活体 + 人脸比对
- 前端要求用户短视频 / 眨眼活体
- 服务端活体验证 + 人脸和身份证照片比对
- 阿里云 / 腾讯云人脸核身 API

## 存储

- 身份证图片：OSS **加密存储**（KMS）+ **不进 db**
- 身份证号：db 字段但 **HMAC-SHA256 hash**（类似手机号处理）
- 姓名：明文存（脱敏展示："张\*\*"）
- 核验结果 + 时间戳：db `users.verified_at` `users.verification_method`

## 成本

阿里云实人认证 ~¥0.3-0.5 / 次。xiangqin 用户规模 1000 / 月 → ¥300-500 / 月。

## 工作量估算

- 接入 OCR API + 存储：2-3 天
- 接入人脸核身：2 天
- 前端上传 + 活体流程：2 天
- 审核 / 兜底（API 挂了怎么办）：1 天
- 测试 + 上线：1-2 天

**单人全职 1.5-2 周**。

## 不做

- 不存储明文身份证号（hash 即可满足合规 + 反查）
- 不做 OCR 自研（云厂商准确度 + 合规性 > 自研）
- 不做未成年判断（二代身份证 OCR 自动返回年龄 → 业务层拒注册 < 18）

## 相关凭证

需要新 vault credential：
- aliyun RAM 子账号 with 实人认证 + OCR 权限
- 按调用计费

## 相关

- blueprint: production-readiness P0-1
- vault.json 要声明新 credential 后才能接入
