基于移动agent的加密传输系统指导教师:李祥教授答辩人:余滨贵州大学计算机软件与理论研究所2主要内容立题依据与背景主要工作与创新点总结进一步研究致谢贵州大学计算机软件与理论研究所3一、立题依据与背景随着因特网的普及,各种网络应用应运而生,与此同时提出了对网络安全的需求,为了确保在网络中传递数据的机密性与完整性,通常采用的方法是使用数据加密技术来实现。贵州大学计算机软件与理论研究所4一、立题依据与背景(续)数据加密技术:贵州大学计算机软件与理论研究所5一、立题依据与背景(续)现代密码算法通常是公开的,因此保障数据的安全性则主要依赖于其密钥的安全性。一旦密钥泄露,数据加密的安全性将受到极大的威胁。因此如何保证密钥的安全保管与分发是整个网络安全的中心议题。贵州大学计算机软件与理论研究所6目前在密钥生成、保管、分发等管理上通常是采用引入一个可信的第三方作为中间人来进行。KDCAliceBobPk{A,B}PA{k,PB(A,k)}{A,PB(A,k)}密钥分配中心贵州大学计算机软件与理论研究所7一、立题依据与背景(续)一方面由于在通信双方之间引入了一个第三方,这样势必增加更多的通信量,从而在网络负荷、网络运营成本、网络运行效率等方面都将受到一定的影响;另一方面,作为可信的第三方自身,由于其负责对密钥进行管理与分发,所以它的安全性就是整个系统安全性的瓶颈,虽然目前也有相当的技术来保障其能一定程度上安全运行,但,任何系统都不是十分完善的,一旦它的安全性遭到破坏,几乎所有相关的用户都会受到影响,从而使得网络安全显得相当脆弱。存在的问题:贵州大学计算机软件与理论研究所8一、立题依据与背景(续)提出基于移动agent的数据加密传输方法:–进行数据通信的双方只需要利用移动agent来传递密钥,移动agent在派遣出去完成相关任务之时即携带加密密钥;当其到达远程主机后,该agent便开始执行相关任务,之后,它使用携带的密钥对采集到的数据进行加密,最后将生成的密文传回源主机,整个过程无须事先引入可信第三方来分发密钥。从而减少了网络负荷,降低了网络成本。解决方案:贵州大学计算机软件与理论研究所9二、主要工作与创新点1、对agent的相关内容进行了研究,比较了移动agent技术与目前传统的分布式计算模式之间的异同,阐述了移动agent技术应用于分布式系统中的优点;讨论了移动agent现有的开发系统和采用的开发语言,以及对agent的标准化研究;2、研究了移动agent系统的一个开发平台——IBMaglet,包括该平台的安装、配置以及aglet的设计要素和开发模式;3、提出了不依赖于可信第三方的密钥分配方法,并使用IBMAglet开发平台实现了该数据加密传输系统,贵州大学计算机软件与理论研究所101、Agent概述:软件agent移动agent现有分布式计算模式分析移动agent开发语言各类移动agent平台移动agent的标准化研究贵州大学计算机软件与理论研究所11(1)软件agent:软件Agent技术的诞生和发展是网络技术和人工智能相结合的产物。软件分布式的目标是要将问题进行分解,由多个实现了知识共享的软件模块或网络节点来共同完成问题求解,而智能化的目标是要在智能主机之间实现智能行为的协调,两者的结合就产生了软件Agent的概念。人们普通认为:软件Agent是运行于动态环境的、具有高度自治能力的实体,它能够接受其它实体的委托并为之服务。其具备如下几个典型特征:贵州大学计算机软件与理论研究所12(1)软件agent:(续)软件agent的特点:自治性(Autonomy)软件Agent在运行过程中不直接由人或其它主体控制,它能在没有与环境相互作用的情况下自主执行任务,对自己的行为和内部状态有一定的控制权。自治性是软件Agent区别于普通软件程序的基本特征。响应性(Reactivity)软件Agent能对来自环境的信息做出适当的响应,它能感知所处的环境,并能通过自己的行为改变环境。主动性(Proactivity)传统应用程序接受用户指令被动执行,而软件Agent不仅能对环境变化做出反应,而且更重要的是能在特定情况下采取主动行为。推理性(Reasoning)软件Agent可根据已有的知识和经验,以理性的方式进行推理。软件Agent的智能由三个主要部件来完成,即内部知识库、自适应能力以及基于知识库的推理能力。贵州大学计算机软件与理论研究所13(2)移动agent:随着Internet应用的逐步深入,特别是信息搜索、分布式计算以及电子商务的蓬勃发展,人们越来越希望在整个Internet范围内获得最佳的服务,渴望将整个网络虚拟成为一个整体,使软件Agent能够在整个网络中自由移动,移动Agent的概念随即孕育而生。移动Agent是一类特殊的软件Agent,它除了具有软件Agent的基本特性——自治性、响应性、主动性和推理性外,还具有移动性,贵州大学计算机软件与理论研究所14(2)移动agent:(续)移动Agent指一个能在异构网络环境中自主地从一台主机迁移到另一台主机,并可与其它Agent或资源交互的软件实体。贵州大学计算机软件与理论研究所15(3)现有分布式计算模式分析:client/server模式:这是目前使用最广泛的一种分布式计算模式。当客户端需要存取某些资源时,会向拥有这些资源的服务器发出RPC请求,服务器收到该请求后便会执行这些程序,执行完毕后再将结果传给客户端。RPC技术是主从模式常采用的方式,其缺点在于:RPC技术必须保证网络的持续连接才能完成工作。数据通过网络不间断的传输,造成网络流量的负荷。另外,在不同平台实现RPC的方式与机制也不同,对程序员而言会增加编程的难度,而且当应用程序需要更新或扩充时,客户端和服务器端的程序都必须作相应的改动,不但耗费成本,系统也不容易维护,使得系统不易扩展。ClientServerKnow-howResources贵州大学计算机软件与理论研究所16(3)现有分布式计算模式分析:(续)code-on-demand模式:该模式下,服务器只拥有know-how(code),而客户端则拥有资源(resources)。即服务器端提供客户端所需的程序代码,当客户端从服务器端取得所需的程序代码之后,便在客户端执行,同时存取本地资源。贵州大学计算机软件与理论研究所17(3)现有分布式计算模式分析:(续)RemoteEvaluation模式:该模式下,其代码移动方向正好与Code-on-demand相反,通过在本地端编制一个Subprogram,将该程序从本地端发送到远程机器上,并在远程执行,最终将结果回送给本地端应用程序。贵州大学计算机软件与理论研究所18(3)现有分布式计算模式分析:(续)移动agent模式:Know-how(code)和资源(resources)不再只是某一部主机的能力,而是网络上所有主机皆有的能力,所以这种模型能最大程度的利用所有主机的处理能力和资源。移动agent为了完成某项任务,必须迁移到网络中的多个主机,去存取当地提供的服务,在这里移动agent不仅迁移程序代码,还包括了自身的状态,并且这种迁移的行为完全是自主的,也就是移动agent将根据自身的状态决定是否迁移到其他地点。AgentKnow-howAgentKnow-howNetworkHostHosthosthostresourceresource贵州大学计算机软件与理论研究所19(3)现有分布式计算模式分析:(续)ParadigmLocalsideRemotesideComputationtakesplaceatKnow-howProcessorClient/server-ResourcesRemotesideKnow-howProcessorRemoteevaluationResourcesRemotesideKnow-howProcessorCodeondemandResourcesLocalsideKnow-howProcessorMobilecodeMobileagentResourcesRemotesideKnow-how:可执行的代码Resources:代码执行时的输入输出Processor:包含计算状态的抽象的处理器GhezziandVigna’sclassificationofmobilecodeparadigms贵州大学计算机软件与理论研究所20(3)现有分布式计算模式分析:(续)从表中可以看出,各种分布式技术中除Client/Server模式外,其他几种计算模式都属于代码移动的范畴,但以移动agent模式最为灵活,它可以根据资源所在的位置自主的决定移动的目的地,在移动时携带其代码和执行状态一同迁移到目标主机,并在那儿恢复执行,在远程机器上直接对资源进行处理。这种方式下,更能有效的利用网络中各主机的资源,并能节省网络带宽,避免大量的网络传输。贵州大学计算机软件与理论研究所21(4)开发语言:由于移动agent是将Internet作为计算平台,因此,它常常会在不同的计算环境中运行;从而使得跨平台成为移动Agent技术必须首先考虑的问题。移动agent的实现语言可以采用编译型语言,也可以采用解释型语言。从支持移动、支持异构性、执行效率和安全性等多方面考虑,几乎所有的移动Agent系统都采用解释型语言。由于Java技术的快速发展和其具有良好的安全性和较高的执行效率,因而被大多数移动agent系统所采用。贵州大学计算机软件与理论研究所22(5)各类移动agent平台:自从1995年GeneralMagic公司推出Telescript系统并系统阐述了移动agent技术之后,移动agent技术在世界范围内引起了学术界和企业界的广泛关注,掀起了移动agent的研究和应用开发热潮,例如,GeneralMagic公司的Odyssey、IBM公司的Aglets、ObjectSpace公司的Voyager、Mitsubishi公司的Concordia、DartMouth学院的D’Agent、MIT的ROMA、德国斯图加特大学的Mole,以及国内有关研究单位在智能Agent技术方面的研究工作等。贵州大学计算机软件与理论研究所23(6)标准化研究:随着Agent技术研究的不断深入,可以预见来自不同领域的研究人员将开发出越来越多基于Agent的系统。如果没有相应的标准作为指导,这些系统无疑将无法进行良好的沟通和互操作,从而形成一个个孤立的系统。因此,Crystaliz公司、GeneralMagic公司、GMD公司、IBM公司以及OpenGroup等单位共同提出了移动agent的标准化草案:MobileAgentSystemInteroperabilityFacility(MASIF);智能agent基金会FIPA(FoundationforIntelligentPhysicalAgent)是研究智能agent的最大的国际化组织,自1997年起,陆续推出了众多的智能agent标准化草案。贵州大学计算机软件与理论研究所242、移动agent开发平台—IBMAglet介绍Aglet是由IBM东京实验室开发的基于Java移动agent系统,其思想源于JavaApplet。目前Aglet技术已成为开放源码项目。Aglet基础环境主要分通信层和Aglet运行环境两层,通信层负责aglet的传输和接收,以及aglet之间消息的发送和接收,运行环境层提供aglet创建、管理和移动的基本功能,包括持久化管理、安全管理、缓冲管理以及引用管理和废区回收。Aglet运行环境层的对象模型如图所示:AgletProxyAgletAgletProxyAgletMessageAgletContext贵州大学计算机软件与理论研究所252、移动agent开发平台—IBMAglet介绍(续)Aglet:是一个可移动的Java对象,可以自主访问支持Aglet的主机。AgletProxy:是