隔离区方案(Quarantine Region Scheme,QRS)是由Coskun等(2006)提出的,它是另一种降低数据安全方案成本的方法。在SPINS里,已经设计了低成本的认证和加密机制。类似地,隔离区方案使用了一种低成本的认证机制。另外,它试图定位被称为“反节点”(Antinodes)的恶意节点以及在反节点范围内的节点。覆盖所有反节点及在反节点范围内的节点的区域称为隔离区(Quarantine Region)。只有在隔离区内的节点需要认证。这相当大地降低了认证的成本,同时阻止恶意节点运行耗尽网络资源的有效攻击(参看8.1.2.3节“拒绝服务攻击”)。
在QRS里,隔离的节点集合和隔离区用分布式方法动态确定。通过间接检查在传输范围内的认证失败,每个传感器节点自己决定它是否应该隔离。认证检查的持续时间是被定义为一个系统参数的随机变量,将在这一小节的剩余部分描述。
未隔离节点在两个交替的周期里有两种不同的工作模式:①在检查状态的周期里,节点核查垃圾邮件活动;②在保持状态周期,节点不执行任何垃圾邮件检查。
在一个检查状态周期tc里,一个传感器节点不会转发没有认证的消息。如果它在tc内,收到一个没有认证的消息,它会首先要求来自消息上一跳节点的认证;若上一跳节点认证失败,这说明上一跳节点可能是反节点;因此节点将状态转变为隔离。隔离区的概念如图13-2中举例所示。隔离区基本上是一个抽象区域,反节点的传输可能被接收到。由于不可预测的传播环境,此区域没有固定的形状。隔离区的节点是在tc里捕获反节点垃圾信息的节点。
图13-2 隔离区边界
图13-3所示的是一个传感器领域的例子。隔离区标识为灰色区域。节点3、4、7、8和一个反节点在隔离区里,因此它们必须发送和转发已认证的消息。即使是来自隔离区的最初已认证的消息,隔离区外的节点发送消息时,无需认证,除非消息要通过隔离区。例如,由于节点11不在隔离区,如果它收到来自节点7或8已认证的消息,节点11无需认证,直接将信息发送给汇聚节点(Sink)。另一方面,如果一个在隔离区的节点(例如节点3)收到来自隔离区外的节点(例如节点1或节点2)传来的未经认证的消息,它首先请求来自相应节点的认证,只有经过成功的认证之后,再转发数据包。
图13-3 一个样本传感器网络和隔离区
QRS是一个动态的机制,传感器节点可以周期性地检查节点状态的有效性。如果一个节点在检查状态周期tc内,没有检测出认证失败,节点状态就变为未隔离。节点保持一段保持状态周期tk,经过时间tk后,节点开始新一轮的检查状态周期。如果节点在检查状态周期检测到认证失败,它就会把状态变为“已隔离”。这就是图13-4中a点描述的情况:节点在a点检测到认证失败,则启动一个隔离期。节点处在保持状态周期时检测到另一个认证失败,它立即就会启动新一轮的保持状态周期。只有在持续的保持状态周期里,节点没有检测到任何认证失败,它才会退出隔离模式,启动一个检查状态周期。
图13-4 隔离周期计时
tc和tk(例如,tc≥tcmin,tk≥tkmin,tc∈R+,tk∈R+)都是为各个周期选择的随机变量,即tc和tk在每个检查状态周期和保持状态周期可能是不同的。传感器节点根据系统定义的平均值、分布函数以及tcmin、tkmin确定tc和tk的值。由于反节点可能是移动的或者传播环境会暂时改变,所以需要这种动态的方法。(www.xing528.com)
图13-5用一个例子解释了这个过程以及它怎样动态地改变隔离区的位置。在这个例子中,节点a、b、c、d和e独立地、异步地找出它们传输范围内的一个节点,这个节点在时间tc结束时,不能成功地认证,如图13-5a所示。因此它们变成隔离的(Quarantined)。节点f和g不在反节点的传输范围内,因此它们不能在时间tc内检测到任何认证失败,它们变成未隔离的(Not Quarantined)。如图13-5b所示,反节点移动到一个新的位置,传输覆盖范围也发生了变化:节点f和g被纳入了新的范围。由于节点f和g在每个保持状态周期tk后,会启动检查状态周期,它们会在第一个检查状态周期发现它们已处在反节点的范围内,则变成隔离的。另一方面,当节点a、b和c在整个保持状态周期tk没有检测到任何认证失败时,它们就把状态更改为未隔离的。
图13-5 隔离区边界变化
当某个节点是未隔离的,在其处于保持状态周期时,垃圾邮件信息可能会通过该节点。本地告警(Local Alarms)是用来使在此刻通过网络的垃圾邮件信息影响减至最小。一个检测到认证失败的节点向它的d跳(d-hop)邻居散播一个本地告警。这个本地告警是通过调用本地告警广播(broadcast_local_alarm)功能完成的,d称为本地告警深度。节点一收到本地告警,它就开始了检查状态周期。通过使用本地告警机制,节点变得更警觉,未请求消息从一个节点通过的周期变得有限了。
一旦节点发出一个本地告警,它不应该在周期ktk内再发送另一个本地告警,即使该节点又收到了其他垃圾邮件信息,其中k是本地告警因子,k∈R+。这么做是为了使网络不被本地告警淹没。图13-6所示的例子,展示了受到攻击的节点发出本地告警时。节点在a点第一次侦测到了未经请求的消息,于是它发出一个本地告警。在等待至少时间ktk之后,该节点发出另一个本地告警。在这段时间内,节点既不对检测到的垃圾邮件信息发送本地告警,也不转发其他节点的本地告警消息。例如,在b、c和d点,节点侦测到了其他的非请求消息,但它没有发出本地告警。过了时间ktk后,在e点检测到非请求消息之后,节点发出另一个本地告警。
图13-6 本地告警计时
通过使用本地告警,隔离区周围的缓冲带也随之被创建,如图13-7所示。在缓冲带内的节点仍然是未隔离的,但却比未隔离的节点更灵敏。缓冲带的节点和未隔离的节点运行的是同一个算法。它通过乘以一个保持状态因子s,0<s<1,缩短保持状态周期。节点一收到本地告警就启动检查状态周期,这表明该节点在隔离区的缓冲带里。如果在时间ktk里,它没有收到另一个本地告警,则节点可以假设它不在缓冲带里。
图13-7 缓冲带(Buffer Zones)
QRS机制还可以处理具有长传输距离的反节点。这种反节点能从一段距离之外试图攻击整个传感器网络。QRS独立于反节点的位置和传输范围。由于反节点不能被认证,无论它在哪里广播垃圾邮件信息,传感器节点都不会转发这种消息。在QRS里,只有能接收到反节点传输的节点需要认证,其他节点则不需要认证。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。