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

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

实现想法:

A 发送消息给 B

检测是否持有 B 的公钥  

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

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

B 发送消息给 A
同理

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

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

13428 次点击
所在节点    程序员
125 条回复
love2020
2021-07-29 08:59:52 +08:00
没有绝对安全的网络
yiqiao
2021-07-29 09:14:34 +08:00
@dingwen07 最近的吴亦凡和都美竹事件就是中间人攻击。两头骗
wy315700
2021-07-29 09:23:57 +08:00
iMessage 好像就是这么设计的
lonnyzhang
2021-07-29 09:30:33 +08:00
去看 Telegram 的端对端加密算法:
https://core.telegram.org/api/end-to-end

是基于下面这个算法:
https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

总结下就是:
1.服务端给客户端提供两个数(x,y)
2.客户端 A:
生成随机数 r1,计算 m=pow(x, r1) % y
3.客户端 B:
生成随机数 r2,计算 n=pow(x, r2) % y
4.A 、B 互相发送结果 m 、n
A 计算 key=pow(n, r1) % y
B 计算 key=pow(m, r2) % y
这时,两个 key 是相同的,后面用这个 key 做对称加密即可

注:y 要足够大,x 、y 、m 、n 都是公开的,但是只要 r1 、r2 不泄露,别人想要计算出 key 的值难度很大,包括服务端。
Rcnaec
2021-07-29 09:33:38 +08:00
歪个楼,目前对于端对端加密的聊天软件监控的通杀方式,是监控顶部通知栏
lingxi27
2021-07-29 09:48:42 +08:00
密码学很有趣的,建议多学点
newmlp
2021-07-29 09:53:06 +08:00
这不就是 tls 的原理吗,直接拿 tls 来用不就行了
pkoukk
2021-07-29 10:01:13 +08:00
建议了解一下 telegram 的实现,加密不仅要考虑前向安全,还得考虑后项安全。
如果秘钥泄露,那么你的所有信息都会泄露。
tg 用了双棘轮算法保证每条消息的秘钥都是不一样的
ilaipi
2021-07-29 10:33:13 +08:00
曾经做过一个利用邮箱实现类似聊天方式的。完全不需要服务器,没做完流产了
misaka19000
2021-07-29 10:39:05 +08:00
楼主多去读点书吧,别做民科
Kareless
2021-07-29 10:43:28 +08:00
这不就是 telegram 吗
Joshua999
2021-07-29 11:41:34 +08:00
A 怎么知道收到的公钥是 B 发来的
NilChan
2021-07-29 11:46:12 +08:00
思而不学则殆。看一下 HTTPS 工作原理就知道了。另外 RSA 一般用来加密对称密钥,而不是消息本身。
villivateur
2021-07-29 11:56:23 +08:00
楼主可能刚刚了解非对称加密原理,然后就想了这一出。
但是还是要多读书啊
Rheinmetal
2021-07-29 11:58:57 +08:00
读这个之前没人教你 don't make your own crypto 么
真密谈应该明文配 one time pad
DBT
2021-07-29 11:59:14 +08:00
@earneet 说的很对,有个细节需要更正,RSA 算法由于 PKCS#1 补丁的关系,单次加密最大数据长度为 117 字节,嘿嘿。
LLaMA2
2021-07-29 12:13:55 +08:00
想要 End to End 的加密,首要解决的是两端交换的密钥确实是他们自己说的密钥,而不是由中间人篡改后的密钥。上面网友说的面对面交换密钥就能保证到。
wlbyg888
2021-07-29 13:00:40 +08:00
技术早就有了!落地应用,环境不现实
doveyoung
2021-07-29 13:44:50 +08:00
怎么说呢,楼主能来 v2,竟然不知道 telegram 吗
GeruzoniAnsasu
2021-07-29 13:48:21 +08:00
@lzxz1234

好家伙,超时空网速

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

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

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

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

© 2021 V2EX