前言
去年12月20日,某知名汽车品牌发生了数据泄露事件,而且泄露的数据包含用户个人隐私数据,也包含了公司的运营销售信息等商业机密数据。泄露的个人隐私信息将用户暴露于短信、电话骚扰甚至电信诈骗的危害之下,同时也造成了用户对企业的信任危机,企业也将会面临监管的调查。
而在不久之前的12月13号,“通信行程卡”小程序下线后,各大通信运营商随即发布了删除相关数据的通告。通信行程码中保存了个人身份信息和个人行程信息等敏感隐私数据。如果因为该数据的泄露,很可能会导致一些电信诈骗案件出现,对个人危害极大。业务下线后,运营商通过删除了个人信息来保护广大市民的敏感信息。
随着信息安全攻击的频繁发生,任何企业都面临潜在数据泄露安全事件的风险。通过一些简单的隐私数据保护措施,可以降低发生数据泄露事件的可能性,或者在发生数据泄露事件时,减少其危害性。
本文先简要介绍一下隐私数据保护基本知识,然后再介绍在数据平台中不同场景下应用对应的数据保护措施。
为什么需要保护隐私数据?
处理个人数据的私密和安全非常重要,原因有两个。一是遵守数据隐私法律和规定。在大多数国家和地区,都有严格的法律保护个人隐私。这些法律规定了如何收集、使用和储存个人数据,并规定了违反这些规定的后果。负责处理个人数据有助于遵守这些法律和规定,避免违反法律的后果。另一个原因是数据泄露事件会给企业带来严重的信任危机和经济成本。数据泄露会导致客户和利益相关者的信任危机,并可能导致昂贵的罚款和法律程序。
什么是隐私数据?
第一类隐私数据是PII。PII(Personally Identifiable Information)是指与个人身份相关的信息。这些信息包括姓名、电话号码、邮箱地址、社会安全号码、银行账号信息等,这些信息可以直接或结合其他信息用于识别某个特定个人。
第二类隐私数据是与个人相关的信息,但不属于PII。这包括个人的兴趣爱好、性格、活动和信仰、个人的行程信息、健康信息等。
第三类隐私数据是个人、企业或组织的专有且保密的信息。通常,与商业性质有关或与合同有关的数据被认为是敏感的,泄露这类数据往往会影响商业运营或面临法律风险。
如何识别隐私数据?
对于数据工程团队,一般来说没有统一的敏感信息的标准。不同的地区,不同的行业有不同的规定和法律。不同的公司对隐私数据的定义都不一样。在企业内,一般需要遵守数据治理团队、数据隐私团队或者企业安全团队建立的数据安全框架和安全策略。
此外我们还可以基于一些隐私扫描工具来检测数据中可能存在的隐私风险,比如微软开源的Microsoft Presidio。甚至云厂商们都不断推出隐私数据保护相关的安全产品来识别隐私数据的合规性风险。
怎么保护隐私数据?
对于保护隐私数据的关键技术有数据脱敏、匿名化,此外还有隐私计算和数据合成。
处理隐私数据时需要考虑两个基本的要求:
这两个指标是矛盾的,我们需要根据实际的业务需求和安全需求来调节和平衡。
数据脱敏,也叫假名化(Pseudonymous),通过用虚假信息替换PII信息或者对敏感信息进行加密来实现对隐私数据的。大部分脱敏技术处理过后数据不可逆,即没办法还原成原文。
数据脱敏
方法 | 描述 | 示例 |
---|---|---|
屏蔽(Masking) | 屏蔽部分数据,如电话、身份证号码中间部分位数 | 17728391023 → 177xxxx1023 |
哈希(Hashing | 将输入映射为固定长度的字符串 | john@thoughtworks.com → ajdsifojwoiefahodsjoaijd |
FPE加密(Format-Preserving Encryption) | 明文和密文格式不变 | 1990-01-03 → 2dwa-42-14 |
唯一替换 | 使用替换表对敏感数据进行1对1替换 | 1 → a, 2 → b |
加密(Encryption) | 通过密码学算法对数据信息进行加密 | 18623413242 -> U2FsdGVkX1/QEA+22HEm08QrrrV8YqLhBi1joQhNgmo= |
常见数据脱敏方法
脱敏后的数据不再包含PII信息但是仍然属于个人信息的范畴,受大部分数据安全保护法律法规保护。某些场景下,攻击者可以通过结合外部数据来确定个人。例如当我们能把某位职员的公司信息和职位信息和脱敏后的个人数据结合在一起,那么几乎可以确认这个人的身份。
与外部关联数据结合后,数据脱敏后仍不是完全安全
数据匿名通过完全消除PII信息来保护数据的隐私。数据匿名化的目的是使数据集中的个人身份信息不能被确定,从而使数据更加安全。匿名化的数据通常不再属于个人信息的范畴,因此也不受大部分个人数据保护相关的法律法规的限制。
常见的匿名化的技术方法有
数据匿名化
数据匿名化的好处有:
匿名化后的数据带来数据安全的同时也会降低数据质量和数据可用性。匿名化的数据也不是绝对安全的。
除了最基本的隐私数据处理技术外,还有一些在快速发展的隐私数据保护技术。
隐私计算是一种技术,旨在保护数据的隐私和安全,同时允许在不泄露原始数据的情况下进行数据处理和分析。它通过在受信任的执行环境中进行数据处理来实现这一目的,以便在数据处理完成后将结果返回给请求方。
合成数据是人为生成的数据,而不是由真实世界事件产生的数据。它通常使用算法生成,可用于验证数学模型和训练机器学习模型。合成数据可以帮助保护原始数据的隐私,因为它不是真实的个人信息。
数据平台隐私数据保护实践
数据平台隐私数据保护架构
数据平台接收上游数据源中各种数据,其中包括大量的用户和雇员的个人信息,以及公司运营、财务等机密信息。同时,数据平台中会有数据工程师、数据分析师和数据科学家使用这些数据。作为企业数据集中采集、处理和共享的平台,数据泄露发生的风险和危害程度都很高。
因此,数据平台和数据仓库承担着隐私数据保护的重要责任。为了降低在数据平台中发生数据泄露的可能性和危害性,数据平台需要应用数据脱敏、数据加密等隐私数据保护技术。架构上,数据在数据平台中生命周期中的不同阶段会采取数据脱敏、数据加密等方式来构建端到端内建隐私数据保护的企业数据管道。
在基础设施上:
在数据源上:
在数据仓库中:
数据平台隐私数据保护架构
数据脱敏(Data Masking):避免暴露敏感信息
数据脱敏的目的是避免暴露敏感信息给大部分数据消费方。
在数据平台中,数据脱敏主要有两种实现方式:
静态脱敏实现方式主要是在数据管道中内建数据脱敏。我们可以在数据集成工具中内建脱敏功能,使数据在进入数据仓库后就已经是脱敏数据。动态脱敏主要基于数据库系统或者云数据仓库的RBAC机制和内建的数据脱敏功能,通过针对特定操作角色和数据列创建脱敏规则,在数据被查询时,执行引擎会根据查询上下文来决定返回的数据是源文本还是脱敏后的值。
动态脱敏更为灵活,能轻松应对数据安全需求的变化,但需要数据库查询引擎支持。静态脱敏实现上更为简单,但当数据安全需求变化时,我们通常也需要完全重建数据仓库相关数据模型。
例如在Snowflake云数据仓库中,我们可以设立如下规则对email列进行动态脱敏。当数据仓库用户角色为数据分析师的时候返回源文本,而其他角色查询返回完全屏蔽的值。
数据加密(Data Encryption):安全数据分享
与数据脱敏不同,数据加密的主要目标是共享数据给授权过的可信方。
处理加密时需要考虑的问题:
对于问题1,我们选择了开源的密钥管理系统HashiCorp Vault。Hashicorp Vault是一个用于管理和保护机密信息的工具。它允许用户存储,管理和控制对机密信息的访问。机密信息可以是密码,API密钥,证书或其他敏感信息。Vault可以很好地和Kubernetes结合,我们可以安全地在应用Pod启动时将机密信息注入到Pod中。此外,Vault还可以动态生成或者定期刷新数据库凭证,避免数据库密码泄露风险。
对于问题2,我们选择了AES-256-GCM作为数据加密的算法同时使用ECDH算法来交换两个实体的公钥来创建共享AES-256-GCM的加密密钥,来保证加密密钥的安全性。
ECDH图示
ECDH(Elliptic Curve Diffie–Hellman Key Exchange)算法过程如下图:
使用OpenSSL命令行工具实现该过程。
端到端隐私数据加密解密过程如下:
数据管道中加密过程
业务系统中解密过程
数据哈希(Data Hashing):跨数据域隐私数据关联
有些场景期望与外部数据域的数据进行数据融合和数据共享时,通常需要通过个人隐私信息或者其他敏感信息将双方数据域的数据关联在一起。同时在数据传输、处理和存储的过程中不期望暴露隐私信息。此时,我们可以利用数据哈希的特性来实现跨数据域的隐私数据关联。
跨数据域隐私数据关联
图中场景存在三个数据域,数据平台所属公司B,母公司A和合作公司C,其隐私数据关联过程如下
总结
参考资料
本文分享自 ThoughtWorks洞见 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!