[终端安全]-8 隐私保护和隐私计算技术

1 隐私保护相关法规和标准

1)国内法规和标准

1.1)中华人民共和国网络安全法(2017年)

  • 规定了个人信息的保护和数据安全的基本原则。

  • 要求网络运营者采取措施防止数据泄露、篡改和丢失。

1.2)信息安全技术:个人信息安全规范(GB/T 35273-2020)

  • 国家标准,规定了个人信息保护的具体要求和实施指南。

1.3)数据安全法(2021年)

  • 涉及数据处理、数据安全管理、数据安全保护等方面的要求。

1.4)中华人民共和国个人信息保护法(2021年)

  • 明确了个人信息处理的基本原则和要求。

  • 规定了个人信息处理者的责任和义务。

  • 保护个人在个人信息处理过程中的知情权、访问权、纠正权等。

2)国际法规和标准

2.1)欧洲通用数据保护条例(GDPR)(2018年发布,被称为欧盟史上最严条例)

  • 全球影响力最大的隐私保护法规之一。

  • 规定了数据保护的基本原则,如合法性、公平性、透明性等。

  • 强调数据主体的权利,包括访问权、纠正权、删除权、数据可携权等。

  • 设有高额罚款和严格的合规要求。

2.2)美国:加州消费者隐私法案(CCPA,2018年)

  • 强调消费者对其个人信息的控制权,包括访问权、删除权和拒绝出售权。

2.3)其它:

  • 日本:个人信息保护法(APPI)规定了关于处理个人信息的基本要求和隐私权保护框架。

  • 加拿大:个人信息保护与电子文档法(PIPEDA)适用于商业组织收集、使用和披露个人信息。

  • 澳大利亚:隐私法(Privacy Act)含13项隐私原则(APPs)用于管理个人信息的处理。

  • ISO/IEC 27001:国际标准,提供了信息安全管理体系(ISMS)的要求和指导。

2 隐私保护技术

1)数据加密

  • 对称加密(如AES):同一个密钥用于加密和解密。

  • 非对称加密(如RSA):公钥加密,私钥解密。

2)匿名化和伪匿名化

  • 数据匿名化:移除个人身份信息,使数据无法被识别。

  • 伪匿名化:用假名或其他方式替换个人身份信息,降低被识别风险。

3)访问控制

  • 基于角色的访问控制(RBAC):根据用户角色分配访问权限。

-基于属性的访问控制(ABAC):根据用户属性和环境条件分配访问权限。

4)隐私计算

  • 在保护数据隐私的前提下,对数据进行计算和处理。

  • 包括差分隐私、同态加密、联邦学习、多方安全计算等技术。

3 隐私计算技术

1)差分隐私计算

差分隐私(Differential Privacy,DP)是一种技术,旨在通过添加噪声保护个体隐私,从而确保数据库中单个记录的存在与否不会显著影响查询的结果,这使得攻击者难以从查询结果中推断出关于个体的信息。

一个算法A被称为ϵ-差分隐私的,如果对于任意两个只差一个记录的数据库D和D',以及任意一个输出集合 S ⊆Range(A),都有:Pr[A(D)∈S] ≤ eϵPr[A(D′)∈S],其中:ϵ是隐私预算参数,值越小隐私保护越强,D和D'是任意两个只差一个记录的数据库。

1.1)实现机制

差分隐私主要通过添加噪声来实现,这些噪声通常是从特定的分布中抽取的。

A)拉普拉斯机制

拉普拉斯机制是最常见的差分隐私机制之一,通过向查询结果添加拉普拉斯噪声来实现。

数学公式:给定函数f和参数ϵ,定义拉普拉斯机制为:A(D)=f(D)+Lap(Δf/ϵ),其中:Lap(b)是参数为b的拉普拉斯分布,Δf是函数f的全局敏感度,定义为:Δf=maxD,D'∣∣f(D)−f(D')∣∣1​。

B)高斯机制

高斯机制通过添加高斯噪声来实现差分隐私,通常用于满足(ϵ,δ)差分隐私,其中δ是隐私损失的概率。

数学公式:给定函数 f,高斯机制定义为:A(D)=f(D)+N(0,σ2),其中:N(0,σ2)是均值为 0,方差为σ2的高斯分布,σ决于隐私预算参数ϵ和 δ,以及函数f 的敏感度。

C)指数机制

指数机制用于选择最优输出,使其满足差分隐私,适用于离散数据。

数学公式:对于输出集合O,每个输出o∈O的选择概率为:Pr[A(D)=o]∝exp(ϵu(D,o)/ 2Δu),其中:u(D,o)是效用函数表示输出o 对数据库D 的效用,Δu是效用函数的敏感度。

1.2)典型应用

  • 统计查询:在数据集中进行聚合查询如计算平均值、总和等,通过添加噪声保护个体隐私。

  • 机器学习:训练差分隐私模型,保护训练数据集的隐私。

  • 发布数据:发布差分隐私的合成数据,保护原始数据隐私。

  • 数据共享:在多个机构之间共享数据,确保数据隐私。

**A)谷歌的RAPPOR:**随机可聚合隐私保护序列响应用于收集用户行为数据,通过随机化响应和差分隐私技术确保单个用户的行为数据不泄露。Google Chrome使用RAPPOR来收集用户的浏览器设置、使用情况等信息,确保个人数据不会被泄露。

**B)苹果的差分隐私:**苹果在键盘输入、Emoji使用、Safari浏览器等方面使用差分隐私技术,收集用户数据来提升预测和推荐功能,同时保护用户隐私。

**C)微软的Differential Privacy Library:**提供差分隐私的工具和库,帮助开发者在应用中集成差分隐私技术。例如微软在Windows系统的遥测数据收集中使用差分隐私技术,确保用户使用数据的隐私安全。

2)同态加密

同态标识一种加密运算特征,即明文和密文之间存在确定的同步变换规则;同态加密(Homomorphic Encryption,HE)是一种允许对加密数据进行特定计算操作的加密技术,而这些操作的结果在解密后保持有效。

2.1)基本概念

同态加密的关键特性是它允许在密文上执行某些操作,而结果仍然保持加密状态。主要有两种同态操作:加法同态(密文的加法操作对应于明文的加法)和乘法同态(密文的乘法操作对应于明文的乘法)。

  • 半同态加密(PHE):仅支持加法或乘法中的一种操作。

  • 全同态加密(FHE):支持任意多次的加法和乘法操作。

2.2)半同态-RSA

RSA 加密不具备加法同态,但可以用乘法实现某种意义上的同态操作,其安全性基于大数因式分解的困难问题。

c=E(m)=me mod n,E(m1​)⋅E(m2​)=( m1e mod n) (m2e mod n) = (m1 m2) e mod n = E(m1 m2)。

2.3)半同态-Paillier 加密

Pailier支持加法同态,是目前使用较多的部分同态加密算法,其安全性基于判定合数剩余类问题。

  • 密钥生成:n = pq,g∈Zn2*,生成公钥 (n, g) 和私钥λ。

  • 加密:E(m)=gm⋅rn mod n2,其中m是明文,r是随机数。

  • 同态加法:E(m1)⋅E(m2)=(gm1⋅r1n)⋅(gm2⋅r2n) mod n2=g(m1+m2)⋅(r1r2)n mod n2=E(m1+m2)。

2.4)全同态- Gentry加密

Craig Gentry提出的第一个全同态加密方案,基于理想格(Ideal Lattices)的数学结构。首先构造一个有限同态加密方案,满足低阶密文多项式在计算时同态性,然后用压缩方法解密降低解密过程中多项式系数;加密过程会引入噪声,并会随着运算增大,超出阈值会导致解密失败。Gentry采用自举技术,将接近阈值的噪声密文及密钥分别加密,之后解密算法作为评估函数一部分使其噪声比原始密文噪声小。

  • 密钥生成:生成公钥 pk 和私钥 sk,以及一个特殊的"噪声"参数 f)。

  • 加密:E(m) = E_{pk}(m + f),其中m 是明文。

  • 同态加法:E(m1) + E(m2) = E(m1 + m2)

  • 同态乘法:E(m1)⋅E(m2)=E(m1⋅m2)

备注:结合自举技术或重线性化技术对噪声的减小,层次性同态加密可转换为全同态加密。BFV是目前最有影响力方案之一,其安全性依赖于RLWE困难问题;GSW来源矩阵的近似特征向量,其安全性最终依赖于LWE困难问题。

2.5)硬件实现

实现基本的加密和解密操作,通常需要高效的模运算单元(模加、模乘、模幂运算等)和随机数生成器;支持在密文上进行同态加法和乘法运算,并保持密文中的噪声在可控范围内,需设计专门的运算单元来处理这些操作。FHE算法涉及大数的加法、乘法和幂运算,这些运算的复杂度随密钥长度指数增长;每次同态运算都会引入噪声,累积的噪声会增加解密的复杂度;还需要进行多次迭代运算,每次迭代都会增加计算复杂度,因此FHE算法复杂度较高,需要复杂的硬件设计并消耗较高的计算资源。

2.6)典型应用

  • 在云端对加密数据进行处理,如搜索、统计分析等,保证数据传输和存储过程中的隐私性。

  • 对加密的患者数据进行分析,保护隐私的同时允许数据共享和协作。

3)多方安全计算

多方计算(MPC,Multi-Party Computation)是一种密码学技术,允许多个参与方在不泄露各自输入的情况下共同计算一个函数的输出,核心思想是确保每个参与方只了解自己的输入和最终计算结果,而不暴露其他参与方的输入。

3.1)核心协议

A)混淆电路

Yao的加密电路协议将计算表示为布尔电路,然后对电路中的每个门进行加密,加密后的电路只能通过特定的密钥进行计算。

  • 生成布尔电路表示计算。

  • 对电路中的每个门进行加密。

  • 参与方交换加密电路和密钥。

  • 计算加密电路,得到最终结果。

B)秘密共享

将每个输入数据分割成若干份(称为份额),分发给所有参与方。每个参与方只有其中一部分数据,无法单独恢复原始数据。典型方案Shamir秘密共享,将秘密 S分割成 n份。

  • 发份额给 n个参与方。

  • 参与方根据秘密共享协议执行计算,得到加密结果。

  • 汇总计算结果,恢复最终结果。

**BGW协议:**Ben-Or, Goldwasser, and Wigderson提出的一种秘密共享基础上的MPC协议,支持任意数量的加法和乘法操作。

假设有两个参与方A和B,他们分别持有输入x和y,MPC的目标是计算函数 f(x,y) 而不泄露x和y。

  • 秘密共享:将 x和y分成若干份,分发给参与方。x→{x1,x2,...,xn},y→{y1,y2,...,yn},其中,x1+x2+...+xn=x和 y1+y2+...+yn=y。

  • 加法和乘法:参与方按照协议执行加法和乘法操作,得到加法和乘法的秘密共享结果。

  • 结果恢复:将计算结果的份额汇总,恢复最终计算结果。

f(x,y)→{f1,f2,...,fn},其中,f1+f2+...+fn=f(x,y)。

3.2)典型应用

电子投票:MPC可以确保投票过程中每个选民的选择保密,同时能够正确计算投票结果。

隐私保护统计分析:多个机构可以在不泄露各自数据的情况下,共同进行统计分析,如联合医疗数据分析。

安全多方机器学习:在不泄露训练数据的情况下,多个机构可以共同训练机器学习模型。

4)联邦学习

联邦学习(FL)是一种分布式机器学习方法,允许多个参与方在不共享本地数据的情况下共同训练一个全局模型,从而在保护数据隐私的同时实现协作学习。联邦学习的基本思想是通过在本地设备上训练模型,然后将本地模型的更新发送到中央服务器进行汇总和优化,最后将更新后的全局模型分发回本地设备进行下一轮训练。

  • 本地训练:各参与方(如智能手机、物联网设备等)在本地数据上独立训练模型,训练过程中,数据不离开本地设备,确保数据隐私。

  • 模型聚合:各参与方将本地训练得到的模型参数或梯度发送到中央服务器,服务器汇总这些参数或梯度,更新全局模型。

  • 全局模型更新:中央服务器将更新后的全局模型分发给各参与方,各参与方基于新的全局模型继续进行本地训练,进入下一轮迭代。

4.1)工作流程

  • 初始化全局模型:服务器初始化一个全局模型,并将其分发给所有参与方。

  • 本地训练:各参与方在本地数据上使用全局模型进行训练,并计算模型更新(如权重、梯度等)。

  • 上传本地更新:各参与方将本地更新发送到中央服务器。

  • 模型聚合:服务器汇总所有参与方的更新,计算全局模型更新。常见的聚合方法是加权平均:wt+1=∑i=1N(ni/n)wti,其中wt是第 t轮的全局模型参数,wti是第 i个参与方在第 t轮的本地模型参数,ni是第i个参与方的数据量,n是所有参与方的数据总量。

  • 分发更新后的全局模型:服务器将更新后的全局模型分发给各参与方。

  • 迭代训练:各参与方基于更新后的全局模型进行下一轮本地训练,重复上述过程直到模型收敛或达到预定的训练轮数。

4.2)关键技术

安全多方计算:用于在模型聚合过程中保护参与方的模型更新隐私,通过加密技术确保参与方的更新在汇总过程中不被泄露。

差分隐私:在本地更新过程中添加噪声,以保护参与方的隐私,确保单个参与方的更新对全局模型的影响有限。

同态加密:允许在加密数据上进行计算保护模型更新隐私,在模型聚合过程中通过同态加密确保更新过程中的隐私安全。

通信效率优化:采用梯度压缩、模型剪枝、知识蒸馏等技术,降低通信成本。

4.3)联邦分类

  • 横向联邦学习也称为样本并行联邦学习,主要适用于参与方的数据集在特征空间相似但样本空间不同的情况。例如不同医院拥有不同的病人数据集,但每个病人数据集都包含相同的医疗特征(如血压、血糖等)。

  • 纵向联邦学习也称为特征并行联邦学习,适用于参与方的数据集在样本空间相似但特征空间不同的情况。例如不同金融机构拥有相同客户的不同信息,一个机构有客户的交易记录,另一个机构有客户的信用记录。

  • 迁移学习旨在将已在源任务上训练好的模型知识迁移到目标任务中,减少目标任务的数据需求和训练时间。例如从图像识别领域训练的模型中迁移知识到医疗图像分析领域。

4.4)典型应用

  • 在智能手机、智能手表、物联网设备上实现分布式协作学习,提升个性化模型的性能。例如Gboard 输入法使用联邦学习提高输入预测准确性。

  • 各医疗机构在不共享病人数据的前提下,共同训练医学模型。例如医院之间共享癌症诊断模型,提高诊断准确率。

  • 银行和金融机构在保护客户隐私的前提下,共同训练欺诈检测模型。例如联合信用评分模型,提升风险管理能力。

  • 各城市部门在不共享敏感数据的情况下,共同训练交通、能源管理等模型。例如城市交通流量预测模型,提升交通管理效率。

5)零知识证明

零知识证明(ZKP)是一种密码学协议,允许一方(证明者)向另一方(验证者)证明某个陈述的真实性,而无需透露任何关于该陈述的额外信息。

**- 完备性:**如果陈述是真,诚实的证明者可以使得验证者相信这一事实。

**- 可靠性:**如果陈述是假的,任何试图欺骗的证明者都无法使验证者相信这一事实,除非极小概率事件发生。

**- 零知识性:**如果陈述是真,证明过程不会泄露任何关于该陈述的额外信息。

5.1)交互式零知识证明

证明者和验证者通过多次交互完成证明过程,一般需要在双方之间采取挑战、应答方式,经典例子基于图同构的零知识证明。

Schnorr协议

Schnorr身份认证协议由德国密码学家Claus Schnorr于1990年提出,其安全性依赖离散对数求解困难问题,并且该协议基于乘法群运算,可提前计算参数减少证明者计算资源。

设置:公开参数 (g, p, q),私钥 x,公钥 y=gx mod  p。

承诺:证明者选择随机数 r,计算 t=gr mod  p并发送给验证者。

挑战:验证者选择随机数 c并发送给证明者。

响应:证明者计算 s = r + cx mod q并发送给验证者。

验证:验证者检查 gs=?t⋅yc mod  p。

5.2)非交互式零知识证明

证明过程不需要交互,通常需要可信的公共参数,常用于区块链和智能合约。

zk-SNARK

设置:生成可信公共参数 (pk,vk)。

证明生成:证明者使用 pk生成证明 π,π=Prove(pk,statement,witness)。

验证:验证者使用 vk验证 π,Verify(vk,statement,π)。

5.3)典型应用

  • 区块链:用于隐私保护和验证交易的有效性,如Zcash中的zk-SNARK。

  • 身份验证:用于证明用户身份的有效性而不泄露身份信息。

  • 安全计算:用于多方计算中的数据隐私保护。

6)可信执行环境

可信执行环境(TEE)是一种基于硬件的安全技术,提供一个隔离的计算环境,确保敏感数据和代码在隔离环境中安全执行。

6.1)核心组件

安全处理器:专用处理器负责处理敏感数据和执行敏感代码。

内存隔离:隔离内存区域,用于存储敏感数据和代码,防止未经授权的访问。

安全启动:确保在启动时加载的代码是可信的,并防止恶意代码的注入。

加密和解密模块:提供硬件加速的加密和解密功能,保护数据的机密性和完整性。

6.2)典型实现

ARM TrustZone: ARM架构中的安全扩展,通过硬件隔离创建安全和非安全世界,分别运行可信和非可信代码。请参照笔者之前文章:[终端安全]-3 移动终端之硬件安全(TEE)

****Intel SGX:****英特尔的安全扩展,通过创建隔离的安全区域(enclaves),保护敏感数据和代码的执行。

A)核心技术

  • 安全启动:确保在启动时加载的代码是可信的。

  • 内存加密:对enclave内存进行加密,防止未经授权的访问。

  • 远程认证:允许远程验证enclave的完整性和可信性。

B)架构

  • Enclave:隔离的安全区域,用于执行敏感代码和存储敏感数据。

  • CPU支持:需要支持SGX指令集的CPU。

  • 内存隔离:通过内存加密技术保护enclave内存。

AMD SEV (Secure Encrypted Virtualization) ****:****是一种硬件安全技术,通过加密虚拟机的内存,保护虚拟机中的数据和代码。

A)核心技术

  • 内存加密:对虚拟机的内存进行加密,防止宿主机或其他虚拟机的访问。

  • 密钥管理:使用硬件安全模块管理加密密钥。

  • 远程认证:允许远程验证虚拟机的完整性和可信性。

B)架构

  • 虚拟机管理程序(VMM):支持SEV技术的虚拟机管理程序。

  • CPU支持:需要支持SEV指令集的CPU。

  • 内存加密:通过内存加密技术保护虚拟机内存。

相关推荐
萨格拉斯救世主11 分钟前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试22 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
龙哥说跨境30 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
AltmanChan31 分钟前
大语言模型安全威胁
人工智能·安全·语言模型
ycsdn1041 分钟前
Caused by: org.apache.flink.api.common.io.ParseException: Row too short:
大数据·flink
马船长41 分钟前
红帆OA iorepsavexml.aspx文件上传漏洞
安全
懒大王就是我1 小时前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine2023911 小时前
06 网络编程基础
java·网络
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器