SSL VPN基础原理

目录

SSL ---安全传输协议(安全套接层)---TLS ----传输层安全协议

SSL的工作原理

SSL会话建立的过程    

​编辑

数据传输过程中的封装示意图

无客户端认证的过程

有客户端认证的过程

SSL VPN的核心技术---虚拟网关技术

服务器验证的点:

资源访问

文件共享


Ip sec VPN针对Client to LAN的场景,存在的弱势点:
1,IKEV1不支持远程用户接入,IKEV2支持,但是采用EAP认证的方法,目前尚未普及;
2,因为需要进行参数协商,所以,我们的PC设备需要安装专门的应用程序来进行支持;
3,因为IPSEC VPN需要抓取感兴趣流,但是,PC设备所在私网网段不固定,需要不断的调整 策略,导致部署不灵活。
4,因为IPSEC VPN主要通过抓取感兴趣流来进行访问控制,最多可以深入到服务层面,但
是,无法深入到应用层面。所以,如果需要进行更细颗粒度的控制,则IPSEC VPN略显不 足。

SSL VPN 的优势
1,SSL VPN采用的是一种基于B/S架构的模式,不需要额外安装客户端,可以直接通过浏览
      器进行访问。
2,部署更加灵活,因为他的封装位置在于传输层和应用层之间,不会保护传输层和网络层的
      数据,所以,不会影响到网络环境。
3,因为SSL VPN针对的是应用层进行控制,所以,可以实现更细颗粒的控制,可以深入到          应用层面。

SSL ---安全传输协议(安全套接层)---TLS ----传输层安全协议

SSL的工作原理

        SSL协议因为是基于 TCP 协议工作的,所以,通信双方需要先建立 TCP 会话,之后,因为 SSL 协议需要进行安全保证,需要协商安全参数,所以,也需要建立SSL会话。之后,所有的数据将加密传输。SSL的加密和认证体系,采用的是 证书体系 来实现的。

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

SSL会话建立的过程    

1,TCP三次握手,建立链接会话。

2,客户端发送client hello包

3,server hello

最后这个服务器证书,可能随着server hello包发送过来,也可能单独使用一个数据包发送。

4, 服务器发送证书---验证身份
Server key exchange ---传递公钥的

Server hello done

        该数据包中没有实质参数,仅起到通知作用,通知客户端,服务器已经做好准备进行主密钥的协商。
        在这个过程中,可以增加客户端的证书请求(要求客户端的身份认证),但是,这一项是可选项,默认只进行服务器的身份认证
5,客户端的回应

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

6,服务器的最终回应

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

数据传输过程中的封装示意图

无客户端认证的过程

有客户端认证的过程

会话的快速回复---减少了认证环节

SSL协议的脆弱性
1 ,客户端假冒---因为客户端认证时可选项,所以,存在一定的安全风险---可以选择对客户                               端进行认证
2,SSL协议无法抵抗流量分析---通过暴露出来的IP信息,或者端口信息,可以推断出
                                                   一些信息,从而暴露出脆弱性。
3,无法保护UDP应用----SSL VPN可以

SSL VPN的核心技术---虚拟网关技术

        虚拟网关可以理解为是SSL VPN 服务本身,也可以看作是一个对外开放的接口。用户可以通过 IP地址或者域明通过浏览器来访问虚拟网关。当然,这个过程中是需要进行用户认证。这里的用户认证主要目的是为了绑定行为,区分权限。之后,我们可以在虚拟网关中发布各种内网的资源,不同的用户,访问资源的权限不同,则其登录到虚拟网关之后,看到的资源列表中的内容也不相同。之后,用户便可以通过虚拟网关访问到内网中的资源。一台设备上可以创建多个虚拟网关,并且,不同的虚拟网关彼此独立,各自维护自己的资源列表和用户,实现一个细颗粒度的控制。

RBAC --- 基于角色的访问控制模型
用户认证
本地认证:通过用户名和密码进行认证,认证信息存储在防火墙本地,由防火墙判断认
                  证是否成功。
服务器认证:通过对接第三方的认证服务器,也是输入用户名和密码,不过这个信息存
储在第三方服务器上,由第三方服务器进行认证判断,之后将结果反馈给防火墙。
证书匿名认证:指用户的客户端配备客户端证书,防火墙通过验证客户端的证书,来认
                         证用户身份

 

服务器验证的点:

1,客户端证书和本地的客户端CA证书是同一个CA机构颁布的;
2,客户端证书需要在有效期内

3,客户端证书中的用户过滤字段必须在防火墙上已经配置并存储了用户名。

        例如:过滤字段中由这样的内容---CN = USER000019,则要求防火墙中的用户中必须存在user000019的用户。---其实就是和我们的用户找一个对应关系。

证书挑战认证:相当于同时进行证书认证和用户名密码认证。双因素认证。

资源访问

        web代理---仅针对HTTP协议

1,虚拟网关发布url为http://website/resource.html的web资源
2,拥有访问权限的用户首先得访问虚拟网关,进行用户身份的认证,获得资源列表
3,注意,资源列表中并不是直接将内网发布的URL放上去,而是需要进行改写,改写成为          代   理的URL。
4,之后,用户通过点击资源链接,访问到虚拟网关,虚拟网关解析之后找到内网资源获取         网    页信息。
5,虚拟网关获取到内网信息之后,再将网页信息转发给远程用户。

Web-linkweb 改写

文件共享

SMB ---windows
NFS ---LINUX

端口转发
主要针对非 web 服务且基于 TCP 协议
需要下载一个 IE 浏览器的控件---ActiveX

有了这个端口转发之后,所有基于 TCP 的资源都可以发布。
网络扩展
        如果需要获取“网络扩展”的资源,则客户端再接入虚拟网关之后,会生成一张虚拟网
卡。虚拟网关会给这个虚拟网卡下发一个私网网段的 IP 地址。
可靠传输模式和快速传输模式
可靠传输模式

快速传输模式

QUIC ---基于UDP协议,采用SSL/TLS加密的协议

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过路由器监控,优化网络效率

路由器是网络的基本连接组件,路由器监控涉及将路由器网络作为一个整体进行管理,其中持续监控路由器的性能、运行状况、安全性和可用性,以确保更好的操作和最短的停机时间,因此监控路由器至关重要。 为什么路由器监控对组织很重要…

code摘录日记[矩阵变元素,变列向量,3D表面图,table行列设置] Matlab

矩阵变元素&#xff0c;变列向量 W1(Z1 < Z2) nan; % Z1,Z2 all matrix,Only plot points where Z1 > Z2;Z1 < Z2位置值填为NaNx x(:); % Now x is a 30-by-1 vector; matrix变列vector技巧3D表面图 hand figure; % Handle to the figure, for more plotting later…

根据服务器系统选择对应的MySQL版本

1. 根据服务器系统选择对应的MySQL版本 MySQL有多个版本&#xff0c;选择对应的版本&#xff0c;重点信息是Linux的GLIBC版本号&#xff0c;Linux的版本、系统位数。 1.1 查看Linux的GLIBC版本号 通常libc.so会支持多个版本&#xff0c;即向前兼容&#xff0c;查看该文件中…

java-模拟的例题实战

例题实战 在实际的开发工作中&#xff0c;对字符串的处理是最常见的编程惹怒我。本题目即是要求程序对用户输入的串进行处理。具体规则如下&#xff1a; 1 把每个单词的首字母变成大写 2 把数字与字母之间用下划线字符&#xff08;_&#xff09;分开&#xff0c;使得更清晰 …

【论文阅读】MSGNet:学习多变量时间序列预测中的多尺度间序列相关性

MSGNet&#xff1a;学习多变量时间序列预测中的多尺度间序列相关性 文献介绍摘要总体介绍背景及当前面临的问题现有解决方案及其局限性本文的解决方案及其贡献 背景知识的相关工作背景知识问题表述&#xff1a; Method论文主要工作1.输入嵌入和剩余连接 (Input Embedding and R…

Java高级编程—泛型

文章目录 1.为什么要有泛型 (Generic)1.1 泛型的概念1.2 使用泛型后的好处 2.在集合中使用泛型3.自定义泛型结构3.1 自定义泛型类、泛型接口3.2 自定义泛型方法 4.泛型在继承上的体现5.通配符的使用5.1 基本使用5.2 有限制的通配符的使用 1.为什么要有泛型 (Generic) Java中的…

边缘计算与物联网的核心 —— 低功耗芯片

一、低功耗芯片 在边缘计算与物联网&#xff08;IoT&#xff09;中&#xff0c;低功耗芯片扮演了至关重要的角色&#xff0c;主要体现在以下几个方面&#xff1a; 延长设备寿命&#xff1a;物联网设备通常需要部署在难以更换电池或不方便进行频繁维护的环境中&#xff0c;比如…

软考高级:信息系统分类-业务处理系统(TPS)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

工具篇--从零开始学Git

一、git概述 1.1安裝 windows版本 官方下载&#xff08;比较慢&#xff09;&#xff1a;Git - Downloads Linux版本 ​yum install git查看git版本。 git --version 1.2创建仓库gitee 注册账号 Gitee - 基于 Git 的代码托管和研发协作平台 新建仓库 honey2024 配置 git confi…

Jira自动化的实用工具——ScriptRunner简介及最佳实践

近日&#xff0c;龙智举办的DevSecOps研讨会年终专场“趋势展望与实战探讨&#xff1a;如何打好DevOps基础、赋能创新”在上海圆满落幕。龙智Atlassian技术与顾问咨询团队&#xff0c;以及清晖、JamaSoftware、CloudBees等生态伙伴的嘉宾发表了主题演讲&#xff0c;分享他们在D…

一、C#冒泡排序算法

一、C#冒泡排序算法 简介 冒泡排序算法是一种基础的排序算法&#xff0c;它的实现原理比较简单。核心思想是通过相邻元素的比较和交换来将最大&#xff08;或最小&#xff09;的元素逐步"冒泡"到数列的末尾。 实现原理 冒泡排序是一种简单的排序算法&#xff0c;其…

借助 mydumper 实现定期 MySQL 全量备份、恢复方案

一、Mydumper 工具介绍 mydumper 是一款社区开源的逻辑备份工具&#xff0c;由 C 语言编写&#xff0c;与 MySQL 官方提供的 mysqldump 相比&#xff0c;它具有更高的性能和更多的功能&#xff0c;例如&#xff1a; 支持多线程导出数据&#xff0c;速度更快&#xff1b; 支持…

JVM探究

JVM探究 请你谈谈你对JVM的理解&#xff1f;java -> class -> jvm java 8虚拟机和之前的变化更新OOM 内存溢出。栈溢出 StackOverFlowError > 怎么分析JVM的常用调优参数 &#xff1f; 扩大内存内存快照如何抓取&#xff0c;怎么分析Dump文件&#xff1f;知道吗&…

密码学——MAC

消息认证码 在信息发送和接收过程中,若攻击者能够得到信息,进行篡改,就能达到欺骗,诈骗,冒名顶替的作用。为了防止冒名诈骗,一个对策就是使用消息认证码——MAC: Message Authentication Code。 消息认证码,即确定消息真实性的认证程序。发件人将想要发送的信息和从哪个…

Spring Cloud Gateway如何实现熔断

Spring Cloud Gateway熔断集成 熔断应用&#xff1a; 金融市场中的熔断机制&#xff1a;在金融交易系统中&#xff0c;熔断机制&#xff08;Circuit Breaker&#xff09;是一种市场保护措施&#xff0c;旨在预防市场剧烈波动时可能导致的系统性风险。当某个基准指数&#xff08…

ArrayList和LinkedList区别

ArrayList和LinkedList是两个集合类&#xff0c;用于存储一系列的对象引用(references)。例如我们可以用ArrayList来存储一系列的String或者Integer。 1 问题 那么ArrayList和LinkedList在性能上有什么差别呢&#xff1f;什么时候应该用ArrayList什么时候又该用LinkedList呢&am…

Github 2024-03-15 Java开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-15统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9非开发语言项目1TypeScript项目1《Hello 算法》:动画图解、一键运行的数据结构与算法教程 创建周期:476 天协议类型:OtherStar数量…

gin框架教程笔记

参考 官方中文文档&#xff1a;https://gin-gonic.com/zh-cn/docs/introduction/ 但是示例截图少 https://www.kancloud.cn/shuangdeyu/gin_book/949411 https://www.topgoer.com/gin%E6%A1%86%E6%9E%B6/ 这个网站不光有gin框架 适合阅读 吉米老师的 &#xff1a;https://www…

Redis基本使用

Redis基本使用 1.通用命令2.基本数据类型2.1 String2.2 Hash2.3 List2.4 Set2.5 SortedSet 3. SpringDataRedis3.1 简介3.2 快速代码示例3.3 序列化 1.通用命令 针对所有数据类型的操作可以在Redis官方文档查看。以下是通用的命令。 KEYS&#xff1a;查看符合模板的所有key D…

气压计LPS25HB开发(1)----轮询获取气压计数据

气压计LPS25HB开发----1.轮询获取气压计数据 概述视频教学样品申请源码下载产品特性通信模式速率生成STM32CUBEMX串口配置IIC配置SA0地址设置串口重定向参考程序SA0设置模块地址获取ID复位操作BDU设置设置速率轮询读取数据演示 概述 本文将介绍如何使用 LPS25HB 传感器来读取数…