1
ipconfiger 2017-07-09 20:36:10 +08:00
无解
|
2
linfx7 2017-07-09 20:36:20 +08:00 via iPhone
DH 交换
|
3
jyf007 2017-07-09 20:36:20 +08:00
拜占庭将军问题?
|
4
albertofwb 2017-07-09 20:37:30 +08:00 via Android
如果你指的是 wifi 的局域网情况下,MAC 地址静态绑定可以有效抵抗中间人攻击。
|
5
neroxps 2017-07-09 20:37:57 +08:00 via iPhone
打电话告诉对方秘钥。🙈
|
6
jyf007 2017-07-09 20:37:58 +08:00
@albertofwb 这个也是双方预先协商的结果
|
8
albertofwb 2017-07-09 20:40:18 +08:00 via Android
@jyf007 如果是企业内网或者是一个已知的网络情况下,也就是说路由器和网关的 MAC 地址是已知的,运维人员可以在每台主机上直接绑定 MAC 地址。 这样一来,在这个局域网环境下就无法实施中间人攻击。
|
9
jyf007 2017-07-09 20:41:45 +08:00
@albertofwb 通讯双方没有预先协商任何内容且信道出入口完全被控制的情况下 根据字面理解,这个 MAC 地址就是双方预先协商的情况
|
10
ZRS 2017-07-09 20:42:20 +08:00
走量子信道协商对称加密密钥
|
12
xenme 2017-07-09 20:43:38 +08:00 via iPhone
量子通信
|
14
blankme 2017-07-09 20:46:54 +08:00
|
16
ZRS 2017-07-09 20:47:42 +08:00
@jyf007 那似乎是没有办法的...信任链的基础是你本身拥有可信任的东西,证书体系下就是预置的根证书,如果什么都没有是无法建立安全通信的。
|
18
disk OP 当然两方得互相知道对方的通讯地址,不然建立不了信道。我这里是指抽象的通讯,不特指计算机网络。我再补充一些并宽限条件吧,通信双方是接入到公共通信域,包含第三方,被控制的是双方各自的接入口,可以被监听,阻挡,篡改等等。
|
19
jyf007 2017-07-09 20:55:39 +08:00
|
20
neilp 2017-07-09 20:55:43 +08:00 via iPhone
目前无解
|
22
misaka20038numbe 2017-07-09 20:58:04 +08:00
向对方发送信息,让对方把加密后的信息回传.然后只有自己知道解密过程.这样中间人虽然知道你们做了什么,但是应该没办法破解加密信息吧.
|
23
jyf007 2017-07-09 20:58:42 +08:00
@misaka20038numbe 拜占庭将军问题
|
27
misaka20038numbe 2017-07-09 21:07:31 +08:00
@jyf007 我这样做中间人怎么获取到加密的信息呢
|
28
jyf007 2017-07-09 21:09:01 +08:00
@misaka20038numbe 伪造证书
|
29
disk OP @xenme
@blankme @ZRS 嘿,你们的量子信道得先建起来,中间人自己做了对量子向 B 冒充自己是 A 怎么办。量子通信假设量子预分配不受干扰 @misaka20038numbe 表达没懂什么意思,中间人不仅能监听还能冒充 |
31
jyf007 2017-07-09 21:17:10 +08:00
@blankme。即错误节点可以做任意事情(不受 protocol 限制),比如不响应、发送错误信息、对不同节点发送不同决定、不同错误节点联合起来干坏事等等。总之就是说,没有节点会出现比这更严重的错误。很显然,拜占庭错误是 overly pessimistic 的模型,因为这种错误实际环境中比较少见。那么为什么要研究这个模型呢?其中最简单的一个原因是,如果某个一致性算法能够保证在系统出现 f 个拜占庭错误时保持系统一致,那么这个算法也就能够保证在出现 f 个任意其他错误的时候也保持系统一致。错误模型有上限,肯定也就有一个下限( overly optimistic,没有比它还要弱的模型)。这个下限就是‘ fail-stop ’模型。这个模型的假设是:当一个节点出错,这个节点会停止运行,并且其他所有节点都知道这个节点发生了错误。用同样的逻辑,如果某个一致性算法不能保证在系统出现 f 个错误的时候保持一致,那么这个算法也就没法处理其他 f 个任意其他问题。应用这些错误模型,可以对不同算法进行比较,也可以对具体算法的 cost 进行讨论。
作者:赵伟辰 链接: https://www.zhihu.com/question/23167269/answer/42345736 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 |
33
ZRS 2017-07-09 21:21:28 +08:00
@disk 量子态是不可复制的,中间人不可能在不暴露自己的情况下进行操作,仅仅观测就会改变粒子的量子态。所以量子密钥分发是原理上防中间人的。如何实现在有一定噪音的量子信道上进行密钥分发就是目前的研究方向,具体实现我不是做这方面的,不怎么懂。
|
34
blankme 2017-07-09 21:29:22 +08:00
@ZRS
问题出在题主的“没有预先协商任何内容”,相当于是说:我要和一个完全不认识的陌生人交流。 而中间人是另一个完全不认识的陌生人,所以他完全可以伪装。 A 和 B 还需要一种方式用于验证身份,仅仅通讯安全还不够。 |
35
disk OP @ZRS 对,你说的没错,但它有个前提,就是量子信道事先存在,然后的传输不受干扰。如果这个信道本身就不可信,那就 gg 了。你以为这个信道是 a~b,实际上建立好的信道是 a~c--b。
|
37
jyf007 2017-07-09 21:37:54 +08:00
|
41
disk OP @jyf007 拜占庭将军算法最初用来在网络中排除不可信或错误节点,应该是连通图且路径是可信的?如果某节点与所有其它节点间的路径均不可信,gg 啊。
|
43
xenme 2017-07-09 22:36:55 +08:00
那就无解了嘛,这有啥有争论的。
|
44
starship 2017-07-09 22:53:24 +08:00
目前无解,开开脑洞还是可以的。
比如量子纠缠,量子隐形传输,超距作用等,或者等未来心灵感应开源也是一种办法:) |
45
johnlui 2017-07-09 22:56:50 +08:00 via Android
楼主对中间人攻击的理解有误呀…根证书是保证可信的,是一门生意,理论上讲还增大了被伪造的可能性。
|
46
johnlui 2017-07-09 23:00:14 +08:00 via Android
HTTPS 中间人攻击防止办法:检测证书。证书和私钥一一对应,私钥严格保密,证书公开。没有私钥,无法形成加密解密闭环,所以别人拿到证书也没有用。
|
47
feather12315 2017-07-09 23:02:36 +08:00 via Android
@linfx7 DH 交换无法抵御中间人攻击
|
48
disk OP @johnlui
https 中间人可不会窜改证书,它会伪造一个除公钥内容以外和原证书一模一样的证书,如果原证书没有 ca 作担保,让根证书给你签名,用户你咋知道自己接收到的网站证书是网站的还是中间人的 |
49
johnlui 2017-07-09 23:39:51 +08:00 via Android
@disk 如果无法事先获取证书,那逻辑上是无解的。我依然认为根证书是互联网时代的垄断生意,其技术目的是为了可信,而不是防止伪造。完全可以通过各种手段让一个可信 ca 签发出一个可信证书。结论就是:无解。
|
50
johnlui 2017-07-09 23:43:35 +08:00 via Android
@disk 话说我重读了你的回复,感觉似乎对证书还是存在一些误解呀…… 证书签发是为了身份可信,即为了确认拥有域名所有权或公司授权;而无法防止内容篡改。楼主自己申请过证书嘛……
|
51
maplerecall 2017-07-10 03:11:23 +08:00 via Android
不用钻牛角尖,无安全信道且无任何预先协商的话就是无解,举个简单的例子,你要寄东西到一个地方,但你除了地址什么都不知道,甚至对方都不知道会收到东西,那么你无论如何也不可能保证东西一定被正确的寄到。
|
52
jq8778 2017-07-10 03:17:09 +08:00
“没有预先协商任何内容”,你要如何定义这句话?
比如,这句话意味着“无任何预埋设置的话”,那么通信都无法建立起来,因为你连对面使用的是什么协议都不清楚... |
53
msg7086 2017-07-10 03:31:59 +08:00
中间人有很多种攻击方法啊。
中间人跑到收信方家里把收信人绑起来扔进衣橱里,然后自己坐在电脑前监听你发的数据,你说你怎么防御。 如果中间人只是窃听而不能输入数据的话,DH 交换可以保证端到端加密后的数据无法被中间人获取。 如果中间人可以向传输介质输入数据的话,面对两个完全对等的陌生人,你是没有办法区分的。 |
54
datocp 2017-07-10 04:13:37 +08:00 via Android
试试 stunnel ?
stunnel 的连接过程有三张证书 至少一张证书对链路进行加密 服务器对客户端进行 pki 认证识别身份 /DH 客户端对服务器证书进行 ca 签识别。还有各种对证书进行 checkhost 相对 ss 的 psk 认证过程。实现起来很安全,特别是客户端对服务器身份进行识别,以前部分时间段经常出错,但是去掉这个配置连接就通了,是不是代表就被时间人了。stunnel 目前觉得是最安全了。 |
55
autoxbc 2017-07-10 04:39:38 +08:00 1
如果有解的话,为什么还有根证书,密码专家闲的无聊?
|
56
ghostheaven 2017-07-10 07:16:04 +08:00 via Android
双方都通过公网有证书的服务器中转通信
|
57
firemiles 2017-07-10 07:46:51 +08:00 via Android
@ghostheaven 那和公网服务器这段怎么加密
|
58
ghostheaven 2017-07-10 07:51:57 +08:00 via Android
@firemiles 公网 有证书 的服务器
|
59
firemiles 2017-07-10 07:58:26 +08:00 via Android
@ghostheaven 也就是要有很服务器通信的根证书
|
60
disk OP @johnlui 证书的目的是互相证明对方身份,当然不防篡改,但被试图篡改实现身份盗用的中间人会立即暴露。
|
61
disk OP 总结一下,在通信双方的接入口被控制情况下,双方无法做到身份证明。如果被控制的仅是信道的中间节点,那么由其它安全信道引入可信第三方,或是事先协商身份验证方式的情况下,中间人就很难实现欺骗了。
|
62
zjqzxc 2017-07-10 08:26:18 +08:00
单纯考虑计算机之间的通信,中间人攻击是无解的,无论如何都无解
但是如果可以打电话来确认一些信息,至少在近几年还是可以避免中间人攻击的( 1、实时性; 2、人工进行了基于声音的身份认证) 长远来看,如果能对语音通讯实施实时中间人攻击的话。。。唔,希望有生之年不会有这种技术吧。 |
65
rswl 2017-07-10 09:35:21 +08:00
超展开了。。
|
67
hellove1985 2017-07-10 10:12:05 +08:00
无解
|
68
woyao 2017-07-10 10:33:04 +08:00
自己实现一套类似 SSL 的加密通讯协议,目前有一些银行的客户端就是这样搞的,虽然是走的 HTTP 协议,但是自己实现了类似 SSL 的加密通讯协议来防止中间人攻击!
|
69
coolypf 2017-07-10 11:18:31 +08:00
两人先见面,约定一个密钥。然后就可以用 TLS-PSK 啦。
至于量子通信,太超前了…… |
70
maomo 2017-07-10 11:46:16 +08:00
试问在什么情况下,通讯双方需要在“没有预先协商任何内容”的条件下进行通信?
|
72
disk OP @maomo 这只是理论研究。实际情况下当然复杂的多,现实中很多也是先接通然后开始协商,最后在正式通信,接通前也没有协商任何内容啊。
|
73
lucifer9 2017-07-10 12:14:32 +08:00
俩人见面,然后在一起
|
75
disk OP @maomo 哈哈,这个是前提条件,两个不认识的人想要通信,必须要知道知道地址,借助第三方也好,旁路也好,身份特征也好。如果你要和一个人通信,但不知道那个人的任何信息,那又怎么知道是要和哪个人通信,变成逻辑问题了,死结啊。
|
76
natforum 2017-07-10 12:26:56 +08:00
双重密钥交换,mac 地址验证,ssl+res 流量加密
|
80
facetest 2017-07-10 14:39:56 +08:00
找个无人的地方,比如沙漠中央、珠峰顶上,双方口头交互秘钥,只准计在脑子里。
|
81
long9418 2017-07-10 15:16:19 +08:00
两台电脑直连,就没有中间人了。
|