首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在酒店看小电影,他被勒索了1720元,懂点HTTPS真的很有必要!

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. 用非对称加密方式协商密码 - 公钥加密

还好有数学家研究出了一个加密算法,叫做公钥加密。公钥加密有两把钥匙:

一把是公开的,所有人都可以获取

一把是私有的,只有网站自己知道

这两把钥匙的神奇之处在于:

用公开钥匙加密,只有私有钥匙才能解密

用私有钥匙加密,只有公开钥匙才能加密

这样就可以协商密码了:

浏览器从网站获得网站的公钥

浏览器自己生成一个密码,用公钥加密,发送出去

密文传到WIFI上的时候,WIFI没有私钥,无法解开

WIFI只能乖乖的把密文原封不动的传给网站

网站有私钥,可以解开,这样浏览器和网站就成功交换了密码

从此,它们用这个密码加密数据,中间人无计可施

当然实际的密码交换过程比这个要复杂一些,但核心原理就是这样的。

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

但这事还没完!中间人可以最开始就冒充网站,把它自己的公钥给浏览器:

浏览器试图获取某小电影网站的公钥

经过WIFI的时候,WIFI直接把自己的公钥给了浏览器。

浏览器用WIFI的公钥加密,发送密码。

WIFI用自己的私钥解密,获得了密码。从此浏览器发送的消息,WIFI都知道了。

WIFI把篡改后的信息,再用网站的公钥加密和网站沟通。

为了解决这个问题:

公钥必须得监管!不能随便谁的公钥都可以。

生成了公钥后,要先找监管机构盖个章,生成一个数字证书,这些机构被称为CA机构。世界上被认可的CA机构是有限的。他们签发证书一般都是收费的。

当浏览器获得一个公钥时,看看这个公钥是谁签发的。如果是它不认识的机构签发的,就提醒用户:这个证书是无效的。

这样中间人发来的公钥是无效的,浏览器一下就识别出来了。

所有电脑上都维护了自己信任的CA机构:

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

这样基本上就彻底避免了中间人攻击。

如果对技术细节感兴趣,可以看我下面两篇文章:

我是麦叔,陪你学编程,陪你走职场的路!

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210105A02HB400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券