导读:HTTP是一个优秀的通信协议,不过事物皆具有双面性,该协议也是有不足之处,大概有以下几点:
- 使用明文传输,可能会被窃取不安全
- 不验证通信方身份
- 无法证明报文的完整性,证明不了报文是否被修改
HTTP协议本身是没有加密功能,所以无法对请求和响应等内容加密 。HTTP报文均采用明文形式,数据包在网络间传输很容易就被人窃取,如使用抓包工具(Wireshark)等 。在对数据包进行抓取后进行分析,由于报文是以明文形式传输,如果内容是关于如个人信息等重要隐私则可能会被他人获取后所利用,造成损失 。
二、对内容进行加密
对内容加密是一种保护信息的好方法,HTTP是没有加密机制的,所以需要借助第三方来帮助实现加密 。对内容加密的方式有很多如:
- SHA安全散列算法
- MD5信息-摘要算法
- BASE64(BASE64Encoder、BASE64Decoder类)
- RSA非对称加密算法
- DES等
三、只对内容进行加密的不足之处
- 对于内容的加密并不能完全地保证信息的安全,因为即使对内容进行加密但数据包还是可以被窃取的,并且加密内容依然很有可能被解密出来 。
- HTTP协议通信中请求和响应是不会对通信方进行确认的,所以可能会遭遇身份伪装 。如发送的服务器是否就是真的目标主机、响应是否返回到真实发出请求的客户端等 。
- 加密之后的报文虽然安全性提高了,但是还是证明不了报文内容是否被修改过 。
三、什么是SSL和TSL?
在讨论HTTPS之前得先了解下SSL和TSL协议
文章插图
【HTTPS是怎么保证网络通信安全的】
- SSL:安全套接层,位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层 。
- TSL:安全层传输协议,用于两个应用程序之间提供保密性和数据完整性 。该协议由两层组成:TLS记录协议和TLS握手协议 。
四、HTTPS基础概念
HTTPS并不算是一个新协议,是将HTTP协议通信接口部分用SSL和TSL协议代替 。如下图所示:
文章插图
解析:从最初HTTP与TCP直接通信转变为HTTP先与SSL通信,之后SSL再与TCP通信 。可以理解为HTTP加多了层SSL协议外套就变为了HTTPS 。下面,通过一条公式来表达HTTPS:
HTTP + 加密 + 认证 + 完整性保护 = HTTPS五、HTTPS是如何进行通信的?
概述:HTTPS通信过程结合了对称加密和非对称加密两种方法 。HTTPS服务端在连接建立SSL通信时先会将自身的公钥发送给客户端 。客户端拿到公钥后通过非对称加密与服务端协商数据传输通道的对称加密密钥 。一旦双方协商出会话密钥,则后续的数据通讯就会一直使用基于该会话密钥的对称加密算法了 。
文章插图
具体流程
- 客户端发送报文开始SSL通信 。
- 服务端可以进行SSL连接时就会发送应答报文给客户端 。
- 接下来服务端发送Certificate报文(包含公开密钥证书)给客户端 。
- 最后服务端发送通知报文通知客户端 。
- 客户端先生成Pre-master secret随机密码,并以包含Pre-master secret且使用公钥加密的报文响应服务端 。
- 客户端继续发送报文提示服务器说接下来的所有通信都采用Pre-master secret密钥加密 。
- 客户端发送Finsh报文(该报文包含连接至今所有的整体校验值)
- 服务器也重复6 7步骤发送同样的报文,当Finsh报文交换结束后SSL连接算是建立完成 。
- 接下来就是进行HTTP请求了,同时通信会受到SSL的保护 。
- HTTPS比HTTP通信慢
- 导致客户端和服务器负载增强
- 购买证书需要开销
推荐阅读
- 梦见一窝小狗崽很可爱 梦见一窝小狗是什么预兆
- 淘会员每单返利90%是真的吗 淘宝特价版返现
- 茶叶蛋煮多久茶叶蛋怎么煮入味
- 神经衰弱的食疗方法是什么
- 酒精肝食疗方法是什么
- 茶叶蛋用红茶还是绿茶好多人弄错了
- 10种危险的食物搭配,吃出的全是疾病!
- 孕妇能吃毛血旺吗,要慎重
- 枸杞配一宝,皮肤一天比一天好
- 猪心炖什么比较补,营养高