计算机网络 HTTPS原理
HTTPS(HyperText Transfer Protocol over Secure Socket Layer),可以看成HTTP+SSL/TLS。其中TLS(Transport Layer Security,传输层安全)是SSL的改进。
1、HTTP的问题
1)通信内容明文,可能被窃听。
2)不校验通信内容的完整性,可能被篡改。
3)不验证通信双方的身份,可能被伪装。
2、对称加密
如AES和DES,加密和解密双方使用同一密钥。这种方式最大的问题是,密钥的传输和保存。因为网络本身就是不安全的,很容易被抓包;客户端对于用户而言更是白盒。
3、非对称加密
如RSA,公钥是公开的。服务器保存私钥,多个客户端共享公钥。比对称加密慢。
4、采用对称加密+非对称加密的方式,防止被窃听
1)使用非对称加密来交换“对称加密的密钥”。
2)使用对称加密来交换实际通信内容。
5、采用数字签名,防止被篡改
1)虽然不能被解密窃听,但是还可以被篡改。
6、采用数字证书,防止被伪装
1)证书颁发机构(Certificate Authority,简称CA),用来确保公钥是来自合法Server的。
2)Client会内置合法CA的信息,如CA的公钥,用于校验Server返回的证书,如其中的数字签名,得到Server的公钥。
7、遗留问题
参考链接:
https://tools.ietf.org/html/rfc5246