千机游戏提供最新游戏下载和手游攻略!

为什么HTTPS协议比HTTP协议更安全?

发布时间:2024-08-22浏览:76

大家好,我是你们帅帅的盾叔,今天又是一个周五,很快啊,你们期待的周末就要来了!!

既然如此,我们今天就少整点晃眼的代码,来看点有兴趣的,走你!

不知道大家有没有注意到,我们以前浏览网页时候,浏览器上方显示的网址都是HTTP开头的,而不知道什么时候起,网页的开头都变成了HTTPS,那这就有意思了,毕竟一件事情不可能无缘无故的去改变,那么网址开头这个多出来的原因是什么呢?

答案是:原本的HTTP协议,它不安全!!

为了搞清楚HTTP和HTTPS协议他们各自的原理以及差异,盾叔特地找到了王老师,王老师对于我的问题也做细致的解答。

NO.1 什么是HTTP协议?

HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层。

HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC 2616 拆分成立六个单独的协议说明(RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235),通讯报文如下:

请求:

POST http://www.baidu.com HTTP/1.1Host: www.baidu.comConnection: keep-aliveContent-Length: 7User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36wd=HTTP

响应:

HTTP/1.1 200 OKConnection: Keep-AliveContent-Encoding: gzipContent-Type: text/html;charset=utf-8Date: Thu, 14 Feb 2019 07:23:49 GMTTransfer-Encoding: chunked<html>...</html>

NO.2 HTTP 中间人攻击

HTTP 协议使用起来确实非常的方便,但是它存在一个致命的缺点:不安全。

我们知道 HTTP 协议中的报文都是以明文的方式进行传输,不做任何加密,这样会导致什么问题呢?

下面来举个例子:

(1)盾叔在 Java 贴吧发帖,内容为我爱 java:

(2)被中间人进行攻击,内容修改为我爱 PHP:

(3)盾叔被群嘲

可以看到在 HTTP 传输过程中,中间人能看到并且修改 HTTP 通讯中所有的请求和响应内容,所以使用 HTTP 是非常的不安全的。

NO.3 防止中间人攻击

这个时候可能就有人说了,既然内容是明文那我使用对称加密的方式将报文加密这样中间人不就看不到明文了吗,于是如下改造:

(1)双方约定加密方式,如下图:

(2)使用 AES 加密报文,如下图:

这样看似中间人获取不到明文信息了,但其实在通讯过程中还是会以明文的方式暴露加密方式和秘钥,如果第一次通信被拦截到了,那么秘钥就会泄露给中间人(哦豁,完蛋),中间人仍然可以解密后续的通信,如下图:

那么对于这种情况,我们肯定就会考虑能不能将秘钥进行加密不让中间人看到呢?答案是有的,采用非对称加密,我们可以通过 RSA 算法来实现。

在约定加密方式的时候由服务器生成一对公私钥,服务器将公钥返回给客户端,客户端本地生成一串秘钥(AES_KEY)用于对称加密,并通过服务器发送的公钥进行加密得到。(AES_KEY_SECRET),之后返回给服务端。

服务端通过私钥将客户端发送的 AES_KEY_SECRET 进行解密得到 AEK_KEY,最后客户端和服务器通过 AEK_KEY 进行报文的加密通讯。

如下图:

可以看到这种情况下中间人是窃取不到用于 AES 加密的秘钥,所以对于后续的通讯是肯定无法进行解密了,那么这样做就是绝对安全了吗?

所谓道高一尺魔高一丈,中间人为了对应这种加密方法又想出了一个新的破解方案,既然拿不到 AES_KEY,那我就把自己模拟成一个客户端和服务器端的结合体。

在用户→中间人的过程中中间人模拟服务器的行为,这样可以拿到用户请求的明文,在中间人→服务器的过程中间人模拟客户端行为,这样可以拿到服务器响应的明文,以此来进行中间人攻击:

这一次通信再次被中间人截获,中间人自己也伪造了一对公私钥,并将公钥发送给用户以此来窃取客户端生成的 AES_KEY,在拿到 AES_KEY 之后就能轻松的进行解密了。

嗯。。。按这个思路,那盾叔这是被安排定了?

当然不是!

NO.4 什么是HTTPS协议?

HTTPS 其实是 SSL+HTTP 的简称,当然现在 SSL 基本已经被 TLS 取代了,不过接下来我们还是统一以 SSL 作为简称。

SSL协议其实不止是应用在 HTTP 协议上,还在应用在各种应用层协议上,例如:FTP、WebSocket。

其实 SSL 协议大致就和上一节非对称加密的性质一样,握手的过程中主要也是为了交换秘钥,然后再通讯过程中使用对称加密进行通讯。

如下:

这里只是一个简单的示意图,其实真正的 SSL 握手会比这个复杂的多,但是性质还是差不多,而且我们这里需要关注的重点在于 HTTPS 是如何防止中间人攻击的。

所以,对于HTTP和HTTPS这两个协议,大家都有所了解了吗?

这里再次感谢王老师的知识赞助~

每次我去找王老师,他都会跟我吐槽,天天工作有多忙,一个人干三个人的事儿,拿三个人的钱,看着很爽,但是累啊。

盾叔只能在旁边喊着666,嗨,看看,大佬说话就是不一样。

不过王老师有的话确实没毛病,现在网络安全行业的人才缺口非常之大,而且人才的输入和需求之间的差距还在逐年递增,所以这个行业拥有非常大的前景,而且对针对人群没有硬性的要求,只要想进入这个行业,多这个行业有兴趣,想要像这个方向发展,就都可以来。

网盾安全培训学院现开展线下公开体验课活动,好不好,能不能,可以先看过再说话!!

今天的内容就到这里咯,下课!!

用户评论

封锁感觉

这个游戏太烧脑了!我绞尽脑汁才理解 HTTPS 和 HTTP 的区别,原来 HTTPS 就像给网络数据加了个密锁,而 HTTP 就跟裸奔一样!

    有17位网友表示赞同!

丢了爱情i

玩了这款游戏后,我终于知道为什么在网上购物的时候要选择 HTTPS 网站了,因为这样才能保护我的个人信息不被偷窥!

    有6位网友表示赞同!

墨城烟柳

游戏难度有点高,不过好在游戏里有详细的解释,让我对 HTTPS 的安全性有了更深的理解,感觉学到了很多知识!

    有17位网友表示赞同!

棃海

这游戏太棒了!它用简单易懂的方式教会了我如何辨别安全网站,再也不用担心我的信息被泄露了!

    有20位网友表示赞同!

打个酱油卖个萌

游戏画面简洁,但内容丰富,让我对 HTTPS 协议有了新的认识,感觉很有意思!

    有11位网友表示赞同!

怅惘

这个游戏太有教育意义了!它让我明白了网络安全的重要性,以后上网要更加小心了!

    有20位网友表示赞同!

烟雨萌萌

玩了这款游戏后,我终于明白了为什么有些网站地址前面要加 "https",原来这是为了保障我们的信息安全!

    有11位网友表示赞同!

稳妥

游戏的关卡设计很有创意,让我在玩游戏的过程中不知不觉地学习了 HTTPS 的知识!

    有5位网友表示赞同!

弃我者亡

虽然游戏难度有点高,但我还是坚持玩了下去,因为我觉得这款游戏很有价值,它教会了我很多关于网络安全的知识!

    有18位网友表示赞同!

绝版女子

这款游戏非常适合那些对网络安全感兴趣的人,它不仅有趣,而且还能学到很多知识!

    有16位网友表示赞同!

该用户已上天

游戏界面简洁明了,操作也十分方便,非常适合新手玩家!

    有10位网友表示赞同!

命硬

游戏内容丰富,涵盖了 HTTPS 的方方面面,让我对 HTTPS 的理解更加深入!

    有5位网友表示赞同!

执拗旧人

这款游戏让我对网络安全有了全新的认识,原来网络安全并不像我想象的那么复杂!

    有6位网友表示赞同!

旧爱剩女

游戏里的角色设计很可爱,让我在玩游戏的同时也感受到了快乐!

    有18位网友表示赞同!

初阳

这款游戏非常适合用来科普网络安全知识,值得推荐给更多人!

    有5位网友表示赞同!

一别经年

玩了这款游戏后,我感觉自己对网络安全知识有了更深刻的了解,以后上网会更加小心!

    有11位网友表示赞同!

秘密

游戏里的关卡设计很有挑战性,让我在玩游戏的过程中不断提升自己的网络安全意识!

    有20位网友表示赞同!

慑人的傲气

这款游戏非常适合用来学习网络安全知识,它不仅有趣,而且还能帮助我们提高网络安全意识!

    有8位网友表示赞同!

不要冷战i

游戏的剧情设计很吸引人,让我忍不住想要继续玩下去!

    有11位网友表示赞同!

暮染轻纱

这款游戏非常适合用来科普网络安全知识,它不仅有趣,而且还能帮助我们了解网络安全的相关知识!

    有13位网友表示赞同!

热点资讯