https的通信步骤

这里写图片描述

步骤1:客户端通过发送client hello报文开始ssl通信。报文中包含客户端支持的ssl的指定版本,加密组件(cipher suite)列表(所使用的加密算法及秘钥长度等)。

步骤2:服务器可进行ssl通信时,会以server hello报文作为应答。和客户端一样,在报文中包含ssl版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。

步骤3:之后服务器发送certificate报文。报文中包含公开秘钥证书。

步骤4:最后服务器发送server hello done报文通知客户端,最初阶段的ssl握手协商部分结束。

步骤5:ssl第一次握手结束之后,客户端已client key exchange报文作为回应。报文中包含通信加密中使用的一种被称为pre-master secret的随机密码串。该报文已用步骤3中的公开秘钥进行加密。

步骤6:接着客户端继续发送change cipher spec报文。该报文会提示服务器,在此报文之后的通信会采用pre-master secret秘钥加密。

步骤7:客户端发送finished报文。该报文包含连接至今报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。

步骤8:服务器同样发送change cipher spec报文。

步骤9:服务器同样发送finished报文。

步骤10:服务器和客户端的finished报文交换完毕之后,ssl连接就算建立完成。当然,通信会受到ssl的保护。从此处开始进行应用层协议的通信,即发送http请求。

步骤11:应用层协议通信,即发送http响应。

步骤12:最后由客户端断开连接。断开连接,发送close_notify报文。上图做了一些省略,这步之后再发送tcp fin报文来关闭与tcp的通信。

以上流程中,应用层发送数据会附加一种叫做mac(message authentication code)的报文摘要。mac能够查知报文是否遭到篡改,从而保护报文的完整性。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值