怎样在无安全信道的情况下抵抗中间人攻击

2017-07-09 20:32:21 +08:00
 disk
现在的 ssl 是因为有根证书担保,而根证书是预置在电脑里的。想问下,如果通讯双方没有预先协商任何内容且信道出入口完全被控制的情况下,还有没有办法抵抗中间人攻击。
6001 次点击
所在节点    问与答
83 条回复
disk
2017-07-09 21:51:38 +08:00
@jyf007 拜占庭将军算法最初用来在网络中排除不可信或错误节点,应该是连通图且路径是可信的?如果某节点与所有其它节点间的路径均不可信,gg 啊。
jyf007
2017-07-09 21:57:05 +08:00
@disk 这个 gg 我不接,因为是概率上的可信信道了。
xenme
2017-07-09 22:36:55 +08:00
那就无解了嘛,这有啥有争论的。
starship
2017-07-09 22:53:24 +08:00
目前无解,开开脑洞还是可以的。
比如量子纠缠,量子隐形传输,超距作用等,或者等未来心灵感应开源也是一种办法:)
johnlui
2017-07-09 22:56:50 +08:00
楼主对中间人攻击的理解有误呀…根证书是保证可信的,是一门生意,理论上讲还增大了被伪造的可能性。
johnlui
2017-07-09 23:00:14 +08:00
HTTPS 中间人攻击防止办法:检测证书。证书和私钥一一对应,私钥严格保密,证书公开。没有私钥,无法形成加密解密闭环,所以别人拿到证书也没有用。
feather12315
2017-07-09 23:02:36 +08:00
@linfx7 DH 交换无法抵御中间人攻击
disk
2017-07-09 23:29:05 +08:00
@johnlui
https 中间人可不会窜改证书,它会伪造一个除公钥内容以外和原证书一模一样的证书,如果原证书没有 ca 作担保,让根证书给你签名,用户你咋知道自己接收到的网站证书是网站的还是中间人的
johnlui
2017-07-09 23:39:51 +08:00
@disk 如果无法事先获取证书,那逻辑上是无解的。我依然认为根证书是互联网时代的垄断生意,其技术目的是为了可信,而不是防止伪造。完全可以通过各种手段让一个可信 ca 签发出一个可信证书。结论就是:无解。
johnlui
2017-07-09 23:43:35 +08:00
@disk 话说我重读了你的回复,感觉似乎对证书还是存在一些误解呀…… 证书签发是为了身份可信,即为了确认拥有域名所有权或公司授权;而无法防止内容篡改。楼主自己申请过证书嘛……
maplerecall
2017-07-10 03:11:23 +08:00
不用钻牛角尖,无安全信道且无任何预先协商的话就是无解,举个简单的例子,你要寄东西到一个地方,但你除了地址什么都不知道,甚至对方都不知道会收到东西,那么你无论如何也不可能保证东西一定被正确的寄到。
jq8778
2017-07-10 03:17:09 +08:00
“没有预先协商任何内容”,你要如何定义这句话?
比如,这句话意味着“无任何预埋设置的话”,那么通信都无法建立起来,因为你连对面使用的是什么协议都不清楚...
msg7086
2017-07-10 03:31:59 +08:00
中间人有很多种攻击方法啊。
中间人跑到收信方家里把收信人绑起来扔进衣橱里,然后自己坐在电脑前监听你发的数据,你说你怎么防御。
如果中间人只是窃听而不能输入数据的话,DH 交换可以保证端到端加密后的数据无法被中间人获取。
如果中间人可以向传输介质输入数据的话,面对两个完全对等的陌生人,你是没有办法区分的。
datocp
2017-07-10 04:13:37 +08:00
试试 stunnel ?
stunnel 的连接过程有三张证书
至少一张证书对链路进行加密
服务器对客户端进行 pki 认证识别身份 /DH
客户端对服务器证书进行 ca 签识别。还有各种对证书进行 checkhost 相对 ss 的 psk 认证过程。实现起来很安全,特别是客户端对服务器身份进行识别,以前部分时间段经常出错,但是去掉这个配置连接就通了,是不是代表就被时间人了。stunnel 目前觉得是最安全了。
autoxbc
2017-07-10 04:39:38 +08:00
如果有解的话,为什么还有根证书,密码专家闲的无聊?
ghostheaven
2017-07-10 07:16:04 +08:00
双方都通过公网有证书的服务器中转通信
firemiles
2017-07-10 07:46:51 +08:00
@ghostheaven 那和公网服务器这段怎么加密
ghostheaven
2017-07-10 07:51:57 +08:00
@firemiles 公网 有证书 的服务器
firemiles
2017-07-10 07:58:26 +08:00
@ghostheaven 也就是要有很服务器通信的根证书
disk
2017-07-10 08:09:45 +08:00
@johnlui 证书的目的是互相证明对方身份,当然不防篡改,但被试图篡改实现身份盗用的中间人会立即暴露。

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

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

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

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

© 2021 V2EX