从无法访问GitHub到中间人攻击

2023-11-20 13:30

本文主要是介绍从无法访问GitHub到中间人攻击,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

从昨天(2020-03-26)开始,国内多地出现了无法访问启用HTTPS的Github Pages、GitHub主站、京东等站点的情况,涉及电信、移动等多个运营商。上述站点的证书都被一个未被信任的自签名的证书所替代,因此被浏览器所拦截。

在这里插入图片描述

在此事件中,攻击方仅替换了目标站点的证书,目标站点仍为实际的IP。对于此事件的具体情况,我们在这就不细谈了,有兴趣的朋友可参考网络上的相关文章。本文主要要说一下和事件相关的中间人攻击(Man-in-the-middle attack, MITM攻击)。

什么是中间人攻击

首先,我们使用一个通俗的例子介绍一下中间人攻击:

李雷喜欢班上的女同学韩梅梅,于是便写了封情书请同学转交给给韩梅梅,但是同学李狗蛋偷偷把情书的内容改成了“吔屎啦你”,于是一段美好的姻缘没来得及开始就已经结束了。

对于“李雷”而言,他所知的是情书已经给了“韩梅梅”;对于“韩梅梅”而言,她所知的是“李雷”给她一封写有“吔屎啦你”的信。这就是一个典型的中间人攻击的例子,作为被信任的中间人“李狗蛋”,他可以在“李雷”以及“韩梅梅”不知情的情况下对书信做出修改。

我们看一下维基百科中关于中间人攻击概念的说明:

中间人攻击在密码学和计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。

在这里插入图片描述

简单的说,中间人攻击就是可以在通信双方不知情的情况下,监听、拦截、修改通信的信息。当前有许多的方法可以实现通信数据的拦截,例如在目标用户终端安装病毒进行拦截等。

以HTTPS为例的中间人攻击

例如我们访问某一个使用HTTP协议的网站,通信的数据都是通过明文传输,中间人容易伪造通信的内容。HTTPS的出现使得通信的安全性大幅度提高,但是,HTTPS也不是万能的。如同本次针对GitHub等站点的攻击,攻击方替换了站点的证书,但由于该证书为自签名证书而被拦截。若攻击方替换的证书为可信的证书,作为中间人便可顺利的对通信进行控制。下面是一个针对HTTPS攻击的例子。

黑客通过一些手段在用户终端安装伪造的CA根证书并劫持了用户的DNS。用户A需要在https://www.bank.com上转账10000元至用户B的账户上,下面是转账的通信过程(简化了HTTPS的具体流程):

  1. 用户A通过https://www.bank.com域名访问中间人伪造的站点,因为本地安装了攻击方签发的伪造根证书,客户端成功验证站点的证书;
  2. 用户A提交转账请求,发送数据{ account: 'user_b', amount: 10000.00 },数据通过伪造的证书加密并提交至中间人服务器;
  3. 中间人服务器使用伪造的证书解密数据并修改为{ account: 'hacker', amount: 10000.00 },并通过真实的证书提交至银行服务器;
  4. 银行服务器通过真实证书解密数据,并将用户A的余额转账至攻击方的账户中。

通常情况下,CA在签发证书前需要验证请求方是否拥有该域名。但用户端安装了不可信的CA证书,攻击方便可通过其伪造证书。对于普通用户而言,尽可能不要安装第三方提供的根证书,避免此情况发生。

几种防御中间人攻击的方法

对于站点拥有者:

  • 使用HTTPS而非HTTP,并开启HSTS
  • 对通信的数据进行加密或校验
  • 通信延迟测试[2]

对于普通用户:

  • 安装防火墙及杀毒软件
  • 谨慎使用不熟悉的网络,尤其是开放网络
  • 谨慎访问浏览器提示证书错误的站点
  • 不随意安装证书

参考资料

  1. 中间人攻击 - Wikipedia
  2. 黎松, 段海新, 李星. 域间路由中间人攻击的实时检测系统[J]. 清华大学学报(自然科学版), 2015, 55(11): 1229-1234

这篇关于从无法访问GitHub到中间人攻击的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/394953

相关文章

速盾高防cdn是怎么解决网站攻击的?

速盾高防CDN是一种基于云计算技术的网络安全解决方案,可以有效地保护网站免受各种网络攻击的威胁。它通过在全球多个节点部署服务器,将网站内容缓存到这些服务器上,并通过智能路由技术将用户的请求引导到最近的服务器上,以提供更快的访问速度和更好的网络性能。 速盾高防CDN主要采用以下几种方式来解决网站攻击: 分布式拒绝服务攻击(DDoS)防护:DDoS攻击是一种常见的网络攻击手段,攻击者通过向目标网

如何提高 GitHub 的下载速度

如何提高 GitHub 的下载速度 文章目录 如何提高 GitHub 的下载速度1. 注册账号2. 准备好链接3. 创建仓库4. 在码云上下载代码5. 仓库更新了怎么办 一般来说,国内的朋友从 GitHub 上面下载代码,速度最大是 20KB/s,这种龟速,谁能忍受呢? 本文介绍一种方法——利用“码云”,可以大大提高下载速度,亲测有效。 1. 注册账号 去“码云”注册一

Github连接方式

打开Linux中git的配置文件: /home/username/git/MyRepository/.git/config [core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = true[remote "origin"]fetch = +refs/heads/*:refs/remot

GitHub每周最火火火项目(9.2-9.8)

项目名称:polarsource / polar 项目介绍:polar 是一个开源项目,它是 Lemon Squeezy 的替代方案,并且具有更具优势的价格。该项目的目标是为开发者提供一种更好的选择,让他们能够在追求自己的热情和兴趣的同时,通过编码获得相应的报酬。通过使用 polar,开发者可以享受到更实惠的价格,同时也能够更自由地发挥自己的创造力和技能。 项目地址:https://github.

一次生产环境大量CLOSE_WAIT导致服务无法访问的定位过程

1.症状 生产环境的一个服务突然无法访问,服务的交互过程如下所示: 所有的请求都是通过网关进入,之后分发到后端服务。 现在的情况是用户服务无法访问商旅服务,网关有大量java.net.SocketTimeoutException: Read timed out报错日志,商旅服务也不断有日志打印,大多是回调和定时任务日志,所以故障点在网关和商旅服务,大概率是商旅服务无法访问导致网关超时。 后

修改Linux Samba配置,Windows无法访问问题解决

1.起初Linux Samba配置为public,无密码要求,后来想改成需要账号密码的形式。 在smb.conf中添加valid users = test并且执行sudo sudo smbpasswd -a test  添加test Samba账户。 重启Samba服务,sudo service smbd restart   2.使用Windows访问Samba,的确弹出了输入用户,密码,

Node.js和vue3实现GitHub OAuth第三方登录

Node.js和vue3实现GitHub OAuth第三方登录 前言 第三方登入太常见了,微信,微博,QQ…总有一个你用过。 在开发中,我们希望用户可以通过GitHub账号登录我们的网站,这样用户就不需要注册账号,直接通过GitHub账号登录即可。 效果演示 注册配置 GitHub 应用 1.首先登录你的GitHub然后点击右上角的头像->点击进入Settings页面 2.在

将你的github仓库设置为web代理

将你的github仓库设置为web代理 废话不多说,直接上步骤 废话不多说,直接上步骤 创建一个仓库,上传静态web。 2. 设置仓库的 page 1)点击 “Settings” 如图设置

GitHub每日最火火火项目(9.7)

项目名称:polarsource / polar 项目介绍:polar 是一个开源的项目,它是 Lemon Squeezy 的替代方案,具有更优惠的价格。该项目旨在让开发者能够凭借自己的热情进行编码并获得报酬。通过使用 polar,开发者可以更轻松地实现自己的创意和项目,并从中获得收益。 项目地址:https://github.com/polarsource/polar项目名称:psf / bla

Web安全之XSS跨站脚本攻击:如何预防及解决

1. 什么是XSS注入 XSS(跨站脚本攻击,Cross-Site Scripting)是一种常见的Web安全漏洞,通过注入恶意代码(通常是JavaScript)到目标网站的网页中,以此在用户浏览网页时执行。攻击者可以通过XSS获取用户的敏感信息(如Cookie、会话令牌)或控制用户浏览器的行为,进而造成信息泄露、身份冒用等严重后果。 2. XSS攻击类型 2.1 存储型XSS 存储型XS