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

前言

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在零信任解决方案的落地实践_第1张图片

QUIC落地ZTNA场景下实践效果

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

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

2. 运营商UDP流量限速

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

总结

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

你可能感兴趣的:(网络安全)