法律状态公告日
法律状态信息
法律状态
2019-06-07
授权
授权
2018-12-25
实质审查的生效 IPC(主分类):H04L29/06 申请日:20180720
实质审查的生效
2018-11-30
公开
公开
技术领域
本发明涉及终端或节点的安全保护,特别是涉及基于反向传播神经网络的边缘侧克隆节点集成检测方法。
背景技术
克隆节点攻击的原理是,攻击者俘获网络中的合法节点并获取其所有的合法信息,复制出若干具有相同ID和密钥信息的节点,并将这些克隆节点投放到网络中的不同位置发动攻击。由于克隆节点拥有与合法节点相同的ID和密钥信息等,所以传统的基于密码学的认证机制难以检测出克隆节点。如何快速、高效地检测到克隆节点并对其进行隔离,成为防治克隆节点攻击的关键。
基于信道信息的克隆检测方案的原理为,若相同的ID却对应不同物理的位置,则判断其为克隆节点。携带相同ID的信息,接收节点经过信道估计,与参考信道信息相对比,若差值大于门限值,则判断两次信息来自不同的物理位置,该ID为克隆节点。Jakes等人已经证明,在静态或准静态无线通信环境下,信道信息的空间识别度最小为1/2个波长。因此,只要克隆节点与被捕获的合法节点相距1/2个波长,接收节点就能成功识别。但由于信道的随机性,合法信道信息也会在一定范围内随机波动。因此,基于信道信息的克隆节点检测的准确性也会受到影响。
由于数据源节点或终端的计算能力和存储能力非常有限,都将信息传输给超级节点,例如,簇头节点或sink节点,经过多跳,到达中心网络。传统的克隆节点检测大多都是由中心网络进行,再将结果返回超级节点。因此,不仅增加了中心网络的计算负荷,还增加了网络传输负荷与克隆检测的时延。靠近数据源节点的超级节点,具备一定的计算能力和存储能力,适于实施边缘计算,即作为边缘侧计算节点。采用边缘侧计算节点进行数据处理,可以就近为网络提供数据安全处理服务,将需求在边缘侧解决。这无疑将大大提升处理效率,提升终端或节点的数据处理和安全防护能力,在边缘侧计算的基础上,基于反向传播神经网络(Back Propagation Neural Network,BPNN)进行克隆节点检测,对于减少克隆攻击对网络的危害具有重大意义。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于反向传播神经网络的边缘侧克隆节点集成检测方法,在边缘侧节点实现克隆检测,降低传感网络负荷和克隆检测时延;利用反向传播神经网络对数据源节点进行集成检测,同时判断多个节点中是否存在克隆攻击,提高了克隆节点检测效率;通过累计信誉度和BPNN的分类,降低了信道随机噪声的影响,提高了克隆节点检测的准确性。
本发明的目的是通过以下技术方案来实现的:基于反向传播神经网络的边缘侧克隆节点集成检测方法,包括以下步骤:
S1.边缘侧计算节点采集数据源节点与已知的克隆节点的信道信息,计算信誉值,并据此形成数据集;
S2.构建反向传播神经网络模型并进行训练和测试,直至反向传播神经网络模型的检测率达标;
S3.边缘侧计算节点接收来自待测节点的信息包;
S4.边缘计算节点从待测节点的信息包中提取信道信息,据此确定待测节点的参考信道信息,并计算信道差值;
S5.累计待测节点的信誉值;
S6.对于多个不同待测节点,重复步骤S3~S6,得到各个待测节点的信誉值,从中随机选取k个节点的信誉值作为待测样本输入检测率达标的反向传播神经网络模型中,根据反向传播神经网络的输出判定是否存在克隆攻击:
若是,发送克隆攻击警报;
若否,进入步骤S7;
S7.更新给待测节点的参考信道信息,返回步骤S3进行克隆攻击的循环检测。
具体地,所述步骤S1包括以下子步骤:
S101.边缘侧计算节点广播发送信道探测请求{Seq,Ntrain}给N个数据源节点和N个已知克隆节点,Seq为探测序列,Ntrain为发送探测请求的次数;
S102.数据源节点与已知克隆节点响应探测请求,回发Ntrain次探测序列Seq;
S103.边缘计算节点根据数据源节点的响应,提取每一个数据源节点的信道信息v=1,2,...,N,累计各个数据源节点的信誉值
S104.边缘测计算节点根据克隆节点的响应,提取每一个已知克隆节点的信道信息v=1,2,...,N,累计各个克隆节点的信誉值
S105.从数据源节点和克隆节点的信誉值中,随机选择k个信誉值作为样本,其中,k不大于N;
若选出的k个信誉值中包含克隆节点信誉值,则将样本标记为1,即:
式中,xcl(s)表示包含克隆节点信誉值的随机样本,ycl(s)表示与xcl(s)对应的样本标记;表示来自数据源节点的i个信誉值,表示来自克隆节点的j个信誉值;
若选出的k个信誉值中不包含克隆节点的信誉值,则将样本标记为0,即:
式中,xl(s)表示不包含克隆节点信誉值的随机样本,yl(s)表示与xl(s)对应的样本标记,表示来自数据源节点的k个信誉值;
S106.在s=1,2,…,N的情况下,按照步骤S105分别对随机样本xcl(s)和xl(s)进行N次采集,得到2N个样本数据,与对应的样本标记一起加入训练集中;
S107.在s=1,2,…,N的情况下,按照步骤S105分别对随机样本xcl(s)和xl(s)进行N次采集,得到2N个样本数据,与对应的样本标记一起加入测试集中。
其中,所述步骤S103包括:
A1、边缘侧计算节点从第v个数据源节点的首次响应中提取信道信息Hlv(0),作为该节点的参考信道信息Hl0,v:
Hl0,v=Hlv(0);
A2、边缘侧计算节点从第v个数据源节点的后续响应中提取信道信息Hlv(t),计算信道差值:
ΔHlv(t)=Hlv(t)-Hl0,v;
Hlv(t)表示第v个数据源节点第t个响应的信道差值,t=1,2,...,p,其中p表示计算信道差值的次数,p<Ntrain;
A3、将提取到的p个差值进行累计,得到第v个数据源节点的信誉值
其中,||·||2为2范数;
A4、对于N个数据源节点,分别重复步骤A1~A3进行处理,得到各个数据源节点的信誉值
其中,所述步骤S104包括:
B1、边缘侧计算节点从第v个克隆节点的首次响应中提取信道信息Hclv(0),作为该节点的参考信道信息Hcl0,v:
Hcl0,v=Hclv(0);
B2、边缘侧计算节点从第v个克隆节点的后续响应中提取信道信息Hclv(t),计算信道差值:
ΔHclv(t)=Hclv(t)-Hcl0,v;
Hclv(t)表示第v个克隆节点第t个响应的信道差值,t=1,2,...,p,其中p表示从后续响应中提取信道差值的次数,p<Ntrain;
B3、将提取到的p个差值进行累计,得到第v个克隆节点的信誉值Rvcl(t);
B4、对于不同的N个已知克隆节点,分别重复步骤B1~B3,得到各个已知克隆节点的信誉值
具体地,所述步骤S2包括以下子步骤:
S201.构建反向传播神经网络模型:
初始化反向传播神经网络模型的自由参数WH和WO,输入层神经单元数为k,NH为隐藏层神经单元个数,NO为输出层神经单元个数,隐藏层的输入为:
IH=[R1,R2,…,Rk]×WH+δ,
其中,δ为阈值向量;
选择隐藏层激励函数为fh,隐藏层的输出为:
OH=fh(IH);
输出层的输入为:
IO=OH×WO+θ,
θ为阈值向量,
选择输出层的激励函数为fo,输出为:
选取回传偏差函数为计算均方误差函数为更新权值WH和WO:
WH(t+1)=WH(t)+η1f'h(IH)e*(t)+m·WH(t)
WO(t+1)=WO(t)+η2f'o(IH)e*(t)+m·WO(t)
其中,f'h和f'o分别为隐藏层和输出层激励函数的导函数,η1和η2为学习速率;
S202.将训练集中的数据送入反向传播神经网络模型进行训练,当权值WH和WO无明显变化,或均方误差函数E的值小于设定阈值时,进入步骤S203;
S203.利用测试集中的数据对训练得到的反向传播神经网络模型进行测试,判断反向传播神经网络的检测率是否达标,若是,进入步骤S3,若否,返回步骤S202继续训练。
具体地,所述步骤S4包括以下子步骤:
当接收到待测节点的第一个时隙信息包时,则将其信道信息Hv(0)记录为该待测节点的参考信道信息H0,v;接收到待测节点的第二个信息包开始,计算待测节点在t时刻的信道差值ΔHv(t)=Hv(t)-H0,v。
具体地,所述步骤S5包括以下子步骤:
通过待测节点在前p个时刻的信道差值来累计待测节点的信誉度R(t),信道差值越大,信誉度越低:
具体地,所述步骤S6包括以下子步骤:
S601.对于多个不同待测节点,重复步骤S3~S6,得到各个待测节点的信誉值,并从中随机选取k个节点的信誉值作为待测样本,k不大于待测节点数目;
S602.将待测输入检测率达标的反向传播神经网络模型中,根据反向传播神经网络的输出值判断是否存在克隆攻击:
若反向传播神经网络的输出值则无克隆攻击,进入步骤S7;
若反向传播神经网络的输出值则存在克隆攻击,开始发送克隆攻击警报。
具体地,所述步骤S7包括以下子步骤:
将t时刻的信道信息Hv(t)作为新的参考信道信息,即H0,v=Hv(t),返回步骤S3进行克隆攻击的循环检测,在出现克隆攻击,即时,发送克隆攻击警报。
进一步地,所述步骤S1中,各数据源节点及已知克隆节点均向边缘侧克隆节点发送Ntrain次探测响应,训练结束后,将已知克隆节点从网络中去除。
进一步地,步骤S2中,反向传播神经网络模型中的隐藏层激励函数fh为或fh(x)=ex。
进一步地,均方误差函数的阈值可根据需要自行设定,如10-4,当均方误差函数的值小于10-4或权值WH和WO无明显变化时,训练停止。
进一步地,检测率的阈值可根据需要自行设定,如99%,当检测率达到99%时,训练结束,得到检测率达标的反相传播神经网络模型。
进一步地,步骤S6中所述的不同待测节点对应着不同的ID,各个ID的待测节点具有不同的参考信道信息。
本发明的有益效果是:(1)利用BPNN生成曲面门限,对信誉值的判断更准确,提升了克隆检测准确率;(2)通过多个时刻的信道差值累计,减少信道随机噪声的影响,使检测结果更可靠;(3)集成多个节点的信誉值进行集成检测,提高了检测效率;(4)在边缘侧节点进行克隆检测,提升了网络响应效率,减轻了传输负荷与中心网络的计算负荷,降低了检测时延。
附图说明
图1为本发明实施的网络结构示意图;
图2为本发明的方法流程图;
图3为反向传播神经网络模型的原理示意图;
图4为边缘侧计算节点的信息示意图;
图5为本发明的检测准确率与常数门限检测准确率的对比示意图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图1所示,本发明在具有合法数据源的终端、节点、边缘侧计算节点的网络中实施。克隆节点攻击是指,攻击者捕获一个合法数据源节点并获得其身份ID和密钥等合法信息,在网络中的不同物理位置克隆出多个具有相同ID的克隆节点,从而对网络进行攻击的方式。克隆节点的特点是,具有相同身份ID的数据源位于不同的物理位置。本发明的克隆检测在边缘侧计算节点实施,对数据源节点进行克隆攻击检测。在此实施例中,采用BPNN算法同时对多个节点进行克隆攻击的集成检测。
如图2所示,基于反向传播神经网络的边缘侧克隆节点集成检测方法,包括以下步骤:
S1.边缘侧计算节点采集数据源节点与已知的克隆节点的信道信息,计算信誉值,并据此形成数据集;
S2.构建反向传播神经网络模型并进行训练和测试,直至反向传播神经网络模型的检测率达标;
S3.边缘侧计算节点接收来自待测节点的信息包;
S4.边缘计算节点从待测节点的信息包中提取信道信息,据此确定待测节点的参考信道信息,并计算信道差值;
S5.累计待测节点的信誉值;
S6.对于多个不同待测节点,重复步骤S3~S6,得到各个待测节点的信誉值,从中随机选取k个节点的信誉值作为待测样本输入检测率达标的反向传播神经网络模型中,根据反向传播神经网络的输出判定是否存在克隆攻击:
若是,发送克隆攻击警报;
若否,进入步骤S7;
S7.更新给待测节点的参考信道信息,返回步骤S3进行克隆攻击的循环检测。
具体地,所述步骤S1包括以下子步骤:
S101.边缘侧计算节点广播发送信道探测请求{Seq,Ntrain}给N个数据源节点和N个已知克隆节点,Seq为探测序列,Ntrain为发送探测请求的次数;
S102.数据源节点与已知克隆节点响应探测请求,回发Ntrain次探测序列Seq;
S103.边缘计算节点根据数据源节点的响应,提取每一个数据源节点的信道信息v=1,2,...,N,累计各个数据源节点的信誉值
S104.边缘测计算节点根据克隆节点的响应,提取每一个已知克隆节点的信道信息v=1,2,...,N,累计各个克隆节点的信誉值
S105.从数据源节点和克隆节点的信誉值中,随机选择k个信誉值作为样本,其中,k不大于N;
若选出的k个信誉值中包含克隆节点信誉值,则将样本标记为1,即:
式中,xcl(s)表示包含克隆节点信誉值的随机样本,ycl(s)表示与xcl(s)对应的样本标记;表示来自数据源节点的i个信誉值,表示来自克隆节点的j个信誉值;
若选出的k个信誉值中不包含克隆节点的信誉值,则将样本标记为0,即:
式中,xl(s)表示不包含克隆节点信誉值的随机样本,yl(s)表示与xl(s)对应的样本标记,表示来自数据源节点的k个信誉值;
S106.在s=1,2,…,N的情况下,按照步骤S105分别对随机样本xcl(s)和xl(s)进行N次采集,得到2N个样本数据,与对应的样本标记一起加入训练集中;
S107.在s=1,2,…,N的情况下,按照步骤S105分别对随机样本xcl(s)和xl(s)进行N次采集,得到2N个样本数据,与对应的样本标记一起加入测试集中。
其中,所述步骤S103包括:
A1、边缘侧计算节点从第v个数据源节点的首次响应中提取信道信息Hlv(0),作为该节点的参考信道信息Hl0,v:
Hl0,v=Hlv(0);
A2、边缘侧计算节点从第v个数据源节点的后续响应中提取信道信息Hlv(t),计算信道差值:
ΔHlv(t)=Hlv(t)-Hl0,v;
Hlv(t)表示第v个数据源节点第t个响应的信道差值,t=1,2,...,p,其中p表示计算信道差值的次数,p<Ntrain;
A3、将提取到的p个差值进行累计,得到第v个数据源节点的信誉值Rvl(t):
其中,||·||2为2范数;
A4、对于N个数据源节点,分别重复步骤A1~A3进行处理,得到各个数据源节点的信誉值
其中,所述步骤S104包括:
B1、边缘侧计算节点从第v个克隆节点的首次响应中提取信道信息Hclv(0),作为该节点的参考信道信息Hcl0,v:
Hcl0,v=Hclv(0);
B2、边缘侧计算节点从第v个克隆节点的后续响应中提取信道信息Hclv(t),计算信道差值:
ΔHclv(t)=Hclv(t)-Hcl0,v;
Hclv(t)表示第v个克隆节点第t个响应的信道差值,t=1,2,...,p,其中p表示从后续响应中提取信道差值的次数,p<Ntrain;
B3、将提取到的p个差值进行累计,得到第v个克隆节点的信誉值Rvcl(t);
B4、对于不同的N个已知克隆节点,分别重复步骤B1~B3,得到各个已知克隆节点的信誉值
具体地,所述步骤S2包括以下子步骤:
S201.构建反向传播神经网络模型如图3所示,反向传播神经网络模型输入为多个节点的信誉值,输出为克隆检测判别结果,将克隆检测的判别结果与输出样本之间的误差反向回传给神经网络,从而调整的神经网络的权值:
初始化反向传播神经网络模型的自由参数WH和WO,输入层神经单元数为k,NH为隐藏层神经单元个数,NO为输出层神经单元个数,隐藏层的输入为:
IH=[R1,R2,…,Rk]×WH+δ,
其中,δ为阈值向量;
选择隐藏层激励函数为fh,隐藏层的输出为:
OH=fh(IH);
输出层的输入为:
IO=OH×WO+θ,
θ为阈值向量,
选择输出层的激励函数为fo,输出为:
选取回传偏差函数为计算均方误差函数为更新权值WH和WO:
WH(t+1)=WH(t)+η1f'h(IH)e*(t)+m·WH(t)
WO(t+1)=WO(t)+η2f'o(IH)e*(t)+m·WO(t)
其中,f'h和f'o分别为隐藏层和输出层激励函数的导函数,η1和η2为学习速率;
S202.将训练集中的数据送入反向传播神经网络模型进行训练,当权值WH和WO无明显变化,或均方误差函数E的值小于设定阈值时,进入步骤S203;
S203.利用测试集中的数据对训练得到的反向传播神经网络模型进行测试,判断反向传播神经网络的检测率是否达标,若是,进入步骤S3,若否,返回步骤S202继续训练。
具体地,所述步骤S4包括以下子步骤:
当接收到待测节点的第一个时隙信息包时,则将其信道信息Hv(0)记录为该待测节点的参考信道信息H0,v;接收到待测节点的第二个信息包开始,计算待测节点在t时刻的信道差值ΔHv(t)=Hv(t)-H0,v。
具体地,所述步骤S5包括以下子步骤:
通过待测节点在前p个时刻的信道差值来累计待测节点的信誉度R(t),信道差值越大,信誉度越低:
具体地,所述步骤S6包括以下子步骤:
S601.对于多个不同待测节点,重复步骤S3~S6,得到各个待测节点的信誉值,并从中随机选取k个节点的信誉值作为待测样本,k不大于待测节点数目;
S602.将待测输入检测率达标的反向传播神经网络模型中,根据反向传播神经网络的输出值判断是否存在克隆攻击:
若反向传播神经网络的输出值则无克隆攻击,进入步骤S7;
若反向传播神经网络的输出值则存在克隆攻击,开始发送克隆攻击警报。
具体地,所述步骤S7包括以下子步骤:
将t时刻的信道信息Hv(t)作为新的参考信道信息,即H0,v=Hv(t),返回步骤S3进行克隆攻击的循环检测,在出现克隆攻击,即时,发送克隆攻击警报。
在本申请的实施例中,反向传播神经网络模型中的隐藏层激励函数fh为或fh(x)=ex;均方误差函数的阈值可根据需要自行设定,如10-4,当均方误差函数的值小于10-4或权值WH和WO无明显变化时,训练停止;检测率的阈值可根据需要自行设定,如99%,当检测率达到99%时,训练结束,得到检测率达标的反相传播神经网络模型。
如图4所示,步骤S6中所述的不同待测节点对应着不同的ID,各个ID的待测节点具有不同的参考信道信息。如图5所示,为本发明的检测准确率与常数门限检测准确率的对比示意图,可见,本发明的检测准确率相比与常数门限检测有着很大的提高。
综上,本发明先进行信道探测,建立数据集,进而利用BPNN训练权值,当新的信息包到来时,从信息包中提取信道信息,存储参考信道信息,并计算信道差值;再根据信道差值累计信誉值;将多个节点的信誉值作为BPNN的输入,进行克隆节点集成检测判断;若未检测到克隆攻击,则更新参考信道信息,继续等待下一个信息包的到来,若检测到克隆攻击,则发送克隆攻击警报。
以上所述是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应该看作是对其他实施例的排除,而可用于其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
机译: 基于神经网络和反向传播算法的基于Al的污水/废水控制系统和方法
机译: 基于神经网络和反向传播算法的基于AI的控制系统和方法来处理污水/废水
机译: 基于神经网络和反向传播算法的基于AI的控制系统和方法来处理污水/废水