1) 【一句话结论】
在产品中处理用户敏感信息需从数据全生命周期(存储、传输、访问)实施技术加密与访问控制,并建立数据泄露风险监控与应急响应机制,确保符合《个人信息保护法》及GDPR的合规要求。
2) 【原理/概念讲解】
老师口吻解释关键环节:
- 数据存储:敏感信息(如身份证号、手机号)需加密存储,常用对称加密(如AES-256,效率高,适合大量数据)或非对称加密(如RSA,用于密钥交换)。加密后数据在数据库中不可直接读取,即使数据库泄露,攻击者也无法获取明文。
- 数据传输:所有涉及敏感信息的API请求必须通过TLS/SSL加密(如HTTPS),防止中间人窃听,确保数据在网络传输中安全。
- 访问控制:采用基于角色的访问控制(RBAC),根据角色(如风控、客服、运营)分配权限,细粒度控制敏感数据访问,比如风控团队仅能解密后访问,其他模块仅能访问加密字段。
- 数据泄露风险:通过日志审计(监控敏感字段访问频率)、异常检测(如高频访问同一敏感字段)、应急响应预案(发现泄露后立即通知用户、报告监管机构),降低泄露风险。
3) 【对比与适用场景】
| 对比项 | 存储加密(字段级/列级) | 传输加密(端到端) |
|---|
| 定义 | 数据在数据库中存储时加密 | 数据在网络传输时加密 |
| 特性 | 防止数据库泄露(物理/逻辑) | 防止中间人窃听 |
| 使用场景 | 数据库被非法访问时保护 | 网络传输阶段(如API请求) |
| 注意点 | 加密后查询性能可能下降(需优化索引) | 需确保客户端支持,证书管理(如CA认证) |
4) 【示例】
假设用户注册时,身份证号存储为加密字段:
- 存储:伪代码
encrypted_id = AES_Encrypt(user_id, secret_key),存入数据库。
- 传输:用户请求包含身份证号时,通过HTTPS传输,服务器端解密。
- 访问控制:只有风控模块(角色为
risk_manager)能访问解密后的身份证号,其他模块(如用户中心)仅能访问加密字段。
5) 【面试口播版答案】
(约80秒)
“面试官您好,处理用户敏感信息需从数据全生命周期设计。首先,数据存储上,对身份证号、手机号等敏感字段采用字段级加密(如AES-256),密钥由密钥管理系统(KMS)管理,确保数据库泄露时数据不可读。传输时,所有敏感信息API请求通过TLS 1.3加密,防止中间人窃听。访问控制上,采用RBAC,风控团队仅能解密后访问,其他模块仅能访问加密字段。对于数据泄露风险,部署日志审计系统监控异常访问,并制定应急预案,一旦发现泄露立即通知用户、报告监管机构。这样从技术、流程两方面满足《个人信息保护法》和GDPR的要求。”
6) 【追问清单】
- 问题:数据脱敏的粒度如何选择?比如身份证号是否只保留部分数字?
- 回答要点:根据业务需求,如身份证号脱敏后保留前6位和后4位(“XXXXXX1234”),既满足合规(保护隐私),又支持业务验证(如验证用户身份)。
- 问题:加密密钥如何管理?是否使用KMS?
- 回答要点:密钥由集中式密钥管理系统(如AWS KMS或自建KMS)管理,定期轮换,访问控制严格,确保密钥安全。
- 问题:如何处理数据泄露后的应急响应?具体步骤?
- 回答要点:发现泄露后,立即启动预案,通知受影响用户,报告监管机构(如网信办、数据保护局),并开展内部调查,修复漏洞。
7) 【常见坑/雷区】
- 坑1:只说加密而不提密钥管理,导致密钥泄露风险。
- 坑2:访问控制粗粒度,所有员工都能访问敏感数据,违反最小权限原则。
- 坑3:忽略传输加密,使用HTTP传输敏感信息,易被窃听。
- 坑4:数据泄露后不报告,违反法规要求。
- 坑5:脱敏粒度过大或过小,影响业务验证或用户隐私。