3.2 个人信息保护与 GDPR
一句话
个保法 / GDPR 的核心不是 “加密存储”,而是三件事:有合法性基础、只收最小必要、全程可追溯;而这三件事的前提是 “先知道哪些字段是个人信息、哪些是敏感个人信息”——分类分级没做,后面全是空谈。
合法性基础(必须先选一个)
| 基础 | 适用 | 注意 |
|---|---|---|
| 同意 | 营销、非必要 cookie、画像 | 要 “具体、知情、可撤回”,不能捆绑 |
| 合同必需 | 下单、配送、售后 | 只限 “履行合同确实需要” 的字段 |
| 法定义务 | 实名、反洗钱、税务 | 要有明确法条依据 |
| 公共利益/紧急情况 | 防疫、救援 | 严格限定场景 |
| 正当利益(GDPR) | 反欺诈、安全 | 需做 “利益平衡评估” |
一句话判据:“这个字段不收集,业务还能不能做?” 能,就不该收(最小必要)。
敏感个人信息(处理要求更高)
| 类别 | 例子 | 额外要求 |
|---|---|---|
| 生物识别 | 指纹、人脸 | 单独同意 + 加密/本地比对 |
| 医疗健康 | 病历、用药 | 单独同意 + 严格权限 |
| 金融账户 | 卡号、流水 | 单独同意 + 脱敏展示 |
| 行踪轨迹 | 定位、出行 | 单独同意 + 最短留存 |
| 不满 14 周岁未成年人 | 儿童信息 | 监护人同意 |
数据主体权利与时限
| 权利 | 对应系统能力 |
|---|---|
| 访问/复制 | 导出接口(含 “我有哪些数据”) |
| 更正 | 修改 + 审计 |
| 删除(被遗忘) | 级联删除/匿名化(含备份与派生数据) |
| 可携带 | 结构化导出(JSON/CSV) |
| 撤回同意 | 开关 + 下游同步停止处理 |
| 泄露通报 | 发现后 72 小时内(GDPR)通知监管 |
关键难点是 “删除要删干净”:主库、缓存、搜索索引、数仓、备份、日志都要处理——这需要数据地图(字段级血缘),否则只能删主库,留下大量副本。
代码:字段级分类分级 + 脱敏策略
# 一份可执行的“数据地图”片段:每个字段都要有分类、合法基础、留存、脱敏
fields:
user.phone: {class: 个人信息, basis: 合同必需, retention: 账号存续期, mask: "138****1234"}
user.id_card: {class: 敏感个人信息, basis: 法定义务, retention: 法定年限, encrypt: true, mask: "****"}
user.face: {class: 敏感个人信息, basis: 单独同意, retention: 30天, encrypt: true, local_match: true}
order.addr: {class: 个人信息, basis: 合同必需, retention: 2年, mask: "省市区***"}
-- 对外查询用脱敏视图,而不是把原始字段直接暴露
CREATE VIEW v_user AS
SELECT id, mask_phone(phone) AS phone, mask_id_card(id_card) AS id_card FROM user;
反模式
| 反模式 | 后果 |
|---|---|
| 用 “一揽子同意” 覆盖所有处理 | 同意无效,处罚风险 |
| 收集 “以后可能有用” 的字段 | 违反最小必要,删除成本高 |
| 删除只删主库 | 缓存/索引/数仓/备份仍留存,等于没删 |
| 敏感字段明文存日志 | 日志成为最大泄露面 |
| 没有数据地图 | 无法回答 “这个人的数据在哪”,权利请求无法履行 |
| 跨境传输不评估 | 违反出境规定(见 3.3 数据出境与数据主权) |
三条铁律
🔑 先分类分级,再谈保护;不知道是什么,就保护不了。
🔑 最小必要:不收集,就没有泄露风险。
🔑 删除要覆盖 “所有副本”,否则等于没删。
自检
Q1 为什么 “用户点了同意” 还可能不合规?
▸ 答案:因为同意要满足 具体、知情、自愿、可撤回:捆绑在隐私政策里的 “一揽子同意”、默认勾选、以 “不用就不给用” 胁迫,都可能被认定无效。而且同意只对 “告知过的目的” 有效,超范围使用仍需重新取得同意。
Q2 “最小必要” 怎么判断?
▸ 答案:问 “不收集这个字段,业务能不能完成”:注册只要手机号,就不该强制要身份证;配送只要地址,就不该要生日。同时要问 “精度是否必要”(定位到街道 vs 精确坐标)与 “留存是否必要”(用完即删 vs 永久保存)。
Q3 删除请求为什么容易 “删不干净”?
▸ 答案:因为数据有多份副本:主库、缓存、搜索引擎、数仓、日志、备份、以及派生的画像/推荐特征。没有字段级数据地图与级联删除机制,只能删主库,其他副本仍在——从合规角度等于没删。
Q4 敏感个人信息为什么要 “单独同意”?
▸ 答案:因为它的泄露后果更严重(生物识别不可更改、医疗信息影响就业/保险),法律要求单独告知 + 单独同意,不能与其他条款混在一起。技术上还要配 “加密存储、最小权限、最短留存”。
Q5 72 小时通报是 “从什么时候开始算”?
▸ 答案:从 “知悉泄露” 开始算(不是从泄露发生),且要求说明 “性质、影响、已采取的措施”。所以内部要有 “发现 → 判定 → 上报” 的流程与值班机制;没有流程,等查清楚再报就超时了。
Q6 日志里出现手机号,算不算违规?
▸ 答案:风险很高:日志往往访问面广、留存久、缺少脱敏,一旦泄露就是批量泄露。合规做法是 “日志脱敏(掩码/哈希)+ 限制访问 + 短期保留”,并对 “排查需要明文” 的场景做单独审批与审计。
Q7 个保法与 GDPR 的差别,工程上要注意什么?
▸ 答案:GDPR 更强调 “问责(accountability)”:要能证明合规(记录处理活动、DPIA、同意记录);个保法强调 “告知-同意 + 单独同意 + 出境规则”。工程上共同点是 “数据地图 + 同意管理 + 权利响应 + 泄露流程”,差别在 “出境” 与 “记录义务” 的细节。