一种在传感器网络中进行认证的方法和传感器网络的制作方法

文档序号:7959971阅读:159来源:国知局
专利名称:一种在传感器网络中进行认证的方法和传感器网络的制作方法
技术领域
本发明涉及信息安全技术,特别是指一种在传感器网络中进行认证的方法和传感器网络。
背景技术
传感器网络与传统网络之间存在很大差别,传感器网络的安全由于其部署环境的开放性,使得入侵者可以轻易的窃听、干扰、插入和篡改数据包。认证技术是传感器网络中的一种基本安全服务,认证的目的是证明节点的身份和消息的来源。现有的认证技术提供两方面的安全保障:一是实体认证,传感器网络可确认通信节点的身份,进而实现访问控制、授权服务等安全服务;二是消息源认证,为保障传感器网络中的数据合法性,防止接收到干扰或非法的数据包,通信中接收方需要确认收到消息的发送源。由于传感器网络的部署特点,广播认证是一种有效的消息源认证方法;用于传感器网络的广播认证协议主要有、基于数字签名的广播认证方案、基于多MAC的非对称广播认证方案、μ TESLA广播认证方案以及基于Merkle散列树的广播认证方案等。基于Merkle散列树的广播认证方案主要包括以下步骤:初始化阶段,汇聚节点建立含有N个传感器节点(叶子节点)的Merkle散列树,汇聚节点在网络部署前或部署时,将Merkle散列树的根节点值预装入或广播给每个传感器节点;消息认证阶段,汇聚节点向传感器节点广播带有辅助认证信息的消息包,传感器节点根据辅助认证信息计算出的根节点值与自己已存的根节点值比较,两者相同则接收该消息包,否则拒绝消息包。发明人发现现有技术存在如下问题:当网络中存在大量传感器节点时,会造成构造的Merkle树过大,节点存储空间和通信消耗过多,而传感器网络资源是有限的;其次,广播认证技术是一种单向认证技术,即传感器节点认证消息源,只保障了传感器节点接收消息包的合法性,而汇聚节点接收到的来自传感器节点的消息包的合法性无法认证。

发明内容
本发明的发明目的在于实现传感器节点与汇聚节点间的双向认证方案,保障传感器节点和汇聚节点接收消息包的合法性,并节约节点的计算开销、存储空间和通信开销。为解决上述技术问题,本发明的实施例提供一种在传感器网络中进行认证的方法,所述传感器网络包括:一个网络根节点、至少一个汇聚节点和至少一个网络叶子节点;方法包括:建立至少两个簇,第一簇包括所述网络根节点和至少一个汇聚节点,所述网络根节点是所述第一簇的根节点,至少一个所述汇聚节点是所述第一簇的叶子节点;第二簇包括一个所述汇聚节点和至少一个网络叶子节点,所述汇聚节点是所述第二簇的根节点,至少一个所述网络叶子节点是所述第二簇的叶子节点;在每一个簇中,建立散列树,所述散列树的根节点具有第一根节点值;所述簇的各个叶子节点中存放了所述第一根节点值;所述根节点发送一个数据包;该簇的叶子节点接到所述数据包,判定所述数据包的时间戳合法,根据所述数据包中的辅助认证信息计算一第二根节点值,所述第二根节点值与所述第一根节点值相同,认定该数据包合法。所述的方法中,还包括:所述叶子节点是传感器节点,所述传感器节点验证所述数据包合法后;利用预先约定的解密算法对所述数据包的数据部分进行解密,得到数据。所述的方法中,还包括:当前的簇中的根节点接到来自该簇中的叶子节点的数据包,判定所述数据包的时间戳合法,利用数据包中的节点认证路径计算出一第二叶子节点地址,第二叶子节点地址与预存的第一叶子节点地址相同;将所述数据包加上当前时刻的时间戳和所述网络根节点的节点认证路径,发送给所述网络根节点。所述的方法中,所述传感器网络中增加了一个节点之后,判定所述节点所在的簇;更新所述簇中各个节点存放的验证信息,所述验证信息包括:该簇对应的散列树的第一根节点值、本节点的节点值、从该簇的根节点至本节点的节点认证路径和后级各个节点的辅助认证信息;所述辅助认证信息包括一数据项,所述数据项中存放当前节点的各下级节点的节点值。所述的方法中,在每一个簇中,建立散列树包括:建立一个Merkle树,所述Merkle树的根节点是该簇包含的一个所述汇聚节点,所述Merkle树的叶子节点是该簇包括的至少一个所述网络叶子节点;所述Merkle树还包括多个关键节点,各个关键节点构成所述根节点到各个所述叶子节点的路径;各个所述关键节点虚拟存在且不传输所述数据包。所述的方法中,根据所述数据包中的辅助认证信息计算一第二根节点值,具体包括:找到发出所述数据包的节点到达当前的叶子节点的所有关键节点;在所述辅助认证信息中找到所述所有关键节点的数据项;根据所述所有关键节点的数据项重构一 Merkle树,计算出所述Merkle树的根节点的Hash值作为所述第二根节点值。所述的方法中,利用数据包中的节点认证路径NAP计算出一第二叶子节点地址,具体包括:对所述节点认证路径采用可逆变换的逆变换后得到一节点地址作为所述第二叶子节点地址;其中,所述可逆变换是叶子节点和汇聚节点之间预先约定的。一种传感器网络,所述传感器网络包括:一个网络根节点、至少一个汇聚节点和至少一个网络叶子节点;以及包括:簇建立单元,用于建立至少两个簇,第一簇包括所述网络根节点和至少一个汇聚节点,所述网络根节点是所述第一簇的根节点,至少一个所述汇聚节点是所述第一簇的叶子节点;第二簇包括一个所述汇聚节点和至少一个网络叶子节点,所述汇聚节点是所述第二簇的根节点,至少一个所述网络叶子节点是所述第二簇的叶子节点;散列树单元,用于在每一个簇中,建立散列树,所述散列树的根节点具有第一根节点值;所述簇的各个叶子节点中存放了所述第一根节点值;叶子节点,用于接收所在簇的根节点发送的一个数据包;判定所述数据包的时间戳合法,根据所述数据包中的辅助认证信息计算一第二根节点值,所述第二根节点值与所述第一根节点值相同,认定该数据包合法。所述的传感器网络中,还包括:Merkle树构建单元,用于为每一个簇建立对应的一个Merkle树;所述Merkle树的根节点是该簇包含的一个所述汇聚节点,所述Merkle树的叶子节点是该簇包括的至少一个所述网络叶子节点;所述Merkle树还包括多个关键节点,各个关键节点构成所述根节点到各个所述叶子节点的路径;各个所述关键节点虚拟存在且不传输所述数据包。所述的传感器网络中,还包括:遍历单元,用于在所述传感器网络中增加了一个节点之后,判定所述节点所在的簇;更新所述簇中各个节点存放的验证信息,所述验证信息包括:该簇对应的散列树的第一根节点值、本节点的节点值、从该簇的根节点至本节点的节点认证路径和后级各个节点的辅助认证信息;所述辅助认证信息包括一数据项,所述数据项中存放当前节点的各下级节点的节点值。本发明的上述技术方案的有益效果如下:解决了在资源受限的传感网络中,当存在大量的传感器节点时,构造的Merkle树过大,节点存储空间和通信消耗过多的缺陷;通过分级技术将网络分成若干个簇,每一个簇建立自己的Merkle散列树,每棵散列树规模相对较小,其中的节点只需要预先存放几个信息即可,节约了节点的存储空间、通信开销等。


图1表示传感器网络中传输信息和指令的工作原理示意图;图2表示一种在传感器网络中进行认证的方法流程示意图;图3表示对传感器网络进行划分形成簇的示意图;图4表示簇中建立含有4个叶子节点的Merkle散列树的示意图;图5表示簇中建立含有8个叶子节点的Merkle散列树的示意图;图6表示叶子节点认证数据包的消息源的流程示意图;图7表示汇聚节点认证来自叶子节点的数据包的流程示意图。
具体实施例方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。本发明是要实现在包含大量传感器节点的网络中,实现传感器节点与汇聚节点间的双向认证。在具有大量传感器节点单的传感器网络中,如图1所示,传感器节点采集到的信息通常会经过多跳的方式传送到基站,基站也通过多跳的方式将指令传达给传感器节点,例如,图1中的传感器节点需要经过两级汇聚节点才能将信息传送到基站。本发明实施例中的散列树是一种完全二叉树,完全二叉树的各个节点上的节点值为Hash值,树的高度定义为树中从叶子到根的路径长度,路径长度=1g2N, N是叶子节点的数目。叶子节点的Hash值是需认证的数据项(公钥)在单向Hash函数中的Hash值,各个汇聚节点和根节点的值都是其左右子节点的值串联后的Hash值;数据项可以是公钥,单向Hash函数可以是SHA-1、MD5等HASH算法的计算函数。以图5所示的有8个叶子节点的Merkle树为例,每个叶子节点的Hash值由公式F(Iii)计算得到,I = i = 8,其他非叶子节点的Hash值是对其两个子节点Hash值的串联应用公式 F (.)得到的,比如,F (3,4) = F (F (n3) I IF (n4))。本发明实施例提供一种在传感器网络中进行认证的方法,所述传感器网络包括:一个网络根节点、至少一个汇聚节点和至少一个网络叶子节点;如图2所示,方法包括:步骤201,建立至少两个簇,第一簇包括所述网络根节点和至少一个汇聚节点,所述网络根节点是所述第一簇的根节点,至少一个所述汇聚节点是所述第一簇的叶子节点;第二簇包括一个所述汇聚节点和至少一个网络叶子节点,所述汇聚节点是所述第二簇的根节点,至少一个所述网络叶子节点是所述第二簇的叶子节点;
步骤202,在每一个簇中,建立散列树,所述散列树的根节点具有第一根节点值;所述簇的各个叶子节点中存放了所述第一根节点值;步骤203,所述根节点发送一个数据包;步骤204,该簇的叶子节点接到所述数据包,判定所述数据包的时间戳合法,根据所述数据包中的辅助认证信息(Auxiliary Authentication Information, AAI)计算一第二根节点值,所述第二根节点值与所述第一根节点值相同,认定该数据包合法。应用所提供的技术方案,解决了在资源受限的传感网络中,当存在大量的传感器节点时,构造的Merkle树过大,节点存储空间和通信消耗过多的缺陷;通过分级技术将网络分成若干个簇,每一个簇建立自己的Merkle散列树,每棵散列树规模相对较小,其中的节点只需要预先存放几个信息即可,节约了节点的存储空间、通信开销等。其中,在传感器网络中,为将整个的传感器网络与其中的一个簇进行区分,传感器网络中的网络叶子节点如果是在一个簇中,则该网络叶子节点称为该簇的叶子节点;传感器网络的汇聚节点也可以在某一个簇中作为叶子节点,同理,网络根节点在传感器网络中只有一个,而一个汇聚节点在一个簇中构造的Merkle散列树中如果是根,则称为该簇的根节点。在一个优选实施例中,还包括:所述网络叶子节点是传感器节点,所述传感器节点验证数据包合法后;利用预先约定的解密算法对所述数据包的数据部分进行解密,得到数据。在一个优选实施例中,在每一个簇中,建立散列树包括:建立一个Merkle树,所述Merkle树的根节点是该簇包含的一个所述汇聚节点,所述Merkle树的叶子节点是该簇包括的至少一个所述网络叶子节点;所述Merkle树还包括多个关键节点,各个关键节点构成所述根节点到各个所述叶子节点的路径;各个所述关键节点虚拟存在且不传输所述数据包。一个应用场景中,在一个具有大量传感器节点的网络中,实现传感器网络的多级认证的过程包括:I,对传感器网络进行划分,形成多个簇如图3所示,一个传感器网络中的节点包括:一个网络根节点、至少一个汇聚节点和至少一个网络叶子节点;划分为一共五个簇;其中,网络叶子节点又称为传感器节点。为合理高效的传输数据包,首先将整个传感器网络分为多个簇;各簇中包括:叶子节点、虚拟的关键节点和根节点。第一簇含有4个汇聚节点,第二簇含有4个传感器节点,第三簇含有2个传感器节点,第四簇含有8个传感器节点,第五簇含有4个传感器节点。II,网络初始化在每一个簇内建立一个Merkle树,Merkle树包括该簇的根节点、虚拟的关键节点和叶子节点;5个簇对应的Merkle树分别是:如图4所示,第一簇中建立含有4个叶子节点的Merkle散列树,第二簇中建立含有4个叶子节点的Merkle散列树;第三簇中建立含有2个叶子节点的Merkle散列树;如图5所示,第四簇中建立含有8个叶子节点的Merkle散列树;
第五簇中建立含有4个叶子节点的Merkle散列树。初始化传感器网络的各个节点,包括:网络根节点:预存所在簇的Merkle树,所在簇的各下级节点的辅助认证信息AAI ;汇聚节点,预存所在簇的Merkle树的根节点值,本节点的节点值,节点认证路径NAP,本簇的Merkle树,本簇的各下级节点的辅助认证信息AAI ;网络叶子节点,预存所在簇的Merkle树的根节点值、本节点的节点值,节点认证路径(NAP, Node Authentication Path)。辅助认证信息AAI和节点认证路径NAP的计算方法包括:如图5所示,有8个叶子节点的Merkle散列树,树的高度定义为树中从叶子到根的路径长度,即1g2N, N是叶子的数目;每个叶子节点的值由F(Iii)计算得到,I = i = 8 ;其他内部的节点的节点值是对其两个子节点值的串联再应用F(.)得到的,比如,F(3,4)=F (F (n3) I IF (n4))。III,消息认证数据项是由Merkle树的根节点的根节点值加上辅助认证信息进行认证的:接收方根据接收到的数据项和相应的辅助认证信息AAI重构Merkle树计算出根节点值,然后比较计算出的根节点值和已存储的根节点值是否相等,从而验证每个数据项的真实性。例如,在图5中,接收方需要认证已经接收到的数据项n3,除了需要接收113,还需要接收到F(n3)到根 节点值F(l,8)的路径上的所有关键节点的Hash值,一般认证一个叶子节点需要1g2Nf中间节点组成AAI,即n3的辅助认证信息AAI包括:〈F(n4),F(l,2),F(5,8)>,然后重建从叶子节点到根节点的路径,计算出F(l,8) , = F(F(F(1,2) I F(F(n3) I |F(n4))) | F(5,8)),并判断F(l,8) /是否与预存的根节点值F(1,8)相等,从而验证H3的真实性。表I给出了认证拥有8个叶子节点的Merkle散列树的辅助认证信息AAI,注意到互相邻近的叶子的AAI大部分是共享的,因此在资源受限的WSN中,可以充分利用这一点以减小通信成本。表IMerkle散列树的辅助认证信息(N = 8)
权利要求
1.一种在传感器网络中进行认证的方法,其特征在于,所述传感器网络包括:一个网络根节点、至少一个汇聚节点和至少一个网络叶子节点; 方法包括: 建立至少两个簇,第一簇包括所述网络根节点和至少一个汇聚节点,所述网络根节点是所述第一簇的根节点,至少一个所述汇聚节点是所述第一簇的叶子节点; 第二簇包括一个所述汇聚节点和至少一个网络叶子节点,所述汇聚节点是所述第二簇的根节点,至少一个所述网络叶子节点是所述第二簇的叶子节点; 在每一个簇中,建立散列树,所述散列树的根节点具有第一根节点值;所述簇的各个叶子节点中存放了所述第一根节点值; 所述根节点发送一个数据包; 该簇的叶子节点接到所述数据包,判定所述数据包的时间戳合法,根据所述数据包中的辅助认证信息计算一第二根节点值,所述第二根节点值与所述第一根节点值相同,认定该数据包合法。
2.根据权利要求1所述的方法,其特征在于,还包括: 所述叶子节点是传感器节点,所述传感器节点验证所述数据包合法后;利用预先约定的解密算法对所述数据包的数据部分进行解密,得到数据。
3.根据权利要求1所述的方法,其特征在于,还包括: 当前的簇中的根节点接到来自该簇中的叶子节点的数据包,判定所述数据包的时间戳合法,利用数据包中的节点认证路径计算出一第二叶子节点地址,第二叶子节点地址与预存的第一叶子节点地址相同; 将所述数据包加上当前时刻的时间戳和所述网络根节点的节点认证路径,发送给所述网络根节点。
4.根据权利要求1所述的方法,其特征在于,所述传感器网络中增加了一个节点之后, 判定所述节点所在的簇; 更新所述簇中各个节点存放的验证信息,所述验证信息包括: 该簇对应的散列树的第一根节点值、本节点的节点值、从该簇的根节点至本节点的节点认证路径和后级各个节点的辅助认证信息; 所述辅助认证信息包括一数据项,所述数据项中存放当前节点的各下级节点的节点值。
5.根据权利要求1所述的方法,其特征在于,在每一个簇中,建立散列树包括: 建立一个Merkle树,所述Merkle树的根节点是该簇包含的一个所述汇聚节点,所述Merkle树的叶子节点是该簇包括的至少一个所述网络叶子节点; 所述Merkle树还包括多个关键节点,各个关键节点构成所述根节点到各个所述叶子节点的路径;各个所述关键节点虚拟存在且不传输所述数据包。
6.根据权利要求5所述的方法,其特征在于,根据所述数据包中的辅助认证信息计算一第二根节点值,具体包括: 找到发出所述数据包的节点到达当前的叶子节点的所有关键节点; 在所述辅助认证信息中找到所述所有关键节点的数据项; 根据所述所有关键节点的数据项重构一 Merkle树,计算出所述Merkle树的根节点的Hash值作为所述第二根节点值。
7.根据权利要求3所述的方法,其特征在于,利用数据包中的节点认证路径NAP计算出一第二叶子节点地址,具体包括: 对所述节点认证路径采用可逆变换的逆变换后得到一节点地址作为所述第二叶子节点地址;其中,所述可逆变换是叶子节点和汇聚节点之间预先约定的。
8.一种传感器网络,其特征在于,所述传感器网络包括:一个网络根节点、至少一个汇聚节点和至少一个网络叶子节点; 以及包括: 簇建立单元,用于建立至少两个簇,第一簇包括所述网络根节点和至少一个汇聚节点,所述网络根节点是所述第一簇的根节点,至少一个所述汇聚节点是所述第一簇的叶子节占.第二簇包括一个所述汇聚节点和至少一个网络叶子节点,所述汇聚节点是所述第二簇的根节点,至少一个所述网络叶子节点是所述第二簇的叶子节点; 散列树单元,用于在每一个簇中,建立散列树,所述散列树的根节点具有第一根节点值;所述簇的各个叶子节点中存放了所述第一根节点值; 叶子节点,用于接收所在簇的根节点发送的一个数据包; 判定所述数据包的时间戳合法,根据所述数据包中的辅助认证信息计算一第二根节点值,所述第二根节点值与所述第一根节点值相同,认定该数据包合法。
9.根据权利要求8所述的传感器网络,其特征在于,还包括: Merkle树构建单元,用于为每一个簇建立对应的一个Merkle树; 所述Merkle树的根节点是该簇包含的一个所述汇聚节点,所述Merkle树的叶子节点是该簇包括的至少一个所述网络叶子节点; 所述Merkle树还包括多个关键节点,各个关键节点构成所述根节点到各个所述叶子节点的路径;各个所述关键节点虚拟存在且不传输所述数据包。
10.根据权利要求8所述的传感器网络,其特征在于,还包括: 遍历单元,用于在所述传感器网络中增加了一个节点之后, 判定所述节点所在的簇; 更新所述簇中各个节点存放的验证信息,所述验证信息包括: 该簇对应的散列树的第一根节点值、本节点的节点值、从该簇的根节点至本节点的节点认证路径和后级各个节点的辅助认证信息; 所述辅助认证信息包括一数据项,所述数据项中存放当前节点的各下级节点的节点值。
全文摘要
本发明实施例提供一种在传感器网络中进行认证的方法和传感器网络,网络包括网络根节点、汇聚节点和网络叶子节点;方法中建立至少两个簇,第一簇包括网络根节点和至少一个汇聚节点,网络根节点是第一簇的根节点,至少一个汇聚节点是第一簇的叶子节点;第二簇包括一个汇聚节点和至少一个网络叶子节点,汇聚节点是第二簇的根节点,至少一个网络叶子节点是第二簇的叶子节点;在每一个簇建立散列树,其根节点具有第一根节点值;簇的各个叶子节点中存放了第一根节点值;根节点发送一个数据包;该簇的叶子节点接到数据包,判定数据包的时间戳合法,根据数据包中的辅助认证信息计算一第二根节点值,第二根节点值与第一根节点值相同,认定数据包合法。
文档编号H04L9/32GK103095451SQ201110341738
公开日2013年5月8日 申请日期2011年11月2日 优先权日2011年11月2日
发明者尹启禄, 张志平, 王建宏, 林多强, 桂江波, 张彬, 李国辉, 张闯, 史学敏 申请人:中国移动通信集团广东有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1