隐私计算实训营第七讲-隐语SCQL的架构详细拆解
文章目录
- 隐私计算实训营第七讲-隐语SCQL的架构详细拆解
-
- [1.SCQL Overview](#1.SCQL Overview)
-
- [1.1 多方数据分析场景](#1.1 多方数据分析场景)
- [1.2 多方数据分析技术路线](#1.2 多方数据分析技术路线)
-
- [1.2.1 TEE SQL方案](#1.2.1 TEE SQL方案)
- [1.2.2 MPC SQL方案](#1.2.2 MPC SQL方案)
- [1.3 Secure Collaborative Query Language(SCQL)](#1.3 Secure Collaborative Query Language(SCQL))
-
- [1.3.1 SCQL 系统组件](#1.3.1 SCQL 系统组件)
- [1.3.2 SCQL 关键特性](#1.3.2 SCQL 关键特性)
- [1.4 SCQL应用场景](#1.4 SCQL应用场景)
- [2. SCQL CCL](#2. SCQL CCL)
-
- [2.1 CCL有什么用?](#2.1 CCL有什么用?)
- [2.2 CCL是什么?](#2.2 CCL是什么?)
- [2.3 CCL Example](#2.3 CCL Example)
- [3.SCQL 架构](#3.SCQL 架构)
1.SCQL Overview
1.1 多方数据分析场景
在多方数据分析场景中,数据的分散性是一个显著的挑战。当数据集中存储在一个机构内时,分析任务相对简单,因为所有相关数据都处于同一个受控环境中。然而,随着数据隐私和安全意识的提高,以及数据保护法规的实施(如欧盟的GDPR),越来越多的场景下数据被存储在数据所有者的本地环境中,不同机构间的数据共享和分析变得复杂而困难。
![](https://file.jishuzhan.net/article/1775367940674162689/883b12617950dd073351ca3011a7652a.webp)
1.2 多方数据分析技术路线
![](https://file.jishuzhan.net/article/1775367940674162689/c0c5bb882f850b95e4ae13ba38f58940.webp)
在涉及跨机构数据分析的场景中,保护数据隐私和安全是一个重要目标。针对这一需求,两种主要技术方案被提出:基于受信执行环境(TEE,如Intel SGX)的SQL(TEE SQL)方案,以及基于多方计算(MPC)的SQL(MPC SQL)方案。下面分别介绍这两种方案的优缺点:
1.2.1 TEE SQL方案
优点:
- 高性能:TEE方案通常可以提供接近原生硬件性能的计算效率,因为它直接在CPU上执行,减少了额外的计算开销。
- 易于部署:由于TEE是基于硬件的解决方案,它通常更易于在现有的硬件和软件架构上部署,无需复杂的网络配置或软件支持。
- 强隔离性:TEE提供了强大的安全隔离,确保即使在操作系统或虚拟机管理器被攻破的情况下,数据和计算过程仍然安全。
缺点:
- 可信硬件依赖:TEE方案高度依赖特定的硬件支持,这意味着其可用性和安全性取决于硬件供应商的技术和政策。
- 安全漏洞风险:历史上TEE,尤其是Intel SGX,被发现有安全漏洞,这些漏洞可能被攻击者利用来破坏TEE的安全保障。
- 有限的资源:TEE环境通常受限于较小的内存和存储空间,这可能限制其处理大规模数据集的能力。
1.2.2 MPC SQL方案
优点:
- 无需可信硬件:MPC方案不依赖特定的硬件支持,因此具有更好的通用性和兼容性,可以在各种硬件和平台上实现。
- 理论上的安全性:MPC提供了基于数学证明的安全保障,即使参与计算的一部分或多数方不可信,也能保证计算结果的正确性和数据的隐私。
- 灵活性:MPC支持多种计算模型和复杂的数据分析任务,适用于不同的应用场景和需求。
缺点:
- 性能开销:与直接在硬件上执行相比,MPC的计算过程涉及大量的加密和通信操作,这导致了较高的性能开销。
- 复杂的协议设计:实现一个既安全又高效的MPC系统需要复杂的协议设计和优化,这增加了开发的难度和成本。
- 网络依赖:MPC的效率在很大程度上依赖于参与方之间的网络连接质量,高延迟或低带宽的网络环境可能会显著降低性能。
总的来说,TEE SQL方案在性能和部署上具有优势,但依赖特定的硬件和面临安全漏洞的风险;而MPC SQL方案提供了强大的安全性和灵活性,但以牺牲计算效率和增加实现复杂度为代价。选择哪种方案取决于特定应用的安全需求、性能要求以及可用资源。
1.3 Secure Collaborative Query Language(SCQL)
![](https://file.jishuzhan.net/article/1775367940674162689/0acc78e7b54293b29bcf317dacf8eb6d.webp)
1.3.1 SCQL 系统组件
-
SCDB:部署在可信第三方,负责将查询(query)翻译成密态执行图,然后下发给SCQLEngine。本身不参与计算,主要作用是查询预处理和协调。
-
SCQLEngine:部署在数据参与方,负责协同其他参与方一起完成执行图的计算。这是数据处理和计算的核心组件。
1.3.2 SCQL 关键特性
-
半诚实安全模型:假设参与者不会主动破坏协议执行,但可能试图从过程中获取额外信息。SCQL设计以确保数据隐私,即使在半诚实假设下。
-
支持多方(N>=2):允许两方或更多方参与者共同进行数据查询和分析,增加了系统的应用灵活性。
-
易上手:提供MySQL兼容的SQL用户界面,使用户能够快速上手,无需学习新的查询语言。
-
支持常用的SQL语法和算子:满足大部分数据查询和分析场景的需求,提高了系统的适用性和灵活性。
-
可实用的性能:优化了数据处理和计算效率,确保在保护数据隐私的同时,也能提供可接受的性能。
-
提供列级别的数据使用授权控制(CCL):增强了数据安全和隐私保护,允许精细控制数据访问权限。
-
支持多种密态协议(SEMI2K/CHEETAH/ABY3):适应不同安全需求和计算环境,提供灵活的安全保护选项。
-
内置支持多种数据源接入(MySQL, PostgreSQL, CSV等):提高了系统的兼容性和易用性,简化了数据导入和处理过程。
1.4 SCQL应用场景
![](https://file.jishuzhan.net/article/1775367940674162689/8f164fb837f46cd7025b983f0a2c0321.webp)
2. SCQL CCL
2.1 CCL有什么用?
![](https://file.jishuzhan.net/article/1775367940674162689/e68bd9cc8275b8f76bf556cd67e1ba84.webp)
2.2 CCL是什么?
![](https://file.jishuzhan.net/article/1775367940674162689/ae7c48b51aaa8f52ff9cf7915df64087.webp)
2.3 CCL Example
![](https://file.jishuzhan.net/article/1775367940674162689/a0e29460c1361568ca8f1a520923f4dd.webp)
3.SCQL 架构
3.1总体架构
![](https://file.jishuzhan.net/article/1775367940674162689/a74e03c409095241bd9bc5199c8622ad.webp)
3.3执行流程
![](https://file.jishuzhan.net/article/1775367940674162689/de89e43a4f9f8941b801c9da47409ba9.webp)