隐私增强技术:面向技术人员的介绍
隐私增强技术 (PET) 是为软件和系统处理、存储和/或收集数据的个人提供更高隐私或保密性的技术。三种有价值且可立即使用的 PET 是:差分隐私、分布式和联邦分析与学习以及加密计算。它们为隐私提供了严格的保证,因此越来越受欢迎,可以提供数据,同时最大限度地减少对私人数据的侵犯。
2023 年 5 月 30 日
隐私增强技术经常出现在新闻中,NIST 和英国政府的公开呼吁、新加坡 和 欧洲 正在确定这些技术如何以及在何处可以和应该使用。作为开发人员、架构师或技术人员,您可能已经听说过或甚至使用过这些技术,但您的知识可能已经过时,因为近年来研究和实施发生了重大变化。
本介绍将带您了解提供可靠隐私保证的最突出技术。在本文结束时,您将更好地了解在何处应用它们以及如何开始。这些经验教训来之不易,并在 我新发布的 O'Reilly 图书《实用数据隐私》 中进行了更详细的说明。我写这本书是为了分享实用的捷径和建议,并大幅缩短自信地使用隐私技术的学习曲线。通过揭开隐私工程领域的奥秘,我希望激励您从一开始就在您的架构、应用程序和数据流中构建隐私。
什么是 PET?
隐私增强技术 (以下简称 PET) 是为软件和系统处理、存储和/或收集数据的个人提供更高隐私或保密性的技术。这些技术通常用作此处理的一部分,并修改处理 (通常是囤积) 来自用户和内部参与者 (如员工) 的原始或明文数据的正常方式。通过提高提供的隐私,您既可以降低拥有的风险,又可以为用户提供有关他们希望如何处理其数据的更好选择。
隐私是一个技术、法律、政治、社会和个人概念。在本文中,您将学习隐私的基本技术方面,以使用户能够在与系统交互时做出更多选择来导航其身份和信息。当然,在产品中构建隐私还有许多其他方面。目前,这些内容不在本文的讨论范围之内,但我强烈建议您探索 隐私设计 以及更深入地研究隐私和安全工程领域。
为什么现在?
机器学习系统的激增,通常使用与个人相关的数据进行训练,增加了隐私的威胁面。ChatGPT、Stable Diffusion 和其他大型语言和视觉模型等系统提供了与机器学习交互的有趣新方式,可以改变特定任务或对特定任务有用。不幸的是,它们还使用大量个人数据,通常未经同意或选择退出选项,并在模糊的工人权利下进行训练。这些不仅是公开的隐私问题,而且也是所有权问题,反映在来自创作者、编码人员 和 不想被训练的人 的几起正在进行的诉讼中。
这些系统有时会产生未知的新风险,正如关于 如何从模型本身中提取私人信息 和 训练数据人口信息 的扩展研究所揭示的那样。还有大量研究表明生成式 AI 复制非常接近训练数据的数据,以及 超大型模型的记忆 的一般问题。这种记忆非常危险,因为它会暴露其在编码空间中的位置本质上是稀疏的,因此非常具有说服力的异常值。由于空间和时间限制,我将省略这些模型及其使用的 社会、道德 和 环境风险。
值得庆幸的是,这些问题 正在受到越来越多的关注,并且人们 越来越意识到手头的风险。仅仅完全不顾用户意愿和权利地吸取所有数据已不再是可以接受的行为。随意抓取数据并将其公开发布作为“研究”的一部分并不酷。公司和政府也开始询问他们如何在继续进行数据科学和有用的数据分析的同时,也为用户提供更多选择、透明度和同意选项。
隐私技术是将数据科学的需求与用户同意、意识和隐私的需求相一致的一种方式。直到最近几年,这些技术主要存在于研究和创新实验室中。在过去的 5 年中,它们已经走出实验室,进入生产系统。这些并不是为人们提供更好隐私的唯一方法,但对于已经走在数据成熟之旅上的组织来说,这是一个良好的开端,他们需要在当前和新的数据系统中构建更好的隐私。
您应该了解哪些 PET?
在这篇文章中,您将只学习 PET,这些 PET
- 已准备好用于生产系统,前提是您拥有工程团队来设计、集成、监控和管理
- 为隐私提供严格的科学保证
- 具有未来证明性,并且使用率不断提高
我希望您首先学习这些,然后评估相关技术,这样您就可以从最佳选择开始,只有在您用尽主要现代技术后才偏离它们。
差分隐私
差分隐私是对如何衡量和理解隐私的严格而科学的定义——如今用于解决匿名化等问题的“黄金标准”。它是由包括 Cynthia Dwork 和 Aaron Roth 在内的几位研究人员在 2006 年开发和扩展的。从那时起,原始定义和实现已经大大扩展。差分隐私现在已在 Google 和 Apple 等几家大型数据组织中得到日常使用。
定义
差分隐私本质上是一种衡量个人隐私损失的方法。原始定义定义了两个数据库,它们的区别在于添加或删除一个人。查询这些数据库的分析师也是潜在的攻击者,他们试图找出特定的人是否在数据集中或不在数据集中,或者了解数据集中的人员。作为数据库所有者,您的目标是保护数据库中人员的隐私,但也为分析师提供信息。但是,您回答的每个查询都可能泄露有关数据库中一个人或多人的关键信息。您该怎么办?
根据差分隐私的定义,您拥有一个数据库,该数据库与一个人不同,这个人要么被删除,要么被添加到数据库中。假设分析师查询第一个数据库(没有这个人),然后再次查询数据库,比较结果。从这些结果中获得的信息是该人的隐私损失。
让我们从现实世界中的隐私实施中举一个具体例子:美国人口普查。每 10 年,美国政府都会尝试对居住在美国的每个人进行一次计数。准确地调查超过 3.3 亿人与听起来一样困难,结果随后用于支持联邦资金、美国国会代表权以及许多其他依赖于美国人口准确代表的计划。
这不仅从数据验证的角度来看很困难,美国政府还希望为参与者提供隐私;因此,增加了诚实回复的可能性,并保护人们免受可能恶意使用公开发布的人员或组织的关注(例如,将他们的数据联系起来、联系他们或以其他方式将他们的数据用于其他目的)。过去,美国政府使用各种技术来抑制、改组和随机更改条目,希望这能提供足够的隐私。
不幸的是,它没有做到——尤其是在消费者数据库变得更便宜且更广泛地可用时。使用求解器软件,他们能够攻击以前的版本并使用以低成本提供的几个可用数据集重建 45% 的原始数据。想象一下,如果您拥有涵盖大部分美国人的消费者数据库?
出于这个原因,他们转向差分隐私以帮助提供严格的保证。让我们使用人口普查区块的例子。假设您住在一个街区,并且该街区只有一位第一美国人,这是美洲原住民的另一种说法。您可以做的是简单地不包括这个人,作为保护其隐私的一种方式。
这是一个很好的直觉,但差分隐私实际上为您提供了一种方法来确定如果他们参与,该人将遭受多少隐私损失,并允许您计算这一点,以确定何时响应以及何时不响应。要弄清楚这一点,您需要知道一个人可以改变任何给定查询的程度。在当前的示例中,该人将改变第一美国人数量的计数 1。
因此,如果我是一个攻击者,我在这个人被添加之前查询数据库以获取第一美国人的总数,我得到 0,如果我在之后查询,那么我得到 1。这意味着一个人对该查询的最大贡献是 1。这是我们在差分隐私领域中的敏感性。
一旦您知道最大贡献,因此知道敏感性,您就可以应用所谓的差分隐私机制。这种机制可以采用实际答案(此处:1)并对答案应用精心构建的噪声,以添加足够的容差。这种不确定性使您能够限制个人隐私损失的程度以及攻击者信息增益的程度。
因此,假设我在事先查询,我得到的数字不是 0,而是 2。然后,这个人被添加,我再次查询,现在我再次得到 2 的答案——或者可能是 3、1、0 或 4。因为我永远无法确切知道机制添加了多少噪声,所以我不确定这个人是否真的在那里——这就是差分隐私的力量。
差分隐私跟踪这种泄露,并提供减少和巧妙地随机化其中一些泄露的方法。当你发送一个查询时,将有一个关于返回结果的概率分布,其中最高概率接近真实结果。但你可能会得到一个在结果周围一定误差范围内的结果。这种不确定性有助于在差分隐私响应中插入合理的否认或合理的怀疑,这就是它们在科学和现实意义上保证隐私的方式。虽然合理的否认是一个法律概念——允许被告提供一个合理的(或可能的)反驳理由,该理由可能是事实——但它可以应用于其他情况。差分隐私,就其本质而言,会插入一些概率,表明另一个答案可能是可能的,为参与者留下这个空间,既不确认也不否认他们的真实数字(甚至他们的参与)。
当然,听起来不错……但你如何实际实现它?有一些被称为差分隐私机制的概率过程,它们有助于提供这些保证。它们通过以下方式做到这一点:
- 为原始数据创建边界(以消除异常值的差异影响并创建一致性)
- 添加具有特定分布和采样要求的概率噪声(以增加怀疑并保持结果的有限概率分布)
- 随着时间的推移跟踪测量的隐私损失变量,以减少某人过度暴露的可能性。
你不会自己编写这些算法,因为有几个信誉良好的库供你使用,例如 Tumult Analytics、OpenMined 和 Google 的 PipelineDP 以及 PyTorch 的 Opacus。
这些库通常集成在数据工程或准备步骤中,或在机器学习训练中。为了适当地使用它们,你需要对你的数据有一定的了解,了解手头的用例,并设置一些其他参数来调整噪声(例如,个人可以在数据集中出现的次数)。
用例
差分隐私不会很快取代所有数据访问,但当你被问到关于匿名化的问题时,它是一个至关重要的工具。如果你要将数据发布给第三方、公众、合作伙伴,甚至更广泛的内部受众,差分隐私可以为你的数据中的人员创造可衡量的安全性。想象一个世界,其中一名员工被盗的凭据只意味着泄露模糊的聚合结果,而不是你的整个用户数据库。想象一下,当数据科学家对你的公开数据发布进行逆向工程以揭示真实数据时,你不会感到尴尬。想象一下,将差分隐私数据访问授予实际上不需要原始数据的内部用例会容易多少——为数据团队减轻负担,降低风险,并减少“影子 IT”操作像打地鼠一样冒出来。
差分隐私适合这些用例,甚至更多!如果你想浏览一些示例,我建议阅读 Damien Desfontaines 关于差分隐私的文章 并测试一些提到的库,例如 Tumult Analytics。 这本书的代码库 也有一些示例可以浏览。
应该注意的是,差分隐私确实会为你的结果添加噪声,要求你考虑数据的实际使用以及为了使分析成功你需要提供什么。这可能是你的一种新的调查类型,它促进了对隐私与效用问题的思考——你希望为特定用例优化信息量,但也最大限度地提高提供的隐私。本文中的大多数技术都需要你分析这些权衡并做出决策。需要明确的是,没有数据是 100% 准确的,因为所有数据都是现实的某种表现形式;因此,在实施隐私控制时,这些权衡更加明显。
分布式和联邦分析与学习
Martin Fowler 之前介绍了 Datensparsamkeit 的概念,也称为数据最小化,这是一个只使用你实际需要的数据,而不是收集或保存任何额外数据的理念。考虑到这个概念,分布式或联邦分析(及其机器学习对应物)将数据留在边缘,在原始数据存储和用户设备上,以保证数据最小化。你不是获取数据并将其集中存储,而是将分析、机器学习模型以及训练或处理直接发送到数据,并且只收集结果。
定义
在当今的数据科学中,你通常已经在处理分布式数据。你的数据存储在数据中心、机器、容器中,这种联邦通过接口或框架(例如你的 Apache Spark 代码)抽象出来。分布式或联邦分析和学习需要一个更大的网络,将实际物理存储的联邦直接推送到边缘,或者至少跨越几个大型数据形成。
联邦学习最初由 Google 在 2016 年实施,尽管在此之前有很多在分布式设备上进行边缘计算和数据分析的例子。他们的初始实施使用用户手机并 使用本地键盘数据来训练语言模型 以获得更好的键盘预测。他们没有集中收集敏感的键盘数据,这可能会引起人们的注意并带来监管压力,而是部署了分布式聚合器,这些聚合器协调训练轮次并从手机收集每个训练轮次的梯度更新。然后对这些更新进行平均并发送给所有参与者以进行新的训练轮次。该模型在所有设备上共享,但每个人的训练数据都保留在他们的设备上。
现在,这种初始实施有很多扩展,也允许进行联邦数据分析,在这种分析中,不是训练机器学习模型,而是跨设备运行查询或其他数据分析,并返回聚合结果。还进行了大量工作来整合差分隐私或利用加密计算来提高这些梯度更新或聚合响应的隐私和保密保护,这些响应也可能泄露有关底层数据的的信息。越来越多的统计和机器学习算法支持联邦方法,以及用于部署和管理边缘计算或跨孤岛设置的各种架构。跨孤岛设置将两个或多个数据合作伙伴连接起来,他们希望使用分布式设置进行共享分析或学习,而不是在没有隐私保护的情况下共享原始数据。
用例
分布式或联邦分析和学习非常适合任何直接处理高度敏感数据的组织,这些数据永远不应该集中化。它也适用于数据共享用例,其中合作伙伴在组织之间或组织内部共享原始数据或匿名化程度较低的数据。
分布式数据实现了真正的 Datensparsamkeit,并且可以在团队要求从用户收集更多数据时考虑。将个人数据集中存储是一种幼稚的数据科学和分析方法,它会产生本质上无休止的新风险,并鼓励模糊的商业模式。向用户征求同意、删除不必要的数据、在发送数据分析、机器学习或其他处理到边缘而不是收集数据方面发挥创意,这些是现在要形成的习惯,以使你的工作和组织成为共识、用户赋能和隐私优先。
如果你想进一步探索联邦学习,请查看 Flower,并运行你通常使用的任何机器学习框架的一些示例。如果你想了解有关联邦架构的更多信息,请查看 我的 InfoQ 演讲 并查看有见地的摘要论文 联邦学习的进展和开放挑战,该论文由多个大型组织和机构的专家撰写,这些组织和机构正在研究联邦学习。
联邦学习提供的隐私和安全保证可以通过使用加密计算来增强,加密计算允许参与者加密他们的贡献。加密计算和加密学习提供了新的方法来安全地对分布式数据进行计算。让我们在下一节中探索这项技术。
加密计算
如果我告诉你,你实际上可以在不解密数据的情况下对数据进行计算,你会怎么想?听起来像魔法,对吧?它不是——它是密码学!加密计算领域在过去 5 年中经历了巨大的增长和新的突破,将这些技术从研究实验室转移到生产系统中。
定义
你可能已经熟悉用于数据或文件存储的静止加密以及用于 Web 开发和许多安全消息传递和文件传输应用程序的端到端加密。加密计算以不同的方式加密数据,这种方式与其他两种方式不完全相同。通常,当你加密数据时,你会插入相当多的随机性来隐藏密文中可能留下的任何信息;这适合你的安全模型和这些用例中的需求。在加密计算中,你仍然会加密明文,但使用密码系统或协议(如秘密共享)来加密,这些系统或协议允许你在加密数据上继续计算。最后,你可以解密计算的最终结果,它将揭示真实结果——就好像你使用明文数据进行计算一样。
这如何影响隐私?在密码学中,你通常以不同的方式看待隐私——让我们将这个新的隐私概念称为保密。如果你想保持一个值的秘密,你希望控制谁可以查看它,以及如何以及何时查看它。显然,这也有利于隐私,因为它提供了更多对未加密数据的访问控制。此外,它通过允许在不实际揭示单个输入的情况下进行计算,提供了额外的保护层。然后,只有在原始人员的同意和参与下才能揭示最终分析。
该领域有两个主要分支:同态加密 (HE) 和安全多方计算 (MPC)。同态加密使用具有同态属性的密码系统,并遵循更传统的密码协议,其中你有一个用于加密的密钥和一个用于解密的密钥。HE 系统的计算成本很高,但可以通过专门的硬件或基于你的特定用例的优化来加速——尤其是在你的输入大小很小的情况下。
安全多方计算是为数据共享加密用例而构建的,在这些用例中,多方共同或在公共环境中(如选举、拍卖或跨组织场景)进行计算。数据使用各种 MPC 协议进行加密,这些协议的选择是为了适应特定场景的安全、参与者要求和用例。一个流行的选择是秘密共享,它允许你获取一个秘密值并将其拆分为可以分发给参与者的加密份额。当多个参与者贡献份额时,该组可以一起计算值,并在最后将它们组合起来以揭示共享计算的解密结果。正如你可能猜到的,MPC 协议需要多次交互,这意味着网络延迟、同步和加密消息大小是你最大的性能因素。
用例
加密计算是明文操作的绝佳替代方案,明文操作以不希望的方式暴露敏感数据。例如,你可以使用同态加密让用户提交敏感数据,并通过你的算法或系统获得结果。用户将是唯一可以解密结果的人,但结果是由你的系统在加密输入上产生的。或者,你可以使用 MPC 来替换当前与合作伙伴的明文数据共享和计算,以创建实际的保密,从而为你的计算带来的数据提供更多隐私。你可以以这样一种方式设计这些计算,即只有一方或多方可以揭示最终输出,这有助于你设计具有明确保护措施的数据共享系统。
这项技术还有许多其他用例,例如投票、拍卖和机密计算。如果你想进一步探索它,请查看 Zama.ai 在同态加密方面的工作、MPC 联盟的资源 或 Morten Dahl 对秘密共享的介绍。还有 我的书代码库中的 Jupyter 笔记本,加密计算章节涵盖了这些协议的基本构建块,并展示了如何在实际数据科学和加密学习设置中使用它们。
在当前的数据架构中,我经常看到两种可以利用加密计算进行改进的特定用例。我将在本文中概述它们,以加速您在自身架构中使用加密。
查找连接:私有集合交集 (PSI)
私有集合交集是加密计算的一种应用,它允许两个或多个方比较其数据集并找到交集,而无需直接透露值。这项技术可以取代当今用于识别共享用户以进行营销或数据处理目的的大量不安全数据共享。
组织不再共享标识符(如电子邮件、用户名或电话号码),而是使用特定的密码系统对这些标识符进行加密,这些密码系统允许它们比较加密的标识符并找到匹配的标识符。在实现方式和性能优化选择方面存在一些安全注意事项,尤其是在组织的数据集大小不匹配的情况下。此交集步骤可以与进一步的加密计算相结合,以分析交集或与这些标识符相关的其他数据,而无需解密交集。这提供了额外的优势,即没有人会在解密空间中看到直接的交集。
如果您有兴趣了解更多信息,本书和书籍库中包含几个具体的示例(包括代码)。
私有查询:私有信息检索 (PIR)
私有信息检索允许一个人请求信息(如数据库查询),而无需向数据库所有者透露其查询或请求。它利用加密计算构建块来实现这一点。当数据所有者持有极其敏感和私密的数据(如实验室结果或高度机密文件)时,这尤其有用。通过为用户提供请求保密性,您还强制执行一些合理的否认性,这是保证隐私的关键因素。
现在您已经探索了当今生产环境中最好的 PET,让我们分析一下隐私技术更广泛类别中的一些相关技术。
相关技术
有很多相关技术,对于一篇帖子来说太多了!在本节中,我根据流行度或有趣的属性选择了几个。虽然列表并不详尽,但它可以为您在处理敏感数据时提供其他可能选项的初步概述。
PII 检测
检测个人身份信息 (PII) 对于许多管理与个人相关数据的组织来说是一个困难但必要的问题。在过去十年中,组织越来越多地应用混合技术(规则集 + 机器学习)来更好地识别和标记 PII。如果您的组织还没有强大的数据治理和数据隐私计划,您需要从基础开始。在将 PET 纳入您的日常工作之前,专注于创建适当的文档、PII 标记以及构建数据治理和数据隐私理解。
用于假名化的格式保留加密
在某些用例中,PET 不适合,因为您需要以未加密和集中化的方式处理数据。如果是这种情况,您将进入非常基本隐私技术的领域,例如假名化。最适合一般使用的假名化也是加密的,利用格式保留加密领域来创建独特且难以反向工程的标识符。它不像本文中的其他技术那样私密或保密,但比在加密假名可行的场景中使用原始明文数据要好得多!如果您有特定的用例约束或要求,例如屏蔽、令牌化和涂黑,您还应该审查其他几种假名化形式。
飞地
飞地是安全计算环境,可以保护数据处理免受计算机其他部分的侵害,有时称为可信执行环境 (TEE)。在您希望保持运行进程(而不是个人)私密的情况下,飞地是合适的。它们只适合保密问题的非常特定的部分,即您不信任共享的计算环境或运行云的组织,但也可以与其他隐私技术一起使用以增加额外的安全层。通常,飞地最适合国家级安全问题,例如在敌对云中运行计算机基础设施的问题。它们价格昂贵,不适合当今处理敏感数据的组织面临的大多数隐私和保密问题。
隔离室
干净房间是一种控制数据使用环境、软件和上下文的方式,通常在数据分析师或科学家不受信任且必须监控其工作时使用。理论上,限制访问并观察数据科学家或分析师的工作足以提供隐私。但是,然后,合格的个人必须审核工作,以确认没有发布任何私人数据。通常,这些干净房间提供对数据的原始和明文访问,这意味着分析师或科学家了解数据集中的个人的可能性非常大。由于您需要同样合格的分析师或科学家来审核活动,因此最好让他们进行分析,而不是将这项工作外包给外部方。干净房间通常由希望对敏感数据做更多事情但对现代隐私技术不熟悉或不成熟的公司使用。为了提供更强的隐私保证,请使用上述推荐技术来创建可靠的数据科学和分析环境。让您的分析师学习如何使用和调整这些技术来完成他们的工作,而不是监视他们的工作,希望发现不良做法。像干净房间这样的技术通常会产生一种错误的安全感,使它们比根本没有隐私技术更不安全。
合成数据
合成数据是能够从真实数据或对数据的理解中创建逼真的数据的能力。使用合成数据而不是真实数据可以支持软件和系统设计和开发的几个部分的隐私,例如调试、测试、原型设计和系统验证。有一些合成数据系统使用更安全的方法来增强隐私,而另一些则不太安全。不幸的是,非从业人员很难识别这些差异。
如果您有兴趣查看机器学习合成数据的可能性,请查看 Gretel.ai 关于创建差分隐私合成数据的作品。您仍然需要了解差分隐私才能正确利用其软件的这一部分,但在您的合成数据中使用差分隐私是您计划使用机器学习时最安全的选择。否则,我建议使用非机器学习方法,如果您被要求输入任何真实数据,请深入研究方法。
我希望在未来某个时候,将有广泛可用的合成数据系统始终尊重隐私;这对工程师、开发人员和数据人员来说将是一个巨大的帮助,让他们能够安全地测试、建模和试验软件、架构和管道。
将隐私融入工程
我希望您能从这次关于 PET 和潜在用例的旋风之旅中获得启发,变得更加了解并更有动力开始将隐私真正地融入您的系统。这不是一次性或绝对的过程,而是一个增量和敏捷的过程,由您组织的风险承受能力、技术准备状况和隐私意识驱动。
为用户提供更多隐私、透明度和选择权的任何一步都是一个小胜利。如果您发现您的组织还没有准备好使用 PET,您仍然可以努力宣传隐私并提高对不断变化的风险和技术环境的认识。将这些主题作为产品设计和实施的常规部分进行讨论,将为将 PET 从“好主意”转变为真正的系统开辟新的途径。
如果您正在寻找改变职业方向的方法,请调查不断发展的隐私工程领域。隐私工程师负责设计、架构、集成和实施 PET。我写了 实用数据隐私,面向希望从根本上改变他们实施数据系统方式的数据科学家和技术人员,通过更好地了解隐私技术来实现用户选择和真正的隐私。
最后一点:隐私不仅仅是技术。它是个人、社会、文化和政治的。将技术应用于社会问题往往是天真甚至危险的。隐私技术是许多工具中的一种,可以帮助解决世界上隐私和权力访问方面的真实不平等。它不能也不应该解决数据访问、监控和数据系统复制或加剧的不平等的核心问题。这些问题本质上是多学科的,需要我们技术领域之外的许多专业知识。
对话、意识、多学科团队以及对数据权力和责任的真正转变可以从根本上改变当前隐私方面的差距,并创建赋能、以用户为中心、注重隐私的软件和系统。如果您选择迈出下一步,您将成为众多设计、构建和运行以用户为中心的数据系统的技术人员之一,这些系统使用隐私技术来支持一个数据使用透明、公正和用户驱动的未来。
致谢
特别感谢 Lauris Jullien,他的反馈极大地改善了这篇文章。
重大修订
2023 年 5 月 30 日:发布