2020年3月26日星期四

Github Pages疑被中间人攻击

  今天,有很多中国网民反馈,从中国的IP访问Github Pages会加载一个无效的证书,使用国外的IP访问则加载正常的证书,疑似该域名遭到了中间人攻击。

  中间人攻击(英语:Man-in-the-middle attack,缩写:MITM)在密码学和计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的Wi-Fi 无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入这个网络)。

  一个中间人攻击能成功的前提条件是攻击者能将自己伪装成每一个参与会话的终端,并且不被其他终端识破。中间人攻击是一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信任的数字证书认证机构颁发,并且能执行双向身份认证。

  简而言之,所谓的中间人攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。

Github Pages疑被中间人攻击

  pages.github.com的IP地址解析并未出现问题,从中国地区解析的IP为185.199.111.153,是属于Github的IP地址。

  打开这个不受信任的证书,显示该证书的颁布者是[email protected]

Github Pages疑被中间人攻击

Github Pages疑被中间人攻击

  建立安全的HTTPS通讯,可防止中间人攻击,这需要以下步骤:

  服务端配置正确了对应的安全证书

  客户端发送请求到服务端

  服务端返回公钥和证书到客户端

  客户端接收后会验证证书的安全性,如果通过则会随机生成一个随机数,用公钥对其加密,发送到服务端

  服务端接受到这个加密后的随机数后会用私钥对其解密得到真正的随机数,随后用这个随机数当做私钥对需要发送的数据进行对称加密

  客户端在接收到加密后的数据使用私钥(即生成的随机值)对数据进行解密并且解析数据呈现结果给客户

  SSL加密建立