SSL/TLS和SSL VPN

news2024/11/16 4:11:18

1、SSL/TLS

SSL安全套接字层:是一种加密协议,用于在网络通信中建立安全连接。它在应用层和传输层(TCP/IP)之间提供数据加密、服务器身份验证以及信息完整性验证

SSL只保护TCP流量,不保护UDP协议

TLS:传输层安全协议

在SSH3.0版本后,更名为TLS

SSL协议中包含多个子协议,它们协同工作以确保通信的安全性

SSL握手协议:允许服务器和客户端相互认证,并在应用层协议传输数据之前协商出加密算法,哈希算法,和会话密钥等,然后通过这些参数去构建SSL会话

SSL密码变化协议:只有changecipherspec这一个信息,客户端和服务器都可以发送,目的是通知对端,后续的报文都将使用新协商后的加密套件和密钥进行保护和传输

SSL告警协议:告警机制,用于在SSL通信过程中传递与安全性相关的告警信息

SSL记录协议:用于封装高层协议的数据,对应用层数据加密之后,放置在记录层中

这四个协议并不一定同时会出现,握手协议,密码变化协议和告警协议可能在建立SSL会话时按照顺序出现,在数据传输过程中主要出现的是记录协议

1)SSL工作流程

第一步:TCP三次握手,建立网络连接会话

第二步:Client Hello

客户端的随机数:是生成会话密钥的一个参数,该会话密钥需要三个参数共同计算出来

加密套件:将加密算法、鉴别算法常用的组合搭配在一起,用于进行选择

第三步:Server Hello(SSL服务器回复消息)

注意:一般情况下,server hello和服务器的证书是分开发送的,当然也可以在一个数据包中发送

服务器证书是由CA机构颁布的,是通过CA机构的私钥,将服务器的公钥以及一些证书相关的信息进行加密之后的产物。客户端本身具有信任CA的公钥,则可以使用CA机构的公钥对服务器证书进行解密,之后得到服务器的公钥。
注意:服务器的身份认证是强制要求的,必须提供证书,证书如果不合法,则会提供一个选择给客户,可以选择继续访问。但是客户端的认证是可选的,如果需要认证,则服务器会发送请求证书的报文,之后,需要客户端提供自己的证书

Server key exchange:用于提示密钥变更
Server hello done:一条空信息,用于通知客户端服务器已经做好协商最终密钥的准备

也可以通过一个数据包来发送server hello以及证书等信息。

第四步:客户端回应

Pre-master-key:预主密钥,本质也是一个随机数,用于计算最终的会话密钥,但是这个参数可以被服务器的公钥进行加密传输(电脑生成的随机数是伪随机数,所以使用三个伪随机数计算最终的密钥,会更加安全一些。)

第五步:服务器回应

在客户端中,可以携带这个会话复用票据,用于省略会话建立过程中,身份认证的环节,仅协商算法和密钥即可

会话票据:客户端在下次与服务器通信时,可以携带这个Session Ticket,以告知服务器自己希望复用之前的会话密钥。

如果服务器验证通过Session Ticket的有效性,就可以直接使用其中的会话密钥,而无需再次进行完整的TLS握手过程

1、无客户端认证的握手过程

2、有客户端认证

3、会话复用场景

SSL工作流程总结:在TCP三次握手建立网络连接后,客户端向服务器发送Client Hello与服务器协商参数,服务端回复Server Hello确认参数并发送证书。客户端验证服务器证书,生成并使用服务器公钥加密发送预主密钥。服务器解密预主密钥并生成会话密钥,使用会话密钥进行数据传输

2)SSL协议数据传输流程

1. 分片(Fragmentation):SSL协议会将较大的应用数据分成较小的数据块进行传输,以避免单个过大的数据包可能造成的网络拥塞或处理不当的问题

2. 压缩(Compression):SSL 3.0及其后续版本支持数据压缩功能,以减少通过网络传输的数据量,从而加快数据传输速度并节约带宽

3. 增加HMAC(Hashing):HMAC是一种数据完整性检验方法,用于确保数据的完整性不被破坏。SSL协议使用HMAC来确保消息的完整性,防止数据在传输过程中被篡改。

4. 加密(Encryption):SSL协议通过使用对称密钥加密算法(如AES、DES、3DES等)对应用层数据进行加密,以确保数据的保密性。

5. 增加SSL记录首部(Record Header):SSL协议的记录层负责将应用层数据转换为SSL记录,并为每个记录添加首部信息,包括版本号、SSL记录类型、序列号、以及是否包含压缩选项等信息。首部信息之后是对称密钥加密后的应用层数据。SSL记录首部提供了SSL记录的元信息,帮助后续的解密过程正确地组装和解密记录层的数据。

SSL协议脆弱性分析:

  1. 无法保护UDP应用
  2. 客户端假冒
  3. SSL协议不能对抗流量分析

2、SSL VPN

IPSEC在Client to LAN场景下比较吃力的表现:

  1. 在用户认证方面比较薄弱
  2. 因为需要进行参数协商,所以,IPSEC VPN需要客户端安装对应的应用程序;
  3. 因为需要进行感兴趣流的抓取,所以,策略需要进行调整,不太方便;
  4. 因为IPSEC VPN是基于网络层和传输层进行权限管理,但也仅能深入到服务层面,如果我们需要一款可以针对应用层面进行更细细颗粒管理的VPN技术,就不能选择IPSEC VPN

SSL VPN的优势:

  1. 因为SSL协议封装在传输层和应用层之间,仅针对应用层的数据进行保护,这样,在进行组网时,任何场景下都不会影响到网络传输;
  2. SSL VPN采用的是一种基于B/S架构的模式,所以,只要客户拥有浏览器就可以访问,方便快捷;
  3. 最主要的是,和IPSEC VPN针对网络层的控制相比,SSL VPN可以基于应用层做更细颗粒度的控制。

SSL VPN:虚拟网关技术,是一种基于SSL加密技术的虚拟私人网络。可以理解为是用户的一个接入的接口,用户可以通过在浏览去中输入虚拟网关的IP地址(或者域名)访问到虚拟网关,这个过程需要进行用户认证,划分用户的权限。用户认证通过后,虚拟网关会向远程用户提供可也访问的内网资源列表,远程用户通过点击或者触发便可访问到内网的资源。
一台防火墙可以创建多个虚拟网关,每个虚拟网关相互独立,互不影响,不同的虚拟网关可以
配置各自的用户和资源进行单独管理。

SSL VPN的总体流程:

1)认证

本地认证:本地认证就是用户名和密码信息在防火墙本地存储,登陆时在防火墙本地进行比对验证,由防火墙进行判断
服务器认证:用户名和密码信息存储在服务器上,防火墙需要将登录信息发送给服务器,由服务器进行判断,之后将结果返回给防火墙,做出对应的动作

证书匿名认证:需要客户端提交证书,防火墙通过验证客户端的证书来认证用户

要求:

  1. 客户端证书和防火墙上导入的客户端CA证书由同一个CA机构颁发
  2. 客户端证书必须在有效期内
  3. 客户端证书中用户过滤字段必须是防火墙上配置已有的用户。例如,用户过滤字段的结果CN=user00019

证书挑战认证:比证书匿名认证多增加了用户名密码校验,可以理解为双因子验证

2)资源发布

1、Web代理

2、文件共享

3、端口转发

 可以针对所有TCP协议的资源进行发布

使用ActiveX控件

4、网络扩展

需要在用户客户端上安装一张虚拟网卡,会下发一个私网的IP地址和路由

可靠传输模式:

快速传输模式:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1946709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自定义webIpad证件相机(webRTC)

该技术方案可用于各浏览器自定义相机开发 相机UI&#xff08;index.html&#xff09; <!DOCTYPE html> <html lang"zh" prew"-1"><head><meta charset"UTF-8"><meta name"viewport"content"user-sc…

江苏 | 南京恒建视角下混凝土企业的根基和未来

第一视角带您走进本期标杆企业&#xff1a;南京恒建混凝土有限公司 “有根基才有未来。” ——走进南京恒建混凝土有限公司的办公楼&#xff0c;首先映入眼帘的就是这句话。所谓万丈高楼平地起&#xff0c;一砖一瓦皆根基。简单几个字&#xff0c;既能看到脚踏实地的坚守&…

机器学习笔记-01-初识基础(问题-解答自查版)

前言 以下问题以Q&A形式记录&#xff0c;基本上都是笔者在初学一轮后&#xff0c;掌握不牢或者频繁忘记的点 Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系&#xff0c;也适合做查漏补缺和复盘。 本文对读者可以用作自查&#xff0c;答案在后面&#xff0…

DNS续集

1、DNS多域名解析 [rootdns ~]# vim /etc/named.rfc1912.zones 复制5行放在最后面 zone "z.a" IN { type master; file "z.a.zone"; allow-update { none; }; }; zone "4.168.192.in-addr.arpa" IN { type ma…

<数据集>玉米地杂草识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;9900张 标注数量(xml文件个数)&#xff1a;9900 标注数量(txt文件个数)&#xff1a;9900 标注类别数&#xff1a;2 标注类别名称&#xff1a;[Maize, Weed] 序号类别名称图片数框数1Maize8439125142Weed959231048…

rk3588s 定制版 USB adb , USB2.0与USB3.0 区别,adb 由typeC 转换到USB3.0(第二部分)

硬件资源&#xff1a; rk3588s 核心板定制的地板 软件资源&#xff1a; 网盘上的 android12 源码 1 硬件上 客户只想使用 type c 接口中的 usb2.0 OTG 。在硬件上&#xff0c;甚至连 CC芯片都没有连接。 关于一些前置的知识。 1 USB2.0 与 USB3.0 的区别。 usb3.0 兼容2.0 …

USUART代码例程和库函数

USUART代码例程和库函数 一、USUART中重要的寄存器二、USART中发送数据。三、接收数据四、USART发送数据示例代码&#xff08;print重定向&#xff09;五、USART接收数据示例代码六、USART常用的库函数usart_deinit&#xff08;&#xff09;&#xff1a;复位外设USARTusart_bau…

什么是大型语言模型 (LLM)

本章探讨下&#xff0c;人工智能如何彻底改变我们理解和与语言互动的方式 大型语言模型 (LLM) 代表了人工智能的突破&#xff0c;它采用具有广泛参数的神经网络技术进行高级语言处理。 本文探讨了 LLM 的演变、架构、应用和挑战&#xff0c;重点关注其在自然语言处理 (NLP) 领…

【ARM】MDK-STM32g0xx.h文件与Define规则记录

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 记录问题STM32g0xx.h等有关ST的可读文件&#xff0c;尽量勿修改文件格式及对其代码进行添加和删减&#xff0c;记录查找问题的过程中的疑惑&#xff0c;并如何给予客户正确的回复&#xff0c;帮助销售完成验收&…

VBA实例-从Excel整理数据到Word

实现目录 功能需求数据结构复制数据到新sheet并分类数据添加序号、日期、时间三列数据添加序号列添加时间列 将名称和类别复制到word文件中将参数5和参数9中的一个复制到word文件中 实例 功能需求 1、将原始数据中不要的数据剔除 2、原始数据中增加序号、日期和时间三列数据&a…

富唯智能转运机器人:高效、智能、未来的选择

在现代工业中&#xff0c;高效的物流和物料处理是提升生产效率的关键。富唯智能转运机器人&#xff0c;以其卓越的技术和智能化的设计&#xff0c;为各行业提供了完美的解决方案。 产品概述 富唯智能转运机器人搭载ICD系列核心控制器&#xff0c;拥有多种移载平台&#xff0c…

【目标检测】Yolo5基本使用

前言 默认安装好所有配置&#xff0c;只是基于Yolo5项目文件开始介绍的。基于配置好的PyCharm进行讲解配置。写下的只是些基本内容&#xff0c;方便以后回忆用。避免配置好Yolo5的环境&#xff0c;拉取好Yolo5项目后&#xff0c;不知道该如何下手。如果有时间&#xff0c;我还是…

我在Vscode学Java集合类

Java集合类 一、集合1.1 集合和数组之间的对比1.2 集合框架的核心接口1.3 集合框架中的实现类单列集合双列集合 1.4 集合框架的特点 二、 Collection集合与Iterator迭代器2.1 Collection的概述2.1.1 常用方法增加元素的方法修改元素的方法删除元素的方法查询元素的方法遍历集合…

Delphi5实现鱼C屏幕保护程序

效果图 鱼C屏幕保护程序 添加背景图片 在additional添加image组件&#xff0c;修改picture属性上传图片。 这个图片可以截屏桌面&#xff0c;方便后面满屏不留白操作。实现无边框 即上面的“- □ ”不显示 将Form1的borderstyle属性改为bsnone实现最大化&#xff0c;满屏 将…

mac OS matplotlib missing from font(s) DejaVu Sans

如果能搜索到这篇文章&#xff0c;我猜你遇到了和我一样的问题&#xff1a;matplotlib绘图中文乱码。如下&#xff1a; 出现这个问题的原因是&#xff1a;matplotlib使用的字体列表中默认没有中文字体。 这里说一种解决方案&#xff1a;我们可以在文件中手动指定matplotlib使用…

springcloud接入skywalking作为应用监控

下载安装包 需要下载SkyWalking APM 和 Java Agent 链接: skywalking 安装 下载JDK17&#xff08;可不配置环境变量&#xff09; 目前skywalking 9.0及以上版本基本都不支持JDK8&#xff0c;需要JDK11-21&#xff0c;具体版本要求在官网查看。 我这里使用的是skywalking9.…

开发桌面程序-Electron入门

Electron是什么 来自官网的介绍 Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。 总…

Audio Mixer Examples

简介 Audio Mixer 是在 Unity 5.0 版本中首次引入的音频混合器工具&#xff0c;它可以帮我们处理声音的分组管理、音效模拟、情景再现等重要业务。 功能入口 在资产视口单击鼠标右键 选择 Create 选项 选择 Audio 选项 点击 Audio Mixer Audio Mixer Assets 的属性面板 …

第一讲:NJ本地配置

本地配置:就是和CPU本地放在一起的系统配置,不是通过网络通信等方式配置的。 NJ本地系统配置 一、CPU机架(即CPU所在的机架) 如图所示最右边数量是有限制的,每个机架最多可放置10个扩展IO单元 二、扩展机架(1个本地的NJ扩展系统中,最多可以扩展3个机架,且每个机架最多…

从数据时代到智能时代,星环科技信雅达联合发布金融全栈解决方案

近年来&#xff0c;星环科技与信雅达在金融行业的多个关键领域展开了广泛而深入的合作&#xff0c;推出了一系列面向金融科技领域的联合解决方案。此次合作基于星环科技在大数据、人工智能和云计算领域的先进技术&#xff0c;以及信雅达在金融领域的深厚积累&#xff0c;围绕数…