人工智能安全基础复习用:隐私保护

发布于:2025-07-07 ⋅ 阅读:(19) ⋅ 点赞:(0)

引言

在人工智能技术飞速发展的今天,隐私保护已成为AI安全领域最受关注的话题之一。随着AI系统处理越来越多的个人敏感数据,如何在发挥AI强大能力的同时保护用户隐私,成为技术开发者和政策制定者面临的重大挑战。

什么是AI隐私保护?

AI隐私保护是指在人工智能系统的数据采集、数据存储、模型训练、模型部署、模型调用过程中,采取各种技术和组织措施来保护个人数据(PII)、模型隐私(训练算法、模型拓扑结构、模型权重参数、激活函数以及超参数不被滥用、泄露或用于未经授权的目的。

隐私保护机器学习:强调在模型训练阶段保护数据和模型隐私

模型安全与隐私:强调在模型推理阶段保护数据和模型隐私

攻击模型

攻击者目标
  • 获取训练数据内容

  • 窃取模型参数或架构

攻击者知识分类
  1. 白盒攻击:攻击者拥有对模型的完全了解,包括架构、参数和训练细节

  2. 黑盒攻击:攻击者仅能通过输入/输出接口与模型交互,不了解内部细节

攻击时机
  1. 训练阶段攻击:在模型训练过程中实施的攻击

  2. 推理阶段攻击:在模型部署使用阶段实施的攻击

攻击者能力模型

1. 半诚实攻击模型(Honest-but-curious)

  • 严格遵循协商好的训练和部署流程

  • 不会主动破坏协议

  • 会收集正常获取的中间信息进行分析

  • 试图从合法获得的信息中推断敏感数据

2. 恶意攻击模型(Malicious)

  • 会主动破坏既定协议

  • 可能伪造输入、篡改计算过程

  • 目标包括:

    • 提取其他参与方的私有输入

    • 更改计算结果

    • 破坏系统完整性

攻击面分析

不同的训练架构和部署方式会暴露不同级别的信息,主要影响因素包括:

系统架构 可能暴露的信息 典型攻击方式
集中式训练 原始训练数据、完整模型 成员推断攻击、模型逆向工程
联邦学习 梯度更新、局部模型 梯度泄露攻击、模型毒化
边缘计算 本地数据、部分推理结果 属性推断攻击、重构攻击

不同的训练架构、部署方式,暴露的信息不同,隐私攻击与防御的方法也不同

 常见的隐私攻击类型

1. 训练数据泄露(暴露训练样本)

AI模型可能会"记住"训练数据中的敏感信息,在特定查询下可能重现这些数据。研究表明,某些语言模型在被提示时可能泄露训练数据中包含的个人信息。

2. 成员推断攻击(是否含有)

攻击者可以通过查询AI系统来判断某条特定记录是否被用于训练该模型。这在医疗等领域尤其敏感,因为可能泄露某人是否患有某种疾病。

3. 属性推断攻击(推测)

即使不直接泄露数据,AI系统可能通过其输出间接揭示数据主体的敏感属性。例如,推荐系统可能通过推荐内容暴露用户的性别、年龄或收入水平。

4. 模型逆向/样本重建工程(重建样本)

通过分析模型的输出,攻击者可能重建部分训练数据或推断出模型的内部参数,这在模型被公开部署时尤其危险。

5. 模型窃取攻击(仿制模型)

攻击者通过与目标模型接口的交互获得模型的 输出信息,并依据一定策略使用这些信息构建 一个相似的模型。

隐私保护技术

1. 差分隐私(Differential Privacy)

差分隐私通过向数据或查询结果中添加精心校准的噪声,确保单个数据点的存在与否不会显著影响输出结果。数学上保证攻击者无法确定特定个体是否在数据集中。

一个样本重建的例子:

DP 的数学定义 

DP-SGD(差分隐私随机梯度下降)

1) 取一个Mini batch,对里面的每一条梯度进行裁剪

2) batch内梯度重新聚合

3) 聚合后的梯度加噪声

4) 更新参数

 

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader
from opacus import PrivacyEngine  # 使用 Opacus 库(Facebook 的 DP 库)

model = nn.Linear(10, 1)
optimizer = optim.SGD(model.parameters(), lr=0.1)

# 启用 DP-SGD
privacy_engine = PrivacyEngine()
model, optimizer, train_loader = privacy_engine.make_private(
    module=model,
    optimizer=optimizer,
    data_loader=train_loader,
    noise_multiplier=1.0,  # 控制噪声大小(σ)
    max_grad_norm=1.0,     # 梯度裁剪阈值 C
)

for epoch in range(10):
    for batch in train_loader:
        optimizer.zero_grad()
        loss = model(batch).sum()
        loss.backward()
        optimizer.step()  # 自动应用 DP-SGD

 优缺点

✅ 优点

  • 提供严格的数学隐私保证(适用于 GDPR 等法规)。

  • 对于任意先验知识风险的防范性好

  • 通信代价小、计算开销小,适用于大规模深度学习(如联邦学习)。

❌ 缺点

  • 噪声可能降低模型性能(准确率 vs. 隐私的权衡)。

  • 需要调整 ϵ,δ,C 等超参数,影响训练稳定性。

2. 安全多方计算(MPC)

安全多方计算(Secure Multi-Party Computation, MPC) 是一种密码学技术,允许多个参与方在不泄露各自私有输入的情况下,共同计算一个函数并得到正确结果。

秘密分享(Secret Sharing) 是 MPC 的核心技术之一,它将一个秘密(如数据、密钥)拆分成多个份额(Shares),并分发给不同参与方。只有满足特定条件(如足够数量的份额)才能恢复原始秘密。对带宽的成本要求比较高。

同态加密(Homomorphic Encryption, HE)是一种允许在加密数据上直接计算的密码学技术,解密后的结果与在明文上计算相同。但是只能防止服务器端的隐私泄露,且需要引入可信第三方分发密钥,以及加密带来的额外计算开销。

核心目标

  • 隐私性:任何一方无法获取其他方的私有数据。

  • 正确性:计算结果必须正确,即使部分参与方恶意篡改。

3. 联邦学习(Federated Learning, FL)

数据不动,模型动:多个客户端(如手机、医院)协作训练模型,无需共享原始数据

中心服务器:协调模型聚合,但不直接访问数据。

工作流程

  1. 服务器下发模型:初始模型(如随机参数)发送给所有客户端。

  2. 本地训练:客户端用私有数据计算模型更新(梯度或参数)。

  3. 安全聚合:客户端上传加密的更新,服务器聚合(如加权平均)。

  4. 全局更新:服务器将聚合后的模型下发,重复迭代。


网站公告

今日签到

点亮在社区的每一天
去签到