数据传输安全--SSL VPN

news2024/11/15 11:37:57

目录

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

SSL VPV

SSL VPN优势

SSL协议

SSL所在层次

SSL工作原理

SSL握手协议、SSL密码变化协议、SSL警告协议三个协议作用

工作过程

1、进行TCP三次握手、建立网络连接会话

2、客户端先发送Client HELLO包,下图是包的内容

例子

3、SSL服务器回复消息

例子

4、客户端的回应

例子

5、服务器最后的回应

例子

三种场景

无客户端认证的握手过程

有客户端认证

会话复用场景

SSL协议数据传输流程

SSL协议缺点

SSL VPN

SSL VPN的总体流程

用户认证

资源发布

web代理

文件共享

端口转发

流程

网络拓展

可靠模式

快熟传输模式

配置

用户认证

选项说明

类型

独占型

共享型

资源发布

创建web代理

选项解释

Web改写和Web-Link区别

门互连接

创建文件共享资源

选项解释

创建端口转发

选项解释

客户端自动启用

保持连接

要发布那个端口就发布那个端口

网络拓展创建

选项解释

隧道保活间隔

可分配IP地址池范围

可访问网段

角色授权中关联资源

终端安全

页面定制


SSL现在叫TLS协议

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

1、在用户认证方面比较薄弱,IKE V1不支持用户接入认证,V2的EAP认证没有大范围铺设开

2、因为双方要去协商参数,所以客户端需要额外安装支持IPSec的应用或者程序,对于客户不是一个很好的体验

3、因为IPSec可以基于感兴趣流进行选择性保护,所以策略需要进行调整不太方便

4、因为IPSec是基于网络层的,可以基于网络和传输层基于权限管理,但是我们需要一款针对应用层面需要一个更细颗粒度的,IPSec很难在应用层做一个很精细的控制

SSL VPV

基于上面的IPSec在Client to LAN场景下的缺点可以使用SSL VPN技术,下面看一下SSL VPN和IPSec VPN的优势

SSL VPN优势

1、SSL VPN是基于应用层封装在传输层和应用层之间,他不影响网络层的东西,所以组网灵活

2、SSL VPN采用的是一种基于B/S架构的模式,所以,只要客户拥有浏览器就可以访问,方便快捷

3、最主要的是,和IPSEC VPN针对网络层的控制相比,SSL VPN可以基于应用层做更细颗粒度的控制

SSL协议

SSL协议可以和很多协议结合例如SSL+HTTP=HTTPS、SSL+Telnet=SSH、SSL+FTP=FTPS

(注:SSL协议只能保证基于TCP协议的应用层安全,不可以保证基于UDP协议的应用层安全,但是SSL VPN可以保证基于UDP协议的应用层安全)

SSL所在层次

在应用层和传输层之间

SSL工作原理

SSL分了两层协议

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

SSL握手协议、SSL密码变化协议、SSL警告协议是进行数据协商的时候用的,在进行数据传输的时候就看不见了

SSL握手协议、SSL密码变化协议、SSL警告协议三个协议作用

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

2、SSL密码变化协议这个协议只包含一条消息就是changecipherspec,告诉对方我要使用新协商的算法和密钥进行加密传输,客户端和服务端都可以发送

3、SSL告警协议,出现故障啥的,告诉对方,告警机制

工作过程

在进行完成三次握手后的步骤

1、进行TCP三次握手、建立网络连接会话

2、客户端先发送Client HELLO包,下图是包的内容

客户端的随机数:客户端携带的随机数是成成会话密钥的一个参数,这个会话密钥需要通过三个参数共同计算,这是其中之一

加密套件:将加密算法和哈希算法等等一些算法搭配一下,类比餐馆里面的套餐

支持的压缩算法:可有可无看你是否需要

TLS的版本不同是客户端现在使用的TLS,和自己支持的TLS

例子

3、SSL服务器回复消息

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

合在一起发送

Server key exchange --- 用于提示密钥变更
Server hello done --- 一条空信息,用于通知客户端服务器已经做好协商最终密钥的准备
服务器证书是由CA机构颁布的,是通过CA机构的私钥,将服务器的公钥以及一些证书相关的
信息进行加密之后的产物。客户端本身具有信任CA的公钥,则可以使用CA机构的公钥对服务
器证书进行解密,之后得到服务器的公钥。
注意:服务器的身份认证是强制要求的,必须提供证书,证书如果不合法,则会提供一个选择
给客户,可以选择继续访问。但是,客户端的认证是可选的,如果需要认证,则服务器会发送
请求证书的报文,之后,需要客户端提供自己的证书。

4、客户端的回应

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

5、服务器最后的回应

例子

session ticket会话票据,这个东西用于会话复用这个里面记录了整个身份认证的信息,这个在以后客户端还想找的话,可以省略身份认证,但是密钥还需要重新协商。这个东西在第一个client hello包中是有这个字段的,如下图,但是下图中由于是第一次建立SSL通道所以没有携带这个字段的值,如果携带了就可以不用身份认证了。

三种场景

无客户端认证的握手过程

有客户端认证

会话复用场景

SSL协议数据传输流程

开始收发数据SSL如何做,如下图

SSL分片是为了加密,分组加密要分组。不要理解为TCP或IP的分片

先压缩再加密,这样更节省资源,如果定义了压缩算法就压缩,没定义就不压缩

增加HMAC。是增加密钥的HMAC算法,是要做完整性校验的,进行完整性校验生成的hash会放在后面的黑色部分

加密,加密是将数据和完整性校验的值一起加密

增加SSL头部

之后的工作就与SSL没关系了

SSL协议缺点

1,无法保护UDP应用
2,客户端假冒,在认证的时候只强制认证服务器的认证,但是不限制客户端认证
3,SSL协议不能对抗流量分析,比如所IP地址没有被遮掩,攻击者可以通过对于IP地址的分析,达到对你目的的分析

SSL VPN

SSL VPN又被称为虚拟网管技术

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

SSL VPN的总体流程

角色授权用来关联用户认证和资源访问,类似于防火墙管理员角色

用户认证

本地认证:本地认证就是用户名和密码信息在防火墙本地存储,登陆时在防火墙本地进行比对验证,由防火墙进行判断

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

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

证书匿名:

证书匿名认证流程

首先CA证书给用户颁发一个客户端证书,再给服务器颁发一个客户端CA证书(这个相当于一个CA公钥,证明CA身份的一个证书),用户把客户端证书发送给防火墙,然后服务器使用客户端CA证书的公钥解密客户端证书,获取客户端的信息和公钥,进行身份校验和身份认证。挑战密码认证在进行证书认证的情况下还要进行密码认证

证书匿名认证的要求

1,客户端证书和防火墙上导入的客户端CA证书由同一个CA机构颁发
2,客户端证书必须在有效期内
3,客户端证书中用户过滤字段必须是防火墙上配置已有的用户。例如,用户过滤字段的结果CN=user00019,这个的意思是防火墙必须创建一个用户用户叫user00019,和客户端产生对应关系,用来确认客户权限

资源发布

web代理

防火墙在自身发布资源的时候不是原本的URL,而是改写后的(如上图第二步的URL),然后用户点击连接,用户就先和虚拟网关通信,然后虚拟网关收到后会解析收到的URL将头部去掉,在内网中寻早对应资源服务器,对应资源服务器收到请求后将资源页面返回给虚拟网关,虚拟网关将资源返回给用户

文件共享

SMB:windows下的一款文件共享协议

NFS:Linux下的一款文件共享协议

上图文件共享的过程中防火墙还是一个代理的身份,不过多做了一个翻译的工作,将SMB内容转化为HTTP的内容将HTTP的请求内容转换为SMB的请求

端口转发

可以针对所有TCP协议的资源进行发布,非web资源,web资源通过web代理可以发布
如果说开放一些服务类的资源,比如说时telnet这种资源,很难整,这时候引入一种控件
A ctiv X 控件---端口转发客户端
流程

首先本地登陆SSL VPN,下载ActivX控件,下载资源信息(这个可以手动下发,也可以自动下发),然后这个ActivX会监听只要监听到了客户端发起telnet连接,客护端就会创建一个TCP环回连接(这样做的原因是,如果说没有创建这个连接,Telnet每做一个指令,这个流量就会推到虚拟网关,然后再推到服务器上,每次推送都要创建一个新的连接这样很耗费资源,所以先创建一个和自己的TCP连接,将请求攒一会,攒了一会以后一块往虚拟网关推送),然后客户端构建私有报文头(构建私有报文头就是将这个东西以HTTPS信息发送,相当于一个将Telnet命令转化为HTTPS的格式的过程)建立SSL连接,将信息发送给虚拟网关,虚拟网关和对应资源服务器建立TCP连接,然后服务器做响应,然后虚拟网关再将资源发送给客户端。

网络拓展

可以针对UDP资源进行传输

过程

下图是一个语言服务的例子,语音服务使用的是UDP

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

首先登陆到虚拟网关,就是建立SSL连接过程,然后就可以进行安全加密传输,虚拟网关会先下发IP地址(私网地址)和路由,只要访问私网的任何一个资源,就可以让客户端走这个虚拟网卡,让客户端走SSL VPN,然后就是业务请求过程了。那么如何通过私网的IP地址,引导虚拟网卡后通过公网传递给内网,如下图通过不同的封装方式来解决问题。

可靠模式

这个封装是新加一个头部并且将IP UDP SIP全部封装到SSL加密里面,然后跨越公网找虚拟网关

快熟传输模式

封装协议变成了QUIC,变的更快

配置

用户认证

选项说明
类型
独占型

防火墙可以分多个虚拟系统,独占型就是只给某个虚拟系统用

共享型

防火墙可以分多个虚拟系统,共享型就是给多个虚拟系统用

资源发布

创建web代理

选项解释
Web改写和Web-Link区别

门互连接

勾选后虚拟网关中资源列表会显示

创建文件共享资源

选项解释

资源路径就是内网中资源共享的路径

类型就是SMB或者NFS

创建端口转发

选项解释
客户端自动启用

这个就是下载相关资源信息,开启这个就是自动下载,虚拟网关将相关资源信息自动推到客户端,推到客户端后,客户端就可以监听这个资源

保持连接

SSL会话长时间没有数据通过的话会自动断开,就比如说Telnet,你敲完几个指令没有动作了,SSL因为时间长了没有动作,将连接断开以后,再去Telnet的话就得重新去连,体验不好,保持连接的话就可以一直保持这个SSL会话

要发布那个端口就发布那个端口

所有服务通过端口号发布

网络拓展创建

选项解释
隧道保活间隔

间隔多长时间发送一次保活包

可分配IP地址池范围

给虚拟网卡下发的地址范围

可访问网段

可以访问的内网网段

角色授权中关联资源

然后这个角色的用户就可访问该资源

注:网络拓展只要勾选上就可以使用

终端安全

在用户登陆虚拟网关的时候,我们可以做一些检查,检查客户端有没有安装杀毒软件,有没有防护

页面定制

可以定制登陆进去的页面样式

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

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

相关文章

目标检测 | YOLO v4、YOLO v5、YOLO v6理论讲解

☀️教程:霹雳吧啦Wz ☀️https://space.bilibili.com/18161609/channel/seriesdetail?sid244160 一、YOLO v4 YOLO v4在2020年的4月发布,YOLO v4结合了大量的前人研究技术加以组合,实现了速度和精度的平衡,该论文包含大量的tric…

二叉树 N0=N2+1

N0 叶子节点,度为 0 的节点; N1 度为 1 的节点; N2 度为 2 的节点 度为 0 的节点为:H、I、J、K、G 度为 1 的节点:E、F 度为 2 的节点:A、B、D、C N0 N2 1,即:度为 0 的叶子节点 …

C++STL详解(一)——string类的接口详解(下)

目录 一.string的大小和容量成员函数 1.1size()和length() 1.2capacity() 1.3resize() 1.4reserve() 1.5clear()和empty() ​编辑 二.string元素的访问 2.1operator[]和at() 2.2范围for 三.string中迭代器相关函数 3.1begin()和end() 3.2rbegin()和rend() 四.string…

Anaconda +Pytorch安装教程

Anaconda Pytorch安装教程 Anaconda安装 小土堆的安装教程:PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili Free Download | Anaconda 这里自己选一个文件夹安装即可 第一个红框表示添加图标到开始菜…

细说MCU用自带的波形发生器实现DAC输出的方法

目录 一、参考示例 二、配置参数 1.配置DAC 2.配置TIM3 三、代码修改 四、查看结果 DAC模块自带的硬件波形发生器只有三角波(Triangle wave)和 (Noise wave)两种。此外,如果配置了Trigger2参数,在波形发生模式中就出现(并且仅出现)锯齿波的选项(Sa…

Codeforces Round 874 (Div. 3)(A~D题)

A. Musical Puzzle 思路: 用最少的长度为2的字符串按一定规则拼出s。规则是&#xff1a;前一个字符串的尾与后一个字符串的首相同。统计s中长度为2的不同字符串数量。 代码: #include<bits/stdc.h> #include <unordered_map> using namespace std; #define N 20…

vue3前端开发-小兔鲜项目-登录功能的业务接口调用

vue3前端开发-小兔鲜项目-登录功能的业务接口调用!这次&#xff0c;正式调用远程服务器的登录接口了。大家要必须使用测试账号密码&#xff0c;才能验证我们的代码。 测试账号密码是&#xff1a;账号&#xff08;xiaotuxian001&#xff09;&#xff1b;密码是&#xff08;1234…

【python】sklearn基础教程及示例

【python】sklearn基础教程及示例 Scikit-learn&#xff08;简称sklearn&#xff09;是一个非常流行的Python机器学习库&#xff0c;提供了许多常用的机器学习算法和工具。以下是一个基础教程的概述&#xff1a; 1. 安装scikit-learn 首先&#xff0c;确保你已经安装了Python和…

什么是hdfs如何使用驱动程序访问hdfs

目录 什么是hdfs 主要特点包括&#xff1a; 架构组成&#xff1a; 应用场景&#xff1a; 如何使用驱动程序访问hdfs 准备工作环境&#xff1a; 启动 Hadoop 服务 可能遇到的问题&#xff1a; ssh验证失败 验证Hadoop服务 对hdfs进行文件操作 什么是hdfs HDFS&#x…

【数据结构】栈(基于数组、链表实现 + GIF图解 + 原码)

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构 &#x1f4da;本系列文章为个人学…

Linux--Socket 编程 UDP(简单的回显服务器和客户端代码)

目录 0.上篇文章 1.V1 版本 - echo server 1.1认识接口 1.2实现 V1 版本 - echo server&#xff08;细节&#xff09; 1.3添加的日志系统&#xff08;代码&#xff09; 1.4 解析网络地址 1.5 禁止拷贝逻辑&#xff08;基类&#xff09; 1.6 服务端逻辑 &#xff08;代码&…

Leetcode—769. 最多能完成排序的块【中等】

2024每日刷题&#xff08;149&#xff09; Leetcode—769. 最多能完成排序的块 实现代码 class Solution { public:int maxChunksToSorted(vector<int>& arr) {int ans 0;int mx INT_MIN;for(int i 0; i < arr.size(); i) {mx max(arr[i], mx);if(mx i) {a…

【C++】C++应用案例-旋转图像

旋转图像的需求&#xff0c;在图片处理的过程中非常常见。我们知道对于计算机而言&#xff0c;图像其实就是一组像素点的集合&#xff0c;所以图像旋转的问题&#xff0c;本质上就是一个二维数组的旋转问题。 我们可以给定一个二维数组&#xff0c;用来表示一个图像&#xff0c…

【C++】——红黑树(手撕红黑树,彻底弄懂红黑树)

目录 前言 一 红黑树简介 二 为什么需要红黑树 三 红黑树的特性 四 红黑树的操作 4.1 变色操作 4.2 旋转操作 4.3 插入操作 4.4 红黑树插入代码实现 4.5 红黑树的删除 五 红黑树迭代器实现 总结 前言 我们之前都学过ALV树&#xff0c;AVL树的本质就是一颗平…

Oracle对比两表数据的不一致

MINUS 基本语法如下 [SQL 语句 1] MINUS [SQL 语句 2];举个例子&#xff1a; select 1 from dual minus select 2 from dual--运行结果 1-------------------------------- select 2 from dual minus select 1 from dual--运行结果 2所以&#xff0c;如果想找所有不一致的&a…

软件测试---Linux

Linux命令使用&#xff1a;为了将来工作中与服务器设备进行交互而准备的技能&#xff08;远程连接/命令的使用&#xff09;数据库的使用&#xff1a;MySQL&#xff0c;除了查询动作需要重点掌握以外&#xff0c;其他操作了解即可什么是虚拟机 通过虚拟化技术&#xff0c;在电脑…

富芮坤FR800X系列之按键检测模块设计

FR800X系列按键检测模块 读者对象&#xff1a; 本文档主要适用以下工程师&#xff1a; 嵌入式系统工程师 单片机软件工程师 IOT固件工程师 BLE固件工程师 文章目录 1.概要2.用户如何设计按键检测模块2.1 GPIO初始化2.2按键模块初始化2.3设计中断函数&#xff1a;2.4循环…

【Python面试题收录】Python编程基础练习题①(数据类型+函数+文件操作)

本文所有代码打包在Gitee仓库中https://gitee.com/wx114/Python-Interview-Questions 一、数据类型 第一题&#xff08;str&#xff09; 请编写一个Python程序&#xff0c;完成以下任务&#xff1a; 去除字符串开头和结尾的空格。使用逗号&#xff08;","&#…

【数据库】Quartz2.3 框架 数据库设计说明书

1、 Quartz表说明 2、 quartz 的触发时间的配置 1、 cron 方式&#xff1a;采用cronExpression表达式配置时间。 2、 simple 方式&#xff1a;和JavaTimer差不多&#xff0c;可以指定一个开始时间和结束时间外加一个循环时间。 3、 calendars 方式&#xff1a;可以和cron配合使…

Java-----栈

目录 1.栈&#xff08;Stack&#xff09; 1.1概念 1.2栈的使用 1.3栈的模拟实现 1.4栈的应用场景 1.5栈、虚拟机栈、栈帧有什么区别呢 1.栈&#xff08;Stack&#xff09; 1.1概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操…