CN102780817A - 网络协议安全建模方法 - Google Patents
网络协议安全建模方法 Download PDFInfo
- Publication number
- CN102780817A CN102780817A CN2012102454245A CN201210245424A CN102780817A CN 102780817 A CN102780817 A CN 102780817A CN 2012102454245 A CN2012102454245 A CN 2012102454245A CN 201210245424 A CN201210245424 A CN 201210245424A CN 102780817 A CN102780817 A CN 102780817A
- Authority
- CN
- China
- Prior art keywords
- model
- agreement
- protocol
- procotol
- network protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了一种网络协议安全建模方法,包括以下步骤:步骤一、针对网络协议的定义包括语法、语义与规则进行抽象得到多个CSP进程,由所述进程通过进程代数算子得到网络协议基本模型;步骤二、针对入侵者的内容包括语法、语义与规则进行抽象得到多个CSP进程,由所述进程通过进程代数算子得到入侵者模型;步骤三、由所述网络协议基本模型与所述入侵者模型得到相互关联的协议模型;步骤四,进行验证和分析,得到缺陷。与现有技术相比,本发明通过在设计阶段对网络协议进行形式化的建模,可以准确的描述协议,进而对协议模型进行验证,可以提早发现协议的缺陷。
Description
技术领域
本发明涉及网络安全技术领域;特别是涉及一种对网络协议的安全缺陷建模技术。
背景技术
随着Internet的不断发展,人们对互联网的依赖已经变得越来越重要。互联网作为信息技术革命的一个重要环节,已经深深的影响着每个人的工作,学习和生活。互联网更多的涉及到了金钱利益,隐私,版权专利,是绝大多数机关企业单位正常运维的关键砝码。
与此同时,安全问题也越来越得到重视。作为Internet的通信基础,许多协议在设计过程中仅仅考虑到了通信而忽略了安全问题。因此攻击者可以利用协议中存在的缺陷来攻击系统,从而对用户造成危害。因此,只有协议的安全得到保证,才能确保互联网的可靠,才能保证用户的利益。
网络协议的开发过程包括分析、设计、实现、测试与维护等阶段,设计一个安全的协议非常困难,主要原因在于:协议本身所具有的微妙性,还有协议所存在环境的复杂性,攻击者模型的复杂性以及协议的高并发性。现在对网络协议的形式化建模主要有有限状态自动机(FSM)建模,Petri网建模,时态逻辑建模和通信进程演算。有限状态自动机的建模方式是目前最流行的,基本思想是对协议中的组件状态及其状态转换进行分析,在此基础上进行安全的分析和验证。通过对FSM模型的扩展,加入特定属性来完成协议信息的补充以达到特性的建模目的。Petri网是一种描述分布式系统的数学建模语言,通常以位置和迁移形式来表述系统所具有的状态及状态之间的迁移条件。时态逻辑的网络协议建模是模态逻辑的扩展,它涉及含有时间信息的时间、状态及其关系的命题、谓词和演算。通信进程演算是计算机通信系统的基本理论模型,它是许多形式化语言的基础。
现有的方法主要集中于特定安全协议与一些特定系统,因此这些方法具有一定的局限性。本发明针对网络协议,提出了一种基于协议定义分析与建模的方法。运用通信顺序进程CSP描述协议本身与所处环境(用入侵者所表示),并运用自动化的验证工具对所建立的模型进行安全验证。
发明内容
基于上述现有技术存在的问题,本发明提出了一种网络协议安全建模方法,针对网络协议的安全缺陷,基于协议规格描述与进程代数CSP,提出了一种对网络协议分析及其建模的方法。运用模型检测工具对其验证,以便发现协议所存在的缺陷。
本发明提出了一种网络协议安全建模方法,包括以下步骤:
步骤一、针对网络协议的定义包括语法、语义与规则进行抽象得到多个CSP进程,由所述进程通过进程代数算子得到网络协议基本模型;
步骤二、针对入侵者的内容包括语法、语义与规则进行抽象得到多个CSP进程,由所述进程通过进程代数算子得到入侵者模型;
步骤三、由所述网络协议基本模型与所述入侵者模型,经过specModel=P1||P2....||Pn并行运算得到相互关联的协议模型,其中||为CSP并行运算算子;P1、P2~Pn分别表示协议运行中各个主体进程与入侵者进程;
步骤四、运用验证工具FDR2对上述步骤三所获得的协议模型进行协议性质的验证,协议性质是协议需要满足的约束,表示为CSP进程:property=Ps1||Ps2....||Psn;(其中Ps1、Ps2~Psn分别描述约束的进程);FDR通过验证specModel的状态迁移系统是否是property的一个模型来判断约束性质是否满足;如果不满足性质,得出一个反例路径,该路径即是协议的缺陷。
与现有技术相比,本发明通过在设计阶段对网络协议进行形式化的建模,可以准确的描述协议,进而对协议模型进行验证,可以提早发现协议的缺陷。
附图说明
图1为现有技术的协议入侵模型示意图;
图2为本发明的网络协议安全建模方法的验证和分析步骤流程示意图;
图3为本发明具体实施例的BGP协议分析步骤流程示意图;
图4为本发明的网络协议安全建模方法的基于规则库的的攻击路径发现步骤流程示意图;
图5为本发明的网络协议安全建模方法的BGP验证结果示意图。
具体实施方式
以下结合附图及较佳实施例,对依据本发明提供的具体实施方式、结构、特征及其功效,详细说明如下。
下面结合附图对本发明中的编码实现和验证小果进行详述。
如图1所示,包括协议的基本模型与入侵者模型。
如图2所示,在获得协议模型后,结合要验证协议的安全属性,利用模型检查技术来对协议进行验证,可得到相应的检验结果,从而发现相应的缺陷问题。具体的检验过程是:结合协议模型及其安全属性进行模型检查,输出检查结果,分析得出协议安全问题。因此,技术方案主要涉及三个步骤:1)协议基本模型抽象2)协议入侵者模型抽象3)对协议模型进行自动化验证。有关内容详细说明如下:
首先是关于网络协议基本结构的说明:
结构1,网络协议描述为一个三元组,Protocol=(G,S,R);其中G是语法的基本内容,S是基于G描述的语义内容,R描述了协议的通信规则。
结构2,协议的语法元素是由一个二元组组成,Grammar=(D,C);其中D是协议基本数据集合,包括:协议消息,协议状态以及协议内部事件。C是协议运行交互的通道集合。因此语法是由基本数据与通道描述。
结构3,语义是基于语法,代表协议的内部事件。SemSet=(SP1,SP2,SP3....SPn);其中SP=C.DE.Di...Di是一个内部事件,Di是输入输出报文或者协议的状态。
结构4,规则描述了协议通信事件的顺序。Rule=(R1,R2....Rn);其中R=SP1→SP2→SP3…→SPn,SP是由结构3获得的语法事件。R代表了事件顺序。
结构5,进程是由以上基本结构通过相应的算子来得到。多个进程按照一定的联系也可以构成一个进程。
步骤一、协议基本模型抽象
协议基本模型从协议基本定义(语法、语义与规则)获得,从定义中抽象协议的基本结构。协议基本模型是由多个CSP子进程组成的进程,每个部分被描述为一出多个CSP进程,通过进程代数算子来得到整个协议的基本模型。即,抽象出网络协议基本模型,网络协议的基本要素包括:语法、语义和同步;基本模型从网络协议的最初设计得来,语法即是数据与控制信息的结构或格式,包括协议的不同报文、协议的基本状态以及其他事件。语义是需要发出何种控制信息,完成何种动作以及做出何种响应,同步是事件实现顺序的详细说明。将协议规格描述的各个部分都准确、完整的抽象出来。
步骤二、协议入侵者模型抽象
入侵者也被描述为一个CSP进程,该进程由多个子进程构成。结合Dolev-Yao攻击者模型的内容分析协议,可以得到攻击者可能具有的能力,用同样的方法得到攻击者的三元组(G,S,R),运用这些元素即可得到入侵者的CSP进程。即,抽象出攻击者模型。本发明运用攻击者来代表协议所处的现实环境,要求能够准确的描述协议的能力,结合著名的Dolev-Yao攻击模型来描述攻击者:攻击者有发送任意报文、阻止报文的传递以及修改报文的能力。
步骤三、获得协议模型
协议模型是由基本模型与入侵者模型并行获得。因此可以得到specModel=P1||P2....||Pn。其中||为CSP并行运算算子。即,运用CSP将协议模型的各个部分描述为CSP进程。一个进程是一序列的动作,由相互影响的不同成分组成,CSP的进程通过通道与其它进程或者环境进行交互。通过将协议的基本模型与攻击者模型用CSP进程来表示,从而获得相互联系的协议系统。
步骤四、协议验证
运用验证工具FDR2对协议进行验证,需要协议模型以及要验证的性质描述。协议性质是协议需要满足的约束。协议性质也要通过协议三元组(G,S,R)描述为CSP进程:property=Ps1||Ps2....||Psn。然后利用FDR2来验证specModel与property是否满足。用验证工具FDR2对协议模型进行自动化验证,从而发现协议的缺陷。
针对BGP协议的建模和验证分析案例详细说明如下:
1)整体分析
如图3所示,是对BGP协议的整体分析:包括两个主机,Route A和Route B,每个主机运行独立的BGP协议,协议之间通过TCP协议连接实现协议通讯。主机应用层与BGP协议之间通过cmd与get通道来通信,而BGP协议通过通道OpenCon来建立TCP连接,继而通过TCP协议通道来进行报文的传递。报文传递内容如下:
datatype Hosts=A|B;A与B分别为Route A和Route B
datatype Packet=OPEN|KEEPALIVE|UPDATE|NOTIFICATION|NONE;分别代表了BGP的四种报文,其中NONE不表示任何报文,在这里是虚构的一个,为了CSP的语法正确,后面会进行介绍。
datatype BgpState=Idle|Connect|Active|OpenSent|OpenConfirm|Established;分别代表BGP协议的六种状态。
datatype Command=Start|Stop|TcpConnected|TcpConFailed|TcpConErr|StartTcpConnection|Ready|ProcessUp|Error;表示主机应用层向协议发送与接收的一些命令,包括:启动、停止事件。
由于BGP协议中不侧重于TCP协议的建立,忽略了TCP的三次握手建模,因此在BGP协议报文增加:用TcpConnected来表示连接成功,TcpConFailed表示连接失败,TcpConErr表示连接出错,StartTcpConnection表示发起一个连接,Ready是一种虚拟事件,表示直接进入Active状态。
channel cmd:Command.Hosts.Hosts
channel get:Command.Hosts.Hosts;通道cmd与get表示主机的一条命令,或发起的一个事件。以上数据类型区别不同。Hosts通信之间的事件,例如Start.A.B表示A与B通信过程中的Start事件,而不是A与其他主机。当然在本文中只有A与B两个。
channel tcp:Hosts.Hosts.Packet.PacketState;TCP是建立TCP连接的两个主机之间发送报文的通道,PacketState表示该报文是否正确,例如:A.B.UPDATE.correct,则表示A向B发送了一条没有错误的UPDATE报文。
channel OpenCon:Command.Hosts.Hosts;OpenCon是用来建立连接的通道。表示一个主机向另一个主机发送了条命令,建立TCP连接。
2)BGP进程建模
如图4所示的基于规则库的攻击路径发现方法,BGP协议的有限状态机包括六个状态:Idle状态、Connect状态,Active状态,OpenSent状态,OpenConfirm状态,Established状态。它们之间的转换代表了协议进程的联系。因此可以将BGP进程建模为:
BGP_P(id,initstate)=
let otherhost=diff(Hosts,{id})
BGP(id,state,param)=
state==Idle&((cmd?x?y?z->(
if(x==Start)then OpenCon!StartTcpConnection.id.z->BGP(id,Connect,z)elseif(x==Ready)then BGP(id,Active,param)else BGP(id,Idle,param))
))
[]
state==Connect&(...)
[]
state==Active&(....)
[]
state==OpenSent&(....)
[]
state==OpenConfirm&(....)
[]
state==Established&(....)
within BGP(id,init_state,id)
其中,id代表着不同的主机,initState表示初始状态,param表示另一个主机,State表示当前状态。
3)主机进程
主机进程可以描述为:
hP1(i)=starting->cmd!Start.A.B->get?TcpConnected.B.A->hos1
hos1=get?ProcessUp.B.A->routeprocessing->hos1
hP2(i)=get?TcpConnected?x?z->hos2
hos2=get?ProcessUp.A.B->routeprocessing->hos2
sender(A)=(host1(A)[|{|cmd,get|}|]BGP_P(A,Idle))
receiver(B)=(host2(B)[|{|cmd,get|}|]BGP_P(B,Active))
4)入侵者模型
入侵者可以描述为:
ATTACKER(mes)=|~|x:Hosts,y:Hosts,x!=y,m:Packet,d<-mes,z:PacketState(tcp?x?y?m?z->ATTACKER(union(mes,{m})))[](tcp!x.y.d.incorrect->ATTACKER(mes))
其中mes入侵者所掌握的消息集合。
5)整体模型
最终的模型为两个主体与攻击者之间的并行:
System=((sender(A)[|{|tcp,OpenCon|}|]receiver(B))[|{|tcp|}|]ATTACKER({NONE}))\{|cmd,get,tcp,OpenCon,attacked|}
6)验证
我们验证BGP的两个性质:
Spe=starting->connected->Sp
Sp=routeprocessing->Sp
与
NoErr=CHAOS(diff(Events,{attackRoute}))
7)检验结果
图5显示了验证结果。从图中可以看出第一条性质得到满足,而第二条未满足。对约束NoErr我们得到其反例:
<cmd.Start.A.B,OpenCon.StartTcpConnection.A.B,OpenCon.TcpConnected.B.A,get.TcpConnected.A.B,tcp.B.A.OPEN.correct,tcp.A.B.OPEN.correct,tcp.B.A.KEEPALIVE.correct,tcp.A.B.KEEPALIVE.correct,tcp.A.B.UPDATE.correct,routeprocessing,tcp.B.A.UPDATE.incorrect,errRoute>
分析该反例,得到实际运行中的对应步骤:
1、RouteA启动开始事件,向Route B发起连接
2、连接建立成功,Route B向RouteA发送OPEN报文
3、Route A向Route B发送OPEN报文
4、Route B向Route A发送KEEPALIVE报文
5、Route A向Route B发送KEEPALIVE报文
6、此时双方完成准备工作。Route A向Route B发送UPDATE报文,Route B进行路由处理
7、攻击者截获之前的所有报文,构建虚假UPDATE报文,冒充Route B发送给RouteA
8、最终产生错误的路由处理。
由此可以获知,利用该缺陷,攻击者可以运用IP欺骗来与两个主机建立TCP连接,然后可以发起中间人攻击,从而窃取与修改相应的消息。
本发明通过对协议规格说明进行全面分析,从中抽象协议的基本结构,并在此基础上获得协议的基本模型与攻击者模型。使用该方法可以以统一的方法来对协议进行分析,可以形式化的描述协议,可以对协议进行验证并发现协议的缺陷。预期的效果有:
1、可以以统一的方法对协议进行分析。由于本方法是基于协议的定义来分析,每个协议都会有语法语义与规则,通过对该协议每个元素的抽取,即可得到相应的基本结构。
2、可以形式化的描述协议。本发明在对协议分析后,利用CSP来对协议与入侵者进行描述,对每个元素进行形式化。形式化具有严格的语法和语义定义,更准确简明的描述系统特征,具有自动化的验证工具支持。
3、可以对协议进行验证并发现相应的缺陷。通过对协议建模,可以运用模型检测工具如FDR2,PAT来对其进行验证。从而获得协议的缺陷,并可得到相应的反例。
Claims (1)
1.一种网络协议安全建模方法,其特征在于,该方法包括以下步骤:
步骤一、针对网络协议的定义包括语法、语义与规则进行抽象得到多个CSP进程,由所述进程通过进程代数算子得到网络协议基本模型;
步骤二、针对入侵者的内容包括语法、语义与规则进行抽象得到多个CSP进程,由所述进程通过进程代数算子得到入侵者模型;
步骤三、由所述网络协议基本模型与所述入侵者模型,经过specModel=P1||P2....||Pn并行运算得到相互关联的协议模型,其中||为CSP并行运算算子;P1、P2~Pn分别表示协议运行中各个主体进程与入侵者进程;
步骤四、运用验证工具FDR2对上述步骤三所获得的协议模型进行协议性质的验证,协议性质是协议需要满足的约束,表示为CSP进程:property=Ps1||Ps2....|Psn;(其中Ps1、Ps2~Psn分别描述约束的进程);FDR通过验证specModel的状态迁移系统是否是property的一个模型来判断约束性质是否满足;如果不满足性质,得出一个反例路径,该路径即是协议的缺陷。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012102454245A CN102780817A (zh) | 2012-07-16 | 2012-07-16 | 网络协议安全建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012102454245A CN102780817A (zh) | 2012-07-16 | 2012-07-16 | 网络协议安全建模方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102780817A true CN102780817A (zh) | 2012-11-14 |
Family
ID=47125569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012102454245A Pending CN102780817A (zh) | 2012-07-16 | 2012-07-16 | 网络协议安全建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102780817A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104240092A (zh) * | 2014-04-18 | 2014-12-24 | 天津大学 | 基于csp#和ltl逻辑的多方合同签署协议公平性验证方法 |
CN106411635A (zh) * | 2016-08-29 | 2017-02-15 | 华东师范大学 | 一种实时协议的形式化分析及验证方法 |
CN106446341A (zh) * | 2016-08-29 | 2017-02-22 | 华东师范大学 | 一种基于进程代数的实时协议分析及验证系统 |
CN113726821A (zh) * | 2021-11-02 | 2021-11-30 | 华东交通大学 | 一种用于安全协议形式化的验证方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070074182A1 (en) * | 2005-04-29 | 2007-03-29 | Usa As Represented By The Administrator Of The National Aeronautics And Space Administration | Systems, methods and apparatus for modeling, specifying and deploying policies in autonomous and autonomic systems using agent-oriented software engineering |
CN102065083A (zh) * | 2010-12-03 | 2011-05-18 | 中国科学院软件研究所 | 一种安全协议形式化验证方法 |
-
2012
- 2012-07-16 CN CN2012102454245A patent/CN102780817A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070074182A1 (en) * | 2005-04-29 | 2007-03-29 | Usa As Represented By The Administrator Of The National Aeronautics And Space Administration | Systems, methods and apparatus for modeling, specifying and deploying policies in autonomous and autonomic systems using agent-oriented software engineering |
CN102065083A (zh) * | 2010-12-03 | 2011-05-18 | 中国科学院软件研究所 | 一种安全协议形式化验证方法 |
Non-Patent Citations (2)
Title |
---|
安靖: "基于扩展CSP模型的安全协议分析技术研究", 《信息科技辑》 * |
王丹等: "远程证明安全协议的设计与验证", 《通信学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104240092A (zh) * | 2014-04-18 | 2014-12-24 | 天津大学 | 基于csp#和ltl逻辑的多方合同签署协议公平性验证方法 |
CN106411635A (zh) * | 2016-08-29 | 2017-02-15 | 华东师范大学 | 一种实时协议的形式化分析及验证方法 |
CN106446341A (zh) * | 2016-08-29 | 2017-02-22 | 华东师范大学 | 一种基于进程代数的实时协议分析及验证系统 |
CN113726821A (zh) * | 2021-11-02 | 2021-11-30 | 华东交通大学 | 一种用于安全协议形式化的验证方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109802852B (zh) | 应用于网络靶场的网络仿真拓扑的构建方法及系统 | |
CN104135397B (zh) | 面向无线传感网安全协议设计与实现的形式化验证方法 | |
CN102087631B (zh) | 一种面向状态协议实现软件的模糊测试方法 | |
CN100429617C (zh) | 一种自动协议识别方法及系统 | |
CN112153030B (zh) | 一种基于形式化验证的物联网协议安全性自动分析方法与系统 | |
CN106612225B (zh) | 一种基于openstack的代理部署系统及方法 | |
US8683269B2 (en) | Protocol software component and test apparatus | |
CN107220539B (zh) | 基于需求的ima安全验证分析方法 | |
CN101291343B (zh) | 一种基于透明代理设备的远程控制方法及其系统 | |
CN102780817A (zh) | 网络协议安全建模方法 | |
CN103152341A (zh) | 一种虚实结合的网络安全态势感知仿真方法及系统 | |
CN108737169A (zh) | 一种基于sdn的异构工业网络集中式融合管理方法 | |
US20180123898A1 (en) | Network verification device, network verification method and program recording medium | |
CN106330483A (zh) | 信息获取方法、客户端设备和服务端设备 | |
CN111612407A (zh) | 一种基于云平台的三维可视化综合应用平台设计方法 | |
CN105471963B (zh) | 一种基于云平台的移动设备管理方法及系统 | |
CN107579792B (zh) | 多型号在轨卫星工程参数并行解析方法 | |
CN105141484A (zh) | 基于云服务器的安卓设备远程调试方法 | |
CN102045309A (zh) | 一种用于防止计算机病毒攻击的方法和装置 | |
CN104836831B (zh) | 一种用于物联网的物体服务方法 | |
CN106302520B (zh) | 一种远控类木马清除方法及装置 | |
CN101969442B (zh) | 基于进程运行环境感知与迁移的网络模拟框架实现方法 | |
CN106254419A (zh) | 通过控制台服务器对虚拟机进行操作的系统及方法 | |
CN106789449A (zh) | 一种can总线开发与测试方法及系统 | |
CN107579871B (zh) | 基于模型检测的分布式测试脚本的生成方法与生成系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121114 |