浅谈Go与习题(三十四)

105 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 24 天,点击查看活动详情

今天来学习下Go常见的习题问题(三十四),也是面试中可能会遇到的,让我们来一起学习吧~

https如何建立连接的?中间发生了什么?

SSL/TLS 协议基本流程: SSL (Secure Sockets Layer):安全套接层

TLS(Transport Layer Security):安全传输层协议

  • 客户端向服务器索要并验证服务器的公钥
  • 双方协商生产会话秘钥
  • 双方使用会话秘钥进行加密通信
  1. 客户端发送加密请求 发送的信息如下:
  • 客户端支持的传输协议版本TLS,例如TLS1.2版本
  • 客户端会产生随机的数字,用来生成后续的秘钥创建
  • 客户端支持的加密算法列表,例如RSA加密算法
  1. 服务器对请求进行回应 返回的消息如下:
  • 确认TLS的版本号,如客户端不支持,就关闭此次的加密通信
  • 确定加密算法列表
  • 返回服务器的数字证书(CA颁发的证书)
  • 返回服务器产生的随机数字,也是用来后续的秘钥创建
  1. 客户端回应

收到服务器的回应之后,首先要确认数字证书的真实性,确认之后会从证书中取出服务器的公钥,用于后续的报文加密,接着会向服务器发送消息

  • 发送一个随机数,被公钥加密
  • 加密算法改变的通知
  • 客户端握手结束的通知,并把之前的信息做个整理,提供给服务器用来校验
  1. 服务器最后的回应 通过客户端返回的第三个随机数,通过加密算法,产生本次通信的会话秘钥,最后向客户端发送消息
  • 加密算法改变通知
  • 服务器握手结束的通知,并把之前的信息做个整理,提供给客户端用来校验

通过上述的四次握手,整个TLS的握手阶段全部结束,后续的加密通信就是用http协议

总结

今天浅谈了Go的习题(三十四),主要介绍了GO面试中会出现的问题,接下来会继续分享其他的习题的相关知识,对于一个刚入门的我来说,还有许多地方需要学习,有错误的地方欢迎大家指出,共同进步!!