导航菜单

一种基于移动Agent的云端计算任务安全分割与分配算法

倪斌1,李红兰2

(1.河南司法警官职业学院,河南郑州450000;2.河南牧业经济学院,河南郑州450000)

摘要:为了让在云端计算环境中运行的计算任务机密和隐私得到保障,避免恶意节点或竞争对手窥视任务的内部结构、系统逻辑和任务目标,必须构建一种全新的基于移动Agent的云端计算任务安全分割与分配算法。这种算法不仅要结合集群服务器节点的计算能力和特征,还要将用户终端节点的相关方面也考虑进去,把整个大的任务合理地分割成若干子任务,并将移动Agent作为这些子任务的数据结构和代码构成的载体;然后把这些数据和代码分配到与之对应的合理的任务执行节点上进行工作。通过将实验原型系统和该算法结合起来进行性能分析与探索,证明该算法对执行子任务的终端节点安全性的保障具有较强的有效性,即便有恶意节点窥探到了分配给该任务执行节点的数据和代码,甚至联合起来对系统进行攻击,也不会对这个任务的总体执行思路和整体目标的安全性造成威胁。

教育期刊网 http://www.jyqkw.com
关键词 :移动Agent技术;云端计算;隐私安全;分割与分配算法

中图分类号:TN918?34 文献标识码:A 文章编号:1004?373X(2015)17?0089?04

0 引言

现阶段对于云计算的要求大都是服务器端具有较强的计算能力和较大的资源储存,而对海量的用户终端节点所包含的各种有效资源的开发和利用并没有予以重视。实际上,终端节点自身也具有计算、储存各种信息资源的能力,由于这方面没有引起足够重视,终端节点的各种资源往往无法被有效地利用,经常被闲置在一边,这使得大量接入互联网的终端节点中所包含的计算和存储资源都流失了,导致资源的浪费。

通过对终端节点所包含的各种潜在资源的研究、开发和利用,在原有的云计算模型基础上,建立云端计算模型,可以将互联网中服务器端和用户终端上资源的收集最大化,不仅可以提高工作效率,还能够获得更多的收益。当然,由用户终端执行分配的计算任务时,一定要让计算的安全性和计算任务(例如企业进行大范围的数据分析)的机密性得到保证,阻止恶意节点或竞争对手对该任务的窥探,实现让用户在不知道该任务的具体内容的前提下执行该任务的目的,这个安全问题在云计算过程中必须得到重视并加以解决。

1 云端计算模型的构建

1.1 对云端计算的解释

云端计算就是将用户指定的任务分割后均衡地分配于资源池上(这个资源池是由服务器集群和大量基于互联网的终端节点共同组成的),从而使各种应用系统都能够按照各自的需求客观公平地获得性价比高的计算方式、资源共享等服务。

云端计算系统中,不是只有服务器端的节点才能够提供服务和执行任务,用户终端节点同样也可以。当用户向系统提交任务申请时,结合用户对任务的具体要求,任务分配节点将整个大任务科学合理地分割成若干子任务,对这些子任务进行安全处理后,将其分配到合理的对应节点上执行。在这个过程中,集群服务器节点和用户终端节点都可以成为任务执行者的角色[1]。

1.2 云端计算中可能存在的安全问题在开放的云端计算平台中,提交任务的用户和执行任务的节点主要面临着以下潜在的问题:

(1)恶意节点在信息传输过程中,对子任务的数据和代码进行攻击;

(2)恶意节点对分配到终端节点上的子任务的数据和代码进行攻击;

(3)负责任务执行的终端节点受到子任务中包含的病毒或木马攻击。

若要实现对信息传送过程中数据和代码机密安全的保护,可以通过利用现有的网络问题处理手段的方式解决。针对负责任务执行的终端节点受到子任务中包含的病毒或木马攻击的问题,现阶段也有一些可行性和有效性强的方法被提出,如建立沙盒运行环境、完善授权和认证体系、优化任务分配环节、实行代码检查、验证制度等技术手段[2]。

2 对该算法的详细阐述

2.1 移动Agent的概念模型

移动Agent 技术是在智能Agent 技术的基础上,增加了移动性的技术,结合移动Agent技术编写的操作系统完美地具备了生存机制、计算机制、安全机制、通信机制、迁移机制,并通过科学合理的协调和完善,形成了一整套体系。无论是根据地理因素还是逻辑因素分布的网络节点都符合这种算法的要求,都能够运用这种计算模式,通过为相关网络节点提供信息服务,使移动Agent 技术在各种云端系统中都能得到有效应用。同时,在分配和执行任务的各终端节点上建立移动Agent的执行环境也很重要,也就是移动Agent服务设施(简称MAE),这样才能使移动Agent在各网络节点间自行移动。

在云端计算系统中,所有被分割的子任务的载体就是移动Agent,移动Agent负责的主要工作就是对这些子任务进行封装、分配处理[3]。

根据以上对移动Agent的描述,规划出了移动Agent的概念模型,如图1所示。

移动Agent在云端计算系统中的主要构成结构有:外部环境、内部状态集(主要用于使移动Agent在不同系统中运用)、安全策略(其中包含各种安全认证内容)、约束条件(对安全接口加以约束,从而保障其规范的运行和可靠的性能)、任务执行模块、执行路径、全局知识和私有知识等。

2.2 云端计算系统中进行任务分割分配使用的方法和必须遵守的原则

接收了用户提交的任务后,承担任务分配的工作节点将任务进行分割,将大的整体任务分割成一个个子任务,并且要确保各子任务之间存在的相同性、耦合性降到最低。如果能保证各子任务之间不存在任何交集,在独立的环境下被执行,完成任务后,将成果提交至分配任务的服务器节点上,这种方式在传统的云计算系统中有着很大的可行性和实用性。

然而在云端计算的环境中,就可能会造成子任务粒度增加的后果,这就使得云端系统执行效率的降低,同时也使各子任务执行终端节点的工作量变大,任务负担变重,从而增加了整个流程的循环时间,在工作效率降低的同时,也产生了安全隐患。

在云端计算环境中,这样的安全问题主要表现在:一旦具有较大粒度的子任务被分配到执行任务的终端节点中,那么该终端节点就可以很轻易地通过对这个子任务数据和代码的解读和分析,推测出整个任务的执行逻辑和具体目标,在存在恶意节点或主机的情况下,必然会对提交任务用户隐私的机密性和整个云端计算的安全性造成不利影响[4]。

通过尽可能地降低子任务粒度的方式,就可以让各子任务之间的关系保持如下两种形式:

(1)各子任务之间的因果关系:一个子任务的执行要以上一个子任务的完成为前提;

(2)各分子任务之间不存在密切的合作关系:各子任务可以同步执行。

由服务器节点和用户终端节点执行对应的子任务时,如果想要提高任务执行的可靠性和机密性,将比较重要和关键的任务尽可能地分配到服务器端节点执行,那么服务器端存在的局限性也会阻碍云端系统性能的完全发挥,从而导致不能完善、有效地利用数量庞大的用户终端节点资源;如果将所有子任务都分配到用户终端节点执行,那么负责执行任务的主机可能会得到一些子任务中包含的隐秘信息,Agent承载的子任务中包含的信息量越大,负责该任务执行节点的主机就能更容易的获得关于整个任务的信息,一旦出现恶意主机和执行环境,那么任务数据和代码就很可能被窥探,出现隐私泄露的情况;恶意主机也可能通过改变代码编排方式或表现形式的方式,使原本的任务目标不能执行或错误执行,这就造成了整个云端系统的精确性和可靠性降低。

如果主要考虑信息的安全性和可控制性,那么就应该尽可能地把子任务分配到服务器端节点上;如果主要考虑任务的平衡性和网络资源能够被充分利用,那么就应该尽可能地把子任务分配到终端节点上,因为服务器端节点可利用的计算资源是有限的,而用户终端节点数量非常庞大,这就使得终端节点可利用的计算资源和储存空间比服务器端节点要巨大得多,更有利于网络资源的充分利用[5]。

2.3 分配任务的具体形式

选取如图2所示的某一次云端计算任务的一段执行路径,为了简便起见,图中的每一个子任务用1个3元组标志分别为(n,w,d),重点关注“→”所引导的执行路径[6]。图2(a)为任务分配的初始状态,所有子任务的d 均标志为0,设ω = 4。经过第1轮扫描后,n 为3,4,5的子任务的d 修改为1,如图2(b)所示;经过第2轮扫描后,n 为2,8 的子任务的d 修改为1,如图2(c)所示。最终可以得出,在该局部执行路径中,n 为2,3,4,5,8的子任务将被分配到服务器端执行,而n 为1,6,7,9,10 的子任务将被分配到终端节点执行。

3 对该系统性能的研究和检验

对已设计出的系统性能进行检验,结果如下:第一个环节:

任务分配节点将子任务发送到用户终端节点时,如果该节点是恶意节点,那么移动Agent中包含的数据和代码就很有可能被拦截,恶意节点通过对子任务的数据和代码的解读就可能窥探出整个任务的工作流程和具体目标。

如果出现任务分配节点所发送的承载着子任务数据和代码的移动Agent 被分配到恶意终端节点上的情况,对此进行分析的思路就是:通过对图1的观察可以发现,恶意执行环境或主机想要通过读取移动Agent所承载的子任务的数据和代码的办法窥探整个任务目标,就必须通过一道屏障,而这个屏障就是移动Agent系统构成中的安全Agent 接口模块环节。在该环节的保护下,即便恶意执行主机获取了子任务数据和代码中包含的信息,也无法知晓整个任务的执行逻辑和具体目标。这是因为在所有被分割的子任务中,真正包含着重要信息的子任务都被分配到了服务器节点执行,而该恶意执行主机承担的只是权重较低的子任务的执行,因而无法从该子任务的数据和代码中分析出整个任务具体情况的有效信息。这就使提交任务用户的隐私和任务的机密性得到了保障。

第二个环节:

恶意终端节点在获取到任务分配节点发送的承载着子任务数据和代码的移动Agent时,结合对子任务的先驱任务和后继任务等相关信息的分析,对先驱任务和后继任务的执行点进行攻击,甚至和这些恶意节点联合起来对系统进行协同攻击,截取更多的子任务数据和代码,从而实现获知整个任务情况的目的。

如果是在传统的云端系统中出现这种情况,那么有极大的可能会造成机密信息的泄露;然而在这种基于移动Agent技术的云端系统中,恶意节点获取的数据和代码确实非常有限,仍然无法实现对整个任务的窥探。因为在运用了移动Agent技术的云端系统环境下,恶意节点能够获得的只是与它自身存在输入和输出关系的节点所执行的子任务,而其他节点承担的子任务根本无法知晓。并且,结合上文中规划的优化方案来看,恶意节点无法通过累计获取数据和代码的方式实现子任务权重的增加。同时,该系统中对服务器端的数据和代码的管理具有集中性,因此恶意节点很难获取到相关信息。由此可见,恶意节点试图通过攻击其他节点和与其他节点协同攻击的方式实现对整个任务的了解,其成功率极低。

4 结语

传统的云计算系统主要采用集中管理的方式管理计算节点,一旦工作中出现安全问题,基本上都可以按照建立在网络中的软件系统的安全手段解决,而在利用了用户终端的资源进行计算,将云计算转变为云端计算后,其中潜在的安全问题也需要被重视和解决。

本文提出一种结合了移动Agent 技术对用户任务进行合理分割和有效分配的安全性方法,将用户提交的任务科学地分割成了若干子任务,以移动Agent为这些子任务数据和代码的载体,结合任务分配算法,把子任务合理地分配到相应的终端节点上执行,在完善的安全管理体系的保护下,任务的机密性也得到了保障,从而在安全可靠的前提下使网络资源得到了充分利用。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 徐小龙,程春玲,熊婧夷,等.一种基于移动Agent的云端计算任务安全分割与分配算法[J].北京理工大学学报,2011,31(8):922?926.

[2] 张以利,杨万扣,李峻.基于移动Agent的代价驱动的云端存储模型[J].计算机工程与设计,2012(11):4240?4244.

[3] 徐小龙,熊婧夷,程春玲.基于云端计算架构的恶意代码联合防御机制[J].东南大学学报:自然科学版,2011(2):220?226.

[4] 徐小龙,耿卫建,杨庚,等.开放云端计算环境中的任务执行代码安全机制[J].计算机科学,2012(7):7?10.

[5] 冯登国,张敏,张妍,等.云计算安全研究[J].软件学报,2011,21(1):71?83.

[6] 冯辉宁.云计算环境下的多路数据流分层模块化建模与设计[J].系统工程理论与实践,2013,33(6):1570?1576.

[7] 刘森.云计算技术的价值创造及作用机理研究[M].北京:经济科学出版社,2015.

[8] 罗军舟,金嘉晖,宋爱波,等.云计算:体系架构与关键技术[J].通信学报,2011,32(7):3?21.

[9] 林晓鹏.云计算及其关键技术问题[J].现代电子技术,2013,36(12):67?70.

[10] 刘胜娃,陈思锦,李卫,等.面向企业私有云计算平台的安全构架研究[J].现代电子技术,2014,37(4):34?36.

下载文本