美文网首页
HTTPS的原理及连接流程.md

HTTPS的原理及连接流程.md

作者: sunnyxibei | 来源:发表于2018-07-17 21:23 被阅读34次

HTTP vs HTTPS

HTTP缺点 解决方案 问题范畴
通信使用明文(不加密),内容可能被窃听 采用SSL/TLS加密通信 加密
不验证通信方的身份,因此有可能遭遇伪装 使用值得信任的第三方机构办法的证书来确定通信方 证书
无法验证报文的完整性,有可能已遭篡改 MAC(Message Authentication Code)报文摘要 完整性保护

HTTPS概念

  • 从解决Http的缺点的角度来看:

HTTP+加密+认证+完整性保护=HTTPS(HTTP Secure)

HTTP加上加密处理和认证以及完整性保护后即是HTTPS

  • 从通信协议的角度来看:

HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分使用SSL(Secure Socket Layer)/TLS(Transport Layer Security)协议替代而已。所以,HTTPS是身披SSL外壳的HTTP。

HTTPS建立连接的过程

  • 对称加密和非对称加密

非对称加密,客户端公钥加密,服务端私钥解密。

相对于对称加密,非对称加密的处理速度要慢一些。

  • 在客户端和服务端交换密钥环节,使用非对称加密方式。
  • 在建立通信之后的交换报文阶段,则使用对称加密方式。
  • 证明密钥正确性:
    • 由CA数字证书认证机构背书
    • 客户端在接收到数字证书之后,可以使用CA的公钥,对数字证书的数字签名进行校验,一旦验证通过,客户端变可以明确两件事情:一、认证服务器的公开密钥是真实有效的数字证书认证机构,二、服务器的公开密钥是值得信赖的。

HTTPS建立连接的流程:

第一阶段(握手协商)

  1. 客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的制定版本、加密组件列表(所使用的算法及密钥长度)
  2. 服务端一Server Hello报文作为应答。和客户端一样,在报文中包含SSL版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的
  3. 服务器发送Certificate报文。报文中包含公钥证书,当然这个公钥证书是使用CA机构的私钥加密过的,同时证书上有数字签名,以便客户端校验。
  4. 服务器发送Server Hello Done报文通知客户端,最初阶段的SSL握手协商部分结束。

第二阶段

  1. SSL第一次握手结束之后,客户端以Client Key Exchange报文作为回应。报文中包含在后续通信加密中使用的“Pre-master secret”的随机密码串。该报文使用服务器的公钥进行加密。
  2. 紧接着客户端发送Change Cipher Spec报文。该报文会提示服务器,在此之后的通信会采用Pre-master secret密钥加密
  3. 客户端发送Finished报文,该报文包含连接至今全部报文的整体报文校验值
  4. 服务器同样发送Change Cipher Spec报文。
  5. 服务器同样发送Finished报文。
  6. 服务器和客户端的Finished报文交换完成后,SSL连接建立完成。通信会受到SSL的保护,从此处开始应用层协议的通信,即发送HTTP请求

Http通信阶段

  1. 应用层HTTP通信,发送HTTP响应

断开链接

  1. 最后由客户端断开连接。断开连接时,发送close_notify报文。然后再发送TCP FIN来关闭与TCP的通信。

HTTPS完整性保护

在以上流程中,应用层发送数据时会附加一种叫做MAC(Message Authentication Code)报文摘要,用来校验报文的完整性。

HTTPS的缺点

使用SSL时,处理速度会变慢,增加服务器和客户端的负载,非敏感信息可以直接使用HTTP

相关文章

  • HTTPS的原理及连接流程.md

    HTTP vs HTTPS HTTPS概念 从解决Http的缺点的角度来看: HTTP+加密+认证+完整性保护=H...

  • Https原理及流程

    原文地址我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且...

  • HTTPS连接建立流程及抓包原理

    什么是HTTPS HTTPS(全称: Hyper Text Transfer Protocol over Secu...

  • HTTPS原理.md

    HTTPS概念 https 即在http(应用层)协议的基础上 通过了SSL(TSL)(表示层)协议通道加密后交给...

  • Https原理及传输流程

    我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有...

  • MD5

    python MD5 拓展: MD5加密算法原理及实现

  • spring

    springboot启动流程及原理https://www.cnblogs.com/theRhyme/p/11057...

  • HTTPS安全的一些tk

    参考连接: 网络数据传输安全及SSH与HTTPS工作原理数字证书原理,公钥私钥加密原理 Https协议详解数字证书...

  • 理解下HTTPS的原理及流程了

    1.什么是HTTP协议? HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)...

  • HTTPS 原理详解

    HTTPS 原理详解白话httpsHttps流程和原理

网友评论

      本文标题:HTTPS的原理及连接流程.md

      本文链接:https://www.haomeiwen.com/subject/szygpftx.html