Snowflake 中的差分隐私¶
差分隐私是一种广泛认可的数据隐私标准,能够限制用户泄露敏感数据集中的信息的风险。它可保护数据中个别实体的身份和信息,例如人员、公司和地点。尽管每个个别实体的信息都会受到保护,但差分隐私仍然允许数据使用者了解有关个体群体的统计数据、趋势和行为。
差分隐私提供了强有力的保护,可防止重新识别,尤其能够有效防御针对性的隐私攻击。这种保护机制使您能够在团队之间、组织外部以及跨越监管界限共享敏感数据。差分隐私降低了与联接两个敏感数据集、添加新字段、为现有字段取消掩码或提供单独行而非预先聚合的数据相关的重新识别风险。
不同于其他隐私方法,差分隐私可实现如下目标:
防范针对性的隐私攻击,例如差异攻击和放大攻击。
量化并管理隐私与实用性之间的权衡,即控制数据使用者可以了解多少非敏感信息。
消除了数据提供商为降低重新识别风险而转换敏感数据的需求(例如,掩码、编辑和分桶)。
差分隐私如何保护敏感信息?¶
使用差分隐私时,查询结果不会泄露可能用于识别个别实体的信息。Snowflake 通过执行以下操作来实施差分隐私:
含噪声的汇总¶
差分隐私查询必须汇总数据以返回结果;系统会阻止 SELECT *
这样的行级查询。这些汇总含有噪声;而非确切的计算结果。系统会在结果中引入噪声(即变化或随机化),从而对特定行或实体是否包含在汇总中进行模糊化处理。
噪声的添加可以防止隐私攻击,如薄切片和差异化隐私攻击。查询结果中添加的噪声量取决于数个影响查询敏感度的因素,包括查询的记录数、汇总类型和数据转换类型。Snowflake 计算查询的敏感度基于严格的数学,但可以宽泛地理解为查询泄露个别实体相关信息的可能性。一般来说,低敏感度的查询噪声较少,有可能会达到统计上可以忽略的程度。极高敏感度的查询(例如试图单独识别某个实体的查询)具有大量噪声,以防止敏感信息泄露。
在查询最终汇总之前,Snowflake 不会引入噪声到中间汇总中;在每个查询中只会引入一次噪声。
Snowflake 认为,受隐私保护的表中的行数是公开的。例如,如果执行 SELECT COUNT(*) FROM t
,其中 t
表受隐私策略的保护,则系统会返回一个精确的结果,而不会造成任何隐私损失。
有关如何理解噪声水平的更多信息,请参阅 理解查询结果。
限制隐私损失¶
对受保护数据集的每个查询都可能导致与个人相关的私密信息泄露,包括差分隐私查询产生的含噪声的汇总结果。在差分隐私中,这种信息披露称为 隐私损失,是一种可量化的度量单位。通过查询揭露的私密信息越多,与该查询相关的隐私损失就越高。隐私损失可量化,因此,Snowflake 可以使用差分隐私,跨越一系列查询在一定的统计置信度下保护敏感数据。
随着用户对受保护数据执行查询,隐私损失会不断累计。当累计隐私损失达到某个阈值时,从理论上来说,随后再让用户看到更多结果会导致他们识别个人,而且会达到理论上不可接受的置信度。隐私预算 设定了可接受的隐私损失限制。Snowflake 会统计用户或用户组执行的查询的隐私损失,并确保该统计结果永远不会超过与这些用户关联的隐私预算。Snowflake 提供了一个可定制的隐私预算,具有预配置的默认值,该默认值设置了隐私损失阈值。
Snowflake 使用 隐私策略,这是一种架构级对象,用于将隐私预算与用户或用户组关联。当管理员将这种隐私策略分配给表或视图时,表或视图就会 受隐私保护。用户对一个受隐私保护的表运行查询时,Snowflake 使用隐私策略来确定与用户相关的隐私预算,并确保查询所产生的隐私损失不超过预算的限制。
差分隐私理论与实践¶
差分隐私标准源于学术文献,设计为具有经数学证明的强大隐私保障,特别针对理论性隐私攻击。具体来说,在学术环境中讨论时,隐私预算等隐私设置会更加保守。这些设置在理论隐私攻击方面提供了强有力的保护,但要牺牲一定的数据实用性(分析保真度、准确性和可用性)。在为您的用例考虑隐私与实用性之间的权衡时,包括针对 PII 和 PHI 这类高度敏感的数据,请考虑以下几点:
实际隐私攻击并不像学术文献中描述的理论隐私攻击那样有效,后者假设攻击者拥有无限的计算资源,除了他们正在攻击的数据集之外,他们可以访问所有数据集。
数据使用者通常并不想故意发起攻击,因为数据提供商可以撤销使用者的数据访问权限,而对他们来说,数据的分析价值太高,不能冒着失去这种价值的风险。
Snowflake 在选择默认设置时合理平衡了隐私保护和实用性,以符合现实世界用例的目标,但您始终可以采用不同的设置来满足自己的特定需求。
差分隐私工作流程¶
以下工作流程包含数据提供商执行的任务,他们通过差分隐私保护其数据,还包括在实施数据保护后,分析师查询数据的任务。
数据提供商:
如果您想实现 实体级隐私,请对您的数据进行结构化处理以满足要求。
创建隐私策略,根据角色或账户等因素将隐私预算与用户关联。
向表或视图 分配隐私策略,以确保查询必须符合差分隐私。
为受到隐私保护表或视图中的数值和分类列 定义隐私域。
授予分析师权限,确保他们可以访问受隐私保护的数据。
分析师对受隐私保护的数据执行查询时,您可以 管理与用户关联的隐私预算。
分析师:
:ref:`查看隐私域 <label-diff_privacy_domain_admin_view>`(由数据提供商为受隐私保护的表中的列定义),以更好地理解列的内容。
如果数据提供商忘记为您想在汇总或 GROUP BY 子句中使用的列设置隐私域,请 为该列指定隐私域。
针对受隐私保护的表和视图 执行差分隐私查询。
使用噪声区间来 帮助理解汇总结果。
如果需要,缩小数据提供商的隐私域,以尝试改进查询结果。
限制¶
在表受隐私保护时,分析师只能查询以下数据类型:
目前在使用差分隐私时,系统不支持某些 Snowflake 功能。有关详细信息,请参阅 与 Snowflake 功能的交互。
为保护隐私,查询功能受到限制。有关支持的运算符、查询语法和函数的列表,请参阅 差分隐私 SQL 参考。
在受隐私保护的表上运行查询时,Snowflake 首先计算统计信息,这些信息会影响到将添加多少噪声,然后才会运行查询。如果在这两个步骤之间,数据发生了变化,添加的噪声量可能不正确。Snowflake 建议数据提供商合理安排数据更新,确保数据更新不会在分析师可以运行查询时发生。
后续步骤¶
如果您是使用差分隐私来保护数据集的数据提供商,请参阅 实施差分隐私。
如果您是查询受差分隐私保护的数据集的分析师,请参阅 查询受差分隐私保护的数据。