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

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

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

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

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

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

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

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

其它问答题希望听听大家意见
3464 次点击
所在节点    程序员
46 条回复
fruitmonster
171 天前
第一个问题:给谁用,使用场景是啥
busier
171 天前
@fruitmonster 场景就是加密传输临时消息啊,又不想被别人获取。比方说打个加密压缩包传给同事,但是密码又不想明文发过去。

只讨论技术实现及缺陷,这类其它问题不再讨论范畴。
makaflow
171 天前
国内是不行,无法监管就会被叫停
7lQM1uTy635LOmbu
171 天前
@busier 服务器不要留存信息,转发的消息确认送达后直接删除,并且应该设置 ttl ,最大存活时间,可以由发送方自定义,并且由发送方决定超时是否由服务器代替发送超时通知,但最大不能超过 x ,超时直接删除。

即便是同一对通信用户,请定期 rotate 密钥对,确保历史消息不可被物理解除后恢复。

至于安全交换公钥,印象中有看到过相关方案,反正是个已经解决的问题。

如何防止中间人攻击?(比如劫持,代理)
cassidy0134
171 天前
@busier 本人 ops 一枚,有多台海外服务器( sg ,us ),我不想暴露自己但想帮 op 测试这个页面和 app ,ops 相关的工作可以全部我来,你只要写代码即可,如果愿意,请给我一个临时联系方式。
cassidy0134
171 天前
其实我也早就想做这件事,奈何不会写代码~
shinsekai
171 天前
telegram web 算 OP 所说的吗?
ltkun
171 天前
如果不是 web 可以选择 k9mail 这种 使用普通 email 就能端到端的 app
dj721xHiAvbL11n0
171 天前
都通过其它渠道交换公钥了,我干嘛不直接通过那个渠道顺便把加密消息一起发了得了?
dislazy2023
171 天前
感觉可行,这个用来做临时聊天还是很有用处,我也一直在找这样的开源 web ,不太好找
jeesk
171 天前
肯定可行, 不过没什么鸟用呀
jeesk
171 天前
使用场景? 如果仅仅是分享问价? 那么直接临时启动一个 http-server 即可
ooolooo
171 天前
@shinsekai 不算, tg 有账号系统
tg 也没有默认端到端加密, web 更不是
wushenlun
171 天前
email pgp 加密不就好了 或者 whatsapp
ArthurSS
171 天前
webrtc 不是可以直接支持?
ArthurSS
171 天前
很早以前写了一个小 demo ,用的免费信令服务器,国内不一定能连接上: https://arthursuz.github.io/peer-link/
输入另外一边的 id ,既可建立连接,完全 p2p
Nazz
171 天前
可行, 逻辑全部走 WASM
Nazz
171 天前
内置证书
superkkk
171 天前
Conda
171 天前
我歪个楼,我们业务里的埋点和日志这类通用的服务就是基于 protobuf 传输的,发送前加密通过正常的 http 发送加密后的字符串,服务端拿到之后再解密,这个思路和你的聊天工具也是类似的吧,只要按我的格式传过来就行。

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

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

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

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

© 2021 V2EX