真正的点对点聊天通讯隐私实现想法

2021-07-28 14:51:06 +08:00
 brader

实现想法:

A 发送消息给 B

检测是否持有 B 的公钥  

    若有,使用 B 的公钥对消息进行 RSA 加密并发送。  
    若无,则先请求 B 传输公钥过来,B 生成公私钥并缓存在本地。  

B 收到消息后,使用自己的私钥进行消息解密。  

B 发送消息给 A
同理

我想,这样应该才是能实现真正隐私通讯的,连服务提供方都无法窃取消息的,而不是市面上一些聊天软件慌称的“隐私”。

这种通讯隐私方案可实现吗?会有软件愿意为了用户隐私而实现吗?

13280 次点击
所在节点    程序员
125 条回复
learningman
2021-07-28 14:54:35 +08:00
Telegram 呗
also24
2021-07-28 14:55:39 +08:00
『若无,则先请求 B 传输公钥过来,B 生成公私钥并缓存在本地。 』


传输的过程被中间人了怎么办?
Vegetable
2021-07-28 14:56:50 +08:00
这种聊天软件其实有很多...基于 matrix 开发的客户端可以轻松实现端到端加密
官方专门有文档指导开发者如何实现带有端到端加密的客户端

https://matrix.org/docs/guides/end-to-end-encryption-implementation-guide

还有在大陆可以(几乎)无障碍使用的 keybase(已被 zoom 收购),也是宣称端到端加密的。

我们生活中几乎没见过这种东西的原因,相信你也能想明白。
SingeeKing
2021-07-28 14:57:04 +08:00
所有的 E2EE 通信不都是这样,主要问题还是在密钥交换上面
lzxz1234
2021-07-28 14:57:29 +08:00
好家伙,https 诞生记
brader
2021-07-28 14:59:58 +08:00
@also24 公钥是可全网公开的,所以被截获是无所谓的
also24
2021-07-28 15:01:18 +08:00
@brader #6
『被中间人』指的是,你怎么知道你收到的是 B 的公钥,而不是中间人 C 的呢?
jousca
2021-07-28 15:01:29 +08:00
这不就是 HTTPS 的工作原理?
dingwen07
2021-07-28 15:04:31 +08:00
@brader #6 建议详细了解下中间人攻击
yfugibr
2021-07-28 15:04:40 +08:00
这种东西一直都不是技术问题。
masterclock
2021-07-28 15:05:49 +08:00
常见通信软件是不是就绿色的那个不支持 e2ee ?
brader
2021-07-28 15:06:33 +08:00
@also24 不使用 B 的公钥加密,B 是无法解密消息的,那么软件就无法提供正常服务,B 也能发觉异常
also24
2021-07-28 15:12:35 +08:00
@brader #12
参考 9 楼,建议详细了解下中间人攻击
finab
2021-07-28 15:14:18 +08:00
@brader
A 发送消息给 B
发现没有公钥, 从 B 请求公钥, 此时中间人生成公私钥,将中间人公钥发送给 A
并请求 B,B 返回正确的 B 公钥,中间人保存 B 公钥。

此时 A 拿到 中间人公钥加密消息,中间人获取密文,用中间人私钥解密,将消息再由 B 公钥加密,发送给 B
lakehylia
2021-07-28 15:18:04 +08:00
@also24 防中间人那不就是证书那一套了
sakura1
2021-07-28 15:19:58 +08:00
https 也有一段通过对称加密交互公钥的过程吧我记得,它也不全依赖技术,而是利用证书解决陌生人之间的信任问题。好吧,蹲个大佬仔细说说。
hiplon
2021-07-28 15:20:04 +08:00
PGP, autocrypt,现成的 delta chat 可以看看
chizuo
2021-07-28 15:22:53 +08:00
建议学学网络安全吧。你说的就是一个小作业而已。
also24
2021-07-28 15:23:43 +08:00
@lakehylia #15
但是楼主设计的这一套里面没有类似机制,或其它能解决这个问题的机制。
chizuo
2021-07-28 15:27:00 +08:00
@chizuo 小作业都比你的要复杂一点点,因为 RSA 耗费资源多,使用的是 OTP ( one time pad ),每次消息传输都用一次性的 AES 来加密,RSA 仅加密 AES 的密钥就行了。如果感兴趣,还是建议学学网络安全,会有一个基本的认识。

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

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

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

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

© 2021 V2EX