1.一种基于参考节点策略的Ad Hoc网络安全信任方法,其特征在于:该方法包括以下步骤:S1:建立信任模型;
S2:统计及更新信任值;
S3:启动参考节点策略;
S4:建立安全路由;
所述S1具体步骤为:
S101:建立基于直接信任模型的报文统计策略;
所述直接信任模型Direct_Trust是节点通过基于报文统计的策略收集通信丢包率信息,通过贝叶斯信任模型评估得到的信任关系;其中,贝叶斯信任模型的评估是根据观察节点的通信结果集,用概率的方式计算节点的信任值;
直接信任评估下的贝叶斯模型具体为:
目的节点通过基于报文统计的策略收集报文信息,并计算报文丢失率,α表示节点丢包率正常的次数,β表示节点丢包率异常的次数;若节点丢包率正常,则α=α+1,若节点丢包率异常,即交互失败,则β=β+1,Direct_Trust_value表示直接信任值,节点i的直接信任值为:针对部分数据报文丢弃攻击,提出基于报文统计的惩罚策略;该策略中对原有的数据报文格式进行修改:新增每条报文的编号NUM和报文总数SUM,原报文信息不变;
在通信过程中,目标节点保存报文丢失率统计表,包括路由信息Routinfor、上次传输报文标号Num、上次传输报文总数Sum、数据丢失率P;其中Routinfor表示当前通信路由链接的节点信息,D'表示报文丢失的累加和,D表示报文丢失,有公式(2)(3)(4);
D'=D+NUM-Num (2)Sum=SUM (3)P=D'/sum (4)设置一个略大于正常丢包率的阈值ρ;若P>ρ,则怀疑路径中存在部分报文丢弃攻击的节点,若P≤ρ,则该条路径正常;
S102:建立基于间接信任模型的举手报告策略;
间接信任模型Indirect_Trust是源节点收集基于时间举手报告机制的举报信息,通过贝叶斯信任模型评估得到的关系;
间接信任评估下的贝叶斯模型记录举报节点和被举报节点,用λ表示节点是举报节点或被举报节点的次数;若节点被举报或者发起举报,则λ=λ+1;Indirect_Trust_value表示间接信任值,节点i的间接信任值为:其中θ为间接信任值影响因子,0<θ<1,避免间接信息值由于多次举报而迅速降低;
对于发现攻击节点后,发起举报的节点采用正常的结束数据报文通知后面的节点结束等待;
S103:在基于直接信任模型和间接信任模型的基础上,对直接信任值和间接信任值加权平均,计算出综合信任度Trust_value(i),即ID为i的节点的综合信任值Trust_value(i)计算式(7)为Trust_value(i)=ηDirect_Trust_value(i)+(1-η)Indirect_Trust_value(i) (7)其中η为直接信任值的权重系数,且0<η<1;
S104:设定一个信任阈值F判定一个节点是否可信,当节点的综合信任值大于F则认为节点可信;当节点的综合信任值小于F,则认为节点不可信;
所述S2具体步骤为:
S201:统计及更新信任值;
信任值统计节点M对网络中各节点的信任值和剩余能量率进行统计,对于信任值低于阈值的进行全网广播;同时各节点获取自己邻居节点信任值信息和攻击节点信息,清空节点信息表中其它节点信任值信息;
S202:更新信任值统计节点;
选择统计得到的信任值和能量剩余率加权后的加权信任值最高的节点N为信任值统计节点,为避免节点N暴露,更新由节点M告知节点N;即时节点M加权后的加权信任值大于节点N加权后的加权信任值,仍然选择N为信任值统计节点;
节点N预留加权信任值前10%的节点为备选节点,对于加权信任值进行统计,规定节点i的平均信任值为STrust_value(i),即为收集到的节点i信任值的平均值;节点i的剩余能量率为EnergyRate(i),节点i的加权信任值为WTrust_value(i)则有:WTrust_value(i)=μEnergyRate(i)+(1-μ)STrust_value(i) (9)η为权重系数具体值,通过实验进行确定,0<η<1;
S203:更新参考节点及路径查询节点;
设网络中节点总数为n,节点N为参考节点,查询节点为发送查询报文的节点;由节点M随机选择加权信任值前10%-30%的k个节点作为路径查询节点,则有k=n*0.2*γ (10)其中γ表示查询节点个数选择系数,通过具体实验确定。
2.如权利要求1所述的一种基于参考节点策略的Ad Hoc网络安全信任方法,其特征在于:所述S3具体步骤为:启动参考节点策略,源节点A发起寻路报文,目的节点S收到多条路由传来的路由请求RREQ报文,节点S收到多条节点A发送的RREQ报文后,节点A向节点S发送数据;当节点A收到多条路由请求回应消息RREP报文时,选择最短路由;节点B为黑洞攻击混合完全数据报文丢弃攻击的节点,B节点直接回复RREQ报文,响应时间最短,节点A选择节点B给出的路由为最短路由;在数据通信后,节点B形成数据黑洞并不转发数据,因此目的节点S收不到数据报文;由于节点S知道节点A会向其发送数据,若一段时间后节点S没有收到数据,则怀疑节点A当前路由存在问题;通过节点S举报,找出攻击节点B;
在查询节点A发起RREQ报文时,参考节点S需要维护一张参考节点路由信息表,包括源节点ID、目的节点ID、路由链接信息和RREQ请求开始时间;记录查询节点A到参考节点S的多条路由链路信息;当节点S收到查询节点A的RREQ报文后,立即设置时间等待定时器:MaxTolerateTime=TolerateWTime+i*a (11)其中MaxTolerateTime为最大容忍度时间,TolerateWTime为等待容忍时间,i为链路的节点个数,a表示相邻节点一帧数据传递时间,a的取值比正常相邻节点一帧数据报文的传输时间略大,给予网络一定的容错性;
目的节点S在MaxTolerateTime时间内没有收到来自于节点A的数据报文信息或者接收到数据报文,则节点S停止等待并发送举报报文ROUT_SPME,即Routing spoofing message,其中ROUT_SPME包括报文类型Type、目的节点ID、源节点ID和是否接收到数据Value;Value的值为0或1,1表示接收到数据,0表示未受到数据;目的节点S发送举报报文时随机从参考节点路由信息表选择一条到达节点A的路由发送;
当源节点A接收到来自参考节点S的举报报文,解析节点收到ROUT_SPME报文信息,若Type值为0,则查询当前到节点S的通信路由并停止路由,查询返回的RREQ的节点B,并将节点设置为攻击节点,进行全网广播;若Type值为1,则正常结束路由;
当REPMES,即Report Message举报报文和ROUT_SPME举报报文同时存在的时候,为了避免误判选,按照基于时间的举手报告的惩罚策略处理,而ROUT_SPME举报报文失效。
3.如权利要求1所述的一种基于参考节点策略的Ad Hoc网络安全信任方法,其特征在于:所述S4具体步骤为:路由寻路过程中,节点在发起RREQ报文之前首先判定邻居节点的信任值是否大于阈值F;若大于阈值F,则向邻居节点发送RREQ寻路报文,否则不向邻居节点发送RREQ报文;
后续节点都对其邻居节点的信任值进行判定,直到目标节点收到RREQ报文;
目标节点收到RREQ报文后沿着逆向路由发起RREP报文,判断下一跳节点信任值是否大于阈值F;若大于阈值F,则向邻居节点发送RREP报文,否则,不向邻居节点发送RREQ报文;直到目的节点,即路由发起的源节点收到RREP或者路由中的一个节点不可信结束判断。