2013年,雅虎在中国大陆遭受SSL中间人攻击,浏览器发出证书错误警告,影响各个国家的Yahoo主站。
2020年,著名代码托管平台Github疑遭受SSL中间人攻击,SSL证书被替换为一个填写了QQ邮箱的自签名证书,浏览器出现安全警告。
中间人攻击事件屡见不鲜,那到底什么是中间人攻击呢?因为中间人攻击是发生在通信过程中的,所以要想明白什么是中间人攻击,首先必须了解加密通信的过程。
加密通信
假设我们回到没有计算机的年代,人们之间的通信,只能通过寄信的方式进行。使用普通的写信收信很不安全,于是小蔚开了一家特别的邮局,专门保证信件的安全,信的内容不会被篡改和窃取。
要怎么保证信件的安全性呢?小蔚想到了一个好办法。
首先,进一批安全性很高的锁,再进一批无法被暴力破解的铁箱子。接着把锁和箱子放在门口。
如果小红想和某一个人通信,小红要先买一把锁,这把锁配有两把钥匙。来到加密邮局门口后,将其中一把钥匙和锁放进铁箱子里,再用小蔚提供的锁(公钥)锁上。
因为锁是小蔚提供的,除了小蔚,其他人是没办法将铁箱子打开的。
小红可以将铁箱子邮寄任何人了。拿到铁箱子的人,只需要来找小蔚打开箱子,就能建立与小红之间的通信,
假设小红将箱子交给了小明,小明来找小蔚打开铁箱子,取出小红的钥匙(密钥)和锁后,写下想和小红说的话,放进铁箱子里即可。
接下来,小蔚会用小红提供的锁,将箱子锁上。
当箱子寄回去给小红后,小红只需要用钥匙将锁打开,就能看到信的内容了。想要寄信的话,把信放进去,重新锁上寄回即可。
以上就是加密通信的过程,中间人攻击又是怎么回事呢?
中间人攻击
有一个惯犯叫张三,整天在小蔚加密邮局门口晃悠,他找准了时机,将加密邮局门口的锁,偷偷换成了假锁。
有一天他遇到了前来寄信的小红,他骗小红说,自己是小蔚加密邮局的工作人员,只要把东西给他就可以了。
小红信以为真,将一把锁和钥匙交给了张三。张三却把锁和钥匙留下,将自己的一把锁和钥匙交给小蔚加密邮局。