2017年10月27日,github突然无法访问......
数字签名显示这样↓
恢复之后的证书↓
可以看到被黑的github证书的签发者名称不一样了,为什么会这样呢?是因为github被中间人攻击了!
之前一期我们讲了http为啥不安全以及传统的对称加密和非对称加密怎么应对↓
这期我们讲讲https也是不安全的之中间人攻击!(终于接上了
为什么证书被修改就被黑了?
1.https保证传输安全的原理
在https的传输过程中,需要将公钥发送给客户端,但存在以下几个问题:
1.客户端要如何获取到服务器的公钥?
2.如果公钥在发送过程被中间人拦截,然后中间人发送自己的公钥给客户端,客户端该如何确认?
因此https通过一个权威的CA(Certificate Authority)证书中心,用于颁发证书,证书用于声明这个公钥确实是服务端的。
那么github是怎么被黑的呢?我们根据数字证书截图来看,是中间人伪造了数字证书。
2.github是怎么被黑的?
1.客户端访问重定向到黑客
2.黑客假装是服务器使用伪造证书与客户端建立https连接
3.黑客伪造成客户端与服务器连接
4.最后黑客根据服务器返回的消息再发送给客户端
举个栗子:
老王和老李都喜欢小芳,老王想2.14日约小芳吃饭顺便表白
1.老王提前一个月写信给小芳:2.14日8:00在黑天鹅饭馆吃饭
2.老李截获了老王的信,将8:00改成了18:00,字迹还是老王的字迹,但时间已经不对了,再把信给小芳
3.小芳收到信后给老王回信:我收到你的信啦,我会在的
4.老王收到小芳的信很开心,认为自己有戏,如约来到了黑天鹅饭馆,等了5个小时小芳还没来,心灰意冷走掉了
5.老李当机立断告诉老王,小芳告诉他是故意耍老王,她对老王一点意思都没有
这个栗子中的老王即是客户端,给小芳写的信是要传递的消息,小芳是服务器,老李是中间人黑客,最后老李伪装成小芳告诉老王即是中间人攻击的最终目的。
中间人攻击是双面人,需要对客户端伪装成服务器,对服务器伪装成客户端,最后造成客户端接收到的消息其实是中间人要发出的消息的效果。
这样用户在客户端看到的是相同域名的网站,但浏览器会提示证书不可信(第一张截图的浏览器就识别出了不可信哦~),用户不点击继续浏览就能避免被劫持的~
下一期我将手把手教你中间人攻击,怎么伪造证书~喜欢的话点个关注吧~啾咪~
领取专属 10元无门槛券
私享最新 技术干货