一、已有方案
特性/语言 | PPL (PrimeLife Privacy Language) | LEGALEASE |
---|---|---|
内容 | PPL是一种政策语言,用于编码隐私法规。它通过将政策与用户的隐私偏好相匹配,并在检测到特定行为时触发强制性动作来强制执行这些政策。PPL还可以扩展以包含问责规则,以增强其执行能力。 | LEGALEASE是一种隐私政策的正式语言,旨在通过一个名为GROK的系统来执行这些政策。GROK使用启发式方法来帮助确定分析过程是否符合既定的隐私政策。 |
优点 | 1. 支持隐私法规的编码和自动化执行。 2. 可以与用户的隐私偏好进行匹配。 3. 支持在特定行为发生时触发强制性动作。 4. 可以扩展以包含问责规则,提高透明度和可追溯性。 | 1. 提供了一种形式化的语言来描述隐私政策。 2. 通过GROK系统实现政策的自动化检查。 3. 使用启发式方法帮助识别政策遵守情况。 |
缺点 | 1. 主要专注于Web 2.0应用程序,可能不适用于其他类型的应用。 2. 对于需要细粒度隐私要求的复杂数据分析任务,提供有限的支持。 | 1. 依赖于GROK系统的启发式方法,可能无法完全自动化政策遵守检查。 2. 需要人工审核来捕捉假阴性,这可能增加时间和资源的消耗。 |
二、本文提出
本文描述了一个名为PRIVGUARD的数据分析框架,旨在减少合规过程中的人工参与。PRIVGUARD在密码工具和可信执行环境(TEEs) 的保护下,通过一个五步流程工作:
步骤 | 描述 | 参与者 |
---|---|---|
1 | 将隐私法规翻译成机器可读的策略语言。 | 数据保护官员(DPOs)、法律专家、领域专家 |
2 | 数据主体通过客户端API指定他们的隐私偏好。 | 数据主体 |
3 | 提交分析程序和相应的守护政策。 | 数据分析师 |
4 | PRIVANALYZER检查分析程序是否符合守护政策。 | PRIVANALYZER(静态分析器) |
5 | 分析结果的处理和保护。 | 数据分析师、PRIVANALYZER |
1.法规编码
使用LEGALEASE进行政策语言编码并在此基础上进行了扩展;编码基础政策是PRIVGUARD工作流中最需要人类参与的步骤。
2.数据主体:用户
指定隐私偏好行使其限制处理的权利。
3.数据分析师
分析师需要给PRIVANALYZER提交:
- 分析程序
- 一个守护策略
4.PRIVANALYZER
静态分析器;通过静态分析分析师提交的程序,检查其与相应守护策略的合规性;基于抽象解释的政策执行机制;为某些属性提供可证明的健全性。仅检查程序和政策 (而非数据),因此不会泄露其保护的数据内容;符合策略的数据才会被加载到TEE中,使用来自密钥管理器的密钥进行解密;完成分析后,提交的程序将在TEE内部使用解密后的数据执行。如果前一步生成的剩余政策为空,则结果可以向分析师去标分类。否则,输出将再次被加密并存储在受剩余政策保护的存储层中。
去标分类:在数据处理或分析中去除或匿名化可以直接或间接识别个人身份的信息,这是一种数据保护和隐私保护的手段
检查策略
检查编号 | 检查内容 | 说明 |
---|---|---|
1 | 守护策略 ≥ 基础策略 | 确保守护策略至少与基础策略同等严格,不允许降低基本隐私保护水平。 |
2 | 隐私偏好 ≤ 守护策略 | 用户的隐私偏好不应超过守护策略设定的限制,以确保不会违反核心隐私要求。 |
3 | 在去标分类之前必须满足守护策略 | 在进行去标识化或分类处理个人数据之前,必须先确保满足守护策略的要求,以防数据泄露。 |
5.安全性
-
数据保护:
数据在本地加密后再传输给数据管理者,确保在传输过程中的保密性和完整性。
所有传输通道使用传输层安全标准(TLS 1.3),进一步确保数据在传输过程中的安全性和完整性。 -
安全执行环境(TEE):
PRIVANALYZER在受信任的执行环境(TEE)内运行,保证了分析过程的静态分析的完整性。
数据解密和分析程序的执行也在TEE内进行,确保了执行过程的隔离和保护,避免外部干扰。 -
信任来源:
数据的保密性和完整性在TEE和TLS通道内得到维护,确保了敏感信息的安全。
代码执行的完整性在TEE内得到保护,通过远程认证机制来确保执行输出的正确性和安全性。
密钥管理器的设计确保解密密钥的保密性,即使是在不受信任的第三方环境中也能保持密钥安全。
6.PIVGUARD工作示例
步骤 | 描述 |
---|---|
制定规则(编码) | 学校设定隐私保护规则:不用未成年人信息做研究;研究时必须使用差分隐私。 |
收集数据 | 收集学生的隐私偏好(数据主体),如是否同意使用家庭地址(邮政编码)等信息。 |
分析请求 | 老师(数据分析师)提出研究请求,过滤掉学生信息,没有使用家庭地址。但忘记应用差分隐私来保护数据。 |
检查与执行 | PRIVGUARD检查请求与规则和偏好是否一致,发现缺失差分隐私措施。PRIVGUARD将把结果放在一个安全的地方,直到符合隐私安全 |
重新尝试 | 老师根据反馈修正计划,加入差分隐私,PRIVGUARD批准研究进行。 |
四、策略语法与语义
属性 | 描述 | 示例 | |
---|---|---|---|
ROLE | 控制谁可以检查数据的内容。角色被组织成部分有序的层次结构。 | ALLOW ROLE Oncologist | 角色属性由身份验证技术强制执行,例如密码、两因素身份验证。此外,角色属性还记录在下一段描述的可审计系统日志中,分析员和数据管理员将对虚假身份负责。 |
SCHEMA | 控制可以检查数据的哪些列。 | AND SCHEMA age, condition | |
PRIVACY | 通过要求使用隐私增强技术来控制数据的使用方式。 | AND PRIVACY DP (1.0, 1e-5) | 调用删除识别信息的函数来满足去标识化要求。 |
FILTER | 允许策略指定必须从分析中排除某些数据项。 | AND FILTER age > 18 | |
REDACT | 允许策略要求部分或完全编辑列中的信息。 | AND REDACT zip (2 :) | |
PURPOSE | 允许策略限制数据可被分析的目的。 | AND PURPOSE PublicInterest | 基于问责制的方法来检查目的的合规性。分析员在提交分析程序时可以指定其目的,并可能无意或恶意指定无效目的。 |
补充说明
- SCHEMA(模式),FILTER(过滤器)和REDACT(删除)属性可以被正式定义,并且可以通过PRIVANALYZER进行合规性检查
- 函数摘要:程序分析中用于表示函数行为特征的一种摘要信息。这些摘要能够帮助静态分析工具(如PRIVGUARD中的PRIVANALYZER)理解程序中函数的作用,特别是它们如何处理数据以及这些处理是否遵守特定的隐私政策。
- 如果一个函数已经被验证为遵守隐私政策(有相应的摘要),那么在分析程序对数据的处理是否合规时,可以忽略这个函数的影响。 缺乏足够的函数摘要,一些程序可能会被拒绝
1.PRIVANALYZER概述
-
抽象解释:它通过在抽象值上运行程序而非常规的具体值来工作。这意味着它可以处理更广泛的数据类型和结构,而不仅限于特定的数值或字符串。
-
策略编码:将隐私策略编码成与数据属性预期语义相对应的抽象值。这确保了策略能够有效地映射到数据分析过程中。
-
抽象解释器:不是从零开始构建一个用于复杂语言如Python的抽象解释器,PRIVANALYZER 重用现有标准。通过将隐私策略附加到Python对象,并定义抽象值操作,它可以直接在常用数据处理库(如pandas)上工作。
-
剩余策略:PRIVANALYZER 生成剩余策略,为多步骤分析提供了一种方法,其中每一步的输出成为下一步的输入。这种组合式分析避免了需要构建完整的全局数据流图,简化了分析过程。
-
处理库问题:对于依赖大型库的程序,PRIVANALYZER 通过开发库的抽象功能规范来解决分析难题。使用函数摘要代替具体实现,使PRIVANALYZER 能够有效地分析即使是依赖庞大、多语言库的程序。
2.静态分析的优势
隐式数据流(Implicit Data Flow)
隐式数据流指的是程序中的数据传输,这种传输不通过直接的赋值或调用,而是通过程序的控制流逻辑隐含的。例如,一个程序可能根据某个敏感变量的值来决定执行哪个代码分支,虽然敏感变量的值没有直接传递给其他变量,但这种决策逻辑实际上已经隐式地将信息“流”传到了程序的其他部分。
- 能够处理隐式数据流:静态分析不依赖于程序的执行路径,可以分析程序的所有潜在执行路径。
- 最小的运行时开销:在程序执行之前进行分析,不会影响程序的运行效率。
- 进行最坏情况分析:与动态分析不同,PRIVANALYZER可以进行最坏情况分析,这意味着它会检查程序的所有分支,而不只是执行过的分支。这使得分析更加全面,可以预测所有可能的执行路径的结果,包括那些在实际运行中可能永远不会发生的路径。这种分析虽然可能牺牲了一定的精确性,但对于确定程序是否安全来说是非常有用的。
- 不要求策略规范意识到隐式流:静态分析工具如PRIVANALYZER不需要策略规范明确考虑到隐式流,因为它自动地将所有类型的数据流(显式和隐式)结合到其分析结果中。这简化了安全策略的制定。
3.静态分析示例——用于数据预处理和执行KMeans聚类分析的程序
“抽象数据框架”(Abstract Data Frameworks, ADFs),是假想的或概念性的框架,用于在数据处理和分析中表示和跟踪数据隐私策略。每个ADF代表一组与数据相关的隐私策略和结构(schema),可以用于确保数据处理活动符合特定的隐私要求。下面是对每个ADF表达内容的解释:
ADF 实例 | 架构定义 | 年龄过滤 | 隐私策略 | 描述 |
---|---|---|---|---|
ADF 1 | {age, credit, duration} | FILTER(age)=[18,∞] | PRIVACY DeId | 定义了三个字段的架构,只包含18岁及以上的记录,并应用去标识化隐私策略。 |
ADF 2 | {age, credit, duration} | 无 | PRIVACY DeId | 定义了三个字段的架构,应用去标识化隐私策略,但没有年龄过滤。 |
ADF 3 | 无 | 无 | PRIVACY DeId | 不指定数据架构,只强调数据需去标识化处理。 |
ADF 4 | 无 | 无 | 无 | 不指定数据架构和隐私策略,可能是数据处理的开放阶段。 |
在整个过程中,每个ADF的变化和更新反映了在数据处理和分析的每个阶段对隐私策略的遵守情况。通过使用ADF,数据科学家可以系统地追踪和确保他们的数据处理流程遵循所有相关的隐私要求,从而保护个人数据免受滥用。
五、基于PRIVANALYZER的实验
1.实验环境
- 存储层:Inter Planetary File System (IPFS)
- 数据加密:AES-256-GCM
- 可信执行环境(TEE):AMD SEV
2.实验过程
在实验中,研究人员从Kaggle收集了23个不同任务的分析程序,并为每个程序设计了一个合适的LEGALEASE策略,这是一种用于定义数据处理规则的策略语言。每个数据集都附加了这种策略,研究人员随后手动检查了PRIVANALYZER输出的分析结果是否正确,以验证其准确性和可靠性。
3.实验结果
-
PRIVANALYZER性能开销小: 静态分析的时间开销相对于原始程序的本地执行时间可以忽略不计。
-
控制流构造的影响: 条件语句、循环和其他控制流构造对分析时间的影响大于程序的长度。简单且一致的编码模式,以及偏好使用库而不是复杂控制流的程序,可以使PRIVANALYZER更有效地扩展。
-
PRIVGUARD的可扩展性: 能够处理大量用户和数据集,对于固定的程序,其分析开销几乎是恒定的,表明PRIVGUARD能够为大规模的数据分析和机器学习任务提供可靠的隐私保护,且性能不会因用户或数据集数量增加而显著下降。
六、PRIVANALYZER限制
限制编号 | PRIVGUARD的限制 | 描述 |
---|---|---|
1 | 容易受到内部攻击(恶意分析师) | PRIVGUARD可能对内部威胁,如恶意分析师,防御不足。 |
2 | 许多PURPOSE属性不能自动执行 | PRIVGUARD无法自动执行与程序属性无关的多数PURPOSE属性。 |
3 | 依赖于TEE,如AMD SEV | PRIVGUARD依赖于受信任的执行环境(如AMD SEV)来防御不受信任的第三方。 |