跳转到内容
HexaTransfer
返回博客
加密与安全

文件双因素认证:额外安全层

为文件传输添加双因素认证以增强安全性。将密码与一次性代码或邮件验证结合使用。

文件双因素认证将接收方"知道的东西"(通过 PBKDF2 派生 AES-256-GCM 密钥的密码)与"拥有的东西"(来自 Authy 的 TOTP 码、邮件魔法链接或绑定设备的 WebAuthn 通行密钥)配对使用。即便攻击者钓鱼获取了密码或截获了下载 URL,没有第二因素仍无法解密内容。这种方式可抵御链接转发、凭据填充,以及 WeTransfer 风格服务中单因素共享面临的大多数肩窥攻击。

单密码链接为何不够

共享的下载 URL 比想象中更容易泄露。Slack 会自动展开为预览,Gmail 将其归档长达七年,企业代理会记录完整的查询字符串。如果密码在单独的邮件中发送,两个渠道往往都是同一个收件箱——这意味着一次 Microsoft 365 泄露就可以同时交出文件和密码。Verizon DBIR 2025 对真实事件响应案例的研究表明,68% 的凭据型数据窃取涉及复用密码。加入第二因素可打破这一链条,因为 TOTP 种子永远不会离开接收方的认证应用。

TOTP 如何在下载链接上工作

发送方生成一个 160 位共享密钥(以 base32 字符串和二维码形式呈现,遵循 RFC 6238)。接收方用 Google Authenticator、1Password 或 Yubico Authenticator 扫码。应用每 30 秒对密钥和当前 Unix 时间戳(除以 30)执行 HMAC-SHA1 并截断为六位数字。接收方输入该代码时,服务器检验当前窗口和前一个窗口以容忍时钟偏差。代码验证通过后,服务器才释放加密数据——解密密钥本身留在客户端,由接收方的密码派生。

电子邮件魔法链接作为轻量级第二因素

不是每个接收方都愿意安装认证应用。向预先声明的地址发送魔法链接是合理的备选方案。发送方在上传时输入 jane@hospital.org,服务存储该地址的 SHA-256 哈希值。当 Jane 点击下载 URL 时,系统向其邮箱发送一个有效期 10 分钟的 128 位随机令牌。点击令牌后,她进入下载页面并输入文件密码。由于令牌绑定到她的邮箱,转发给同事的链接毫无用处——同事从未收到邮件验证。

面向频繁接收方的 WebAuthn 通行密钥

对于每周交换文件的团队(例如审计师收取 PCI DSS 4.0 证据),通行密钥的体验优于验证码。接收方在首次使用时注册 FIDO2 凭据,私钥存储在其安全飞地(Secure Enclave)或 YubiKey 5C 中。后续下载只需触碰一下,无需重新输入 TOTP。由于签名包含来源(origin),代理真实下载页面的钓鱼网站无法重放认证。Chrome、Safari 17 和 Firefox 122 均支持无需额外点击即可弹出通行密钥提示的条件式 UI。

大文件传输的逐块保护

10 GB DICOM 档案或 4 GB Adobe Premiere 项目不适合单次下载模型。将内容拆分为 5 MB 的块,每块使用通过 HKDF(RFC 5869)从主密钥派生的子密钥加密。在提供任何块之前,服务器验证 2FA 成功后签发的新鲜会话令牌。令牌在约 30 分钟后过期,从而防止已暂停的下载在数天后从被盗 Cookie 恢复。这与 Signal 处理语音消息片段以及 Backblaze B2 对分片上传应用服务端认证的方式一致。

速率限制、锁定与离线攻击陷阱

TOTP 仅为六位数字,朴素的端点允许攻击者在几秒内尝试全部 1,000,000 种组合。应在三次错误后实施指数退避,十次后锁定链接并向发送方发送 Webhook 通知。不要告知攻击者是密码失败还是验证码失败——对两者返回相同的通用错误。绝对不要在客户端进行 TOTP 验证——将密钥发送到浏览器会使整个机制形同虚设。应在 Cloudflare Turnstile 或 hCaptcha 保护的强化端点中进行服务端验证。

不削弱安全模型的恢复机制

经典的失败场景是接收方在 48 小时传输窗口内丢失了手机。内置紧急码——链接创建时打印的 20 个字符 base32 字符串——可提供备用途径,同时不依赖电子邮件。同样重要的是:即便第二因素未被使用,传输在下载后仍应过期。这样,含有恢复码的丢失笔记本电脑一个月后也无法被利用。HexaTransfer 等服务还允许发送方通过控制台撤销链接,终止任何进行中的会话令牌。

用户体验与安全级别的权衡

为 30 秒的传输添加 2FA 感觉很繁重,因此应根据风险程度调整。对于生日相册,跳过验证;对于 500 MB 的产品发布 .psd 文件,要求密码;对于 2 GB 的 GDPR 第 15 条数据访问档案,要求 TOTP 加魔法链接。分层界面(公开、密码、2FA、通行密钥)让发送方无需阅读文档即可选择合适的保护级别。

在中国大陆,《个人信息保护法》(PIPL)对个人信息的处理有严格要求,在设计文件传输认证机制时,应确保接收方邮箱地址等信息的处理符合 PIPL 的最小化原则和数据安全规定。

在 hexatransfer.com 上试试 — 免费、无需注册、最多 10 GB。

通过端到端加密安全发送大文件

通过端到端加密免费传输最大10GB的文件。无需注册账户。文件在上传前在浏览器中加密,其他人无法读取。

发送文件