今天为大家介绍清华大学计算机系徐恪老师团队一篇即将发表于IEEE/ACM Transactions on Networking的文章,其在互联网网络层提供数据分组传输过程安全验证手段。
Songtao Fu, Qi Li, Min Zhu, Xiaoliang Wang, Su Yao, Yangfei Guo, Xinle Du, Ke Xu. MASK: Practical Source and Path Verification based on Multi-AS-Key.
01
背景
互联网跨域场景分组传输过程存在数据分组损坏(篡改、伪造、延迟、丢弃分组)、路径不一致等安全问题。随着物联网、工业互联网等应用场景不断拓展,自动驾驶、医疗设备等联网,为提升用户使用网络的安全性,用户需要具备在网络层验证数据分组实际传输过程的能力,即实现路径验证。
在路径感知网络基础上,路径验证机制主要包括 2 个基本的安全属性:
(1)用户节点(源和目的节点)可以验证网络是否遵循其传输策略。
(2)中间路由节点和目的节点能够验证数据分组来源并尽早过滤恶意流量。
然而,现有互联网并未在网络层提供数据分组传输过程安全验证的手段,尽管当前已有ICING、OPT、EPIC等多种路径验证机制,但由于存在较大的网络通信开销、路由节点计算开销,难以满足用户自定义验证需求,导致这些机制缺乏部署激励。
因此,在互联网中实现路径验证机制需要降低网络的通信开销和路由节点计算开销,提升满足用户需求的验证能力,并降低部署成本,提升机制的可部署性。
02
已有工作及设计目标
当前基于认证码的路径验证机制主要包括两种:逐跳验证和随机验证。
如图(a)所示,逐跳验证机制(如 OPT、 EPIC等)中,每跳中间路由节点都会验证源节点添加的认证码,并更新路由节点自己的认证码。该方式带来扩展分组头部过长(通信开销大),路由节点计算开销过重等不足。
如图(b)所示,随机验证机制(如 PPV)从流的角度对整条流进行处理,每个数据分组只由特定数量(例如 2 跳)路由节点处理对应的认证码,降低了路由节点的处理开销和网络通信开销。但源节点并未添加认证码的方式,路由节点难以过滤非法数据分组。
此外,Atomos机制基于同态加密降低了网络通信开销,但仍然存在较大的路由节点计算开销。
为了实现路径验证,主要的挑战是在完成验证的同时基本不影响数据面高速数据传输,即实现:
路由节点和用户之间动态密钥共享
用户按需生成验证策略
路由节点轻量级认证操作
通过分析路径验证机制的两个特点: 一是路由节点在数据面需要计算至少一个认证码来证明其处理了一个数据分组;二是数据面每个认证码的认证时间的持续时间是数千个数据包,轻量级加密(2EM)方式能够满足验证需求。
因此,我们采用分离数据面与控制面加密操作的方式,在控制面通过 AES 等强度较高的认证码操作生成动态密钥,数据面通过轻量级认证码操作生成认证码,在保证验证安全性的同时降低路由节点计算开销。如图(c)所示,通过用户驱动的传输策略,以时间片为单位实现逐流统计,降低新增数据包头长度(通信开销)和提升基于流统计信息(用于满足用户检测数据包丢弃、重放)的能力。
03
MASK介绍
层次化动态密钥共享
动态密钥
动态密钥由每个AS掌握的与多个AS的主密钥(Multi-AS-Key)派生,派生机制为通过两个AS的主密钥对用户信息、边界路由器信息和时隙信息进行加密,得到动态密钥。用户将时隙信息写入数据包头,边界路由器收到数据包后,直接读取时隙信息,取出对应的动态密钥。
层次化
为支持大规模用户接入,通过代理路由节点与路径上需要验证的边界路由节点共享动态密钥。代理路由节点通常为一个子网的边缘路由器,降低了边界路由节点密钥维护的规模。
定长新增数据包头设计
新增数据包头中既包括了时间片(epoch)、序列号(seq)、时隙号和用户标识(indicator)、指令(选中路由节点id进行源验证)等信息,也包括了用于验证的验证码(mark),三个验证码分别为:
源节点验证码:源节点计算并由选中路由节点验证的认证码
路由节点验证码:传输路径上路由节点更新的认证码
用户节点验证码:源节点计算并由目的节点验证的认证码
源用户可自定义选中路由节点的概率,并可在数据包头中嵌入路由节点逐跳/单跳更新的指令,实现按需动态验证。
用户驱动的路径验证策略
无跨域通信验证策略协商
在 MASK 中,源节点与目的节点通过动态密钥与为每个时间片协商验证策略。该策略包括一定时间片内传输的数据分组数量和每个路由节点验证数据分组的概率。通过用户节点本地计算的方式,不需要源和目的节点进行跨域会话协商,减少因为协商策略带来的跨域通信开销。
路由节点无状态验证策略
路由节点仅需根据源端指令(id)进行无状态的验证码验证及更新。其中,一个32比特的验证码(marksrc)用于路由节点验证源节点,另一个32比特验证码(markr)用于路由节点更新后,由目的节点验证路由节点。为了降低路由节点开销,MASK使用源用户与一个选定中间路由节点的密钥生成一个64比特的验证码,截断为两个验证码,每个路由节点仅需计算一次验证码,大大降低了路由节点开销。
用户驱动的路径验证
通过源用户驱动的方式,将路由节点的验证码与数据包部分字段(IP地址、上层需要验证的固定字段)哈希进行异或,经过中间节点时,中间节点将新的验证码再次异或,即可得到数据包哈希。目的节点收到数据包后,可实现对中间路由节点的验证,并根据哈希值验证数据包完整性,根据用户节点验证码验证数据包的合法性。通过每时间片计数统计,目的节点验证每个时间片的数据包(DAT)总量以及每个路由节点验证及更新的验证码数量是否与验证策略一致,并在每个时间片结束后通过ACK传送路径验证结果。
性能分析
MASK实现了低开销、高可靠、易部署的路径验证机制,主要体现在以下几个方面:
低开销:通过分离与控制面和数据面加密操作降低计算开销,基于用户驱动的随机验证机制实现定长新增数据分组头部,降低通信开销。
高可靠:基于验证策略,不但提升了对每个分组真实转发路径的验证能力,还从基于流的角度增加了数据分组丢弃、重放等攻击检测能力,提升了机制的可靠性。
易部署:在可编程路由设备上通过 2EM 算法生成轻量级认证码,实现线速处理数据分组。用户能实现端到端安全传输,互联网路由节点能吸引用户使用其传输流量,从而带来部署激励。
04
实验验证
BMv2端到端时延:在 BMv2 中模拟了2-10跳路由设备的端到端时延,数据面实现的MASK(MASK-D)机制与IPv6 数据分组的端到端时延基本一致;使用外部功能实现的MASK机制与同类机制相比,处理时延降低到1/2-1/n(n为路径长度)。
Tofino1 硬件处理时延:MASK机制在数据包高于512字节时,具有与IPv6数据包几乎一致的处理时延,与同类机制相比,处理时延至少降低至1/2(未包含同类机制难以在设备数据面实现的动态密钥协商及动态密钥派生时延)。
05
增量部署
基于互联网“边缘复杂,核心简单”的特点,MASK卸载了路径验证大部分开销至控制面及端节点。中间路由节点仅需在数据面计算一次轻量级的验证码(2EM)操作即可实现验证,在可编程交换机中能够实现线速处理。MASK基于路径感知网络部署。在实际中,以 SRv6 为代表的路径感知网络的部署是一个渐进过程。对于专用网络用户,可以直接使用可编程路由设备部署对应的机制;对于难以升级的路由设备,可以将部署对应机制的可编程设备旁路接入原有路由设备,通过策略路由将流量引入可编程路由设备,实现路径验证功能。
06
结语
MASK 基于路径感知网络,通过路径验证提升了数据传输的安全性,并基于验证结果使能用户感知节点传输能力,提升传输的有效性。以SRv6为代表的路径感知网络部署是一个渐进的过程,我们期待路径验证机制与之结合,为安全高效的数据传输带来更多可能。
实验室网址:
http://thucsnet.com/
代码地址:
https://github.com/programmableNetwork/mask-BMv2
参考文献:
1. Kim T H, Basescu C, Jia L, et al. Lightweight source authentication and path validation. SIGCOMM 2014.
2. Legner M, Klenze T, Wyss M, et al. EPIC: every packet is checked in the data plane of a pathaware internet. USENIX Security 2020.
3. Wang L, Kim H, Mittal P, et al. Programmable in-network obfuscation of DNS traffc. NDSS DNS Privacy Workshop 2021.
4. Naous J, Walfish M, Nicolosi A, et al. Verifying and enforcing network paths with icing. Co-NEXT ’11.
5. Wu B, Xu K, Li Q, et al. Enabling effcient source and path verification via probabilistic packet marking. IWQoS 2018.
6. He A, Bu K, Li Y, et al. Atomos: Constant-size path validation proof. IEEE Trans. Inf. Forensics Secur., 2020.
还没有评论,来说两句吧...