分层传感器网络中PKC和半PKC密钥管理方案的比较分析
1. 引言
无线传感器网络(WSN)由许多微小节点组成,这些节点协同工作,以感知和报告WSN设置环境中发生的活动。WSN的应用环境广泛,从战场部署到工业和环境监测领域。
传感器网络部署有两种方式:分层无线传感器网络(HWSN)和分布式无线传感器网络(DWSN)。在分层模式下,传感器遵循多级命令链,节点根据其计算能力分为基站(BS)、簇头(CL)和簇节点(CN)。在分布式WSN中,所有传感器节点以对等(P2P)方式进行协作活动。
无线环境中的安全威胁多种多样,其复杂程度取决于攻击者的计算能力。除了安全问题,有效利用资源也是决定WSN中任何安全架构成功的关键因素。
在传统通信网络中,为了提高效率,公钥密码学(PKC)常与对称密钥密码学(SKC)结合使用。在WSN中,由于资源受限,SKC一直被认为是密钥管理的唯一选择,而PKC被视为昂贵的替代方案。但混合方法可能更合适,即在资源最受限的节点中使用SKC,而在资源较好的上层节点中使用PKC。
本文将评估两种用于分层传感器网络的密钥管理方案:纯PKC的SACK - P方案和PKC与SKC混合的SACK - H方案。首先在TOSSIM仿真环境中对这两种方案进行评估,然后在MICAz节点上进行硬件实现验证。
2. 文献综述
在传统密码设计中,对称和非对称密钥机制常结合使用,以实现计算效率和更高的安全级别。对称密钥首先使用难以破解的非对称密码学进行加密,安全传输后,再用于保护实际通信过程。
无线传感器网络使用无线无线电作为通信介质,由于无线通信本身存在安全缺陷,传感器网络也面临信息泄露、操纵、拒绝服务攻击、流量分析攻击等隐私威胁。因此,密钥管理对于建立和维护通信双方的安全通道至关重要。
WSN中的安全通信是一个三步过程,节点使用预分配的密钥或密钥材料与相邻节点以及至少一个计算能力较强的节点交换信息。密钥管理过程大致分为密钥分析、密钥生成、密钥分配和密钥分发四个阶段。
由于WSN资源受限,传统安全机制因计算成本高而不适合。因此,最初采用对称密码解决方案来开发WSN的密钥管理框架。最初的简单方法是直接在通信介质上传输对称密钥或在每个节点预部署密钥,改进后的方法是传输密钥生成材料。
在传统公钥密码学中,RSA是最常用的算法,但对于传感器来说成本过高。椭圆曲线密码学(ECC)是另一种非对称密码学方法,使用较少的密钥位就能提供与RSA相同的安全性。在WSN的ECC实现中,可以在几秒内使用适当的内存资源生成公钥和共享密钥。因此,ECC(即PKC)现在被认为是WSN的一种有效密钥选择,但目前还没有完整的PKC密钥管理框架。
在WSN中,“混合”一词有多种含义。一些文献将提供不同安全级别的密钥管理方案分类为混合方案,以减少通信开销;另一些则根据节点的能力和功能对网络进行分类,提供集成的混合安全方法。
密钥管理方案根据管理密钥在网络生命周期内的更改方式分为静态和动态方案。网络也可以根据密钥分发机制分为概率、确定性和混合方案。
密钥预分配方案是在传感器节点部署前加载密钥或密钥材料,部署时节点计算用于通信的公共密钥。确定性预分配密钥方案有两种极端情况:单主密钥方法和全对密钥方法。单主密钥方法内存效率高,但安全性极低,一个节点被攻破可能使整个网络受到威胁;全对密钥方法为每个节点分配N - 1个密钥,安全性高,但内存需求最大。
概率预分配方案包括随机密钥、随机对密钥、随机密钥空间和基于组的密钥。基本密钥预分配方案中,每个节点从密钥池中随机选择K个密钥,两个节点若有至少一个公共密钥则可通信,该方案排除了基站并减少了部署后开销,但连续节点被捕获可能泄露存储的密钥。部署基于密钥预分配方案将节点分组部署在二维区域,每个节点从相应的密钥池中选择m个密钥。
还有一些成对密钥方案,如ESA、SNEP、LEAP等。排除系统(EBS)是一种动态密钥系统,节点存储部分密钥并不知道其他一些密钥,节点被攻破时,使用未知密钥加密新密钥并分发给其他节点,但少量节点联合可能泄露所有网络密钥。SHELL和LOCK是EBS的改进方案,采用分层网络模型。IKA2、Burmester - Desmedt使用非对称密码学,ID - star使用基于身份的密码学从节点身份派生公钥。
3. 两种架构的网络布局和密钥设置
考虑一个分层的无线传感器网络,节点根据计算能力分为基站(BS)、簇头(CL)和簇节点(CN)。BS是计算能力强的节点,位于受控环境中,负责收集CL的信息、协调密钥分发和撤销被攻破的节点。CL是资源稍好的普通传感器节点,负责协调网络的一个子部分。CN是执行传感活动的普通传感器节点,属于CL协调的网络子部分。
SACK - P是基于PKC的密钥管理架构,在整个网络中使用公钥,通过公钥/私钥对保护BS/CL、CL/CN之间的通信。SACK - H是PKC和SKC的混合方案,簇间通信使用对称密钥,簇内通信使用PKC。
以下是SACK - P和SACK - H密钥管理的基本步骤:
|方案|详情|
|–|–|
|SACK - P|
图例
:SN为部署前的节点,包括CL和CN
算法
:
1. 密钥注册:$SN_i\rightarrow BS: {SNID_i,Kpub[SN_i]}; 1\leq i\leq N$
2. CN密钥分发:
a. $CN_{ij}\rightarrow CL_i: {SNId_k,Kpub[CN_{ij}]}; 1\leq i\leq C, 1\leq j\leq n, 1\leq k\leq N$
b. $CL_i\rightarrow BS: {SNId_k,Kpub[CN_{ij}]}; 1\leq i\leq C, 1\leq j\leq n, 1\leq k\leq N$
c. $BS\rightarrow CL_i: {OK||REVOKE}; 1\leq i\leq C$
3. CL密钥分发:
a. $CL_i\rightarrow BS: {SNId_k,Kpub[CL_i]}; 1\leq i\leq C, 1\leq k\leq N$
b. $BS\rightarrow CL_i: {OK||REVOKE}; 1\leq i\leq C$
c. $CL_i\rightarrow CN_{ij}: { Kpub[CL_i]}; 1\leq i\leq C, 1\leq j\leq n$
4. BS密钥分发:$BS\rightarrow CL_i: {Kpub[BS]}; 1\leq i\leq C$|
|SACK - H|
图例
:SN为部署前的节点,包括CL和CN
算法
:
1. SN密钥部署:${SNID_i, KMi, KNBi}; 1\leq i\leq N$
2. BS密钥分发:$BS\rightarrow CL_i: {Kpub[BS]}; 1\leq i\leq C$
3. CL密钥分发:
a. $CL_i\rightarrow BS: {SNID_k,Kpub[CL_i]}; 1\leq i\leq C, 1\leq k\leq N$
b. $BS\rightarrow CL_i: {SNID_k,Kpub[CL_i]}; 1\leq i\leq C, 1\leq k\leq N$
c. $CL_i\rightarrow SN_{ij}: {SC_i}; 1\leq i\leq C, 1\leq j\leq n$
4. CN密钥生成:$KCi: {KM, SC_i}$|
4. 理论比较与评估
在SACK - P架构中,BS存储N + 1个密钥,每个CL存储n + 2个密钥,每个CN存储2个密钥。在SACK - H中,BS存储C + N + 2个密钥,每个CL存储C + 6个密钥,每个CN存储3个密钥。
为了进行时间和功率计算,考虑一个由3个节点组成的网络,分别为一个BS、一个CL和一个CN,即N = 3,C = 1,n = 1。设PR为接收能量,PT为传输能量,PC为计算能量。已知发送1字节消耗59.2µJ能量,接收1字节消耗28.6µJ能量,计算能量与传输能量相比可忽略不计。
使用SysTimeC模块进行TOSSIM仿真的时间计算,使用TinyViz PowerProfile插件进行功率计算。
以下是SACK - P和SACK - H在不同方面的比较:
-
密钥生成时间
:对于BS和CL,两种方案的密钥生成时间几乎相同,但CN的密钥生成时间差异明显。这是因为CN是网络中资源最受限的设备,需要计算量较小的操作。
-
密钥分发时间
:在SACK - P中,CL进行的操作最耗时;而在SACK - H中,BS进行的操作最耗时,这样可以根据节点的计算能力平衡资源密集型操作。
-
功率消耗
:SACK - P的模拟传输能量消耗为156.09µJ,计算能量消耗为90.86µJ;SACK - H的模拟传输能量消耗为145.09µJ,计算能量消耗为82.6µJ。
下面用mermaid流程图展示两种方案的大致流程对比:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
subgraph SACK - P
style SACK - P fill:#ffffff,stroke:#000000,stroke-width:2px
A(密钥注册):::process --> B(CN密钥分发):::process
B --> C(CL密钥分发):::process
C --> D(BS密钥分发):::process
end
subgraph SACK - H
style SACK - H fill:#ffffff,stroke:#000000,stroke-width:2px
E(SN密钥部署):::process --> F(BS密钥分发):::process
F --> G(CL密钥分发):::process
G --> H(CN密钥生成):::process
end
5. 实验比较与评估
实验在Crossbow的MICAz传感器上进行,MICAz是一个2.4 GHz、IEEE/ZigBee 802.15.4的板卡,具有128 KB的指令内存、4 KB的数据RAM和512 KB的闪存。
实验使用三个MICAz节点,分别作为BS、CL和CN。在MPR2400CA板上为节点编程SACK - P和SACK - H的代码。CL和CN节点的ID分别为1和2,通过RF链路与BS和彼此通信。ID为0的BS节点安装在MPR2400CA编程板上,通过MIB510串行接口将消息收集并显示在PC上。SerialForwarder是TinyOS标准安装提供的Java程序,用于读取串口数据包并显示。实验中,SerialForwarder在后台运行,使用SACK - P/SACK - H Java应用程序将接收到的消息输出到标准输出。实验设备布置如图所示:
Cluster Node (MICAz Mote) --RF--> Cluster Leader (MICAz Mote) --RF--> Base Station (MICAz Mote on programming board) --Serial--> PC
|
| Serial Forwarder (No GUI)
|
| SACK - P/SACK - H (Java App)
5.1 功率和时间分析:基本假设
实验仅考虑由3个节点组成的网络,所有功率计算基于处理器处于活动模式,使用公式E = U * I * t。对于MICAz,当处理器处于活动模式时,使用两节新AA电池,I = 8 mA,U = 3.0 V。
5.2 SACK - P时间和功率分析
表2给出了SACK - P的硬件时间和功率测量结果。所有节点的密钥生成时间为30.35 s,与TinyOS基于ECC的实现结果一致。每跳的密钥分发时间约为120 s。由于电流I和电压U恒定,功率特性直接取决于时间消耗,每步平均约2.9 J。除了自身密钥分发,CL还需要花费时间和能量将CN的密钥转发给BS。
5.3 SACK - H时间和功率分析
表2给出了SACK - H硬件实现的时间和功率读数。由于非对称密钥计算,BS和CL的密钥生成时间约为30.35 s,而CN由于对称密钥操作,密钥生成时间可忽略不计。逐跳公钥分发约需115 - 120 s,簇内种子分发仅需11 s。功率计算与此相应,此外,BS还需要在网络中广播CL的公钥。
通过理论和实验比较,可以看出SACK - P和SACK - H两种方案在不同方面各有优劣,在实际应用中需要根据具体的网络环境和需求来选择合适的密钥管理方案。
分层传感器网络中PKC和半PKC密钥管理方案的比较分析
5.4 实验结果总结
为了更清晰地对比SACK - P和SACK - H在硬件实验中的表现,我们将关键数据整理成以下表格:
|方案|密钥生成时间|每跳密钥分发时间|功率消耗(每步平均)|
|----|----|----|----|
|SACK - P|30.35 s|约120 s|约2.9 J|
|SACK - H|BS和CL约30.35 s,CN可忽略不计|公钥分发约115 - 120 s,种子分发11 s|相应计算|
从这些数据中我们可以进一步分析两种方案的特点:
-
时间方面
:SACK - P的密钥生成和分发时间相对较为平均,但整体时间较长。而SACK - H在CN的密钥生成上具有明显优势,且簇内种子分发时间极短,这对于资源受限的CN节点来说非常有利。
-
功率方面
:虽然没有给出SACK - H具体的每步平均功率,但从传输和计算能量的模拟结果可以推测,其整体功率消耗可能低于SACK - P,尤其是在CN节点上,由于对称密钥操作的计算量小,功率消耗会更低。
下面用mermaid流程图展示实验过程的整体步骤:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A(准备MICAz节点):::process --> B(编程SACK - P和SACK - H代码):::process
B --> C(设置节点ID和通信链路):::process
C --> D(运行实验):::process
D --> E(记录时间和功率数据):::process
E --> F(分析数据):::process
6. 综合分析与实际应用建议
综合理论和实验的比较结果,我们可以从多个角度对SACK - P和SACK - H进行综合分析,并为实际应用提供一些建议。
6.1 安全性分析
- SACK - P :基于纯PKC的方案,使用公钥/私钥对保护所有通信,安全性较高。但由于PKC的计算复杂度较高,对于资源受限的CN节点来说,可能存在一定的安全风险,例如在密钥生成和分发过程中可能受到攻击。
- SACK - H :采用PKC和SKC混合的方式,在簇内使用PKC保证安全性,在簇间使用SKC提高效率。这种方式在一定程度上平衡了安全性和资源消耗,但也需要注意SKC部分的密钥管理,防止密钥泄露。
6.2 资源消耗分析
- SACK - P :计算和通信开销较大,尤其是在CN节点上,密钥生成和分发的时间和功率消耗都较高。这可能导致节点的电池寿命缩短,影响网络的整体性能。
- SACK - H :通过在CN节点使用对称密钥操作,大大降低了计算和通信开销,提高了资源利用率。但BS和CL节点的密钥管理相对复杂,需要存储更多的密钥。
6.3 实际应用建议
- 对资源丰富的网络 :如果网络中的节点具有较强的计算能力和充足的能源供应,SACK - P可能是一个更好的选择,因为它提供了更高的安全性。
- 对资源受限的网络 :对于大多数WSN,尤其是节点资源有限的情况,SACK - H更适合。它在保证一定安全性的前提下,能够有效降低资源消耗,延长节点的使用寿命。
7. 结论
本文对分层传感器网络中的两种密钥管理方案SACK - P和SACK - H进行了全面的比较分析。通过理论和实验的研究,我们发现两种方案各有优缺点。
SACK - P基于纯PKC,提供了较高的安全性,但计算和通信开销较大,对资源要求较高。SACK - H采用PKC和SKC混合的方式,在安全性和资源消耗之间取得了较好的平衡,更适合资源受限的WSN。
在实际应用中,网络管理员应根据具体的网络环境、节点资源和安全需求来选择合适的密钥管理方案。未来的研究可以进一步优化这两种方案,提高它们在不同场景下的性能,或者探索新的混合密钥管理方案,以满足不断发展的WSN安全需求。
同时,随着无线传感器网络技术的不断发展,新的安全威胁也会不断出现。因此,持续关注和研究密钥管理方案的安全性和效率,对于保障WSN的正常运行至关重要。我们希望本文的研究能够为WSN的密钥管理提供有益的参考,促进该领域的进一步发展。
超级会员免费看
1800

被折叠的 条评论
为什么被折叠?



