实现一个纯 Web 界面的端到端加密临时聊天对话思路是否可行?

175 天前
 busier
假如想实现一个纯 Web 界面的端到端加密临时聊天对话

通过 openpgpjs 项目,在客户端浏览器纯前端实现 PGP 加解密

服务器端只负责交换公钥和转发客户端传过来的加密消息,保证服务器管理员无法解密阅读消息内容

免用户注册机制,服务器通过 PGP 公钥来标识用户,列出在线用户及 PGP 公钥

用户"密钥对"在用户浏览器加载页面时随机生成,不上传不保存私钥,关闭浏览器私钥丢失,所有消息将被废弃不可解密。

这样的设计思路有无技术可行性,或者有什么重大缺陷?

已知问题:无法确认对方身份,需要通过其它渠道交换公钥来确认身份。

其它问答题希望听听大家意见
3476 次点击
所在节点    程序员
46 条回复
busier
175 天前
确实存在 raw0xff “ 你可能没有意识到在不能保证用户访问的第一个页面的完整性的前提下 e2ee 并不安全。”说的问题

此设计中,前端本就是纯静态,分发前端 HTML 方案可行。
raw0xff
175 天前
大概分三个问题:用户身份验证、私钥安全存储、页面完整性校验

目前被困在页面完整性实时校验问题上。
raw0xff
175 天前
@Nazz 我对逆向工程不懂,wasm 嵌入证书的话是否会被逆向出来? wasm 中的变量是否会被恶意 js 脚本读出来?
busier
174 天前
@raw0xff
考虑运行时选择通信服务器。至于页面分发部分就独立出来,让用户通过自己的受信渠道分发。
Nazz
174 天前
@raw0xff 逆向没那么容易
qfdk
174 天前
双认证 吧 试试?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1046959

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX