问题标签 [e2e-encryption]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
663 浏览

xmpp - Smack 是否支持 XMPP 端到端加密 (E2EE)?

有没有办法用Smack进行端到端加密?Smack 是否具有对例如 OpenPGP (RFC 4880) 的内置支持?

我需要对 ejabberd 服务器使用 e2e 加密。

0 投票
1 回答
76 浏览

signal-protocol - 同一组中的多个设备可以共享相同的发送者密钥分发消息吗?

这是关于通过信号协议实现群消息的具体问题。

在设备 1 将使用发送者密钥分发消息 (SKDM) 加密的消息发送到许多接收设备后,每个接收设备是否可以使用相同的 SKDM(由设备 1 生成)来加密其传出消息,或者是否具有生成自己的SKDM?

大约一年前,我在这里的信号社区论坛上问了这个问题:https ://whispersystems.discoursehosting.net/t/can-devices-share-sender-key-distribution-messages/1648 ,但没有人回答。

0 投票
1 回答
6942 浏览

encryption - 如何使用 Flutter 和 Dart 执行文件加密

我不知道在这里问我的问题是否正确。我只需要对我正在尝试构建的应用程序进行可行性研究。我选择 Flutter 是因为我可以快速创建移动应用程序。

我的应用程序将以音频文件的形式存储语音消息。它可以是 mp3 或音频格式。

为了使它只能被接收者读取,我需要使用 AES 或 e2e 加密来加密文件。

我需要知道是否可以在我的颤振应用程序中使用 Dart 加密文件。如果可能的话,我想获得有用的资源。

我试图搜索这个主题,但我只能找到关于加密字符串或文本文件的文章。

0 投票
1 回答
708 浏览

encryption - 图片,视频在whatsapp中加密了吗?

首先让我说我对密码学一无所知。我对whatsapp中的图像等问题产生了,因为一位开发者朋友说它的消息是加密的。保存在 whatsapp 文件夹中的图像、视频文件可以通过打开本地设备文件夹随时查看,而无需通过 whatsapp,可以转发给不在 whatsapp 上的任何联系人,不能像聊天一样加密。

他说的另一点是,由于 whatsapp 将图像、视频文件保存几天以满足某些“法律要求”,如果这些文件被加密,不管法律要求如何,whatsapp 将无法看到这些图像和视频。因此,将这些图像保留一段时间无助于 whatsapp 满足这些法律要求。

我可以请这里的聪明社区启发我吗

  1. 如果通过whatsapp共享的图像,视频,音频,文档以及保存在设备本地文件夹中的图像,视频,音频,文档可以被视为端到端加密吗?
  2. 信号耳语系统在whatsapp网站上共享的技术文档在谈到所有附件的端到端加密时意味着什么?

Insight 将有助于设计需要端到端加密的应用程序。

澄清

我想我不能正确地提出我的问题。让我澄清一下。

  1. 我不是在谈论 MIM attach atall。我知道聊天是 E2EE。因此,您将无法在设备文件夹中找到聊天。而且您将无法直接从文件夹与 whatsapp 之外的第三人分享聊天。但是whatsapp 中的图像/视频会保存在设备的whatsapp 文件夹中。您可以直接从您的文件夹将这些图像/视频直接发送给 whatsapp 之外的第三个人。如果图像也是 E2EE,则无法共享,就像无法从任何文件夹共享聊天一样。

  2. Whatsapp 将图像/视频保存一段时间。如果这些是加密的,保存这些有什么用?即使有法律要求,whatsapp 也无法解密,如果这些是 E2EE!那么E2EE附件是否可以保存在whatsapp之外的某个本地设备文件夹中并直接在whatsapp之外共享?

我能澄清一下吗?

我是stackoverflow的新手。原谅一些过犯。

0 投票
2 回答
170 浏览

e2e-encryption - 如何获取序列化密文消息的类型?

我根据Signal 的文档使用libsignal-protocol-java在消息传递应用程序中实现端到端加密。

假设 Alice 向 Bob 发送一个(成对的)序列化密文消息。Bob 怎么知道如何反序列化它?他不是首先需要知道密文消息的类型吗?我的理解是,成对的密文消息可以是信号消息(WHISPER_TYPE)或预密钥信号消息(PREKEY_TYPE)。那么 Bob 怎么知道它是哪种类型呢?

Alice 是否也应该向 Bob 发送密文消息的类型(作为明文)?

或者 Bob 有没有其他方法可以检测到类型?例如,Bob 是否应该尝试将其反序列化为信号消息,如果失败,则尝试将其反序列化为预密钥信号消息?

0 投票
0 回答
355 浏览

react-native - 是否有任何库可以让本地反应在像 Signal 协议这样的聊天中实现端到端加密?

我正在尝试使用 react native、nodejs 和 mongodb 构建一个实时聊天应用程序。我已经构建了常规聊天应用程序,但我需要添加端到端加密 (E2EE)。我尝试使用由 Signal Messenger 构建的 libsignal-protocol javascript 库(libsignal-protocol),但该库不适用于 react native,因为它需要通过 index.htm 文件作为脚本导入。我试图通过 NPM 安装,但它给出了导入错误。现在我需要一个库来在我的 react native 应用程序中实现 E2EE。任何建议将不胜感激。谢谢。

0 投票
1 回答
64 浏览

security - 端到端加密基本上不只是客户端加密吗?

密码学新手,并试图获得对 e2ee 的高级理解。我目前对它的理解是,实现它所需的所有逻辑都可以(应该?)在前端完成,并且与服务器发生变化的唯一类型的交互是必须首先发送接收者的公钥。数据的初始加密。这或多或少是正确的,还是我误解了?

0 投票
0 回答
53 浏览

single-sign-on - 将 SSO 与 E2EE 相结合

我们运行一个带有端到端加密系统的网络应用程序,其中所有内容都使用从用户密码派生的密钥进行加密。我们知道这并不理想,但这似乎是我们目前拥有的最佳解决方案。

最近也提出了实施 SSO 的请求。由此看来,实现 SSO 和E2EE ,而不需要桌面或移动应用程序似乎是可能的,但这是我发现的唯一提及。

有没有办法从 SSO 提供者那里获得一些对每个用户都是唯一的并且可以安全地用于加密用户数据的秘密?或者这通常不是一个好主意?

我浏览了 AWS Cognito 和 Auth0 文档,但没有发现任何有用的东西。目前,我们在 AWS Cognito 中进行了一些实施,但不介意切换到其他提供商。

0 投票
1 回答
126 浏览

javascript - End2End 加密 IOException:algid 解析错误,不是序列

我正在使用本机浏览器加密 API 生成公钥和私钥,如下所示:

然后我将publicKey使用下面的exportKey函数导出window.crypto.subtle

如果您有任何建议,请告诉我并帮助我解决此问题。

0 投票
1 回答
61 浏览

node.js - 实现 E2EE 时如何防止 MITM 攻击?

我正在开发一个项目,其中两个客户端可以通过 Web 套接字(使用 Socket.IO)相互发送文件。每个块都使用 AES 加密。

目前,客户端连接到服务器,他们每个人在他们的设备上生成一个 RSA 公钥/私钥对,然后他们向服务器宣布他们的公钥,服务器将它们发送给另一个客户端,并由所述客户端存储。在发送数据之前,使用随机密钥和随机 IV 使用 AES 对其进行加密,然后使用其他客户端的公钥对 AES 密钥进行加密。数据被发送出去,然后另一个客户端使用他们的 RSA 私钥解密 AES 密钥,最后使用解密的 AES 密钥解密内容并将其保存到其磁盘上的文件中。

问题是服务器可以轻松地用自己的公钥替换一个客户端的公钥,然后窃取数据。我能想到的唯一解决方案是让客户相互联系并手动验证他们的公钥......我不确定如何自动化这个过程。提供 E2EE 的服务似乎会在每台设备上生成匹配代码,但我无法找到有关其实际实现方式的任何信息,例如两个设备如何生成匹配代码而不与服务器或在两者之间相互通信,以及如果他们这样做,那么服务器无论如何都知道代码对吗?

我考虑过使用 WebRTC 将公钥从一个客户端发送到另一个客户端,而无需让数据通过服务器,但我很欣赏其他方法。先感谢您!:)