【web基础】深入理解http和https的区别

在对比这两者的区别之前咱们先来看一下http有哪些缺点

第一个缺点:http通信使用明文可能会被窃听。由于http本身不具备加密的功能,所以也无法做到对通信整体(使用http协议通信的请求和响应)的加密。也就是说http的报文使用的是明文发送。

为什么通信不加密是一个缺点呢? 因为按照TCP/IP协议族的工作机制,通信内容在所有的通信线路上都可能被窃听。
即使已经过加密处理的通信,也会被且听到通信内容,但经过加密之后,别人无法破解报文信息的含义,但保温本身还是会被看到。

可以通过加密防止被窃听,加密的对象有两种:
第一种:对通信线路的加密
Http协议中没有加密机制,但可以通过和SSL(安全套接层,也是一种协议)或TLS(安全层传输协议)的组合使用,加密http的通信内容。而与SSL组合使用的http被称为https
第二种:内容的加密:对通信线路的加密
对http协议传输的内容本身加密,也就是http报文内所含的内容进行加密处理。不过要求客户端和服务器同时具备加密和解密机制。

第二个缺点: 不验证通信方的身份(无法确定客户端和服务端的真实性),因此有可能遭遇伪装

在http协议通信时,由于不存在确认通信方的处理步骤,任何人都可以发起请求,而服务端只要接收请求,不管是谁都会返回一个响应。
不验证通信方的身份存在一些隐患:
1,无法确定请求来自何方
2,无意义的请求也会照单全收,如DOS攻击
3,无法确认通信的对方是否具备访问权限

可以过查明通信方的证书来解决这个缺点。

SSL不仅提供加密处理,还使用了一种被称为证书的手段可用于确定对方

在这里插入图片描述

第三个缺点:无法证明报文的完整性(信息的准确性),所以有可能已遭篡改

接收到的内容可能有误:在请求或者响应送出之后对方接受之前这段时间之内,即时请求或响应的内容遭到篡改,也没办法知道。
在这里插入图片描述

在请求或响应在传输途中,遭遇攻击者拦截并篡改内容的攻击称为中间人攻击(MITM)

如何防止呢? 比较常用的是MD5和SHA-1等散列值校验,以及用来确认文件的数字签名方法。

但是这些方法也无法百分百保证结果正确,因为MD5本身被改写的话,用户是没有办法意识到的

为了防止种种弊端就必须使用HTTPS。

HTTPS到底是什么呢?HTTP+加密+认证=HTTPS

  • 吧添加了加密及认证机制的http称为https(http Secure),https并不是应用层的一种新协议,只是http通信接口部分用SSL和TLS协议代替了而已。
  • 通常http直接和tcp通信,当使用ssl时则会先和ssl通信,再由ssl和tcp通信,总之,https其实就是身披SSL协议这层外壳的http
  • 采用SSL后,http就有了https的加密,证书和完整性保护这些功能。SSL是独立于http的协议,不光是http,其他运行在应用层的SMTP和Telnet等协议课配合SSL协议使用,可以说SSL是世界上应用最广泛的网络安全技术。
    在这里插入图片描述
加密技术

加密的方式有两种:

第一种,共享密钥加密:加密和解密公用一个密钥的方式成为共享密钥加密,也叫做对称密钥加密
缺点:以这种方式加密时必须将密钥也发送给对方,但在互联网上转发密钥时,如果通信被监听那么密钥就可能被攻击者得到

第二种,使用两把密钥的公开密钥加密。公开密钥加密使用一堆非对称的密钥,一把叫做私有密钥,另一把叫做公开密钥。发送密文的一方使用对方的公开密钥进行加密处理,对方收到加密信息后,在使用自己私有的密钥进行解密。相对于共享密钥加密,其处理速度要慢一点
在这里插入图片描述

  • SSL采用的就是上面公开密钥加密的处理方式。(加密算法是公开的,而密钥是保密的)

  • 而HTTPS采用这两者混合加密机制,会充分利用两者各自的优势,将多种方法组合起来进行通信

那么何如证明公开密钥的正确性呢?

公开秘钥加密还有一些缺点,无法证明公开秘钥本身就是真正的密钥。(公开密钥在传输中被攻击者替换掉)
可以使用数字认证机构颁发的公开密钥证书

HTTPS存在的问题

当使用SSL时,会进行额外的通信,它的处理速度会变慢,慢2到100倍
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值