HTTPS 和 SSL / TLS是什么?
zzzmj opened this issue · comments
1. SSL/TLS 是什么?
SSL(Secure Sockets Layer)直译过来是安全套接层。
TLS是
他是HTTPS协议中的一个东西
在网络层和传输层中加入了一个SSL层,称为加密传输协议(非对称加密)
其实HTTPS = HTTP + SSL/TLS
TLS是SSL的升级版,最新版,不过大家都叫SSL叫惯了
参考文章:大致介绍一下SSL
SSL和TLS的区别
浅谈HTTPS协议和SSL、TLS之间的区别与关系
那么是怎么加密的呢?
加密类型有两种
- 对称加密:AES
- 非对称加密:RSA算法
对称加密是客户端和服务端双方共有一个公钥,如果公钥泄露了,那么传输内容就会泄露
非对称加密有两把密钥,一把是公钥,一把是私钥。
客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。
但是还是存在一些问题
-
在公钥传输的过程中,有可能被第三方篡改,传给你一个假的公钥,你就解析不了数据了
所以有了SSL证书
公钥保存在SSL证书里(这个证书是CA机构颁发的) -
公钥加密信息太慢,怎么减少时间
解决方法:每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。
由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。
参考文章: