深入理解SSL VPN

2023-11-18

名词解析:

SSL Secure Socket Layer,安全套接字层

TLS(Transport Layer Security,传输层安全协议)     

TLS 1.0IETFInternet Engineering Task ForceInternet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本

1.SSL VPN的特点

采用B/S架构,远程用户无需安装额外软件,可直接使用浏览器访问内网资源。

SSL [虚拟专用网络]可根据远程用户访问内网资源的不同,对其访问权限进行高细粒度控制。

提供了本地认证、服务器认证、认证匿名和证书挑战多种身份认证方式,提高身份认证的灵活性。

可以使用主机检查策略。

缓存清理策略用于清理远程用户访问内网过程中在终端上留下的访问哼唧,加固用户的信息安全

传输数据的机密性:利用对称密钥算法对传输的数据进行加密。

身份验证机制:基于证书利用数字签名方法对server和client进行身份验证,当中client的身份验证是可选的

消息完整性验证:消息传输过程中使用MAC算法来检验消息的完整性。

2.SSL VPN主要的使用场景

远程办公:SSL VPN可以让远程办公的员工通过互联网访问公司内部网络,实现远程办公。

分支机构连接:SSL VPN可以让分支机构的员工通过互联网访问总部内部网络,实现分支机构与总部之间的连接。

③供应商/客户接入:SSL VPN可以让供应商或客户通过互联网访问公司内部网络,实现供应商或客户与公司之间的连接。

④数据中心连接:SSL VPN可以让数据中心的员工通过互联网访问数据中心内部网络,实现数据中心与其他部门之间的连接。

⑤云服务连接:SSL VPN可以让企业通过互联网访问云服务内部网络,实现企业与云服务之间的连接。

3. SSL的协议结构

3.1.握手协议

(1) SSLclient通过Client Hello消息将它支持的SSL版本号、加密算法、密钥交换算法、MAC算法等信息发送给SSLserver。

(2) SSLserver确定本次通信採用的SSL版本号和加密套件,并通过Server Hello消息通知给SSLclient。假设SSLserver同意SSLclient在以后的通信中重用本次会话,则SSLserver会为本次会话分配会话ID。并通过Server Hello消息发送给SSLclient。 

(3) SSLserver将携带自己公钥信息的数字证书通过Certificate消息发送给SSLclient,让客户端验证自己的身份。

(4) SSLserver发送Server Hello Done消息。通知SSLclient版本号和加密套件协商结束。開始进行密钥交换。

(5) SSLclient验证SSLserver的证书合法后,利用证书中的公钥加密SSLclient随机生成的premaster secret,并通过Client Key Exchange消息发送给SSLserver。 如果服务器使用DH算法,还会发送服务器使用的DH参数,RSA算法不需要这一步

(6) SSLclient发送Change Cipher Spec消息,通知SSLserver兴许报文将採用协商好的密钥和加密套件进行加密和MAC计算。

(7) SSLclient计算已交互的握手消息(除Change Cipher Spec消息外全部已交互的消息)的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并加入MAC值、加密等),并通过Finished消息发送给SSLserver。SSLserver利用相同的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比較,假设二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。

(8)   相同地。SSLserver发送Change Cipher Spec消息,通知SSLclient兴许报文将採用协商好的密钥和加密套件进行加密和MAC计算。

(9) SSLserver计算已交互的握手消息的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并加入MAC值、加密等),并通过Finished消息发送给SSLclient。SSLclient利用相同的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比較,假设二者相同。且MAC值验证成功。则证明密钥和加密套件协商成功。

SSLclient接收到SSLserver发送的Finished消息后。假设解密成功,则能够推断SSLserver是数字证书的拥有者,即SSLserver身份验证成功,由于仅仅有拥有私钥的SSLserver才干从Client Key Exchange消息中解密得到premaster secret,从而间接地实现了SSLclient对SSLserver的身份验证。

3.2 密码规格变更协议

用于密码切换的同步,是在握手协议之后的协议。握手协议过程中使用的协议是“不加密”这一密码套件,握手协议完成后则使用协商好的密码套

3.3 警告协议

当发生错误时使用该协议通知通信对方,如握手过程中发生异常、消息认证码错误、数据无法解压缩等。

3.4 应用数据协议

通信双方真正进行应用数据传输的协议,传送过程通过 TLS 应用数据协议和 TLS 记录协议来进行传输。

3.5 SSL记录协议

为高层协议提供数据封装、压缩、加密等基本功能的支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入理解SSL VPN 的相关文章

随机推荐

  • 自写控件:滑动呈现控件(实现了两个以上控件间的切换)师傅的

    public class NavigatePanel Panel public enum Direction LeftToRight RightToLeft private NavigateArgs mArgs Navigate参数 pri
  • JS基础,从JS的组成到JS函数写法

    一 计算机的组成 计算机 软件 硬件 输入设备 输出设备 CPU 硬盘 内存 二 JS的组成 1 ECMAScript 是由ECMA国际 原欧洲计算机制造商协会 进行标准化的一门编程语言 这种语言在万维网上应用广泛 它往往被称为JavaSc
  • Selenium定位页面元素的方法

    一 Selenium定位页面元素的方法 selenium提供如下强大的定位元素的方法 id id name name dom javascriptExpression xpath xpathExpression link textPatte
  • java 基础重学(五)-底层-JVM

    1 JVM JVM内存结构 class 文件格式 运行时数据区 堆和栈的区别 java中对象一定在堆上分配吗 java 内存模型 计算机内存模型 缓存一致性 MESI协议 原子性 可见性 顺序性 happens before 内存屏蔽 sy
  • 刷题day65:分割等和子集

    题意描述 给你一个 只包含正整数 的 非空 数组 nums 请你判断是否可以将这个数组分割成两个子集 使得两个子集的元素和相等 思路 使用01背包 背包的体积为sum 2 背包要放入的商品 集合里的元素 重量为 元素的数值 价值也为元素的数
  • 解决qemu虚拟机图形界面卡死问题

    1 基础环境 Virtio gpu双heads 4 9 0内核 xserver1 9 3 modesettings0 5 0驱动 2 问题描述 终端中打开大量文字内容 不停上下滑动 或cat大量内容的文件 操作过程中用户界面卡死 如下 3
  • 吴恩达深度学习笔记——改善深层神经网络:超参数调整,正则化,最优化(Hyperparameter Tuning)

    深度学习笔记导航 前言 传送门 改善深层神经网络 超参数调整 正则化 最优化 Improving Deep Neural Networks Hyperparameter Tuning Regularization and Optimizat
  • 安装或更新 Android Studio

    在开始用 Jetpack Compose 来编写软件之前 我们需要 1 一台可以联网的电脑 2 安装或更新到 最新版的 Android Studio 3 选择创建 Empty Compose Activity 4 保持版本更新 尝试使用最新
  • Retrofit动态代理+注解+反射简析

    1 定义注解 Get注解 用来定义网络请求类型 Target ElementType METHOD Retention RetentionPolicy RUNTIME public interface Get String value Qu
  • sort()函数的用法说明

    sort 排序是一种简单的快速排序 用于对数组的排序 时间复杂度为n log2 n sort 函数必须是在 cpp 的文件中才能运行 头文件为 include
  • jmeter——BeanShell 预处理程序

    jmeter BeanShell 预处理程序 一 BeanShell 预处理程序描述和作用 二 BeanShell 预处理程序的使用 三 BeanShell 预处理程序的注意事项 四 BeanShell 预处理程序的拓展 一 BeanShe
  • 什么是ADT

    Abstract Data Type 抽象数据类型 是指数据结构作为一个软件组件的实现 ADT的接口用一种类型和该类型上的一组操作来定义 每个操作由它的输入和输出定义 ADT并不会指定数据类型如何实现 这些实现细节对于ADT的用户来说是隐藏
  • php 验证密码大、小写英文字母、数字、特殊字符4选3;且长度大于等于8位

    param password string 明文密码 return array 检测密码合法性 大 小写英文字母 数字 特殊字符 4选3 且长度大于等于8位 function check password legal KaTeX parse
  • pandas把索引变成列

    pandas把索引变成列 只需要使用reset index 这样index就会变成一列变量出现在元数据表中 比如原来的数据表是上面这样 使用reset index 就变成这样 具体reset index 还有一些更细的应用 后续随着学习再继
  • 判断电脑是否插入移动磁盘U盘等并显示结果

    VC 检测判断电脑是否插入移动磁盘U盘等并显示结果 判断手机 U盘 存储卡等设备是否插入到电脑接口中 若检测到某设备 则将设备盘符显示于窗口中 项目源代码 部分代码 程序运行截图
  • 数据库运维之数据库备份的多种方法

    数据库备份 数据库为school 素材如下 1 创建student和score表 CREATE TABLE student id INT 10 NOT NULL UNIQUE PRIMARY KEY name VARCHAR 20 NOT
  • 静态路由及默认路由——基本配置

    拓扑图 原理简述 1 静态路由 是指用户或网络管理员手工配置的路由信息 当网络拓扑结构或链路状态发生改变时 需要网络管理员手工配置静态路由信息 相比较动态路由协议 静态路由无需频繁的交换各自的路由表 配置简单 比较适合小型 简单的网络环境
  • el-switch在按钮内加文字内嵌文字

    产品需求 在按钮内内嵌对应操作文字 原生展示效果 升级展示效果 解决方案 按钮
  • %d, %ld, %lld 区别, %s,%c区别

    相信下面几个表达方式 就能说明问题吧 d int ld long lld long long 在32位编译器上 int long 32bit long long 64bit c是单个字符 也就是用 的 s是字符串 用 的
  • 深入理解SSL VPN

    名词解析 SSL Secure Socket Layer 安全套接字层 TLS Transport Layer Security 传输层安全协议 TLS 1 0是IETF Internet Engineering Task Force In