连锁协议(Interlock Protocol)

在网络通信中,双方通信时最怕的就是出现中间人,这个中间人可以发动MITM(中间人攻击),从而使信息泄露。

在我的通讯软件设计过程中就考虑到了这个问题。放眼已有的做法,最流行的要数具有PKI/PMI的SSL了,著名的HTTPS就是利用了可信任的机构作为认证中心,双方在通信时通过判定对方的证书是否是Trust机构颁发的证书来判断是不是自己要找的对方。从而有效预防MITM。

不过,获取这个证书是要钱的,这比较麻烦~我一个小应用并不适合弄这个。于是我又谷歌来查找其它解决方案。

相对有效的方法有2个,一个是延迟检测,另一个是连锁协议。

本文主题是连锁协议,不过还是来简单说下延迟检测:使用复杂加密哈希函数进行计算以造成数十秒的延迟;如果双方通常情况下都要花费20秒来计算,并且整个通讯花费了60秒计算才到达对方,这就能表明存在第三方中间人。(这段话摘抄自WikiPedia。实际上,我还没能理解这段话的意思,使用程序也没能建立起延迟测试的模型。只好暂时搁置,以后再来研究。)

对于连锁协议,就是加密数据分段发送,双方发送加密数据的前半段后,中间人由于无法解密数据从而无法MITM,所以中间人要么不攻击要么构造全新消息分别发给通信双方,但是当双方发送后半段数据时,中间人无法撤销前半段数据,由于前后消息不一致,导致双方察觉出存在中间人。

不过当然,中间人可以不这么做,中间人如果十分了解通信双方,那么可以伪造身份直接跟双方交流,不过难度明显要大得多,且十分容易出破绽。

从wiki上查出,连锁协议是目前唯一不需要可信任机构的安全通信方法,不过实际上从上文关于延迟检测的叙述中可以看出,它也不需要可信任机构,只不过我还不是很理解它的含义,也无法构造出通讯模型。

好了,这次就说这么多,快过年咯,我在此祝所有来访者新年快乐!~

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注