对开发者来说,欧盟《GDPR》是一个令人头疼的问题。因为它并没有明确告诉开发者群体,需要怎么做才能保持应用程序合规。幸运的是,法国 CNIL 为此发布了一个详细指南。
CNIL,全称 Commission Nationale de l’Informatique et des Libertés,即法国国家信息与自由委员会。它是一个独立的行政机构,依据 2004 年 8 月修订的 1978 年《法国数据保护法》行使其职能。法国政府在 20 世纪 70 年代设立了一个 CNIL。作为一个独立的监察机构,CNIL 负责就具体措施提出建议,以保证任何信息技术的发展都将继续尊重个人隐私、个人权利和公共自由。
此后,该机构一直紧跟最新的行业发展,并与欧洲和国际同行密切合作,分析新技术对公民私人生活的影响。
相比 GDPR 指南,它的解决方案更具技术性,面向软件开发者而非更广泛的公众群体。
那么,这个指南包含哪些内容?
具体说来,它包含 16 个主题文件,涵盖了开发者项目中每个阶段的大部分需求,从项目准备到受众评估:
按照 GDPR 开发
识别个人数据
开发准备
保护开发环境
管理源代码
选择合适的架构
保护你的网站、应用程序和服务器
尽量减少数据收集
管理用户信息
控制使用的库和 SDK
保证代码质量和文档
测试应用程序
通知用户
为人民权利的行使做准备
定义数据保留期
在技术实施中考虑法律依据
使用网站和应用程序分析
在这个列表中,有几项非常突出,值得进一步细说。
识别个人数据
在识别个人数据中,有一些个人数据构成的示例,例如:
固定或移动电话号码、邮寄地址、电子邮件地址
IP 地址、计算机连接标识和 cookie 标识
同时,它还提到了个人数据的匿名化和假名化以及两者之间的差别。
不过,在这一点上,需要注意的是,这些指导方针相对抽象,没有涉及技术细节。换句话说,这个指南没有向你展示如何实际匿名化数据;技术解决方案由开发者自己决定。
管理你的源代码
在管理源代码中,除了其它建议外,指南还要求你实现代码质量度量工具。
该工具要在代码提交后立即扫描代码,并通过将密钥和密码保存在单独的不会被提交的文件中,来保证它们独立于源代码库之外。
此外,还需要在发生应用程序错误时,检查环境变量是否被意外地写入日志或显示。
选择合适的架构
选择合适的架构,有一个大多数人没有考虑的被低估案例:
确保自己知道托管你代码的服务器的地理位置。你可能会被要求传输数据到欧盟(European Union,EU)和欧洲经济区(European Economic Area,EEA)之外。
虽然数据可以在欧盟 / 欧洲经济区内自由传输,但只要确保充分且适当的数据保护水平,就可以在欧盟 / 欧洲经济区以外进行传输。
CNIL 提供了一张地图,显示了世界各国不同程度的数据保护级别。
保护你的网站、应用程序和服务器
在保护你的网站、应用程序和服务器上,其说明更容易上手:
实现 TLS 版本 1.2 或 1.3
强制使用 TLS
限制通讯端口
不明文存放密码
测试系统上安装的加密套件并禁用过时套件
做备份,如果可能的话,加密并做定期检查
通过安排每周自动检查来立即安装关键更新
保护互联网可访问的数据库,尽可能限制访问(例如,通过 IP 过滤)
尽量减少数据收集
尽量减少数据收集反映了《GDPR》的核心价值:
在收集前,思考你想要收集的数据的不同类型,并尽量将收集限制在严格必要的范围内。
控制你使用的库和 SDK
控制你使用的库和 SDK。当今的应用程序需要处理上百个依赖才能运行,因此,开发者在评估添加的每个依赖以及选择维护的软件、库和 SDK 的价值时,应该更好地理解其中的依赖关系。
最后,在使用网站和应用程序分析时,这个建议直指当前最具争议的话题之一——cookies,告知用户关于 cookie 的信息并寻求用户的同意。但是,根据一些条件,用于受众评估 / 分析的 cookie 可免于同意。请记住:
“无论它们的配置如何,大部分大型受众评估产品都不属于豁免范围。”
综上所述,这个指南为合规奠定了正确的基础。它们将被自上而下地遵循,在技术性方面,它们应该作为接口体现,你必须为其提供具体实现。
附:
https://www.cnil.fr/en/gdpr-developers-guide