zzzmj / duola-blog

哆啦的博客

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HTTPS 和 SSL / TLS是什么?

zzzmj opened this issue · comments

commented

1. SSL/TLS 是什么?

SSL(Secure Sockets Layer)直译过来是安全套接层。
TLS是

他是HTTPS协议中的一个东西

在网络层和传输层中加入了一个SSL层,称为加密传输协议(非对称加密)

其实HTTPS = HTTP + SSL/TLS

TLS是SSL的升级版,最新版,不过大家都叫SSL叫惯了

参考文章:大致介绍一下SSL
SSL和TLS的区别
浅谈HTTPS协议和SSL、TLS之间的区别与关系

那么是怎么加密的呢?

加密类型有两种

  1. 对称加密:AES
  2. 非对称加密:RSA算法

对称加密是客户端和服务端双方共有一个公钥,如果公钥泄露了,那么传输内容就会泄露

非对称加密有两把密钥,一把是公钥,一把是私钥。
客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

但是还是存在一些问题

  1. 在公钥传输的过程中,有可能被第三方篡改,传给你一个假的公钥,你就解析不了数据了
    所以有了SSL证书
    公钥保存在SSL证书里(这个证书是CA机构颁发的)

  2. 公钥加密信息太慢,怎么减少时间
    解决方法:每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。
    由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

图解流程

参考文章:

SSL/TLS协议运行机制的概述
深入浅出 HTTPS 图解