文稿

第一部分:Hook —— 重复数据删除与加密的矛盾

目标: 开场即点题,抛出核心冲突。

🎙️ Speaker Script (演讲脚本)

“大家好。今天我想和大家聊聊云存储中的一个核心两难困境。

想象一下,比如 Dropbox 或 Google Drive 1,为了节省成本,它们都使用了一项关键技术:重复数据删除 (Deduplication)。如果一千个用户都上传了同一部电影《复仇者联盟》,云端只存一份。这能节省巨大的存储空间。

但是,作为用户,我们希望隐私。如果你用传统的加密方法(比如加了随机 IV 的 AES)加密这部电影再上传,每个用户的密文都会完全不同。

这就是矛盾所在:加密破坏了重删,而重删似乎要求我们放弃强加密。

过去,我们用收敛加密 (Convergent Encryption, CE) 来解决这个问题,但它并不安全。今天我要介绍的 DupLESS 2,就是为了解决 CE 的安全漏洞,在不牺牲重删能力的前提下,提供真正可用的安全性。”

🧠 Deep Dive (技术深潜 - 教授可能会问)

  • Q: 为什么传统加密不支持重删?

    • A: 传统加密(如 AES-CBC 或 CTR 模式)是随机化的(Randomized)。即使明文 相同,因为密钥 不同或初始向量 IV 随机,生成的密文 也截然不同 3。存储服务商(SS)无法通过比较密文来去重。
  • Q: 重删是在哪里进行的?

    • A: DupLESS 主要针对的是服务端重删,但兼容客户端重删(Client-side dedup)。它通过确保相同的文件生成相同的加密密钥,从而生成相同的密文来实现这一点。

第二部分:The Attack —— 为什么收敛加密 (CE) 还是不够?

目标: 解释现有方案的缺陷,引出 DupLESS 的必要性。

🎙️ Speaker Script (演讲脚本)

“那么,现有的解决方案是什么?最流行的是收敛加密 (CE) 4。

CE 的思路很简单:用文件内容的哈希值作为密钥。即 。这样,只要文件内容一样,密钥就一样,密文也就一样,云端就能去重了。

听起来很完美,对吧?但这有一个致命的缺陷:它无法抵抗离线暴力破解攻击 (Offline Brute-force Attack) 5。

攻击者如果知道你的文件可能属于某个‘字典’(比如某些常见文件、电影、甚至特定的医疗记录),他可以在本地把字典里的所有文件都算一遍哈希。只要云端存的密文和他算出来的一样,他就知道你存了什么文件。对于可预测 (Predictable) 的文件,CE 几乎等同于没加密。”

🧠 Deep Dive (技术深潜 - 教授可能会问)

  • Q: 什么是‘可预测消息’ (Predictable Message)?

    • A: 指的是熵(Entropy)较低的消息 。比如常见的文件头、短文件、或者攻击者已经知道其内容属于某个有限集合(如好莱坞电影列表)。
  • Q: 这种攻击具体的复杂度是多少?

    • A: 如果字典大小为 ,攻击者只需要进行 次离线加密操作。对于现代计算机,遍历一个包含数百万个文件的字典是轻而易举的 6。

第三部分:核心解法 —— OPRF 协议 (The Key Sauce)

目标: 解释 DupLESS 如何引入 Key Server (KS) 和 OPRF 协议来解决问题。这是全篇最硬核的部分。

🎙️ Speaker Script (演讲脚本)

“DupLESS 的核心创新在于引入了一个独立的密钥服务器 (Key Server, KS)。我们不再仅仅依赖文件内容的哈希来生成密钥,而是通过一个不经意伪随机函数 (Oblivious PRF, OPRF) 协议,让客户端和 KS 共同生成密钥。

这里的关键挑战是:我们需要 KS 帮忙生成密钥,但绝不能让 KS 知道文件内容。

DupLESS 使用了基于 RSA 盲签名 (Blind Signature) 的 OPRF 协议 7。流程如下(配合 PPT 上的公式):

  1. 盲化 (Blinding): 客户端计算 。这里的 是一个随机数,相当于给文件指纹 加了一个‘信封’。

  2. 签名 (Signing): 客户端把 发给 KS。KS 用私钥 进行签名,计算 ,并发回给客户端。注意,KS 看不到 ,它只看到了被遮盖的

  3. 去盲 (Unblinding): 客户端收到 后,除去随机因子 ,得到

最后,客户端用 作为加密文件的密钥。

这个过程就像是我把文件放在一个带复写纸的信封里寄给 KS,KS 在信封外面签字。KS 签了字,但他永远不知道信封里写的是什么。”

🧠 Deep Dive (技术深潜 - 教授可能会问)

  • Q: 请推导一下为什么去盲后的 是正确的签名?

    • A: 数学推导如下:

      根据 RSA 原理,

      所以客户端计算 8。

      这样客户端就得到了基于 KS 私钥 的签名,而 KS 无法反推出

  • Q: 这里的 PRF 到底是什么?

    • A: PRF 是 。其中 是 Key Server 的私钥, 是消息, 是哈希函数。OPRF 协议保证了 Server 拥有 Key 但不知道 ,Client 拥有 但不知道 Key,最后 Client 得到了结果。

第四部分:信任模型与安全性 (Hedged Security)

目标: 解释为什么这比 CE 安全,以及如果 KS 被黑了会怎样。

🎙️ Speaker Script (演讲脚本)

“引入 Key Server 后,我们将安全性提升了一个维度。DupLESS 提供了一种多层级 (Hedged) 的安全性 9:

  1. 最佳情况 (KS 安全): 只要攻击者没有控制 KS,那么所有的文件(即使是可预测的文件)都是语义安全 (Semantically Secure) 的。因为没有 KS 的私钥 ,攻击者无法进行离线暴力破解 10。

  2. 最差情况 (KS 被攻破): 即使 Key Server 被黑客攻破并拿到了私钥 ,DupLESS 的安全性会优雅降级 (Gracefully Degrade) 到收敛加密 (CE) 的水平。也就是说,对于不可预测的文件(高熵文件),数据依然是安全的 11。

此外,KS 可以实施速率限制 (Rate Limiting)。即使黑客控制了某个客户端想进行在线猜测,KS 也会限制每秒的请求次数,让暴力破解变得不切实际 12。”

🧠 Deep Dive (技术深潜 - 教授可能会问)

  • Q: 什么是 DupLESS 的威胁模型?

    • A: 假设存储服务(SS)是不可信的(honest-but-curious 或 malicious),可能会试图偷窥数据。KS 是“半可信”的,我们信任它执行协议,但不信任它拥有数据明文。
  • Q: 为什么 KS 能够阻止暴力破解?

    • A: 在传统 CE 中,攻击者在本地计算哈希(速度极快)。在 DupLESS 中,攻击者必须向 KS 发送请求才能获得密钥。KS 可以将请求限制在每秒几次(例如 2.73 次/秒),而不是本地 CPU 的数百万次/秒 13131313。这使得暴力破解对于大字典在时间上不可行。

第五部分:性能评估 (Performance)

目标: 证明这套系统在现实中是可用的。

🎙️ Speaker Script (演讲脚本)

“最后,大家可能会问,加了这么复杂的交互,速度会不会很慢?

论文作者实现了 DupLESS 客户端,支持 Dropbox 和 Google Drive。实验结果显示,性能损耗非常低。

  • 延迟: 对于 1MB 的文件,上传时间的额外开销只有 17% 左右 14。

  • 带宽: 额外带宽消耗可以忽略不计(不到 1%)15。

  • 优化: 作者设计了两种 OPRF 协议。OPRFv2 基于 UDP,省去了 TCP 和 SSL 的多次握手,使得密钥获取可以在一个 RTT(往返时间)内完成 16。

考虑到它带来的巨大安全性提升,这点性能损耗是完全可以接受的。”

🧠 Deep Dive (技术深潜 - 教授可能会问)

  • **Q: 为什么要用 UDP 实现 OPRFv2?HTTPS (OPRFv1)

    • A: OPRFv1 使用 HTTPS,需要 TCP 握手、TLS 握手和 HTTP 请求,至少 4 个 RTT。这在广域网上延迟太高。OPRFv2 使用 UDP,结合了预先建立的会话密钥(Session Key)和序列号来防止重放攻击,将交互压缩到接近 1 个 RTT 17。
  • Q: 存储开销增加了吗?

    • A: 略微增加。DupLESS 需要存储一个加密后的 Key Header(包含加密的 )。对于 100GB 的数据集,额外开销大约只有 4.5% 18。

总结 (Conclusion)

🎙️ Speaker Script

“总结一下,DupLESS 通过引入 Key Server 和 OPRF 协议,巧妙地在重复数据删除强加密之间架起了一座桥梁。它利用‘盲签名’的思想保护了隐私,利用 KS 阻止了暴力破解,同时保证了极高的性能。这就是为什么 DupLESS 是云存储安全领域的一篇重要工作。谢谢大家。”


💡 导师给你的最后建议 (Tips)

  1. 善用图示: 在讲 OPRF 时,务必在 PPT 上画出 Client 和 Server 的交互图(箭头一来一回),并在旁边标注 的公式。

  2. 强调 “Oblivious”: 反复强调 KS 不知道 文件内容,这是隐私保护的关键。

  3. 自信: 当被问到“如果 KS 挂了怎么办?”时,回答:“DupLESS 客户端可以回退到随机加密模式(虽然牺牲了重删,但保证了可用性)”