SSL/TLS发展历程及原理简介

SSL/TLS发展历程及原理简介_第1张图片
本文的初衷是:随着数字信息时代的到来(DT), 生活中的方方面面几乎可以完全数字信息化,例如个人性别、地址、联系方式、财产、生活习惯、饮食习惯、工作情况、学历信息、健康状况、兴趣爱好等等都存储到互联网上,数据安全越来越重要,国家、公司、个人越来越重视信息安全。而SSL/TLS相比于其他的安全协议,如IPSec等协议,存在诸多优势,应用场景更加广泛,更加常用。此外还有一个非常重要的原因:因为常用、重要,各个公司都在使用,导致SSL/TLS是面试中的一个重难点,也是重灾区。

综合以上原因,因此准备详细整理下SSL/TLS相关知识,并由浅入深,逐步从原理深入到实现。文章计划包括如下内容:

  • SSL/TLS的发展历程
  • SSL/TLS的协议原理
  • 常见的SSL/TLS实现方式, 如openssl、golang中的实现原理
  • TLS卸载
  • SSL VPN

说句实话,如果能把上述内容整理完毕,我估计能写成书…估计又要出一个专栏了,前一个IPsec专栏的坑还没有填呢!
加油吧,打工人

SSL/TLS专栏导航页


2. SSL/TLS发展历程

2.1 SSL协议

SSL/TLS协议最初叫做SSL协议(Secure Socket Layer),它是网景(Netscape)公司在1990年推出的私有协议,用于保护WWW的通讯安全。关于网景公司,我特意去搜索了下,网景浏览器在90年代相当火爆,市场占有率高达90%,后来被美国在线收购。但由于某些原因,在2003年7月15日解散。不过,就单单一个SSL协议,广泛用于当今的互联网总,网景公司便功不可没,毕竟能将公司内部私有协议做成RFC标准的公司,技术水平绝对不会差。

SSL协议共推出了3个版本:

  • SSL1.0
  • SSL2.0
  • SSL3.0

由于SSL1.0和SSL2.0存在严重问题,前两个协议逐渐被重构后的SSL3.0所替代

2.2 TLS协议

到了1999年,SSL协议在互联网中应用特别广泛,已经成为事实上的互联网标准。于是,在1999年IETF组织将SSL3.0协议规范进行了标准化,便成了TLS协议(Transport Layer Secure)。不过由于SSL3.0和TLS之间存在加密算法上的差异,因此不能互相操作。他们是两个不同的协议。

之后TLS协议也经历了多个版本的迭代优化:

  • TLS1.0
  • TLS1.1
  • TLS1.2
  • TLS1.3

现在的网络环境中,TLS1.2和TLS1.3应用的更为广泛:

SSL/TLS发展历程及原理简介_第2张图片

人们将这两个协议统称为SSL/TLS协议。下文中仍然采用SSL/TLS的称谓进行介绍,但是实际上内容更多的为TLS协议的相关内容。

2.3 SSL/TLS原理简介

这里先对SSL/TLS协议做一个简单的介绍,方便大家对此协议有一个整体的认识。

SSL/TLS协议严格的说位于OSI-7层模型的会话层,在传输层(TCP, UDP)协议之上。网络协议关系图

SSL/TLS发展历程及原理简介_第3张图片
SSL/TLS发展历程及原理简介_第4张图片

SSL/TLS协议是一个分层协议,本身可以分为上下两层:

  • 下层为TLS记录层协议(record layer protocal)
  • 上层为TLS握手层协议(handshake layer protocal)

SSL/TLS发展历程及原理简介_第5张图片

在RFC4346中也这样分类,不过上层协议不只是握手协议, 也包括应用层数据、告警协议、密码变更协议以上四种统称之为TLS Handshake Protocal

SSL/TLS发展历程及原理简介_第6张图片

换句话说:

Record层是SSL/TLS的基础封装协议,所有的TLS交互报文都需要通过TLS Record 层进行封装。

从下图可以看出:无论应用层数据还是TLS握手协议,都经过Record Layer进行封装。解析时通过ContentType字段进行区分。

SSL/TLS发展历程及原理简介_第7张图片

SSL/TLS协议通过握手协议进行参数协商。协商的参数有:采用的加密算法、认证算法、摘要算法、密钥配送算法等等。通过握手协议,通信双方协商出相同的加密套件和密钥信息,后面便可以使用协商出的结果对双方的交互报文进行加密,从而实现安全可靠的信息传递。

目前SSL/TLS应用最多的场景便是:

  • 与HTTP结合组成HTTPS。这是使用最多的场景
  • 除此之外还有可以保护SMTPs、POP3s等

你可能感兴趣的:(SSH_TLS_HTTPS,SSL,TLS,SSL/TLS,HTTPS)