如何构建高度安全的端到端加密 React Native 消息传递应用

问题描述

我刚刚在 security stackexchange 上发布了这个问题,他们建议我将我的问题移到 stackoverflow 上,所以就在这里

我目前正在开发即时 React Native 消息传递应用程序,我想实现 E2EE(发送方和接收方之间的端到端加密)以提高安全性。我使用的库/框架是用于后端的 NodeJS、用于实时通信的 Socket.io、用于数据管理的 MongoDB 以及用于前端的 React Native。

此时,我可以将消息从发件人发送到服务器,然后再发送回接收者,但服务器实际上可以读取消息,这很烦人,因为我想将消息(加密)保存在我的数据库并检索它们以供用户查看其历史记录。

最近我发现 Diffie-Hellman 密钥交换是在每个端点设备上生成共享密钥的一个很好的解决方案,但我不知道如何在我的应用程序中实现它。

我还发现大型消息应用程序(如 WhatsApp、Facebook Messenger、Signal 等)使用基于 X3DH(扩展三重 Diffie-Hellman)的信号协议,我想知道是否可以实现在我的 RN 应用程序中,这是一件好事。但问题是,即使阅读了信号协议的文档,我也无法弄清楚如何实现它。

总而言之,我的问题是如何在我的 RN 应用程序中实现信号协议并使用 Socket.io 发送和接收加密消息?如果由于某种原因这是不可能的,我该如何实现 Diffie-Hellman 密钥交换算法?

感谢任何能帮助我的人!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)