QUIC在零信任解决方案的落地实践

news2024/11/25 4:36:18

前言

ZTNA为以“网络为中心”的传统企业体系架构向以“身份为中心”的新型企业安全体系架构转变,提供解决方案。随着传统网络边界不断弱化,企业SaaS规模化日益增多,给终端安全访问接入创造了多元化的空间。其中BYOD办公方式尤为突出,移动化办公确实为个人提升了效率,为组织节省了成本;但是给业务系统的安全接入,业务处理及时响应上带来了成本和挑战。需要我们思考是否引入非传统的技术点来解决用户需求侧的痛点,同时保障整体方案的稳定性和可实践性。

ZTNA实施过程中遇到了哪些问题

移动化办公场景下,特别在高铁,地下停车场等基站变更频繁或弱网等场景下,传统TCP应用接入模式下,会导致基于TCP创建的零信任通道在不断地中断,重新建链;导致业务访问无法做到及时响应,体验性很差。

ZTNA解决方案上特别提到了单包授权;而单包授权虽然解决了防火墙端口必须要默认打开的弊端;需要先敲门后授权,减少业务系统的网络攻击面。但是单包授权在应用过程中,还是存在需要改进的点:

● 单包授权模式下,业务报文往往都会伴随着有敲门报文;UDP敲门报文必须要鉴权成功,打开相应业务端口,业务报文才能具备有效性。往往实际落地过程中,由于中间转发设备多路径,以及QoS等问题,首个SYN包握手大概率失败,增加了访问时延。

● 同时传统单包敲门还有一个问题,就是无法解决nat网络场景,导致敲门放大问题。带来了网络不确定性。而传统模型下,只能借助缩小敲门有效时间来应对。

如何来解决上述问题,提升ZTNA解决方案的稳定性?我们最终选用QUIC协议来保障。

QUIC是什么

QUIC(Quick UDP Internet Connection)最开始是由Google提出的一个基于UDP的传输协议,为了解决传统tcp协议固 有的性能瓶颈,它是下一代互联网协议HTTP/3的底层传输协议。除了应用于Web领域,它同样适用于一些通用的需要低延迟、高吞吐特性的传输场景。IETF推进其标准化工作,2021 年,QUIC 协议的正式标准化版本 RFC9000 发布。

选型QUIC的优势体现点

1. 握手建链相比较传统TCP更快

QUIC建链时间大约0~1 RTT,其在两方面做了优化:

● 传输层使用了UDP,相比TCP需要三次握手,减少了1个RTT延迟。

● QUIC底层使用tls1.3进行加密通信,相比tls1.1和tls1.2, 通过ClientHello和ServerHello的扩展进行密钥交换,省去了1.2版本中KeyExchange的过程,又省去了一次握手。

2. 支持连接迁移

相比传统的TCP使用5元组来区别一个连接,QUIC在握手阶段随机生成connection id,不在通过五元组来区分,这样当网络发生改变导致五元组发生变化后,依旧可以通过握手阶段的connection id关联连接。

3. 可插拔的拥塞控制

QUIC在应用层协议实现了Cubic、BBR、Reno等拥塞控制算法,用户可以根据不同的网络场景选择合适的拥塞控制算法,也可以自己实现私有的拥塞控制算法。

4. 避免队首阻塞的多路复用

QUIC 一个连接支持多个 stream,stream之间相互独立,一个stream丢了一个packet,并不影响其他stream。

5. 解决弱网场景

●  tcp重传报文导致rtt无法准确计算。

●  tcp拥塞控制在丢包场景会进行退让,导致发生窗口减少,但丢包有可能是网络状况差,不一定是发生拥塞。

QUIC落地ZTNA场景下实践效果

1. 确认通道稳定性明显提升

网络切换行为

隧道状态(隧道重新建立/隧道不变)

隧道应用访问(访问正常/无法访问)

网络特征(延迟高低,用户是否明显感知)

4G切WIFI(单次快速切换)

隧道不变

正常访问

4G切WIFI(10次快速切换)

隧道不变

正常访问

4G切WIFI(50次快速切换)

隧道不变(4g连接很长一段时间之后再去切wifi,偶现隧道重新连接)

正常访问

否(隧道重连时感知明显 )

网络切换行为

隧道状态(隧道重新建立/隧道不变)

隧道应用访问(访问正常/无法访问)

网络特征(延迟高低,用户是否明显感知)


WIFI切4G(单次快速切换)

隧道不变

正常访问


WIFI切4G(10次快速切换)

隧道不变

正常访问


WIFI切4G(50次快速切换)

隧道不变(wifi连接很长一段时间之后再去切4g,偶现隧道重新连接)

正常访问


否(隧道重连时,感知明显)

从上图表面,当网络发生切换后,零信任通道还是可以正常使用,不需要重新连接。


2. 确认访问速度显著提升

图片

QUIC落地ZTNA场景下实践效果

1. 相比较TCP服务侧处理CPU偏高

相比于TCP的ack是在内核处理,QUIC的ack报文需要从内核提到用户态处理,增加了额外的用户态内核态切换和数据拷贝,并且QUIC的ack报文也是加密的,增加了tls加解密,所以cpu负载更高。

2. 运营商UDP流量限速

由于UDP无连接,中间设备无法进行连接跟踪,当中间网络带宽瓶颈时,TCP有拥塞控制主动让出带宽,而UDP没有拥塞控制,运营商中间设备会对UDP报文QoS限速丢包。

总结

技术本身均有其优势和劣势,这个都是技术选型横向比较中确实存在的。技术的落地关键点还是要来源于结合落地场景的分析,什么样的场景或者需求驱动力下,采用哪种技术会更加稳妥。例如在局域网办公场景下,网络环境趋于稳定,选择QUIC驱动力则不强,可以选用传统TCP进行应用访问建链即可。而我们整体ZTNA解决方案中,均具备灵活可配置,让用户在技术落地和用户场景上找到最优解。

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

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

相关文章

什么是uniapp?如何开发uniapp?

大家好!我是咕噜铁蛋!随着移动应用市场的持续发展,开发者们面临着不断增长的需求和多样化的平台选择。在这个背景下,UniApp应运而生,成为一种跨平台开发框架,为开发者提供了一种高效、简便的方式来开发移动…

前端框架的单文件组件(Single File Component)

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

机器学习之线性回归(Linear Regression)

概念 线性回归(Linear Regression)是机器学习中的一种基本的监督学习算法,用于建立输入变量(特征)与输出变量(目标)之间的线性关系。它假设输入变量与输出变量之间存在线性关系,并试图找到最佳拟合线来描述这种关系。 在简单线性回归中,只涉及两个变量:一个是自变量…

【赠书活动】OpenCV4工业缺陷检测的六种方法

文章目录 前言机器视觉缺陷检测工业上常见缺陷检测方法延伸阅读推荐语 赠书活动 前言 随着工业制造的发展,对产品质量的要求越来越高。工业缺陷检测是确保产品质量的重要环节,而计算机视觉技术的应用能够有效提升工业缺陷检测的效率和精度。 OpenCV是一…

AWS解决方案架构师学习与备考

系列文章目录 送书第一期 《用户画像:平台构建与业务实践》 送书活动之抽奖工具的打造 《获取博客评论用户抽取幸运中奖者》 送书第二期 《Spring Cloud Alibaba核心技术与实战案例》 送书第三期 《深入浅出Java虚拟机》 送书第四期 《AI时代项目经理成长之道》 …

Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码

问题 今天在代码里面输出 console.log 信息直接指向了 vue.js,并且代码里面写了 debgger 也不生效 解决 f12 找到浏览器的这个设置图标 找到这个 ignore list 的 custom exclusion rules 取消掉 /node_modules/|/bower_components/ 这样就正常了

Neural Network——神经网络

1.feature reusing——特征复用 1.1 什么是特征复用 回顾我们之前所学习的模型,本质上都是基于线性回归,但却都可以运用于非线性相关的数据,包括使用了如下方法 增加更多的特征产生新的特征(多项式回归)核函数 在本身…

服务器数据恢复-raid5故障导致上层分区无法访问的数据恢复案例

服务器数据恢复环境&故障: 一台服务器上3块硬盘组建了一组raid5磁盘阵列。服务器运行过程中有一块硬盘的指示灯变为红色,raid5磁盘阵列出现故障,服务器上层操作系统的分区无法识别。 服务器数据恢复过程: 1、将故障服务器上磁…

【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现

​🌈个人主页:Sarapines Programmer🔥 系列专栏:《数据结构奇遇记》🔖墨香寄清辞:墨痕寄壮志,星辰梦未满。 通幽径心凝意,剑指苍穹势如山。 目录 🌞1. 模式匹配的基本概念…

工作:三菱PLC程序开发流程总结

工作:三菱PLC程序开发流程总结 一、程序流程图 程序流程图是逻辑思维与动作流程的检查图,是保证逻辑思维合理的前提,写代码丢失方向可从程序流程图重新整理,程序流程图非常重要。 二、组态配置 组态配置是将所用到的基板和模块…

网络编程二

前言 在上一篇关于网络协议的博客中,我们简单概括了网络套接字中的UDP协议,本篇博客我们将继续学习分享关于网络套接字中另一个协议,TCP网络协议 一、UDP和TCP协议区别是什么? 二者之间的区别如下 🔗UDP的主要特点 …

Mysql查询使用group_concat函数后,如果查询无结果,仍会返回一条空数据

1、在查询中使用了group_concat 函数,简单例子如下: select GROUP_CONCAT(recordid) from s_au_user where username 121212此sql查询一个username 为121212的数据,当然肯定是查询不到的,理论上应该返回0条结果,但是…

Python操作Word

Python操作Word 一、Word简介二、向Word写入内容2.1 导入模块2.2 创建doc文档对象2.3 添加段落2.4 添加列表2.5 添加图片2.6 保存文件 三、读取Word内容四、批量生成Word文件 一、Word简介 ​ 在日常工作中,有很多简单重复的劳动其实完全可以交给Python程序&#x…

Camtasia2024下载安装使用教程汇总

Camtasia Studio2024提供了强大的屏幕录像(Camtasia Recorder)、视频剪辑和编辑(Camtasi Studio)、视频菜单制作(Camtasia MenuMaker)等功能,界面简洁明晰、操作方便快捷。使用Camtasia Studio官方用户可以方便地进行屏幕操作的录制和配音、视频的剪辑和过场动画、添…

晚期食管癌肿瘤治疗线程分类

文章目录 1、肿瘤治疗的线数1.1 基础概念1.2 线程定义1.3 如何计算治疗线数 2 食管癌治疗指南2.1 食管癌诊疗指南2.1 CSCO 本文前半部分主要来源于参考文件1,其余部分来源于官方指南。无原创内容,全部为摘要。 1、肿瘤治疗的线数 1.1 基础概念 抗肿瘤药…

【Hive】——DML

1 Load(加载数据) 1.1 概述 1.2 语法 LOAD DATA [LOCAL] INPATH filepath [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1val1, partcol2val2 ...)]LOAD DATA [LOCAL] INPATH filepath [OVERWRITE] INTO TABLE tablename [PARTITION (partcol…

ABAP与HANA集成 2:ABAP调用HANA存储过程或SQL语句

作者 idan lian 如需转载备注出处 需求 虽然是做BW模块,但是最近项目上种种,都需要给ABAP人员或者前台用户提供能供他们使用的表,就稍微研究了下ABAP和HANA的集成问题,因为我们BW更擅长的还是HANA,而且HANA的运行效…

什么是 DDoS ?如何识别DDoS?怎么应对DDOS攻击

什么是DDOS攻击 DDoS攻击(Distributed Denial of Service Attack)即分布式拒绝服务攻击,是一种利用分布式网络来发起大量的请求,占用目标服务器或网络资源的攻击行为。这种攻击方式可以瘫痪目标系统,导致其无法正常提供…

TensorFlow 2 和 Keras 之间的区别总结

1、什么是TensorFlow 2 TensorFlow 2是谷歌开源的一款深度学习框架,于2019年发布,并且在同年10月1日发布了TensorFlow 2.0.0正式稳定版。这款框架被很多企业与创业公司广泛用于自动化工作任务和开发新系统。 TensorFlow 2在分布式训练支持、可扩展的生…

MATLAB - 使用 MPC Designer 线性化 Simulink 模型

系列文章目录 前言 本主题介绍如何使用 MPC Designer 对 Simulink 模型进行线性化。为此,请从包含 MPC 控制器块的 Simulink 模型打开该应用程序。本例中使用 CSTR_ClosedLoop 模型。 open_system(CSTR_ClosedLoop) 在模型窗口中,双击 MPC 控制器模块。…