首页 > 技术文章 > 超简单的计算机安全 - 网络劫持

aa3935919 2021-01-30 14:46 原文

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

本文章来自腾讯云 作者:python学习教程

想要学习Python?有问题得不到第一时间解决?来看看这里“1039649593”满足你的需求,资料都已经上传至文件中,可以自行下载!还有海量最新2020python学习资料。
点击查看
在这里插入图片描述

1 张三被勒索

张三去某地旅游,在一个小酒店入住。酒店很便宜,一天只要80元,但看着有点像黑店啊!
在这里插入图片描述
不过张三是谁,闯荡江湖这么多年,who怕who啊!

晚上百无聊赖,他连上酒店的wifi,先上银行网站给爸妈转了1000块钱,这是这个月的生活费。张三是个孝顺儿子!

然后他鬼使神差的打开了一个小电影网站,欣赏了几个动作片,放松一下。

第二天结账的时候,账单吓了张三一跳:1800!

什么?明明是80啊!老板不紧不慢的说:其中1720是保密费。你是不是上了一些不该上的网站?然后老板展示了几张图片,正是张三看过的动作片中的截图。
在这里插入图片描述
张三很火,但是也很担心:勒索1800块钱是小事,我昨天还做了银行转账,不会把我的账号密码拿去,把我的钱都给转走了吧?里面还有今年辛辛苦苦赚来的2万多块钱!

打工人不容易啊!

他赶紧拿出手机,关掉wifi连接,用流量查了一下余额。还好,钱还在!

为什么老板因为小电影勒索他,而不窃取他的银行卡密码呢?

原因是:张三上的银行网站使用了HTTPS加密:

在这里插入图片描述
而小电影网站没有用HTTPS,所以可以被酒店的WIFI捕获所有发送的信息。

没有使用HTTPS的网站类似这样:

在这里插入图片描述
我也很震惊,这个china.com竟然没有HTTPS。实际上很多正规的小电影网站都是HTTPS的,不信你去看看。

这样的真实事情,每天都发生在世界的各地!

你永远不知道你会不会成为下一个目标。所以认真读完这篇文章,你就不会成为受害者。

2 中间人劫持

张三正是遭受常见的网络陷阱:中间人劫持。大致过程是这样的:

在这里插入图片描述
张三通过酒店WIFI上网的过程是这样的:

浏览器发送消息给酒店WIFI
酒店WIFI发送消息给网站。
网站把内容发送给WIFI。
WIFI把网站内容发给浏览器。
在这个过程中WIFI就是中间人。实际上浏览器和网站中间还有很多中间人,比如运行商。

网站如果没有HTTPS网站,发送的信息都明文的,类似这样的文字:
在这里插入图片描述
传了什么消息,中间人看的一清二楚。一旦遭受中间人劫持,中间人可以做很多事情:

监控你的行为,然后勒索你,就像张三这样的情况
在这里插入图片描述
篡改你的发送信息:
你本来要给李四转账1000
中间人修改成给他自己转账10万。
在这里插入图片描述
记录你的银行卡密码,朋友聊天记录等
请大家注意,这里要害你的不是网站,而是中间人。中间人不光害你,他们也害网站。所以你和网站都是受害者!

如果你上了黑心网站,诈骗你的钱财,那是网站的问题,不是中间人的问题,那是另外一套诈骗方式了。

为了解决中间人劫持的问题,网站可以使用HTTPS,强迫浏览器和网站的通信加密。这个过程变成了这样:

在这里插入图片描述
虽然信息发送还是要经过酒店WIFI,但发送的都是密文,酒店WIFI看不懂,只能简单的帮你转发,什么事情都做不了。

如果你是冲着小电影来的吃瓜群众,就记住下面的结论:

使用公共WIFI的时候尽量不要上非HTTPS的网站,地址栏带小锁的网站才是安全的。
如果你必须得上,不要传敏感的信息。假设WIFI的老板知道你的一切网络活动。
在家是不是就可以不用在意HTTPS?还是要注意!虽然WIFI是你的,但你和网站中间仍然有很多中间人,比如运行商。
这真的很重要,请转发给需要的人,让社会少一分伤害!

技术原理
大致的原理前面已经讲清楚了,简单来说就是加密。但这里还有很多细节。

  1. 用同一套密码做加密 - 对称加密
  2. 在这里插入图片描述
    浏览器和服务器拥有同一套秘钥来加密和解密。浏览器发送消息之前先加密,服务器收到密文后用同一套秘钥解密。

但这里的问题是:

浏览器怎么知道秘钥是什么?
如果浏览器可以从网站获取秘钥,那中间人也可以轻松获取秘钥!
所以为了加密要先解决秘钥的交换问题。

  1. 用非对称加密方式协商密码 - 公钥加密
    还好有数学家研究出了一个加密算法,叫做公钥加密。公钥加密有两把钥匙:

一把是公开的,所有人都可以获取
一把是私有的,只有网站自己知道
这两把钥匙的神奇之处在于:

用公开钥匙加密,只有私有钥匙才能解密
用私有钥匙加密,只有公开钥匙才能解密
这样就可以协商密码了:

在这里插入图片描述
浏览器从网站获得网站的公钥
浏览器自己生成一个密码,用公钥加密,发送出去
密文传到WIFI上的时候,WIFI没有私钥,无法解开
WIFI只能乖乖的把密文原封不动的传给网站
网站有私钥,可以解开,这样浏览器和网站就成功交换了密码
从此,它们用这个密码加密数据,中间人无计可施
当然实际的密码交换过程比这个要复杂一些,但核心原理就是这样的。

3. 数字证书和CA认证机构

但这事还没完!中间人可以最开始就冒充网站,把它自己的公钥给浏览器:
在这里插入图片描述
浏览器试图获取某小电影网站的公钥
经过WIFI的时候,WIFI直接把自己的公钥给了浏览器。
浏览器用WIFI的公钥加密,发送密码。
WIFI用自己的私钥解密,获得了密码。从此浏览器发送的消息,WIFI都知道了。
WIFI把篡改后的信息,再用网站的公钥加密和网站沟通。
为了解决这个问题:

公钥必须得监管!不能随便谁的公钥都可以。
生成了公钥后,要先找监管机构盖个章,生成一个数字证书,这些机构被称为CA机构。世界上被认可的CA机构是有限的。他们签发证书一般都是收费的。
当浏览器获得一个公钥时,看看这个公钥是谁签发的。如果是它不认识的机构签发的,就提醒用户:这个证书是无效的。
在这里插入图片描述
这样中间人发来的公钥是无效的,浏览器一下就识别出来了。
所有电脑上都维护了自己信任的CA机构:

在这里插入图片描述
我们也可以手工修改添加自己信任的机构:比如把自己的公司加入到信任列表中去。这样自己公司可以签发证书。

如此,基本上就彻底避免了中间人攻击。

这真的很重要,请转发给需要的人,让社会少一分伤害!

推荐阅读