一、背景
1.1 隐私泄漏场景
随着用户自身隐私保护意识的提升和《数据安全法》、《个人信息保护法》等国家法律法规的陆续施行,如何在收集、使用用户数据的过程中保障用户的隐私安全、满足监管要求,成为了挑战性的问题。在互联网厂商的日常业务中,常见的用户隐私泄露场景有:
(1)数据统计查询: 对用户数据进行统计查询的结果直接向客户返回(如客群洞察等业务),存在通过差分攻击从统计结果中获取个体信息的可能性。
例如,某互联网公司为外部客户提供客群画像服务,客户分别查询群体 A 和群体 B(群体 B 与群体 A 相比,仅多出一名用户甲)的居住地分布,如果第二次查询结果中居住在南京鼓楼的人数比第一次报告中多 1,那么可以推断出甲的居住地在南京鼓楼,泄露了甲的隐私信息。
(2)用户数据采集: 手机 APP、移动终端通常会采集多种用户信息(如地理位置,健康状态等)以提升服务质量和用户体验。然而,直接采集可能会导致用户隐私的泄露,同时也受到法律法规的严格限制。
例如,用户甲在某专科医院看病时打开了位置定位,互联网厂商通过收集用户甲的地理位置,可能会推断出用户甲患有某种疾病,从而造成用户甲的隐私泄露。
因此,对于广大互联网厂商来说,研发高质量的隐私保护服务,以解决统计发布、数据采集等场景中的用户隐私泄露问题,同时保证数据的可用性,从而满足监管要求,为业务赋能,成为了重要的工作。
1.2 去标识化与差分隐私
传统的隐私保护手段往往通过解耦、泛化等方法去除用户记录的标识符信息(如姓名、身份证号、设备 ID 等),或通过匿名化技术(如 K-匿名、L-多样性等)对用户记录的准标识符(如街道、邮编等)进行泛化、压缩,使得攻击者无法直接或间接地把处理过的数据与用户准确地重新关联。然而,传统方法的安全性与攻击者所掌握的背景知识密切相关,并且难以对隐私保护水平进行定量分析。例如上文中的查询场景,由于攻击者有背景知识存在(知道员工甲是否在查询范围中),传统的匿名化方法无法起到预期的作用。
为解决这些问题,差分隐私(Differential Privacy,简称 DP) [1]技术应运而生。该技术提供了一种严格、可证明的隐私保护手段,且其保护强度不依赖于攻击者所掌握的背景知识。由于这些特点,差分隐私一经提出便得到了学术界和工业界的广泛认可和应用。特别地,差分隐私的通用定义为:
则称算法 M 提供 ε-DP,其中 S 是由算法 M 所有可能的输出构成的集合,参数 ε 称为隐私预算。通过调整隐私预算 ε 的取值,可以控制差分隐私保护的程度。ε 越小,添加或删除一条记录对结果的影响程度越小,隐私保护强度也就越大,计算结果的可用性越低,反之亦然。因此,在实际应用中,根据不同场景和需求,设定合理的 ε 取值以达到隐私保护和数据可用性之间的平衡,是差分隐私技术应用的关键问题之一。
1.3 基于差分隐私的保护服务
为了解决查询统计以及用户数据采集场景中隐私泄露问题,火山引擎安全研究团队基于差分隐私技术,依托自研的 Jeddak 数据安全隐私计算平台,分别研发了面向查询保护的 DPSQL 服务(Differentially Private SQL Query Service)以及面向采集保护 LDPDC 服务(Locally Differentially Private Data Collection Service),在保障查询和采集过程中用户隐私的基础上,实现了数据的高可用目标。以下分别对两个服务进行介绍。
二、DPSQL 查询保护服务
DPSQL 采用中心化差分隐私(Centralized Differential Privacy,简称 CDP,适用于数据管理者可信的场景)[1]模式,以中间件的形式接收 SQL 统计查询请求,返回满足差分隐私的查询结果。由于现实场景中查询请求的多样性,DPSQL 服务构建面临以下关键挑战:
- 如何兼容不同类型数据库的查询方言,以降低使用成本、保障客户的查询体验?
- 如何在复杂 SQL 语句情况下计算合适的差分隐私噪声,兼顾隐私保护效果与保证数据效用?
以下将从服务架构和关键设计两个方面阐述 DPSQL 的应对措施,并对落地应用进行简要介绍。
2.1 服务架构
DPSQL 服务包含三个组件:
- DPSQL 核心服务:以原始 SQL 统计查询语句作为输入,输出满足差分隐私的结果,其中包括 SQL 解析与重写、差分隐私加噪等模块;
- 元数据管理服务:维护数据库的元数据及数据表属性特征,以便于对数据表属性进行敏感度分析;
- 隐私预算管理服务:维护每个数据表的隐私预算分配与消耗记录,提供隐私预算余量查询、报表和审计功能,以便于对查询请求进行隐私控制。
一个典型的查询请求处理流程如下:
首先,核心服务接受客户提交的 SQL 查询语句,对该语句进行解析和重写,以便于计算隐私噪声(如将 AVG 计算改为 SUM/COUNT);
然后,核心服务调用元数据管理服务,计算重写后的 SQL 查询所对应的数据表敏感度,同时在数据库上执行重写后的 SQL 查询,得到原始的查询结果;
最后,核心服务调用隐私预算管理服务得到为该查询分配的隐私预算,并结合敏感度在原始的查询结果中添加噪声并返回。
2.2 关键设计
针对前文所述 SQL 方言兼容以及查询噪声计算的挑战,团队在 DPSQL 中实现了多源异构的 SQL 解析与重写机制,以及自适应的 差分隐私加噪机制。
2.2.1 多源异构数据库 SQL 解析与重写机制
- 采用灵活可扩展的 SQL 解析机制(parser),可支持多种 SQL 方言,与传统数据库查询无差别。
- 采用定制化的 SQL 重写机制(rewriter),可支持多种语法特征,例如聚合函数、多层子查询、join、group by 等。
2.2.2 自适应的差分隐私加噪机制
- 根据 SQL 查询包含的聚合函数类型,自适应地为查询分配隐私预算,降低隐私预算的消耗;
- 根据 SQL 查询的聚合函数类型,高效分析聚合函数在多表链接查询、多层子查询等场景下的敏感度,分配合适的差分隐私加噪算法,提高服务性能和查询结果的可用性。
2.3 落地应用
目前,DPSQL 服务已接入火山引擎的客户数据平台,为银行、车企、零售等行业客户提供隐私保护的用户群体洞察服务。
三、 LDPDC 采集保护服务
LDPDC 服务以本地化差分隐私(Local Differential Privacy)[2]为核心技术,为用户提供端上的 LDP-SDK,实现端上的数据的扰动处理。同时,配套提供了服务端的计算服务,对 LDP-SDK 采集的数据进行汇总分析。同样地,LDPDC 面临以下挑战:
- 如何在满足用户个性化隐私保护需求的同时,降低通信开销?
- 如何针对分析任务,降低采集数据中的噪声,提高数据可用性?
同样的,以下从服务架构和关键设计两个方面阐述 LDPDC 的应对措施,并对落地应用进行简要介绍。
3.1 服务架构
LDPDC 服务两个模块构成:
客户端:内置 LDP-SDK,包含个性化的扰动机制,用以接受用户个性化的隐私保护需求设置,并据此对用户数据进行扰动处理,从而为用户提供差分隐私保护;
服务端:收集汇总客户端传输的数据,提供定制化的降噪聚合机制,用于对汇总的数据进行降噪聚合处理,提高数据可用性。处理后的数据可应用于推荐系统、统计查询、机器学习等数据分析服务;
3.2 关键设计
针对端上扰动和汇聚噪声降低的挑战,LDPDC 设计了个性化的扰动机制和定制化的降噪聚合机制。
3.2.1 个性化的扰动机制
- 为用户提供隐私保护强度配置选项(低、中、高三挡),满足用户对自身数据的个性化隐私保护需求。
- 提供高效的数据压缩和交互机制(如 GRR 机制、OLH 机制等),减少客户端与服务端之间的信息传输量和交互次数,降低通信开销。
3.2.2 定制化的降噪聚合机制
- 针对不同类型的个人数据,使用定制化的降噪聚合机制,以保证所收集到数据的高效用。
- 提供无偏性处理机制,使得加噪聚合后的统计信息理论上等于真实数据的统计信息。
- 提供一致性处理机制,使得聚合后的统计信息能够与公开的背景知识保持一致,如将小于 0 的频数置为 0 等。
3.3 落地应用
目前,LDPDC 服务将开始在地理位置采集等服务中进行应用,辅助业务部门对于用户信息采集进行合规治理,为广告推荐等服务提供策略支持。
四、结语
DPSQL 服务和 LDPDC 服务是差分隐私技术在火山引擎实际应用场景中的成功实践。未来,差分隐私相关服务将出现在火山引擎云安全系列产品矩阵中,服务于火山云客户。火山引擎安全研究团队将继续探索业务场景,深入挖掘用户数据隐私保护需求,研究前沿隐私保护技术的落地应用,为用户的数据隐私安全提供强力保障。
引用文献
[1] Dwork C., Mcsherry F., Nissim K., et al. Calibrating Noise to Sensitivity in Private Data Analysis [A]. Theory of Cryptography, Third Theory of Cryptography Conference, TCC 2006, New York, NY, USA, March 4-7, 2006, Proceedings: 265–284.
[2] Kasiviswanathan S.P., Lee H.K., Nissim K., et al. What Can We Learn Privately? [A]. 49th Annual IEEE Symposium on Foundations of Computer Science, FOCS 2008, October 25-28, 2008, Philadelphia, PA, USA: 531–540.