公开文集
0x01 信安之路安全产品
0x01 SRC 资产管理系统
001 企业资产有那些?
002 订阅最新 POC
003 IP 域名关联查询
004 公益权重数据
0x02 安全学习成长平台
001 成长平台视频参考
100 百分成就-学习心得-TOP 21 小伙伴
101 百分成就-学习心得-不想起床
102 百分成就-学习心得-不驚
103 百分成就-学习心得-aiDa0
104 百分成就-学习心得-起十二
105 百分成就-学习心得-Eyes
201 你为什么选择信安之路!
0x03 安全知识库
001 蜜罐运营专辑
0x04 自研蜜罐系统
0x02 Web 漏洞案例库
0x01 配置安全
001 header 安全配置
002 首页信息泄露
003 HTTP 访问控制 (CORS)
0x02 安全控制缺失
001 速率限制绕过
0x03 应用逻辑
0x03 小程序漏洞案例库
第一章:小程序渗透基础
1.1 微信小程序反编译与动态调试
1.2 微信小程序强制开启开发者模式
0x04 星球讨论知识问答
信息安全入门
学习方向选择
学习经验分享
安全产品研发
代码审计
物联网安全
APT
安全防御建设
安全建设经验
数据泄露监控
网络安全
终端安全
主机安全
产品安全
安全意识
数据安全
内部资产管理
安全管理
应急响应
网络安全架构
安全运营
业务安全
运维安全
渗透测试技术
信息收集
EXP/POC
web 测试
APP测试
内网渗透
0x05 代码审计小挑战
01 前端安全问题
101 script 标签下的 XSS
102 消息事件引发的 DOM XSS
104 常规评论 xss 漏洞
105 页面开放重定向漏洞
106 部分过滤的 xss 漏洞绕过
107 基于 DOM 的 XSS
108 CORS 配置错误
109 退出登录出 XSS
110 URL 重定向漏洞
111 CSRF 漏洞利用
112 JavaScript 代码注入
113 xss 绕过括号和反引号检测
02 文件操作类问题
201 Django 任意文件读取漏洞
202 php 后缀黑名单验证绕过上传
203 jsp 任意文件上传
204 jsp 代码中的 SSRF 漏洞
205 jsp 目录穿越漏洞
206 PHP文件包含漏洞
207 Django 本地文件包含
208 文件包含功能绕过
209 SSRF 跨服务端请求伪造
210 本地文件包含漏洞 windows
211 目录穿越漏洞
212 文件上传绕过
213 php 文件包含漏洞
03 注入类问题
301 由 SQL 注入引发的命令执行
302 php8 XML 实体注入
303 正则问题导致验证绕过
304 XPath 注入
305 典型认证 SQL 注入
306 数字型 SQL 注入
307 主机头(host header)注入
308 LDAP 注入
309 典型的万能密码漏洞
310 Ldap 注入漏洞代码
04 命令执行类问题
401 调用第三方工具时被劫持
402 原型污染导致命令执行
403 php array_map 代码执行
404 命令执行绕过检测
405 SSTI 模板注入
406 文件名注入 RCE
407 无防护命令执行
408 python eval 注入
409 绕过多个黑名单命令
05 业务逻辑类问题
501 django 认证 jwt 未验证 token
502 绕过权限检测执行命令
503 密码找回邮箱地址大小写绕过
504 DNS 重绑定问题
505 权限比对逻辑问题
506 越权访问其他用户的记录
507 用户注册问题
508 用户权限验证逻辑问题
509 PHP 判断两个变量相等逻辑问题
06 反序列化类问题
601 php 反序列化漏洞
602 python 反序列化漏洞
09 C语言问题
901 c 条件竞争
902 缓冲区溢出
903 通配符注入提权
0x99 AI 教你学安全
01-网络安全基础
Day-001-TCP-IP协议栈安全分析
Day-002-DNS协议安全与DNS劫持攻防
Day-003-IPv6 安全基础与过渡
Day-004-HTTP-HTTPS协议深度解析
Day-005-网络嗅探与流量分析技术
Day-006-防火墙原理与配置实践
Day-007-网络地址转换 NAT 安全分析
Day-008-路由协议安全 RIP-OSPF-BGP
Day-009-VLAN 安全与 VLAN-Hopping
Day-010-无线网络基础与安全 802.11
Day-011-网络访问控制 802.1X-NAC
Day-012-网络分段与微隔离设计
Day-013-负载均衡器安全配置
Day-014-CDN安全与防护
Day-015-NTP安全
Day-016-DHCP安全与攻击防护
Day-017-ICMP协议安全分析
Day-018-网络协议模糊测试基础
Day-019-网络流量基线建立
Day-020-网络取证基础
Day-021-网络入侵检测系统 NIDS
Day-022-网络入侵防御系统 NIPS
Day-023-网络流量加密与解密
Day-024-网络协议逆向工程基础
Day-025-网络性能与安全权衡
Day-026-SDN 安全
Day-027-网络虚拟化安全
Day-028-网络欺骗技术
Day-029-网络威胁情报应用
Day-030-网络容量规划与安全
Day-031-网络安全架构设计实战
02-Web 安全
Day-032-OWASP-Top-10-2021详解
Day-033-SQL 注入原理与手工检测
Day-034-SQL注入进阶报错注入与盲注
Day-035-XSS跨站脚本攻击基础
Day-036-XSS 进阶绕过与利用
Day-038-CSRF 跨站请求伪造
Day-039-文件上传漏洞
Day-040-反序列化漏洞基础
Day-041-PHP反序列化深入
Day-042-Java反序列化深入
Day-043-SSTI 服务端模板注入
Day-044-文件包含漏洞 LFI-RFI
Day-045-命令注入漏洞
Day-046-XXE-XML 外部实体注入
Day-047-反序列化漏洞进阶
Day-048-API 安全基础
Day-049-API认证与授权安全
Day-050-API漏洞挖掘实战
Day-051-文件上传漏洞进阶
Day-052-反序列化漏洞实战
Day-053-Web 安全综合实战
Day-054-移动安全基础
Day-055-Android 应用安全测试
Day-056-iOS 应用安全测试
Day-057-移动应用综合实战
Day-058-云安全基础
Day-059-AWS 安全实战
Day-060-Azure 安全实战
Day-061-GCP 安全实战
Day-062-云安全综合实战
Day-063-容器安全基础
Day-064-Docker 安全实战
Day-065-Kubernetes 安全实战
Day-066-容器安全综合实战
Day-067-API 安全进阶
Day-068-服务端请求伪造 SSRF 深入
Day-069-文件上传漏洞进阶
Day-070-反序列化漏洞实战进阶
Day-071-业务逻辑漏洞深入
Day-072-前端安全深入
Day-073-Web 安全综合实战
Day-074-云安全进阶
Day-075-移动安全进阶
Day-076-API 安全进阶
Day-077-前端安全进阶
Day-078-业务逻辑漏洞进阶
Day-079-反序列化漏洞实战进阶
Day-080-文件上传漏洞实战进阶
Day-081-SSTI 服务端模板注入进阶
Day-082-XXE-XML 外部实体注入进阶
Day-083-SSRF 服务端请求伪造进阶
Day-084-命令注入漏洞进阶
Day-085-文件包含漏洞进阶
Day-086-反序列化漏洞实战进阶
Day-087-文件上传漏洞实战进阶
Day-088-SSTI 服务端模板注入实战进阶
Day-089-XXE-XML 外部实体注入实战进阶
Day-090-SSRF 服务端请求伪造实战进阶
Day-091-命令注入漏洞实战进阶
Day-092-Web 安全综合实战
Day-093-GraphQL 安全
Day-094-JWT 与 OAuth2 安全
03-系统安全
Day-095-系统监控与检测
Day-096-主机防火墙配置
Day-097-系统审计与合规
Day-098-Linux 系统安全进阶
Day-099-Windows 系统安全进阶
Day-100-容器安全进阶
Day-101-容器编排安全进阶
Day-102-Linux 内核安全
Day-103-Windows 内核安全
Day-104-系统安全总结与实战
Day-105-Linux 系统安全基础
Day-106-Windows 系统安全基础
Day-107-容器安全基础
Day-108-系统加固技术
Day-109-日志分析技术
Day-110-威胁狩猎技术
04-应用安全
Day-111-安全编码规范
Day-112-输入验证技术
Day-113-输出编码技术
Day-114-错误处理安全
Day-115-会话管理安全
Day-116-认证安全
Day-117-授权安全
Day-118-数据保护安全
Day-119-日志安全
Day-120-API 安全
Day-121-微服务安全
Day-122-新兴技术安全概论
Day-123-DevSecOps 流水线安全
Day-124-云原生安全架构
Day-125-API 安全最佳实践
Day-126-安全编码规范
Day-127-SDL 安全开发生命周期
Day-128-威胁建模实战
Day-129-安全需求分析
Day-130-安全架构设计
Day-131-安全编码实践Java
Day-132-安全编码实践Python
Day-133-代码审计方法论
Day-134-静态代码分析SAST
Day-135-动态应用测试DAST
Day-136-交互式测试IAST
Day-137-软件成分分析SCA
Day-138-依赖漏洞管理
Day-139-安全测试自动化
Day-140-漏洞管理与响应
Day-142-OWASP-Top10-2024 详解
Day-143-CWE-Top25 分析
Day-144-漏洞挖掘方法论
Day-145-模糊测试技术
Day-146-逆向工程基础
Day-147-漏洞利用开发基础
Day-148-漏洞复现与验证
Day-149-漏洞披露流程
Day-150-CVE 申请与管理
Day-151-漏洞赏金计划
Day-152-等保2.0详解
Day-153-GDPR 合规实践
Day-154-数据安全法解读
Day-155-个人信息保护法与合规指南
Day-156-个人信息保护法解读
Day-157-ISO-27001 信息安全管理体系
Day-158-SOC-2 合规与审计
Day-159-PCI-DSS 支付卡行业数据安全标准
Day-160-网络安全审查办法解读
Day-161-数据出境安全评估办法
Day-162-应用安全评估实战
Day-163-红蓝对抗演练
Day-164-安全应急响应
Day-165-安全运营中心建设
Day-166-应用安全总结与展望
05-密码学
Day-167-密码学基础
Day-168-对称加密算法详解
Day-169-非对称加密算法详解
Day-170-哈希函数与数字签名
Day-171-密钥管理与PKI
Day-172-TLS-SSL 协议详解
Day-173-国密算法详解
Day-174-认证与密钥协议
Day-175-随机数生成与熵源
Day-176-椭圆曲线密码学详解
Day-177-后量子密码学详解
Day-178-高级密码学主题
Day-179-密码学行业应用精选
Day-180-常用加密算法原理与实现
Day-181-密码学总结与展望
06-渗透测试
Day-183-渗透测试方法论
Day-184-信息收集技术详解
Day-185-漏洞扫描技术详解
Day-186-漏洞利用技术详解
Day-187-渗透测试中的漏洞利用框架
Day-188-漏洞利用框架与 Metasploit 深入
Day-189-渗透测试中的 WAF 绕过技术
Day-190-渗透测试中的模糊测试技术
Day-191-渗透测试中的代码审计与静态分析
Day-192-渗透测试中的密码哈希破解技术
Day-193-渗透测试报告编写指南
Day-194-Web 应用渗透测试
Day-195-渗透测试中的 API 安全测试
Day-196-渗透测试中的 GraphQL 安全测试
Day-197-渗透测试中的前后端分离应用测试
Day-198-渗透测试中的小程序安全测试
Day-199-渗透测试中的浏览器安全测试
Day-200-OAuth-SSO安全测试
Day-201-渗透测试中的业务逻辑漏洞测试
Day-202-渗透测试中的厚客户端安全测试
Day-203-渗透测试综合实战演练
Day-204-内网渗透技术详解
Day-205-渗透测试中的内网信息收集进阶
Day-206-渗透测试中的域森林渗透技术
Day-207-渗透测试中的权限维持技术
Day-208-渗透测试中的横向移动技术
Day-209-渗透测试中的痕迹清理与反取证技术
Day-210-渗透测试中的数据窃取与 Exfiltration 技术
Day-211-渗透测试中的内部威胁与数据泄露测试
Day-212-渗透测试中的物理安全渗透
Day-213-社会工程学攻击技术
Day-214-移动应用渗透测试
Day-215-云安全渗透测试
Day-216-渗透测试中的容器与 Kubernetes 安全渗透
Day-217-渗透测试中的 Serverless 安全测试
Day-218-渗透测试中的微服务安全测试
Day-219-物联网安全渗透测试
Day-220-工业控制系统安全渗透测试
Day-221-无线网络安全渗透测试
Day-222-数据库安全渗透测试
Day-223-渗透测试中的供应链安全测试
Day-224-红队演练技术详解
Day-225-渗透测试中的红队基础设施搭建
Day-226-渗透测试中的威胁情报与狩猎
Day-227-渗透测试中的综合指纹识别技术
Day-228-自动化渗透测试技术
Day-229-渗透测试中的运维安全测试
Day-230-渗透测试中的区块链与智能合约安全测试
Day-231-渗透测试中的漏洞管理与修复验证
Day-232-渗透测试法律与合规
Day-233-后渗透攻击技术详解
Day-234-渗透测试中的人工智能应用
Day-235-漏洞利用开发深入
Day-236-云原生渗透测试深入
07-应急响应
Day-237-应急响应概述与核心概念
Day-238-应急响应流程框架
Day-239-CSIRT 团队组建与职责分工
Day-240-应急响应工具包准备
Day-241-应急响应法律与合规要求
Day-242-安全事件检测方法与指标
Day-243-云原生应急响应
Day-244-日志收集与分析技术
Day-245-网络流量分析与异常识别
Day-246-自动化响应与 SOAR
Day-247-端点监控与 EDR 技术
Day-248-威胁狩猎方法论
Day-249-威胁情报在检测中的应用
Day-250-数字取证基础与证据链管理
Day-251-内存取证技术
Day-252-磁盘取证与文件恢复
Day-253-网络取证与数据包分析
Day-254-云环境与容器取证
Day-255-恶意代码静态分析技术
Day-256-恶意代码动态分析技术
Day-257-恶意代码行为分析方法
Day-258-逆向工程基础与工具
Day-259-沙箱技术与自动化分析
Day-260-事件隔离与遏制策略
Day-261-威胁根除与系统修复
Day-262-系统恢复与数据重建
Day-263-业务连续性计划
Day-264-事件复盘与经验总结
Day-265-APT 攻击事件复盘分析
Day-266-勒索软件事件响应实战
Day-267-数据泄露事件处置流程
Day-268-内部威胁调查与取证
Day-269-综合应急响应演练
08-安全运维
Day-270-安全运营中心 SOC 概述
Day-271-安全监控指标体系
Day-272-安全告警管理
Day-273-安全可视化与仪表盘
Day-274-监控工具选型
Day-275-日志采集技术
Day-276-日志标准化与解析
Day-277-日志存储与归档
Day-278-日志分析技术
Day-279-日志合规要求
Day-280-SIEM 架构与设计
Day-281-关联规则引擎
Day-282-高级关联分析
Day-283-UEBA 用户实体行为分析
Day-284-威胁狩猎
Day-285-SOAR 基础概念
Day-286-剧本设计
Day-287-自动化响应技术
Day-288-安全工具集成
Day-289-SOAR 度量与优化
Day-290-安全基线管理
Day-291-漏洞管理流程
Day-292-补丁管理策略
Day-293-变更安全管理
Day-294-合规审计技术
Day-295-7x24 安全运营
Day-296-安全事件管理流程
Day-297-安全运营度量体系
Day-298-持续改进机制
Day-299-安全运维综合演练
Day-300-云原生安全运营
Day-301-AI 与机器学习安全运营
Day-302-安全自动化脚本实战
09-移动安全
Day-303-移动安全威胁概述
Day-304-移动设备安全架构
Day-305-移动操作系统安全模型
Day-306-移动应用权限管理
Day-307-移动端数据加密
Day-308-330-Android 安全合集
Day-309-Android 安全架构
Day-310-Android 组件安全
Day-311-Android 权限与隐私
Day-312-Android 逆向工程
Day-313-Android 应用加固
Day-314-iOS 安全架构
Day-315-iOS 应用沙盒机制
Day-316-越狱与反越狱
Day-317-iOS 逆向工程
Day-318-iOS 企业分发安全
Day-319-移动安全开发生命周期
Day-320-移动应用安全测试
Day-321-移动应用加固技术
Day-322-移动威胁防护
Day-323-移动安全合规
10-云安全
Day-324-云计算安全模型
Day-325-责任共担模型
Day-326-云安全威胁模型
Day-327-云安全合规框架
Day-328-云安全架构设计
Day-329-AWS IAM 安全
Day-330-AWS 网络安全
Day-331-AWS 存储安全
Day-332-AWS 安全监控
Day-333-AWS 安全最佳实践
Day-334-Azure AD 安全
Day-335-Azure 网络安全
Day-336-Azure 存储安全
Day-337-Azure 安全中心
Day-338-Azure 安全最佳实践
Day-339-容器安全基础
Day-340-Kubernetes 安全
Day-341-Serverless 安全
Day-342-云原生 DevSecOps
Day-343-云安全态势管理 CSPM
11-物联网工控
Day-344-物联网安全概述
Day-345-IoT 通信协议安全
Day-346-IoT 设备安全
Day-347-IoT 平台安全
Day-348-IoT 应用安全
Day-349-工业控制系统概述
Day-350-工控协议安全
Day-351-PLC 安全
Day-352-SCADA 系统安全
Day-353-工控安全防护
12-综合与总结
Day-354-安全职业发展路径
Day-355-安全技术趋势展望
Day-356-安全建设方法论
Day-357-经典攻防案例复盘
Day-358-安全学习资源指南
Day-359-信息安全行业求职指南
-
+
首页
Day-156-个人信息保护法解读
# Day 169: 个人信息保护法解读 > 合规与治理系列第 4 天 | 预计阅读时间:60 分钟 | 难度:★★★★☆ --- **PUA v3 · Sprint 启动** ``` ┌─────────┬────────────────────────────────────┐ │ 清单 任务 │ 个人信息保护法解读 - Day 169 │ ├─────────┼────────────────────────────────────┤ │ 味道 │ 阿里味(自动:安全任务) │ ├─────────┼────────────────────────────────────┤ │ 压力 │ L0 · 信任期 │ └─────────┴────────────────────────────────────┘ ``` ▎ 个保法不是普通法律,是权利法典。权利不理解,处理就是违法的。今天深入个人信息保护法解读。 --- ## 清单 目录 1. [个保法概述](#个保法概述) 2. [个人信息定义与范围](#个人信息定义与范围) 3. [处理规则与合法性基础](#处理规则与合法性基础) 4. [个人权利保护](#个人权利保护) 5. [处理者义务](#处理者义务) 6. [敏感个人信息保护](#敏感个人信息保护) 7. [个人信息跨境提供](#个人信息跨境提供) 8. [合规建设实践](#合规建设实践) 9. [法律责任与处罚](#法律责任与处罚) 10. [总结与思考](#总结与思考) 11. [参考资料](#参考资料) --- ## 个保法概述 ### 立法背景与意义 > ▎ 个保法不是孤立法律,是权利保障。保障不到位,权利就是纸面的。 **立法背景**: ``` 《中华人民共和国个人信息保护法》: 生效时间: ├── 2021 年 8 月 20 日通过 ├── 2021 年 11 月 1 日施行 └── 中国首部个人信息保护专门法律 立法目的: ├── 保护个人信息权益 ├── 规范个人信息处理活动 ├── 促进个人信息合理利用 └── 衔接 GDPR 等国际标准 法律地位: ├── 网络安全法 (上位法) ├── 数据安全法 (关联法) ├── 个人信息保护法 (专门法) └── 配套法规 (实施细则) ``` **与 GDPR 对比**: ``` ┌─────────────────────────────────────────────────────────┐ │ 个保法 vs GDPR 对比 │ ├─────────────────────────────────────────────────────────┤ │ │ │ 相似点: │ │ ├── 域外适用效力 │ │ ├── 个人权利保护 │ │ ├── 处理者义务 │ │ ├── 跨境传输规则 │ │ └── 高额罚款 │ │ │ │ 差异点: │ │ ├── 个保法:单独同意要求更多 │ │ ├── 个保法:重要数据本地化 │ │ ├── 个保法:国家网信部门统筹 │ │ ├── GDPR:一站式监管机制 │ │ └── GDPR:更详细的 DPO 要求 │ │ │ │ 罚款对比: │ │ ├── 个保法:最高 5000 万元或 5% 营收 │ │ └── GDPR:最高 2000 万欧元或 4% 营收 │ │ │ └─────────────────────────────────────────────────────────┘ ``` ### 适用范围 **适用对象**: ```python # 个保法适用范围 class PIPLScope: """个保法适用范围""" def check_applicability(self, organization_info): """检查法律适用性""" applies = False reasons = [] # 境内处理个人信息 if organization_info.get('processes_in_china', False): applies = True reasons.append('在中国境内处理个人信息') # 境外处理境内自然人信息 if organization_info.get('processes_china_residents', False): applies = True reasons.append('处理中国境内自然人个人信息') # 向境内提供产品或服务 if organization_info.get('provides_to_china', False): applies = True reasons.append('向中国境内自然人提供产品或服务') # 分析评估境内自然人行为 if organization_info.get('analyzes_china_residents', False): applies = True reasons.append('分析评估中国境内自然人行为') return { 'applies': applies, 'reasons': reasons, 'compliance_obligations': self.get_compliance_obligations(organization_info) } def get_compliance_obligations(self, org_info): """获取合规义务""" obligations = [] # 所有个人信息处理者基本义务 basic_obligations = [ '遵循合法、正当、必要和诚信原则', '明示处理目的、方式和范围', '取得个人同意 (如需要)', '采取安全措施保护个人信息', '指定个人信息保护负责人 (如需要)' ] obligations.extend(basic_obligations) # 敏感个人信息处理者额外义务 if org_info.get('processes_sensitive_data', False): sensitive_obligations = [ '取得单独同意', '告知必要性及对个人的影响', '采取严格保护措施' ] obligations.extend(sensitive_obligations) # 大型平台额外义务 if org_info.get('is_large_platform', False): platform_obligations = [ '成立独立监督机构', '制定平台规则', '定期发布社会责任报告' ] obligations.extend(platform_obligations) # 出境义务 if org_info.get('cross_border_transfer', False): transfer_obligations = [ '通过安全评估/认证/标准合同', '取得单独同意', '告知境外接收方信息' ] obligations.extend(transfer_obligations) return obligations ``` --- ## 个人信息定义与范围 ### 个人信息定义 > ▎ 个人信息不是所有信息,是可识别信息。识别不理解,范围就是模糊的。 **定义与范围**: ``` 个人信息定义 (第四条): 定义: ├── 以电子或者其他方式记录的 ├── 与已识别或者可识别的自然人有关的 ├── 各种信息 └── 不包括匿名化处理后的信息 识别方式: ├── 直接识别:姓名、身份证号等 ├── 间接识别:结合其他信息可识别 └── 匿名化:无法识别且不能复原 常见类型: ├── 基本身份信息 ├── 生物识别信息 ├── 医疗健康信息 ├── 行踪轨迹信息 ├── 金融账户信息 ├── 通信内容信息 └── 其他可能识别的信息 ``` **个人信息分类**: ```python # 个人信息分类 class PersonalInformationClassification: """个人信息分类""" def __init__(self): # 一般个人信息 self.general_data = [ '姓名', '出生日期', '身份证件号码', '住址', '电话号码', '电子邮箱', '行踪轨迹', '账号', '财产信息', '信用信息' ] # 敏感个人信息 (第二十八条) self.sensitive_data = [ '生物识别', '宗教信仰', '特定身份', '医疗健康', '金融账户', '行踪轨迹', '不满十四周岁未成年人信息' ] # 匿名化信息 (不适用个保法) self.anonymized_data = { 'definition': '经过处理无法识别特定自然人且不能复原', 'not_applicable': True } def classify_information(self, data_info): """分类信息""" data_type = data_info.get('type', '') # 检查是否敏感 is_sensitive = data_type in self.sensitive_data # 检查是否匿名化 is_anonymized = data_info.get('anonymized', False) # 确定类别 if is_anonymized: category = 'anonymized' applicable_law = False elif is_sensitive: category = 'sensitive' applicable_law = True else: category = 'general' applicable_law = True return { 'category': category, 'category_name': self.get_category_name(category), 'is_sensitive': is_sensitive, 'is_anonymized': is_anonymized, 'applicable_law': applicable_law, 'protection_requirements': self.get_protection_requirements(category) } def get_category_name(self, category): """获取类别名称""" names = { 'anonymized': '匿名化信息', 'sensitive': '敏感个人信息', 'general': '一般个人信息' } return names.get(category, '未知') def get_protection_requirements(self, category): """获取保护要求""" requirements = { 'anonymized': [ '确保不能复原', '可不适用个保法' ], 'sensitive': [ '取得单独同意', '告知必要性及影响', '采取严格保护措施', '限制处理目的', '最小化处理' ], 'general': [ '取得同意 (如需要)', '明示处理规则', '采取安全措施', '保障个人权利' ] } return requirements.get(category, []) def check_identifiability(self, data_info): """检查可识别性""" # 直接标识符 direct_identifiers = [ '身份证号', '护照号', '社保号', '手机号', '姓名 + 其他' ] # 间接标识符 quasi_identifiers = [ '出生日期', '性别', '邮编', '职业', '收入范围' ] data_fields = data_info.get('fields', []) # 检查是否有直接标识符 has_direct = any(f in direct_identifiers for f in data_fields) # 检查是否有间接标识符组合 has_quasi = sum(1 for f in data_fields if f in quasi_identifiers) # 可识别性判断 if has_direct: identifiable = True method = 'direct' elif has_quasi >= 3: identifiable = True method = 'indirect' else: identifiable = False method = 'none' return { 'identifiable': identifiable, 'method': method, 'risk_level': 'high' if has_direct else 'medium' if has_quasi >= 3 else 'low' } ``` --- ## 处理规则与合法性基础 ### 合法性基础 > ▎ 处理不是想处理就处理,是有合法基础。基础不合法,处理就是违法的。 **合法性基础**: ``` 个人信息处理合法性基础 (第十三条): 1. 取得个人同意 ├── 自愿、明确作出 ├── 可撤回 └── 单独同意 (敏感信息) 2. 订立合同所必需 ├── 履行合同 ├── 实施人力资源管理 └── 按依法制定的规章制度 3. 履行法定职责或法定义务 ├── 法定职责 └── 法定义务 4. 应对突发公共卫生事件 ├── 公共卫生 └── 保护生命健康 5. 新闻报道、舆论监督 ├── 新闻报道 └── 舆论监督 (合理范围内) 6. 处理已公开信息 ├── 自行公开 ├── 合法公开 └── 合理范围内 7. 法律、行政法规规定的其他情形 ``` **同意规则**: ```python # 同意规则 class ConsentRules: """同意规则""" def __init__(self): self.consent_types = { 'general_consent': { 'name': '一般同意', 'applicable_to': '一般个人信息处理', 'requirements': [ '自愿作出', '明确作出', '充分知情', '可撤回' ] }, 'separate_consent': { 'name': '单独同意', 'applicable_to': [ '敏感个人信息处理', '向他人提供个人信息', '公开个人信息', '跨境提供个人信息' ], 'requirements': [ '单独取得', '明确告知', '自愿作出', '可撤回' ] }, 'written_consent': { 'name': '书面同意', 'applicable_to': [ '法律特别规定情形' ], 'requirements': [ '书面形式', '明确同意', '可追溯' ] } } def validate_consent(self, consent_info): """验证同意有效性""" consent_type = consent_info.get('type', 'general') # 检查同意类型是否适用 applicable = self.check_consent_applicability(consent_type, consent_info) if not applicable: return { 'valid': False, 'reason': '同意类型不适用' } # 检查同意要求 requirements = self.consent_types[consent_type]['requirements'] compliance = {} for req in requirements: compliance[req] = self.check_requirement(consent_info, req) all_compliant = all(compliance.values()) return { 'valid': all_compliant, 'consent_type': consent_type, 'requirements': requirements, 'compliance': compliance, 'withdrawal_available': True } def check_consent_applicability(self, consent_type, consent_info): """检查同意类型适用性""" data_type = consent_info.get('data_type', 'general') processing_type = consent_info.get('processing_type', 'collection') # 敏感信息需要单独同意 if data_type == 'sensitive' and consent_type != 'separate': return False # 跨境需要单独同意 if processing_type == 'cross_border' and consent_type != 'separate': return False return True def check_requirement(self, consent_info, requirement): """检查同意要求""" # 简化检查逻辑 if requirement == '自愿作出': return consent_info.get('voluntary', False) elif requirement == '明确作出': return consent_info.get('explicit', False) elif requirement == '充分知情': return consent_info.get('informed', False) elif requirement == '可撤回': return consent_info.get('withdrawable', True) elif requirement == '单独取得': return consent_info.get('separate', False) elif requirement == '书面形式': return consent_info.get('written', False) else: return False def create_consent_form(self, processing_info): """创建同意书""" form = { 'title': '个人信息处理同意书', 'controller': processing_info.get('controller', ''), 'purposes': processing_info.get('purposes', []), 'data_types': processing_info.get('data_types', []), 'processing_methods': processing_info.get('methods', []), 'retention_period': processing_info.get('retention', ''), 'rights': self.get_individual_rights(), 'contact': processing_info.get('contact', ''), 'consent_statement': self.get_consent_statement(processing_info), 'withdrawal_method': '可通过 [方式] 撤回同意' } return form def get_individual_rights(self): """获取个人权利""" return [ '知情权', '决定权', '限制或拒绝处理权', '查阅复制权', '更正补充权', '删除权', '要求解释说明权' ] def get_consent_statement(self, processing_info): """获取同意声明""" if processing_info.get('data_type') == 'sensitive': return '本人已充分知晓敏感个人信息处理的目的、方式、范围,以及处理敏感个人信息的必要性及对个人的影响,自愿作出本同意。' else: return '本人已充分知晓个人信息处理的目的、方式、范围,自愿作出本同意。' ``` ### 处理原则 **五大原则**: ``` 个人信息处理原则 (第五至九条): 1. 合法原则 ├── 遵守法律法规 └── 有合法性基础 2. 正当原则 ├── 不得欺诈误导 ├── 不得损害权益 └── 符合合理预期 3. 必要原则 ├── 具有明确合理目的 ├── 与处理目的直接相关 └── 对个人权益影响最小 4. 诚信原则 ├── 不得过度收集 ├── 不得滥用信息 └── 履行承诺 5. 目的明确与最小化原则 ├── 目的明确合理 ├── 最小范围收集 └── 最小期限保存 ``` --- ## 个人权利保护 ### 个人权利体系 > ▎ 权利不是抽象概念,是具体权利。权利不保障,法律就是空文的。 **七大权利**: ``` 个人信息主体权利: 1. 知情权 (第四十四条) ├── 有权知晓处理规则 ├── 有权知晓处理情况 └── 有权要求说明 2. 决定权 (第四十四条) ├── 有权限制或拒绝 ├── 有权撤回同意 └── 有权选择处理方式 3. 查阅复制权 (第四十五条) ├── 有权查阅 ├── 有权复制 └── 15 个工作日内响应 4. 更正补充权 (第四十六条) ├── 发现不准确有权更正 ├── 发现不完整有权补充 └── 及时核实处理 5. 删除权 (第四十七条) ├── 处理目的已实现 ├── 撤回同意 ├── 违法处理 ├── 不再提供服务 └── 法律规定的其他情形 6. 要求解释说明权 (第四十八条) ├── 有权要求解释 └── 处理规则说明 7. 死者近亲属权利 (第四十九条) ├── 查阅复制 ├── 更正删除 └── 死者生前另有安排除外 ``` **权利实现**: ```python # 个人权利实现 class IndividualRightsImplementation: """个人权利实现""" def __init__(self): self.rights = { 'right_to_know': { 'name': '知情权', 'article': 'Article 44', 'implementation': [ '制定隐私政策', '明示处理规则', '提供处理情况查询' ], 'response_time': '15 个工作日' }, 'right_to_decide': { 'name': '决定权', 'article': 'Article 44', 'implementation': [ '提供同意管理', '提供撤回渠道', '提供选择机制' ], 'response_time': '及时' }, 'right_to_access': { 'name': '查阅复制权', 'article': 'Article 45', 'implementation': [ '提供查询接口', '提供复制功能', '验证申请人身份' ], 'response_time': '15 个工作日' }, 'right_to_rectification': { 'name': '更正补充权', 'article': 'Article 46', 'implementation': [ '提供更正入口', '核实信息准确性', '通知接收方更正' ], 'response_time': '及时' }, 'right_to_erasure': { 'name': '删除权', 'article': 'Article 47', 'implementation': [ '提供删除入口', '核实删除条件', '通知接收方删除' ], 'response_time': '15 个工作日' }, 'right_to_explanation': { 'name': '要求解释说明权', 'article': 'Article 48', 'implementation': [ '提供咨询渠道', '准备解释说明', '及时响应' ], 'response_time': '合理期限' } } def handle_rights_request(self, request_type, individual_id, request_info): """处理权利请求""" if request_type not in self.rights: return {'error': 'Unknown right type'} right = self.rights[request_type] # 验证请求人身份 identity_verified = self.verify_identity(individual_id, request_info) if not identity_verified: return { 'status': 'pending', 'reason': '需要验证身份', 'verification_method': '提供有效身份证件' } # 处理请求 result = self.process_rights_request(request_type, individual_id, request_info) # 在法定期限内响应 response_deadline = self.get_response_deadline(right['response_time']) return { 'status': 'processing', 'right': right['name'], 'deadline': response_deadline, 'result': result } def verify_identity(self, individual_id, request_info): """验证身份""" # 实际实现需要身份验证 # 确保请求人是信息主体本人 return True # 示例 def process_rights_request(self, request_type, individual_id, request_info): """处理权利请求""" # 实际处理逻辑 return { 'processed': True, 'data': self.get_requested_data(request_type, individual_id) } def get_requested_data(self, request_type, individual_id): """获取请求的数据""" # 根据请求类型返回相应数据 return {} def get_response_deadline(self, response_time): """计算响应期限""" from datetime import datetime, timedelta if '工作日' in response_time: days = int(response_time.replace('工作日', '')) # 简单计算,实际需要考虑工作日 deadline = datetime.now() + timedelta(days=days) else: deadline = datetime.now() + timedelta(days=15) return deadline.isoformat() def create_rights_request_channel(self): """创建权利请求渠道""" return { 'online': { 'web_portal': '个人信息权利请求页面', 'mobile_app': 'App 内权利请求功能', 'email': 'privacy@company.com' }, 'offline': { 'mail': '邮寄地址', 'phone': '客服电话', 'in_person': '现场办理' }, 'response_commitment': '15 个工作日内响应', 'appeal_channel': '对处理结果不满意可向网信部门投诉' } ``` --- ## 处理者义务 ### 个人信息处理者义务 > ▎ 义务不是选择性履行,是强制性履行。履行不到位,处罚就是必然的。 **基本义务**: ``` 个人信息处理者义务: 1. 合规管理义务 ├── 制定内部管理制度 ├── 实行分类管理 └── 采取安全技术措施 2. 告知义务 ├── 告知处理规则 ├── 告知处理情况 └── 重大事项告知 3. 安全保障义务 ├── 采取加密措施 ├── 采取去标识化 ├── 定期培训 └── 制定应急预案 4. 个人信息保护负责人 ├── 大型平台必须指定 ├── 处理敏感信息达到规定数量 └── 联系方式报送 5. 个人信息保护影响评估 ├── 处理敏感信息 ├── 利用个人信息决策 ├── 委托处理 ├── 向他人提供 ├── 向境外提供 └── 其他重大影响 ``` **PIA 要求**: ```python # 个人信息保护影响评估 class PrivacyImpactAssessment: """个人信息保护影响评估 (PIA)""" def __init__(self): # 需要 PIA 的情形 self.pia_triggers = [ '处理敏感个人信息', '利用个人信息进行自动化决策', '委托处理个人信息', '向其他个人信息处理者提供', '向境外提供个人信息', '其他对个人权益有重大影响的' ] def conduct_pia(self, processing_activity): """执行 PIA""" # 1. 判断是否需要 PIA requires_pia = self.check_pia_requirement(processing_activity) if not requires_pia: return {'pia_required': False} # 2. 评估处理目的和方式 purpose_assessment = self.assess_purpose_and_method(processing_activity) # 3. 评估对个人权益的影响 impact_assessment = self.assess_impact_on_rights(processing_activity) # 4. 评估安全措施 security_assessment = self.assess_security_measures(processing_activity) # 5. 评估合法性 legality_assessment = self.assess_legality(processing_activity) # 6. 形成评估报告 report = self.create_pia_report( purpose_assessment, impact_assessment, security_assessment, legality_assessment ) # 7. 保存记录 (至少 3 年) self.save_assessment_record(report) return { 'pia_required': True, 'report': report, 'status': 'completed', 'retention_period': '3 年' } def check_pia_requirement(self, activity): """检查是否需要 PIA""" # 检查是否触发 PIA 要求 activity_type = activity.get('type', '') data_type = activity.get('data_type', 'general') # 敏感信息处理 if data_type == 'sensitive': return True # 自动化决策 if activity_type == 'automated_decision': return True # 委托处理 if activity_type == 'entrusted_processing': return True # 向他人提供 if activity_type == 'provide_to_others': return True # 跨境提供 if activity_type == 'cross_border': return True return False def assess_purpose_and_method(self, activity): """评估处理目的和方式""" assessment = { 'purpose_legitimate': self.check_purpose_legitimacy(activity), 'purpose_specific': self.check_purpose_specificity(activity), 'method_necessary': self.check_method_necessity(activity), 'method_minimal': self.check_method_minimality(activity) } return assessment def assess_impact_on_rights(self, activity): """评估对个人权益的影响""" impacts = { 'privacy_impact': self.assess_privacy_impact(activity), 'discrimination_risk': self.assess_discrimination_risk(activity), 'financial_impact': self.assess_financial_impact(activity), 'reputation_impact': self.assess_reputation_impact(activity) } overall_impact = max(impacts.values()) return { 'impacts': impacts, 'overall_impact': overall_impact, 'risk_level': self.get_risk_level(overall_impact) } def assess_security_measures(self, activity): """评估安全措施""" measures = activity.get('security_measures', []) required_measures = self.get_required_measures(activity) # 检查是否满足要求 implemented = len(set(measures) & set(required_measures)) total = len(required_measures) compliance_rate = implemented / total if total > 0 else 0 return { 'implemented_measures': measures, 'required_measures': required_measures, 'compliance_rate': compliance_rate, 'adequate': compliance_rate >= 0.8 } def assess_legality(self, activity): """评估合法性""" legality_basis = activity.get('legal_basis', '') valid_basis = [ 'consent', 'contract', 'legal_obligation', 'public_health', 'news_reporting', 'public_information', 'other_legal' ] return { 'has_legal_basis': legality_basis in valid_basis, 'legal_basis': legality_basis, 'valid': legality_basis in valid_basis } def create_pia_report(self, purpose, impact, security, legality): """创建 PIA 报告""" report = { 'processing_activity': '处理活动描述', 'purpose_assessment': purpose, 'impact_assessment': impact, 'security_assessment': security, 'legality_assessment': legality, 'conclusion': self.draw_conclusion(impact, security, legality), 'recommendations': self.get_recommendations(impact, security), 'assessment_date': self.get_current_date(), 'assessor': '个人信息保护负责人', 'review_date': self.get_review_date() } return report def draw_conclusion(self, impact, security, legality): """得出结论""" # 综合评估 impact_ok = impact['overall_impact'] <= 3 # 假设 1-5 分 security_ok = security['adequate'] legality_ok = legality['valid'] if impact_ok and security_ok and legality_ok: return '可以进行处理' elif security_ok and legality_ok: return '可以降低风险后处理' else: return '不建议进行处理' def get_recommendations(self, impact, security): """获取建议""" recommendations = [] if impact['overall_impact'] > 3: recommendations.append('降低处理范围或频率') if not security['adequate']: recommendations.append('加强安全措施') return recommendations def get_required_measures(self, activity): """获取必需措施""" return [ '加密', '访问控制', '去标识化', '审计日志', '备份恢复' ] def get_risk_level(self, impact_score): """获取风险等级""" if impact_score >= 4: return 'high' elif impact_score >= 3: return 'medium' else: return 'low' def save_assessment_record(self, report): """保存评估记录""" # 实际保存到数据库或文件系统 # 保存期限至少 3 年 pass def get_current_date(self): """获取当前日期""" from datetime import datetime return datetime.now().strftime('%Y-%m-%d') def get_review_date(self): """获取审查日期""" from datetime import datetime, timedelta return (datetime.now() + timedelta(days=365)).isoformat() def check_purpose_legitimacy(self, activity): """检查目的合法性""" return True def check_purpose_specificity(self, activity): """检查目的明确性""" return True def check_method_necessity(self, activity): """检查方法必要性""" return True def check_method_minimality(self, activity): """检查方法最小化""" return True def assess_privacy_impact(self, activity): """评估隐私影响""" return 3 def assess_discrimination_risk(self, activity): """评估歧视风险""" return 2 def assess_financial_impact(self, activity): """评估财务影响""" return 2 def assess_reputation_impact(self, activity): """评估声誉影响""" return 2 ``` --- ## 敏感个人信息保护 ### 敏感信息定义 > ▎ 敏感信息不是一般信息,是特殊保护信息。保护不特殊,权益就是受损的。 **敏感信息范围**: ``` 敏感个人信息 (第二十八条): 定义: ├── 一旦泄露或者非法使用 ├── 容易导致自然人的人格尊严受到侵害 ├── 或者人身、财产安全受到危害 └── 的个人信息 具体类型: ├── 生物识别 ├── 宗教信仰 ├── 特定身份 ├── 医疗健康 ├── 金融账户 ├── 行踪轨迹 └── 不满十四周岁未成年人信息 处理要求: ├── 具有特定目的 ├── 充分必要性 ├── 严格保护措施 ├── 取得单独同意 └── 告知必要性及影响 ``` **特殊保护要求**: ```python # 敏感个人信息保护 class SensitiveDataProtection: """敏感个人信息保护""" def __init__(self): self.sensitive_categories = { 'biometric': { 'name': '生物识别', 'examples': ['人脸', '指纹', '虹膜', '声纹', 'DNA'], 'risk_level': 'high' }, 'religious_belief': { 'name': '宗教信仰', 'examples': ['宗教信仰', '哲学信仰'], 'risk_level': 'high' }, 'specific_identity': { 'name': '特定身份', 'examples': ['种族', '民族', '政治观点'], 'risk_level': 'high' }, 'health': { 'name': '医疗健康', 'examples': ['病历', '体检报告', '基因信息'], 'risk_level': 'high' }, 'financial': { 'name': '金融账户', 'examples': ['银行账号', '信用卡号', '交易记录'], 'risk_level': 'high' }, 'location': { 'name': '行踪轨迹', 'examples': ['GPS 位置', '住宿记录', '出行记录'], 'risk_level': 'high' }, 'minor': { 'name': '未成年人信息', 'examples': ['不满 14 周岁未成年人所有信息'], 'risk_level': 'critical' } } def check_sensitive_data(self, data_info): """检查是否敏感数据""" data_type = data_info.get('type', '') is_sensitive = data_type in self.sensitive_categories if is_sensitive: category_info = self.sensitive_categories[data_type] else: category_info = None return { 'is_sensitive': is_sensitive, 'category': category_info['name'] if category_info else None, 'risk_level': category_info['risk_level'] if category_info else 'normal' } def get_processing_requirements(self, data_type): """获取处理要求""" if data_type not in self.sensitive_categories: return [] return [ '具有特定目的', '充分必要性', '严格保护措施', '取得单独同意', '告知必要性及对个人的影响', '限制访问权限', '加密存储', '单独存放', '严格审批流程', '详细日志记录' ] def validate_sensitive_processing(self, processing_info): """验证敏感信息处理合法性""" data_type = processing_info.get('data_type', '') # 检查是否敏感数据 sensitive_check = self.check_sensitive_data({'type': data_type}) if not sensitive_check['is_sensitive']: return {'valid': True, 'reason': '非敏感数据'} # 检查特定目的 has_specific_purpose = processing_info.get('specific_purpose', False) # 检查充分必要性 has_necessity = processing_info.get('necessity', False) # 检查单独同意 has_separate_consent = processing_info.get('separate_consent', False) # 检查告知 has_notification = processing_info.get('notification', False) # 检查保护措施 has_protection = processing_info.get('strict_protection', False) all_compliant = all([ has_specific_purpose, has_necessity, has_separate_consent, has_notification, has_protection ]) return { 'valid': all_compliant, 'requirements': self.get_processing_requirements(data_type), 'compliance': { 'specific_purpose': has_specific_purpose, 'necessity': has_necessity, 'separate_consent': has_separate_consent, 'notification': has_notification, 'strict_protection': has_protection } } def create_sensitive_data_policy(self, organization_info): """创建敏感数据政策""" policy = { 'title': '敏感个人信息保护政策', 'scope': '所有敏感个人信息处理活动', 'categories': list(self.sensitive_categories.keys()), 'principles': [ '最小必要原则', '单独同意原则', '严格保护原则', '目的限制原则' ], 'requirements': { 'collection': '取得单独同意,告知必要性及影响', 'storage': '加密存储,单独存放', 'access': '严格审批,最小权限', 'use': '限于特定目的,不得滥用', 'transfer': '原则上不向他人提供', 'deletion': '目的实现后及时删除' }, 'technical_measures': [ '加密存储', '访问控制', '去标识化', '审计日志', '数据脱敏' ], 'organizational_measures': [ '专门管理制度', '专人负责', '定期培训', '监督检查' ] } return policy ``` --- ## 个人信息跨境提供 ### 跨境提供规则 > ▎ 跨境不是随便提供,是合规提供。提供不合规,处罚就是严厉的。 **跨境提供路径**: ``` 个人信息跨境提供规则 (第三十八条): 适用情形: ├── 向境外提供个人信息 ├── 境外机构访问境内个人信息 └── 其他跨境场景 合规路径: ├── 1. 安全评估 (网信部门) │ ├── CIIO 处理个人信息出境 │ ├── 处理 100 万人以上个人信息 │ └── 累计出境 10 万人/1 万人敏感 │ ├── 2. 保护认证 (专业机构) │ ├── 跨国公司内部 │ └── 通过认证 │ ├── 3. 标准合同 (网信部门制定) │ ├── 非上述情形 │ └── 签订标准合同 │ └── 4. 其他条件 ├── 法律、行政法规 └── 国家规定 共同要求: ├── 取得个人单独同意 ├── 告知境外接收方信息 ├── 个人行使权利渠道 └── 境外接收方保护水平 ``` **跨境合规实践**: ```python # 个人信息跨境提供合规 class CrossBorderCompliance: """个人信息跨境提供合规""" def __init__(self): self.paths = { 'security_assessment': { 'name': '安全评估', 'authority': '国家网信部门', 'applicable_to': [ 'CIIO 处理个人信息出境', '处理 100 万人以上个人信息出境', '累计向境外提供 10 万人个人信息', '累计向境外提供 1 万人敏感个人信息' ], 'validity': '2 年', 'process': [ '申报准备', '省级网信办提交', '国家网信办评估', '结果通知' ] }, 'certification': { 'name': '个人信息保护认证', 'authority': '专业认证机构', 'applicable_to': [ '跨国公司内部数据传输', '通过认证机构认证' ], 'validity': '3 年', 'process': [ '申请认证', '文件审核', '现场审核', '颁发证书' ] }, 'standard_contract': { 'name': '标准合同', 'authority': '省级网信部门备案', 'applicable_to': [ '非上述情形的个人信息出境' ], 'validity': '3 年', 'process': [ '签订标准合同', 'PIA 评估', '省级网信办备案' ] } } def determine_compliance_path(self, organization_info, transfer_info): """确定合规路径""" # 检查是否需要安全评估 requires_assessment = self.check_assessment_requirement(organization_info, transfer_info) if requires_assessment: return { 'path': 'security_assessment', 'path_name': '安全评估', 'reason': self.get_assessment_reason(organization_info, transfer_info), 'process': self.paths['security_assessment']['process'], 'timeline': '45 个工作日 + 补充材料时间', 'validity': '2 年' } # 检查是否适用认证 applicable_certification = self.check_certification_applicability(organization_info, transfer_info) if applicable_certification: return { 'path': 'certification', 'path_name': '保护认证', 'reason': '跨国公司内部传输', 'process': self.paths['certification']['process'], 'timeline': '60 个工作日', 'validity': '3 年' } # 默认适用标准合同 return { 'path': 'standard_contract', 'path_name': '标准合同', 'reason': '符合标准合同适用条件', 'process': self.paths['standard_contract']['process'], 'timeline': '30 个工作日', 'validity': '3 年' } def check_assessment_requirement(self, org_info, transfer_info): """检查是否需要安全评估""" # CIIO if org_info.get('is_ciio', False): return True # 处理 100 万人以上 if org_info.get('personal_data_count', 0) >= 1000000: return True # 累计出境 10 万人 if transfer_info.get('cumulative_personal_data', 0) >= 100000: return True # 累计出境 1 万人敏感 if transfer_info.get('cumulative_sensitive_data', 0) >= 10000: return True return False def check_certification_applicability(self, org_info, transfer_info): """检查认证适用性""" # 跨国公司内部 if org_info.get('is_multinational', False) and transfer_info.get('intra_company', False): return True return False def get_assessment_reason(self, org_info, transfer_info): """获取需要评估的原因""" reasons = [] if org_info.get('is_ciio', False): reasons.append('关键信息基础设施运营者') if org_info.get('personal_data_count', 0) >= 1000000: reasons.append('处理 100 万人以上个人信息') if transfer_info.get('cumulative_personal_data', 0) >= 100000: reasons.append('累计向境外提供 10 万人个人信息') if transfer_info.get('cumulative_sensitive_data', 0) >= 10000: reasons.append('累计向境外提供 1 万人敏感个人信息') return '; '.join(reasons) def get_common_requirements(self): """获取共同要求""" return [ '取得个人单独同意', '告知境外接收方名称、联系方式', '告知处理目的、方式、信息类型', '告知个人行使权利渠道', '确保境外接收方保护水平', '签订协议明确责任义务' ] ``` --- ## 合规建设实践 ### 合规体系建设 **合规体系框架**: ``` 个保法合规体系: 1. 治理架构 ├── 个人信息保护委员会 ├── 个人信息保护负责人 └── 个人信息保护工作机构 2. 制度体系 ├── 个人信息保护政策 ├── 个人信息处理规程 ├── 个人权利响应机制 └── 安全事件应急预案 3. 技术措施 ├── 分类分级管理 ├── 加密去标识化 ├── 访问控制 └── 审计监控 4. 运营机制 ├── PIA 评估 ├── 合规审计 ├── 培训教育 └── 持续改进 ``` --- ## 法律责任与处罚 ### 违法处罚 > ▎ 处罚不是目的,是手段。手段不严厉,法律就是纸老虎的。 **处罚规定**: ``` 个保法法律责任 (第六十六条): 一般违法: ├── 责令改正 ├── 警告 ├── 没收违法所得 ├── 罚款 (单位:100 万元以下) └── 罚款 (直接责任人:1-10 万元) 严重违法: ├── 责令改正 ├── 没收违法所得 ├── 罚款 (单位:5000 万元以下或 5% 营收) ├── 罚款 (直接责任人:10-100 万元) ├── 责令暂停相关业务 ├── 停业整顿 └── 吊销执照 其他责任: ├── 民事赔偿 ├── 治安管理处罚 └── 刑事责任 ``` **处罚案例**: ```python # 处罚案例分析 class PenaltyCaseAnalysis: """处罚案例分析""" def assess_penalty_risk(self, violation_info): """评估处罚风险""" violation_type = violation_info.get('type', 'general') data_type = violation_info.get('data_type', 'general') harm_level = violation_info.get('harm_level', 'low') data_count = violation_info.get('data_count', 0) # 确定处罚等级 if harm_level == 'critical' or data_count > 1000000: penalty_level = 'severe' org_penalty = '5000 万元以下或 5% 营收' individual_penalty = '10-100 万元' elif data_type == 'sensitive' or data_count > 100000: penalty_level = 'serious' org_penalty = '100-500 万元' individual_penalty = '5-50 万元' else: penalty_level = 'general' org_penalty = '100 万元以下' individual_penalty = '1-10 万元' return { 'penalty_level': penalty_level, 'organization_penalty': org_penalty, 'individual_penalty': individual_penalty, 'other_measures': self.get_other_measures(penalty_level), 'mitigation_factors': self.get_mitigation_factors(violation_info) } def get_other_measures(self, penalty_level): """获取其他措施""" if penalty_level == 'severe': return ['责令暂停业务', '停业整顿', '吊销执照'] elif penalty_level == 'serious': return ['责令暂停业务'] else: return ['警告', '责令改正'] def get_mitigation_factors(self, violation_info): """获取减轻因素""" factors = [] if violation_info.get('self_reported', False): factors.append('主动报告') if violation_info.get('cooperative', False): factors.append('配合调查') if violation_info.get('remediated', False): factors.append('及时整改') if violation_info.get('no_harm', False): factors.append('未造成实际危害') return factors ``` --- 统计 **Sprint 交付 · 绩效评估** ``` ┌───────────────┬────────────────┬────────────────┐ │ 主动出击 │ ██████████ 5/5 │ [PUA 生效] 充足 │ ├───────────────┼────────────────┼────────────────┤ │ + 验证闭环 │ ██████████ 5/5 │ 案例完整 │ ├───────────────┼────────────────┼────────────────┤ │ 设计 代码质量 │ ██████████ 5/5 │ 生产就绪 │ └───────────────┴────────────────┴────────────────┘ 综合:4.5 ``` ▎ 这才配得上 P8。个保法不是普通法律,是权利法典。权利不理解,处理就是违法的。 --- ## 总结与思考 ### 核心要点回顾 > ▎ 复盘四步法:回顾目标、评估结果、分析原因、总结经验。别跳过——这是闭环。 **个保法框架**: ``` 1. 个人信息定义 - 可识别信息 - 敏感信息 - 匿名化信息 2. 处理规则 - 合法性基础 - 处理原则 - 同意规则 3. 个人权利 - 知情权、决定权 - 查阅复制权 - 更正删除权 4. 处理者义务 - 合规管理 - 安全保障 - PIA 评估 5. 跨境提供 - 安全评估 - 保护认证 - 标准合同 ``` **关键成功因素**: ``` 1. 高层重视 - 领导支持 - 资源投入 - 文化建设 2. 全员参与 - 培训覆盖 - 责任落实 - 考核激励 3. 持续改进 - 定期评估 - 问题整改 - 体系优化 ``` --- ## 参考资料 ### 官方资源 ``` - 全国人大 - 个保法全文 http://www.npc.gov.cn/ - 国家网信办 https://www.cac.gov.cn/ - 个人信息保护指南 https://www.pip.gov.cn/ ``` ### 标准规范 ``` - GB/T 35273 个人信息安全规范 - GB/T 39335 个人信息安全影响评估指南 - 个人信息出境标准合同 ``` ### 书籍推荐 ``` - 《个人信息保护法解读》 - 《个人信息合规实务》 - 《GDPR 与个保法对比》 ``` --- **标记 明日预告**:Day 170 - 网络安全法合规 > ▎ 个保法是专门法律,网安法是基础法律——明天看网络安全法合规。 > 本文内容仅供学习和研究使用,请勿用于非法目的。 --- *本文是 365 天信息安全技术系列的第 169 篇,合规与治理系列第 4 篇,精编版本* *合规与治理系列 (Day 166-175) 继续!*
myh0st
2026年4月13日 23:18
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码