Page 223 - 《软件学报》2020年第12期
P. 223
鲁宁 等:联盟模式下高效单包溯源方法研究 3889
针对目的地址相同但入标签不同的 IP 流,该溯源路由器必须分配不同的出标签,其中,入标签是指 IP 到达流在
进入该溯源路由器时携带的标签(即上游写入的标签),出标签是指该溯源路由器为 IP 到达流重新写入的标签.
基于此,上游溯源节点若能将下游链路编码和分配的出标签写入分组包头,下游溯源节点则通过同时记录该分
组的携带信息以及新分配的出标签,建立基于 IP 流标记的溯源链路指纹.在反向回溯中,下游溯源节点只需使用
出标签和目的地址就匹配出上游链路编号和入标签:前者用来判定上游节点,后者用作下一条链路回溯,迭代完
成面向 IP 流的溯源链路重构任务.
我们以图 4 为例来阐述基于 IP 流标记的域内溯源的基本思想.已知图 3 包含两个成员域 AS 1 和 AS 6 ,不失一
般性,本文只介绍 AS 1 内链路指纹建立过程和路径回溯过程.假设成员域 AS 1 的溯源网络已经建立,包括溯源虚
拟链路的生成和虚拟链路编号的分配.此外,重载 IP 包头的 Identification 字段充当标记域,其中,前 8 位用来存放
标签,后 8 位用来存放链路编号(作者在之前研究已证明上述空间足够承载标签和链路编号).受害者位于成员域
1 z
2 z
AS 6 ,攻击者位于成员域 AS 1 且有两个,也就存在两条攻击路径 P ={R 1 R 3 ,R 3 R 4 }和 P ={R 2 R 3 ,R 3 R 4 }.
A A
Fig.4 Intra-AS link fingerprint establishment based on IP stream marking (traceability network from Fig.3)
图 4 基于 IP 流标记的域内链路指纹建立(溯源网络源于图 3)
域内链路指纹建立过程:当攻击者 A 1 发送的 IP 分组 Z 1 到达 R x ,首先检查 Z 1 标记域,如果伪造(链路编号不
正确)或为空,那么 R x 就是入口路由器(例如 R 1 或 R 2 ),直接分配标准出标签 3,同时将其写入标记域,然后利用目
的地址查找溯源转发表,确定下一跳溯源链路编号,并写入标记域,最后将 Z 1 转发.如果标记域不空,那么 R x 为中
间路由器(例如 R 3 ),提取和记录标记域信息到链路指纹表,其次,按照同宿但不同源规则为 Z 1 分配出标签(即为
A 1 和 A 2 的 IP 分组分配不同标签),将其写入标记域的同时记录到链路指纹表.然后,利用目的地址查找溯源转发
表,确定下一跳溯源链路编号,写入标记域.最后,将 Z 1 转发.如果标记域不空且 R x 为边界路由器(例如 R 4 ),那么直
接提取和记录标记域信息到链路指纹表,域内链路指纹建立过程结束,后续操作归于域间溯源.
域内攻击路径回溯过程:域间溯源能保证边界路由器 R 4 准确匹配到入标签 L in .基于此,假设 AS 1 控制服务器
向 R x 提出包含(目的地址,出标签 L out )的溯源请求.首先查询 R x 中包含目的地址的链路指纹表,将 L out 与表条目
的出标签一一匹配,查找出入标签 L in 和虚拟链路编号,如果 L in =3,就说明上游节点就是入口路由器,溯源请求停
止;否则,就说明上游节点并非入口,需要发起新一轮溯源请求(目的地址,入标签 L in ).
以上内容从整体上概述了域内溯源基本原理,接下来,重点从域内溯源网络构建和链路指纹建立函数两个
角度展开叙述.
a. 域内溯源网络构建
域内溯源网络是以底层自治域网络为基础、溯源路由器为组成节点的覆盖网络,其构建需解决两个问题.
1) 溯源链路生成.如何在溯源网络动态伸缩条件下,以尽可能低的传输成本完成溯源节点状态更新;