首页 > 其他分享 >SSL协议

SSL协议

时间:2023-11-14 16:04:07浏览次数:32  
标签:协议 加密 记录 SSL 密钥 数据

学习自: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还提供了身份验证、访问控制功能,以确保只有授权用户才能访问特定资源。

 

标签:协议,加密,记录,SSL,密钥,数据
From: https://www.cnblogs.com/ShineLeBlog/p/17831802.html

相关文章

  • TCPIP 协议族
    TCP/IP协议族通常我说TCP/IP是指TCP/IP协议族。它是基于TCP和IP这两个最初的协议之上的不同的通信协议的大集合。例如:http、https、ftp、icmp、arp、rarp、smtp(简单邮件传输协议)一个网络请求是怎么传输的?我们拿访问浏览器举个栗子,如图所示:TCP、UDP有什么区别?各有......
  • OpenSSL学习(Secure Socket Layer)2023/11/13
    示例OpenSSL版本为OpenSSL3.0.215Mar2022(Library:OpenSSL3.0.215Mar2022)别搞错了!搞错容易在sm2签名验签出问题生成自签名证书opensslreq-x509-newkeyrsa:2048-keyoutmykey.pem-outmycert.pem-days365req:表示进行证书请求和生成。-x509:表示生成自......
  • FTDI的MPSSE使用示例(SPI协议背景知识简介及其FT4232H配成USB to SPI使用实例)
    MPSSEApplicationExample:http://ftdichip.cn/Support/SoftwareExamples/MPSSE.htmMPSSE:AN_129FTDIUSBToJTAGTAPExampleMPSS:AN_114FTDIUSBtoSPIExampleMPSSE:AN_113FTDIUSBtoI2CExampleMPSS:AN_114FTDIUSBtoSPIExampleFTDIMPSSE(Multi-Pr......
  • Qt - Http协议
    前言本篇文章来给大家讲解QT中的Http协议,Http协议主要用于网络中数据的请求和响应,那么这篇文章将给大家讲解一下这个协议。一、HTTP概述HTTP(超文本传输协议)是互联网上应用最为广泛的协议之一,它定义了客户端和服务器之间进行通信的规则。HTTP是一种无状态的协议,它通过请求-响应......
  • 个微协议开发/微信个人号二次开发/ipad协议/api接口
    E云管家,是完整的第三方服务平台,并基于IPAD协议8.0.37开发出的最新个微API服务框架。你可以通过API实现个性化微信功能(例云发单助手、社群小助手、客服系统、机器人等),用来自动管理微信消息。用户仅可一次对接,完善所有功能。可实现分布式部署,批量管理服务器。如果您不想自己部......
  • CentOS7编译安装openssl1.1.1
    Centos7默认提供的openssl版本是1.0.2的,想要升级openssl版本则需要手动进行编译一、下载openssl1.1.1cd/usr/local/src/wget--no-check-certificatehttps://www.openssl.org/source/openssl-1.1.1d.tar.gz二、创建安装目录mkdir-p/usr/local/openssl 三、解压......
  • docker Nginx ssl 配置
     nginx版本:1.21.1证书获取阿里云:_xxxx.xxxxx.com.pem、_xxxx.xxxxx.key域名:xxxx.xxxxx.com一、ssl 443端口二、非443端口 nginx.confserver{#监听端口,切记,12000后面必须加ssllisten12000ssl;#域名server_namexxxx.x......
  • Filebeat采集通用基于S3协议的对象存储作为输入源
    一背景随着云计算和大数据技术的快速发展,越来越多的组织和企业选择将数据存储在云端的对象存储服务中。对象存储服务提供了高可靠性、可扩展性和低成本的存储解决方案,因此成为了许多应用场景的首选。S3(SimpleStorageService)是亚马逊AWS提供的一种对象存储服务,许多云厂商也提供了......
  • ??TCP协议:三次握手、四次挥手,你真的了解吗?
    什么是TCP网络分层应⽤层应用层是网络协议栈中的最顶层,主要负责应用程序之间的通信。其中一种常见的应用层协议是HTTP协议,它定义了应用程序之间如何传递报文。传输层传输层是为两台主机之间的应用进程提供端到端的逻辑通信的层级。其中一种常见的传输层协议是TCP协议,它负责可......
  • 单总线协议
    单总线线(1-wire)是美国DALLAS公司推出的外围串行扩展总线技术。与SPI、I²C串行数据通信方式不同,它采用单根信号线,在主机和从机之间通信。常见的w1芯片:at21cs01,ds18b20,ds28e05等。1.驱动基于zynq7020采用gpio方式模拟读写at21cs01器件。1.1基础信息gpio:PS_MIO11,即板卡上......