HTTPS的简单认识

由于HTTP有使用明文通信,内容可能会被窃听;不验证通信方身份,通信方可能会遭遇伪装;无法证明报文完整性,报文有可能被篡改等问题。于是通过HTTPs来解决避免这些问题。

简介

HTTPs不是一个全新的协议。而是HTTP先和SSL(Secure Socket Layer)通信,再由SSL和TCP通信,也就是说HTTPs使用了隧道通信。也因为使用了SSL,HTTPs具备加密(放窃听)、认证(放伪装)和完整性保护(放篡改)的特性。

加密

加密的分类

  1. 对称密钥加密(Symmetric-Key Encryption),加密和解密使用同一密钥。
  • 优点:运算速度快。
  • 缺点:无法安全的将密钥传输给通信方
  1. 非对称密钥加密,有称为公开密钥加密(Public-Key Encryption),加密和解密使用不同的密钥。公开密钥所有人都可以获取,通信发送方获得接收方的公开密钥之后,就使用公开密钥进行加密,接收方收到通信内容之后使用私有密钥进行解密。非对称密钥出了用来加密,还可以用来进行签名。因为私有密钥无法被其他人获取,因此通信发送方使用其私有密钥进行签名,通信接收方使用发送方的公开密钥对签名进行解密,来判断这个签名是否正确
  • 优点:更加安全地将公开密钥传输给通信的发送方
  • 缺点:运行速度慢。

HTTPs 采用的加密方式

HTTPs 采用混合的加密机制,使用非对称密钥加密用于传输对称密钥来保证传输过程的安全性,之后使用对称密钥加密进行通信来保证通信过程的效率。

认证

通过使用 证书 来对通信方进行认证。数字证书认证机构(CA,Certificate Authority)是客户端与服务器双方都可信赖的第三方机构。服务器的运营人员向 CA 提出公开密钥的申请,CA 在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公开密钥证书后绑定在一起。进行 HTTPs 通信时,服务器会把证书发送给客户端。客户端取得其中的公开密钥之后,先使用数字签名进行验证,如果验证通过,就可以开始通信了。通信开始时,客户端需要使用服务器的公开密钥将自己的私有密钥传输给服务器,之后再进行对称密钥加密。

完整性保护

SSL 提供报文摘要功能来进行完整性保护。HTTP 也提供了 MD5 报文摘要功能,但不是安全的。例如报文内容被篡改之后,同时重新计算 MD5 的值,通信接收方是无法意识到发生了篡改。

HTTPs 的报文摘要功能之所以安全,是因为它结合了加密和认证这两个操作。试想一下,如果加密之后的报文,遭到篡改之后,也很难重新计算报文摘要,因为无法轻易获取明文。

HTTPs的缺点

  • 因为需要进行加密解密等过程,因此速度会更慢。
  • 需要支付证书授权的额外费用。

猜你喜欢

转载自blog.csdn.net/wantaceveryday/article/details/84982084
今日推荐