著录项信息
专利名称 | 一种无线传感网分簇安全路由方法 |
申请号 | CN201210036932.2 | 申请日期 | 2012-02-17 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2012-07-04 | 公开/公告号 | CN102547693A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04W12/04 | IPC分类号 | H;0;4;W;1;2;/;0;4;;;H;0;4;W;1;2;/;0;6查看分类表>
|
申请人 | 南京邮电大学 | 申请人地址 | 江苏省南京市新模范马路66号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 南京邮电大学 | 当前权利人 | 南京邮电大学 |
发明人 | 管有庆;黄超 |
代理机构 | 南京经纬专利商标代理有限公司 | 代理人 | 叶连生 |
摘要
本发明提出一种无线传感网分簇路由的安全方法,包括簇内密钥协商、簇内数据发送和簇头向基站发送数据阶段。在簇内密钥协商阶段,该方法在簇内分配密钥;在簇内数据发送和簇头向基站发送数据阶段,建立安全的传输信道,防范攻击者俘获传感节点后,对现有的网络进行攻击,如:窃听,截取及修改数据和DoS(DenialofService,拒绝服务)攻击等;为了能够缩小及定位攻击源,采用了轻量级的安全方法即基于RC5的密钥协商和认证方法,实现了语义上的安全;为了防止Rushing(冲击方式)攻击,采用完整的簇内双向(echo-back)认证方法;周期性更换全局密钥机制有效降低了节点俘获后入侵者攻击获得全局主密钥的风险,保证传输数据的机密性、完整性和及时性。
一种无线传感网分簇安全路由方法\n技术领域\n[0001] 本发明涉及无线传感网的安全路由,具体涉及无线传感网安全路由初始化和数据传输方法。\n技术背景\n[0002] 无线传感网是由许多小的并且资源很有限的传感节点和少量具备正常计算能力和充足能量的BS(Base Station,基站)构成,传感节点分布在不同的地方收集传感信息(如温度、气压和湿度等),并将相关信息通过BS转发给与其他网络(如Internet)相连的用户。由于传感网络在无人管制的不安全区域,以传感信息相交互,因此对安全机制的需求也日益加深。传感节点能量有限,应用无线介质进行通信且暴露在外部环境中,所以不论是硬件还是软件都面临着各种攻击,如:Sinkhole(天坑)攻击,Wormhole(虫洞)攻击以及Sybil(女巫)攻击等等。\n[0003] LEACH(参见引证文件)协议是一个分簇的路由协议,对于一些安全攻击显得十分脆弱。因为LEACH是一个基于簇头的路由协议,依靠簇头进行数据汇聚和路由等。如果簇头被攻击会造成严重的损失。如果攻击者成功伪装成簇头,他就可以成功地进行天坑攻击和选择性转发等攻击。当然,除了攻击路由外,攻击者还可以向网络中注入垃圾数据,使网络负担加重,导致网络瘫痪。\n[0004] 提出一种无线传感网分簇路由的安全方法,包括簇内密钥协商、簇内数据发送和簇头向基站发送数据三个阶段。在簇内密钥协商阶段,该方法在簇内分配密钥;在簇内数据发送和簇头向基站发送数据阶段,建立安全的传输信道,防范攻击者俘获传感节点后,对现有的网络进行攻击,如:窃听,截取及修改数据和DoS(Denialof Service,拒绝服务)攻击等;为了能够缩小及定位攻击源,采用了轻量级的安全方法即基于RC5(由Ronald L.Rivest教授发明的参数可变的分组密码算法)的密钥协商和认证方法,实现了语义上的安全;为了防止Rushing(冲击方式)攻击,采用完整的簇内双向(echo-back)认证方法;周期性更换全局密钥机制有效降低了节点俘获后入侵者攻击获得全局主密钥的风险,保证传输数据的机密性、完整性和及时性。\n[0005] 引 证 文 件:Wendi Rabiner Heinzelman,Anantha Chandrakasan,and HariBalakrishnan.Energy-efficient communication protocol for \nwirelessmicrosensor networks[A].Proceedings of the 33rd Annual Hawaii InternationalConference on System Sciences[C].2000.1-10,vol.2.\n发明内容\n[0006] 技术问题:本发明的目的在于提供一种无线传感网分簇安全路由方法。在簇内密钥协商阶段,该方法在簇内分配密钥;在簇内数据发送和簇头向基站发送数据阶段,建立安全的传输信道,防范攻击者俘获传感节点后,对现有的网络进行攻击。\n[0007] 技术方案:本发明包括簇内密钥协商、簇内数据发送和簇头向基站发送数据三个阶段。三个阶段涉及到无线传感网中的普通节点、簇头节点和BS(Base Station,基站)三方,无线传感网结构如图1所示。簇内密钥协商主要工作是在相同簇内分配普通节点和簇头节点通信所需的密钥(包括会话密钥、加密密钥和散列密钥等);簇内数据发送主要工作是将普通节点收集到的传感信息融合后通过安全信道发送给簇头节点。簇头向基站发送数据阶段主要划分为三步:首先簇头对BS的认证;其次,将融合后的数据传送给BS;最后,协商下一轮主密钥。\n[0008] 安全路由方法中由簇头、普通节点和BS等三方参与。整个网络初始化前,每个节点分配了全局主密钥Kpri。通信过程中有ADV_CH(Advertise Cluster Head,广播簇头)消息,JOIN_REQ(Join Request,加入请求)消息,ADV_SCH(AdvertiseSchedule,广播时隙)消息,DATA_MSG(Data Message,簇内数据)消息,BS_ECHO(Base Station Echo,基站响应)消息,BS_ECHOBACK(Base Station Echo Back,基站回应响应)消息。BS_DATA(BS Data,基站数据)消息,BS_ECHO_BACK(BS ECHOBACK,基站回应)消息等构成。\n[0009] 1.簇内密钥协商\n[0010] 1)簇头广播\n[0011] 自举为簇头的节点向传感网中广播ADV_CH消息,告知其他节点产生了一个新的簇头。这里假设自举簇头节点是节点x,节点x使用预置的全局密钥Kpri加密该节点ID和一个随机数,生成ADV_CH消息向发射范围内的网络中广播。\n[0012] 2)节点发送加入请求消息\n[0013] 接收到ADV_CH消息的普通节点y,产生一个随机数,并使用预置全局主密钥Kpri解密ADV_CH消息体,获得自举簇头节点ID和随机数nounce。应注意的是在这个时间段内会收到若干自举簇头节点的ADV_CH消息,这时普通节点根据接收到消息时,能量的强弱选择簇头节点。普通节点选择簇头节点后,比较自身节点的ID与簇头节点ID的大小,选择较小的节点ID产生的随机数作为该普通节点和簇头节点之间的会话密钥Kxy。最后,再次使用全局主密钥加密该普通节点的节点ID、会话密钥Kxy和nounce+1的值,形成JOIN_REQ消息发送给该节点选择的簇头节点。\n[0014] 3)簇头发送时隙\n[0015] 簇头节点收到JOIN_REQ消息后,对节点的合法性认证,同时对比nounce+1和消息中的nounce,防范重放攻击。将通过认证的节点加入簇内成员列表中。在数据传送过程中,为了避免同一簇内的节点发送时隙重叠导致数据发生碰撞,增加节点的能量损耗,簇头向簇内的节点发送TDMA(Time Division Multiple Access,时分多址)ADV_SCH消息,不同的节点在簇头分配给该结点的时隙里发送数据。簇头x将簇内节点的TDMA时隙信息用加密密钥Kencrypt(由协商后的会话密钥Kxy派生,如图7所示)加密后单播发送给对应节点y。\n[0016] 2.簇内数据发送\n[0017] 普通节点将采集的数据发送给簇头节点,数据信息用加密密钥Kencrypt加密后单播发送给簇头节点。数据中包括采集信息和下一次加密用的counter值,为了防止攻击者恶意篡改消息,还在消息的尾部增加了对发送数据进行验证的散列值。\n[0018] 3.簇头向基站发送数据\n[0019] 为了避免sybil攻击,节点在获得下一轮主密钥后销毁当前轮的主密钥。在销毁全局主密钥Kpri之前簇头节点i根据原始随机数ri产生派生随机数yi=MAC(Kpri,ri),这样簇头节点i中存有原始随机数ri,和派生随机数yi。\n[0020] 1)簇头节点对BS认证\n[0021] 认证流程:第一步,簇头节点i将ri用BS_ECHO消息发送给BS,作为挑战,第二步,BS接收到BS_ECHO消息,得到原始随机数ri和随机数nounce,使用yi=MAC(Kpri,ri),这里Kpri为当前的全局主密钥,获得yi。使用yi加密nounce,构造BS_ECHOBACK消息回应挑战。\n第三步,簇头节点i接收到回应挑战消息BS_ECHOBACK,使用相同的yi验证消息,如果相同,则是合法基站,否则是攻击者。\n[0022] 2)簇头节点向BS发送传感消息\n[0023] 对BS认证后,簇头用派生随机数yi作为加密密钥,加密传感数据,并将数据发送给BS。\n[0024] 3)协商下一轮主密钥\n[0025] 每个簇头向BS发送BS_ECHO消息含有原始随机数ri,BS将所有计算得到的派生随机数yi保存下来,然后选择一个yi作为下一轮的全局主密钥Kpri,并向全网广播。\n[0026] 在BS中保存簇头的派生随机数yi作用如下:①作为簇头和BS数据传送的加密密钥;②作为下一轮簇内密钥协商的全局主密钥Kpri的候选密钥。\n[0027] 无线传感网分簇安全路由方法具体包括以下步骤:\n[0028] 1.)安全路由方法中由簇头、普通节点和基站BS三方参与,整个网络初始化前,每个节点分配了全局主密钥Kpri;\n[0029] 2.)无线传感网分簇安全路由方法包括簇内密钥协商阶段、簇内数据发送阶段和簇头节点向基站BS发送数据阶段,涉及的消息集合{广播簇头消息、加入请求消息、广播时隙消息、簇内数据消息、基站响应消息、基站回应响应消息、基站数据消息、基站回应消息};\n[0030] 3.)簇内密钥协商阶段,包括簇头节点消息处理流程,和普通节点处理流程;\n[0031] 在簇头节点消息处理流程中,具体操作为:a.节点自举为簇头向网络中广播簇头消息;b.簇头节点接收普通节点发送的加入请求消息;c.使用Kpri和Cinit,通过RC5解密消息体获得会话密钥Kxy和节点随机数;d.将保存的广播簇头消息中的簇头节点随机数和接收到加入请求消息中的接收随机数比较,比较接收随机数减簇头节点随机数的差是否为一,如果不是,则未通过认证,转到g;e.从消息中获得的节点号和会话密钥Kxy加入到簇头的簇内节点列表中;f.由会话密钥Kxy,派生出Kencrypt,KMAC,Krandom密钥,MAC(K,x)作为伪随机数生成函数来派生密钥,这样可以允许更多的代码重用,因为MAC加密特性可以作为一个好的伪随机数生成函数,所有由这种方式产生的密钥是计算独立的,即使攻击者能够破解其中的一个密钥,他也不能依靠这个密钥获得会话密钥Kxy或是其他密钥;g.释放加入请求消息体;h.判断是否进入广播时隙阶段,如果不是,则转到b;i.向簇内节点广播时隙消息;\n[0032] 在普通节点消息处理流程中,具体操作为:a.接收广播簇头消息;b.使用Kpri和Cinit,通过RC5解密消息体,进入LEACH协议选择簇头过程,选择簇头后,保存簇头的节点号为簇头节点号,保存簇头随机数,确定簇头和普通节点之间的会话密钥,选择节点号小的节点产生的随机数作为会话密钥Kxy,发送加入请求消息;c.接收广播时隙消息;d.使用Kpri和Cinit,通过RC5解密消息体,获得发送时隙序号和发送者的节点号,判断发送者的节点号是否和保存的簇头节点号相同,若不相同,则转到c;e.将时隙信息保存,释放消息体,进入数据发送阶段;\n[0033] 4.)簇内数据发送阶段,包括普通节点处理流程,和簇头节点处理流程;\n[0034] 在普通节点处理流程中,具体操作为:a.普通节点采集数据;b.用加密密钥Kencrypt加密后单播发送给簇头节点,数据部分包括采集的信息和下一次加密用的计数值,为了防止攻击者恶意篡改消息,还在消息的尾部增加了对发送数据验证的散列值,构造成簇内数据消息发送给所属簇的簇头;\n[0035] 在簇头节点处理流程中,具体操作为:a.为了防止攻击者篡改数据,首先簇头节点计算数据部分的散列值,和消息中的散列值对比,如果不相同,则丢弃数据部分,如果相同即未篡改,则将接收到的数据部分用加密密钥Kencrypt解密获得数据;b.对数据进行融合;\n[0036] 5.)簇头节点向BS发送数据阶段,主要有簇头节点处理流程,和BS处理流程;\n[0037] 在簇头节点处理流程中,具体操作为:a.生成原始随机数ri和随机数nounce;\nb.生成派生随机数yi=MAC(Kpri,ri);c.构造基站响应消息,发送给基站;d.在20秒内如果未接收到基站回应响应消息,则转到c;e.获得基站回应响应消息中数据部分作为数据部分1;f.用yi对随机数nounce加密得到数据部分2;g.将数据部分1与数据部分2比较,如果相同,则BS通过认证,而后向BS发送基站数据消息;如果不相同,则BS未通过认证;\ng.释放基站回应响应消息;\n[0038] 在BS消息处理流程中,具体操作为:a.接收基站响应消息;b.从基站响应消息中得到原始随机数ri和随机数;c.生成派生随机数yi=MAC(Kpri,ri);d.构造基站回应响应消息,并发送给对应的簇头节点;e.判断是否接收到基站数据消息,如果未接收到,则转a;\nf.使用yi解密消息体,得到消息并存储;g.构造基站回应消息,向全网广播,更新下一轮全局主密钥;h.释放消息体。\n[0039] 有益效果:在簇内密钥协商阶段,该方法在簇内高效分配密钥;在簇内数据发送和簇头向基站发送数据阶段,建立安全的传输信道,防范攻击者俘获传感节点后,对现有的网络进行攻击,如:窃听,截取及修改数据和DoS(Denial of Service,拒绝服务)攻击等;\n为了能够缩小及定位攻击源,采用了轻量级的安全方法即基于RC5(由Ronald L.Rivest教授发明的参数可变的分组密码算法)的密钥协商和认证方法,实现了语义上的安全;为了防止Rushing(冲击方式)攻击,采用完整的簇内双向(echo-back)认证方法;周期性更换全局密钥机制有效降低了节点俘获后入侵者攻击获得全局主密钥的风险,保证传输数据的机密性、完整性和及时性。\n附图说明\n[0040] 图1适用的无线传感网结构图,\n[0041] 图2消息顺序图,\n[0042] 图3簇内密钥协商阶段,簇头节点处理流程图,\n[0043] 图4簇内密钥协商阶段,普通节点处理流程图,\n[0044] 图5簇内数据发送阶段,普通节点处理流程图,\n[0045] 图6簇内数据发送阶段,簇头节点处理流程图,\n[0046] 图7密钥派生图,\n[0047] 图8簇头向BS传送数据阶段,簇头节点处理流程图,\n[0048] 图9簇头向BS传送数据阶段,BS处理流程图。\n具体实施方式\n[0049] 在图1中,描述了无线传感网分簇安全路由方法的网络环境,这是一个层次型网络结构。在图2中,描述了簇内密钥协商阶段、簇内数据发送阶段和簇头向BS传送数据阶段的消息顺序图。在图3中,描述了簇内密钥协商阶段,簇头节点处理流程。在图4中,描述了簇内密钥协商阶段,普通节点处理流程。在图5中,描述了簇内数据发送阶段,普通节点处理流程。在图6中,描述了簇内数据发送阶段,簇头节点处理流程图。在图7中,描述了从会话密钥Kxy派生出Kencrypt,KMAC和Krandom等密钥的方法。在图8中,描述了簇头向BS传送数据阶段,簇头节点处理流程。在图9中,描述了簇头向BS传送数据阶段,BS处理的流程。\n[0050] 1.涉及符号说明\n[0051] \n[0052] \n[0053] 2.无线传感网分簇安全路由方法涉及的消息集合\n[0054] ADV_CH消息\n[0055] 自举为簇头的节点x广播ADV_CH消息给发射功率范围内的节点,消息的格式如下:\n[0056] \n[0057] IDx是传感节点的节点标识号。nounce_self是IDx节点产生的随机数。在加密数据时采用CTR(Counter-mode,计数模式)加密方式,Kpri表示预先分配的和BS共享的全局主密钥,Cinit值为0。\n[0058] JOIN_REQ消息\n[0059] 普通节点向选择的簇头节点发送JOIN_REQ消息,消息的格式如下:\n[0060] \n[0061] IDy是普通节点的节点标识号,nounce_rsv=nounce_self+1为对簇头随机数加一完成语义上的认证,Kxy为协商后的会话密钥,簇头和不同的节点之间的会话密钥Kxy不一定相同,Kpri表示预先分配了的BS共享的全局主密钥,Cinit值为0。\n[0062] ADV_SCH消息\n[0063] 簇头节点x向簇内普通节点y发送ADV_SCH消息,消息格式如下:\n[0064] \n[0065] IDx是簇头的nodeID,TDMA_SLOTy是节点y在簇内发送数据时的时隙,Kencrypt为加密密钥,Cinit值为0。\n[0066] DATA_MSG消息\n[0067] 普通节点将采集的数据通过DATA_MSG消息发送给簇头,消息格式如下:\n[0068] \n是 加 密 消 息,\n是加密消息的消息散列码。Kencrypt为加密密\n钥,counter为当前的计数值,Cnext为下一次数据发送的counter值,保证消息的新鲜性,防止重放攻击。Cnext产生方式为Cnext=counter+1。\n[0069] BS_ECHO消息\n[0070] 簇头向基站发送BS_ECHO消息,消息格式如下:\n[0071] cluster_head->BS:BS_ECHO||ri||nounce\n[0072] 其中ri是簇头产生的原始随机数;派生随机数yi=MAC(Kpri,ri),这样在簇头i中保存了原始随机数ri和派生随机数yi。nounce是簇头节点产生的随机数,作用为消息体。\n[0073] BS_ECHOBACK消息\n[0074] 基站向簇头发送BS_ECHOBACK消息,消息格式如下:\n[0075] \n[0076] BS接收到BS_ECHO消息后用yi=MAC(Kpri,ri)计算得到的派生随机数yi,用yi加密BS_ECHO消息中的随机数nounce(作为消息体)发送给簇头。Cinit值为0。\n[0077] BS_DATA消息\n[0078] 簇头向基站发送BS_DATA消息,消息格式如下:\n[0079] \n[0080] DATA为簇头接收到的传感数据融合后得到的数据,用yi加密,Cinit值为0。\n[0081] BS_ECHO_BACK消息\n[0082] 基站向全网广播BS_ECHO_BACK消息,消息格式如下:\n[0083] \n[0084] Kpri为本轮的全局主密钥,基站从保存的各簇头节点的派生随机数yi中随机选取一个y作为下一轮全局主密钥,节点接收到消息后将全局主密钥Kpri更新为y,Cinit值为0。\n[0085] 3.簇内密钥协商\n[0086] 1)簇头节点处理流程\n[0087] 第一步:节点自举为簇头向网络中广播簇头消息ADV_CH。\n[0088] 第二步:簇头节点接收到普通节点发送的加入请求消息JOIN_REQ。\n[0089] 第三步:使用Kpri和Cinit,通过RC5解密消息体获得会话密钥Kxy和随机数nounce_rsv。\n[0090] 第四步:将保存的广播簇头消息中的nounce_self和接收到的加入请求消息中的nounce_rsv比较,如果nounce_rsv-nounce_self=1,则通过认证,转到\n[0091] 第五步;否则不通过认证,转到第七步。\n[0092] 第五步:将消息中获得的节点标识号node_id,会话密钥Kxy加入簇头的簇内节点列表中。\n[0093] 第六步:由会话密钥Kxy,派生出Kencrypt,KMAC,Krandom等密钥。为了进一步提高安全性,在密钥协商后获得会话密钥Kxy,由会话密钥Kxy派生出三种密钥,分别是加密密钥Kencrypt、随机数生成密钥Krandom和MAC密钥KMAC。如图7所示,MAC(K,x)作为伪随机数生成函数来派生密钥,这样可以允许更多的代码重用。因为MAC加密特性可以作为一个好的伪随机数生成函数。所有由这种方式产生的密钥是计算独立的,即使攻击者能够破解其中的一个密钥,他也不能依靠这个密钥获得会话密钥Kxy或是其他密钥。\n[0094] 第七步:释放JOIN_REQ消息。\n[0095] 第八步:判断是否进入广播时隙阶段,如果是,则转到第九步;否则转到第二步。\n[0096] 第九步:向簇内节点发送广播时隙消息ADV_SCH消息。\n[0097] 2)普通节点消息处理流程\n[0098] 第一步:接收广播簇头消息ADV_CH消息。\n[0099] 第二步:\n[0100] (1)消息类型为ADV_CH消息,使用Kpri和Cinit,通过RC5解密消息体。\n[0101] (2)进入LEACH协议选择簇头过程,选择簇头后,保存簇头的node_id为nodeID_head,保存簇头的nounce_self。\n[0102] (3)确定簇头和普通节点之间的会话密钥,选举节点ID小的节点产生的随机数作为会话密钥Kxy,发送JOIN_REQ消息。\n[0103] 第三步:接收广播时隙消息ADV_SCH消息。\n[0104] 第四步:\n[0105] (1)消息类型为ADV_SCH消息,使用Kpri和Cinit,通过RC5解密消息体。\n[0106] (2)获得发送时隙序号和发送者的IDx。\n[0107] (3)判断发送者的IDx是否和第三步中保存簇头的nodeID即nodeID_head相同;\n若相同,则将时隙信息保存,释放消息体,进入数据发送阶段;不相同,则转第三步。\n[0108] 4.簇内数据发送\n[0109] 1)普通节点处理流程\n[0110] 第一步:普通节点采集数据。\n[0111] 第二步:用加密密钥Kencrypt(由协商后的会话密钥Kxy派生,如图7所示)加密后单播发送给簇头节点。数据部分包括采集的信息和下一次加密用的counter值,为了防止攻击者恶意篡改消息,还在消息的尾部增加了对发送数据验证的散列值。构造成DATA_MSG消息发送所属簇的簇头。\n[0112] 2)簇头节点处理流程\n[0113] 第一步:为了防止攻击者篡改数据,首先簇头节点计算数据部分的散列值,和消息中的散列值对比,相同即未篡改;其次,将接收到的数据部分用加密密钥Kencrypt解密获得数据。\n[0114] 第二步:对数据进行融合。\n[0115] 5.簇头节点向基站发送数据\n[0116] 1)簇头节点处理流程\n[0117] 为了避免sybil攻击,节点在获得下一轮主密钥后销毁当前轮的主密钥。在销毁全局主密钥Kpri之前簇头节点产生派生随机数yi=MAC(Kpri,ri);其中ri是原始随机数。\n每一轮都会这样进行,完成后(这里假设簇头节点i),簇头节点i中有原始随机数ri,和派生随机数yi。\n[0118] 第一步:生成原始随机数ri和随机数nounce。\n[0119] 第二步:生成派生随机数yi=MAC(Kpri,ri)。\n[0120] 第三步:簇头节点i构造基站响应消息BS_ECHO,其中包括原始随机数ri和簇头节点产生的随机数nounce,作为消息体。将基站响应消息BS_ECHO发送给基站。\n[0121] 第四步:在20s内如果接收到基站回应响应消息BS_ECHOBACK,转到第五步;否则转到第三步。\n[0122] 第五步:获得基站回应响应消息BS_ECHOBACK中数据部分作为数据部分1。\n[0123] 第六步:用yi对随机数nounce加密得到数据部分2。\n[0124] 第七步:将数据部分1与数据部分2比较,如果相同,则BS通过认证,而后向BS发送基站数据消息BS_DATA;如果不相同,则BS未通过认证。\n[0125] 第八步:释放基站回应响应消息BS_ECHOBACK,结束。\n[0126] 2)BS处理流程\n[0127] 第一步:接收基站响应消息BS_ECHO。\n[0128] 第二步:使用yi=MAC(Kpri,ri)函数计算yi。\n[0129] 第三步:使用yi加密随机数nounce生成BS_ECHOBACK消息中数据部分DATA。\n[0130] 第四步:构造BS_ECHOBACK消息,发送给对应的簇头节点。\n[0131] 第五步:判断是否接收到基站数据消息BS_DATA,如果接收到转第六步;否则转第一步。\n[0132] 第六步:使用yi解密消息体,得到消息并存储。\n[0133] 第七步:构造基站回应消息BS_ECHO_BACK,向全网广播,更新下一轮全局主密钥。\n[0134] 第八步:释放消息体,结束。\n[0135] 针对攻击的防范示例:\n[0136] 1.Sybil攻击\n[0137] 针对Sybil攻击,采用了双向(echo-back)认证方式,对簇头节点及普通节点的身份进行认证。如果一个恶意节点伪造成簇头节点进行Sybil攻击时,由于没有合法的认证信息,因此不会通过节点的认证,从而无法完成Sybil攻击。\n[0138] 假设恶意节点在簇内密钥协商阶段进行Sybil攻击。第一步:恶意节点伪装成簇头节点,向传感网中广播ADV_CH消息,告知其他节点产生一个新的簇头。第二步:普通节点使用Kpri和Cinit解密消息体,未能得到正确的数据,因此判断此消息是恶意节点发送。\n[0139] 2.Flood攻击\n[0140] 恶意节点可以通过大功率发送ADV_CH消息,来欺骗普通节点选择其为簇头,但是,根据要求,全局主密钥Kpri在整个传感过程中都会周期性更新。避免了节点被俘获造成全局主密钥Kpri丢失发生Flood攻击。\n[0141] 假设恶意节点在当前轮俘获了普通节点,并破解出当前的全局主密钥Kpri。第一步:恶意节点通过大功率发送ADV_CH消息。由于全局主密钥Kpri只用于在密钥协商阶段加密会话密钥Kxy,如果攻击者在会话密钥协商后获得了全局主密钥Kpri那么整个传感网络已经完成了簇内密钥协商。第二步:在下一轮簇内密钥协商中使用周期更新的全局主密钥Kpri,攻击者使用前一轮的全局主密钥Kpri无法完成认证。\n[0142] 3.重放攻击\n[0143] 针对重放攻击,采用了counter模式保持消息的新鲜性,每次发送完消息都会将消息中的counter值自增,这样在消息的接收端都会完成对消息进行一次语义上的认证,恶意节点就无法截获消息,进行重放攻击。\n[0144] 假设恶意节点截获了普通节点感知的簇内数据消息,并对消息进行重放攻击。第一步:恶意节点重放截获的消息。第二步:簇头节点解密消息,获得数据中的counter值,和当前保存的counter值(此时counter值已经自增)对比,发现是之前的counter值,因此可判断为重放攻击。
法律信息
- 2018-02-09
专利实施许可合同备案的注销
合同备案号: 2016320000215
让与人: 南京邮电大学
受让人: 江苏南邮物联网科技园有限公司
解除日: 2018.01.16
- 2016-12-14
专利实施许可合同备案的生效
IPC(主分类): H04W 12/04
合同备案号: 2016320000215
专利号: ZL 201210036932.2
申请日: 2012.02.17
让与人: 南京邮电大学
受让人: 江苏南邮物联网科技园有限公司
发明名称: 一种无线传感网分簇安全路由方法
申请公布日: 2012.07.04
授权公告日: 2014.09.10
许可种类: 普通许可
备案日期: 2016.11.18
- 2014-09-10
- 2012-09-05
实质审查的生效
IPC(主分类): H04W 12/04
专利申请号: 201210036932.2
申请日: 2012.02.17
- 2012-07-04
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-09-21
|
2011-06-02
| | |
2
| |
2009-12-23
|
2009-07-15
| | |
3
| | 暂无 |
2010-01-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |