SSL/TLS 协议

SSL/TLS 协议

HTTPS背后的加密算法

SSL/TLS 协议位于网络 OSI 七层模子的会话层,用来加密通讯。SSL(Secure Sockets Layer,平安套接字层)是一种尺度平安协议,用于在在线通讯中确立Web服务器和浏览器之间的加密链接。SSL 通过相互认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的平安通讯。

TLS(Transport Layer Security,传输层平安)是 IETF 在 SSL 3.0 的基础上设计的协议,它是 SSL 协议的升级版。两者差异极小,可以理解为 TLS 是 SSL 3.1。

TLS 协议结构

TLS 协议分成两层:TLS 纪录协议(TLS record protocol)、TLS 握手协议(TLS handshake protocol)

分分钟让你理解HTTPS

SSL/TLS 协议

 

TLS 握手协议卖力加密以外的其他事情。握手协议分成 4 个子协议,划分是:

  • 握手协议 :卖力通讯双方之间协商决议密码算法和共享密钥
  • 密码规格调换协议 :卖力向通讯工具转达调换密码方式的信号
  • 忠告协议 :卖力在发生错误时将错误传给对方
  • 应用数据协议 :是将TLS承载的应用数据转达给通讯工具

TLS 纪录协议卖力新闻的压缩、加密以及数据的认证。TLS 纪录协议使用到的所有的算法等都是经由握手协议协商确认后的,以保证通讯双方是使用相同的算法。处置历程:

  • 首先,新闻会被分割成多份,并用协商好的压缩算法举行压缩。
  • 其次,压缩片断会加上新闻认证码以保证完整性,为了防止重放攻击还加上了片断编号。
  • 再次,压缩后的新闻片断会加上新闻认证码一起举行加密。加密使用 CBC 模式,初始向量是通过主密码天生。
  • 最后,加密后的报文,再加上数据类型、版本号、压缩后的长度组成的报头,就是最终的数据报文。

握手历程

SSL/TLS 协议

 

  1. ClientHello(客户端 -> 服务器)
  • 客户端向服务端发送自己的信息:可用的版本号、当前时间、客户端随机数、会话ID、可用的密码套件清单、可用的压缩方式清单。
  • 可用的版本号、可用的密码套件清单、可用的压缩方式清单:由于差别的浏览器可能支持的情形不一样,以是需要发送给服务端以利便协商。
  • 当前时间:TLS不使用,然则上层的协议有可能使用。
  • 客户端随机数:后面会使用到。
  • 会话ID:客户端和服务端需要重新使用之前的毗邻时,会使用到此信息。
  1. ServerHello(服务器 -> 客户端)
  • 服务端向客户端发送自己的信息:使用的版本号、当前时间、服务器随机数、会话ID、使用的密码套件清单、使用的压缩方式清单
  • 使用的版本号、使用的密码套件清单、使用的压缩方式清单:这里发送的就是协商后的确定效果
  • 当前时间:TLS不使用,然则上层的协议有可能使用
  • 服务器随机数:后面会使用到
  1. Certificate(服务器 -> 客户端)
  • 发送服务器的证书,包罗证书清单,客户端会对其举行验证。若是是匿名通讯,则不发送该新闻。
  • 若是 Certificate 不足以知足需求时,则会发送 ServerKeyExchange (服务器 -> 客户端)新闻。详细的内容凭据密码套件的差别而有所差别。这个不是必须的。
  • 双向认证,服务器则会发送 CertificateRquest(服务器 -> 客户端)找客户端要其证书用来验证。这个也不是必须的。
  1. ServerHelloDone(服务器 -> 客户端)
  • 通知客户端 Hello 时间竣事。
  • 若是服务器要了客户端的证书,则客户端发送 Certificate(客户端 -> 服务器)将其证书发送给服务器。
  1. ClientKeyExchange(客户端 -> 服务器)
  • 这个就是最要害的一步,交流天生最终密钥的要害素材。
  • 若是是使用的 RSA,则会将经由服务器公钥加密的准备主密码随着 ClientKeyExchange 新闻一起发送。
  • 若是是 Diffie-Hellman 密钥交流,则随着 ClientKeyExchange 新闻一起发送的是 Diffie-Hellman 公然值。
  • 准备主密码使得服务端和客户端划分盘算出相同的主密码。
  • 若是服务器向客户端发送了新闻,客户端还会向服务器发送 CertificateVerify(客户端 -> 服务器)新闻,这是为了向服务器证实,自己确实是真实的客户端,拥有客户端证书的私钥。为了实现这个目的,客户端会盘算主密码和握手协议种传送的新闻的散列值加上自己的数字签名后发送给服务器。
  1. 天生密钥
  • 凭据要害的密钥素材主密码天生:对称密码的密钥、新闻认证码的密钥、对称密码的CBC模式中使用的初始化向量
  1. ChangeCipherSpec(客户端 -> 服务器)和 Finished(客户端 -> 服务器)
  • ChangeCipherSpec这不是握手协议,而是密码规格调换协议。客户端告诉服务器我要换密码了。由于已经双方已经交流了密码套件信息,可以最先切换密码举行通讯了。
  • Finished代表客户端已经搞定了
  1. ChangeCipherSpec(服务器 -> 客户端) 和 Finished(服务器 -> 客户端)
  • ChangeCipherSpec服务器告诉客户端,我要最先换密码了
  • Finished代表服务器已经搞定了

https原理及流程

分享到 :
VPN虚拟专用网简介
上一篇 2020-06-27
HTTPS背后的加密算法
2020-06-27 下一篇
相关推荐

发表评论

登录... 后才能评论