当数据合规要求删除部分用户记录时,如何不可篡改地留痕?
解读
面试官想验证三件事:
- 你是否理解《个人信息保护法》第47条“删除权”与第69条“举证责任倒置”的法律强制力;
- 能否在秒级响应的线上系统里,把“删数据”与“留证据”做成原子级不可拆分的操作;
- 是否具备链式证据+密码学证明的工程落地能力,而非简单打一条日志。
知识点
- 国密SM2/SM3与区块链BaaS(如长安链、蚂蚁链)的合规组合:SM3做哈希、SM2做签名,链上只存哈希,满足《电子数据取证规范》GA/T 1568-2019。
- **WORM(Write Once Read Many)**存储:阿里云OSS“合规保留策略”或华为云WORM桶,锁定期最长70年,物理级防篡改。
- 可验证删除凭证(Verifiable Deletion Receipt):对删除前镜像计算SM3,再对“删除操作+用户ID+时间戳+操作者IAM角色”做SM2签名,生成一次性QR码,用户可扫码在司法区块链验真。
- 双轨索引:生产库物理删除,冷存库AES-256-GCM加密后切片打散到多地,密钥分片托管在KMS+HSM,任何恢复需三权分立(法务、安全、运维)共同授权。
- 审计链与业务链分离:审计链走长安链国密版,业务链走内部高吞吐链,既满足跨境数据不出境,又保证性能。
答案
线上路径(以MySQL+阿里云为例):
- 收到用户“删除权”请求后,系统先冻结该行数据(乐观锁+状态字段=deleting),防止并发读写。
- 启动Flink CDC任务秒级拉取该行完整镜像,计算SM3-256哈希A,写入Kafka topic:deletion_proof。
- 调用阿里云OSS WORM桶接口,上传镜像文件,返回WORM ID,锁定期设为70年;同时把哈希A、WORM ID、用户ID、操作者RAM角色、Unix时间戳拼成结构化日志,用KMS SM2私钥签名,得到签名S。
- 通过长安链SDK把“哈希A+签名S+WORM ID”写入司法区块链,链上交易哈希TxHash即时回写到业务库deletion_receipt表,状态改为deleted。
- 原表执行物理删除(DELETE … WHERE id=?),Binlog同步到备份系统后,备份系统二次校验TxHash存在且链上未回滚,才允许GC。
- 给用户返回一次性HTTPS短链,内含TxHash与SM2签名,用户可在工信部区块链公共服务平台验真,实现“删得干净、证得到位”。
线下路径(冷数据):
- 若数据已入Hive历史分区,则采用HDFS加密区+WORM策略;删除前计算SM3哈希树,树根写入硬件SEaling卡,卡内计数器单调递增,防回滚。
- 把“树根+分区路径+删除时间”写入公司内部联盟链,链上节点由法务、合规、安全三方各持一节点,达成2/3多签才承认删除完成。
拓展思考
- 大模型微调场景:若用户数据曾用于LoRA微调,需把梯度影响系数记录进删除凭证,未来做**机器遗忘学习(Machine Unlearning)**时可直接定位参数子集,避免全量重训。
- 跨云数据一致性:当业务横跨阿里云+腾讯云,需用双向锚定方式:在阿里云侧生成删除哈希后,立即在腾讯云侧调用云API签名接口,把同一哈希写入腾讯云TBaaS,两条链通过跨链网关互验,防止“单点链回滚”导致证据失效。
- 量子前向安全:考虑到SM2在量子时代可能被破解,可在删除凭证里预置Lamport一次性签名的公钥,未来一旦量子威胁落地,可快速升级验签路径,满足长期证据有效性。