Https建立连接过程

Https建立连接过程

在这里插入图片描述

1.建立三次握手

在这里插入图片描述

2.客户端先发起client hello

Client Hello: 客户端发送Client Hello消息,提供其支持的加密算法、sessionId,随机值等信息

在这里插入图片描述

3.服务端响应Server Hello

Server Hello: 生成随机数,服务器选择一组加密算法,并发送Server Hello消息。

在这里插入图片描述

4.服务端Certificate, Server Key Exchange, Server Hello Done

服务器发送其证书、可能的服务器密钥交换消息(如果需要的话)并结束握手消息。

在这里插入图片描述

在这里插入图片描述

5.客户端Client Key Exchange, Change Cipher Spec, Encrypted Handshake

户端发送客户端密钥交换消息、更改密码规范和加密的握手消息。

在这里插入图片描述

6.客户端和服务端生成对称主密钥进行数据加密传输

在这里插入图片描述

主密要生成方式

  1. ECDHE 密钥交换:

    • 客户端和服务器各自生成一个EC密钥对(公钥和私钥)。

    • ClientKeyExchange消息中,客户端将其公钥发送给服务器。

    • ServerKeyExchange消息中,服务器将其公钥发送给客户端。

    • 客户端和服务器各自使用自己的私钥和对方的公钥来计算共享秘密,这个共享秘密即为PreMasterSecret

    • 然后,PreMasterSecretClientRandomServerRandom一起用于生成MasterSecret,再进一步导出对称会话密钥。

      在这种方式下PreMasterSecret是不会有的传输的。

  2. RSA 密钥交换:

    • 客户端生成一个随机的PreMasterSecret
    • 客户端使用服务器的RSA公钥加密PreMasterSecret并在ClientKeyExchange消息中发送给服务器。
    • 服务器使用其私钥解密得到PreMasterSecret
    • 同样,PreMasterSecretClientRandomServerRandom一起用于生成MasterSecret,再进一步导出对称会话密钥。

ntRandomServerRandom一起用于生成MasterSecret`,再进一步导出对称会话密钥。

对于上述两种方法,在得到MasterSecret后,都会使用特定的伪随机函数(PRF)结合MasterSecretClientRandomServerRandom来生成会话密钥,这包括加密密钥、MAC密钥等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值