HTTPS
HTTP的缺点
要了解HTTPS就要了解HTTP的缺点
- HTTP使用的是明文(不加密)进行通信,内容可能被窃听。
- HTTP不验证通信方的身份,可能遭到伪装
- 无法证明报文的完整性,报文可能遭到篡改
HTTPS
HTTPS并不是新的协议,只是HTTP通信接口部分用SLL(Secure Socket Layer)和TLS (Transport Layer Security) 协议替代而已;通常,HTTP直接和TCP进行通信,但是HTTPS是让HTTP先和SSL(安全套接层)通信,再由SSL和TCP通信。也就是说HTTPS使用了隧道进行通信。
通过使用SSL,HTTPS具有了加密(防窃听),认证(防伪装)和完整性保护(防篡改)。
加密
对称秘钥加密
对称秘钥加密,加密和解密使用的是同一个秘钥。
- 优点:运行速度快
- 缺点:秘钥容易被获取
公开秘钥加密
公开秘钥加密,也称为非对称秘钥加密,使用一对秘钥进行加密和解密,分别为公开秘钥和私有秘钥。公开秘钥所有人都有可以获取,通信发送发获得接收方的公开秘钥之后,就可以使用公开秘钥进行加密,接收方收到通信内容后使用私有秘钥进行解密。
- 优点:更为安全
- 缺点:运算速度慢
HTTPS使用的加密方式
HTTPS使用的是混合加密机制,使用公开秘钥加密用于传输堆成秘钥来保证安全性,之后使用对称秘钥加密进行通信来保证效率。
认证
通过使用证书来对通信方进行认证。
数字证书认证机构(CA,Certificate Authority)是客户端与服务器双方都可信赖的第三方机构。服务器的运营人员向 CA 提出公开密钥的申请,CA 在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公开密钥证书后绑定在一起。
进行 HTTPs 通信时,服务器会把证书发送给客户端。客户端取得其中的公开密钥之后,先使用数字签名进行验证,如果验证通过,就可以开始通信了。
完整性保护
SSL 提供报文摘要功能来进行完整性保护。
HTTP 也提供了 MD5 报文摘要功能,但是却不是安全的。例如报文内容被篡改之后,同时重新计算 MD5 的值,通信接收方是无法意识到发生篡改。
HTTPS 的报文摘要功能之所以安全,是因为它结合了加密和认证这两个操作。试想一下,加密之后的报文,遭到篡改之后,也很难重新计算报文摘要,因为无法轻易获取明文。
HTTPS的缺点
- 因为需要进行加密解密等过程,因此速度会更慢;
- 需要支付证书授权的高费用。