您的当前位置:首页正文

一个适用于分布式入侵检测系统的安全通信协议

来源:画鸵萌宠网
维普资讯 http://www.cqvip.com

第32卷 第12期 £32 ・计算机工程 Computer Engineering 2006年6月 June 2006 №l2 安全拱 术・ 一文章■号l 1ooo—q428(20o6)12__015 _03 文献标识码l A 中田分类号z TP393.08 个适用于分布式入侵检测系统的安全通信协议 王謦 ,王亚弟17汪斌强 (I.解放军信息 :程大学电子技术学院,郑州450002;2.国家数字交换系统工程技术研究中心,郑州450002) ■曩:分布式入侵检测系统的模块间需要进行安全通信,但是目前存在的安全通信协议不能充分保证系统通信的安全性。为满足入侵检 测系统中模块问通信可靠、机密、身份认证、数据完整及新鲜的需求,该文提出了一个基于TCP协议的模块间传输安全(MTS)协议。MTS 协议由握手子协议和密文传输子协议构成,前者用于协商会话密钥及通信双方的身份认证,后者则使用协商的会话密钥实现数据的安全传 输。最后验证了MTS协议的安全性,并在开放的分布式入侵检测系统(ODIDS)中实现了该协议。 关健词一入侵检测系统;安全通信协议;协议设计;形式化验证;Mu ̄hi A Secure Communication Protocol for r DlStrlDU Distributed intrusionDetection System WANG Na ,WANG Yhdi ,、vANG Binqiang (1.School ofElectronic Technology,Information Engineering University,PLA,Zhengzhou 450002; 2.National Digital Switching System Engineering and Technology Research Center,Zhengzhou 450002) [Abstract]The current secure communicaiton protocols can not completely meet the secure requirements of communication between modules in the distributde intrusion detection system,which is reliability,confidentiality,identify authentication,data integrity and freshness.The paper proposes the module transfer security(MTS)protocol based on TCP,which includes hte handsh ̄e protcool and the cryptograph transfer protocol, hte former provides identify authentication and negotiation about conversation key,and the latter guarantees data secure transmission.At last,it verifies hte security of MTS prot3col,and then implements it in ODIDS. [Key wordsl Intrusion detecti 3n system;Secure communication protocol;Protocol design;Formal veirifcation;Murphi 在分布式入侵检测系统中检测模块和控制模块之问需要 M:传输报文; 进行通信,但是目前存在的一些安全通信协议(IPSec、SSL) Hash(M):M的摘要; 不能充分保旺通信的安全性,同时IETF提出的IDXP草案协 Kab:A、B之间的会话密钥; 议u 距离应用还有一段距离,因此非常有必要设计一个实用 T:时间戳; 的安全通信协议,以保证模:央间通信的安全性。本文在对入 Na(Nb):A(B)产生的随机数。 侵检测系统中模块间通信需: 进行分析的基础上,提出了一 2.2其它符号约定 个基于TCP的模块间传输安全(Module Transfer Security, I:入侵者; MTS)协议,并对其安全性进行了验证,同时在开放的分布式 Type(m):消息m的类型; 入侵检测系统(Open Distributed Intrusion Detection System, Source(m):消息m的发送者; ODIDS)中实现了该协议。 Dest(m):消息m的接收者; 1协议需求分析 HM:握手协议的消息集合; 入侵检测系统中模块间的通信必须满足可靠性和安全 TM:密文传输协议的消息集合; 性。安全性体现在:(1)秘密性,以防止信息被不合法用户知 ASH:握手协议中A的状态集合; 道;(2)完整性,以防止攻击者对信息进行篡改;(3)身份认证, BSH:握手协议中B的状态集合; 以防止攻击者进行身份欺诈;(4)新鲜性,以防止重放攻击。 AST:密文传输协议中A的状态集合; 同时还要考虑通信开销问题,以免对网络中正常的通信业务 BST:密文传输协议中B的状态集合; 产生影响。 WaitM(A/B):当前A/B等待接收的消息; 上述协议需求与IDWG提出的入侵检测安全通信协议要 M1,M2,M3,M。1,inM,inM1,inM2:消息标识符; 求 一致。 getM(messages):从消息集合messages中获取消息; 2符号约定 Madd(m,messages):将消息m放入消息集合messages中; 2.1MTS协议符号约定 Generate(I,type):入侵者I根据已知知识生成类型为type A:协议发起者; 作者筲介:王娜(198O一)。女,博士生,主研方向:计算机网络及 B:协议响应者; 其安全;王亚弟、汪斌强,教授 Ka/Kb:A/B的公钥; 收藕日期:2005・08—18 E・mail:wn@mail.ndsc.com.ca 一157— 维普资讯 http://www.cqvip.com

的消息; BST=f R—SLEEP,R—COMMIT}。 Sametype(ml,m2):判断消息ml与m2的类型是否相同, 如果相同则返回值为真,反之为假。 当A向B传输数据M时,协议的状态迁移图如图3 所示。 3模块阃安全通信协议 3.1 MTS MTS协议由两个子协议构成,分男4为握手协议和密文传 输协议。握手协议采用公钥密码体制用于通信双方会话密钥 的协商,及通信双方身份的相互验证,是一个密钥建立协议。 密文传输协议采用对称密码体制使用握手协议中协商的会话 圈3 MTS謇文传 协议帕状i蕾i迁毫 A—B) 密钥实现数据的加密传输,有两种工作模式:安全模式和非 当B收到M 1后,判断使用Kab能否正确解密消息,消 息中的时间T是否新鲜及验证数据M是否完整,如果都满足, 安全模式。当握手协议运行时,工作在非安全模式下,当握 手协议运行结束通信双方开始进行数据传输时,工作在安全 模式下。MTS的协议框架及其与ISO协议模型之问的关系如 图1所示。 臣堕 匦圈 ■1 MTS铸诚括纂墨与ISO协议羹基之阔曲关lI 3.2曩手协议 协议的安全性要求是保证通信双方的身份认证和会话密 钥的一致性、秘密性及新鲜性。 握手协议: MI A B:fA,Na}Kb M2 B一十A:fKab,B,Nb,Na}Ka M3 A B:fA,B,Nb}Kab 显然,HM=fMI,M2,M3l, ASH--{I—SLEEEI—WAIT,I—COMMIT}, BSH={R SLEEER WAIT,R COMMIT}。 状态迁移图如图2所示。 ■2■手体tI【帕状态迁:咎 当A收到M2后,判断消息中的Na是否新鲜,若新鲜 则生成M3,同时状态发生迁移,反之丢弃消息。当B收到 M3后,判断使用Kab能否正确解密消息和消息中的Nb是否 新鲜,如果都满足,则状态发生迁移,反之丢弃消息。 3.3|If文传0协议 协议的安全性要求是保证通信双方的身份认证和数据的 秘密性、完整性及新鲜性。 密文传输协议: M 1 A(B)一B(A):fM.Hash(M),T}Kab 显然,TM=fM’1}, AST ̄-{I—SLEEP,I—COMMIT}, 一I58一 则B的状态发生迁移,协议执行完毕。 4协议安全性分析 4.1叠手协议的安全性分析 4.1.1协议安全性分析 根据握手协议的安全性要求依次讨论: (1)通信双方的身份认证:实现复杂,而且与{办议的3个消息相 关,需要进行深入分析。 (2)会话密钥一致性:由B接收到消息3后,正确解密消息3和 Nb的新鲜性保证。 (3)会话密钥秘密性:Kab在I办议的消息2中加密传输。 (4)会话密钥新鲜性:由Nb的新鲜性保证。 4.I.2身份认证的安全性验证 (I)小系统模型 Lowe[21提出了一类密码协议,只需要验证协议小系统模 型(即一个发起者、一个响应者、一个入侵者及协议只运行一 次)的安全性,就能够保证协议是安全的。表1说明握手协议 属于此类密码协议 Lowe类密码协渡要求 在握手协议中的体现 协议参与者和入侵者拥有不同 A、B和I拥有的公、私钥不同 的公钥,他们之间拥有的秘密密 钥也各不相同 所有短期秘密都是新鲜的 短期秘密有Na、Nb、Kab,且都 是新鲜的 消息中投有长期秘密 可直观得出 协议消息中的所有加密模块都 (1)消息l用B的公钥加密,而 应该显示出协议所有参与者 消息中含有用户A的标识符;(2) 消息2用A的公钥加密,而消息 巾含有用户B的标识符;(3)消 息3虽然用会话密钥Kab加密, 但是在消息中含有协议的参与 者A、B的标识符 协议所有消息中的加密模块彼 可直观得出 此不相同 协议中不存在临时性秘密 所有消息均加密传输 消息接收者应该能够解密其所 可直观得出 接收消息中含有的加密模块 (2)安全性验证 使用协议自动验证工具Murphi13,41对握手协议进行验证, 验证模型: Model(H)=(QH,sH,qo,6H,IH,FH,R} 其中,QH:Murphi对握手协议进行验证时搜索状态的集合; sH:握手协议验证模型的状态表示;qo:验证模型的初始状 态,且qoE QH; :状态转移函数,由一个布尔条件和一个 动作构成,如果条件满足,则执行动作,状态发生迁移;IH: 安全属性不变式集合,安全属性不变式在每一个可达状态都 维普资讯 http://www.cqvip.com

必须为真,否则验证结束;FH:终结状态集合,如果FH为空 则表示密码协议是安全的,否则Fn为从初始状态q0到达不 安全状态的状态序列集合,FHcQH;R:Murphi使用的状态 缩减技术 1)SH及qf) SH={ini state,ini.responder,ini messages.res.state,res.initiator,res. messages,int.nonce[inil, inM=getM(int.messages); if Sametype(inM,WaitM(A)) then{Source(inM)=I;Madd(inM.ini.messages);} if Sametype(inM,WaitM(B)) then{Source(inM)=I;Madd(inM,res.message);} rule2 inM1=Generate(I,Type(WaitM(A))); Madd(inM 1,ini messages); inM2=Generate(I,Type(WaitM(B))); Madd(inM2.ini.messages) int.nonce(res],int.nonce[intl,int.sharekey[resl,int.sharekey[int].int. messages1。 其中,ini state:发起者的状态; ini.resporader:发起者发送消息的接收者(响应者或入侵者); ini.messages:数组类型,刷干存放发起者接收到的消息; res.state:响应者的状态; res.initiatnr:响应者发送消息的接收者(发起者或入侵者); rcs.messages:数组类型,用于存放响应者接收到的消息; int.nonce[ini】:布尔类型,表示入侵者是否知道发起者产生的 Nonce; int.nonce[res]:布尔类型,表示入侵者是否知道响应者产生的 Nonce; int.nonce[int]:常量,值为真; int.sharekey[res]:数据类型,表示入侵者是否知道响应者产生 的会话密钥; int.sharekey[int]:常量,值:勾真; int.messages:数组类型,表示入侵者从网络中“窃听”到的消息。 q0={I SL.EEP,initiator,NUL1..R—SLEEP'responder,NULL,false,fal se,ture,false,true,NULL} 2) 由以下规则构成: ①发起者的行为规则 switch(ini—.state) {case I—SLEEP:生成M1; if(Dest(M 1)=B) then M 1直接放入int.messages; if(Dest(M 1)=I) then增加入侵者的知识; inistate=I——WAIT;break; case I WAIT:对ini.messages中的消息进行验证,验证成功, 则生成M3; if(Dest(M3)=I) then增加入侵者的知识; if(Dest(M 3)=B) then M3直接放入int.messages; int—state=l COMMIT;break; case I_COMMIT:break;} ②响应者的行为规则 switch(res—state) {case R—SLEEP:对res,messages中的消息进行验证,验证成功, 则生成M2; if(Dest(M2)=A) then M2直接放入int messages; if(Dest(M2)=I) then增加入侵者的知识; res—state=R—WAIT;break; case R—WAIT:对res.messages中的消息进行验证 若验证成功,则 res state=R COMMIT;break; case R—COMMIT:break;】 ③入侵者的行为规则 rulel 3)In 根据4.1.1的讨论,IH={Invariant1,lnvariant2} Invariantl(对B的身份认证): fnrall i:Initiatorld do (ini[i].state=I—COMMIT)&(ismember(ini[i].responder,Responderl d))一>res[ini[i].responder].initiator=i&(res[ini[.】'responderl state=R W AITIres[ini[i].responder].state- ̄R COMMIT) end; Invariant2(对A的身份认证): forall i:Responderld do (res[i].state=R COMMIT)&(ismember(res[i].initiator,lnitiatorld)) 一>ini[res[i].initiator].resp0nder:i&ini[res[i】 initiator]state=I—COMMIT end; 4)验证结果 根据Model(H),使用Murphi对握手协议进行验证,得 到Fu=NULL,可见握手协议在小系统模型下是安全的。根据 小系统模型的讨论和Lowe的结论,可得握手协议是安全的。 4.2密文传输协议的安全性分析 根据安全性要求,依次讨论: (1)gt据秘密性:由所采用的对称密码体制保证。 (2)数据完整性:由所采用的杂凄函数保证。 (3)通信双方的身份认证:由会话密钥Kab保证。 (4)消息的新鲜性:由时间T的新鲜性保证。 密文传输协议必须和握手协议同时使用,才能够保证其 安全性 5协议实现 我们以VisualC++作开发工具,采用SOCKET编程技术 和客户机/,91/务器通信方式在ODIDS中实现了MTS协议 实 现中通过对套接字类CSocket进行派生,生成CSecSocket类 来实现模块间的安全通信,采用的密码算法有1 024bit的 RSA公钥算法、128bit的IDEA对称加密算法及MD.5杂凑 算法,这些密码算法被设计成一个通用的动态链接库 IDSCryption.DLL j-}考文献 1 Buchheim Erlinger M,Feinstein B,et a1.Implementing the intrusion Detection Exchange Protocol[C1.1 7 Annual Computer Security Applications Conference,2001—12. 2 Lowe G Towards a Completeness Result for Model Checking of Security Protocols[C].Proceedings of the Computer Security Foundations Workshop XI,1 998. 3王娜.入侵检测系统中安全通信协议的设计及分析[DI.郑州: 解放军信息工程大学,2004. 4 Mitchell J C,Mitchell M.Stern U.Automated Analysis of Cryptographic Protocols Using Murphi[C].IEEE Symposium on Security and Privacy,1 997. 一l59— 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top