【ARM】SSL与TLS简介-2022

SSL(Secure Sockets Layer)安全套接字协议。


TLS(Transport Layer Security)传输层安全。


二者是为网络通信提供安全和数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络的连接进行加密。

七层模型

作用
应用层应用层是网络体系中最高的一层,也是唯一面向用户的一层,为用户提供常用的应用程序,每个网络的应用都对应着不同的协议。
表示层数据编码和转化,以确保以一个系统应用层发送的信息,可以被另一个系统应用层识别
会话层建立、管理、终止会话。对应主机进程,指本地主机与远程主机正在进行的会话,SSL/TLS就是在这一层进行的。
传输层建立、维护和管理端到端的连接,控制数据传输方式。
网络层进行逻辑地址寻址,实现不同的网络之间的路径选择。数据传输线路选择,IP地址及路由选择
数据链路层以太网所在的层,进行物理寻址
物理层物理层确保原始的数据可在各种物理媒介上传输,主要是物理劫持传输媒介(网线或者无线)

从上表可看出,SSL/TLS是在传输层和应用层之间,我们在使用TCP通信时Socket 该怎么用还怎么用,只是在应用层与TCP之间经过了加密。SSL/TLS不只是用在https,只要是基于网络传输加密的都可以用,比如MQTT通信协议。


TLS与SSL的差异很多,简单可以认为TLS是SSL的升级版本,历史版本如下:

SSL1.0 最早的版本,并没有发布。

SSL2.0 发布了,但有严重BUG。

SSL3.0 发布了,并得到大规模应用。

TLS1.0 发布了,是SSL的升级,相当于SSL3.1

TLS1.1 发布了,相当于SSL3.2

TLS1.2 发布了,相当于SSL3.3


在mebedtls库中TLS的版本号宏定义也能验证上述的定义,比如TLS1.2其主版本号是3,子版本号也是3,其实对应的就是SSL3.3。


SSL/TLS加密是通过CA证书中的公钥和服务器的私钥来实现的.所谓公钥就是公开的密钥,给client来使用的,如果只有公钥,那显然是不安全的,只要访问服务器,都可以拿到公钥,所以与公钥对应的还有私钥,相当于一个密码本 被撕开了两半,一半作为公钥给客户端,另一半则作为私钥,存放在服务器中,经过公钥加密后的消息,只能通过私钥才能解密.