第1课 数据可信流通,从运维信任到技术信任
1.1 数据可信流通体系
数据二十条对数据可信流通体系做了简明扼要的说明:数据来源可确认、使用范围可界定、流通过程可追溯、安全风险可防范。要建立数据可信流通体系,需要从监管规则+法律法规+标准+安全保障技术等方面全方位落实。本课程主要是从隐私计算技术方面,探讨数据流通全过程的保障措施。
1.2 数据流通中的不可信风险
信任的基石:①身份可确认,②利益可依赖,③能力有预期,④行为有后果。
数据流通可分为两大循环:内循环和外循环。内循环指数据持有方在自己的运维安全域内对自己的数据使用和安全拥有全责。外循环指数据要素在离开持有方安全区域后,持有方依然拥有管控需求和责任。
数据循环流通中的不可信风险:黑客攻击、内部泄露和数据滥用。
外循环过程中数据要素离开持有方安全域后,信任基石遭到破坏:① 责任主体不清,②利益诉求不一致,③能力参差不齐,④责任链路难追溯。
1.3 技术信任
为解决上述信任遭到破坏的问题,数据流通需要全新的技术要求标准与技术方法体系。
技术信任基础:
- 身份可确认:可信数字身份,包括:CA证书、远程验证
- 利益能对齐:使用权跨域管控,是指数据持有者在数据(包括密态)离开其运维安全域后,依然能够对数据如何加工使用进行决策,防泄露防滥用,对齐上下游利益诉求。重点:①对运维人员的限制;②对数据研发过程的管控;③对全链路可信审计的保障。技术体系:包括跨域计算、跨域存储、可信审计等,不允许本地运维单方决策。可以通过 隐私计算、可信计算、机密计算 等不同技术路线实现,但技术要求标准是一致的。
- 能力有预期:通用安全分级测评,安全分级平衡性能成本需求,降低隐私计算成本。隐语可提供隐私计算技术服务。
- 行为有后果:全链路审计,形成闭环完整的数据可信流通体系,在控制面:以 可信计算和区块链 为核心支撑技术构建 数据流通管控层,包括 跨域管控 与 全链路审计。在数据面:以 隐私计算 为核心支撑技术构建 密态数联网,包括 密态枢纽 与 密态管道。数据以密态形式流通,保障其存储、计算、运维、研发、应用交付直到销毁的全链路安全可控。
1.4 数据可信流通的基础设施:密态天空计算
密态天空计算 构建 可信数据空间
- 基于技术信任的跨域管控
- 基于密态标准的数据互通
- 基于天空计算的跨云互联
- 覆盖数据密态流通全链路
第2课 隐私计算开源如何助力数据要素流通
2.1 数据要素流转与数据内外循环
数据流转链路主要包括:采集、存储、加工、使用、提供、传输。
图1 数据要素流转过程
2.2 数据外循环中的信任焦虑
数据外循环中信任焦虑的可能性:
- 数据提供方:运维人员可信么?使用方会按约定使用么?
- 数据流通中:数据在流通中会不会被泄露?
- 数据使用方:数据来源合规么?
- 数据使用中:数据在使用过程会不会被泄露?
信任焦虑的关键问题之一:数据权属,包括数据资源持有权、数据加工使用权和数据产品经营权。如何在三权分置情况下解决数据安全流通?如图2所示
图2 数据权属及相应隐私保护解决方案
信任焦虑的解决方案:从主体信任到技术信任。由技术全范围保障数据在全链路流通过程中的隐私保护。
可信云PaaS:通过技术可信代替人员可信
• 运维权限最小化:只允许预期内的行为可以执行,
• 完备的信任链:从信任根、硬件平台、操作系统到应用系统整个链路的可信认证
• 远程验证:能够远程验证云上运行环境,甚至执行环境安全隔离
• 可信安全模块:使用基于硬件的可信安全模块
2.3 数据要素流通对隐私计算的期望
隐私计算三原则:
- 原始数据不出域、数据可用不可见
- 数据使用可控可计量
- 数据可算不可识
数据要素流通对隐私计算的期望期望:
- 隐私计算产品度量尺度要一致,隐私计算产品需要通用的安全分级和评测方式
- 隐私计算需要降低接入门槛,隐私计算需要通过开源降低门槛促进数据安全流通
2.4 隐私计算开源助力数据要素流通
开源隐语助力数据要素流通,优势:
- 统一架构:推出了行业首个明密文混合统一技术路线框架,同时支持联邦学习、多方安全计算、可信执行环境、可信密态等多技术路线
- 原生应用:隐语首创 AI/BI 密态编译器支撑了工业级的原生 SQL 分析、原生 AI 训练/预测框架等复杂应用,保持用户熟悉的接口同时,引领行业密态计算走向更复杂、更具挑战场景
- 开放拓展:具备模块化设计、开放的接口、可扩展的数据存储等特点,硬件层/计算层/算法层等均支持开放拓展。灵活易集成,能够快速匹配业务变化及技术发展需求
- 性能卓越:既能支持业务在早期 PoC 阶段的快速迭代,也具备PoC 验证成功后的大规模生产能力,可支持十亿级求交、千万级建模。
- 多轮安全验证
- 多项权威认定和荣誉奖项
- 行业生态完善
第3课 详解隐私计算框架的架构和技术要点
3.1 隐语架构一览
整个隐语架构分层清晰、灵活集成、简单易用,整体架构如图3所示。不同的用户可以关注不同的内容,如图4所示。
图3 隐语架构图
图4 不同需求用户关注不同层
3.2 隐语架构拆解
3.2.1 隐语产品层
定位:
- 通过可视化产品,降低终端用户的体验和演示成本。
- 通过模块化API降低技术集成商的研发成本。
面向人群:
- 隐私保护计算集成商
- 产品人员
- 研究人员
- 开发人员
- 隐私保护计算需求方
产品包括:
- SecretPad:轻量化安装,快速验证POC,可定制集成
- 多部署形态:中心模式,P2P模式
- 全栈产品:MPC、TEE、SCQL
- SecretNote:Notebook形式、交互式建模、多节点一站式管理和交互、运行状态跟踪
3.2.2 算法层
PSI(Private Set Intesection),隐私求交,即数据持有方可以求出相同的数据集合,但是不会泄露交集以外的数据:
- 支持各类协议:半诚实模型、恶意模型
- 优化:协议优化、性能优化
- 多层入口:可通过产品层、也可通过SecretFlow接入
PIR(Private Information Retrieval),隐私数据检索,即用户查询服务端数据库中的数据,但服务端不知道用户查询的是哪些数据:
- 支持各类协议
- 优化:协议优化、性能优化
- 多层入口:可通过产品层、也可通过SecretFlow接入
数据分析:SCQL,屏蔽底层安全计算协议的复杂性,以简单熟悉的 SQL 语言界面,提供多方数据密态分析能力
联邦学习:具备安全攻防保障的明密文混合机器学习框架和算法
- 安全攻防:安全风险度量体系、攻防框架、攻防算法
- 性能:稀疏化、量化、流水线
- 算法:营销算法、SOTA安全聚合
3.2.3 计算层
混合编译调度:面向跨机构场景,提供单机构内计算任务独立调度和跨机构计算任务协作的能力。
SPU:桥接上层算法和底层安全协议,保持原生AI框架体验的同时为用户提供透明的、高性能的、基于安全协议的密态计算能力。
HEU:低门槛,高性能的同态加密库,支持多类型、可扩展的算法协议和硬件加速生态。
TEEU:支持多种可信执行环境的、具备数据使用跨域管控能力的密态计算枢纽,可执行数据分析、机器学习、MPC/FL加速等功能。
YACL:多种隐私计算技术路线共同需要的密码库,具备安全实现保证、高性能等特点。
3.2.4 资源层
KUSCIA:屏蔽不同机构间基础设施的差异,为跨机构协作提供丰富且可靠的资源管理和任务调度能力。
- 实现互联互通:隐语和其它厂商的平台可以互联互通,共同完成一个隐私计算任务。
- 实现跨域管控:跨域管控定位 人群画像数据离开持有者的运维域后,数据方仍然能够有效地控制数据的流转过程,避免其被窃取或者非预期使用。
3.2.5 硬件层
有可信硬件设备组成。
第4课 快速上手隐语SecretFlow的安装和部署
由于本人主要尝试使用隐语进行联邦学习的研究,所以采用单机部署。发现隐语需要Ubuntu系统,但是实验室机器都占用了,于是尝试在windows系统采用WSL2的方式,安装Ubuntu系统。整体步骤如下:
4.1 安装的前提要求
4.2 采用WSL安装Ubuntu
- 安装WSL, 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入以下命令
wsl --install -d Ubuntu20.04
- 设置Ubuntu密码
使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”
- 检查WSL2以及系统是否安装成功
通过在 PowerShell 或 Windows 命令提示符中输入以下命令来检查 WSL 版本
wsl -l -v
- 使用 Visual Studio Code,与WSL2配合使用,进行跨系统开发和调试。
- 访问 VS Code 安装页,选择 32 位或 64 位安装程序。 在 Windows 上(不是在 WSL 文件系统中)安装 Visual Studio Code。
- 当在安装过程中系统提示“选择其他任务”时,请务必选中“添加到 PATH”选项,以便可以使用代码命令在 WSL 中轻松打开文件夹。
- 安装远程开发扩展包。 除了 Remote - SSH 和 Dev Containers 扩展之外,此扩展包还包含 WSL 扩展,使你能够打开容器中、远程计算机上或 WSL 中的任何文件夹。使用此扩展,能够运行 WSL、SSH 或开发容器,以使用整套 Visual Studio Code 功能进行编辑和调试。 在不同的独立开发环境之间快速切换并进行更新,而无需担心会影响本地计算机。
安装成功Remote Development扩展包之后,打开VS code,点击左下角,选择连接WSL。之后便可对WSL2中进行开发。
- 安装docker容器
借助 Docker Desktop for Windows 中支持的 WSL 2 后端,可以在基于 Linux 的开发环境中工作并生成基于 Linux 的容器,同时使用 Visual Studio Code 进行代码编辑和调试,并在 Windows 上的 Microsoft Edge 浏览器中运行容器。
- 下载 Docker Desktop 并按照安装说明进行操作。
- 安装后,从 Windows 开始菜单启动 Docker Desktop,然后从任务栏的隐藏图标菜单中选择 Docker 图标。 右键单击该图标以显示 Docker 命令菜单,然后选择“设置”。
- 确保在“设置”>“常规”中选中“使用基于 WSL 2 的引擎”。
- 通过转到“设置”>“资源”>“WSL 集成”,从要启用 Docker 集成的已安装 WSL 2 发行版中进行选择。
- 若要确认已安装 Docker,请打开 WSL 发行版(例如 Ubuntu),并通过输入
docker --version
来显示版本和内部版本号 - 通过使用
docker run hello-world
运行简单的内置 Docker 映像,测试安装是否正常工作。
- 安装SeccretFlow
- docker镜像安装
docker run -it secretflow/secretflow-anolis8:lates
- 安装成功后截图如下
注意上面安装是安装的secretFlow1.5.0版本,里面不包含secretnote。
下面通过secretnote提供的案例 采用docker compose up其实是又安装了1.5版本的secretflow和secretnote。
4.3 运行secretnote
- windows打开wsl
- 输入Code . 打开VS Code
code .
- 在当前的Ubuntu系统中 新建一个文件夹docker,再新建.yml文件,输入以下内容
services alice image'secretflow/secretnote:1.5.0.dev' platform linux/amd64 environment SELF_PARTY=alice ALL_PARTIES=alice,bob ports 8090:8888 entrypoint /root/scripts/start.sh volumes /root/scripts bob image'secretflow/secretnote:1.5.0.dev' platform linux/amd64 environment SELF_PARTY=bob ALL_PARTIES=alice,bob ports 8092:8888 entrypoint /root/scripts/start.sh volumes /root/scripts
- 打开VS code terminal,进入docker文件夹,docker compose up 启动
- 启动成功后,查本机ip地址
- 浏览器输入 http://10.14.7.121:8090/secretnote/ 打开secretnote
- 新建Alice 和 Bob 用户
- 分别上传案例数据
数据来源:https://github.com/secretflow/secretnote
运行案例psi,运行成功后在每个用户下面会新增隐私求交结果
第5课 隐语PSI介绍及开发实践
5.1 SPU实现的PSI介绍
5.1.1 基本介绍
PSI定义:安全求交集(Private Set Intersection,PSI)。双方在不泄露数据的前提下,得到双方数据中的交集。
PSI分类:
- 2-Party/Multi-Party PSI
- Balanced/Unbalanced PSI
- Semi-honest/Malicious PSI
- PSI with computation:
- uPSI-CA(Cardinality)
- PSI-Payload Analytics
- Circuit PSI
5.1.2 隐语PSI功能分层
5.1.3 SPU 实现的PSI介绍
5.2 SPU PSI 调度封装
第6课 匿踪查询和隐语PIR的介绍及开发实践
隐匿查询(Private Information Retrieval PIR)定义:用户查询服务端数据库中的数据, 但服务端不知道用户查询的是哪些数据。
6.1 匿踪查询隐语API使用案例
- 新建双方 Alice,Bob,Bob端上传数据pir_query.csv。新建secretnote命名为new_pir
- 编写代码
① pir_server_setup文件夹传到服务器Alice 的root/workspce目录下。
server_secret_key.bin数据服务器Alice 的/tmp目录下
docker cp server_secret_key.bin 7d58fa0ff91d87c86393977b927028c3a4ed4ff68588b7e6e61dfae5b417c6fd:/tmp/server_secret_key.bin
这些文件的产生是应该是采用下面方式:
② 初始化SecretFlow
初始化SPU
匿踪查询
结果:
关闭sf
第7课 隐语SCQL的架构详细拆解
7.1 SCQL的整体架构
1. 整体架构图
2. SCQL背景
数据分布在不同的机构,而且同时保持数据隐私不泄露,两种技术路线:
7.2 SCQL中的CCL
1. CCL的作用
2. CCL的定义
3. CCL的案例
7.3 SCQL架构