特别感谢 Hudson Jameson、OfficerCIA 和 samczsun 的反馈和审查。
最近一周有一篇文章在流传,讲述一家公司因一名财务工作人员被骗向假冒成首席财务官的骗子汇款而损失了 2500 万美元,而这似乎是通过一次非常逼真的深度伪造(Deepfake)视频通话实施的。
最近,深度伪造技术(即由人工智能生成的假音频和视频)在加密货币领域以及其他领域越来越频繁地出现。在过去几个月里,我的深度伪造视频被用来兜售各种骗局和狗狗币。深度伪造的质量正在迅速提高,虽然 2020 年的深度伪造视频非常糟糕,但最近几个月已经越来越难以区分。熟悉我的人仍然可以识别出我兜售狗币的视频是假的,因为视频中的我在说「let's f***ing go」,而我只使用「LFG」表示「looking for group」,但只听过我几次声音的人可能会很容易上当。
我向安全专家提及上述 2500 万美元被盗的情况,他们一致认为这是企业运营安全在多个层面上出现的异常而尴尬的失败,标准做法是在批准任何近似该数额的转账之前需要多个层次的签署。但仍然存在这样一个事实:截至 2024 年,一个人的音频甚至视频流已不再是确认其身份的安全方式。
这引发了一个问题:什么才是安全的身份验证方式?
仅仅依靠加密方法并不能解决问题
能够安全地验证人们的身份对于各种情况下的各种人都很重要:个人需要恢复其多重签名或社交恢复钱包、企业需要批准商业交易、个人需要批准用于个人用途的大额交易(例如投资初创企业、购买房屋、发送汇款),无论是使用加密货币还是法定货币,甚至是家庭成员在紧急情况下需要相互验证。因此,我们需要一个良好的解决方案,能够应对即将到来的深度伪造视频时代。
在加密货币圈,我经常听到的对这个问题的一个回答是:「你可以通过提供你的 ENS / 人类证明配置文件 / 公共 PGP 密钥的地址的加密签名来验证自己」。这个答案很吸引人。然而,它完全忽略了为什么在签署交易时让其他人参与是有用的。假设你代表拥有个人多重签名钱包的个人用户,并且你正在发送一个需要一些共同签署者批准的交易。他们什么情况下会批准?当他们确信你是真正想要进行转账的人时。如果他们判断交易者是一个盗取了你的密钥的黑客,或者一个绑匪,他们不会批准交易。在企业环境中,通常会有更多层次的防御措施;但即便如此,攻击者可能会冒充经理,并且不仅仅是最终请求,还涉及审批过程中的早期阶段。他们甚至可能通过提供错误的地址劫持正在进行的合法请求。
因此,在许多情况下,其他签署者接受你用你的密钥签名来确认「你是你」的做法就毁了整个目的:它将整个合约变成了一个 1 对 1 的多重签名,只需要控制你的单个密钥就能窃取资金!
这就是我们得出的一个实际有些意义的答案:安全问题。
安全问题
假设有人发短信给你,声称是你的朋友某某。他们用你以前从未见过的帐户发短信,声称已经丢失了所有设备。你如何确定他们是否是本人?
有一个显而易见的答案:询问只有他们才会知道的事情,这些事应该与下列有关:
· 你知道的
· 你期望他们记得的
· 互联网不知道的
· 难以猜测的
· 理想情况下,即使是那些已经入侵了企业和政府数据库的人也不知道的
自然而然地问他们关于共同经历的事情,比如:
· 我们上次见面时,在哪家餐馆吃晚饭了,你吃了什么食物?
· 我们的哪个朋友说过一个古代政治家的笑话?是哪位政治家?
· 我们最近看的那部电影你不喜欢吗?
· 上周你建议我和某某聊一下,看看他们是否可以帮助我们 XXX 的研究?
你的问题越独特越好。那些刚好在人们需要思考几秒钟甚至可能忘记答案的边缘的问题是最好的,但如果你询问的人声称忘记了,一定要再问他们三个问题。询问「微观」细节(某人喜欢或不喜欢什么,具体的笑话等)通常比询问「宏观」细节更好,因为前者通常对第三方来说更难以意外地挖掘出来,例如,即使只有一个人在 Instagram 上发布了晚餐的照片,现代 LLM 可能也能够快速捕捉到并实时提供位置。如果你的问题有可能被猜出,即只有几个可能的合理选项,那么就添加另一个问题来增加熵。
如果安全问题乏味无聊,人们通常会停止参与安全实践,因此应该将安全问题变得有趣。它们可以成为记忆积极共享经历的方式,还可以成为真正拥有这些经历的动力。
安全问题补充
没有单一的安全策略是完美的,因此最好始终将多种技术组合在一起。
· 预先约定的口令:当你们在一起时,有意地约定一个共同的口令,以便以后用来相互验证身份。
· 甚至可能要约定一个紧急键:一个你可以在句子中无意间插入的词语,暗示对方你正在被胁迫或受到威胁。这个词应该足够常见,以至于在你使用它时感觉很自然,但又足够罕见,以至于你不会无意间将其插入到你的讲话中。
· 当有人给你发送一个 ETH 地址时,请他们在多个渠道上确认(例如 Signal 和 Twitter 的私信,公司网站上,甚至通过共同的熟人)。
· 防范中间人攻击:Signal 的「安全数字」、Telegram 的表情符号和类似功能都是值得理解和警惕的。
· 每日限额和延迟:简单地对高度重要且不可逆转的操作施加延迟。这可以在政策层面上完成(与签署者预先约定他们在签署之前等待 N 小时或几天),也可以在代码层面上完成(在智能合约代码中施加限制和延迟)。
安全问题很有用,因为与许多其他技术不同,它们之所以失败并非因为不友好,而是因为它们不够人性化。安全问题建立在人类天生擅长记忆的信息基础上。我已经使用安全问题多年了,这实际上是一个非常自然且不尴尬的习惯,值得将其纳入除其他保护层之外的工作流程中。
请注意,上述描述的「个人对个人」的安全问题与「企业对个人」的安全问题是非常不同的用例,例如,当你因为去了另一个国家而多次将信用卡停用后,打电话给银行重新激活信用卡,然后经过了 40 分钟的音乐排队之后,一个银行员工出现并询问你的姓名、生日,也许还有你最近三笔交易。个人知道答案的问题种类与企业知道答案的问题种类非常不同。因此,值得分别考虑这两种情况。
每个人的情况都是独特的,因此你与需要验证身份的人之间共享的独特信息种类各不相同。通常最好根据人们的情况来调整技术,而不是调整人们来适应技术。一种技术不需要完美才能发挥作用,理想的方法是同时将多种技术组合在一起,并选择最适合你的技术。在后深度伪造(post-deepfake)时代,我们确实需要调整我们的策略,以适应现在容易伪造的内容和仍然难以伪造的内容的新现实,但只要我们做到这一点,保持安全仍然是完全可能的。