下面我按“问题 → 威胁模型 → 核心思想 → 攻击流程 → 实验结果 → 论文价值与局限”这条线,把 PCAT: Functionality and Data Stealing from Split Learning by Pseudo-Client Attack 讲到尽量接近“不看原文也能明白”的程度。先给一句总判断:
这篇论文的核心结论是: 在 split learning 里,就算服务器不知道客户端模型结构、客户端模型也更深更复杂,服务器仍然可能只靠自己训练过程中得到的服务器端模型,再加上一小撮同任务数据,构造出一个“伪客户端模型”,进而偷走客户端模型功能、重建原始输入、甚至推断私有标签。 这和早期那类“直接把 smashed data 反演回输入”的思路很不一样,它攻击的重点不再是“把客户端模型硬反出来”,而是“从服务器模型里榨出足够多的信息,自己重新学一个能替代客户端的模型”。
split learning(拆分学习,SL)把一个完整神经网络拆成客户端部分和服务器部分。客户端只算前几层,把中间激活,也就是 smashed data ,发给服务器;服务器接着算后面的层。直觉上,这样服务器看不到原始输入,也看不到客户端前半模型,所以似乎能保护数据和模型功能。论文也明确把这个作为它的攻击背景。
论文点名两类已有代表:
第一类是 FSHA 这种恶意服务器攻击。它会改训练流程,强行把客户端“带偏”,虽然能泄露隐私,但因为它破坏正常训练,所以容易被客户端发现,而且还不适合“把客户端功能偷来自己用”。
第二类是 UnSplit 这种半诚实服务器攻击。它更接近本文想打的场景:服务器表面上按协议训练,只是偷偷攻击。但 UnSplit 有两个硬伤。第一,它需要知道客户端模型结构;第二,它本质上是在同时搜索“输入是什么”和“客户端参数是什么”,搜索空间太大,所以只要客户端模型稍微深一点、任务稍微复杂一点,性能就会掉得很厉害。论文里举的典型例子是:在 CIFAR-10 上,如果客户端有两层,UnSplit 偷出来的功能模型准确率会掉到 22.1%。标签推断那边也类似,客户端 top model 一旦不止一层,UnSplit 几乎崩掉。
所以作者要解决的是一个更难、也更现实的问题:
服务器是半诚实的;它不知道客户端模型结构;客户端模型可能更深更复杂;甚至 smashed data 还可能被某些防御方法处理过。此时服务器还能不能有效偷功能、偷数据、偷标签? 论文的答案是:可以。
作者把攻击目标分成三件事,而且希望一套机制同时做到:
作者还给了四个设计要求: