< 返回

为什么 https 比 http 更安全?

2023-07-22 00:00 作者:shiyi 阅读量:1501

http 和 https 在许多网站都有用到,但是现在都是极力倡导使用 https ,究其原因就是 http 的安全性不够高,在数据传输过程中可能会遭到黑客窃取。

本篇文章会先讲解 http 缺点,然后再讲解 https 是如何解决这些问题来保证安全的。

 

一、http 缺点

通信使用明文(不加密),内容可能会被窃听

http (HyperText Transfer Protocol),即超文本运输协议,是实现网络通信的一种规范。

http 本身不具备加密的功能,因此其在通信过程是使用明文方式发送的。这种方式就有可能造成通信过程中信息会被破解获取。

例如:一群佩奇在路上坐着敞篷大货车,路过的人直接能看到车里都是佩奇,信息完全暴露。

 

不验证通信方的身份,有可能遭遇伪装

http 协议在请求和响应中不会对通信方进行确认。这就存在你访问的服务器有可能不是你真正指定的服务器,拿到返回响应的客户端可能不是一开始发起请求的客户端。  

例如:母鸡孵蛋,我偷偷把鸡蛋换成鸭蛋,母鸡照样在那孵,不会有任何的怀疑。

 

无法证明报文完整性,有可能信息已遭篡改

http 协议无法证明通信的报文完整性,在请求和响应发出后,在传输过程中内容如果遭到篡改,也没有办法感知到。

 

 

例如:你从某个网站下载内容,无法确定你客户端下载的文件和服务器中存放的文件是否一致,有可能文件在传输过程中被篡改为其他的内容。

 

二、什么是 https ?

 

http + 加密 + 认证 + 完整性保护 = https

 

https 实现机密性的做法就是 “加密”,将需要传递的消息进行加密,只有拥有“钥匙”的人才能拿到原始数据。  

这个钥匙我们叫做 “密钥”,加密后的叫做 “密文”。通过密钥来还原数据的过程叫 “解密”,加密解密的整个操作过程就是 “加密算法”。  

加密可以分为两种形式,对称加密和非对称性加密。

 

对称加密

对称加密指的是加密和解密用同一个密钥。但是在通信之前,客户端和服务端是不会有这样同一把密钥的,需要其中一方将密钥发送给对方。

 

在整个传输过程没有任何验证操作,所以黑客也可以截取到这把密钥从而破译出加密的内容。所以纯对称加密是不安全的。

 

非对称加密

 

非对称加密指的是加密和解密用不同的密钥。它有两个密钥,一个叫 “公钥”,一个叫“私钥”。两个钥匙是不同的,公钥可以给任何人使用,但私钥必须严格保密。    

公钥加密的数据只能由私钥解密,反过来,私钥加密后也只能用公钥解密。   

 

网站秘密保管私钥,在网上随意分发公钥,如果你想登录网站,只要用公钥来加密即可,密文只能由私钥持有者才能解密,即使数据传输过程中被黑客获取到,他也无法破解。

 

混合加密

非对称性加密虽然安全性高,但因为它都是基于复杂的数学运算,速度就会很慢,虽然保证了安全,但通信速度太慢,实用性也会大打折扣。  

混合加密就是在通信刚开始的时候使用非对称算法,来解决对称加密密钥交换安全性问题。  

 

对方拿到密文后用私钥解密,拿到对称密钥,这样双方就实现了对称密钥的安全交换,后续就不再使用非对称加密,全都使用对称加密。

 

 

 

这样混合加密就实现了安全和性能兼顾,实现了可靠的机密性。

 

 

三、为什么不全部使用 https ?

通过前面的介绍,https 的安全性比 http 强太多,但是依然会有很多网站没有全部使用 https。

究其原因就是加密通信会消耗更多的CPU及内存资源,如果每次通信都进行加密,会消耗相当多的资源。  

因此如果是非敏感信息可以使用 http 通信,包含个人信息等敏感数据,才利用 https 加密通信。

使用 https 还有一个问题就是需要证书,而证书必须向认证机构(CA)去购买,这也是一笔不小的费用。

联系我们
返回顶部