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

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

实现想法:

A 发送消息给 B

检测是否持有 B 的公钥  

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

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

B 发送消息给 A
同理

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

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

13328 次点击
所在节点    程序员
125 条回复
lakehylia
2021-07-28 15:27:56 +08:00
@also24 两个要隐私通讯的人,见一面,交换密钥就好了。真正的防中间人~~
Mitt
2021-07-28 15:31:39 +08:00
@brader #12 这一样防不住中间人的,中间人可以生成一份自己的公私钥分别拦截并返回给两边客户端,两边客户端的数据中间人也都能解开并重新加密,建议了解一下证书体系的信任机制
bruce0
2021-07-28 15:32:00 +08:00
@lakehylia 最靠谱的,面对面 交换秘钥 0.0
UnknoownUser
2021-07-28 15:32:02 +08:00
刚学了《应用密码学》,你说的这个方案是一个仅使用非对称密码的一个很不成熟的方案。
1. 有中间人攻击:请求 B 的公钥的时候存在中间人攻击,解决方案是使用 CA
2. 计算效率低:使用非对称加密的计算代价都太高了,一般非对称加密用来传输对称密钥,对称密钥加密消息
3. 不具有鉴别性:还需要用 A 的私钥对消息进行签名,来供 B 验证确定你的身份
securityCoding
2021-07-28 15:38:56 +08:00
@sakura1 你指的是 服务端用 ca 中心的私钥加密(电子证书+服务器公钥)到浏览器,浏览器用内置的 ca 中心公钥解密并验证电子证书合法性这个过程吧
LessonOne
2021-07-28 16:02:43 +08:00
@Vegetable 请大胆的说出来 ....
1041412569
2021-07-28 16:08:05 +08:00
跟楼主想法相似的是安全的多用途 Internet 邮件扩展 S/MIME ,而不是 https 、PGP 。
gps949
2021-07-28 16:13:12 +08:00
RSA 加密?一般肯定产生会话对称密钥加密啊
luvroot
2021-07-28 16:17:12 +08:00
nat upd 打洞+定时密钥更新加密通讯 @brader
777777
2021-07-28 16:26:33 +08:00
对于上面所说的中间人攻击,我觉得可以用区块链解决,所有人公开公钥且公钥不和用户绑定。发消息时用公钥加密广播,仅持有此公钥的私钥的人才能看到所发消息。但存在一个消息泛滥问题,所有人都可以发消息给这个公钥,然而数字货币不会存在(因为没人会随便给你转账),这个问题可以用发消息+数字货币的方式解决。
shansing
2021-07-28 16:38:19 +08:00
@777777 别什么都扯上区块链啊。去中心化的区块链恰恰就是不能解决身份认证的问题。如果只认公钥,不管现实用户是谁,简直就没有中间人冒充的余地了,哪里还需要区块链出场。
777777
2021-07-28 16:42:22 +08:00
@shansing 只认公钥,如何解决消息泛滥问题?
777777
2021-07-28 16:44:10 +08:00
@shansing 要的就是不需要身份认证,实现身份隐私+通信隐私
NeezerGu
2021-07-28 16:49:48 +08:00
A 和 B 在线下通过投骰子选个地儿洗个澡儿,在洗澡过程中双方全身赤裸在淋浴头下时,交换一个 10 位数以上包含字母+数字+符号的密码。

之后双方用任意一个经得住考验的加密算法并加上这个密码(好像叫盐?)就行。

不太懂密码学,似乎这样就 ok 了?
qrobot
2021-07-28 16:52:12 +08:00
回楼主, 有, 这个软件叫做 GnuPG , 也叫做 GPG
tangds99
2021-07-28 16:57:15 +08:00
keybase 了解下
dallaslu
2021-07-28 16:59:16 +08:00
@1041412569 PGP 也可以加密邮件呀,和 S/MIME 功能相近
dqzcwxb
2021-07-28 17:24:19 +08:00
kera0a
2021-07-28 17:26:01 +08:00
你都 https 了,还要你这个方案干啥,毫无卵用
gBurnX
2021-07-28 17:29:10 +08:00
@777777 你这方案第一句话就不可行: [所有人公开公钥] 。请问怎么做到这一点?

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

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

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

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

© 2021 V2EX