身披SSL外壳的HTTP协议 —— HTTPS协议

前面的话

我们知道http协议中的报文采用明文的方式发送,内容很容易被窃取,很不安全。要想信息传输安全,就要使用本文的主角HTTPS。小柒前面总结了http协议,这篇文章总结一下HTTPS协议。

HTTP主要的缺点
  • 通信使用明文,内容可能会被窃听
  • 不验证通信双方的身份,可能会遭遇伪装
  • 报文传输过程中,可能被篡改,不能保证其完整性
解决措施

针对HTTP协议上面的三个缺点,分别接受对应的处理措施

(1)加密处理,防止内容被窃听

为防止内容被窃听,最常用的就是使用加密技术。加密方式分两种:通信加密内容加密

  • 通信加密:所谓的通信加密,就是建立安全的通信线路。一般通过使用SSL(安全套接层)或者TLS(安全传输层)这两种协议与HTTP协议组合使用,进行加密。使用SSL建立安全的通信线路之后,就可以进行HTTP通信了。
  • 内容加密:所谓的内容加密,就是将报文的主体进行加密,通信本身不加密。既然是将内容进行加密,那么就需要通信双方同时具备加密与解密机制。
    发送方将内容进行加密,接收方有对应的解密方法进行解密。这里就要涉及到加密技术,稍后解释。
(2) 查明对方证书,验证身份,防止伪装

HTTP协议中的请求与响应都不会验证通信双方的身份,任何人都可以发送请求,并且服务器都会做出回应。这样导致很多隐患。

SSL不仅可以进行加密处理,而且还提供了一种叫证书的手段来验证通信双方的身份。这个证书是由第三方机构颁发,可以确认通信双方是真实存在的。

在客户端进行通信前,会通过证书验证即将建立通信的服务器是否为准备访问的服务器。

(3) PGP、MD5,防止篡改

HTTP协议无法保证通信过程中,数据的准确性,可能存在通信过程数据被篡改。

使用PGP、MD5可以防止数据被篡改。

  • PGP:是用来创建文件的数字签名的
  • MD5:是用来生成散列值的一种算法

不管是那两种方法,多需要用户本人去验证下载的文件是否是服务器上的文件,浏览器无法自动验证,并且还不能保证数据100%的准确。

HTTPS协议

了解了HTTP协议的缺点和缺点的对应解决方法,那么本文的主角就要出场了。

HTTP+加密+认证+准确性保护 = HTTPS。

HTTPS更加完善了HTTP协议,弥补了HTTP协议的缺陷。HTTPS协议不是新的协议,只是HTTP的通信接口被SSL或TLS协议替代了。可以说HTTPS身披SSL外壳的HTTP。

加密方法
  • 共享密钥加密
    指加密和解密使用同一个密钥的方式。这种方式的弊端:别人拿到了这个密钥也能破解密码
  • 公开密钥加密
    指使用一套非对称的密钥。发送方使用公开密钥用来加密,接收方使用自己的私密密钥用来解密。 这种方式别人很难别人破解。
SSL与TLS协议
  • HTTP协议使用SSL协议之后,就具有加密、认证、数据准确性的功能。任何应用层的协议都可以使用SSL协议进行加密。而TSL是在以SSL为原型的一种协议。

  • SSL协议使用的是公开密钥加密方式。

  • SSL速度慢:分为两种,一种是通信慢,相比HTTP,HTTPS要建立SSL通信,因此在整体上通信量会变大;另一种是由于SSL要进行加密操作,不管是客户端还是服务端都要进行加密和解密,导致CPU、内存等硬件资源被消耗,负载增强

HTTPS使用混合加密机制

HTTPS使用共享密钥加密和公开密钥加密两种混合加密机制进行加密。如果密钥能够安全的进行交换,可以只考虑使用共享密钥加密,毕竟公开密钥加密比共享密钥加密要慢。

所以充分利用两者的优势,在不同的情景下使用合适的组合方式进行加密。

它的加密过程是:

  • server生成一个公钥和私钥,把公钥发送给第三方认证机构(CA);
  • CA把公钥进行MD5加密,生成数字签名;再把数字签名用CA的私钥进行加密,生成数字证书。CA会把这个数字证书返回给server;
  • server拿到数字证书之后,就把它传送给浏览器;
  • 浏览器会对数字证书进行验证,首先,浏览器本身会内置CA的公钥,会用这个公钥对数字证书解密,验证是否是受信任的CA生成的数字证书;
  • 验证成功后,浏览器会随机生成对称秘钥,用server的公钥加密这个对称秘钥,再把加密的对称秘钥传送给server;
  • server收到对称秘钥,会用自己的私钥进行解密,之后,它们之间的通信就用这个对称秘钥进行加密,来维持通信。

在这里插入图片描述
推荐阅读:彻底搞懂HTTPS的加密机制

为什么HTTPS不广泛使用
  • 相对于HTTP来说,通信会慢,也会消耗大量的CPU、内存资源。
  • 使用HTTPS,就需要使用证书,而购买证书的费用也是要考虑的

所以不需要使用加密通信的话,就没必要使用HTTPS。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值