属于我们的Compliance & Regulation系列
阅读完整指南隐私设计:软件开发团队实用指南
“设计保护隐私”不是一项建议,而是 GDPR 第 25 条中的一项法律要求。 组织必须实施“适当的技术和组织措施”,以确保数据保护原则融入到处理本身中。然而,大多数开发团队都将隐私视为事后的想法,在架构确定后才添加同意书和 cookie 横幅。
本指南将隐私设计的七个基本原则转化为可操作的工程实践、设计模式和代码级实现。
要点
- 隐私设计意味着将隐私嵌入到架构决策中,而不是稍后将其添加为功能
- 模式级别的数据最小化从一开始就防止过度收集
- 假名化和加密在发生违规时提供深度防御
- 隐私保护分析可以在不暴露个人用户数据的情况下提供业务洞察
适用于软件的七个原则
1. 主动而非被动
在收集数据之前而不是在数据泄露之后建立隐私控制。
实践中:
- 将隐私要求纳入用户故事验收标准中
- 在架构审查期间运行隐私威胁模型
- 为每个涉及用户数据的拉取请求创建隐私清单
2.默认设置为隐私
用户不需要采取行动来保护他们的隐私。
实践中:
- 新用户帐户默认最小数据共享
- 分析跟踪是选择加入,而不是选择退出
- 个人资料可见性默认为私人
- 数据保留默认为所需的最短期限
// Default privacy settings for new users
const DEFAULT_PRIVACY_SETTINGS = {
profileVisibility: 'private', // Not 'public'
analyticsTracking: false, // Opt-in required
marketingEmails: false, // Opt-in required
dataSharing: false, // Opt-in required
activityLog: true, // Security feature, on by default
twoFactorAuth: true, // Security feature, on by default
};
3. 设计中融入隐私
隐私是系统的核心组件,而不是附加组件。
数据库架构设计:
-- Privacy-aware schema design
CREATE TABLE users (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
-- Separate PII from operational data
email VARCHAR(255) NOT NULL, -- PII
email_hash VARCHAR(64) NOT NULL, -- For lookups without exposing email
name_encrypted BYTEA, -- Encrypted at rest
-- Operational fields (non-PII)
role VARCHAR(50) NOT NULL DEFAULT 'user',
created_at TIMESTAMP DEFAULT NOW(),
-- Privacy metadata
consent_timestamp TIMESTAMP,
consent_version VARCHAR(20),
data_retention_until TIMESTAMP,
deletion_requested_at TIMESTAMP
);
-- Separate sensitive data into its own table with stricter access
CREATE TABLE user_pii (
user_id UUID PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE,
phone_encrypted BYTEA,
address_encrypted BYTEA,
date_of_birth_encrypted BYTEA,
-- Audit trail
last_accessed_at TIMESTAMP,
last_accessed_by UUID
);
4. 完整功能(正和)
隐私不应以牺牲功能为代价。设计能够同时满足这两种需求的系统。
示例:不要在个性化和隐私之间进行选择,而是使用保护隐私的个性化:
- 联邦学习:基于本地数据训练的机器学习模型,仅共享聚合结果
- 差异隐私:向分析添加噪音以防止个人身份识别
- 设备上处理:在用户设备上而不是服务器上计算的推荐
5. 端到端安全
在数据的整个生命周期中保护数据。
| 生命周期阶段 | 安全措施 |
|---|---|
| 收藏 | TLS 1.3 传输中,输入验证 |
| 加工 | 内存安全处理,不记录 PII |
| 存储 | AES-256 静态加密、密钥管理 |
| 分享 | 加密通道、与收件人的 DPA |
| 档案 | 加密存档、访问日志记录 |
| 删除 | 密码擦除、验证 |
6. 可见性和透明度
用户必须了解他们的数据会发生什么。
实施:
// Privacy dashboard API endpoint
@Controller('privacy')
export class PrivacyController {
@Get('my-data')
@ApiOperation({ summary: 'Get all personal data (GDPR Art. 15)' })
async getMyData(@Req() req: AuthenticatedRequest) {
return {
profile: await this.userService.getProfile(req.user.sub),
orders: await this.orderService.getUserOrders(req.user.sub),
supportTickets: await this.supportService.getUserTickets(req.user.sub),
loginHistory: await this.authService.getLoginHistory(req.user.sub),
consentRecords: await this.consentService.getUserConsents(req.user.sub),
dataProcessors: this.getDataProcessorList(),
};
}
@Post('export')
@ApiOperation({ summary: 'Export personal data (GDPR Art. 20)' })
async exportMyData(@Req() req: AuthenticatedRequest) {
// Generate machine-readable export (JSON)
return this.privacyService.generateDataExport(req.user.sub);
}
@Post('delete')
@ApiOperation({ summary: 'Request data deletion (GDPR Art. 17)' })
async requestDeletion(@Req() req: AuthenticatedRequest) {
return this.privacyService.initiateDataDeletion(req.user.sub);
}
}
7. 尊重用户隐私
将用户置于每个设计决策的中心。
隐私保护架构模式
模式 1:数据分离
将个人身份信息与操作数据分开:
[Frontend] --> [API Gateway] --> [Application Service]
|
+----------------+----------------+
| |
[Operational DB] [PII Vault]
(Orders, products, (Names, emails,
analytics - by ID) addresses - encrypted)
模式 2:同意驱动的处理
// Consent middleware
async function requireConsent(purpose: string) {
return async (req: Request, res: Response, next: NextFunction) => {
const consent = await consentService.check(req.user.id, purpose);
if (!consent.granted) {
throw new ForbiddenException(
`Processing for "${purpose}" requires user consent`
);
}
next();
};
}
// Usage
@Get('recommendations')
@UseGuards(requireConsent('personalization'))
async getRecommendations(@Req() req: AuthenticatedRequest) {
return this.recommendationService.getForUser(req.user.sub);
}
模式 3:数据自动过期
// TTL-based data retention
const RETENTION_POLICIES = {
supportTickets: { days: 1095, action: 'anonymize' }, // 3 years
recruitmentData: { days: 730, action: 'delete' }, // 2 years
analyticsEvents: { days: 365, action: 'aggregate' }, // 1 year
sessionLogs: { days: 90, action: 'delete' }, // 90 days
tempUploads: { days: 7, action: 'delete' }, // 7 days
};
第三方集成中的隐私
每个第三方集成都存在潜在的隐私风险。当您的应用程序将用户数据发送到外部服务时,您需要负责该服务如何处理它。
集成隐私评估
在集成任何处理用户数据的第三方服务之前:
| 评估问题 | 如果是,则采取行动 |
|---|---|
| 该服务是否接收 PII? | 需要 DPA,评估数据处理 |
| 数据会离开欧洲经济区吗? | 实施转移机制(SCC) |
| 该服务是否经过 SOC2 / ISO 27001 认证? | 验证认证是否有效 |
| 该服务可以访问明文数据吗? | 考虑客户端加密 |
| 该服务是否将数据用于其自身目的? | 确保 DPA 禁止这样做 |
常见集成隐私风险
分析:Google Analytics、Mixpanel 和类似服务接收用户行为数据。使用服务器端分析或无 cookie 的替代方案(Plausible、Fathom)来最大程度地减少数据暴露。
支付处理:Stripe、PayPal 和类似服务处理财务数据。使用其托管支付表单(Stripe Elements)来避免 PCI-DSS 范围扩展。切勿记录完整的信用卡号码。
电子邮件服务:SendGrid、Mailgun 和类似服务处理电子邮件地址和消息内容。确保电子邮件服务提供商拥有已签署的 DPA,并且不会将您的收件人数据用于广告目的。
客户支持:Zendesk、Intercom 和类似服务存储可能包含 PII 的客户对话。在支持平台中配置数据保留并确保 DPA 涵盖所有数据类型。
开发人员清单
对于每个涉及用户数据的功能
- 此功能收集哪些个人数据? (记录下来)
- 征收的法律依据是什么? (同意、合同、合法权益)
- 这是所需的最少数据吗? (数据最小化)
- 我们会保留它多久? (保留政策)
- 谁有权访问? (最小权限)
- 静态和传输过程中是否加密? (安全)
- 用户可以访问、导出和删除其数据吗? (权利)
- 是否出于审计目的而记录? (问责制)
- 是否跨越国界? (转移机制)
- 如果风险较高,是否已完成 DPIA? (评估)
常见问题
隐私设计仅适用于 GDPR?
不会。虽然 GDPR 使其成为一项法律要求(第 25 条),但通过设计保护隐私是全球公认的最佳实践。加利福尼亚州的 CPRA、巴西的 LPD 和印度的 DPDP 都包含将隐私嵌入系统设计的类似要求。实施隐私设计以实现 GDPR 合规性会自动满足大多数其他司法管辖区的要求。
我们如何将隐私改进到现有应用程序中?
优先考虑:(1) 审核您拥有的个人数据及其所在位置,(2) 实施数据主体请求工作流程(访问、删除、导出),(3) 为静态敏感数据添加加密,(4) 实施保留策略和自动删除,(5) 在缺失的地方添加同意管理。这并不理想,但首先解决了最高风险的差距。
隐私设计是否意味着我们不能使用分析?
不。这意味着负责任地使用分析。汇总数据而不是单独跟踪。使用无 cookie 的分析(Plausible、Fathom)来获取网站指标。对于产品分析,收集没有 PII 的事件或假名标识符。对于 A/B 测试,请使用服务器端分配,而不使用客户端跟踪 cookie。隐私和分析与深思熟虑的设计兼容。
我们如何在 Odoo 中实施隐私设计?
Odoo 提供了多种内置隐私功能:用户访问组(每个模块访问控制)、审核日志记录(记录上的聊天记录)和数据归档。通过以下方式增强这些功能:敏感数据的加密自定义字段、使用计划操作的自动保留规则、使用自定义报告的 GDPR 数据导出功能以及对联系人记录的同意跟踪。 ECOSIRE 的 Odoo 定制服务 包括隐私设计实施。
接下来会发生什么
设计隐私是一门工程学科。将其与用于生命周期管理的数据保留策略、用于网络属性的cookie同意实施以及用于内部系统的员工数据隐私配对。
联系 ECOSIRE 获取设计隐私咨询和软件架构审查。
由 ECOSIRE 发布——帮助企业将隐私融入到每一行代码中。
作者
ECOSIRE Research and Development Team
在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。
相关文章
现代企业的 API 优先战略:架构、集成和增长
构建 API 优先战略,连接您的业务系统,实现合作伙伴集成,并通过平台思维创造新的收入机会。
现代应用程序的 API 网关模式和最佳实践
实施 API 网关模式,包括速率限制、身份验证、请求路由、断路器和 API 版本控制,以实现可扩展的 Web 架构。
Cookie 同意实施指南:合法合规的同意管理
实施符合 GDPR、ePrivacy、CCPA 和全球法规的 cookie 同意。涵盖同意横幅、cookie 分类和 CMP 集成。
更多来自Compliance & Regulation
审计准备清单:您的 ERP 如何使审计速度加快 60%
使用 ERP 系统完成审核准备清单。通过适当的文档、控制和自动证据收集,将审计时间减少 60%。
Cookie 同意实施指南:合法合规的同意管理
实施符合 GDPR、ePrivacy、CCPA 和全球法规的 cookie 同意。涵盖同意横幅、cookie 分类和 CMP 集成。
跨境数据传输法规:驾驭国际数据流
通过 SCC、充分性决策、BCR 以及 GDPR、英国和亚太地区合规性的传输影响评估来应对跨境数据传输法规。
按地区划分的网络安全监管要求:全球企业合规地图
了解美国、欧盟、英国、亚太地区和中东的网络安全法规。涵盖 NIS2、DORA、SEC 规则、关键基础设施要求和合规时间表。
数据治理与合规性:科技公司完整指南
完整的数据治理指南,涵盖合规框架、数据分类、保留政策、隐私法规和科技公司的实施路线图。
数据保留策略和自动化:保留您需要的内容,删除您必须的内容
根据 GDPR、SOX 和 HIPAA 的法律要求、保留计划、自动执行和合规性验证来构建数据保留策略。