第十五章,SSL VPN

前言

IPSec SSL 对比
  1.  IPSec远程接入场景---client提前安装软件,存在一定的兼容性问题
  2. IPSec协议只能够对感兴趣的流量进行加密保护,意味着接入用户需要不停的调整策略,来适应IPSec隧道
  3.  IPSec协议对用户访问权限颗粒度划分的不够详细;因为ACL的划分就是通过3.4层流量抓取。

SSL 优势
  •  SSL VPN实际工作位置在传输层和应用层之间
    • OSI七层参考模型中,SSL协议属于表示层协议
    • 专门针对应用层来进行安全防护的。即无法影响网络层和传输层,不会改变IP头部和TCP
    • SSL协议--->基于浏览器工作的HTTPS协议工作。
  •  SSL VPN的架构,是属于B/S架构---SSL不需要安装客户端软件。
  • SSL VPN所有的访问控制都是基于应用层执行的;访问权限控制可以达到文件级别

SSL协议

        SSL --- 安全传输协议 ( 安全套接层 )
        根据封装位置来划分SSL 协议的层次。
SSL--->IETF SSL 进行标准化 --->TLS 协议 --- 传输层安全协议

         SSL协议是基于TCP协议的安全协议,理论上,可以用于保护正常运行在TCP上的任何应用协议

SSL工作原理

SSL协议分层

        SSL记录协议,负责对上层数据进行分块、压缩、计算、加密的;最后将记录的数据块传输给对方
  • SSL记录协议 --- 处于可靠的传输层协议TCP以上,用于封装更高层协议的数据
  • SSL握手协议 --- 允许浏览器和服务端之间相互认证,并在应用层传输数据之前,协商出相关参数(密算法、哈希算法、会话密钥)--->协商参数以及交换证书,从而构造SSL会话。
  • SSL密码变化协议 --- 只包含了一个消息--->相当于一个通知信息,告知对方,即将开始使用加密信息进行传输
        在完整的SSL 工作过程中,当 TCP 建立完成后,会使用握手协议进行参数协商,然后通过变化协议告 知对方开始加密传输信息,后续所有的报文都是加密的,并且都是存储在记录协议中,如果出现问题, 则发送警告协议。

SSL总体工作流程

第一步: TCP 三次握手,建立网络连接会话
        
        
第二步:由 SSL 客户端,一般为浏览器,发送消息
  • 支持的协议版本

  • Random
    • 由客户端生成的伪随机数,用于后续生成会话密钥。
    • 对称密钥 --- 总共需要三个参数才可以计算
第三步: SSL 服务端回复消息,包含一些参数信息,使用 server hello 报文
        一般情况下,server hello 报文和服务器证书是分开发送的
        证书 --- CA 机构的私钥将服务器的公钥以及一些证书相关信息进行加密后的产物 -- CA 的私钥加密后的数据。
        客户端时具备信任CA 的公钥信息
        服务器的身份认证是强制要求的,必须提供证书,证书如果不合法,则会提供一个选择给用户,可 以选择继续访问。但是,客户端的认证是可选的,如果需要认证,则服务器会发送请求证书的报文,之 后,客户端需要提供自己的证书信息
        在报文中,一般包含一个或多个X.509 证书,一般第一个是服务器证书,后续可能是颁发该服务器证 书的中间证书,一直到根证书。每个证书中都包含了详细的身份信息和公钥信息
        RSA公钥 --- 客户端使用该公钥加密 预主密钥 并发送给服务器
        预主密钥 --- 相当于 DH 算法中的中间参数,需要传递给对方,使用 RSA 公钥进行加密
        Server Hello Done 报文是一个空信息,用来通知客户端, 服务端已经做好了预主密钥协商的准
第四步: SSL 客户端收到服务器相关报文后,验证服务器证书,进行回复
  • 客户端生成一个预主密钥;使用服务器的公钥进行加密后返回给服务器。服务器利用私钥进行解密,从而获取密钥信息。
    • 预主密钥 --- 和前面提到了Client的随机数以及Server的随机数相同。
    • 会话密钥 --- 预主密钥 + 服务器随机数 + 客户端随机数。
      • 预主密钥是需要加密传输的
    • 此时,客户端已经具备了上述三个条件,是可以生成最终的会话密钥了。
    • client key exchange 报文中,回复的具体内容是不确定的,需要根据算法决定。如果客户端使用的是RSA算法,则计算出的是预主密钥;如果是DHECDH算法,则计算出的是共享密钥;但是不管使用那种算法,都会计算出第三个随机数,和前面两个随机数一起进行计算,得到最终的会话密钥

第五步:服务端做最后的回应
  • 会话恢复报文
    • 客户端和服务端首次完成TLS握手后,会将本地的会话相关参数,例如标识符、证书、密码套件、主密钥等相关信息进行加密,生成一个票据;会发送给客户端
    • 客户端会保存这个票据。当再次与服务器建立连接时,如果希望恢复上一次的会话,就将票据包含在client hello报文中发送给服务端

        完整的SSL 握手协议过程结束
        会话密钥 --- 就是对称秘钥。
        完成SSL 握手后,之后所有的应用层数据发送时,都会进行加密,并且将加密数据保存在 SSL 协议
总结

SSL加密过程

SSL 脆弱性分析
  •  无法保护UDP应用
    • 例如采用IPSec
    • 使用一些基于UDP的传输层安全协议---DTLS
  •  客户端可以被伪造 --- 而且,客户端的认证是可选的。
  •  SSL协议不能对抗流量分析

SSL VPN

        SSL VPN--->其实是厂商创造出来的一个名词
        远程接入用户利用标准的Web 浏览器内嵌的 SSL 封包处理功能,从而连接企业内部的 VPN 服务器。然后由VPN服务器将报文转发给特定的内部服务器,从而使得远程接入用户通过验证后,可访问企业内网特定的服务器资源。

         远程用户与VPN服务器之间,采用SSL协议对传输的数据进行加密。

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

        VPN设备看做是网关。 ---SSL 服务在防火墙上被称为虚拟网关。
        防火墙是可以创建多个虚拟网关。多个虚拟网关之间相互独立。
        用户在web 浏览器上输入虚拟网关的 IP 地址或者域名,从而访问虚拟网关。 该过程是需要进行用户 身份认证的 --- 如果认证通过,虚拟网关会用户反馈一个 可访问的内网资源列表

SSL VPN流程

        VPN认证是为了保证数据连接的合法性,用户身份认证是为了获取相应权限的
web 界面直接配置 SSL VPN 的虚拟网关,会提示服务器忙,只能使用命令行配置
[FW1]v-gateway ssl interface GigabitEthernet 1/0/0 port 4430 private
---- 开启虚拟网关,名称为 ssl ,使用接口为 GE1/0/0 ,端口 4430 ,独占型

 

        防火墙提供了四种认证机制:
  • 本地认证
  • 服务器认证
  • 证书认证
    • 证书匿名认证
      • 用户的客户端配备客户端证书,防火墙通过验证客户的证书来认证身份。
    • 证书挑战认证
      • 服务器通过用户名和密码+客户端证书双重因素认证。

web代理

1. 发布 URL VPN 设备发布资源。
2. 拥有访问权限的用户首先访问虚拟网关,进行用户认证,从而获取到资源列表。
3. 用户去访问资源 ---> 用户输入的 URL 并非是原本发布的 URL ;实际上是经过代理的 URL
https://svn/http:/website/resource.html
协议 :// 目录
        目录:虚拟网关地址,User ID Session ID 等信息。
https://1.1.1.1/webproxy/1/141123654/4/http:/website/resource.html
4. 数据包到达虚拟网关,进行解析 ---> URL 改写为原始 URL ,去访问内部服务器。
        此时,并没有任何隧道,仅仅是做了代理。但是也达到了隧道的效果,所以也可以被称为是一种 VPN 技术
        web代理的核心点 ---> 可以隐藏真实的 URL 信息
  • web-link
  • web改写

 

文件共享

        web代理功能仅能实现 http 的代理。但是远程用户想要直接通过浏览器安全访问到企业内部的文件服务器,并且执行新建、修改、上传、下载等文件操作,需要文件共享机制。
        文件共享只能针对SMB NFS 两种协议
SMB---windows 系统
NFS---linux 系统
        这里不再是代理的思想,而是“ 翻译 的思想;即将 HTTPS 的报文翻译成 SMB 的报文

端口转发

        例如telnet ssh email 基于 TCP 的非 web 应用
        如何将web 浏览器和常用 CRT xshell 这样的软件联立起来? --- IE 浏览器内置的 Active X 控件
        该控件可以做到实时检测其他程序发起的请求

网络扩展

        基于UDP 的应用。
        SSL本身是基于 TCP 的,无法保护 UDP 协议应用。不代表 SSL VPN 不能。
        
  • 开启网络扩展功能--->
    • 移动用户与虚拟网关建立SSL VPN隧道
    • 移动用户在PC本地自动生成一个虚拟网卡
      • 虚拟网关从地址池中随机选择一个IP地址分配给移动用户的虚拟网卡
      • 该地址作为移动用户与企业内网server之间通信使用。
    • 虚拟网关向移动办公用户下放到达企业内网server的路由信息
        通过隧道访问目标---->VPN 的核心技术
传输模式:
  • 可靠传输模式
  • 快速传输模式

安全策略

  • SSL VPN加密报文策略:U--->L
  • 移动办公用户访问企业server的业务数据
    • U--->T
如何判断为 local 区域:如果收到的报文需要本地接口处理。或者发送的报文需要本地接口封装
  • 分离路由模式 --- 去往内网的流量,经过虚拟网卡转发;去往其他地方的流量,由本地真实网卡转发。
  • 全路由模式 --- 无论访问任何资源,数据都会被虚拟网卡截获,从虚拟网卡转发。
  • 手动路由模式 --- 由管理员手工在VPN设备上配置内网静态路由。
总结
        因为存在网络扩展技术,导致SSL VPN 被一步从表示层扩展到了 IP 层,导致 SSL VPN 可以支持越来 越多的网络协议

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

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

相关文章

深度学习系统学习系列【4】之反向传播(BP)四个基本公式推导

文章目录 补充知识:∇ 和 ⊙ 运算符详解∇ (nabla) 运算符⊙ (圆圈点) 运算符 反向传播基本公式计算图和基本定义BP1:输出层误差推导BP1公式的重要性实际例子BP2第 l l l层误差推导BP3 :损失函数关于偏置(b)偏导的推导BP4: 损失函…

极狐Gitlab 如何创建并使用子群组?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 子群组 (BASIC ALL) 您可以将极狐GitLab 群组组织成子群组。您可以使用子群组: 内部和外部组织分开。因为每个子…

HarmonyOS基本的应用的配置

鸿蒙HarmonyOS组建页面 1、创建ets文件并配置2、修改main_pages.json文件3、修改EntryAbility.ets文件(启动时加载的页面) 1、创建ets文件并配置 Index.ets是创建项目自动构建生成的,我们可以将其删除掉,并重新在page文件夹下创建…

强化学习三大基本方法-DP、MC、TD

强化学习进阶 本文主要讲解 动态规划法(Dynamic Programming DP)蒙特卡洛法(Monte Carlo MC)时序差分法(Temporal Difference TD) 1. 动态规划法 1.1 动态规划概念 动态规划核心思想: 其核心…

《Spring Boot 3.0全新特性详解与实战案例》

大家好呀!今天让我们轻松掌握Spring Boot 3.0的所有新特性!🚀 📌 第一章:Spring Boot 3.0简介 1.1 什么是Spring Boot 3.0? Spring Boot 3.0就像是Java开发者的"超级工具箱"🧰&…

【推荐笔记工具】思源笔记 - 隐私优先的个人知识管理系统,支持 Markdown 排版、块级引用和双向链接

Typora 使用Typora好多年了,一直非常的喜欢这个简洁的Markdown编辑工具,低版本的免费且好用。 Typora官网地址: https://typora.io/ https://typoraio.cn/ Typora的文档树如下,细看后,总觉得差点意思! 思源笔记 今…

虚拟文件系统

虚拟文件系统(Virtual File System,VFS)是操作系统内核中的一个抽象层,它为不同的文件系统(如ext4、NTFS、FAT32等)提供统一的访问接口。通过VFS,用户和应用程序无需关心底层文件系统的具体差异…

Kubernetes Gateway API 部署详解:从入门到实战

引言 在 Kubernetes 中管理网络流量一直是一个复杂而关键的任务。传统的 Ingress API 虽然广泛使用,但其功能有限且扩展性不足。Kubernetes Gateway API 作为新一代标准,提供了更强大的路由控制能力,支持多协议、跨命名空间路由和细粒度的流量管理。本文将带你从零开始部署…

关于大数据的基础知识(二)——国内大数据产业链分布结构

成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于大数据的基础知识(二&a…

py实现win自动化自动登陆qq

系列文章目录 py实现win自动化自动登陆qq 文章目录 系列文章目录前言一、上代码?总结 前言 之前都是网页自动化感觉太容易了,就来尝尝win自动化,就先写了一个qq登陆的,这个是拿到className 然后进行点击等。 一、上代码&#xf…

动态创建链表(头插法、尾插法)

今天我们来学习动态创建链表!!! 动态创建链表:分为头插法和尾插法 头插法(动态创建): 头插法就是让新节点变成头 代码如下 吐血了:这边有个非常重要的知识点,这边第三…

Dp通用套路(闫式)

闫式dp分析法: 从集合角度来分析DP问题。 核心思想: DP是一种求有限集中的最值或者个数问题 由于集合中元素的数量都是指数级别的,直接用定义去求,把每种方案都用dfs暴力枚举一遍,时间复杂度很高,此时用…

33、前台搜索功能怎么实现?

输入搜索的东西,如果为空 如果有 前端是提交表单,方式是 post 后端接受 调用 mybatisplus的categoryService.getById 用户在搜索框内输入关键字之后,执行 js 中的 load方法,前端提交表单, 后端 controller 中的loa…

Spring Boot 框架概述

1. 简介 Spring Boot 是由 Pivotal 团队开发的一个用于简化 Spring 应用开发的框架。它通过提供默认配置、嵌入式服务器和自动配置等特性,让开发者能够更快速地构建独立的、生产级别的 Spring 应用。 Spring Boot 的主要特点包括: 快速创建独立的 Spri…

机器学习第二讲:对比传统编程:解决复杂规则场景

机器学习第二讲:对比传统编程:解决复杂规则场景 资料取自《零基础学机器学习》。 查看总目录:学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南 一、场景…

Jackson Databind

Jackson Databind 是 Java 生态中处理 JSON 数据的核心库之一,主要用于实现 Java 对象与 JSON 数据之间的序列化与反序列化。它是 Jackson 库家族的一部分,通常与 jackson-core 和 jackson-annotations 一起使用,共同完成 JSON 处理任务。 核…

MySQL 中的事务隔离级别有哪些?

MySQL 支持四种标准的事务隔离级别,从低到高依次为:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ) 和 串行化(SERIALIZABLE&#x…

RAG优化知识库检索(1):基础概念与架构

1. 引言 大语言模型(LLM)常常面临着知识时效性、幻觉生成、定制化难等挑战,检索增强生成(Retrieval-Augmented Generation, RAG)技术作为解决这些问题的有效方案,正在成为AI应用开发的标准架构。 本文将从基础概念入手,全面介绍RAG技术的核心原理、标准架构与组件,以及评…

安卓工程build.gradle中的Groovy的常见知识点

文章目录 变量定义函数定义函数调用闭包参数APK输出配置多channel配置依赖配置关键总结常见混淆点groovy高度兼容java 变量定义 def debugCdnUrl "\"http://xxx\"" //变量赋值函数定义 def getTime() { // 函数定义(def 是 Groovy 中定义变…

阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化

作者:裘文成(翊韬) 摘要 随着企业全球化业务的扩展,如何高效、经济且可靠地将分布在海外各地的应用与基础设施日志统一采集至阿里云日志服务 (SLS) 进行分析与监控,已成为关键挑战。 本文聚焦于阿里云高性能日志采集…