五、TLS/SSL协议——数据安全与完整的保镖

0. 前语

在上一节中,我们着重学习了TCP协议。TCP协议是一种点对点的面向连接的传输层。但是TCP协议中并没有安全方面的保障。

在原始的TCP协议中,假设A发送"hello"到B。这个过程中,可能面临着以下的问题:

  • 窃听:"hello"被攻击者C窃听
  • 篡改:"hello"被攻击者C修改为"f**k"发送给B
  • 冒充:C假装是A向B发送消息
           正常情况
A—["hello"]—>B

         /*       [窃听]       */
         
        ┌--->C
A—["hello"]—>B

         /*       [篡改]       */
         
A—["hello"]-C-["f**k"]--—>B


         /*       [冒充]       */
         
C—["I'm A"]—>B

为了保障服务中数据的安全性完整性,TLS/SSL协议应运而生。

1. TLS/SSL协议是什么?

  • SSL (Secure Socket Layer):安全套接字层
  • TLS (Transport Layer Security): 传输层安全协议

SSL的继承者——TLS

协议 发布时间 状态
SSL 1.0 未公布 未公布
SSL 2.0 1995年 已于2011年弃用
SSL 3.0 1996年 已于2015年弃用
TLS 1.0 1999年 于2021年弃用
TLS 1.1 2006年 于2021年弃用
TLS 1.2 2008年
TLS 1.3 2018年
  1. 1994年,Netscape公司推出HTTPS协议,其中使用了 SSL进行加密。设计的主要用于Web的安全传输协议,这种协议在Web上获得了广泛的应用
  2. SSL 1.0因为严重的安全缺陷没有被公开
  3. SSL 2.0 在1995年2月发布,由于多种缺陷(握手没有保护等),2011年被弃用
  4. SSL 3.0在1996年由Netscape工程师完全重新设计。于2015年被弃用
  5. 互联网工程任务组IETF将SSL标准化,于1999年发布TLS 1.0,于2021年弃用,由于加密 算法比较老,容易被攻陷。
  6. TLS 1.1在2006年4月发表,其添加了例如CBC攻击保护等特性,但是对TLS 1.0的缺陷没有太大改进,于2021年弃用
  7. TLS 1.2在2008年8月发表,其添加了SHA-2、AEAD等加密算法和模式。
  8. TLS 1.3在2018年发布,其有众多更新,速度更快,支持更完善。

2. TLS协议位于什么层?

五、TLS/SSL协议——数据安全与完整的保镖

3. TLS协议什么结构?

五、TLS/SSL协议——数据安全与完整的保镖

TLS 协议包括两个协议组―― TLS 记录协议和 TLS 握手协议。

  • TLS记录协议:装载了被发送的消息,将数据分片为可管理的块,有选择地压缩数据,应用 MAC,加密,传输最终数据。接收到的数据被解密验证,解压缩,重组,然后传递给高层应用。
  • TLS握手协议
    • 握手协议:商定密码算法、密钥等
    • 密码规格变更协议:发送密码方式变更的信号
    • 警告协议:发送错误信息
    • 应用数据协议:将承载的应用数据传送到通信对象

4. TLS 如何工作?

五、TLS/SSL协议——数据安全与完整的保镖

5. TLS应用在什么地方?

五、TLS/SSL协议——数据安全与完整的保镖

TLS协议之上可以搭载原有的应用层协议,使其变得更加高安全。其中最著名的应用就是HTTPS,其就是在HTTP协议的基础上搭载了TLS层。

6. TLS安全威胁?

但是TLS协议也不是万无一失,其也存在一些威胁并在不断的改进。

加密算法攻击

对于一些过时、位数低的加密算法,可以直接攻破,获得其私钥信息。

重新协商攻击

重协商机制允许客户端和服务器对重新协商其现有连接的参数。但是这种机制可以被攻击者利用,例如中间人攻击,使得其看起来像是客户端。

降级攻击

这种攻击会诱骗服务器使用较早版本和不太安全的TLS版本。

野兽攻击

CVE-2011-3389是一种明文攻击,通过从SSL/TLS加密的会话中获取受害者的COOKIE值(进而篡改一个加密算法的 CBC的模式以实现攻击目录。

罪恶攻击

CVE-2012-4929是一种因SSL压缩造成的安全隐患,通过它可窃取启用数据压缩特性的HTTPS或SPDY协议传输的私密Web Cookie。在成功读取身份验证Cookie后,攻击者可以实行会话劫持和发动进一步攻击。

心脏滴血

CVE-2014-0160是一个由于缺少边界检查而广泛存在于openssl库中的缓冲区溢出漏洞。

上一篇:阿里云Nginx配置


下一篇:mysql(四)