首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Javascript中可以进行端到端加密吗?

在Javascript中可以进行端到端加密吗?
EN

Stack Overflow用户
提问于 2015-02-15 13:17:58
回答 3查看 23.4K关注 0票数 21

我目前正在研究创建一个(peer2peer)消息传递客户端的可能性,比如加密和安全性。此应用程序将基于web技术(如果可能的话)。

我的问题是:只有javascript (client & node.js/peer.js)才能实现端到端加密吗?如果是:研究HMAC (RSA)加密技术是正确的吗?我已经试着稍微了解一下这些库是如何工作的,但是到目前为止我还没有运气:)

lib的I‘s I发现很有趣,但我(完全)不理解和知道如何实现(在这个用例中):

如果需要的话,我可以再详细说明一下。

更新:应用程序将是一个移动应用程序。网络技术的使用是一个概念的证明。

EN

回答 3

Stack Overflow用户

发布于 2017-10-04 19:18:52

端到端加密的目标是,即使中央服务器作弊,用户也可以确定通信的安全性。有两项主要挑战需要解决:

(1)用户必须100%确定他们正在与他们认为正在交流的人进行交流。这是为了防止中间人攻击,其中中间人可以是任何人,包括服务器本身(例如:苹果iMessage有这个弱点)。

(2)你需要100%确定客户端代码没有作弊。例如,它是否真的使用他人的公钥加密数据,还是仅仅将其以明文形式发送到其他地方,然后从那里加密。考虑到任何访问服务器的人都可以随时交换JavaScript,这是一个巨大的挑战。

这两个问题似乎都是可以解决的。

对于(1),用户可以在带外验证公钥,就像在PGP/GPG中所做的那样(不幸的是,许多人跳过了这一步,但是对于真正的端到端安全性,您需要它)或keybase.io

对于(2),麻省理工学院的一个小组声称在他们的米拉尔设计中解决了这个问题。应该说,研究人员已经发现了Mylar的安全问题,但据我所知,他们对客户端代码完整性的解决方案并没有受到损害。

因此,从理论上讲,端到端加密完全可以用JavaScript完成(所使用的服务器语言与此无关)。在实践中。这不是件容易的事。

票数 8
EN

Stack Overflow用户

发布于 2015-02-15 15:11:42

您目前正在研究安全实现。如果您不了解这些库背后的安全模型&密码学,那么您的解决方案--非常肯定--将不安全。

Artjom正确地指出,对于对等加密,您很可能需要双方的身份验证。这不是由正常的SSL/TLS提供的,您需要客户端身份验证。但是对于客户端和服务器身份验证,您需要建立信任。在普通浏览器上,这是由内部证书存储提供的。然而,相信客户要棘手得多。

所有其他东西(比如RSA不是HMAC)都是实现细节。但是,您现在不应该实现任何与安全性相关的内容。首先关注您的用例、威胁场景和协议设计。

票数 5
EN

Stack Overflow用户

发布于 2016-11-25 19:52:21

最多可以在web浏览器中使用Javascript进行“新奇”端到端加密。也就是说,它看起来和感觉就像端到端的加密,但是这个实现很可能会被加密者嘲笑。

主要原因是,不管您在前端加密数据时输入了什么拼图,客户端最终都取决于服务器发送的内容。

所需阅读:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28526464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档