图解HTTP笔记之第七章:HTTP缺点和HTTPS

HTTP缺点和HTTPS

倒霉的我吧体检手册弄不见了,哎,倒霉,不说了,写笔记,Http缺点如下:

  • 通信使用明文(不加密),内容可能会被窃听
    TCP/IP协议族分别属于传输层和网络层,由于它们的工作性质导致通信内容在所有的通信线路上都会遭遇到窥视,不管是加密的还是不加密的,都有可能被窃取,只是加密的可能让人无法破解报文信息的含义。常用的抓包工具比如wireshark.

解决方法就是把通信加密或者把内容加密,http协议无加密机制,但可以使用SSL安全套接层和TLS安全层传输协议组合使用,加密通信内容。与SSL组合使用的就称为HTTPS,SSL使用了证书,证书由值得信任的第三方机构颁发,可以确认同通信方的身份。
- 不验证通信方的身份,因此有可能遭遇伪装
http协议无加密机制,那么发送请求的就一定是客户端吗?响应的就一定是我们所期望的那台服务器的响应报文吗?不一定,所以不验证通信方的身份就可能会被伪装,而且有时我们希望只给特定用户返回。无法拒绝无意义的请求,有可能出现海量请求下的DOS攻击
- 无法证明报文的完整性,所以有可能已遭篡改
接受到的内容有可能中途已经被篡改(MITM攻击),那么接收到的内容可能有误,HTTP协议无法证明通信报文的完整性,可以使用MD5值和SHA-1等散列值校验方法但如果MD5和PGP本身被改写,那么还是判断不了


HTTP+加密+认证+完整性保护=HTTPS

定义:添加了加密和认证机制的HTTP称为HTTPS,HTTPS是身披SSL外壳的HTTP,并非是应用层的一种新协议,只是HTTP通信接口部分用SSL和TLS协议代替而已。HTTP(应用层)和TCP(传输层)通信时,若使用了SSL就变成了HTTP先和SSL通信,SSL在和TCP通信。
这里写图片描述
SSL是独立于HTTP的协议,其他运行在应用层的SMIP均可配合HTTP协议使用,SSL是世界上应用最为广泛的安全技术之一。

SSL加密

SSL加密采用公开密钥加密,算法公开,加密秘钥保密,加密解密都需要秘钥,当秘钥被攻击时加密就失去了意义。

  • 共享秘钥加密(对称秘钥加密)
    当加密解密用同一个秘钥时就为对称加密,但当传输秘钥时被窃取,此时就失去了意义。
  • 公开秘钥加密(非对称秘钥加密)
    一把私有秘钥一把公开秘钥,公开秘钥加密,私有秘钥解密。
HTTPS使用混合加密的机制,即采用共享和公开秘钥加密的结合体,在交换秘钥环境采用公开加密方式,之后建立通信交换报文阶段采用共享秘钥加密。通过采用数字证书(EVSSL)来证明公开秘钥是预想的那台服务器所发行的证书。
  • 客户端证书
    客户端证书是相当于服务器端证书一样的存在,但是客户端证书只能证明客户端实际存在,不能用来证明用户本人的真实有效性,只要获得了安装有客户端证书的计算机使用期限,也就同时意味着同时拥有了客户端证书的使用权限。

HTTPS的安全通信机制

  • 第一步:客户端发送报文开始SSL通信,报文包含客户端支持的SSL指定版本加密组件列表
  • 第二步:服务端可进行SSL通信时,在报文中包含SSL版本以及加密组件(加密组件的内容是从客户端筛选出来的)
  • 第三步:服务器发送Certificate(证书)报文,报文包含公开秘钥证书
  • 第四步:服务器发送报文通知客户端,最初阶段SSL握手协商结束。
  • 第五步:客户端在第一次握手结束后以Client Key Exchange报文做为回应,报文中包含Pre-master-secret的随机密码串,报文用第三步中的公开秘钥加密。
  • 第六步:客户端继续发送报文(Change Cipher Spec)提示服务器在此之后将采用Pre-master-secret秘钥加密。
  • 第七步:客户端发送Finished报文,该报文包含至今全部报文的整体校验值,以服务器正确解密该报文为握手协商成功的标志。
  • 第八步:服务器同样发送报文(Change Cipher Spec)
  • 第九步:服务器同样发送Finished报文
  • 第十步:服务器和客户端Finished报文交换完毕,SSL建立完成,通信受到SSL保护发送HTTP请求
  • 第十一步:应用层协议通信,发送HTTP响应
  • 第十二步:客户端断开连接发送close_notify报文,之后再发送TCP FIN报文来关闭与TCP的通信。

    应用层发送数据时会在报文上附加MAC的报文摘要,MAC能够查知报文师父被修改,从而保证报文完整性。

为何不一直使用HTTPS?

  • 第一:与纯文本通信相比,加密通信会消耗更多的CPU和内存资源
  • 第二:节约购买证书的开销。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值