-
HTTP协议的缺点
- 通信使用明文,内容可能被窃听。
- 不验证通信方身份,有可能遭遇伪装。
- 无法证明报文的完整性,有可能已被篡改。
-
HTTPS
- HTTPS并非应用层的一种新协议,只是HTTP通信接口部分用SSL/TLS协议代替而已。通常HTTP直接和TCP通信,当使用SSL时则变成先和SSL通信,再由SSL和TCP通信。
- HTTPS并非应用层的一种新协议,只是HTTP通信接口部分用SSL/TLS协议代替而已。通常HTTP直接和TCP通信,当使用SSL时则变成先和SSL通信,再由SSL和TCP通信。
-
SSL/TLS(安全套接层/传输层安全协议)
- SSL协议分为两层
- SSL记录协议:它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
- SSL握手协议:它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
-
对称密钥加密和非对称密钥加密
- 对称密钥加密(私钥加密):即信息的发送方和接收方使用同一个密钥去加密和解密数据。
- 非对称密钥加密(公钥加密):它需要使用一对密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送方用公开密钥去加密,而信息接收方则用私用密钥去解密。
-
SSL/TLS协议基本原理
- 基本思路:客户端先向服务端索要公钥,然后用公钥加密信息,服务端收到密文后,用自己的私钥解密。
- 如何保证公钥不被篡改?
- 解决方法:将公钥放在数字证书中,只要证书是可信的,公钥就是可信的。
- 公钥加密计算量太大,如何减少耗用的时间?
- 解决方法:每一次对话(session),客户端和服务端都生成一个“对话密钥(session key)”,用它来加密信息。由于“对话密钥”是对称加密,所以运算速度非常快,而服务器公钥只用于加密“对话密钥本身”,这样就减少了加密运算的耗费时间。
- 解决方法:每一次对话(session),客户端和服务端都生成一个“对话密钥(session key)”,用它来加密信息。由于“对话密钥”是对称加密,所以运算速度非常快,而服务器公钥只用于加密“对话密钥本身”,这样就减少了加密运算的耗费时间。
- SSL/TLS协议的基本过程
- 客户端向服务端索要并验证公钥。
- 双方协商生成“对话密钥”。
- 双方采用“对话密钥”进行加密通信。
-
数字证书
-
HTTPS存在的问题
- 当使用SSL时,它的处理速度会变慢。
- SSL必须进行加密处理。会比HTTP更多的消耗硬件资源。