深入浅出HTTPS(宏观了解tls协议)

102 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

深入浅出HTTPS(宏观了解tls协议)

TLS和SSL

诞生原因

应用层协议在实践应用中面临着很多安全问题,基于此考虑,SSL协议逐渐成为了一个独立的协议,该协议能够保证网络通信的认证和安全问题

SSL三大版本

  • SSL v1
  • SSL v2
  • SSL v3

TLS的诞生

1996年,IETF组织在SSL v3的基础上进一步标准化了该协议,并取名为TLS v1.0

特征

  • 复杂性
  • 严谨性

定位

在这里插入图片描述 位于应用层和传输层之间

TLS/SSL协议优点

  • 数据是机密的:通信两端传输的数据应该是安全的,不可伪造和篡改的。
  • 互操作性:TLS/SSL协议是标准的,任何开发者基于TLS/SSL RFC设计规范都可以实现该协议,开发者也很容易在应用中引入TLS/SSL协议。
  • 可扩展性:密码学算法是不断迭代的,随着时间的推移,会出现更安全的算法,为了保障持续的安全,TLS/SSL协议允许动态地引入新的算法。由于通信体之间环境是不一样的,协议允许双方协商出都支持的密码学算法,可以说TLS/SSL协议是非常灵活的,TLS/SSL协议也有很多的扩展支持扩展性。
  • 效率:解决方案必须是高效的,TLS/SSL协议涉及了很多密码学算法的运算,增加了通信延时和机器负载,这也遭到了很多人的诟病,但TLS/SSL协议发展到现在,有一些新的技术和解决方案在逐步提升TLS/SSL协议的效率

完整流程

HTTPS设计得很巧妙,主要由两层组成,分别是握手层和加密层。 在这里插入图片描述 握手层在加密层的上层,握手层提供加密层所需要的信息(密钥块),对于一个HTTPS请求来说,HTTP消息在没有完成握手之前,是不会传递给加密层的,一旦握手层处理完毕,最终应用层所有的HTTP消息交由加密层进行加密。

握手层(重点)

客户端和服务器端交换一些信息,比如协议版本号、随机数、密码套件(密码学算法组合)等,经过协商,服务器确定本次连接使用的密码套件,该密码套件必须双方都认可,客户端通过服务器发送的证书确认服务器身份后,双方开始密钥协商,最终双方协商出预备主密钥、主密钥、密钥块,有了密钥块,代表后续的应用层数据可以进行机密性和完整性保护了,接下来由加密层处理。

加密层

加密层有了握手层提供的密钥块,就可以进行机密性和完整性保护了,加密层相对来说逻辑简单明了,而握手层在完成握手之前客户端和服务器端需要经过多个来回才能握手完成,这也是TLS/SSL协议缓慢的原因,增加了网络延迟。 在这里插入图片描述 在这里插入图片描述