HTTPS的传输流程是什么?SSL/TLS详细流程

本文详细介绍了HTTPS的传输流程,包括基础概念如HTTPS、SSL/TLS、MITM攻击、非对称加密等。通过生活中的比喻,解释了SSL/TLS的四次握手过程,包括Client Hello、Server Hello、证书验证、密钥交换等步骤。同时,讨论了TLS会话恢复的机制,如Session Id和Session Ticket的区别。最后,提到了TLS协议如何防止中间人攻击,以及HTTP和TLS版本的差异。
摘要由CSDN通过智能技术生成

HTTPS的传输流程是什么?

基础概念名词抢先了解

HTTPS:HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。 说得再简单一点,HTTPS就是 HTTP + SSL

https2.png

**SSL:**Secure Sockets Layer,即“安全套接层”。发明SSL协议的初衷,是为了解决HTTP明文传输不安全的问题。HTTP是应用层协议,是和TCP进行直接通信的,但是当我们将它转换成为HTTPS的时候,可以看下面这个流程,在HTTPS和TCP中间多了一个SSL层,这也就解释了数据是在哪里进行加密的了。

https5.png

**TLS:**Transport Layer Security,即“传输层安全协议”。它是将SSL协议标准化之后的名称,因此SSL和TLS可以看作同一个东西,在不同阶段的不同名称而已,也可以称之为SSL/TLS协议,是通过验证SSL证书来验证身份来对数据进行加密的。

https6.png

**MITM:**Man-in-the-middle attack,即中间人攻击。在密码学和计算机安全领域中,是指攻击者与通讯的两端分别建立独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

**非对称加密:**Asymmetric Key Algorithm,非对称加密算法。非对称加密算法有两个 key,分别是公钥(public key)公开可见,用于加密数据、私钥(private key)只自己可见,用于解密。目前最流行的非对称加密算法是RSA算法,不过正在向更加高效安全的 D-H(Diffie-Hellman)算法转移。

RSA 的 private key 也可以用于加密数据,使用 public key 解密。生成和验证数字签名时就是用的这种方式。

一般非对称加密算法常使用在SSL/TLS连接建议中,用于安全的生成传输对称加密算法的共享密钥

**值得注意的是:**非对称加密算法通常速度慢,更耗费 CPU,且 key、数据越长,加密、解密耗费时间也越长,原因在于寻找大素数、大数计算、数据分割需要耗费很多的CPU周期。因此,数据量大时不要使用非对称加密,而应使用对称加密(symmetric key cryptography),对称加密速度更快、性能更高。

对称加密: Symmetric Key Algorithm,也称为共享密钥加密(shared key),它使用相同的 key 加密、解密。对称加密主要是用于受信任的两者之间建立加密通道,因为中间人无法获取对称加密密钥,因此只有建立通道的双方才可以解密数据。最流行的对称加密算法是AES(Advanced Encryption Standard ,即高级加密标准)

**数字证书:**数字证书包括了证书持有者信息、公钥和有效期等等信息,通常是由一个CA机构来给某网站颁发的,首先肯定的一件事是这个CA机构是值得信任的,由此引申出这个证书是可以被信任的,来个生活中的例子,我们每个人都有的身份证,为什么可以证明身份证上的名字就是我的名字?因为这个是最伟大的国家为我们颁发的,我们应该无理由的去相信。**这里有一点需要注意一下:**证书明文和数字签名加在一起才是完整的数字证书。

**数字签名:**首先要解释的是签字签名存在的意义,因为按理来说有数字证书不就可以证书网站的身份了么?其实并不然,因为哪怕是身份证可以很好的说明了你的身份,但是有一个前提条件的,就是你需要证明这个身份证是你的,怎么证明是你的呢?可以通过身份证上的图片,线上身份证系统中收集的图片信息、指纹信息、签名信息等,这样对照起来才能证明这个身份证是你的。而引申到网络的话,要防止数字证书的内容就是CA机构发版时的内容,就需要数字签名来证实了。

CA机构对证书明文进行Hash处理,随后通过自己的一套私钥(非对称加密算法)对处理后证书数据摘要进行加密生成数字签名,并将数字签名和证书明文内容合并为数字证书颁发给相关申请的网站。

https10.png

CA机构:认证中心(CA),有时也称为认证机构,是一家公司或组织,负责验证实体(例如网站,电子邮件地址,公司或个人)的身份,并通过发行称为“电子文件”的电子文件将其绑定到加密密钥数字证书。数字证书只包含申请人的公钥,而申请人的私钥是不需要交给任何人的

RTT: Round-Trip Time,往返时间,主要是指Client和Server交互过程中一次往返所需要的时间,有一篇文章说HTTPS请求需要4.5RTT,主要是指TCP1.5RTT+TLS2RTT+数据传输1RTT。

SSL/TLS流程模拟

这里举一个生活中的案例来描述整个SSL/TL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值