SSL协议

发布时间 2023-11-14 15:57:05作者: ShineLe

学习自:SSL原理及分析_ssl数据包-CSDN博客

1、前言

SSL协议位于TCP/IP协议应用层协议(HTTP、Telnet、FTP、NMTP)之间,它为二者提供了数据安全性分层机制。它提供的服务包括:数据加密、服务器认证、消息完整性、客户机认证。HTTP协议使用SSL来实现安全通信。

C端和S端传输的数据是通过对称算法(DES、RC4)进行加密的。

2、SSL是什么

SSL全称Secure Socket Layer,安全套接层。

SSL是一种安全传输协议,通常用于在互联网上传输敏感信息,如信用卡号、登录凭证等。它通过在网络连接中添加加密层来提供安全性。SSL协议的基本原理是通过加密数据传输,以保护传输的信息不被非法获取。

3、结构、建立过程

SSL协议分为2层,下层为SSL记录协议,主要负责对上层数据进行分块、压缩、计算并添加MAC、加密,最后把记录块传给对方。

上层为SSL握手协议、SSL密码变化协议、SSL警告协议

1)上层:SSL握手协议

SSL握手协议是建立SSL连接时用到的协议,在SSL连接建立过程中,C端和S端之间会进行一系列握手过程,并协商使用一种共同支持的加密算法和密钥

具体过程:

  1. C端发送连接请求到S端,并请求SSL通信;
  2. S端收到请求之后,会返回公共密钥证书给C端,该证书包含了S端公共密钥证书颁发机构的信息;
  3. C端收到公共密钥证书后,会对证书进行验证,主要验证证书内容是否符合标准、证书是否过期、证书颁发机构是否可靠等等。如果证书验证通过,C端会生成随机密钥,使用S端的公共密钥进行加密,并将加密之后的密钥发给S端;
  4. S端收到C端传来的随机密钥之后,用自己的私有密钥对密钥进行解密。此时C端、S端都拥有了同一份随机密钥,用于之后的加密通信
  5. SSL建立完成之后,双方开始进行加密通信,所有传输内容都会被加密并且密钥相关,确保数据的机密性和完整性。

通过上述过程可以看出,SSL通过加密+证书校验的方式,为通信加上了安全保障,有效地防止传输过程中数据被窃取、篡改等问题。

2)上层:SSL密码变化协议

密码变化协议:C端和S端通过密码变化协议通知接收方,随后的报文都使用新协商的加密算法列表和密钥进行保护和传输

建立过程:

  1. C端与S端建立SSL连接之后,C端发送一条ChangeCipherSpec消息给S端,表示C端要改变对称密钥
  2. S端收到这条消息之后也会发送一条ChangeCipherSpec消息给C端,表示S端也要改变对称密钥
  3. C端与S端都完成了对称密钥的变化之后,就能用新的对称密钥进行通信了。

在SSL连接建立期间,C端和S端会协商出一个对称密钥,用于加密通信中的数据。但由于对称密钥可能存在泄漏、被破解的风险,因此在通信过程中定期更换对称密钥可以提高通信安全性。SSL密码变化协议就是为了实现这个功能而设计的。

3)上层:SSL警告协议

警告协议:允许一方向另一方报告告警信息。消息中包含告警级别描述

SSK/TLS协议中,当C端与S端进行握手时,如果发现存在不安全因素,如证书过期、颁发者不受信任等,就会触发警告协议。

建立过程:

  1. C端、S端在握手过程中,任何一方发现存在安全问题,就会发送一个警告消息。警告消息由警告级别、警告描述组成;
  2. 警告级别:警告、致命等
  3. 警告描述:关于警告类型的详细信息。
  4. 发送警告消息的一方会关闭SSL/TLS连接

通过使用警告协议,SSL/TLS协议可以及早检测到安全问题,并采取相应措施避免或减少安全威胁。同时,警告协议也为SSL/TLS协议提供了一种灵活的方式来处理安全问题,以实现更加安全的通信。

4)下层:SSL记录协议

记录协议是SSL/TLS协议中的一个子协议,用于在C端、S端之间传输应用层数据

建立过程:

  1. 应用程序明文数据传给SSL握手协议
  2. SSL握手协议将数据分为多个小块,并使用SSL记录协议将这些小块进行封装
  3. 对于每个小块,SSL记录协议会增加一个首部,该首部包含以下信息:记录类型、记录版本、记录长度
  4. 记录类型该记录的内容类型,可以是应用层数据、握手协议数据、警告协议数据
  5. 记录版本该记录的版本号,标识了SSL/TLS协议的版本号;
  6. 记录长度该记录的明文数据长度,不含首部
  7. 记录协议使用之前建立的对话密钥对明文数据进行加密,并附加MAC(消息认证码),保证数据的完整性、机密性
  8. C端向S端发送SSL记录协议封装后的数据
  9. S端收到数据后,使用相同的对话密钥进行解密,得到明文数据

通过SSL记录协议,SSL/TLS协议可以保证应用层数据在数据传输过程中的安全性,防止被窃听、篡改、伪造,确保了通信机密性与完整性。同时,SSL记录协议还采用了MAC进行数据完整性验证,进一步增强数据安全性。

4、相关技术

SSL是一种常见的加密协议,用于确保互联网上的数据传输安全

所涉及的技术有:

  1. 握手协议:SSL握手协议是SSL连接建立时所用的协议,包括SSL版本协商、加密算法协商、身份验证、密钥交换等步骤;
  2. 密钥交换:在握手协议中,S端与C端将协商一组密钥,用来对后续通信进行加密解密
  3. 数字证书:为了确保通信双方的身份真实可信,SSL使用数字证书来认证C端、S端身份
  4. 对称加密:在SSL连接建立之后,数据在传输前要经过加密处理,SSL使用对称加密技术对数据进行加密,例如AES、DES等加密算法;
  5. 数字签名:SSL使用数字签名来确保数据完整性,数字签名使用公钥加密数据,保证只有对应私钥持有者才能解密并验证数据真实性

通过以上一系列步骤,SSL可以在保证通信安全的同时,保障通信的可靠性与快速性。这些技术的结合使得SSL能够提供高度安全的网络通信,保证互联网上的数据与隐私。

5、总结

SSL的设计是为了保护网络传输过程中数据安全性、完整性,并可以防止网络攻击。SSL通过使用加密技术来确保用户信息在传输过程中不被窃取、篡改

在SSL协议中,数据包在传输前会被加密,只有接收方才能解密并读取其中的信息。

同时SSL还提供了身份验证、访问控制功能,以确保只有授权用户才能访问特定资源。