数据工程师经常花时间在两项职责之间取得平衡:利用涉及敏感/个人数据的大量数据进行创新和推动变革,同时遵守管理数据处理和使用方式的严格标准。
如果没有第二个责任,第一个责任就不可能实现。因此,许多数据隐私增强技术越来越受到关注,例如匿名化、假名化、合成数据生成、差异隐私和去识别个人数据的混合策略。
在本文中,我们将讨论一些旨在处理数据隐私、最大限度降低泄露风险的重要策略。我们将主要关注简单的技术,如抑制、格式保留标记化、加密散列、分箱和扰动。
假名化和匿名化之间的区别
数据可识别性可以与一系列可见性进行比较。一方面,数据是完全可见的,这意味着它可以用来识别个人。另一方面,数据完全不可见,细节匿名。匿名化和假名化是两个可以改变数据可见性的过程,使组织能够保护个人隐私,同时仍然允许数据用于分析和其他目的。
牢记这一范围,我们现在可以将假名化定义为对数据集进行匿名化的过程,因此在不使用附加信息的情况下无法单独识别数据主体。然而,这些数据仍然可以用于分析项目。主要优点是在保护个人隐私和允许数据有用之间取得平衡。然而,重要的是要记住,如果攻击者有权访问链接密钥,假名数据仍然可以被重新识别。
对大型数据集进行伪匿名是一个特别复杂的过程,即使在数据共享之前,也需要在数据字典中将数据属性明确标记为个人身份信息并由所有者签名。实际上也很难验证同意,说明数据将如何使用的确切目的。因此,我们通过将数据限制为证明模型假设所需的关键元素来最大限度地减少用于分析的数据。然后,我们将数据匿名化到用户无法重新识别主体并将其链接到个人的程度,而无需使用所有者保管下存储的其他数据。
专业提示:建议将数据隐私指标添加到数据字典中,例如每个数据属性的敏感性和有用性,这样以实现企业级持续治理。这使组织能够以适当的敏感度跟踪数据是否出于相关且商定的原因而被使用。
个人数据属性
在使用给定数据集中进行分析之前查找个人标识符是保护个人隐私的重要一步。识别个人标识符的主要方法有两种:
(1)直接标识符:这是可用于识别个人身份的个人数据,无需任何其他信息。示例包括:姓名、地址、电子邮件、电话号码、护照号码和驾驶执照号码。
(2)间接标识符:这是可以与其他信息结合起来识别个人身份的个人数据。示例包括:出生日期、性别、种族和职业。
要在数据集中查找个人标识符,可以结合使用自动化工具和手动审核:
自动化工具:市场上有多种选项可以自动识别大型数据集的个人标识符信息 (PII) 列。然而,至关重要的是添加额外的分析检查作为这些 AI 辅助工具的包装器,以防止 PII 列的任何意外遗漏或错误识别。例如,在 Google Cloud 中,DLP 服务可用于通过扫描数据中的特定模式来识别标识符,自动对个人数据进行分类并进行相应的处理
手动审核:即使使用自动化工具,手动审核数据集以识别可能遗漏的任何个人标识符也很重要。这可以通过逐一检查数据元素并检查它们是否与任何示例匹配来完成。
识别个人标识符后,重要的是使用匿名化、假名化、合成数据生成、差异隐私和混合策略等技术来对数据进行去识别化,然后再将其用于分析。这些技术可用于删除、屏蔽或掩盖敏感信息,同时仍保留数据的分析实用性。
四种隐私增强技术
1、数据抑制
数据抑制是一种通过删除或屏蔽某些信息来取消个人数据识别的技术。它通常用于删除直接标识符,例如姓名、地址和电话号码;以及间接标识符,例如出生日期和性别,您还可以隐藏未获得客户同意的特定行。
关键考虑因素:实施简单、完全匿名、不需要分析,并且可以在受抑制的个人或敏感数据上实现,并且不可能进行重新识别。
下面是一个简单的示例,说明如何在 Python 中使用数据抑制来去识别个人数据:
2. 数据标记化
数据标记化是用非敏感随机字符串(通常称为标记)替换单个敏感数据的过程。令牌用作对原始数据的引用,但不能用于猜测这些值。这是因为,与加密不同,标记化不使用数学过程将敏感信息转换为标记。没有可用于导出令牌原始数据的密钥或算法。相反,标记化使用数据库或安全文件存储(称为令牌库),它存储敏感值和令牌之间的关系。然后,通常通过加密来保护保险库中的真实数据。
对于基于表和基于文件的标记化,可以应用格式保留标记化,这是一种保留原始数据的格式和长度,同时用唯一标记替换它的技术。
机器学习(ML)模型投入运行后,代币价值可用于支持业务运营。如果需要检索真实数据。例如,在识别实际电子邮件地址以对交叉销售预测采取行动的情况下,令牌被提交到保管库,并且索引用于获取客户电子邮件地址以在授权过程中使用。对于最终用户来说,该操作几乎是由浏览器或应用程序立即无缝执行的。他们可能甚至不知道数据以不同的格式存储在云中。
关键考虑因素:格式保留令牌与真实数据之间不存在数学关系,因此采用分析没有风险。只要金库高度安全。
3. 安全密钥加密散列和加密
加密散列和加密转换是去标识化方法,用加密或散列值替换原始敏感数据值。这里的一些关键技术包括:
- 安全密钥加密哈希是一种涉及使用密钥创建输入字符串的加密哈希的方法,类似于 HMAC,并且通常被认为是比仅使用哈希函数更安全的方法。对于非常大的数据集,具有主键行为的唯一标识符可以通过这种方式取消标识。
- 格式保留加密 (FPE)是一种在加密时保留信息格式的加密算法。它涉及用使用格式保留加密生成的加密值替换输入值。下面是一个简单的示例,说明如何在 Python 中使用 FPE 来去识别个人数据 (CCN):
确定性加密方案是一种密码系统,即使单独执行加密算法,它也始终为给定的明文和密钥生成相同的密文。它将输入值替换为在合成初始化向量模式 (AES-SIV) 下使用 AES 生成的令牌。
关键考虑因素:这些技术在很大程度上依赖于安全密钥的使用才能发挥作用,因此它们大多部署在安全且受限的分析生态系统中,具有安全存储密钥的功能。
Python中有用的技术: pyfpe、cryptography、pycryptodome都是可用于实现上述技术的Python库
4.数据概括
数据概括涉及将敏感列分类到箱或组中进行分析、删除细节并创建更概括的视图。该技术与其他假名化方法相结合,对于大型数据集特别有效。
分箱:
数值分箱:在此方法中,首先对数值数据进行排序,然后将排序后的值分配到多个桶或箱中。它也称为分桶或离散化。例如,当您需要开发流失预测模型的功能时,可以将数据分组为年龄范围(例如 18-30、30-65),而不是显示一个人的确切年龄
Python 中有用的技术: Pandas、OptBinning。例如,可以使用 qcut、cut 等 Pandas 函数进行基于五分位数的分箱。
分类重新编码:
通过将相似的分类数据点分组在一起,分类记录或分箱可以降低数据的粒度。这可以通过创建更广泛的类别或用更通用的类别替换特定类别来完成。
例如,假设您有一个客户人口统计数据集,其中包含有关人们职业的信息。原始数据可能具有以下类别:“老师”、“护士”、“工程师”和“建筑师”。为了保护个人隐私,您可以使用分类重新编码将类似的职业分组在一起。例如,您可以将“教师”和“护士”分组到一个更广泛的类别(称为“教育和医疗保健”)中,将“工程师”和“建筑师”分组到一个更广泛的类别(称为“建筑和设计”)中。
另一个例子是,对于位置数据,我们可以将数据分组为更大的区域,例如省、市或地区,而不是显示确切的地址。
关键注意事项:当需要执行特征工程以根据模型训练要求概括客户信息时,请使用分类分箱。
Python 中的有用技术:在 Pandas 中,您可以利用 Replace() 和 map() 函数,它们可用于将特定类别替换为更通用的类别
5. 数据扰动
数据扰动是一种通过向数据添加随机噪声来保护数据集中个人隐私的技术。这使得攻击者很难推断有关数据集中各个记录的敏感信息,同时仍然允许对数据中的总体趋势和模式进行有意义的分析。
以下是 Python 中数据扰动的示例:
需要用于对数据集进行伪匿名的技术高度依赖于每个单独的用例、数据集中的 PII 类型以及数据存储的环境。
除了上面讨论的技术之外,还有其他新兴和先进的数据隐私增强技术,例如人工智能合成数据生成、联邦学习、安全多方计算、同态加密、图像等非结构化数据中的匿名 PII ,使用机器学习生成模型的 PDF,仍在进行广泛的研究,值得关注。
这就引出了所有数据从业者可能需要考虑的一个重要问题——申请后如何检查数据是否是伪匿名的?在数据管道的每个阶段,设置额外的测试以降低重新识别的风险至关重要。研究人员开发的统计方法(例如 t-Closeness、l-Diversity 和 k-Anonymity)也可以通过提供阈值和值来帮助实现这一目标,这些阈值和值可以帮助估计可重新识别性,进而帮助了解数据集的伪匿名化程度。
隐私工程是分析中的一个难题,但随着捕获的数据量不断增加,它对于分析项目的重要性只会继续增长。作为数据从业者,我们将在构建基础设施方面发挥至关重要的作用,以确保有效利用不断增长的数据,同时负责任地存储和部署。