📡 第3.2章 无线传感器网络安全
重点章节
着重复习:Blundo二元多项式方案,SPINS安全协议框架,SNEP,μTESLA
知识概览

🗺️ 本章核心逻辑脉络
- WSN是什么,有什么弱点?(简介与特点)
- 面临什么威胁,需要什么安全目标?(威胁与需求)
- 如何从整体上防御?(安全体系)
- 具体用了哪些密码学和协议技术?(Blundo、SNEP、μTESLA)
模块一:WSN基础与安全特点

1. WSN节点结构与网络结构
- 节点结构:传感器模块(感知+模数转化)➡️ 信息处理模块(信号处理)➡️ 无线通信模块(发射出去)。
- 网络结构 :
- 分布式网络:无固定结构,部署前拓扑未知,节点自组织寻找邻居建路。
- 集中式网络 :分为基站、簇头、普通节点。基站是控制中心,能力强、抗攻击、可信赖,常作为密钥分发中心(KDC)。数据流包括点对点、组播、广播。
2. WSN的"致命弱点"(与安全相关的特点 🎯)
- 资源受限:存储、计算、能量(电池)极度受限。
- 通信恶劣:信道不稳定、易窃听、易干扰。
- 环境不可控:部署位置随机,节点易被捕获失效,无物理安全保证。
- 网络动态:无基础框架,拓扑随时变化,自组织。
💡 备考点:所有的安全算法设计都必须向"低能耗、低存储"妥协!
模块二:安全威胁与安全需求

1. 安全威胁
- 常见威胁(与传统Ad hoc类似):窃听、哄骗/模仿、节点被捕获(危及安全)、注入、重放、拒绝服务。
- WSN独有威胁 🎯 :
- HELLO扩散法:一种DoS攻击,强信号伪造新基站,耗尽节点资源。
- 陷阱区:改变周围节点路由,让数据经过被捕获的节点(黑洞/陷阱)。
2. 安全需求(七大需求 🎯)
- 机密性:加密,防窃听。
- 完整性:防插入、删除、篡改。
- 健壮性:适应恶劣环境和拓扑变化,单点失效不毁全网。
- 真实性:点到点认证(确认发送者身份)+ 广播认证(解决一对多认证)。
- 新鲜性:防重放攻击,保证数据是最新的。
- 可用性:防瘫痪,合法用户能正常访问。
- 访问控制:无法用防火墙和重开销的公钥证书,需轻量级机制。
3. 安全机制设计思路
- 思路一:从路由安全出发(如SAR,有安全意识的路由)。
- 思路二:从安全协议出发(假定基站安全,重点解决节点间安全通信和广播认证)。
模块三:密钥分配与Blundo方案(计算题/理解重点 🎯)
由于WSN不能使用开销大的非对称加密,密钥分配是核心难点。
1. 随机预分配模型
节点部署前,从大密钥池随机选少量密钥组成密钥环,部署后以大概率共享密钥。
2. Blundo二元多项式方案(重点理解计算逻辑 🎯)
痛点 :n个用户两两共享密钥,平凡方法需要每个节点存n-1个密钥,太大!
解决方案 :利用 对称二元t次多项式 f(x,y)=f(y,x)f(x,y) = f(y,x)f(x,y)=f(y,x)。
- 步骤 :
- TA选大素数ppp,公开每个用户的身份ID(如ru,rvr_u, r_vru,rv)。
- TA构造多项式 f(x,y)f(x,y)f(x,y),例如2次多项式:f(x,y)=a+b(x+y)+cxy(modp)f(x,y) = a + b(x+y) + cxy \pmod pf(x,y)=a+b(x+y)+cxy(modp)。
- TA给用户U发送多项式 gu(x)=f(x,ru)g_u(x) = f(x, r_u)gu(x)=f(x,ru),给V发送 gv(x)=f(x,rv)g_v(x) = f(x, r_v)gv(x)=f(x,rv)。
- 通信时 :U计算 Kuv=gu(rv)K_{uv} = g_u(r_v)Kuv=gu(rv),V计算 Kvu=gv(ru)K_{vu} = g_v(r_u)Kvu=gv(ru)。因为对称性,Kuv=KvuK_{uv} = K_{vu}Kuv=Kvu,双方获得了共享密钥!
📝 PPT计算例题复盘 :
p=17,ru=12,rv=7,rw=1p=17, r_u=12, r_v=7, r_w=1p=17,ru=12,rv=7,rw=1。TA选 a=8,b=7,c=2a=8, b=7, c=2a=8,b=7,c=2。
多项式 f(x,y)=8+7(x+y)+2xy(mod17)f(x,y) = 8 + 7(x+y) + 2xy \pmod{17}f(x,y)=8+7(x+y)+2xy(mod17)
U的多项式:gu(x)=f(x,12)=8+7(x+12)+2x⋅12=7+14x(mod17)g_u(x) = f(x, 12) = 8 + 7(x+12) + 2x\cdot 12 = 7 + 14x \pmod{17}gu(x)=f(x,12)=8+7(x+12)+2x⋅12=7+14x(mod17)
V的多项式:gv(x)=f(x,7)=8+7(x+7)+2x⋅7=6+4x(mod17)g_v(x) = f(x, 7) = 8 + 7(x+7) + 2x\cdot 7 = 6 + 4x \pmod{17}gv(x)=f(x,7)=8+7(x+7)+2x⋅7=6+4x(mod17)
共享密钥:U算 Kuv=gu(7)=7+14×7=105≡3(mod17)K_{uv} = g_u(7) = 7 + 14\times7 = 105 \equiv 3 \pmod{17}Kuv=gu(7)=7+14×7=105≡3(mod17)
V算 Kvu=gv(12)=6+4×12=54≡3(mod17)K_{vu} = g_v(12) = 6 + 4\times12 = 54 \equiv 3 \pmod{17}Kvu=gv(12)=6+4×12=54≡3(mod17)。两者相等!
模块四:SPINS安全协议框架(核心考点 🎯🎯🎯)
SPINS是WSN最经典的安全框架,包含SNEP 和μTESLA两个子协议。
1. SNEP(轻量级点对点安全协议)
SNEP(Security Network Encryption Protocol)
核心机制 :每个节点与基站共享主密钥 KmasterK_{master}Kmaster,通过单向函数F派生出加密密钥 KeK_eKe 和完整性密钥 KmacK_{mac}Kmac。
SNEP提供三大安全保证:
- 数据机密性 :使用CTR(计数器)模式 加密。通信双方共享计数器C,C作为初始向量。优点:相同明文产生不同密文(语义安全);不用在网络上传输C值,省通信开销。
- 数据完整性 :使用MAC码,MAC={C∣∣E}KmacMAC = \{C || E\}{K{mac}}MAC={C∣∣E}Kmac。直接对密文验证(密文鉴别),避免无用解密。
- 数据新鲜性 :防重放攻击。使用Nonce机制 (一次性随机数)。A发请求带 NAN_ANA,B回应对必须带上相同的 NAN_ANA(强新鲜性认证)。
节点间安全通信(基站做KDC) :
若A和B要通信,A和B分别用自己和基站的共享主密钥(KAS,KBSK_{AS}, K_{BS}KAS,KBS),向基站申请,基站为它们生成临时通信密钥 SKABSK_{AB}SKAB 并安全下发。
2. μTESLA(轻量级广播认证协议)
μTESLA(micro Timed Efficient Streaming Loss2tolerant Autication Protocol)
痛点:单播认证用共享密钥,广播认证全网共享一个密钥?一旦一个节点被俘,全网广播密钥泄露!用非对称加密(数字签名)?节点算力不够!
核心思想 :"先发数据,后发密钥"(延迟密钥公布)。
- 基站使用单向函数F 生成密钥链:Ki=F(Ki+1)K_i = F(K_{i+1})Ki=F(Ki+1)。(知道未来密钥推不出过去密钥,知道过去密钥可以验证未来密钥)。
- 在时间段 iii,基站用密钥 KiK_iKi 计算广播包的MAC。
- 节点收到包时,密钥 KiK_iKi 还没公布,节点缓存该包。
- 过了延迟时间,基站公布 KiK_iKi。
- 节点收到 KiK_iKi 后,用单向函数验证其合法性(如用已知的 Ki−1K_{i-1}Ki−1 验证 Ki−1==F(Ki)K_{i-1} == F(K_i)Ki−1==F(Ki)),然后用 KiK_iKi 验证缓存包的MAC。
μTESLA解决的5大问题 🎯:
- 共享密钥问题 :全网共享的是密钥生成算法(单向函数F),而不是密钥池本身,节约存储。
- 单向性问题:单向函数不可逆,恶意节点拿到已公布的旧密钥,算不出未公布的新密钥,无法伪造广播包。
- 密钥丢失问题(容忍丢包) :因为密钥链是关联的(Ki−1=F(Ki)K_{i-1} = F(K_i)Ki−1=F(Ki)),如果丢了 K1K_1K1 的公布包,后来收到了 K2K_2K2,可以通过 K2K_2K2 算出 K1=F(K2)K_1 = F(K_2)K1=F(K2),照样能验证之前的包。
- 时间同步与延迟问题:采用"松散时间同步",周期性公布密钥。延迟时间需权衡:太长节点缓存爆满,太短通信开销大。
- 密钥认证与初始化问题 :初始密钥 K0K_0K0 的安全性通过SNEP协议进行安全协商和认证。
🏆 必背考点总结
- WSN三大受限:计算、存储、能量。这决定了一切协议必须"轻量级"。
- WSN两大独有攻击:HELLO扩散、陷阱区。
- 安全需求7个词:机密、完整、健壮、真实、新鲜、可用、访问控制。
- Blundo方案 :利用 f(x,y)=f(y,x)f(x,y)=f(y,x)f(x,y)=f(y,x) 对称性,节点存自己的多项式,代入对方ID得共享密钥,大幅减少存储量。
- SNEP三大机制:CTR模式加密(共享计数器省流量)、MAC密文鉴别、Nonce防重放。
- μTESLA核心:先发数据后发密钥 + 单向密钥链 + 松散时间同步。
- μTESLA如何防伪造:单向函数不可逆,旧密钥推不出新密钥。
- μTESLA如何抗丢包:密钥链关联,新密钥可推算出丢失的旧密钥。
- μTESLA初始化 :用SNEP保证第一个密钥 K0K_0K0 的安全分发。
模拟复习题
一、 单项选择题
1. 在集中式无线传感器网络中,通常被认为是抗攻击、可信赖的,并常作为网络中的密钥分发中心(KDC)的节点是( )
A. 普通传感器节点
B. 簇头节点
C. 基站(Sink节点/网关)
D. 随机选出的临时节点
【答案】C
解析:在集中式网络中,基站是控制中心,具有很高的计算和存储能力,通常被认为是抗攻击、可信赖的,因而基站可成为网络中的密钥分发中心(KDC)。
2. 攻击者利用无线传感器网络路由协议的缺陷,使用强信号和强处理能量让节点误认为网络有一个新的基站,这种WSN独有的攻击方式被称为( )
A. 陷阱区
B. HELLO扩散法
C. 拒绝服务
D. 重放攻击
【答案】B
解析:HELLO扩散法是WSN独有的攻击,属于DoS攻击的一种,利用强信号伪造基站;而"陷阱区"是改变路由让数据经过被捕获的节点。
3. 在Blundo二元多项式密钥分配方案中,设多项式为 f(x,y)=8+7(x+y)+2xy(mod17)f(x,y) = 8 + 7(x+y) + 2xy \pmod{17}f(x,y)=8+7(x+y)+2xy(mod17),用户U的公开信息 ru=12r_u=12ru=12,用户V的公开信息 rv=7r_v=7rv=7。用户U的多项式为 gu(x)=7+14xg_u(x) = 7+14xgu(x)=7+14x,则U和V协商出的共享密钥 KuvK_{uv}Kuv 为( )
A. 3
B. 4
C. 10
D. 14
【答案】A
解析:U计算共享密钥:Kuv=gu(rv)=7+14×7=105(mod17)K_{uv} = g_u(r_v) = 7 + 14 \times 7 = 105 \pmod{17}Kuv=gu(rv)=7+14×7=105(mod17)。105÷17=6105 \div 17 = 6105÷17=6 余 333,所以 Kuv=3K_{uv} = 3Kuv=3。
4. 在SNEP协议中,为了实现数据机密性并避免传输计数器值带来的能量消耗,SNEP采用了何种加密模式?( )
A. ECB(电子密码本模式)
B. CBC(密码分组链接模式)
C. CTR(计数器模式)
D. CFB(密码反馈模式)
【答案】C
解析:SNEP使用CTR(Counter)模式,通信双方共享计数器且每次通信后递增,避免了在网络上传递计数器值,从而节省了能量开销。
二、 判断题
5. 在无线传感器网络中,由于硬件受限,无法采用非对称加密体制的数字签名和公钥证书机制,因此WSN可以通过设置传统的防火墙来进行访问过滤。( )
【答案】错误(×)
解析:"访问控制"需求中明确指出,WSN不能通过设置防火墙进行访问过滤,同时由于硬件受限也不能采用非对称加密机制。
6. μTESLA协议中,基站使用单向函数F生成密钥链,计算方法为 Ki=F(Ki+1)K_i = F(K_{i+1})Ki=F(Ki+1)。即使恶意节点捕获了已经公布的密钥 KiK_iKi 和单向函数F,也无法推导出未公布的未来密钥 Ki+1K_{i+1}Ki+1。( )
【答案】正确(√)
解析:单向散列函数的特性是逆函数不存在或计算复杂度极大。已知 Ki=F(Ki+1)K_i = F(K_{i+1})Ki=F(Ki+1),可以顺推祖先密钥,但无法逆推未来密钥 Ki+1K_{i+1}Ki+1,这正是μTESLA防伪造的基础。
7. SNEP协议在进行数据完整性验证时,接收方必须先对密文进行解密,然后再计算MAC值来比对验证数据的完整性。( )
【答案】错误(×)
解析:SNEP采用的是"密文鉴别"方法,MAC的计算输入是 C∣∣EC||EC∣∣E(计数器和密文),直接验证密文的完整性,避免了不必要的解密运算,节省了节点的计算能量。
三、 简答题
8. 简述无线传感器网络(WSN)与安全相关的主要特点(至少列出4点),并说明这些特点对WSN安全设计的影响。
【答案要点】
- 特点(4点): ①资源受限(存储、计算、能量受限);②通信环境恶劣(信道不稳定,易窃听干扰);③部署区域安全无法保证(位置随机,节点易失效被俘);④网络无基础框架,拓扑结构不稳定(自组织)。
- 对安全设计的影响: 这些限制使得传统网络的安全机制无法直接应用,要求WSN的安全算法设计(包括路由、加密、认证、密钥管理等)必须以"低开销、低能耗"为前提,寻求轻量级的解决方案。
9. SNEP协议是SPINS框架中的重要组成部分,请简述SNEP提供了哪三个主要的安全保障,并分别说明实现这三个保障的核心机制是什么?
【答案要点】 SNEP提供的三个安全保障及核心机制如下:
- 数据机密性: 采用 CTR(计数器)模式 加密。双方共享计数器作为初始向量,既实现了语义安全(相同明文产生不同密文),又避免了传输计数器带来的通信开销。
- 数据完整性(鉴别): 采用 消息鉴别码(MAC) 机制。通过对密文进行鉴别(MAC={C∣∣E}KmacMAC=\{C||E\}_{Kmac}MAC={C∣∣E}Kmac),直接验证密文完整性,避免无用的解密运算。
- 数据新鲜性: 采用 Nonce机制(一次性随机数)。在请求包中加入Nonce,应答包必须包含相同的Nonce,以此防止重放攻击,实现强新鲜性认证。
10. μTESLA协议是专为无线传感器网络设计的广播认证协议。请简述μTESLA协议的"核心思想"是什么?并说明它是如何解决"密钥发布包丢失"问题的?
【答案要点】
- 核心思想: "先广播数据,后公布密钥" 。基站先发送用当前时间段密钥 KiK_iKi 生成的MAC认证数据包,此时节点没有密钥,先缓存数据;延迟一段时间后,基站再公布密钥 KiK_iKi。因为在数据包发送时密钥未公开,攻击者无法伪造合法数据包。
- 解决密钥发布包丢失的机制(密钥链机制): 基站通过单向函数F预先生成密钥链(满足 Ki=F(Ki+1)K_i = F(K_{i+1})Ki=F(Ki+1))。密钥之间不是独立的,而是有顺推关系。如果中间丢失了某个密钥发布包(如 K1K_1K1 丢失),节点在收到后续密钥(如K2K_2K2)时,可以通过单向函数运算推算出丢失的密钥(K1=F(K2)K_1 =F(K_2)K1=F(K2)),然后用推算出的密钥验证之前缓存的数据包,从而实现了"容忍丢包"的特性。