当前位置: 首页 > news >正文

SSL---VPN

文章目录

  • 目录

    一.SSL-VPN概述

    优点

     二.SSL协议的工作原理

    三.虚拟网关技术

    用户认证方式

    本地认证

    服务器认证:

    证书匿名认证

    Web代理

    Web-link和Web改写

    端口转发

     网络扩展(允许UDP协议)

    总结


一.SSL-VPN概述

        SLL VPN是一种基于HTTPS(即支持SSL的HTTP协议)的远程安全接入技术。它充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制,从而为用户远程访问公司内部网络提供安全保障。

优点

        SSL VPN具有多项显著特点。首先,它采用无客户端部署,这是因为Web浏览器都内嵌支持SSL协议,使得远程安全接入的使用变得非常简单。此外,SSL VPN工作在传输层和应用层之间,不会改变IP报文头和TCP报文头,也不会影响原有网络拓扑。因此,其部署、配置和维护都相对简便和低成本。

        从安全性角度看,SSL VPN采用公匙加密的方式保障数据在传输过程中的安全性。它使用浏览器和服务器直接沟通的方式,既方便了用户的使用,又通过SSL协议保证了数据的安全。此外,SSL VPN还可以对应用进行精细化管控,对具体的应用进行保护。

         与IPSec VPN相比,SSL VPN具有架构简单、运营成本低、处理速度快和安全性能高等特点。然而,由于SSL VPN是基于WEB开发的,通过浏览器来使用,因此,在保障其安全运营方面,需要不断更新安全技术以应对电脑病毒的多样性。

 SSL 协议封装解析:

 二.SSL协议的工作原理

  • SSL记录协议:应用层的数据加密封装之后,放置在这个记录协议中。
  • SSL握手协议:允许服务器和客户端相互认证,并在应用层协议传输数据之前,协商出一个 加密算法和会话密钥(对称加密算法的密钥)。
  • SSL密码变化协议:通知后面的数据将使用协商出来 的加密算法加密传输。
  • SSL警告协议: 用来在出现错误的时候进行告警 

SSL协议(Secure Socket Layer,安全套接字层)的工作原理主要涉及到在客户端和服务器之间建立一条安全的信息传输加密通道,以确保数据在传输过程中的安全性和完整性。

以下是SSL协议的主要工作原理:前提建立TCP连接

1.客户端发起连接请求

 

2.服务器回应并发送证书

 

 

 该数据包中没有实质参数,仅起到通知作用,通知客户端,服务器已经做好准备进行主 密钥的协商。 

3.密钥交换:客户端

因为此时客户端已经拥有服务器的公钥,所以,发送的参数都是加密(公钥加密,非对 称加密算法)发送的。

  • 1,预主密钥---pre-master-key ---- 注意,最终的会话密钥就是靠三个随机数 生成--- 1,客户端发送的随机数;
  • 2,服务器发送的随机数;
  • 3,预主密钥(加密 发送)---因为机器产生的随机数都是伪随机数,所以,可能存在被破解的风险, 所以,使用三个随机数进行计算,更安全。三个随机数相当于是真随机。
  • 2,编码变更通知---因为此时客户端已经拥有三个随机数,可以计算出最最终的 会话密钥,所以,告知服务器,后面是数据可以加密传输了。
  • 3,结束通知---告知结束,并进行一次验证 

 6.密钥交换:服务端

Session ticket --- 进行会话复用---- 主要记录身份认证信息。----会话结束之后,如 果需要重启会话,在重新进行握手是,客户端发送hello时,可以携带该参数,用于快速 重启会话。(省略了身份认证。) 

 

三.虚拟网关技术

        SSL VPN中的虚拟网关是远程用户访问企业内网资源的统一入口。这个虚拟网关是由FW(防火墙)设备提供的SSL VPN接入服务功能模块,用于处理远程用户的连接请求和管理访问权限。

在设备上部署SSL VPN功能时,管理员需要先创建虚拟网关。每个虚拟网关之间相互独立,互不影响,管理员可以在虚拟网关下配置各自的用户、资源和策略,进行单独管理。虚拟网关本身没有独立的管理员,所有虚拟网关的创建、配置、修改和删除等管理操作都由FW的系统管理员统一完成。

        远程用户通过Web浏览器(客户端)登录虚拟网关,请求建立SSL连接。虚拟网关会向远程用户发送自己的本地证书,进行身份认证。认证通过后,远程用户与虚拟网关成功建立SSL连接,之后虚拟网关会对远程用户进行用户认证,验证用户身份。

        在虚拟网关建立后,管理员还需要在虚拟网关下配置SSL VPN的基本功能、WEB代理业务、端口转发业务、网络扩展业务和页面定制功能,以满足不同用户的访问需求.

用户认证方式

  • 本地认证

        基于本地用户名和密码的认证方式。这种方式要求用户在虚拟网关上拥有账户,并输入正确的用户名和密码才能访问资源。

  • 服务器认证

        通过对接第三方的认证服务器,也是输入用户名和密码,不过这个信息存 储在第三方服务器上,由第三方服务器进行认证判断,之后将结果反馈给防火墙。

  • 证书匿名认证

防火墙通过验证客户端证书的合法性实现身份验证。

身份认证通过需求:

  • 服务器能够使用CA机构颁发的客户端CA证书中包含的公钥能够解开客户端用于身份验证的客户端证书(包含CA私钥)---证明该用户身份的合法性。
  • 服务器通过识别客户端证书用户过滤字段来确认管理员是否配置了并存贮了用户信息从而确认服务器是否允许该用户访问。
  • Web代理

            服务器将访问本地资源的URL发布在虚拟网关的资源列表中,虚拟网关改写该URL(如上图),用户成功登录虚拟网关后通过获取资源列表信息中被改写的URL访问服务器;用户的请求报文会发送给虚拟网关,虚拟网关代替用户向服务器请求资源;然后虚拟网关再次代替服务器给用户回复资源响应报文。

Web-link和Web改写

端口转发

主要针对非web服务且基于TCP协议(例如:SSH,远程登录)

前提:需要下载一个IE浏览器的控件---ActiveX

虚拟网关会将资源资源访问路径(例如:1.1.1.1:23)下发给客户端的ActiveXk控件,ActiveX会监听客户端的动作,若客户端访问IP:1.1.1.+端口23 时(IP+端口同时满足)会触发ActiveX控件,ActiveX将该报文拦截并发送给虚拟网关。

 网络扩展(允许UDP协议)

如果需要获取“网络扩展”的资源,则客户端再接入虚拟网关之后,会生成一张虚拟网 卡。虚拟网关会给这个虚拟网卡下发一个私网网段的IP地址用于封装报文(参考GRE)建立进入与虚拟网关连接的隧道,后面过程如上图。

 

快速传输模式 

 


总结

相关文章:

SSL---VPN

文章目录 目录 一.SSL-VPN概述 优点 二.SSL协议的工作原理 三.虚拟网关技术 用户认证方式 本地认证 服务器认证: 证书匿名认证 Web代理 Web-link和Web改写 端口转发 网络扩展(允许UDP协议) 总结 一.SSL-VPN概述 SLL VPN是一种基于HTTPS&am…...

Chrome 跨域问题CORS 分析

先叠个甲,有错误,望沟通指正! 文章目录 1.什么是跨域报错2.为什么postman可以,浏览器访问就不行?根本原因是什么?2.1浏览器是依据什么来报错跨域的? 3.常规解决方案的分析方案1.通过代理解决方案2.被请求的B域的服务端开启Access-Control-Allow-Origin返回头的支持方案3.通…...

GPU性能测试中的张量和矩阵运算

正文共:888 字 7 图,预估阅读时间:1 分钟 前面我们使用PyTorch将Tesla M4跑起来之后(成了!Tesla M4Windows 10AnacondaCUDA 11.8cuDNNPython 3.11),一直有个问题,那就是显存容量的问…...

Linux运维_Bash脚本_编译安装FreeRDP-3.3.0

Linux运维_Bash脚本_编译安装FreeRDP-3.3.0 Bash (Bourne Again Shell) 是一个解释器,负责处理 Unix 系统命令行上的命令。它是由 Brian Fox 编写的免费软件,并于 1989 年发布的免费软件,作为 Sh (Bourne Shell) 的替代品。 您可以在 Linux…...

CMake官方教程4--使用表达式生成器

1. 使用表达式生成器产生警告 CMakeList.txt cmake_minimum_required(VERSION 3.15)project(Tutorial VERSION 1.0)add_library(tutorial_compiler_flags INTERFACE) target_compile_features(tutorial_compiler_flags INTERFACE cxx_std_11)set(gcc_like_cxx "$<COM…...

git for windows

记录&#xff0c;git svn混用&#xff0c;检出代码时出错及解决方案&#xff0c; 执行命令&#xff1a; git svn clone svn_project_url 报错&#xff1a; certificate problem.(R)eject,accept (t)emporarily or accept (p)ermanently 解决&#xff1a; 在弹框中 输入P …...

C++实验 面向对象编程

一、实验目的&#xff1a; 掌握类中静态成员的定义方法&#xff0c;初始化方法&#xff0c;使用方法&#xff1b; 掌握类的友元说明方法&#xff0c;理解友元的使用特点 二、实验内容&#xff1a; 1、编写程序&#xff0c;统计某旅馆住宿客人的总数&#xff0c;要求输入客人…...

VC++ 设置网卡接口MTU大小

在 Windows C/C 之中一共有三种方法可以设置网卡的MTU大小。 方法一&#xff1a; SetIpInterfaceEntry 法 static bool SetInterfaceMtu2(int interface_index, int mtu) noexcept{PIP_ADAPTER_ADDRESSES pAddresses NULL;ULONG ulBufLen 0;GetAdaptersAddresses(AF_UNSPEC…...

dpdk-19.11 对向量指令的使用情况分析

不同向量指令识别关键字 __m128i sse uint64x2_t neon __m256i avx2 __m512i avx512 vector altivec dpdk 向量收发包函数 支持 arm neno 向量收发包函数的 pmd 驱动 bnxt hns3 i40e ixgbe mlx5 virtio 支持 sse 向量收发包函数的 pmd 驱动 axgbe hinic fm10k bnxt i40e …...

使用CIP采集欧姆龙EtherNet/IP从入门到精通

本文将会从以下几个方面介绍 1.CIP是什么 2.EtherNet/IP通信是什么 3.CIP通信报文解析 4.使用CIP常用的方法和功能介绍&#xff08;UCMM&#xff09; 5.自己封装了一个类&#xff0c;只要知道标签名称&#xff0c;和数据类型即可读写数据 6.demo展示 1.CIP是什么 CIP通信…...

企业如何高效管理微信里的客户?

对于企业来说&#xff0c;懂得高效管理微信列表的客户是非常重要的一件事&#xff0c;只有把客户管理好了&#xff0c;才能更好地提高客户的满意度和忠诚度&#xff0c;我们的销售业务才能顺利进行。 那么&#xff0c;应该怎样管理才能算是高效管理呢&#xff1f;下面就给大家…...

怎么在windows系统上查看kylinos的md5、sha1、sha256值

背景 当前信创行业正如火如荼进行中,当下载kylinos镜像到windows系统下,如何核对镜像是否有损坏,确保文件不被篡改,需要使用工具计算md5、sha1、sha256、sha512值,并与出库邮件中的md5比对。 QuickHash GUI软件简介 QuickHash GUI是一款开源代码的哈希工具,注意哈希能够…...

Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库

Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库 在Windows中使用C#连接Mysql数据库比较简单&#xff0c;可以直接使用MySql.Data库&#xff0c;目前最新版本为&#xff1a;8.3.0。 当然也可以结合MySql.Data和Dapper库一起使用&#xff0c;目前Dapper的最新版本为&a…...

大一专科,物联网专业,变态成长偏方!

最近看到一个大一&#xff0c;物联网专业的学生提问&#xff1a; 印象中&#xff0c;物联网专业2011年才有的&#xff0c;正好是我毕业那年。 我大概看过物联网专业要学的内容&#xff0c;总结下来就是&#xff0c;比软件不如计算机&#xff0c;比硬件知识不如电子。 不知道老师…...

MyBatis入门(JDBC规范,MyBatis,连接池,Lombok)【详解】

目录 一、JDBC规范【了解】 1. JDBC介绍 2. JDBC示例 3. JDBC的问题 二、MyBatis入门【重点】 1. Mybatis是什么 2. Mybatis使用步骤 3. Mybatis入门案例 1.创建SpringBoot工程 2.创建Mapper 3.功能测试 三、连接池【了解】 1. 什么是连接池 2. 有哪些数据库连接池…...

Vue3--数据和方法

data 组件的 data 选项是一个函数。Vue 在创建新组件实例的过程中会自动调用此函数。   data选项通常返回一个对象&#xff0c;然后 Vue 会通过响应性系统将其包裹起来&#xff0c;并以 $data 的形式存储在组件实例中。 <!DOCTYPE html> <html lang"en"&g…...

网络编程面试题

一、什么是IP地址 1.IP地址是主机在网路中的唯一标识&#xff0c;&#xff0c;当主机从一个网络切换到另一个网络时&#xff0c;会更改IP地址&#xff0c;同样的IP地址也是路由器进行路由选择的标识 2.IP地址的分类 IPV4&#xff1a;采用4字节无符号整数存储 IPV6&#xff…...

移动端区分点击和长按

为了适配移动端&#xff0c;图片加入touchstart&#xff0c;touchend&#xff0c;并加了 e.preventDefault() 屏蔽默认菜单。 然而突然发现移动端图片的链接无响应了&#xff0c;PC端没问题。 而且功能需要区分点击和长按。 原生js如何判断移动端的tap,dbltap&#xff0c;lo…...

虚拟环境的激活

(此博客仅用于我记录虚拟环境的激活方法) 虚拟环境的激活命令: venv/Scripts/activate 在F:\git repo\Database-Course-Design 这个文件夹中启动命令行 这个文件夹中含有虚拟环境venv 输入命令venv/Scripts/activate&#xff0c;就得到下面的结果: 此时就激活了虚拟环境&…...

宏集案例 | 风电滑动轴承齿轮箱内多点温度采集与处理

前言 风力发电机组中的滑动轴承齿轮箱作为关键的传动装置&#xff0c;承担着将风能转化为电能的重要角色。齿轮箱内多点温度的实时监测可以有效地预防设备故障和性能下降。实时监测齿轮箱内多点温度可以有效地预防设备故障和性能下降。 为了确保风力发电机组的安全稳定运行&a…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇

根据 QYResearch 发布的市场报告显示&#xff0c;全球市场规模预计在 2031 年达到 9848 万美元&#xff0c;2025 - 2031 年期间年复合增长率&#xff08;CAGR&#xff09;为 3.7%。在竞争格局上&#xff0c;市场集中度较高&#xff0c;2024 年全球前十强厂商占据约 74.0% 的市场…...