HTTPS
HTTP的缺点
缺点:
- 通信使用明文(不加密),内容可能会被窃听。
- 不验证通信方的身份,因此有可能遭遇伪装。
- 无法证明报文的完整性,所以有可能已遭篡改。
通信使用明文可能被窃听
由于HTTP本身不具备加密的功能,所以也无法做到对通信整体进行加密。也就是说TCP/IP的工作机制,通信内容在所有的通信线路上都可能遭到窥视,可以通过通信加密和内容加密解决。
通信加密
可以通过SSL(Secure Socket Layer,安全套接层)和TLS(Transport Layer Security,安全传输层协议)的组合使用,加密HTTP的通信内容。
内容加密
还有一种将参与通信的内容本身加密的方式。由于HTTP协议中没有加密机制,那么就对HTTP协议传输的内容本身加密。即把HTTP报文里所含的内容进行加密处理。
不验证通信方的身份就可能遭遇伪装
HTTP协议中的请求和响应不会对通信方进行确认,也就是说任何人都可以发起请求,可以通过查明对手的证书方式解决,使用SSL不仅提供加密处理,还使用证书用于确定对方。
无法证明报文完整性,可能以遭篡改
HTTP协议无法证明通信的报文完整性。也就是说在请求或响应直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉,为了解决这些问题,可以使用SSL提供认证和加密处理及摘要功能,确保报文完整性。
加密方式
对称加密:
- 客户端和服务器共用一个密钥,该密钥同时用于加密和解密。这种加密方式也称为共享密钥加密。
- 优点:加解密效率高。
- 缺点:存放在客户端有窃取风险,安全性不足。
- 常见算法:AES、DES等。
非对称加密:
- 将密钥分两种:公钥和私钥。公钥放在客户端,私要放在服务器,使用公钥加密的数据只能通过私钥解密,私钥加密的数据只能通过公钥解密。这种加密方式也称为公开密钥加密。
- 优点:安全性高。
- 常见算法:RSA、ElGamal等。
HTTPS = HTTP + 加密 + 认证 + 完整性保护
HTTPS是HTTP+SSL
HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替而已。
HTTPS采用混合加密机制
HTTPS采用共享密钥加密(对称加密)和公开密钥加密(非对称加密)的混合加密机制。
非对称加密仅限于密钥协商阶段,通信过程使用对称加密 。
HTTPS通信的详细过程
HTTPS缺点
HTTPS缺点:
通信慢:
与HTTP通信相比,网络负载可能会变慢2~100倍。除去TCP连接、发送HTTP请-响应以外,还必须进行SSL通信,因此会消耗更多的网络资源。
处理速度慢:
在服务器和客户端都需要进行加密和解密的运算处理,因此会消耗更多的服务器和客户端的硬件资源。
|