基于局部偏序规约的控制器局域网模型验证方法

文档序号:7799997阅读:215来源:国知局
基于局部偏序规约的控制器局域网模型验证方法
【专利摘要】本发明提出一种基于局部偏序规约的控制器局域网模型验证方法,包括系统建模、模型预处理、模型性质验证等步骤。在该方法中,系统建模通过一套流程方法,建立抽象的时间状态自动机模型;模型预处理用于减少自动机中的对验证过程不产生影响的状态;模型性质验证在传统的验证方法的基础上,使用局部偏序规约思想,简化验证。本发明能够有效地验证相关网络协议是否满足要求,缓解验证过程中状态空间爆炸问题,给出的系统验证过程时空复杂度低。
【专利说明】基于局部偏序规约的控制器局域网模型验证方法
【技术领域】
[0001]本发明涉及一种在控制器局域网模型检验中状态空间压缩的方法,主要利用局部偏序规约思想来缓解状态空间爆炸问题,属于计算机技术、无线通信、控制器局域网、实时技术、分布式系统和验证技术的交叉技术应用领域。
【背景技术】
[0002]控制器局域网(CAN, Controller Area Network)是国际标准化的串行通信协议,属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。在当前汽车产业中,基于安全性、方便性、舒适性、成本的要求,研究人员开发出了许多类型的电子控制系统。这些系统之间的通信对数据类型、可靠性要求各不相同。由于在电子控制系统中多条总线构成情况增加,通信线束的数量也随着增加。为了解决现代汽车中庞大的电子控制系统中的通信效率,减少不断增加的信号线,1986年德国电器商博世公司开发出面向汽车的CAN总线协议。此后,CAN总线协议通过IS011898及IS011519进行了标准化,该协议在欧洲已成为汽车网络的标准协议。由于CAN总线协议高性能、高可靠性以及独特的设计,该协议越来越受到人们的重视,被广泛应用于诸多领域。CAN总线协议能够检测出所产生的错误,当信号传输距离达到IOkm时,该协议仍可提供高达50kbit/s的数据传输速率。由于CAN总线协议具有很闻的实时性能和应用范围,从位速率最闻可达IMbps的闻速网络到低成本多线路的50Kbps网络都可以任意搭配。因此,CAN总线协议己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用。
[0003]随着CAN总线协议在各个行业和领域的广泛应用,对它的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version2.0)制定并发布。该技术规范共包括A和B两个部分,其中2.0A给出了 CAN报文标准格式,而2.0B给出了标准的和扩展的两种格式。美国的汽车工程学会SAE在2000年提出了 J1939协议,此后该协议成为了货车和客车中控制器局域网的通用标准。
[0004]模型检验是一种自动验证有穷状态系统的技术,最早是由Clarke和Emerson在1981年提出的,模型检验方法可以在构建系统前对系统的安全性和可靠性进行验证,以尽早发现错误。模型检验实质是利用计算机的快速计算能力,通过穷举被检验系统的状态空间中的每一个状态来验证该系统满足特定的形式描述。在模型检验中涉及两种形式说明语言:一种是用于描述系统模型的模型描述语言,一般使用状态机进行表示,另一种是用于描述系统性质的性质说明语言,一般使用时序逻辑公式进行表示。模型检验的基本思想是用状态迁移系统(S)表示系统的行为,用模态/时序逻辑公式(F)描述系统的性质,这样“系统是否满足所期望的性质”就转化为数学问题“状态迁移系统S是否公式F的一个模型”,用公式表示为S|=F?。对有穷状态系统,这个问题是可判定的,即可以用计算机程序在有限时间内自动确定。模型检验已被应用于计算机硬件、通信协议、控制系统、安全认证协议等方面的分析与验证中,取得了令人瞩目的成功,并从学术界辐射到了产业界。
[0005]局部偏序规约技术是解决模型检验时状态空间爆炸问题的技术,是由PeterBokor提出的,模型检验方法可以在构建系统前对系统的安全性和可靠性进行验证,以尽早发现错误,局部偏序规约技术可以在此过程中极大地降低时间和空间的消耗。局部偏序规约技术是改善后的偏序规约技术,它不必对状态图有全面地了解,优点在局部性上,是在模型检验前完成对状态的顽固集的确定。局部偏序规约技术是以目前静态计算的顽固集的概念为基础的,它甚至优于动态的偏序规约技术。局部偏序规约技术是由外部接口和内部算法两部分构成的,在外部接口中要求用户根据验证领域定义相应的语义和状态转移之间的关系,这种关系是局部的,也就是在长度不超过2的路径上讨论状态转移之间的关系。内部算法主要是建立在顽固集基础上的优化算法,根据已定义的三种关系,使用一定的算法确定出顽固集。模型检验只用验证这些顽固集即可,大大地降低了时间和空间消耗。

【发明内容】

[0006]技术问题:本发明提出一种基于局部偏序规约的控制器局域网模型检验方法,克服验证在规模、动态性和资源约束等方面的挑战,从时空约束的角度解决控制器局域网络安全协议验证问题,找出控制器局域网协议漏洞。
[0007]技术方案:本发明所述的基于局部偏序规约的控制器局域网模型检验方法包含如下过程:系统建模、模型预处理、模型性质验证。建模过程提供一个或一套较为抽象的时间状态自动机模型,化简与减枝模块减少自动机中对验证过程不产生影响的状态,实现时空复杂度一定程度的优化。在控制器局域网软件模型检验中,利用局部偏序规约思想,在模型化简与减枝的基础上,进一步剔除对当前性质验证无影响的转移及状态,使整个系统的验证过程时空复杂度达到进一步的优化。
[0008]本发明所述的基于局部偏序规约的控制器局域网模型检验方法流程如下:
[0009]步骤I)系统建模
[0010]步骤11)分析控制器局域网协议,列出协议所有常量和变量;
[0011]步骤12)列出节点所有可能状态,所述状态是节点能够稳定维持的抽象化表述,包含一个或多个参数变量;
[0012]步骤13)列出节点各个状态之间转移条件,标注转移过程中参量变化,标记状态间的同步信号;
[0013]步骤14)根据转移条件,在各个状态节点之间建立有向边,建立状态自动机模型;
[0014]步骤15)用时序逻辑公式语言描述待验证的性质;
[0015]步骤2)模型预处理
[0016]优化状态自动机模型,减少对验证过程不产生影响的状态,具体过程为:对状态自动机模型中的状态进行遍历,如果一个状态的前驱迁移或者后继迁移都为空,则删除此状态,并对与此状态有关的迁移进行合并;
[0017]步骤3)模型性质验证
[0018]步骤31)验证系统初始化;
[0019]步骤311)列出控制器局域网协议中的状态及状态间的转移条件,并根据其的特点定义出该协议中局部转移间的关系,包括可达性关系Ce、依赖关系dep和必要转移关系net,所述局部转移是指两转移间的路径长度不大于2 ;
[0020]步骤312)选定待验证的性质,并从该性质涉及的状态中任选一个状态作为当前状态;
[0021 ] 步骤313 )构建状态空间树,初始化为空,树中每个节点都是一个待验证的状态,该树用于记录经局部偏序规约后仍需验证的状态;
[0022]步骤314)建立栈A,初始化为空,该栈用于保存状态空间树上未访问的节点,避免
重复验证;
[0023]步骤32)利用局部偏序规约思想,构建当前性质验证的状态空间树,以备验证;
[0024]步骤321)将当前状态作为状态空间树的根节点;
[0025]步骤322)标记当前状态为已访问,并建立该状态的顽固集T,初始化T为空,顽固集是某一状态必须执行的转移条件的集合;
[0026]步骤323)选择待验证性质中未访问的一条状态转移条件t,当前状态由转移条件t生成一个新状态s’,并标记转移条件t为已访问;
[0027]步骤324)依据前述关系的定义,确定当前转移条件t与其局部范围内的其他转移条件间的关系;
[0028]步骤325)选定任意一种局部偏序规约内部算法,判断当前转移条件t是否可以加入顽固集,如果不可以则转向步骤323);
[0029]步骤326)将新状态S,加入状态空间树中,作为当前状态节点的子节点;
[0030]步骤327)将未曾在状态空间树中出现的状态压入栈A,将已经出现过的状态标记为已访问;
[0031]步骤328)判断栈A是否为空,如果非空则取出栈A的栈顶节点,用该节点状态作为当前状态,然后转向步骤322),否则转向步骤329);
[0032]步骤329)判断当前状态节点是否有未被访问的兄弟节点,如果有,则选择一个兄弟节点的状态作为当前状态,然后转向步骤322),否则转向步骤330);
[0033]步骤330)判断当前状态节点的父节点或当前状态节点是否是根节点,如果是根节点则转向步骤34),否则,以当前状态节点的父节点作为当前状态节点,转向步骤329);
[0034]步骤34)用深度优先搜索算法遍历状态空间树,判断是否符合待验证的性质。
[0035]有益效果:本发明提出一种基于局部偏序规约的控制器局域网模型检验方法,能够克服验证在规模、动态性和资源约束等方面的挑战,具有如下的有益效果:
[0036]I)本发明提供了一种基于局部偏序规约的控制器局域网模型检验方法,其完整的验证方法过程包括系统建模、模型预处理、模型性质验证,整个过程思路清晰完整,可读性强,尽量将晦涩难懂的相关技术概念、相关算法表述清晰,易于理解。
[0037]2)本发明中所述建模过程中,提供一个或一套较为抽象的时间状态自动机模型,能够将实际网络中的相关协议转化为数学化的模型形式。
[0038]3)本发明中所述模型化简与减枝模块减少自动机中的对验证过程不产生影响的状态,从而能够实现时空复杂度一定程度的优化。
[0039]4)本发明中所述局部偏序规约方法,是在模型化简与减枝的基础上,更进一步地确定本质上互不相同的状态转移路径,极大地压缩了模型检验所需的时、空资源。
【专利附图】

【附图说明】
[0040]图1是模型检验基本流程图。[0041 ] 图2局部偏序规约流程图。
[0042]图3是未优化示例模型。
[0043]图4是优化后示例模型。
【具体实施方式】
[0044]I)系统建模
[0045]11)分析控制器局域网协议,列出协议所有常量和变量;
[0046]12)列出节点所有可能状态;所述状态是节点能够稳定维持的抽象化表述,包含一个或多个参数变量;
[0047]13)列出节点各个状态之间转移条件,标注转移过程中参量变化,标记状态间的同
步信号;
[0048]14)根据转移条件,在各个状态节点之间建立有向边,建立状态自动机模型;
[0049]15)用时序逻辑公式语言描述待验证的性质;
[0050]2)模型预处理
[0051]优化状态自动机模型,减少对验证过程不产生影响的状态,具体过程为:对状态自动机模型中的状态进行遍历,如果一个状态的前驱迁移或者后继迁移都为空,则删除此状态,并对与此状态有关的迁移进行合并;
[0052]3)模型性质验证
[0053]31)验证系统初始化;
[0054]311)列出控制器局域网协议中的状态及状态间的转移条件,并根据其的特点定义出该协议中局部转移间的关系,包括可达性关系Ce、依赖关系dep和必要转移关系net。所述局部转移是指两转移间的路径长度不大于2 ;
[0055]312)选定待验证的性质,并从该性质涉及的状态中任选一个状态作为当前状态;
[0056]313)构建状态空间树,初始化为空,树中每个节点都是一个待验证的状态,该树用于记录经局部偏序规约后仍需验证的状态;
[0057]314)建立栈A,初始化为空,该栈用于保存状态空间树上未访问的节点,避免重复验证;
[0058]32)利用局部偏序规约思想,构建当前性质验证的状态空间树,以备验证;
[0059]321)将当前状态作为状态空间树的根节点;
[0060]322)标记当前状态为已访问,并建立该状态的顽固集T,初始化T为空,顽固集是某一状态必须执行的转移条件的集合;
[0061]323)选择待验证性质中未访问的一条状态转移条件t,当前状态由转移条件t生成一个新状态s’,并标记转移条件t为已访问;
[0062]324)依据前述关系的定义,确定当前转移条件t与其局部范围内的其他转移条件间的关系;
[0063]325)选定任意一种局部偏序规约内部算法,判断当前转移条件t是否可以加入顽固集,如果不可以则转向步骤323);
[0064]326)将新状态s’加入状态空间树中,作为当前状态节点的子节点;
[0065]327)将未曾在状态空间树中出现的状态压入栈A,将已经出现过的状态标记为已访问;
[0066]328)判断栈A是否为空,如果非空则取出栈A的栈顶节点,用该节点状态作为当前状态,然后转向步骤322),否则转向步骤329);
[0067]329)判断当前状态节点是否有未被访问的兄弟节点,如果有,则选择一个兄弟节点的状态作为当前状态,然后转向步骤322),否则转向步骤330);
[0068]330)判断当前状态节点的父节点或当前状态节点是否是根节点,如果是根节点则转向步骤34),否则,以当前状态节点的父节点作为当前状态节点,转向步骤329 );
[0069]34)用深度优先搜索算法遍历状态空间树,判断是否符合待验证的性质。
[0070]下面对本发明附图的实施例作更详细的描述。
[0071]根据图1,本发明建立在模型检验技术的基础上,【具体实施方式】为:
[0072]1、建立基于时间自动机的状态迁移系统
[0073]本发明所述的建立基于时间自动机的状态迁移系统,对协议所涉及的节点、报文使用时间自动机建模刻画协议在运行时可能出现的状态。
[0074]1)分析控制器局域网协议,列出所有常量和变量。
[0075]常量包括节点编号、报文编号、位速率等。
[0076]变量包括节点等待时间、节点属性值、报文优先权等。
[0077]2)列出节点的所有可能状态
[0078]本例中涉及四种可能的状态:发送态,等待态,应答态,接收态;
[0079]3)列出每个可能状态包含的参数变量如状态性质(应答态,接收态等),当前帧传输速率,报文内容,数据量大小,环境上下文,报文历史等,规定本例中每一个状态只包含状态性质,报文内容,报文历史和环境上下文四个变量;
[0080]4)列出各个状态之间转移条件,标注转移过程中参量变化;
[0081]5)根据转移条件,在各个状态节点之间建立有向边,建立状态自动机模型。
[0082]2、使用局部偏序规约对优化的状态自动机模型进行化简
[0083]1)根据控制器局域网协议,定义其对应的局部偏序规约的语义、语法,语义即定义关于控制器局域网协议的三元组{S,T,S0},其中S是状态集,T是转移条件集,SO是初始状态集。语法则包括定义转移之间的关系以及状态间的关系等。
[0084]2)依据控制器局域网协议状态转移的特点,定义转移间的关系集。控制器局域网协议是一种报文传输协议,状态转移t应包含可被t接收/发送的报文集合t.M1A.M0以及可被t接收/发送报文的节点集合t.1/t.0。
[0085]在图3 中可知 ce={(t3, t2),(t4, t3),(t5, t3)};
[0086]dep= {(tl, t2), (t2, tl)};
[0087]net= {(t4, t3), (t5, t3)}.[0088]3)选定局部偏序规约内部算法,使用该算法和上述的关系集可以计算出顽固集,本例确定的顽固集为(tl,t4)。也就是说,对于途中的性质验证时,从起始状态只用考虑tl, t4两条路径就足够了。化简后如图4。
[0089]3、模型验证
[0090]在这个过程中,用模型检验工具验证模型是否满足时序逻辑公式。对建立模型的状态空间进行搜索如果存在不满足的状态空间,则表示安全协议存在漏洞,并举出反例。
【权利要求】
1.一种基于局部偏序规约的控制器局域网模型验证方法,其特征在于该方法包含以下步骤:步骤I)系统建模 步骤11)分析控制器局域网协议,列出协议所有常量和变量; 步骤12)列出节点所有可能状态,所述状态是节点能够稳定维持的抽象化表述,包含一个或多个参数变量; 步骤13)列出节点各个状态之间转移条件,标注转移过程中参量变化,标记状态间的同步信号; 步骤14)根据转移条件,在各个状态节点之间建立有向边,建立状态自动机模型; 步骤15)用时序逻辑公式语言描述待验证的性质; 步骤2)模型预处理 优化状态自动机模型,减少对验证过程不产生影响的状态,具体过程为:对状态自动机模型中的状态进行遍历,如果一个状态的前驱迁移或者后继迁移都为空,则删除此状态,并对与此状态有关的迁移进行合并; 步骤3)模型性质验证 步骤31)验证系统初始化; 步骤311)列出控制器局域网协议中的状态及状态间的转移条件,并根据其的特点定义出该协议中局部转移间的关系,包括可达性关系Ce、依赖关系dep和必要转移关系net,所述局部转移是指两转移间的路 径长度不大于2 ; 步骤312)选定待验证的性质,并从该性质涉及的状态中任选一个状态作为当前状态;步骤313)构建状态空间树,初始化为空,树中每个节点都是一个待验证的状态,该树用于记录经局部偏序规约后仍需验证的状态; 步骤314)建立栈A,初始化为空,该栈用于保存状态空间树上未访问的节点,避免重复验证; 步骤32)利用局部偏序规约思想,构建当前性质验证的状态空间树,以备验证; 步骤321)将当前状态作为状态空间树的根节点; 步骤322)标记当前状态为已访问,并建立该状态的顽固集T,初始化T为空,顽固集是某一状态必须执行的转移条件的集合; 步骤323)选择待验证性质中未访问的一条状态转移条件t,当前状态由转移条件t生成一个新状态s’,并标记转移条件t为已访问; 步骤324)依据前述关系的定义,确定当前转移条件t与其局部范围内的其他转移条件间的关系; 步骤325)选定任意一种局部偏序规约内部算法,判断当前转移条件t是否可以加入顽固集,如果不可以则转向步骤323); 步骤326)将新状态s’加入状态空间树中,作为当前状态节点的子节点; 步骤327)将未曾在状态空间树中出现的状态压入栈A,将已经出现过的状态标记为已访问; 步骤328)判断栈A是否为空,如果非空则取出栈A的栈顶节点,用该节点状态作为当前状态,然后转向步骤322),否则转向步骤329); 步骤329)判断当前状态节点是 否有未被访问的兄弟节点,如果有,则选择一个兄弟节点的状态作为当前状态,然后转向步骤322),否则转向步骤330); 步骤330)判断当前状态节点的父节点或当前状态节点是否是根节点,如果是根节点则转向步骤34),否则,以当前状态节点的父节点作为当前状态节点,转向步骤329 ); 步骤34)用深度优 先搜索算法遍历状态空间树,判断是否符合待验证的性质。
【文档编号】H04L29/06GK103888462SQ201410117770
【公开日】2014年6月25日 申请日期:2014年3月26日 优先权日:2014年3月26日
【发明者】陈志 , 高阳阳, 朱彦沛, 高显强, 岳文静 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1