没有合适的资源?快使用搜索试试~ 我知道了~
移动代理安全算法:简单、快速、可行的数据保护
29网址:http://www.elsevier.nl/locate/entcs/volume30.html12页一种移动代理在恶意攻击下的Jesu's ArturoP'erezD'ıaz1奥维耶多大学信息学系,西班牙Dar'ıoA'lvarezGuti'errez2奥维耶多大学信息学系,西班牙摘要移动代理一直被认为是一种很有前途的技术来开发电子商务应用程序,但对该技术的安全问题已经阻止了它的广泛使用。已识别的安全领域包括保护主机免受恶意代理的攻击、保护代理的传输以及保护代理免受恶意主机的攻击前两个安全问题和对代理的代码状态的保护可以通过应用传统的安全技术来解决。 尽管有一些管理数据状态保护的工作,但其实现在性能和复杂性方面几乎是不可行的。本文描述了一种快速,易于实现的算法,移动代理可以使用它的行程中加密数据该算法只使用位图和XOR操作。该算法包括对要加密的数据和一个随机位图进行XOR运算,同时将该位图反复向右或向左移位,以计算CRC字段,用于验证恶意篡改。该方法只使用基本的位操作,因此其实现非常容易开发。此外,由于它不使用任何计算上昂贵的密码技术(即,数字签名),速度非常快。通过这种方式,我们设法有一个安全,简单,快速和可行的保护算法来保护数据移动代理漫游时,其中简单性和性能是它的更好的优势。·c 2001年由ElsevierScienceB出版。 诉 操作访问根据C CB Y-NC-N D许可证进行。301介绍移动代理系统有望在虚拟超市内进行电子商务交易。在这个应用领域,安全性至关重要,因为我们可以认为,任何应用程序将是没有用的,而不进行安全的交易。移动代理由代码状态、数据状态和执行状态组成。移动Agent系统是允许Agent从一个节点(移动Agent系统)迁移到另一个节点(移动Agent系统)的平台,保持其三种状态。当代理迁移时,涉及到几个安全方面。指出了移动Agent系统为保证移动Agent应用程序的安全性而必须实现的不同机制。移动代理系统基本上必须提供:• 保护代理系统免受来自移动代理的攻击• 保护代理人免受其他代理人的侵害。• 保护代理服务器之间的信息传输免受未经授权的第三方的攻击。• 保护代理免受恶意代理系统(恶意主机)的攻击,包括保护代理的数据状态移动代理[1]和移动代理系统[2] [3]的不同安全体系结构使用标准的加密技术,如公钥密码术或数字签名来验证当局并解决保护主机免受恶意代理的问题。此外,他们还使用SSL实现了代理传输的安全通道或者TLS。然而,保护移动代理免受恶意主机的攻击只是部分解决。代理的代码状态可以被签名,因为它是不可修改的。通过这种方式,我们可以保护代理的静态部分。然而,保护数据状态(动态变化)变得更加困难。在这方面有一些工作,在相关工作部分中描述。然而,还没有找到任何具有可行实施的解决方案。考虑到大多数移动代理电子商务应用程序不需要保护所有的数据状态,而只需要保护代理过滤信息并编译结果的一些重要值。本文提出的算法通过调用密码函数来保护代理决定加密的所有数据。 当代理返回时,只有源服务器能够解密代理存储的敏感信息。该算法描述了一种简单的方法来保护敏感数据,第1arturop@lsi.uniovi.es2darioa@correo.uniovi.es31收集并由移动代理人在其行程中携带。两个主要的优点突出:该算法是简单可行的实现,计算成本低廉。2相关工作Wilhelm提出了一种通过使用硬件机制来保护移动代理的行程的技术他认为软件算法不足以保证移动代理在运行过程中的完全安全。尽管该技术设法实现了行程的保护,但由于需要特殊的硬件,因此其在实际应用中的实现变得困难。Fritz Hohl [5]提出了一种避免恶意主机攻击的有趣方法。这种方法被称为Code Mess Up,由两种机制的组合组成:第一种机制生成代理代码的一个新的且难以理解的版本。第二种机制限制代理的代码和数据的生存期。这样,当代理的代码被弄乱时,恶意服务器将花费更多的时间来理解代码并然后攻击它,但是由于代理的生命周期受到限制,恶意服务器将没有足够的时间来攻击代理。在这种情况下,代理人保持不变。Tomas Sander和Christian Tschudin [6][7]提出了另一种解决方案。他们提出了在某些情况下如何实现“加密程序的非交互式计算”的技术在一些重要的情况下,这是一个完整的解决方案。它们进一步展示了代理如何在不受信任的执行环境中安全地执行加密原语(数字签名)。他们的结果是基于同态加密方案和函数组合技术的使用。最后两个解决方案有两个主要问题:一个相当困难的实现和一个相当大的性能打击的情况下实现。据我们所知,也许这些缺点就是这些技术还没有被任何移动代理系统实现的原因,目前的移动代理系统仍然没有解决。在此基础上,本文的研究目标是提出一种简单可行的移动代理算法对它们在不受信任的执行环境中漫游时收集的数据进行加密,而不会对性能造成可感知的影响。3使用位图和XOR运算的数据加密这种数据保护技术的设计考虑到这样的事实,即在大多数应用中,保护数据库的整个数据状态并不重要。32移动代理,但一些变量持有智能体收集的敏感数据,这是代理的旅行的主要目标这些应用程序的典型例子是电子商务应用程序,其中代理人沿着行程寻找价格或特定的价格。更大的服务。必须保护的重要信息是在每个访问服务器上提供的价格或服务。这种技术要求代理携带由源服务器生成的数据进行旅行,这些数据将由代理使用快速XOR操作来加密收集的敏感数据。3.1异或门的可靠性加密的主要思想是在数据和数据之间进行XOR运算,用于加密信息的随机数(表示为矩阵的行中的位图,并且仅源服务器知道)。一旦代理返回到源服务器,XOR运算将再次应用于加密数据,使用相同的随机数,并恢复信息源服务器中的代理将生成两个矩阵,其行数等于它期望加密的数据项的数量。最初,两个矩阵将填充相同的随机数(形成随机背景位图)。其中一个矩阵将存储在源服务器中,代理将携带另一个。例如,假设生成一个随机数10(二进制1010),并将其放在矩阵的一行中。此编号随代理一起使用,并且副本也存储在源服务器中。在行程中,代理获得代理希望加密的3(二进制0011)。在随机数和要保护的数据(1010 0011)之间进行XOR运算,结果为1001。 该数据存储在矩阵的同一行中,与初始随机掩码相同,以避免下一个服务器看到用于加密数据的随机数。此外,下一个服务器无法知道真实数据,因为它忽略了用于应用XOR运算的随机数。给定的服务器将使用矩阵中可用的下一个空闲行来存储新数据,因为占用的行包含在先前服务器中加密的数据。这样,当前服务器将永远无法知道先前加密的数据,因为它既不知道数据也不知道随机数。源服务器已经在副本矩阵中存储了随机数的副本,以便在代理返回时检索代理在从服务器漫游到服务器时加密的数据。因此,为了检索数据,加密数1001将得到与源服务器中生成的对应随机数应用的XOR(1001 XOR 1010),给出0011作为结果(3,代理已经加密的数据以确保在返回到源服务器时恢复的信息未被篡改,并且与代理33表1组成矩阵行的字段移动代理HostID要保护的CWCRC128位128位128位···128位128位128位f1f1f1·········.···.···f1cw1cw2cw3.CWI.cwm《儿童权利公约》第 1条、第 2条、第 3条.CRCI.CRCM123nF2F2F2F2123nF3F3F3F3123n....fifififi123n....fmfmfmfm123n在每个服务器中加密的CRC字段被计算以执行完整性测试。完整的加密算法将在下一节中描述3.2加密算法的详细说明定义了一个具有多个字段的矩阵(表1),这些字段用于加密代理的数据,并在以后验证数据。该矩阵最初由随机数填充,创建一个背景位图,用于加密代理在其行程中收集的数据(表2)。矩阵是复制的。 一个副本随代理一起传输,另一个副本保存在源服务器中。源服务器代理要保护的每个数据都需要矩阵的一行,因此代理必须事先知道它将要使用的近似数据量。34矩阵的结构如下:第一个字段是服务器的标识符,因为我们需要知道,对于每一行,数据被加密的位置。第二个字段表示存储代理收集的数据所需的空间,以128位块为单位。第三个字段是“码字”,它是在远程服务器中生成的随机数。 码字用于在应用之前旋转数据 加密功能。最后一个字段是CRC,使用数据区中的所有128位块应用XOR运算计算。此CRC在代理返回时用于验证数据区是否未被更改。当代理离开源服务器时,代理携带矩阵35表2填充随机位图的移动代理HostID要保护的CWCRC128位128位128位···128位128位128位0101...1101...0011...···0101...0100...1101...1100...0001...1101...···0001...0100...0100...1011...0011...0101...···1101...1001...0100..........0101...1101...0001...···0101...0110...1111..........0111...1011...0101...···1101...1101...0000...填充随机数,创建用于隐藏信息的背景位图,如表2所示。除了行程之外,算法1被应用于要加密的值得注意的是,一旦移动代理到达新服务器,新服务器就不能访问存储在前一服务器中的信息,因为在应用XOR操作之前,前一行中保存的背景位图不能被猜测。只有源服务器,能够应用逆算法来检索加密数据。计算CRC字段是为了检测恶意服务器对加密数据所做的任何更改。如果没有任何验证操作,恶意服务器可能只修改加密数据字段上的一个位,当代理返回到其源服务器时,它将无法检测到这种改变。 因此,代理将恢复错误的修改值,因为源服务器只是应用与矩阵的存储副本的XOR操作以获得加密值。CRC字段不能防止恶意服务器进行任何更改,但它可以确保如果进行了更改,则会被检测到,因为CRC字段将无效。在步骤3中进行的位旋转可能看起来是不必要的。然而,如果块没有旋转,恶意服务器可以在特定位置的一个位中更改加密信息,并且CRC可能不会改变,因为每个块都与下一个块进行了XOR。然后,在返回到源服务器时,不会检测到这种更改另一方面,一旦应用随机旋转,将检测到一个块中的恶意改变的位,因为该位改变了许多位置36我一期+1我我我算法11. 远程服务器创建一个记录,该记录的字段与代理具有的矩阵行的字段相同。2. 将主机ID、要以128位块形式加密的数据和生成的随机码字(CW)放入记录中。3. 每个128位数据块向左旋转的次数由CW的7个较低有效位。 这就是fr←frlr,其中lr←我我我CW& 07Fh。4. 在对fr应用第三步之前,CW向右旋转,如CW的7个最高有效位所指示的那样多次。因此,每个fr旋转的次数并不总是相同的然后CW将是CW ← CW m r,其中m r←(CW 7)&07Fh。一旦顺时针旋转重复步骤3 这些任务将继续,直到没有更多的128位块。5. 原始CW被恢复到寄存器的相应字段中,以便在源服务器中使用逆算法来检索原始信息。6. CRC字段计算如下。 初始值用二进制0填充,然后按顺序(从左到右)与数据区中的所有128位块进行XOR,得到最终的CRC值。7. 最后,保存原始位图的矩阵中的对应行与要保护的生成的寄存器(数据)进行XOR8. 指示矩阵中使用的线的数目的计数器递增,使得可以使用矩阵的下一可用行。值得注意的是,一旦移动代理到达新服务器,新服务器就不能访问存储在前一服务器中的信息,因为在应用XOR操作之前,前一行中保存的背景位图不能被猜测。 只有具有原始矩阵的副本的源服务器能够应用逆算法来检索加密的数据。在逆解密算法中(因为该位的位置在应用旋转之后将改变),总是呈现将检测改变的无效CRC。为了检索由代理与行程一起加密的信息,源服务器仅对代理使用的矩阵的每一行应用XOR运算,其中原始矩阵的副本的对应行保存初始背景随机位图。然后,使用随机CW,应用逆旋转来检索由给定中间服务器中的代理加密的真实数据。与使用非常复杂的数学算法的其他方法相比,使用位图和XOR操作加密数据的这种技术的主要优点是非常容易实现[8]。此外,它在计算上是廉价的,因为只使用非常快的位操作,从而有效地避免了其他技术的性能影响,37作为数字签名、密钥或任何其他损害性能的手段。4移动Agent系统我们的保护方案的一个很大的优势是实施的可行性。此外,它可以很容易地融入到现有的移动代理系统大多数基于Java的移动代理系统都定义了一个抽象类,称为Agent。用户编程的所有代理都从该类继承所需的功能,以便代理可以从一个主机迁移到另一个主机或创建更多代理。这个抽象类通常遵循这样的模式public abstract class Agent implements java.io.Serializable/public void run( ) / public final java.lang.Object clone ( ) / public final void clone Agent(.....)//下一页public final void dispatch(java.net.destinationURL)/ public final void revert().我们只需要向代理抽象类添加一个addsecure()方法为了允许代理安全地将敏感信息存储在它们携带的数据结构(位图矩阵)中,因此我们可以定义:public final void addsecure(对象数据)该方法的实现将使用上一节中描述的算法加密信息,并将其存储在代理携带的矩阵的在Java中,可以使用Java数组(即类向量的实例)轻松定义矩阵,该数组将保存源服务器中的背景位图。通过这种方式,每次用户创建代理时(即代理代理),它将继承addsecure()方法,允许它以安全的方式存储信息。public class functionality.当用户创建一个实例时,该实例将能够保护它正在收集的信息,只需调用addsecure()方法。举例来说搜索代理FindFlyAgent;定义一个代理类型为代理。findFl- yAgent的run方法将包含查询它正在寻找的价格的指令,一旦它获得了它记录的价格以供以后在主服务器上进行分析,那么run方法的最后一行将是:findFlyAgent.addsecure(FlyPrice);以保护其获得的敏感数据。 当前服务器将执行加密过程,并将FlyPrice安全地存储在矩阵中。访问的下一个服务器将无法找出前一个服务器的价格,它只能加密信息,代理在该服务器中聚集。385限制的方法该算法允许保护代理人在其行程中决定的信息,并验证代理人返回时未被更改。 该算法不会阻止恶意主机可能对数据进行的更改,但会检测已进行的任何修改。通过这种方式,如果检测到任何更改(这意味着CRC字段无效),代理将拒绝该信息,因为它将被视为无效。当前服务器将永远无法访问先前加密的数据,因为它忽略了数据和用于应用XOR运算的随机数。但是,它可以看到并复制仍然可用的带有随机数的行,这些随机数将用于加密当前服务器和下一个服务器中的下一个数据。第一个也是最明显的一个原因是,访问的服务器无法检索之前加密的数据,但可以轻松复制其余的背景位图。这意味着服务器可能会在将来检索代理加密的数据,假设代理再次访问同一服务器。因此,如果代理想要完全安全,则不应访问同一服务器两次。另一种可能的攻击(虽然可能性较小)是两个合作的恶意服务器联手检索代理携带的信息。第一个服务器将向第二个服务器发送背景位图的未使用部分(矩阵的可用行)的副本。如果代理稍后到达第二个恶意服务器,它将能够检索自代理离开第一个恶意服务器以来加密的数据,然后修改值。为了避免上述限制,代理不使用服务器生成并由代理携带的随机位图,而是向服务器请求随机位寄存器每次想要以这种方式对数据进行加密时,恶意主机只能改变其数据,而不能改变下一个服务器的数据显然,这种解决方案要求服务器通过一个安全的通道(如SSL通道)来传输信息,否则就不需要使用密码技术来保护寄存器。最后一个限制是可以保护的数据的最大数量是固定的,这是由矩阵的长度给出的(长度必须提前设置)。然而,在实践中,可以根据代理要执行的预期任务来最后,这种技术只保护代理希望加密的那部分数据状态。其余的数据,如局部变量等,不受保护。396今后工作我们将继续研究这项技术,以实现一个改进的算法,避免目前的限制。尽管如此,我们打算只使用本文中包含的操作(位旋转和XOR操作),或者同样快速或简单的操作,以便我们可以保持其简单性和快速性,这是这项工作的目标和哲学7结论移动代理系统必须解决的问题之一是保护代理免受恶意主机的攻击,其中包括保护代理的数据状态。 这对于在电子商务应用中采用代理技术非常重要,例如在代理收集信息(例如机票价格)以供稍后在源服务器上分析的保护代理收集的这些数据(而不是整个数据状态,这并不重要)是本文所述研究的目标。例如,恶意服务器应该无法看到或修改收集的信息,以改变以前的低价,使其价格看起来像最好的。诸如[5]和[6]的其他技术试图通过应用非常复杂的技术来解决这个问题,这些技术非常难以实现,并且更重要的是,由于使用密钥加密,因此在计算上非常昂贵。这是在实际系统中非常难以克服的障碍我们提出了一种新的技术来保护代理的数据状态的一部分(收集的数据代理希望保护)不受这些限制,因为它是快速和易于实现。在源服务器上生成一个矩阵,并初始填充随机位数。每一行用于保护一个数据项,并被划分为128位块。矩阵的一个副本存储在源服务器上,另一个副本随代理一起传输。为了保护一个数据项,代理使用一行,并将XOR运算应用于具有先前持有的随机数的数据项,将其加密并将结果与初始随机数相乘CRC也使用XOR操作来计算,以便在返回到源服务器时检测更改一些比特改变不会改变CRC,因此随机位图被比特旋转n次,如也被保持在矩阵中(并且也被旋转)的随机码字所指示原始服务器是唯一能够解密信息的服务器,因为逆算法(基本上取消旋转并对原始随机位图应用XOR运算)需要原始随机位图和码字的知识,这些知识仅为原始服务器所知。唯一的限制是代理不应访问同一服务器两次,40或者与恶意服务器联合的服务器,因为可以制作矩阵的副本并且可以检索随后的加密数据项。为了避免这种情况,如果服务器通过一个安全的通道传输它们的信息,那么代理可以在每次想要chiper数据时请求一个随机寄存器。一个小的限制是代理应该估计要保护的数据项的最大数量,因为矩阵必须预先生成我们提出的技术消除了其他技术的复杂性和计算限制,这些限制阻碍了Agent技术在实际应用中的接受。代理的数据状态保护在实际应用中是可行的,因为没有引入性能影响,因为没有使用昂贵的密钥加密。此外,该算法可以比使用传统密钥加密技术的任何其他算法快很多倍,因为只使用位操作。该算法可以很容易地集成到现有的移动代理系统中以便创建安全编译信息的基本电子商务应用程序。8参考书目P'erezD'ıaz,A'lvarezGuti'errez引用[1] P'erezD'ıaz,J.A., 和D.A'lvarezGuti'errez,Sahara:acomp rehensive移动代理系统的安全体系结构,Simposio Espaol de Informtica Distribuida,Orense,西班牙。ISBN:84-8158-163-1。[2] P'erezD'ıaz,J.A.,D.A'l varezGut i'errez和J.M.提示vaL ovelle,An基于Java2的移动Agent系统的安全实现,第五届智能Agent和多Agent技术实际应用国际会议(PAAM 2000),曼彻斯特,英国。ISBN:1-902426-07-X。[3] 弗劳恩霍夫IGD。项目,http://www.informatik.uni-stuttgart.de/ipvr/vs/projekte/mole/mal/preview/SeMoA-(安全移动-代理商).9656.txt.html[4] 威 廉 · 乌 韦 ·G 和 S. Staamann , Protecting the Itinerary of Mobile Agents ,Proceedings of the ECOOP Workshop on Distributed Object Security and4th Workshop on Mobile Object Systems,Belgium,1998。[5] Hohl,F.,一种解决移动代理系统中恶意主机问题的方法,斯图加特大学并行与分布式系统研究所德国,1997。41[6] Sander,T.,和C.陈志荣,电脑软体软体开发,国立成功大学资讯工程研究所硕士论文,2000。[7] Sander,T.,和C.陈文生,移动密码学,计算机科学研究所,2000年第1期。[8] Feigenbaum,J.,和Peter Lee,《安全移动代码应用》,DARPA安全移动代码研讨会基础研讨会,1997年3月。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功