




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于移动agent的加密传输系统
指导教师:李祥教授答辩人:余滨1国家计算机网络与信息安全管理中心主要内容立题依据与背景主要工作与创新点总结进一步研究致谢2国家计算机网络与信息安全管理中心一、立题依据与背景随着因特网的普及,各种网络应用应运而生,与此同时提出了对网络安全的需求,为了确保在网络中传递数据的机密性与完整性,通常采用的方法是使用数据加密技术来实现。3国家计算机网络与信息安全管理中心一、立题依据与背景(续)数据加密技术:4国家计算机网络与信息安全管理中心一、立题依据与背景(续)现代密码算法通常是公开的,因此保障数据的安全性则主要依赖于其密钥的安全性。一旦密钥泄露,数据加密的安全性将受到极大的威胁。因此如何保证密钥的安全保管与分发是整个网络安全的中心议题。
5国家计算机网络与信息安全管理中心目前在密钥生成、保管、分发等管理上通常是采用引入一个可信的第三方作为中间人来进行。
KDCAliceBobPk{A,B}PA{k,PB(A,k)}{A,PB(A,k)}密钥分配中心6国家计算机网络与信息安全管理中心一、立题依据与背景(续)一方面由于在通信双方之间引入了一个第三方,这样势必增加更多的通信量,从而在网络负荷、网络运营成本、网络运行效率等方面都将受到一定的影响;另一方面,作为可信的第三方自身,由于其负责对密钥进行管理与分发,所以它的安全性就是整个系统安全性的瓶颈,虽然目前也有相当的技术来保障其能一定程度上安全运行,但,任何系统都不是十分完善的,一旦它的安全性遭到破坏,几乎所有相关的用户都会受到影响,从而使得网络安全显得相当脆弱。存在的问题:7国家计算机网络与信息安全管理中心一、立题依据与背景(续)提出基于移动agent的数据加密传输方法:进行数据通信的双方只需要利用移动agent来传递密钥,移动agent在派遣出去完成相关任务之时即携带加密密钥;当其到达远程主机后,该agent便开始执行相关任务,之后,它使用携带的密钥对采集到的数据进行加密,最后将生成的密文传回源主机,整个过程无须事先引入可信第三方来分发密钥。从而减少了网络负荷,降低了网络成本。解决方案:8国家计算机网络与信息安全管理中心二、主要工作与创新点1、对agent的相关内容进行了研究,比较了移动agent技术与目前传统的分布式计算模式之间的异同,阐述了移动agent技术应用于分布式系统中的优点;讨论了移动agent现有的开发系统和采用的开发语言,以及对agent的标准化研究;2、研究了移动agent系统的一个开发平台——IBMaglet,包括该平台的安装、配置以及aglet的设计要素和开发模式;3、提出了不依赖于可信第三方的密钥分配方法,并使用IBMAglet开发平台实现了该数据加密传输系统,9国家计算机网络与信息安全管理中心1、Agent概述:软件agent移动agent现有分布式计算模式分析移动agent开发语言各类移动agent平台移动agent的标准化研究10国家计算机网络与信息安全管理中心(1)软件agent:软件Agent技术的诞生和发展是网络技术和人工智能相结合的产物。软件分布式的目标是要将问题进行分解,由多个实现了知识共享的软件模块或网络节点来共同完成问题求解,而智能化的目标是要在智能主机之间实现智能行为的协调,两者的结合就产生了软件Agent的概念。人们普通认为:软件Agent是运行于动态环境的、具有高度自治能力的实体,它能够接受其它实体的委托并为之服务。其具备如下几个典型特征:
11国家计算机网络与信息安全管理中心(1)软件agent:(续)软件agent的特点:自治性(Autonomy)
软件Agent在运行过程中不直接由人或其它主体控制,它能在没有与环境相互作用的情况下自主执行任务,对自己的行为和内部状态有一定的控制权。自治性是软件Agent区别于普通软件程序的基本特征。响应性(Reactivity)
软件Agent能对来自环境的信息做出适当的响应,它能感知所处的环境,并能通过自己的行为改变环境。主动性(Proactivity)
传统应用程序接受用户指令被动执行,而软件Agent不仅能对环境变化做出反应,而且更重要的是能在特定情况下采取主动行为。推理性(Reasoning)
软件Agent可根据已有的知识和经验,以理性的方式进行推理。软件Agent的智能由三个主要部件来完成,即内部知识库、自适应能力以及基于知识库的推理能力。
12国家计算机网络与信息安全管理中心(2)移动agent:随着Internet应用的逐步深入,特别是信息搜索、分布式计算以及电子商务的蓬勃发展,人们越来越希望在整个Internet范围内获得最佳的服务,渴望将整个网络虚拟成为一个整体,使软件Agent能够在整个网络中自由移动,移动Agent的概念随即孕育而生。移动Agent是一类特殊的软件Agent,它除了具有软件Agent的基本特性——自治性、响应性、主动性和推理性外,还具有移动性,13国家计算机网络与信息安全管理中心(2)移动agent:(续)移动Agent指一个能在异构网络环境中自主地从一台主机迁移到另一台主机,并可与其它Agent或资源交互的软件实体。14国家计算机网络与信息安全管理中心(3)现有分布式计算模式分析:client/server模式:这是目前使用最广泛的一种分布式计算模式。
当客户端需要存取某些资源时,会向拥有这些资源的服务器发出RPC请求,服务器收到该请求后便会执行这些程序,执行完毕后再将结果传给客户端。RPC技术是主从模式常采用的方式,其缺点在于:RPC技术必须保证网络的持续连接才能完成工作。数据通过网络不间断的传输,造成网络流量的负荷。
另外,在不同平台实现RPC的方式与机制也不同,对程序员而言会增加编程的难度,而且当应用程序需要更新或扩充时,客户端和服务器端的程序都必须作相应的改动,不但耗费成本,系统也不容易维护,使得系统不易扩展。
Client
ServerKnow-howResources15国家计算机网络与信息安全管理中心(3)现有分布式计算模式分析:(续)code-on-demand模式:该模式下,服务器只拥有know-how(code),而客户端则拥有资源(resources)。即服务器端提供客户端所需的程序代码,当客户端从服务器端取得所需的程序代码之后,便在客户端执行,同时存取本地资源。16国家计算机网络与信息安全管理中心(3)现有分布式计算模式分析:(续)RemoteEvaluation模式:该模式下,其代码移动方向正好与Code-on-demand相反,通过在本地端编制一个Subprogram,将该程序从本地端发送到远程机器上,并在远程执行,最终将结果回送给本地端应用程序。17国家计算机网络与信息安全管理中心(3)现有分布式计算模式分析:(续)移动agent模式
:Know-how(code)和资源(resources)不再只是某一部主机的能力,而是网络上所有主机皆有的能力,所以这种模型能最大程度的利用所有主机的处理能力和资源。移动agent为了完成某项任务,必须迁移到网络中的多个主机,去存取当地提供的服务,在这里移动agent不仅迁移程序代码,还包括了自身的状态,并且这种迁移的行为完全是自主的,也就是移动agent将根据自身的状态决定是否迁移到其他地点。
AgentKnow-howAgentKnow-howNetworkHostHosthosthostresourceresource18国家计算机网络与信息安全管理中心(3)现有分布式计算模式分析:(续)Know-how:可执行的代码
Resources:代码执行时的输入输出
Processor:包含计算状态的抽象的处理器
GhezziandVigna’sclassificationofmobilecodeparadigms19国家计算机网络与信息安全管理中心(3)现有分布式计算模式分析:(续)从表中可以看出,各种分布式技术中除Client/Server模式外,其他几种计算模式都属于代码移动的范畴,但以移动agent模式最为灵活,它可以根据资源所在的位置自主的决定移动的目的地,在移动时携带其代码和执行状态一同迁移到目标主机,并在那儿恢复执行,在远程机器上直接对资源进行处理。这种方式下,更能有效的利用网络中各主机的资源,并能节省网络带宽,避免大量的网络传输。20国家计算机网络与信息安全管理中心(4)开发语言:由于移动agent是将Internet作为计算平台,因此,它常常会在不同的计算环境中运行;从而使得跨平台成为移动Agent技术必须首先考虑的问题。移动agent的实现语言可以采用编译型语言,也可以采用解释型语言。从支持移动、支持异构性、执行效率和安全性等多方面考虑,几乎所有的移动Agent系统都采用解释型语言。由于Java技术的快速发展和其具有良好的安全性和较高的执行效率,因而被大多数移动agent系统所采用。21国家计算机网络与信息安全管理中心(5)各类移动agent平台:自从1995年GeneralMagic公司推出Telescript系统并系统阐述了移动agent技术之后,移动agent技术在世界范围内引起了学术界和企业界的广泛关注,掀起了移动agent的研究和应用开发热潮,例如,GeneralMagic公司的Odyssey、IBM公司的Aglets、ObjectSpace公司的Voyager、Mitsubishi公司的Concordia、DartMouth学院的D’Agent、MIT的ROMA、德国斯图加特大学的Mole,以及国内有关研究单位在智能Agent技术方面的研究工作等。22国家计算机网络与信息安全管理中心(6)标准化研究:随着Agent技术研究的不断深入,可以预见来自不同领域的研究人员将开发出越来越多基于Agent的系统。如果没有相应的标准作为指导,这些系统无疑将无法进行良好的沟通和互操作,从而形成一个个孤立的系统。因此,Crystaliz公司、GeneralMagic公司、GMD公司、IBM公司以及OpenGroup等单位共同提出了移动agent的标准化草案:MobileAgentSystemInteroperabilityFacility(MASIF);智能agent基金会FIPA(FoundationforIntelligentPhysicalAgent)是研究智能agent的最大的国际化组织,自1997年起,陆续推出了众多的智能agent标准化草案。23国家计算机网络与信息安全管理中心2、移动agent开发平台—IBMAglet介绍Aglet是由IBM东京实验室开发的基于Java移动agent系统,其思想源于JavaApplet。目前Aglet技术已成为开放源码项目。
Aglet基础环境主要分通信层和Aglet运行环境两层,通信层负责aglet的传输和接收,以及aglet之间消息的发送和接收,运行环境层提供aglet创建、管理和移动的基本功能,包括持久化管理、安全管理、缓冲管理以及引用管理和废区回收。Aglet运行环境层的对象模型如图所示:AgletProxyAgletAgletProxyAgletMessageAgletContext24国家计算机网络与信息安全管理中心2、移动agent开发平台—IBMAglet介绍(续)Aglet:是一个可移动的Java对象,可以自主访问支持Aglet的主机。AgletProxy:是Aglet的包装类,封装了Aglet方法和自身信息。借助Proxy,Aglets实现了agent之间的方法调用、通信寻址和安全管理。AgletContext:是Aglet工作的场所和执行的环境,负责aglet的维护和管理。一部主机可以放置多个的contexts。AgletProxyAgletAgletProxyAgletMessageAgletContext25国家计算机网络与信息安全管理中心IBMAglet的运行支撑环境移动代理移动代理移动代理通信通信Aglet虚拟机TahitiLinuxJava虚拟机Java虚拟机WindowsXJava虚拟机SolarisJava虚拟机移动代理运行的支持环境Linux操作系统Solaris操作系统WindowsX系列操作系统操作系统……26国家计算机网络与信息安全管理中心Aglet系统架构Aglet的系统架构主要分为四个阶段,首先当一个正在执行的
aglet想要将自己外送到远端时,会对
AgletRuntime层发出请求,然后
AgletRuntime层把aglet的状态信息与程序代码转成序列化的字节数组;接着若是外送的请求成功时,系统会将Aglet的执行动作结束,然后将字节数组传送至ATCI(AgentTransportandCommunicationInterface)层处理,此层提供使用ATP(AgentTransferProtocol)
的界面;之后,系统会将字节数组附上相关的系统信息,如系统名称以及aglet的id等,并以比特流方式通过网络传至远端机。远端机利用ATCI层提供的ATP接口接收到传来的字节数组及系统信息,然后AgletRuntime层对字节数组反串行化,得到Aglet的状态信息与代码,此时Aglet便可在远端机上执行了。
27国家计算机网络与信息安全管理中心Aglet的生命周期Creation:在context中创建aglet,并赋予其一个唯一的identifier,同时做初始化(initialized)的工作,初始化完立刻开始执行;
Cloning:是创建aglet的第二种方法,即复制当前aglet的一个副本,被复制的aglet会被赋予一个新的identifier,并启动另一个新的线程来重新开始执行;
Dispatching:派遣一个aglet从一个context到另一个context,必须先将aglet从原有的context中移除,再置入新的context中,并且重新开始执行,可以认为我们将aglet推至(“push”)到新的context中重新开始执行;
Retraction:执行召回的动作,它将aglet从正在执行(远端)的context中召回来(“pull”),在现有的context中重新开始执行;
Deactivation:将aglet暂时停止执行,并将aglet的状态序列化(serialized)后存放在存储设备(disk)中;
Activation:在同一个context中将deactivatedaglet恢复执行
Disposal:中止aglet的执行,并将其自现有的context中移除。
28国家计算机网络与信息安全管理中心Aglet的生命周期(续)AgletAglet二级存储器派遣收回去活激活复制撤消创建Aglet类文件ContextAContextB29国家计算机网络与信息安全管理中心Aglet的运行界面30国家计算机网络与信息安全管理中心3、基于移动agent的加密传输系统系统的设计样式:本系统采用了Aglet设计样式:任务(task)中的主从模式(master-slave)来实现。在这种模式中,参与者至少有两个:一个是由本地机器产生的主agent(master),和一个由主agent创建并派遣至远程执行任务的子agent(slave)。采取master-slave模式,通常是由于一个任务需要被分割在两台计算机间才能完成。这个计算过程一般是并行进行的,即当子agent离开去完成被分派的任务时,主agent在本地仍然继续它的工作。当在远程的子agent完成特定任务后,它会将执行结果传回给主agent。在本系统中的主agent是——MyMaster,子agent是——MySlave。31国家计算机网络与信息安全管理中心3、基于移动agent的加密传输系统(续)数据加密传输的工作流程:首先由LocalHost创建一个MyMaster,MyMaster首先在本地生成一对加解密密钥,然后创建一个子agent——MySlave,并将加密密钥交给MySlave,然后将MySlave通过网络(Network)派遣(dispatch)到RemoteHost,当MySlave到达RemoteHost后,就开始执行任务:首先在本地读取相关资料(data),然后将该资料用携带的加密密钥加密,再将经过加密生成的资料密文形式,通过网络传回给LocalHost上的MyMaster,最后将自己销毁(dispose)。当MyMaster接收到传回的密文形式的资料(data)后,用之前产生的对应的解密密钥进行解密,即可得资料的明文形式。整个流程如下图所示:32国家计算机网络与信息安全管理中心3、基于移动agent的加密传输系统(续)系统工作流程图:33国家计算机网络与信息安全管理中心3、基于移动agent的加密传输系统(续)MyMaster的任务主要有三个:
1、在localhost上,产生加/解密的密钥对——pbkey和prkey;
2、创建子agent——MySlave
;3、将MySlave从远程传回的密文数据解密。主agent的设计:子agent的设计:MySlave的工作如下:
1、接收来自主agent的加密密钥pbkey,并被派遣至remosthost上执行任务;2、在remosthost上进行数据采集;
3、将采集到的数据加密后,传回给源主机上的主agent。34国家计算机网络与信息安全管理中心3、基于移动agent的加密传输系统(续)在aglet类中的run()方法中进行。Run()方法表示aglet主要线程的入口点。每当一个aglet到达一个新的aglet主机时,run()方法都会被调用.KeyPairGeneratorkpg=KeyPairGenerator.getInstance("RSA");kpg.initialize(1024);KeyPairkp=kpg.genKeyPair();
PublicKeypbkey=kp.getPublic();
PrivateKeyprkey=kp.getPrivate();说明:用KeyPairGenerator对象中的静态方法getInstance()来指定相应的加密算法;initialize()方法初始化RSA算法中所用的模的位数为1024,使用方法genKeyPair()生成密钥对,分别用getPublic()和getPrivate()取得相应的加密密钥和解密密钥。
1、创建密钥对:35国家计算机网络与信息安全管理中心3、基于移动agent的加密传输系统(续)2、创建子agent:在aglet类中的run()方法中进行:Stringhost=getAgletContext().getHostingURL().toString();URLdestination=newURL(“atp://yubin:9000”);AgletProxythisProxy=getAgletContext().getAgletProxy(getAgletID());getAgletContext().createAglet(getCodeBase(),“MySlave”,args);说明:首先使用getHostingURL()方法获得当前执行环境的URL;接着创建一个URL对象,指定子agent将被派往的目标主机地址,通过在getAgletProxy()方法中指定当前aglet即主agent的id来获得其代理;方法createAglet()用于创建子agent,其中:getCodeBase()用来获得包含aglet类代码所在的位置,对象数组args包含了将要传递给子agent(MySlave)的三个消息对象:目标机器地址destination、主agent的代理thisProxy和加密密钥pbk。36国家计算机网络与信息安全管理中心3、基于移动agent的加密传输系统(续)使用aglet类中的方法handleMessage(Messagemsg)来处理从子agent那里传回的消息,主要工作如下:使用Cipher类中的方法getInstance()来指定解密算法:Ciphercp1=Cipher.getInstance("RSA");
使用Cipher类中的init()方法进行初始化操作,cp1.init(Cipher.DECRYPT_MODE,prk);调用Cipher类的方法doFinal()并将要解密的密文作为输入参数:byte[]ptext1=cp1.doFinal(ctext);
3、解密传回的数据:37国家计算机网络与信息安全管理中心3、基于移动agent的加密传输系统(续)当子agent被创建时会首先调用方法:onCreation(Objectargs){}并通过输入参数args得到主agent传来的三个消息对象:目标机器地址destination、主agent的代理thisProxy和加密密钥pbk。接着将自身派至目标主机dispatch(destination);1、接收来自主agent的消息:38国家计算机网络与信息安全管理中心3、基于移动agent的加密传输系统(续)用addMobilityListener()监听移动事件的发生,当到达新主机后,就会调用onArrival(),它也是aglet的一个方法,这里通过重载该方法,给出子agent在目标主机上须完成的任务,即调用自定义的方法dotask()来实现:master.sendMessage(newMessage("Result",doTask()));其中master里存放了主agent的代理,子agent正是通过它来和主agent沟通的。而方法dotask()返回的结果被作为方法sendMessage()的参数数传回给主agent。接着通过执行自定义的dotask()方法来实现在remosthost上的本地化数据采集和数据加密,最后将加密后的数据传回给主agent的操作。2&3、在目标机器上工作:39国家计算机网络与信息安全管理中心3、基于移动agent的加密传输系统(续)本系统采用基于非对称密钥的移动agent来进行数据加密传输,由主agent在本地机器上产生一对密钥:一个是用于加密的公开密钥;另一个是用于解密的私有密钥。基于安全的考虑,前者将由子agent携带到远程机器上,用于数据加密;而后者则由主agent保管,被存放在本地机器上,不会在网络中传递。当子ag
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 省级医学课题申报书范例
- 出售游艇别墅合同范本
- 原房主合同范例
- 北京租赁居间合同范本
- 课题立项申报书小学
- 人像摄影肖像合同范本
- 个人出租土地合同范本
- 【复习大串讲】【中职专用】高二语文上学期期末综合测试题(五)(职业模块)(原卷版)
- 二手办公用房买卖合同范本
- 养殖基地出售马匹合同范本
- 基于主题意义探究的小学英语单元整体作业设计 论文
- 新概念英语第2册课文word版
- 护理技术操作考核评分标准患者约束法
- 教师教学质量评估表(自评互评生评表)
- 重庆自然博物馆
- 外科护理(高职护理专业)PPT完整全套教学课件
- 输血与创伤性凝血病
- 消化科临床重点专科
- 人工挖孔桩爆破技术方案
- 2023年牡丹江大学单招面试题库及答案解析
- 手机号码归属地
评论
0/150
提交评论