无线传感器网络中的位置隐私保护
1. 对手攻击策略与假设
在无线传感器网络中,对手攻击节点的策略有随机攻击和特定区域攻击两种。我们认为,对手采用特定区域攻击策略,即捕获附近节点,会更有可能成功。因为连续几个节点的路由表信息能让攻击者大致了解基站的方向。
同时,我们假设对手在一次数据传输阶段内,无法捕获和检查超过一定数量节点的路由表。这一假设与对手攻破单个节点所需的时间直接相关。
当对手捕获一个节点并获取其路由表后,需要决定下一步的移动方向。若路由表信息准确,对手会认为表中的第一个邻居比当前节点更靠近基站。因此,对手朝着每个被攻破节点路由表中的第一个邻居移动,更有可能到达基站。不过,在应用路由表扰动方案后,情况可能并非如此,但路由表仍需保证数据包能到达基站。
2. HISP - NC 方案的数据传输协议
2.1 概述
HISP - NC 方案的数据传输协议的基本思想是,通过在真实消息附近注入一定量的虚假流量,来隐藏真实消息的流向。由于虚假数据包与真实数据包难以区分,攻击者无法识别哪些是真实数据包,哪些是虚假数据包。
该协议采用有偏随机游走方案,而非单路径路由协议。当节点有数据要传输时,会随机选择两个邻居,并向每个邻居发送一个数据包。这种概率性过程会在每次传输时重复,以确保消息能向各个方向流动,使流量在所有邻居间均匀分布。
具体来说,两个数据包中的一个更有可能被 LC 中的邻居接收,另一个则更有可能被 LE 或 LF 中的邻居接收。如果第一个数据包包含加密的事件数据,第二个数据包包含垃圾数据,那么这种机制可以让真实流量(概率上)向基站推进,同时用虚假流量作为掩护,使数据消息路径附近的传输数量均匀化,从而隐藏真实消息的流向。
选择两个邻居的过程计算成本较低。节点会一次性生成路由表中两个元素的所有无重复组合,每次传输时从这些组合中均匀随机选择一个。由于靠近基站的邻居(LC)在路由表中排在前面,所以大多数组合的第一个元素是 LC 中的邻居。例如,节点 x 的路由表生成的 15 种组合中,有 12 种组合的第一个元素来自 LC,3 种来自 LE,没有来自 LF 的。
选择组合的方式有两个影响:一是组合的第一个元素更有可能是靠近基站的邻居,因此发送给该邻居的真实流量更有可能缩短与基站的距离;二是每个邻居在组合中出现的次数相同,均为 N - 1 次(N 是节点的邻居总数),这意味着所有邻居平均被选中的次数相同,从而实现了流量的均匀分布。
最后,接收虚假流量的节点也必须发送两个虚假消息,以防止协议泄露信息。为了控制虚假流量在网络中的持续时间,引入了生存时间(TTL)参数。
2.2 路由表的创建
网络部署后不久,通过拓扑发现协议构建路由表。该过程由基站发起,基站向网络中广播发现消息,消息中包含跳数计数,初始值为 0。节点接收到发现消息后,提取跳数 h 并加 1。如果这是节点第一次收到发现消息,它会将新的跳数消息转发给邻居,告知邻居自己知道一条距离基站 h 跳的路由,即邻居距离基站 h + 1 跳。由于所有节点都会转发首次收到的发现消息,每个节点都可以根据邻居广播的跳数构建自己的路由表。
以节点 x 为例,在拓扑发现阶段,它首先从距离基站 3 跳的节点 A、B 和 C 收到发现消息,因此知道自己距离基站 4 跳。然后,它将跳数加 1 后转发消息,让邻居知道它距离基站 4 跳。此外,节点 x 还从节点 D 和 E 收到距离基站 4 跳的消息,从节点 F 收到距离基站 5 跳的消息,从而完成了自己的路由表。
为确保 HISP - NC 数据传输协议的正确运行,路由表必须按距离基站的远近递增排列。除了排序外,节点不需要其他信息就能使真实消息收敛到基站,因此距离或组列可以省略,图中显示这些列只是为了清晰起见。
2.3 期望属性
HISP - NC 数据传输协议使用真实和虚假消息。通信路径上的任何节点都会发送一条真实消息和一条虚假消息,而接收虚假消息的节点会转发两条虚假消息。为防止对手识别真实消息,真实消息在每一跳都进行加密,虚假消息包含随机数据,使对手无法区分它们。
除了提供消息不可区分性外,传输协议还必须满足以下几个属性,以确保数据的传递和基站位置的隐藏:
- 收敛性(Property 5.1) :设 x 为任意传感器节点,BS 为基站,neigh(n) 为节点 n 的直接邻居集合。如果 x 选择下一个节点 x′ ∈ neigh(x),使得 E(dist(x′, BS)) < E(dist(x, BS)),则称该路径是收敛的。其中,E 是数学期望,dist 是两个特定节点之间的距离。
- 均匀性(Property 5.2) :设 x 为任意传感器节点,neigh(n) 为节点 n 的直接邻居集合。如果对于所有 y, z ∈ neigh(x),有 Frecm(x, y) ≃ Frecm(x, z),则称节点 x 的传输满足均匀性属性。其中,Frecm(x, y) 表示节点 x 向节点 y 传输的消息(真实和虚假)数量。
- 互斥性(Property 5.3) :设 m 和 m′ 为一对消息,t 为特定传输时间。send(m, x, y, t) 表示节点 x 在时间 t 向节点 y 发送消息 m。互斥性属性表明,对于所有 m, m′, x, y, t,如果 send(m, x, y, t) 且 m ≠ m′,则 ¬send(m′, x, y, t)。
2.4 传输协议
HISP - NC 实现的数据传输协议基于简单的操作,不需要大量的内存或计算开销。该协议只需要对路由表进行简单排序,并使用伪随机数生成器从所有可能的组合中均匀随机选择组合。
通过基于节点路由表中邻居的无重复组合的轻量级机制,可以满足互斥性属性。由于组合中没有重复元素,两条消息会发送到两个不同的节点。如果路由表按邻居到基站的距离递增排序,收敛性属性也能得到满足,因为大多数组合的第一个位置是较近或距离相等的邻居。最后,从所有可能组合中均匀随机选择组合,可以满足均匀性属性。
节点接收到数据包后的行为如算法 5.1 所示:
Algorithm 5.1 Transmission Strategy
Input: packet ←receive()
Input: combs ←combinations({LC, LE, LF}, 2)
Input: FAKE_TTL
1: {n1, n2} ←select_random(combs)
2: if isreal(packet) then
3:
send_random(n1, packet, n2, fake(FAKE_TTL))
4: else
5:
TTL ←get_time_to_live(packet) −1
6:
if TTL > 0 then
7:
send_random(n1, fake(TTL), n2, fake(TTL))
8:
end if
9: end if
算法接收数据包、节点路由表中两个邻居的无重复组合以及网络范围参数 FAKE_TTL 作为输入。首先,随机选择一个组合,确定两个邻居 n1 和 n2。如果输入的数据包是真实的,节点将消息转发给 n1,并生成一个带有 FAKE_TTL 的虚假消息发送给 n2。为防止对手轻易识别真实消息,数据包会随机发送。如果输入的数据包是虚假的,节点会将其 TTL 值减 1,若 TTL 大于 0,则向两个邻居发送带有当前 TTL 值的虚假消息,否则丢弃该数据包。
FAKE_TTL 参数取决于对手的监听范围,它在能量消耗和隐私保护之间提供了一种权衡。对于监听范围与普通传感器节点相似的对手,虚假消息可能只需转发一次就能超出对手的监听范围,这样可以防止虚假消息在网络中泛滥,同时阻止对手从非转发的虚假数据包中获取信息。
2.5 节点 x 路由表组合情况
| n1 \ n2 | LC | LE | LF |
|---|---|---|---|
| LC | AB, AC, BC (3) | AD, BD, CD, AE, BE, CE, DE (7) | AF, BF, CF, DF, EF (5) |
| LE | - | - | - |
| LF | - | - | - |
| 总计 | 12 | 3 | 0 |
2.6 节点 x 路由表信息
| Neighs(x) | # Hops | Group |
|---|---|---|
| A | 3 | LC |
| B | 3 | LC |
| C | 3 | LC |
| D | 4 | LE |
| E | 4 | LE |
| F | 5 | LF |
2.7 数据传输流程 mermaid 图
graph TD;
A[节点接收数据包] --> B{数据包是否为真实};
B -- 是 --> C[选择邻居 n1 和 n2];
B -- 否 --> D[获取 TTL 并减 1];
C --> E[向 n1 发送真实数据包,向 n2 发送虚假数据包];
D --> F{TTL > 0?};
F -- 是 --> G[向 n1 和 n2 发送虚假数据包];
F -- 否 --> H[丢弃数据包];
3. HISP - NC 路由表扰动方案
3.1 概述
几乎所有的数据传输协议都依赖路由表来做出转发决策,这些表通常包含有关基站位置或距离的信息。对于 HISP - NC 实现的数据传输协议,只需要根据邻居到基站的距离对其进行排序,而不需要具体的距离信息。正确排序的路由表能生成两个邻居的组合,从而在保护基站位置隐私的同时,将数据消息传输到基站。
然而,如果对手获取了路由表,他们无需进行流量分析就能轻易得知哪些节点更靠近基站,这将完全破坏位置隐私,尽管在路由层已经努力混淆流量模式。
HISP - NC 实现的路由表扰动方案通过向传感器节点的路由表引入一些噪声,来补充数据传输协议,以阻碍路由表检查攻击。具体来说,路由表的元素会被重新排列,使得靠近基站的邻居不一定排在表的顶部,距离相同的邻居不一定在中间,较远的邻居也不一定在底部。但这些修改不能与前面提到的收敛性、均匀性和互斥性属性冲突。
该扰动算法被建模为一个优化问题,并受到进化策略的启发来寻找解决方案。算法由一个称为偏差(bias)的简单参数引导,该参数控制应用于路由表的扰动程度,在数据传输协议的效率和及时性与路由表检查攻击的弹性之间取得平衡。
3.2 基本对策及局限性
为了防止路由表检查攻击对接收方位置隐私造成严重威胁,需要在路由表中引入一些不确定性。以下是两种可能的对策及其局限性:
- 部分节点修改路由表 :基于特定概率分布修改网络中部分节点的路由表。由于攻击者不知道哪些节点修改了路由表,他们无法确定检查的表中的第一个元素是否真的是更靠近基站的节点。然而,对手可以攻破一个节点并等待下一个发现阶段,检查其路由表是否发生变化。经过足够多的更新,对手可能会发现模式,最终识别出原始路由表。
- 存储虚假路由表 :存储虚假路由表以提供某种路由表 k - 匿名性。但这种方法存在两个主要问题。首先,传感器必须使用某个变量来确定哪个是真实的路由表,攻击者也可能访问该变量。其次,即使对内存和程序进行混淆以防止攻击者获取指向真实表的变量或指针,攻击者仍可以通过观察多个拓扑发现阶段后节点中存在的路由表来识别正在使用的表。此外,由于实际拓扑变化,真实路由表可能会随时间变化,因此保持所有 k - 1 个虚假表不变也不是有效的保护机制。
3.3 扰动要求
为了防止攻击者从节点的路由表中轻易获取基站位置信息,每个传感器节点都必须对自己的路由表进行扰动。扰动后的路由表仍需确保数据包能够传输到基站,同时为攻击者提供足够的不确定性。
3.3.1 路由表定义
设 $L^ = LC ∪ LE ∪ LF$ 是节点 $n$ 的所有邻居的列表,其中 $LC = {c_1, c_2, c_3, …}$ 是级别为 $n - 1$ 的邻居,$LE = {e_1, e_2, e_3, …}$ 是级别为 $n$ 的邻居,$LF = {f_1, f_2, f_3, …}$ 是级别为 $n + 1$ 的邻居。路由表是一个双射 $r : {N - 1, …, 0} → L^ $,其中 $N$ 是邻居的总数。同样,可以定义 $pos : L^* → {N - 1, …, 0}$ 作为 $r$ 的逆函数,给定一个特定的邻居,$pos$ 返回该节点在表中的位置。例如,在表 5.2 中,$pos(e_2) = N - 1$,$pos(c_1) = N - 2$ 等。
3.3.2 正确偏置的路由表
一个路由表被认为是正确偏置的,如果 $\sum_{n∈LC} pos(n) > \sum_{n∈LF} pos(n)$。换句话说,当选择数据数据包的接收方时,从 $LC$ 中选择元素的概率高于从 $LF$ 中选择元素的概率。
证明过程如下:假设随机选择一个邻居组合 $(n_1, n_2)$,其中 $pos(n_1) > pos(n_2)$。对于子集 $L ⊆ L^ $,第一个节点 $n_1$ 在 $L$ 中的概率由以下表达式给出:
$P(n_1 ∈ L) = \frac{1}{C} \sum_{n∈L} pos(n)$
其中 $C = N * (N - 1) / 2$ 是 $L^ $ 中两个元素的无重复组合的总数。所有可能的无重复组合可以按字典顺序排列成一个对列表,节点 $r(N - 1)$ 在 $N - 1$ 对的第一个位置出现,节点 $r(N - 2)$ 在 $N - 2$ 对中出现,依此类推,总共有 $N * (N - 1) / 2 = C$ 对。因此,选择某个节点 $n_1$ 作为第一个条目的概率就是路由表 $r$ 中位置低于 $n_1$ 的元素数量除以总对数,即 $pos(n_1) / C$,从而得到上述概率公式。
3.3.3 路由表的偏差
路由表的扰动程度或偏差 $bias(r)$ 是一个重要参数,它影响数据包向基站收敛的速度和攻击者的不确定性水平。我们将路由表 $r$ 的偏差 $bias(r) ∈ [-1, 1]$ 定义为将数据包发送到基站方向或相反方向的概率。该参数比较当前节点的级别 $level(n_0)$ 与传输路径中下一个节点级别的期望值 $E(level(n_1))$。偏差越接近 1,数据包越有可能发送到 $LC$ 中的节点(即距离减小);偏差值接近 -1 意味着结果组合的第一个元素很可能属于 $LF$。
偏差可以通过以下公式计算:
$bias(r) = \frac{1}{C} \left( \sum_{n∈LC} pos(n) - \sum_{n∈LF} pos(n) \right)$
证明过程:根据定义,路由表的偏差为 $bias(r) := level(n_0) - E(level(n_1))$。下一个节点 $n_1$ 的级别与 $n_0$ 相同,或者减少或增加 1,这取决于节点所属的邻居列表 $LE$、$LC$ 或 $LF$。因此,$E(level(n_1)) = (level(n_0) - 1) * P(n_1 ∈ LC) + (level(n_0) + 1) * P(n_1 ∈ LF) + level(n_0) * P(n_1 ∈ LE) = level(n_0) - [P(n_1 ∈ LC) - P(n_1 ∈ LF)]$,结合前面的概率公式,即可得到偏差的计算公式。
3.3.4 偏差的上下界
由于偏差取决于 $LC$ 和 $LF$ 中的元素数量,并非所有 $[-1, 1]$ 区间内的值都是有效的。路由表偏差的最大值 $bias_M(r)$ 在 $LC$ 中的元素位于路由表顶部,$LF$ 中的元素位于底部,$LE$ 中的元素在中间时达到,计算公式为:
$bias_M(r) = \frac{1}{C} \left( \sum_{i = 1}^{c} (N - i) - \sum_{i = 1}^{f} (i - 1) \right)$
其中 $c$、$f$ 和 $N$ 分别是 $LC$、$LF$ 和 $L^*$ 中的元素数量。
最小值 $bias_m(r)$ 在 $LC$ 位于底部,$LF$ 位于顶部,$LE$ 在中间时达到,定义为:
$bias_m(r) = \frac{1}{C} \left( \sum_{i = 1}^{c} (i - 1) - \sum_{i = 1}^{f} (N - i) \right)$
经过数学变换,特定路由表 $r$ 的偏差由以下不等式界定:
$\frac{c(c - 1) - 2fN + f(f + 1)}{N(N - 1)} \leq bias(r) \leq \frac{2cN - c(c + 1) - f(f - 1)}{N(N - 1)}$
3.4 路由表扰动流程 mermaid 图
graph TD;
A[开始扰动路由表] --> B[确定偏差范围];
B --> C[根据偏差调整路由表元素位置];
C --> D{路由表是否满足属性?};
D -- 是 --> E[完成扰动];
D -- 否 --> C;
3.5 路由表偏差相关参数说明表
| 参数 | 含义 |
|---|---|
| $bias(r)$ | 路由表 $r$ 的偏差,取值范围 $[-1, 1]$ |
| $bias_M(r)$ | 路由表偏差的最大值 |
| $bias_m(r)$ | 路由表偏差的最小值 |
| $C$ | $L^*$ 中两个元素的无重复组合的总数,$C = N * (N - 1) / 2$ |
| $c$ | $LC$ 中的元素数量 |
| $f$ | $LF$ 中的元素数量 |
| $N$ | 邻居的总数 |
综上所述,HISP - NC 方案通过数据传输协议和路由表扰动方案,在无线传感器网络中实现了对基站位置隐私的保护。数据传输协议通过注入虚假流量和随机游走机制隐藏真实消息流向,而路由表扰动方案则通过引入噪声来阻碍攻击者从路由表中获取有用信息。这些措施在保证数据传输的同时,有效地提高了网络的隐私保护能力。
超级会员免费看

780

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



