关于HTTPS请求的一些问题

来源:2-11 HTTP和HTTPS的区别

qq_君君晨晨_0

2019-12-07

下面的三段话是您关于HTTPS请求过程讲解的原话,从5:50开始的.有几段话不大理解

浏览器验证证书合法性,如果验证证书的有效性,则在浏览器地址栏会有标志显示,否则会显示不受信的标识.当证书受信后,web浏览器会随机生成一份密码,并使用证书中的公钥加密,之后就是使用约定好的哈希算法握手消息,并生成随机数对消息进行加密,再将之前生成的信息回发给服务器.

服务器接收到浏览器发来的信息后,会使用网站本身的私钥将信息解密,确认密码,通过密码解密浏览器发送过来的握手信息,并验证哈希是否与web浏览器一致,然后服务器会使用密码加密新的握手信息,发送给浏览器.

客户端浏览器解密响应消息,并计算经过哈希算法加密后的握手消息,如果与服务器发送过来的哈希值一致,则此握手过程结束后,服务器和浏览器会使用之前浏览器生成的随机密码和对称加密算法进行加密和交换数据.

问题:

  1. 第一段的意思是 先将消息哈希取哈希值再用随机生成的密码加密,然后把随机生成的密码用公钥加密吗,再发给服务器吗?
  2. 第二段的意思是 服务器将加密的密码用私钥解密,再用得到密码去解密加密的握手消息吗?验证哈希是web浏览器一致是什么意思,握手信息与三次握手的信息是一个吗?
  3. 并计算经过哈希算法加密后的握手消息,如果与服务器发送过来的哈希值一致 是什么意思?
写回答

1回答

翔仔

2019-12-08

同学好,

问题1,确实是这样的哈,先约定好对称加密算法,然后浏览器随机生成一串密码,按照对称加密的方式对做过哈希运算的消息进行加密,然后使用服务器提供的公钥对生成的密码进行加密,将加密后的密码A,哈希运算过后的消息B以及使用该随机密码加密过后的C发送给服务器。

问题2,正解。在前面服务器接收到了浏览器发送过来的使用服务器公钥加密的随机密码A,加密的随机密码需要使用服务器的私钥进行非对称解密,解密出来之后就是浏览器用来加密消息的密码明文。此后便使用该密码对后续发送过来的做过哈希运算并被此密码加密过的消息C进行解密,将得到消息的哈希值和前面的B进行比对看看是否一致,进而证明消息是否合法。握手信息跟三次握手基本相同,除了多了一些额外的加密算法之类的信息。

问题3,可以仔细看问题2,哈希租要用来确保传输过程中数据不被篡改

1
1
qq_君君晨晨_0
理解了,谢谢老师这么晚还帮我解决问题.
2019-12-08
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程