关于SSL与TLS

about SSL and TLS

Posted by alovn on September 16, 2020

什么是SSL和TLS

  • 安全套接字层SSL (Secure Socket Layer)。
  • 运输层安全TLS (Transport Layer Security)

它们是运输层广泛使用的两种安全协议。

SSL协议是Netscape公司在1994开发的安全协议,广泛应用于各种网络应用。SSL作用在应用层的HTTP和运输层之间,在TCP之上建立起一个安全通道,为通过TCP传输的应用层数据提供安全保障。

1995年Netscape公司把SSL转交给IETF,希望能够把SSL进行标准化。于是IETF在SSL 3.0的基础上设计了TLS协议,为所有基于TCP的网络应用提供安全数据传输服务。

SSL是TLS的基础,也可以说TLS是标准化之后的SSL。

TLS 1.0与SSL 3.0的差异非常微小, 新版本的TLS 1.2、TLS 1.3已经发布了。

工作原理

在发送方,SSL接收应用层的数据,对数据进行加密,然后把加了密的数据送往TCP套接字。在接收方,SSL从TCP套接字读取数据,解密后把数据交给应用层。

应用层中使用SSL/TLS最多的就是HTTPS, 很多网站已经将http的替换或支持了https。协议名http后面加上的s代表security,表明现在使用的是提供安全服务的HTTP协议。现在基本所有浏览器都已支持了SSL和TLS, Chrome更是对未使用https的网站有了警告不安全的提示。

简要过程

SSL的工作简要过程:

(1) 协商加密算法。浏览器A向服务器B发送浏览器的SSL版本号和一些可选的加密算法,B从中选定自己所支持的算法,并告知A。

(2) 服务器鉴别。服务器B向浏览器A发送一个包含其RSA公钥的数字证书,A使用该证书的认证机构CA的公开发布的RSA公钥对该证书进行验证。

(3) 会话密钥计算。由浏览器A随机产生一个秘密数,用服务器B的RSA公钥进行加密后发送给B。双方根据协商的算法产生一个共享的对称会话密钥。

(4) 安全数据传输。双方用会话密钥加密和解密它们之间传送的数据并验证其完整性。

虽然SSL提升了数据传输的安全性性,但是仍然难以应对网络上出现的各种的欺骗行为。