《多等级移动agent系统安全机制的建立与实现.docx》由会员分享,可在线阅读,更多相关《多等级移动agent系统安全机制的建立与实现.docx(9页珍藏版)》请在三一办公上搜索。
1、多等级移动Agent系统安全机制的建立与实现摘 要:为解决多等级移动Agent系统的安全问题,针对系统的多等级特点,提出了一种多等级移动Agent安全机制。分析了多等级移动Agent网络系统中各节点的通信规则,讨论了系统的安全需求。在此基础上,阐述了安全机制的框架以及具体的建立实现过程。最后,对安全性能从理论上和应用实践上进行了分析,结果表明,安全机制具有针对性和可操作性,能有效保证移动Agent系统的安全。关键词:移动代理;多等级;安全体系;代理迁移;认证;加/解密算法 Establishment and implementation of a security mechanism for
2、multi-grade mobile agent systemsAbstract:To solve the security problem of multi-grade mobile agent systems, a security mechanism for multi-grade mobile agent systems was proposed, according to the multi-grade character. The communication rule was discussed and the Security Requirements were analyzed
3、. On this basis, the framework of the security mechanism, the establishment and realization process were introduced. At last, the security performance of the security mechanism was discussed theoretically and practically. The results showed that it was effective to keep the security of agent migrati
4、on in the multi-grade mobile agent systems.Key words:mobile agent; multi-grade; security mechanisms; agent migration; authentication; encrypt & decrypt algorithms0 引言移动代理MA(Mobile Agent)是一个能在异构网络中自主的从一台主机迁移到另一台主机,并可以与其他 Agent 或主机进行交互的程序1 2。它可以根据用户需要,代替用户进行各种复杂的工作,并能根据用户的意图,自主制定、调整和执行工作计划。移动Agent在资料搜
5、集、指令下达、上下级状态监控等方面发挥着不可忽视的作用,在银行系统、电子商务、军事等领域具有积极的应用前景。目前限制移动代理技术的主要原因之一是安全问题,安全问题主要来自两个方面34:一是如何保护主机不受来自恶意移动代理的攻击;一是如何保护移动代理免受来自恶意主机的攻击。为了应对Agent系统中出现的安全问题,已经出现了多种Agent系统安全模型5。比如,由General Magic公司开发的Tele Script移动Agent系统;由 Dartmouth 大学开发的DAgent t系统;由Tacoma大学和 Cornell大学合作开发的Tacoma系统;由IBM公司开发的基于Java的移动A
6、gent系统Aglet等。对一些特殊的Agent网络系统,比如,银行、军事等网络系统,以上这些安全模型并不是很实用。与普通的分布式系统网络不同,有如下特点:网络各节点之间存在着等级划分,各节点具有不同的操作权限。比如,在银行系统中高级节点可以通过Agent向它的次级以及更低级的节点进行指令下达、状态监控、数据收集等操作;但是低级节点对高级节点或同级节点之间的操作会受到限制,低级节点只可以向高级节点汇报自己的状态,而无权获取高级节点或同级节点中的数据。这种特殊的多等级Agent系统,除了面临着与一般Agent系统相同的安全问题外,还有自己特殊的安全问题。比如,下级节点或同级节点冒充上级节点,对其
7、他节点进行非法访问、下达伪命令等等。结合Agent系统的安全需求,针对银行、军事等网络系统的多等级性特点,提出了一种多等级移动Agent系统安全机制。1 多等级移动Agent系统描述1.1 多等级移动Agent系统模型图1为以银行系统为例的三级移动 Agent网络系统模型示意图。在银行网络系统中,由于网络中各个节点的职责、权限以及所存储的系统数据资料的不同,各个节点之间存在严格的等级划分。图中划分的三个等级为:一级央行(A)、二级省行(B-1,B-2)、三级市行(C-1,C-2,D-1,D-2)。央行级别最高,可以通过Agent随时调用省行、市行的数据资料,对省行、市行实施监控等其他相关操作。
8、省行可以通过Agent随时调用其直属的市行的数据资料,并进行相关操作。移动Agent以类实例的形式在节点间迁移。银行网络系统的三级逻辑结构图如图2所示,图中规定节点A为一级中央节点,级别最高。节点B-1,B-2为二级节点,级别次之。节点C-1,C-2,D-1,D-2为三级节点,级别最低。图1 银行网络系统三级模型图图2 三级移动Agent网络系统逻辑图在每个节点中有一个Agent执行平台,也可称为服务设施,为Agent提供基本服务(包括创建、传输、执行等)。Agent执行平台存在于系统网络的每个节点中,各节点处均提供API(Application Program Interface)接口,用于
9、接收、发送Mobile Agent类实例。每个实体具有唯一的身份,通过Object识别。其中,ID为节点序列号,name为节点物理名。Object标识中的ID序列号以及物理名Name是固定的。在每个节点中包括一个数据库用于存放参数。 1.2 多等级移动Agent系统安全需求多等级移动Agent系统所面临的安全问题包括以下三方面:如何确保系统中各级节点按照等级划分规则进行通信;如何保护主机不受来自恶意移动Agent的攻击;如何保护移动Agent免受来自恶意主机的攻击。所以在多等级移动Agent系统通信中,需要制定完善的通信规则;需要对通信双方的身份进行认证,包括Agent收发双方主体的认证、收发
10、双方的非否认性认证;需要确保传输数据的保密性以及对传输数据的完整性进行认证。2 多等级移动Agent系统安全机制框架针对多等级移动Agent系统中存在的安全问题,所建立的安全机制主要包括以下几部分:(1)制定网络系统中不同等级节点之间的通信规则。(2)认证机制。包括:收发双方主体的身份认证、收发双方的非否认性认证、Agent传输数据完整性认证。根据系统的特点,对移动Agent收发双方身份的识别及行为的非否认性认证,采用不基于可信第三方的,共享密钥和数字签名相结合的认证方法。对于移动Agent自身的完整性认证,使用哈希函数来实现,发送方将Agent携带的代码及数据M和生成的哈希值H(M)一起发送
11、给接收方,接收方对收到的消息通过使用哈希函数生成杂凑码H(M),然后与接受到的H(M)比较,即可判断出数据是否完整6。(3)加密算法。通过加密算法可以保证移动Agent免受来自恶意主机的攻击,保证移动Agent所携带数据的安全。3 多等级移动Agent系统安全机制的设计与实现3.1 系统中各节点权限等级划分及通信规则以银行系统中的三级移动 Agent网络系统为例,系统中各节点权限等级划分及通信规则如下:(1)网络系统中节点的等级划分。系统划分为三个等级,分别为:一级:最高银行节点即中央节点,称为信任根;二级:次高银行节点,称为二级信任根;三级:三级银行节点,称为叶节点。(2)通信方式。各级节点
12、之间的通信方式定义如下:等级高的节点可以通过移动Agent向它的次级以及更低级的节点进行指令下达、状态监控、数据收集等操作;低级节点只可以向高级节点报自己的状态,而无权获取高级节点或同级节点中的数据。3.2 身份认证过程(1)身份注册各级节点首先在中央节点中注册,中央节点确认各注册节点的身份后,确定各节点在系统网络中的逻辑等级,然后向各级节点颁发属性证书(AC),如图3所示。该证书包含了用于划分各级节点逻辑等级的等级标识符(GI);用于识别节点身份的Object标识:物理名(Name)、序列号ID。(2)共享密钥生成图4 共享密钥生成过程共享密钥S生成包括:初始密钥生成和密钥再生成两个过程。如
13、图4所示。图3 身份注册初始密钥生成是指,系统网络初始化时,两节点的共享密钥的生成过程。此时,网络中的所有两个节点的共享密钥,均由中央节点生成。密钥再生成是指,密钥要定期更新,在更新过程中两节点所共享的密钥由等级高的节点生成。(3)证书发放中央节点给所有注册过的节点,按等级的不同颁发证书。证书包括:等级标识符GI、身份标识Object以及两节点的共享密钥S。如图5所示,中央节点A将所有节点划分了三级。节点B、D为二级,节点C、E、F为三级。在逻辑上节点C、E隶属于节点B;节点F隶属于节点D。图5 三级网络系统逻辑图ABCEFD中央节点向各节点颁发证书规则如下:A节点证书包括的内容有身份标识:O
14、bject-A,Object-B,Object-C,Object-D,Object-E,Object-F;共享密钥:SAB,SAC,S AD,S AE,S AF 。B节点证书包括的内容有身份标识:Object-A,Object-B,Object-C,Object-E;共享密钥:SAB,SBC,S BE 。C节点证书包括的内容有身份标识:Object-A,Object-B,Object-C;共享密钥:SAC,S BC 。D节点证书包括的内容有身份标识:Object-A,Object-D,Object-F;共享密钥:SAD,S DF 。E节点证书包括的内容有身份标识:Object-A,Object
15、-B,Object-E;共享密钥:SAE,,SBE 。F节点证书包括的内容有身份标识:Object-A,Object-D,Object-F;共享密钥:SAF,S DF 。(4)证书管理中央节点将证书发放到各节点后,证书被存放入证书目录库Data Base中。管理员通过管理权限进行调取证书、定期更新证书等相关操作。3.3 数据加密算法移动Agent在网络的节点间迁移时,所携带数据的安全通过加密算法保证。对于Agent携带的数据,采用3DES算法进行加密,3DES是DES的一个改进加强版本78。DES ( Data Encryption Standard) 是一个世界加密标准,DES的唯一密码学缺
16、点就是密钥长度相对比较短,为了克服此缺陷,在DES算法基础上提出了3DES算法,即三重DES。该算法将原来的一步DES加密改为三步DES加密,每步采用不同的密钥K1、K2、K3,每个密钥有56 bits。K1、K2、K3决定了算法的安全性,由于三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是非常安全的。设Ek(.)和Dk(.)代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,3DES加解密过程可以表示为: 3DES加密过程为:C=Ek3(Dk2(Ek1(P) 3DES解密过程为:P=Dk1(EK2(Dk3(C)3.
17、4 移动Agent在系统节点间迁移过程 在多等级移动Agent系统中,各级节点间的通信是通过移动Agent在各级节点中迁移的形式来实现的。设在中央节点A中,由Agent服务器创建了一个用于数据搜集的移动Agent,Agent携带命令代码M由节点A迁移到节点B,迁移框图如图6所示。图6 迁移框图 在编程实现时,在Agent系统中为实现迁移过程中各个模块的功能,Agent服务器创建了与之相对应的多种Agent,每种Agent分别包含多个类实例,用于实现不同的功能。如框图7所示,框图中包含Manage Agent,Transfer Agent,Execute Agent,Feedback Agent
18、四种Agent类型。(1)Manage AgentManage Agent包括Create Key Class,Create IC Class,Encrypt/Decrypt Class,Hash Class,Identify Class几个类实例。分别用于生成加密密钥Key,生成认证码IC,对数据加/解密,哈希变换以及身份识别。认证码IC的生成由Create Key Class类生成,IC=H(IDASAB),用来对Agent进行签名,实现身份认证的作用。对Agent携带数据的哈希变换由Hash Class类完成,哈希值W= H(M),用于判断数据的完整性。3DES算法的加密密钥Key由Cr
19、eate Key Class类生成,具体过程如下:首先生成K0= H(IDASAB),K1= H(IDA)。然后将K0用下面方法进行拆分,得到另两把密钥K2和K3。将K0用DES中生成子密钥的方法,生成16个子密钥,每个子密钥是长度为48的二进制串,取每个子密钥字符串的前28位,将这16个长度为28的二进制字符串进行拼接,这样就得到了长度为1628448的二进制串,将这个二进制串分成左右长度相等的两段,每段的长度就是224,然后再将长度为224的每段二进制串分成4等分,每段逐一进行异或操作,得到长度56的密钥。从而产生了两个新的密钥K2和K3。图7 Agent迁移实现框图Agent到达目的节点
20、B后,对Agent发出方的身份认证由Identify Class类完成。具体实现如下: 节点B调用保存的ID值以及共享密钥,计算IC= H(IDXSn)的值(X=A,D,E;Sn = SAB,SBD,SBE),然后判断IC是否存在于接收到的packet字符串中。若存在,则根据算出的IC值做进一步判断,判断Agent来自哪个节点。若不存在,则程序终止,销毁Agent。(2)Transfer AgentTransfer Agent的作用是将经过加密、签名后的命令代码数据packet由A节点携带到B节点,packet= IC|E(M)|H(M)。(3)Execute AgentExecute Age
21、nt的作用是在目的节点B主机中执行由移动Agent所携带的命令代码,完成节点A所派发的任务。(4)Feedback AgentFeedback Agent的作用是生成反馈码Feedback Code(FC),FC= H(IDBSAB),并将反馈码发送到A节点。节点A收到后反馈信息后通过Manage Agent中的Identify Class类断出反馈节点的身份,完成双向认证。3.5 安全机制应用实例在三级的Agent系统中,设A节点为中央节点,B为二级节点。二者参数设置如下:表1 参数表节点A节点BIP192.168.156.109192.168.156.110NameA_DIANB_DIAN
22、ID10001001SAB30523052运行环境:硬件:AMD Athlon(tm)64x2 Dual Core Processor 4400+ 2.29GHz,896MB软件: Windows XP SP2, Python 2.5程序在开始运行时会开启一个监听线程,选定一个端口绑定所有IP地址,等待其它节点来对其进行连接,如图8所示。(注,图中的蓝色字体为程序显示的结果)图8 监听线程设Agent携带messageplease send your message to me,由节点A迁移到节点B。启动功能Agent分别计算以下参数:加密密钥:K0= H(IDASAB),程序运行结果为:K1
23、= H(IDA),程序运行结果为:认证码:IC=H(IDASAB),程序运行结果为:哈希值:W= H(M),程序运行结果为:生成密文:E(M),程序运行结果为:Agent携带packet= IC|E(M)|H(M)由节点A迁移到节点B,在B节点中的运行结果如下:表明Agent迁移成功。如果有一个非本系统的节点主机C(IP:192.168.156.100),试图伪装成本系统节点进入,则系统会检测到,并报警。如下所示:4 安全性能分析本方案对Agent所携带的数据进行加密时所使用的3DES算法,在对付强力攻击时是非常安全的;加密时所使用的密钥由H(ID)和H(IDS)函数生成,而这两个参数只有通信
24、节点双方拥有,保证了移动Agent通信安全。双向身份认证通过对Agent进行签名实现,因为共享密钥只有通信双方所共有,各节点中ID值、共享密钥分配规则保证了各级节点之间不会出现假冒其他节点情况的发生,保证了移动Agent的平台,不会受到恶意Agent 或其他主机的攻击。在节点平台中,为实现其可视化操作和监控,构建了一个系统主操作图形界面,作为可视化的移动Agent平台,在该界面基础上Agent实现各项功能。如下图9所示,界面划分为三块区域,分别对应于监听线程,检测线程以及平台状况的消息显示。程序在开始运行时会开启一个监听线程,选定一个端口绑定所有IP地址,等待其它节点来对其进行连接。安全机制与
25、可视化界面中的监控线程相结合,使得移动Agent在网络节点中迁移时更加安全。此外,这种机制在认证过程中没有基于可信任的第三方参与,减少了系统设计复杂性,所以实际应用中更加简单。图9 Mobile Agent可视化平台 5 结束语针对节点间存在等级的Agent系统中存在的安全问题,提出的等级的移动Agent系统安全机制,目前已用脚本语言Python编程实现。实例表明,安全机制具有针对性和可操作性,能够有效保证移动Agent在多等级的网络系统各节点间迁移时的安全。参考文献:1 Kozt David,Gray R S. Mobile Agents and the Future of the Inte
26、rnet.ACM Operating Systems Review,1999,33(3):7-13.2 Michacel R Genesereth, Stevene P Retehpel. Software Agents J.Communication of the ACM, 1994:50-31.3 Greenberg M S Byington L C Harper D G. Mobile Agents and SecurityJ.IEEE Communications Magazine 1998, 36(7):76 -85.4 W Farmer,J Guttman, V Swarup. S
27、ecurity for mobile agents:Authentication and stateappraisa1. In:Proc of the 4th European Symposium on Research in Computer Security. Rome;Springer-Verlag,1996.118-130.5 Tan Xiang, Gu Yuqing, A Survey of Security Research in Mobile Agent Systems J. Journal of Computer Research and Development.2003, 4
28、0(7):984-992(in chinese).谭湘, 顾毓清. 移动Agent系统安全性研究综述J.计算机研究与发展, 2003, 40 (7):984-992.6 Abdel-Azeem E., Seireg R., Shaheen S.I. Cryptographic security evaluation of MD4 hash function J. Radio Science Conference, 1996. NRSC96. Thirteenth National19-21 March 1996 Page(s):345-354.7 Gu Dawu. On the Theory
29、and Some Key Techniques of Block CiphersD.xidian university.xian 1998.18-24(in chinese).谷大武.分组密码理论与某些关键技术研究D.西安电子科技大学,西安,1998.18-24.8 E.Biham and A.Shamir, Differentialer cryptanalysis of DES-like cryptosystems, in Proceedings of CryPto90(A.Menezesand5.A.Vanstone,eds.),no.537 in Lecture Notes in Computer Science, Springer -Verlag,1990.Page.2-21.9