标签: end-to-end-encryption

如何在 Flutter 聊天应用中进行端到端加密?

我使用 flutter 和我自己的服务器作为数据库后端制作了一个聊天应用程序。
我想添加端到端加密,类似于 WhatsApp 等其他聊天应用程序,但我对此并不完全了解。
所以我想问的是:

  1. 端到端加密工作必须在客户端还是后端完成?
  2. 如何才能实现这一目标
  3. 有没有第三方提供商提供这样的东西,与flutter兼容
  4. 在没有第三方提供商的情况下,如何才能拥有自己的产品呢?

chat server flutter end-to-end-encryption

8
推荐指数
2
解决办法
7650
查看次数

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

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

在这一点上,我能够从发送者到服务器来回发送消息,然后再发送回接收者,但服务器实际上可以读取非常烦人的消息,因为我想将消息(加密)保存在我的数据库中并检索他们让用户看到他的历史。

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

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

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

感谢任何可以帮助我的人!

encryption websocket node.js diffie-hellman end-to-end-encryption

6
推荐指数
1
解决办法
2183
查看次数

端到端加密Flutter + Firebase实时数据库

我正在制作一个聊天应用程序,其中:

\n
    \n
  1. 一个用户可以与多个其他用户位于一个组中。
  2. \n
  3. 所有消息必须经过端到端加密
  4. \n
\n

我用来firebase-realtime-database存储数据。

\n
\n

我拥有的

\n
    \n
  • 为每个用户随机生成密钥

    \n
    String generateEncryptionKey(int len) {\n    var r = Random();\n    String randomString = String.fromCharCodes(List.generate(len,\n                                (index) => r.nextInt(33) + 89));\n    return randomString;\n}\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
\n

这可能是错误的。derived key如果我需要从用户的密码中获取密码或者这是否足够,我需要澄清。

\n
\n

我需要的

\n
    \n
  • Alice 发送一条消息:我需要使用组中任何其他参与者也可以访问的密钥对其进行加密 ( shared-secret key)
  • \n
  • 鲍勃想阅读此消息:我需要用shared-secret key
  • \n
\n

shared-secret key每个个人密钥都有一些共同点,对吧?因此,任何参与者加密的消息都可以被任何其他参与者解密。

\n

我怎样才能生成shared-secret key

\n
\n

需要的代码块

\n
generateKeyPair() {\n    // Generate a private - …
Run Code Online (Sandbox Code Playgroud)

encryption aes dart flutter end-to-end-encryption

5
推荐指数
1
解决办法
1240
查看次数