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

HTTP的缺点

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

因为按照TCP/IP的工作机制,通信内容在通信线路上有可能遭到窥视。即使是经过加密处理的通信,也会被窥探到通信内容,只是无法破解报文信息的含义。

有两种加密方式:

  • 通信加密。用SSL建立安全通信路线,服务端和客户端就可以在安全的通信路线上开始通信。
  • 通信内容加密。报文首部不加密,报文主体加密。
2、不验证通信方的身份,可能遭遇伪装

任何人都可以发送请求,服务器也都会响应。因此会存在以下隐患:

  • 无法确定请求发送至目标的服务器是否是伪装的服务器
  • 无法确定响应返回到的客户端是否是伪装的客户端
  • 无法确定正在通信的双方是否具备访问权限
  • 无法确定请求出自何方
  • 即使是无意义的请求也会全部接收,会出现DoS攻击

SSL有一种被称为证书的手段可以用于确定通信方(服务器和客户端)。

3、无法证明报文的完整性,可能遭遇篡改

HTTP协议无法保证通信的报文的完整性。即没有任何办法确认发出的响应/请求和接收到的响应/请求是前后相同的。在传输途中遇中间者拦截并篡改内容的叫中间人攻击(MITM)
可用MD5和SHA-1等散列值校验的方法以及确认文件的数字签名方法(以PGP创建的数字签名为例)来保证报文的完整性,但是当PGP和MD5本身被篡改时,报文的完整性依旧无法保证。

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

HTTPS是身披SSL外壳的HTTP。
HTTPS只是HTTP的通信接口部分用SSL和TLS协议代替。
通常HTTP直接和TCP通信,使用SSL之后变成了先和SSL通信再和TCP通信。

HTTPS采用的是公开密钥和共享密钥两者并用的混合加密机制

HTTPS是在交换密钥时利用公开密钥进行加密,通信报文交换利用共享密钥进行加密。因为公开密钥处理起来比较麻烦,效率较低。

共享密钥

加密和解密用同一个密钥的加密方式叫共享密钥加密,也叫对称密钥加密。以共享密钥加密必须要把共享密钥和加密的报文以取传给对方,如果加密的报文被攻击密钥也会被截获。

公开密钥

公开密钥加密使用一对非对称密钥。一把叫私有密钥,一把叫公开密钥。公开密钥是任何人都可以获得的,但是私有密钥是只有自己知道的。发送方利用公开密钥进行加密,接收方利用自己的私有密钥进行解密,就不需要担心密钥被盗走。
SSL采用的是公开密钥加密的方式进行加密处理。存在通信慢CPU消耗大导致处理速度变慢的问题。

公开密钥存在的问题

无法证明密钥本身就是货真价实的公开密钥。可以使用数字证书认证机构(CA)和其颁布的公开密钥证书确定该公开密钥是值得信赖的。

服务器会向CA提出公开密钥的申请,CA验证过服务器的身份后会对已申请的公开密钥做数字签名,然后将已签名的公开密钥放入密钥证书中绑定。服务器会将密钥证书发给客户端,从而进行以公开密钥加密的通信。

为什么不一直使用HTTPS

1、因为加密通信会消耗更多的CPU和资源内存
2、减少证书购买的开销

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值