戏说WYF——网络安全之中间人攻击
最近娱乐圈的大瓜,吴x凡和都x竹的事件不知道大家吃瓜吃的如何?
我在这里是看的津津有味,从双方的决战到警方的通告,实在是颇有趣味。
我们关注下警方的通告,就会发现这里面竟然隐藏着关于网络安全方面的知识。
中间人攻击 一个由来已久的名词,它从很久以前便出现了。
简单的描述下,就是 A 和 B 通过某种渠道进行沟通,这时候出现了一个 C,他通过 某种方式 介入到A与B的沟通中来,并且使A相信了C就是B,同时B也相信了C就是A。这时,A给B的信息就相当于是C给B发的,也就是说C不论传递的是什么消息,B都会认为这是A传递的。同理,对应到B给A的消息也就是这样。此时 C 就是我们语义里的 中间人 ,他所作的破坏就是 中间人攻击 。
我们不难看出,C在这里可以做的事情很多:
我这里以一次普通的Http请求为例:
假设客户端A向服务端B发送请求体为 我爱你宝贝 ,B响应体为 宝贝我也爱你 。C通过某种方式成为了A、B中的中间人,此时C改动了A的请求为 宝贝,我爱你,但我出车祸了,急需5000元,速打至xxxxxx ,B收到了消息,执行了转账5000元的操作,然后响应体变成 宝贝,钱已经到账,好好养病 ,随后C将这个响应改回 宝贝我也爱你 ,这时C就完成了一次信息篡改,并且产生实际的上的危害( B转账5000元 )。
这里,刘某迢虚构身份骗取都某竹的信任,我们可以将其看成刘某迢( 中间人C )成功获取都某竹( 客户端A )的信任( 获取到了客户端A与服务端B通讯的相关凭证 )
刘某迢( 中间人C )利用获取的信息冒用都某竹名义与吴某凡律师( 服务端B )联系( 通过相关凭证与服务端建立了连接 ),以双方达成和解为名索要300万元赔偿,并将自己和都某竹的银行账户一并发给吴某凡律师( 篡改伪造了客户端A的相关请求,并准备获利 )
同时,刘某迢使用“北京凡世文化传媒”微信号,自称系吴某凡律师,与都某竹协商( 中间人C建立与客户端A的连接 )达成300万元的和解赔偿,但双方未签署和解协议( 向客户端A转发发送服务端B的响应 )。
7月11日,吴某凡母亲分两次向都某竹账户转账50万元( 服务端信任了中间人C并执行了相关转账操作 )。此后,未得到钱款的刘某迢继续冒充都某竹,向吴某凡律师索要剩余250万元未遂( 中间人C后续操作未被服务端B信任,拒绝了,这步操作可能是源于客户端A的权限不足以支撑服务端B的操作了,而不是中间人C被发现了 )。后又冒充吴某凡律师要求都某竹签署和解协议,否则索回50万元。都某竹同意退款后,刘某迢冒充吴某凡律师将本人的支付宝账号提供给都某竹,都某竹陆续向该账号转账18万元( 中间人C向客户端A发起退款操作通知,客户端A执行了 )。
刘某迢被抓获后,对其诈骗犯罪事实供认不讳。目前,该人已被朝阳公安分局依法刑事拘留。( 中间人攻击里面信息篡改是可能会被发现的 )
服务端和客户端的通讯可以进行加密,这样中间人即使获得了消息,也无法破解消息的真实内容或者对消息进行篡改
Https请求就是在原本的Http请求上新增了加密层,因此Https请求会比Http请求要安全,但Https请求也被中间人攻击。
如果中间人C知道加密方式,并且可以成功骗取A和B的信任,那么加密消息这个屏障就相当于是白设置了。
可是沟通是必须要进行的,那么我们应该怎么处理呢?
可以采用证书形式,也就是说,加密方式我们变为非对称加密,并且把证书作为公钥在加密的一开始就传给对方,这样对方就可以在连接建立的一开始就确定对方究竟是不是真正的那个他,如果不是,那么我们可以直接拒绝传递数据。
Https中就是这样的,在连接建立的最开始,服务端就先把证书下发到客户端了,并且供客户端进行鉴权,此时如果证书不对,客户端会主动关闭连接的。
这个方案就无法结合真实事件去说明了。
其实中间人攻击的前提是双方在某些情况下无法暴露自己的身份,因此另一方无法判断沟通的另一方是不是本人。所以问题的解决方法就变为了如何确定对方的身份,而我们给出的那些方法,其实就是用于确定身份的。
比如说加密,其实就是加密方式对于双方来说是已知的,而对于三方是未知的,因此对应情况下,我们就默认对方并不会对外公布加密方式。也就是说能知道加密方式的就是对方。身份由此确定
证书确认呢,则是通过双方都认可的某些三方发布的身份证明,或者双方直接都有对方的身份证明,最终也是为了确认身份。
吴某凡的这个事件整体令我感觉大跌眼镜,但是确是讲中间人攻击的最好的一件事,没想到现实生活中竟然发生了这种事件。
不过,这类事也可以看出,计算机里的很多情况其实都是有真实世界的缩影的,比如各种设计模式,所以我们在学习计算机的时候,可以结合真实情况想想,现实生活中如果有类似的情况应该怎么解决呢?