自组织网络的攻击按环节分四类:路由层的黑洞与急速抢答、拓扑层的虫洞拉直、身份层的女巫与伪装、转发层的选择性丢弃。它们的共同原理是利用协议"过度信任对方"的环节。
前几章的协议都有一个温柔的假设:所有节点都按剧本演戏。现在把这个假设撕掉。攻击者不需要破密码、不需要大功率,只要比诚实节点"更配合"——更快的应答、更短的路径、更热情的转发——就能把全网的信任骗到自己手里。理解攻击的最好方式不是背名词,而是逐个问:这个攻击瞄准了协议的哪一次轻信。
AODV 源节点广播 RREQ 后,会采纳最先到达、序列号最新鲜的 RREP。攻击者的手法朴素得惊人:收到 RREQ 立刻回一份伪造的 RREP,声称"我到目的地零跳,序列号巨大"(比全网见过的都大,确保"新鲜")。源节点大喜,把数据全部交给攻击者;攻击者收下,然后扔掉——报文进了个"黑洞"。变体"灰洞"更狡猾:丢掉一部分、转发一部分,比例控制得刚好不触发邻居的异常检测。
黑洞为什么总能赢在起跑线?因为诚实是有延迟的:真 RREP 必须走到目的地(或真正有新鲜路由的节点)再回来,攻击者却在一步之遥。这个"抢答优势"是整个攻击家族的根,防它就得反抢答——等一等、多收几份应答、交叉验证,这些正是 6.3 安全路由的出发点。
两个合谋的攻击者分处网络两端,用一条高性能私有链路(有线、定向天线)把收到的路由消息瞬间搬到对面重新注入。效果:网络东侧的节点广播 RREQ,西侧的合谋者立刻转发,这份 RREQ 走过"两跳"就横穿了全网——沿途所有节点都记录到一条"神奇短路径",路径当然经过虫洞两端。之后大量流量被吸引到这条"最快"的路上,攻击者获得了窃听与篡改的中心位置,或者干脆在流量高峰掐断隧道,制造一次精准的分区。虫洞不伪造任何报文、不破坏任何字段,它只是把真实报文在真实时间里搬了家——所以纯密码学的校验(签名、序列号)对它无效,防御只能靠物理层特征:链路两侧的邻居数异常、传输时延与"跳数"不匹配、每跳信号特征突变。
女巫攻击里,一个物理节点伪造出大量虚拟身份。在自组织网络里身份就是投票权:信誉系统里用十个假身份给自己刷好评、投票协议里用假身份左右簇头选举、冗余机制里"多路径"看似不相交、实际都经过同一个攻击者。它破坏的是**"一个地址等于一个实体"的隐含公理**。防御思路是让身份与某种不可伪造的稀缺资源绑定:物理层无线指纹(射频特征难以完美伪装)、社会性绑定(身份由多个既有可信节点共同担保)、或资源考试(每个新身份必须完成一定计算量或通信量证明,抬高造假的边际成本)。
| 层次 | 攻击 | 瞄准的轻信 | 一句话防御 |
|---|---|---|---|
| 路由发现 | 黑洞与灰洞 | 最先且最新的应答 | 多应答交叉验证与跳数核实 |
| 路由发现 | 急速抢答 | 先到先得 | 给应答加随机等待窗口 |
| 拓扑 | 虫洞 | 跳数少就是好路径 | 时延与跳数一致性检查 |
| 身份 | 女巫与伪装 | 地址即实体 | 身份绑定物理或社会资源 |
| 转发 | 选择性丢弃与急工 | 邻居都会尽力转发 | 逐跳监督与信誉记账 |
| 干扰 | 定向干扰与窃听 | 共享介质天然裸奔 | 跳频、加密与冗余路径 |
背景:网络安全课的实验环境,三十节点的 Mesh 试验床,任务是把黑洞攻击完整复现并观察。操作:选一台节点加载攻击模块——收到 RREQ 不查表、不转发,直接回 RREP(目的序列号设为当前已知最大值加一千、跳数填零)。结果:一分钟后,全网经该目的地的流量投递率从百分之九十九跌到百分之三,拓扑图上攻击节点成为醒目的流量汇聚点;关闭攻击模块后约四十秒,网络因序列号机制逐步淘汰假路由而自愈。解读:攻击者只用了两个字段(序列号、跳数)就拿走了全网的流量——协议把"新鲜度"全权交给了一个任何人都可以声明的数字。防御的对照组同样做了:给源节点加"至少等三份 RREP 且互相校验跳数与序列号合理性"的策略后,同款攻击的得手率降到接近零(攻击者的应答因跳数声明过于完美而暴露)。变式:灰洞把丢弃率调到四成,投递率掉到五十九但拓扑图上不再有醒目汇聚点——慢性攻击比急性攻击更难看见,这也是 6.2 信誉机制要解决的核心问题:光看一瞬间不行,要看历史。
分析攻击前先声明"对手多强",否则讨论没有边界。一级是脚本小子:跑现成工具、懒得定制,防住默认参数就挡掉九成——上述四类攻击的公开实现都属这级,基础防御(多应答核验、邻居数检查)针对他们。二级是定向对手:了解你的协议与部署,会定制参数、会用灰洞慢速渗透,防御必须上 6.2 的信誉体系与 6.3 的安全路由,还要有日志审计能力。三级是国家级资源:可控硬件、长期潜伏、能物理接触节点(俘获提取密钥),这级没有纯技术解,要靠体系设计(密钥可吊销、节点可隔离、损失可限域)把伤害压到可承受。给项目做威胁建模时,先明确防到哪一级、付出多少代价——宣称防三级的项目,多数连一级的作业都没写完。
攻击面分层的读法也提示了防御的排布次序:自下而上修,先物理后协议——频谱与物理层的干扰窃听是所有上层攻击的温床,链路加密与跳频没做之前,任何路由层防御都是纸门;而身份层一旦失守(女巫未防住),上层的信誉与投票全部作废。所以最小安全集的顺序是:先信道(加密与完整),再身份(防伪装),后行为(信誉与审计)。跳级修安全的方案,演示时都很漂亮,攻防演练时最先垮。