Https握手过程

https:
比如客户端要访问通过域名访问B站,但是如何防止不法分子伪装B站让你访问,Https要求服务端申请SSL证书,证明域名是大家熟知的B站。(SSL证书比TLS更为人熟知。SSL证书其实是一份保存在源服务器的数据文件,要让SSL证书生效,需要向CA机构申请)。该证书除了表明域名属于谁、日期等信息外,还包含了公钥与私钥,服务器安装了SSL证书后,用户才能通过HTTPS访问服务器。用户会把Http默认端口80改为Https端口443。
浏览器通过Https访问服务器具体变化会根据不同TLS版本会有不同变化。以TLS1.2为例。首先,正常的TCP三次握手不变。TCP三次握手后,客户端发了一个Client Hello给服务端,客户端会告诉服务端支持TLS1.2版本(和其它版本)和16个加密套件,还有一个随机数。服务端收到客户端打招呼后,会发送server hello。在服务端发送的报文中,包含服务端确认支持的TLS版本以及选择的加密套件,并且服务器也生成随机数发给客户端。服务器再发一个响应,出示自己的证书。浏览器就可以根据对照自己的证书信任列表来确认服务器是否可信(简单说,检查服务器的证书是否可信)。然后在server key exchange中,包含了公钥。如果服务端也要客户端的证书,也会在这里发出请求,比如登录网银就需要这个步骤。最后服务端还要告诉客户端自己发送完了。截止到目前这些请求和响应还未进行加密。截止到这里,这些请求还未加密。此时,客户端处理这些响应。客户端会再生成一个随机数,在发送的报文中的Client key exchange部分的pubkey中有个随机数。然后还有个Change Cipher Spec,告诉服务器往后的数据用商议好的算法和密钥。最后Encrypted Handshake Message,表示客户端协商没问题。加密开始。服务器也发送Encrypted Handshake Message,表示范围准备好了。也表示TLS握手成功了。可以给数据加密进行交换了。

总结整个过程
1 Client Hello,客户端和服务端打招呼,并把自己支持的TLS版本,加密套件发送给服务端。同时生成一个随机数给服务端。称为随机数1。
2 服务端打招呼,Server Hello,包括确认支持的TLS版本以及选择的加密套件。并且也生成一个随机数给客户端,这个随机苏称为第二随机数。
3 服务端把证书发给客户端
4 服务端把公钥发给客户端
5 服务端发送Server Hello Done
(此前都是明文)
6 客户端生成第三个随机数,称为(预主秘钥)不会直接发送出去,而是用公钥加密后发送出去。
7 服务端收到加密后的预主密钥,用私钥解密,服务端就知道预主密钥了。此时只有客户端和服务端知道预主密钥。
8 客户端用预主密钥第以及一随机数和第二随机数计算出会话密钥,服务端也是根据预主密钥、第一和第二随机数计算出会话密钥。
此后,使用对称加密。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HTTPS SSL握手过程是用于建立安全的通信连接,确保数据传输过程中的机密性、完整性和可靠性。它包含以下步骤: 1. 客户端发送客户端hello消息,其中包含SSL版本信息、密码套件列表和随机数等。 2. 服务器收到客户端hello消息后,发送服务器hello消息,其中包含SSL版本信息、密码套件选择和随机数等。 3. 服务器发送证书,包含公钥和证书链等信息,用于验证服务器的身份。 4. 客户端接收服务器证书后,验证证书的合法性,包括证书的颁发机构、有效期等,并生成一个随机数用于后续的密钥协商。 5. 客户端使用服务器公钥加密一个随机数,并发送给服务器,用于后续数据加密。 6. 服务器使用私钥解密客户端发送的随机数,并使用客户端和服务器生成的随机数,计算出一个预主密钥(Pre-Master Secret),并发送给客户端。 7. 客户端和服务器使用预主密钥和协商的密码套件,生成会话密钥(Session Key)。 8. 客户端发送Finished消息,其中包含使用会话密钥加密的哈希值,用于验证握手过程的完整性和正确性。 9. 服务器接收到客户端的Finished消息后,也发送Finished消息,其中包含使用会话密钥加密的哈希值,用于验证握手过程的完整性和正确性。 10. 握手完成,客户端和服务器开始使用会话密钥加密数据进行通信。 以上是HTTPS SSL握手过程的基本步骤,不同的SSL版本和密码套件可能会有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值