冯晓东
2020年6月23日
每当构建任何东西时,第一原则始终是安全性和隐私性,而端到端加密则更好。如果E2EE不适用,我最多会放弃该产品或功能。仅E2EE还是不够的,它必须具有生产力,并且在用户体验上与没有E2EE的情况相当。
我们是一个完全远程的团队,我们主要是异步协作,但是在某些时候我们需要同步会议服务来连接同事。对于我们来说,缩放显然不是一个选择,因为它的隐私惯例和声誉很差。但更糟糕的是,我们找不到比Zoom更好的东西,甚至找不到有效的E2EE会议服务。
在使Mixin Messenger桌面应用程序正常运行之后,我们放弃了Slack并将所有内容迁移到MM,并且通过吃自己的狗食,我们将MM定制为一个很好的工具,可以实现安全的远程协作。当我们开始该项目时,我们想要MM代替电子邮件的E2EE,它充当一个简单的即时通讯工具,可以传递所有强制执行的Signal协议的消息和文件。我们依赖的所有协作功能都是在bot中实现的,它们非常灵活并且可靠地工作。
自MM第一个版本发布以来的大约两年时间里,除了这些核心功能之外,我们什么也没添加。唯一的下一步就是E2EE语音通话,因为我们需要一些安全的工具来紧急通话,并且很难或不可能用机器人来实现这一功能。因此,我们在MM中包含了此功能,几个月以来提高了服务质量,最后我们认为它达到了足够的可用性。它只是一对一的呼叫服务,因为我们认为群组呼叫不是电子邮件替换客户端应具有的功能,因此我们一直在寻找安全的群组语音呼叫服务,但是从字面上看,没有任何安全可用的功能。我们震惊的事实是,技术进步如此之快,以至于许多团体会议应用程序都在应用程序商店中发布,但都无法使用,而且E2EE都不可用。
因此,我们决定在Mixin Messenger中推出我们自己的E2EE群组音频通话功能,该功能即将完成。该服务也是基于WebRTC堆栈构建的,为了使大型会议稳定,我们利用SFU连接所有对等方而不是形成网格。不要简单地认为SFU能够解码音频流,因为我们使用Pion构建了一个自定义SFU,并使用新的可插入流功能在WebRTC上添加了自己的加密层!此外,该层的密钥通过信号协议传递给参与者。
在Mixin Messenger中传输的所有消息都是使用Signal协议的E2EE,使用安全的AES-GCM加密文件,而AES密钥是使用Signal协议的E2EE。现在,组音频呼叫也是E2EE,并且质量出色。
网友评论