开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 24 天,点击查看活动详情
今天来学习下Go常见的习题问题(三十四),也是面试中可能会遇到的,让我们来一起学习吧~
https如何建立连接的?中间发生了什么?
SSL/TLS 协议基本流程: SSL (Secure Sockets Layer):安全套接层
TLS(Transport Layer Security):安全传输层协议
- 客户端向服务器索要并验证服务器的公钥
- 双方协商生产
会话秘钥 - 双方使用
会话秘钥进行加密通信
- 客户端发送加密请求 发送的信息如下:
- 客户端支持的传输协议版本TLS,例如TLS1.2版本
- 客户端会产生随机的数字,用来生成后续的秘钥创建
- 客户端支持的加密算法列表,例如RSA加密算法
- 服务器对请求进行回应 返回的消息如下:
- 确认TLS的版本号,如客户端不支持,就关闭此次的加密通信
- 确定加密算法列表
- 返回服务器的数字证书(CA颁发的证书)
- 返回服务器产生的随机数字,也是用来后续的秘钥创建
- 客户端回应
收到服务器的回应之后,首先要确认数字证书的真实性,确认之后会从证书中取出服务器的公钥,用于后续的报文加密,接着会向服务器发送消息
- 发送一个随机数,被公钥加密
- 加密算法改变的通知
- 客户端握手结束的通知,并把之前的信息做个整理,提供给服务器用来校验
- 服务器最后的回应
通过客户端返回的第三个随机数,通过加密算法,产生本次通信的
会话秘钥,最后向客户端发送消息
- 加密算法改变通知
- 服务器握手结束的通知,并把之前的信息做个整理,提供给客户端用来校验
通过上述的四次握手,整个TLS的握手阶段全部结束,后续的加密通信就是用http协议
总结
今天浅谈了Go的习题(三十四),主要介绍了GO面试中会出现的问题,接下来会继续分享其他的习题的相关知识,对于一个刚入门的我来说,还有许多地方需要学习,有错误的地方欢迎大家指出,共同进步!!