构建安全消息应用是困难的:对Bitchat安全辩论的细致分析
上周末,Jack Dorsey发布了Bitchat——一款基于蓝牙的端到端加密消息应用,立即在安全和技术社区引发了激烈辩论。反应呈现两极分化:主流科技媒体盛赞其“先进安全”功能,而安全研究人员和科技记者则尖锐批评其存在严重漏洞。两种极端观点都有一定道理,但也都有失偏颇,暴露了我们在讨论新兴产品安全性时的认知差距。
安全问题真实且严重
研究人员Alex Radocea等人发现的安全漏洞确实存在且令人担忧。Radocea演示了一种中间人(MitM)攻击,利用Bitchat有缺陷的身份认证系统,允许攻击者冒充可信联系人。该应用目前也未达到行业标准的前向保密水平:虽然实现了“会话”级别的前向保密,但加密密钥在每个“会话”中都是静态的。标准做法是使用双棘轮等技术实现每消息级别的前向保密,但这仅对需要每消息前向保密的特殊威胁模型才有意义。
这些不是小的实现错误,而是根本性的设计缺陷,损害了加密消息应用的核心安全承诺。Alex的技术分析扎实,他的概念验证攻击有效展示了风险。用户绝对不应在当前状态下依赖Bitchat进行敏感通信。
但更广泛的叙述值得审视
然而,严厉批评和无条件赞扬都暴露了评估新兴产品安全性时存在的问题方法。
在批评方面,虽然Alex Radocea和记者Lorenzo Franceschi-Bicchierai正确识别了严重缺陷,但他们的文章都暗示这些漏洞表明开发团队根本缺乏对安全性的重视。但这忽略了Dorsey发出的几个积极信号:
- 他开源了完整的代码库和协议文档,使安全审查成为可能
- 他包含了突出警告,表明软件尚未经过安全审查
- 他在几小时内响应了报告的漏洞,在不到四小时内修补了缓冲区溢出问题
- 在7月15日的帖子中,他宣布已更新项目使用成熟的Noise协议框架,直接解决了认证问题
Dorsey在后续公告中解释,Bitchat最初是一个周末项目,旨在探索蓝牙mesh网络和加密模型,他承认虽然基本功能“在一天内就工作了”,但安全实现“完全不健壮或考虑不足”。
在无条件赞扬方面,主流科技报道显得尴尬地天真。TechRepublic的J.R. Johnivan写道,Bitchat的“通用功能、安全特性和隐私控制的结合使其与Facebook Messenger、WhatsApp、Snapchat、Telegram等消息应用区别开来”。这种比较是荒谬的。像WhatsApp这样的产品花费了多年时间开发和改进其安全和隐私,经历了广泛的审计和实际测试。声称一个只有一周历史且存在已知漏洞的应用超过了经过实战检验的实现,暴露了对安全成熟度的根本误解。
这种报道展示了科技媒体长期无法有意义地评估安全声明,反而默认使用营销语言和功能清单。
安全消息的更广泛挑战
这场讨论也突显了构建安全的端到端加密系统真正困难的程度。Bitchat面临的问题并非独有或容易解决:
认证和密钥验证在大规模应用中仍未解决。Alex正确指出QR码和指纹验证可以解决MITM攻击,但研究表明这些解决方案有主要的可用性限制。大多数Signal用户很少验证安全号码,可能允许类似于Bitchat当前存在的MITM攻击(尽管值得注意的是,这种MITM攻击比当前对Bitchat的攻击要困难得多,后者相对容易实现)。更健壮的解决方案是密钥透明度系统,但它们需要大规模基础设施和活跃的审计社区,这就是为什么只有像Google、Signal和Meta这样成熟且有资源的组织成功部署了它们。此外,这些透明度系统自然适合像Signal这样的集中式系统。而Bitchat是一种无服务器设计,没有能够操作透明度日志的集中实体。可以设想设计这些透明度系统的去中心化变体,但这可能显著更复杂,并且尚未有任何系统大规模部署。
协议扩展创建新的攻击面。虽然我们主张使用像Signal或Noise这样经过验证的协议,但实际的消息应用需要超越基本消息交换的功能。Signal本身在实现新功能(如联系人发现)时也面临安全挑战,研究人员演示了可以枚举所有在美国注册的电话号码的攻击。每个功能添加都会创建新的安全考虑。
更富有成效的前进道路
对Bitchat的强烈反应既说明了安全社区适当的高标准,也暴露了我们评估新项目时的一些问题倾向。
但这种反应也揭示了安全讨论中的令人担忧的模式。立即假设漏洞表明缺乏对安全性的重视会产生扭曲的激励,因为它羞辱并 discourages 开源发布和透明的安全讨论。
安全社区应保持高标准,同时也要认识到安全是一个过程,而不是二进制状态。Bitchat当前的漏洞是严重的,但Dorsey开源代码、欢迎安全研究、快速修补问题并承诺使用经过验证的协议的反应是良好的安全实践。
正如Dorsey今天指出的,他通过这次发布“触动了神经”。这实际上是一件好事。当产品声称“端到端加密”时,安全社区理所当然地要求它们达到Signal和类似工具设定的高标准。这种审查保护用户并维护安全声明的意义。
但我们可以在保持这些标准的同时,也鼓励那种开放的、迭代的安全开发,最终使我们所有人都更安全。目标应该是帮助像Bitchat这样的项目安全成熟,而不是在第一次出现漏洞时就完全 dismiss 它们。
对Bitchat的真正考验不是它是否以完美的安全性启动,而是Dorsey是否履行其承诺,解决已识别的问题并采用经过验证的密码学实践。早期迹象是有希望的,因为Dorsey已承诺实施Noise协议并强调:“严肃的PR和审计总是受到赞赏。”然而,最终,行动比承诺更重要。