基于多重完整性远程证明的异常节点检测方法转让专利

申请号 : CN201710121024.6

文献号 : CN106817700B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周洪伟原锦辉吴果秦晰方青坡

申请人 : 中国人民解放军信息工程大学

摘要 :

本发明属于监测区域内节点异常检测方法技术领域,具体涉及基于多重完整性远程证明的异常节点检测方法,包括:将节点镜像文件随机化;利用远程证明协议的方法证明节点的进行验证;利用完整度量方法构造针对节点的质询问题;利用主观逻辑的合意规则实施多个意见的综合,计算该意见所对应的期望值。优势在于可以避免少量异常节点的合谋攻击;本发明要求每个节点都有唯一的镜像文件,使得多种完整性度量方法,在同样的度量输入时,也会有不同的度量输出;这样就可以保证每个节点的镜像文件所提出的质询问题,只有本节点容易得知答案,而其它节点无法容易得到。本发明要求目标节点的所有邻居都参与检测,使少量异常节点合谋欺骗sink节点的企图难以实现。

权利要求 :

1.基于多重完整性远程证明的异常节点检测方法,其特征在于,包括以下步骤:将节点镜像文件随机化;

利用远程证明协议的方法对节点进行验证;

利用完整度量方法构造针对节点的质询问题;

利用主观逻辑的合意规则实施多个意见的综合,根据公式 计算该意见所对应的期望值; 为主体A持有的、关于断论x的非相关意见, 为信念, 为相对原子度, 为不确定性。

2.根据权利要求1所述的基于多重完整性远程证明的异常节点检测方法,其特征在于,将节点镜像文件随机化的具体步骤包括:sink节点将会话密钥植入末端节点的基础区;

sink节点随机在节点软件中插入跟踪探针以及轨迹跟踪器;

sink节点采用指令混乱的方法,对节点软件进行混乱,生成镜像文件;

每个末端节点向sink节点申请和安装本节点的镜像文件。

3.根据权利要求1所述的基于多重完整性远程证明的异常节点检测方法,其特征在于,所述节点的存储区域划分为基础区和可装载区,基础区用于容纳节点操作系统支持软件运行的最小软件集,是不可变的;可装载区用于容纳随机化后的镜像文件,是可变的。

4.根据权利要求3所述的基于多重完整性远程证明的异常节点检测方法,其特征在于,节点镜像文件下载过程包括:节点首先生成随机数rand,并使用与sink节点共享的会话密钥加密rand,将加密结果E(rand)发送给sink节点;

sink节点收到消息后,解密获得rand,并加密rand+1,将密文E(rand+1)和镜像文件发送给节点;

节点接收到消息后,通过rand认证镜像文件的来源,并将镜像文件装入可装载区。

5.根据权利要求1所述的基于多重完整性远程证明的异常节点检测方法,其特征在于,所述远程证明的详细过程包括:假设负责验证的sink节点为节点T,被验证的目标节点为节点O,目标节点O的邻居节点为R1,R2,....,Rn,每个节点均拥有与sink节点T通信的会话密钥K(T,Ri),任何节点均不知道其它节点与sink节点T的会话密钥,其证明流程如下:sink节点T针对目标节点O随机生成质询问题集{P1,P2,...,Pn};

sink节点T使用密钥K(T,O),为邻居节点Ri加密质询问题集E(Pi);

每个邻居节点Ri收到E(Pi),转发至节点O;

节点O使用会话密钥K(T,O),解密质询问题集E(Pi);

目标节点O回答质询问题Pi,将答案加密后提交给Ri;

Ri将目标节点O的答案及质询问题提交给sink节点T;

sink节点T解密答案,并验证目标节点O的答案是否正确。

6.根据权利要求1所述的基于多重完整性远程证明的异常节点检测方法,其特征在于,所述完整度量方法包括基于指纹哈希完整性度量方法、值匹配的完整性度量方法和业务完整性度量方法。

7.根据权利要求1所述的基于多重完整性远程证明的异常节点检测方法,其特征在于,所述合意规则包括:设 和 分别是主体A和B持有的、关于x的非相关意见;设 是一个假设主体[A,B],该主体根据 和 得到关于x的意见;那么 其中 称为增量合意算子;设 令意见合意规则如下:

情况1(k≠0):

情况2(k=0):

在计算所得到的综合性意见的基础上,根据公式 计算该意见所对应的期望值,该值即是合理综合所有质询结论后的意见;系统预设一个阈值,当期望值大于该阈值时,认为该节点为异常节点。

说明书 :

基于多重完整性远程证明的异常节点检测方法

技术领域

[0001] 本发明是属于监测区域内无线传感器节点异常检测方法技术领域,具体涉及一种基于多重完整性远程证明的异常节点检测方法。

背景技术

[0002] 无线传感器网络就是由部署在监测区域内,大量的廉价微型节点组成的,通过无线通信网络连接,形成的一个自组织无线网络。不同传感器节点所感知的数据类型不同,有的传感器节点专门用于感知温度,有的用于感知湿度,有的则感知压力,有的则感知多种类型的数据。不同的传感器适用于不同的应用场景,典型的如用于检测煤矿瓦斯浓度的传感器系统。目前,传感器网络已经大量应用社会生活。
[0003] 无线传感器网络有多种体系架构。基本的一种网络形式是:由大量廉价微型节点和少量sink节点组成。在这种形式下,各个廉价微型节点计算能力有限,能量有限,不能完成复杂的运算。sink节点一般连接计算机,复杂计算可委托计算机完成,可视其能够支持复杂运算,能量无限。在这种模式下,各个廉价微型节点只完成必要的计算,并尽可能减少传输的数据总量。为了提高网络生存能力和感知能力,有的无线传感器网络引入具有较强计算能力的簇头节点,专门收集整理本簇内微型节点的感知数据。也有的无线传感器网络是两层或多层网络,不同层次各个节点的计算能力、能量水平有所不同。
[0004] 由于无线传感器网络往往都部署于并不完全安全的场景。这就使得敌人可以在无线传感器网络管理者不察觉的情况下接近无线传感器节点,使用必要的手段对其进行破解,甚至注入恶意的指令片段,使被控制的传感器节点按照攻击者的意愿发送非法数据,进而影响整个无线传感器网络的安全。由于传感器网络的末端节点通常都是廉价微型的节点,出于制造成本的限制,很难大幅度提高单个节点的安全性。为了保证感知数据的准确性,无线传感器网络大都采用密集部署的方法来增加数据的冗余,以便剔除异常的数据。
[0005] 检测异常传感器节点的困难在于攻击者可以完全控制传感器节点,剖析节点的指令和数据,注入恶意指令和数据。由于成本的限制,传感器节点的计算能力和可消耗的能量都十分有限,而且也不可能为其增加过多的安全机制。限于此,人们在检测异常节点时往往会依赖其邻居节点的协助。然而,现实情况是这些邻居节点并不如期望那样可信:攻击者能够控制目标节点,也很有可能会控制或者干扰其邻居节点。
[0006] 传感器网络异常节点的检测方法大致可以分为两种:一种是将传感器节点视为黑盒,通过观察节点的行为来辨别节点是否异常;一种是将传感器节点视为白盒,通过分析节点内部情况来辨别是否异常。下面分别说明。
[0007] 第一种方法通常是利用传感器节点的时间相关性和空间相关性,根据多个邻居节点的感知数据以及目标节点以往的感知数据,来研判目标节点是否异常。所谓时间相关性是指节点感知数据前后应该是连续的,很少发生突变。所谓空间相关性是指相邻节点对同一异常事件所感知的数据应该类似。根据时间相关性和空间相关性,人们就可以从时间和空间两个维度来推测节点的当前数据,并同实际数据进行对比研判,从而检测节点是否异常。
[0008] 第二种方法的代表是A.Seshadri等人提出的SWATT。该方法的原理是当传感器节点的内存内容被算改后,计算内存内容完整性指纹所耗费时间会大大增加,其很重要的内容就是设计出这样的内存内容完整性指纹计算方法。然而,由于传感器网络是一个无线网络,存在数据中继以及数据冲突等情形,数据在网络中传输所消耗时间波动较大,不可避免的影响了检测结果。与本发明相近的还有Yi Yang等人提出另一种传感器节点内存数据完整性远程证明方案。该方案要求在每个传感器节点的空白存储区域设置随机数,并根据内存数据完整性验证的方法来证明其完整性。不过这种方法不可以防御目标节点与少量邻居节点的合谋攻击以及中间人攻击。

发明内容

[0009] 本发明针对现有技术在邻居节点并不完全可信的情况下,存在检测异常传感器节点不准确的问题,提出一种基于多重完整性远程证明的异常节点检测方法。
[0010] 本发明的技术方案是:基于多重完整性远程证明的异常节点检测方法,包括以下步骤:
[0011] 将节点镜像文件随机化;
[0012] 利用远程证明协议的方法证明节点的进行验证;
[0013] 利用完整度量方法构造针对节点的质询问题;
[0014] 利用主观逻辑的合意规则实施多个意见的综合,根据公式 计算该意见所对应的期望值。
[0015] 所述的基于多重完整性远程证明的异常节点检测方法,将节点镜像文件随机化的具体步骤包括:
[0016] sink节点将会话密钥植入末端节点的基础区;
[0017] sink节点随机在节点软件中插入跟踪探针以及轨迹跟踪器;
[0018] sink节点采用指令混乱的方法,对节点软件进行混乱,生成镜像文件;
[0019] 每个末端节点向sink节点申请和安装本节点的镜像文件。
[0020] 所述的基于多重完整性远程证明的异常节点检测方法,所述节点的存储区域划分为基础去和可装载区,基础区用于容纳节点操作系统支持软件运行的最小软件集,是不可变的;可装载区用于容纳随机化后的镜像文件,是可变的。
[0021] 所述的基于多重完整性远程证明的异常节点检测方法,节点镜像文件下载过程包括:
[0022] 节点首先生成随机数rand,并使用与sink节点共享的会话密钥加密rand,将加密结果E(rand)发送给sink节点;
[0023] sink节点收到消息后,解密获得rand,并加密rand+1,将密文E(rand+1)和镜像文件发送给节点;
[0024] 节点接收到消息后,通过rand认证镜像文件的来源,并将镜像文件装入可装载区。
[0025] 所述的基于多重完整性远程证明的异常节点检测方法,所述远程证明的详细过程包括:假设负责验证的sink节点为节点T,被验证的目标节点为节点O,目标节点O的邻居节点为R1,R2,....,Rn,每个节点均拥有与sink节点T通信的会话密钥K(T,Ri),任何节点均不知道其它节点与sink节点T的会话密钥,其证明流程如下:
[0026] sink节点T针对目标节点O随机生成质询问题集{P1,P2,...,Pn};
[0027] sink节点T使用密钥K(T,O),为邻居节点Ri加密质询问题集E(Pi);
[0028] 每个邻居节点Ri收到E(Pi),转发至节点O;
[0029] 节点O使用会话密钥K(T,O),解密质询问题集E(Pi);
[0030] 目标节点O回答质询问题Pi,将答案加密后提交给Ri;
[0031] Ri将目标节点O的答案及质询问题提交给sink节点T;
[0032] sink节点T解密答案,并验证目标节点O的答案是否正确。
[0033] 所述的基于多重完整性远程证明的异常节点检测方法,所述完整度量方法包括基于指纹哈希完整性度量方法、值匹配的完整性度量方法和业务完整性度量方法。
[0034] 所述的基于多重完整性远程证明的异常节点检测方法,所述合意规则包括:设和 分别是主体A和B持有的、关于x的非相关意见;设 是一个假设主体[A,B],该主体根据 和 得到关于x的意见;那么
其中 称为增量合意算子;设 令 意见合意
规则如下:
[0035] 情况1(k≠0):
[0036]
[0037] 情况2(k=0):
[0038]
[0039] 在计算所得到的综合性意见的基础上,根据公式 计算该意见所对应的期望值,该值即是合理综合所有质询结论后的意见;系统预设一个阈值,当期望值大于该阈值时,认为该节点为异常节点。
[0040] 本发明的技术效果:本发明的优势在于可以避免少量异常节点的合谋攻击;本发明要求每个节点都有唯一的镜像文件,使得多种完整性度量方法,在同样的度量输入时,也会有不同的度量输出;这样就可以保证每个节点的镜像文件所提出的质询问题,只有本节点容易得知答案,而其它节点无法容易得到。本发明要求目标节点的所有邻居都参与检测,使少量异常节点合谋欺骗sink节点的企图难以实现。

附图说明

[0041] 图1为基于多重完整性远程证明的异常节点检测方法流程示意图;
[0042] 图2为节点镜像文件随机化的具体步骤流程示意图;
[0043] 图3为节点镜像文件下载过程示意图;
[0044] 图4为远程证明的过程流程示意图;
[0045] 图5为本发明的技术方案思路示意图;
[0046] 图6为远程证明数据流向示意图;
[0047] 图7为snik节点和节点数据流向示意图;
[0048] 图8为跟踪探针及轨迹跟踪器工作示意图;
[0049] 图9为基于业务跟踪的业务完整性度量方法示意图。

具体实施方式

[0050] 术语解释:
[0051] 传感器节点:能够感知特定环境数据(如:温度、湿度、压力),且能够通过无线网络上报感知数据的微型节点,其制造成本低廉,计算能力有限,通常采用电池供电,能量有限。在本文档中,传感器节点简称节点或者末端节点。
[0052] 传感器网络:无线传感器网络就是由部署在监测区域内,大量的廉价微型节点组成的,通过无线通信网络连接,形成的一个自组织无线网络。
[0053] sink节点:在无线传感器网络指汇聚节点,主要负责传感器网络与外网的连接。一般sink节点与计算机直接相连,可由计算机供电且复杂计算可委托计算机完成,所以视sink节点能量无限、计算能力无限。
[0054] 远程证明:被验证者向远端验证者提供证据,表明自己存在某种能力或者特性。本发明就是要求被验证节点向验证节点提供多种完整性证明,以证明其不是异常节点。
[0055] 完整性度量:采用某种方法对目标的完整性实施检查。完整性主要强调事物未被破坏,在本发明中就是对被验证节点的内存完整性进行度量,以确保其未被攻击者所篡改。
[0056] 跟踪探针:是在软件指令中插入的一种特定指令,其目的是用于跟踪软件执行过程。
[0057] 主观逻辑:由 提出的一种适用于不确定性推理逻辑,其基本概念为意见,反映的是某个主体对某个论断的看法,该逻辑还给出若干意见运算规则,典型的规则如将两个意见合理综合的合意规则。
[0058] 代码复用攻击:一种不需要注入新指令就可以实施的攻击方法,它利用现有代码中某些片段,并采用特定手段将这些片段连接起来,将原来无害的指令变成恶意指令。
[0059] 实施例1:结合图1-图8,基于多重完整性远程证明的异常节点检测方法,其特征在于,包括以下步骤:
[0060] S11:将节点镜像文件随机化,将节点镜像文件随机化的具体步骤包括:
[0061] S21:sink节点将会话密钥植入末端节点的基础区;
[0062] S22:sink节点随机在节点软件中插入跟踪探针以及轨迹跟踪器;
[0063] S23:sink节点采用指令混乱的方法,对节点软件进行混乱,生成镜像文件;
[0064] S24:每个末端节点向sink节点申请和安装本节点的镜像文件。
[0065] 具体来讲:为了避免攻击者俘获一个节点就获知所有节点的信息,节点之间应该有所区别,为此本发明提出节点镜像文件随机化,为每个传感器节点生成网络内唯一的镜像文件。一般而言,在单个传感器网络中每个传感器节点所要完成功能应该是一致的,其指令也应该是相同的。这就使得攻击者一旦获得某个传感器节点就可以知道所有节点的信息。为此,应该使每个传感器节点具有唯一的特征,使得攻击者只能获知被俘获的节点信息,而无法猜测其它节点的内部信息。所以,sink节点将根据传感器网络设计和实现人员所提供的、部署到传感器节点上的软件,对其进行混乱,改变软件的指令序列以及数据序列,达到“功能不变,指令改变”的目的,为每个节点随机生成唯一的镜像文件。
[0066] 为了支持节点随机化后的镜像文件装入,节点存储区域划分为基础区和可装载区。基础区用于容纳节点操作系统等支持软件运行的最小软件集,这些是不可变的。可装载区用于容纳随机化后的镜像文件,是可变的。理论上,节点基础区的体积越小越好,仅仅容纳支持软件运行的最小软件集合即可。为了支持基本的运行环境,一些必要的基础软件,需要提前安装到节点基础区内。还有一些必备的系统参数也需要写入基础区,如节点与sink节点共享的会话密钥等。可装载区在节点初始情况下是空白的,需要从sink节点下载镜像文件,最终完成节点的软件安装。
[0067] 进一步的:节点镜像文件下载过程包括:
[0068] S31:节点首先生成随机数rand,并使用与sink节点共享的会话密钥加密rand,将加密结果E(rand)发送给sink节点。
[0069] S32:sink节点收到消息后,解密获得rand,并加密rand+1,将密文E(rand+1)和镜像文件发送给节点。
[0070] S33:节点接收到消息后,通过rand认证镜像文件的来源,并将镜像文件装入可装载区。
[0071] 进一步的:为了确保镜像文件的机密性和完整性,可以将镜像文件加密后再传输,并且附上镜像文件的完整性摘要值。不过,这无疑会导致节点计算工作量增加,过多消耗节点的能量,导致节点生命周期缩短。如果能够保证当前通信环境的安全(例如正在室内进行初装),镜像文件可以如图7所示,采用明文形式传输,以节省末端节点的能量消耗。
[0072] 进一步的:为了保护传感器节点与sink节点之间的通信,sink节点为每个传感器节点配备了会话密钥。sink节点与传感器节点之间的秘密信息将采用会话密钥加密的方法实施,但不涉密的信息仍然公开传输,以减少节点的计算量。会话密钥可以预先植入基础区,也可以仅仅在基础区植入根密钥,并依托根密钥来生成或交换会话密钥。会话密钥可以采用对称密码体制的密钥,也可以采用非对称密码体制的密钥。会话密钥可以在传感器节点初装时注入,也可以在更换电池时更换。
[0073] 在镜像文件生成过程中,sink节点还随机在节点代码中插入轨迹记录器以及数量不等的跟踪探针。如图8所示,在软件中插入轨迹跟踪器以及跟踪探针的目的是记录软件执行的轨迹。从本质上讲,跟踪探针就是一个函数调用指令,调用跟踪记录器填写跟踪日志。每个跟踪探针都有一个唯一标识,轨迹记录器维持一个单调计数器,当软件执行到探针处时,轨迹记录器记录当前所触发的跟踪探针标识以及计数值。当软件执行完某个事务,轨迹跟踪器输出软件执行轨迹。根据软件执行过程中,软件先后所触发的探针(用探针标识来识别不同的探针,用计数器值来记录触发的先后),我们可以近似的得知软件运行轨迹。
[0074] 利用远程证明协议的方法证明节点的进行验证,所述远程证明的详细过程包括:假设负责验证的sink节点为节点T,被验证的目标节点为节点O,目标节点O的邻居节点为R1,R2,....,Rn,每个节点均拥有与sink节点T通信的会话密钥K(T,Ri),任何节点均不知道其它节点与sink节点T的会话密钥,其证明流程如下:
[0075] S41:sink节点T针对目标节点O随机生成质询问题集{P1,P2,...,Pn};
[0076] S42:sink节点T使用密钥K(T,O),为邻居节点Ri加密质询问题集E(Pi);
[0077] S43:每个邻居节点Ri收到E(Pi),转发至节点O;
[0078] S44:节点O使用会话密钥K(T,O),解密质询问题集E(Pi);
[0079] S45:目标节点O回答质询问题Pi,将答案加密后提交给Ri;
[0080] S46:Ri将目标节点O的答案及质询问题提交给sink节点T;
[0081] S47:sink节点T解密答案,并验证目标节点O的答案是否正确。
[0082] 进一步的:如图6所示,sink节点生成若干与证明目标节点是否异常的相关质询问题,并将其分发给目标节点的邻居节点;邻居节点代替sink节点向目标节点提出质询问题,目标节点向邻居节点给出应答;邻居节点将所有答案提交给sink节点,由sink节点根据质询问题,对目标结点给出的答案进行验证,并结合多个质询结果完成目标节点是否异常的判定。
[0083] 进一步的:考虑到无线网络的特殊性,本发明要求所有的邻居节点都参与远程证明流程。由于无线网络往往都需要利用中继转交来完成数据交互,这就可能存在一种攻击场景:sink节点向被验证节点提交质询的问题,但质询问题由一个被攻击者所控制的节点中继转交,那么该节点就可以拒绝转交或者篡改质询问题,或者假冒正常节点或者sink节点干扰证明过程。有必要使所有邻居节点都参与远程证明,保证远程证明的鲁棒性和准确性。
[0084] 进一步的:考虑到对质询问题和答案的认证,所有问题和答案都使用验证节点和被验证节点所共享的会话密钥加密。假设sink节点向邻居节点所发送的问题均采用明文形式发送,那么攻击者可以直接获取问题。类似的,攻击者也可以获得答案。更甚的是,攻击者可以假冒sink节点发送问题,欺骗其它节点回答问题。从安全性来看,虽然这种行为不能对整个网络造成颠覆性的破坏,但是会干扰网络正常工作。使用密钥加密质询问题和答案可以提高安全性。
[0085] 利用完整度量方法构造针对节点的质询问题,所述完整度量方法包括基于指纹哈希完整性度量方法、值匹配的完整性度量方法和业务完整性度量方法。
[0086] 具体来讲:完整性度量的目的就是构造异常节点无法回答的质询问题。为此,本发明对节点内存中静态数据采用基于哈希指纹的完整性度量方法,对可测数据对象采用值匹配完整性度量方法,对软件业务流程采用运行轨迹完整性度量。当节点没有被攻击者所篡改,可以容易得到正确度量值。当攻击者篡改了节点内存信息,在没有其它计算资源的前提下,很难获得合法的度量值。
[0087] 传感器节点的内存可以划分为以下几个区域,包含指令区、可测数据区、不可测数据区以及空闲区。传感器节点的内存空间主要用于容纳指令和数据。根据数据变化情况,本发明将数据区进一步划分为可测数据区和不可测数据区。可测数据区主要是可以检测其完整性的数据对象所在区域。典型的可测数据如控制数据。可测数据区域是不连续的区域,它在整个数据区是离散分布的。可测数据占整个数据区一小部分,数据区域内大多数的数据对象都是不可测的。除了指令和数据以外,往往还有一些暂时用不到的空闲空间。为了确保一个节点一个内存镜像,sink节点不仅对指令进行混乱,也对数据区和空闲区进行随机数初始化填充。
[0088] 对于指令区和空闲区,我们采用基于哈希指纹的完整性度量方法。从效率来看,没有必要在每次应答过程中,节点对整个指令区和空闲区进行哈希指纹计算。从安全性来看,如果sink节点每次提问都是整个指令区和空闲区的哈希指纹,那么攻击者可以事先读取节点内容,提前计算好哈希值备查。为此,应该随机从静态区域截取少量片段进行哈希指纹的计算。用Hash(seed)表示计算哈希值的算法,seed表示待计算数据的初始因子信息。sink节点提问形如:使用seed作为初始因子,当前节点的计算结果是多少?由于攻击者已经篡改了节点内容,即使获得seed作为初始因子,也难以得到正确的计算结果。一种典型的计算哈希值算法是SHA1算法。初始因子可以是起始地址以及计算长度。当然也可以有其它类型的算法和初始因子,本发明对此并不限定。
[0089] 对于少量可测量数据,我们采用值匹配的完整性度量方法。对于变化状态有限的度量对象,我们穷举其有限状态,得到一个合法的状态集θ作为检测基准。检测时,根据检测对象是否属于状态集θ,对其完整性实施检测。值匹配的完整性度量方法典型用于控制数据的完整性度量。利用值匹配的完整性度量方法,可以有针对性的对少量数据进行验证。由于验证工作由sink节点完成,而sink节点有足够的计算能力和存储空间来完成这项工作。
[0090] 基于上述完整性度量手段以及关于攻击者能力的假设,攻击者无法将恶意指令注入到节点内存里。即使如此,攻击者仍然可以利用代码复用方法来实施攻击:攻击者可以采用缓冲区溢出的方法,中止当前业务的执行,转而执行其它指令。为此,我们实施业务完整性度量方法,检测传感器节点完成指定业务的情况。
[0091] 基于业务跟踪的业务完整性度量方法的工作原理如图9所示。我们将软件完成不同功能的过程称之为业务。对于传感器节点而言,典型的业务如感知外界温度的过程。我们在节点软件中插入了不同的跟踪探针,不同的业务执行过程就会触发不同的跟踪探针,轨迹跟踪器会整理形成轨迹跟踪日志,并据此来分析业务完成情况。如图6所示,当前存在业务1和业务2两个业务,其执行过程中所触发的跟踪探针情况如图右边轨迹跟踪日志部分所示。这样,当业务1完成后,我们解读轨迹跟踪日志,分析其跟踪探针被触发的标识以及先后顺序,就可以判定业务1是否完整执行。
[0092] 基于业务跟踪的业务完整性度量方法只是一种近似的、粗粒度的完整性度量方法。由于软件运行流程复杂,往往还存在循环结构和选择结构,很难穷尽其所有执行路径。为了获知正确的运行轨迹,人们需要反复多次执行业务,并以此为基准实施检测。但是,在实施检测时仍然可能出现新的、合法的运行轨迹,这就会导致误判。另一方面,跟踪探针的数量也与合法轨迹的数量紧密相关。如果插入了太多的跟踪探针,那么可以更为详尽的探知业务运行过程,但是也会产生更为复杂多变的轨迹,导致系统难以实施判定和监控。总而言之,基于业务跟踪的业务完整性度量方法只是一种粗粒度度量方法,在分析其度量结果必须考虑到其不确定性。
[0093] 利用主观逻辑的合意规则实施多个意见的综合,根据公式 计算该意见所对应的期望值。
[0094] 具体来讲:sink节点需要综合目标节点对所有问题的回答情况,来生成最终的检测结果。根据远程证明协议,目标节点会回答一系列的问题,并且这些答案会最终汇聚到sink节点。质询问题的设计来源于三种完整性度量方法。由于三种完整性度量方法的特性不同,需要对其度量结果进行综合。鉴于此,我们采用主观逻辑的方法,量化基于不同度量方法的问题答案,并综合所有问题答案得到最终结论。
[0095] 利用主观逻辑综合意见分为两个阶段。首先,将不同类型度量方法的结论统一量化为主观逻辑的意见。主观逻辑意见是一个四元组,包括:信念、负信念、不确定性和相对原子度,表示为 意为主体A对某个论断x的看法。量化就是将度量结论转为该四元组,这就需要给出量化规则。然后,利用主观逻辑现有的合意算子对其合意,得到综合性意见,并给出最终结论。
[0096] 对于基于哈希指纹的完整性度量方法,其度量结果不存在不确定性,其量化过程较为直接。当sink节点基于该度量方法设计了相应的质询问题,当完整性度量结论显示节点的代码完整性未被破坏,那么对应的主观逻辑意见是(1,0,0,0.5)。根据主观逻辑的合意规则,综合意见也将是(1,0,0,0.5),其结论是节点的完整性被破坏。这一特性也反映了该度量结论不存在不肯定性,具有“一票否决权”。
[0097] 对于基于值匹配的完整性度量方法,其度量结果存在不确定性。该度量方法不确定性主要体现在:即使检测时出现非基准的数值,也难以肯定的说该对象是不完整的。原因是为了获得基准值,系统需要反复多次训练以获得正确样本,然后由于训练的不完备,很难保证基准值的完备性。量化该结论时,我们必须考虑度量结果的不确定性。鉴于此,本发明所采用的量化过程如下:假设作为基准的状态集θ包含元素的个数为n,为穷举状态集所完成的实验次数为m,如果度量结果显示是不完整的,那么对应的主观逻辑意见为((m-n)/(m+2),n/(m+2),(n+2)/(m+2),0.5)。
[0098] 本发明的量化方法是合理的。根据主观逻辑证据空间意见的定义,上述意见应该为(m/(m+2),0,2/(m+2),0.5)。但这显然是不合理的,因为在训练过程中无法做到样本随机,这样的量化过程只是反映了部分真实情况。考虑到训练的不完备性以及训练结果的多样情况,将训练结果的个数引入主观逻辑意见量化中来,可以间接反映样本训练情况,也可以反映当前训练结果的可用性。
[0099] 如果度量结果是完整的,则是度量结果不完整所对应意见的逆意见:(n/(m+2),(m-n)/(m+2),(n+2)/(m+2),0.5)。这是根据主观逻辑的逆操作进行转换。主观逻辑意见求逆的规则如下所示:设 那么
[0100] 对于基于业务跟踪的业务完整性度量方法,其度量结果也存在不确定性,在量化过程中也必须考虑不确定性。导致其存在不确定性的原因类似于基于值匹配的完整性度量方法:很难在训练过程中穷尽所有可能的软件运行轨迹。鉴于此,本发明所采用的量化过程如下:假设作为基准的轨迹集合包含元素的个数为n,为得到基准所完成的实验次数为m,如果度量结果为不完整的,那么对应的主观逻辑意见是((m-n)/(m+2),n/(m+2),(n+2)/(m+2),0.5),如果度量结果为完整的,那么对应的主观逻辑意见是(n/(m+2),(m-n)/(m+2),(n+
2)/(m+2),0.5)。
[0101] 还存在无效的度量结果的情况。对于基于值匹配的完整性度量方法和基于业务跟踪的业务完整性度量方法,如果基准过于复杂而庞大,那么就说明难以使用此类方法实施完整性度量。例如:当业务执行的路径有循环结构,并且这种循环结构的循环次数不确定,那么就有可能导致多次执行业务得到的轨迹都是不一样的。在这种情况下,再考虑该度量方法的结论就不合适。故而,我们预设某个阀值minB,如果基准包含元素的数量大于该值,那么我们就认为度量方法不合适,其度量结果不考查。
[0102] 本发明直接采用主观逻辑的合意规则实施多个意见的综合,其合意规则如下:设和 分别是主体A和B持有的、关于x的非相关意见;设 是一个假设主体[A,B],该主体根据 和 得到关于x的意见;那么
其中 称为增量合意算子。设 令 意见合意
规则如下:
[0103] 情况1(k≠0):
[0104]
[0105] 情况2(k=0):
[0106]
[0107] 在计算所得到的综合性意见的基础上,根据公式 计算该意见所对应的期望值。该值即是合理综合所有质询结论后的意见。系统预设某个阈值,当期望值大于某个值时,认为该节点为异常节点。