没有合适的资源?快使用搜索试试~ 我知道了~
124理论计算机科学电子笔记63(2001)网址:http://www.elsevier.nl/locate/entcs/volume63.html16页撒旦沃尔克·罗斯弗劳恩霍夫计算机图形学系。安全技术Rundeturmstrasse 6小行星64283摘要移动代理安全仍然是一个年轻的学科,最自然的是,到撰写本文的时候,重点然而,过去的经验表明,协议可能存在缺陷,并且协议中的缺陷可能在很长一段时间内未被注意到。破坏和修复协议的游戏是一个必要的进化过程,它可以更好地理解潜在的问题,并最终实现更强大和更安全的系统。虽然,据我们所知,很少有工作已经公布的破坏协议的移动代理,这是不可想象的,迄今为止提出的众多协议都是完美无瑕的。事实证明,情况恰恰相反。我们确定的缺陷,提出了Corradi等人的协议。,Karjoth et al. 和Karnik et al. 包括基于安全协处理器的协议。此外,我们还提出了如何加强协议,以应对我们针对它们发起的攻击类型关键词:移动代理安全,安全协议破解。1介绍这篇论文的灵感来自于Ross Anderson和Roger Need-ham在1995年出版的一部名为“Programming Satan's Computer”的作品。它的摘要的一个版本作为我们的介绍。我们冒昧地对原文进行了轻微的修改,以便更好地适应移动代理安全的上下文“Cryptographic protocols are used in systems for mobile agents to protect theconfidentiality它们可能涉及每跳大约2-5个协议步骤[交换2-5条消息],人们可能会认为这种大小的程序相当容易正确。然而,情况绝对不是这样的;在已知的协议中可以找到bug(bug经常被发现),并且在它们首次发布后的几年内。问题是存在一个敌对的对手,谁可以创建代理人和改变代理人实际上,我们的任务是编程移动代理,这些代理给出答案[一个com-2001年由Else vier Science B.V. 操作访问根据C CB Y-NC-N D许可证进行。ROTH125--给出答案的计算机],这些答案在最不方便的时候是微妙而恶意的错误。这是一个迷人的问题;我们希望从撒旦的代理人[计算机]编程中学到的教训可能有助于解决墨菲编程的更常见问题。分析移动代理保护的密码协议意味着要与老朋友和老对手见面。这些协议中有一些是有缺陷的,类似于安德森和李约瑟在撒旦的计算机编程中已经指出的那些。我们首先总结我们分析的协议的典型目标:目标1(保密)移动代理应揭示明文只有当-ING可信主机。目标2(完整性)应保护代理人,使其能够在访问的每个主机上获取新数据,但代理人的所有者(可能还有代理人行程中的其他主机)必须检测到对预先存在的数据的任何篡改。这里的总体目标是保护移动代理的某些功能免受恶意主机的攻击。根据假设,代理的所有者的主机总是可信的。有些协议同时处理这两个目标,有些协议只处理一个目标。所有的协议都是针对保护自由漫游的移动代理。换句话说,移动代理可以根据它们在执行过程中获取的数据动态地选择各自的下一跳。我们的攻击遵循两种一般模式;它们的变体和组合被重复执行:剪切粘贴:攻击主机从一个代理中剪切一部分,并将其粘贴到另一个代理中。实际上,从一个协议运行中获取的数据用于另一个协议运行。oracle exploit:攻击主机生成自己的代理,并将其分发到一个或多个远程主机,代理在这些主机上根据加密协议的要求进行转换这两种模式的组合使得能够对[7,3,5,6]中设计的密码协议进行攻击。在某些情况下,这会导致协议的安全目标完全妥协在其他情况下,对手能够伪造和替换协议数据的子集,使得代理的所有者无法这里重要的观察不是代理获取的协议数据可以被截断(一些作者已经承认这种可能性),而是攻击者可以对代理返回的数据进行控制2一些协议失败我们将明文加密成密文,符号表示为c=mK,其中K是所使用的密钥数字签名将被写为具有私有签名密钥S-1的加密。 我们将S-1(m)写成, 而不是签名和签名数据的并集。我们假设签名者的身份可以从她的签名中提取出来一ROTH126→→||§§一一--EEEBB某些输入的密码散列将被写为h(m)。除非另有说明,我们假设h是抗原像和抗碰撞[8,9.2.2],这意味着h也必须是抗第二原像[8,9.2.5]。 当A向B发送消息m时,我们将写AB:嗯。 我们将编写一个乙:mKA,B当M通过机密信道发送时 m1和m2的连接记为m1m2. 为了便于阅读,我们用昵称来指代一些实体例如爱丽丝、鲍勃和夏娃。总的来说,伊芙将扮演对手爱丽丝将扮演受害代理的所有者的角色,Bob和Dave将扮演参与协议的爱丽丝的代理人的行程写为i 0,. i n,其中i0= Alice,i n是代理当前访问的主机。2.1解密目标状态在[7]中,Karnik和Tripathi提出了一种目标状态作为保护代理携带的数据机密性的手段。这样做的目的是,只有当代理位于受信任的主机上时,才能将此数据提供给代理,从而使此数据对其他代理和主机保密。为了实现这一点,使用可信主机的公钥对目标状态如下所示{{m1}Ki1,., {mn}Kin}S−1目标状态由Alice签名,Alice是拥有目标状态的代理的发起者在接收到代理之后,每个主机检查目标状态以寻找它可以解密的密文。如果是,主机使用自己的私有解密密钥解密它,并使代理可以使用明文。下面,我们说明对该协议的攻击。在不失一般性的情况下,我们假设代理的目标状态包含单个密文,该密文是用Bob的公钥加密的。爱丽丝首先将代理发送给夏娃,然后从夏娃跳到鲍勃,然后返回给爱丽丝。协议开始如下(为了简单起见,我们假设一个agent最初只由它的目标状态和它的程序A组成):A→E:A,{{m}KB}S−1攻击是直截了当的。Eve剥离AliceE→B:E,{{m}KB}S−1B:ΔE,{{m}KB}S−1,{{m}KB}K−1=mBob无辜地使用自己的私钥解密目标状态,并将生成的明文提供给代理。然后,代理携带明文返回Eve。B→E:E,{{m}KB}S−1,m夏娃现在拥有了只有鲍勃才能得到的明文,爱丽丝永远不会发现攻击。该协议的问题在于,由于缺乏ROTH127in+1I1≤≤In由于在密文中存在冗余,鲍勃可能被滥用为神谕。Alice需要在密文中包括她的代理的不可伪造的标识符,例如。h(λA,A). 即使这样,代理2.2伪造仅追加容器除了目标状态之外,Karnik和Tripathi还提出了一个仅追加容器。其思想是保护代理中的对象容器,以便可以向其中添加新对象,但其中包含的对象的任何后续修改都可以由代理的所有者检测到。该协议依赖于加密的校验和,其初始值由Alice(代理的所有者)基于随机现时值r计算C0={ r}KA随机数必须由Alice保密,并在代理返回时在验证协议中使用。append only容器的定义如下:{{m1}S−1,.,{mn}S−1,Cn}每当一个新对象被追加到只追加容器时,校验和被更新2,如下所示:Cn+1={Cn||S−1(m n+1)}K一追加对象的签名者是发生追加操作的主机。在代理返回时最后一个校验和必须等于初始随机数。我们现在假设Eve接收了Alice1jn. Eve总是知道Cn,因为它嵌入在容器中。她可能与代理之前访问过的其他服务器勾结,或者她可能是代理行程中的一个循环的一部分在这些情况下,Eve可能会发现校验和Cj,j n。在这个阶段,夏娃有多种选择。她可以截断容器直到第j个对象,并通过释放代理来或者她可以删除、添加或替换其他主机名称中的任意对象ml,其中l>j为了做到这一点,Eve创建了一个代理,其中包含她想要在j+ 1处添加的对象,以及她自己的仅追加容器,并将校验和Cj作为其初始值。夏娃现在派她的代理人去找鲍勃。在那里,Eve1否则,Eve仍然可以在拥有的代理之间来回剪切粘贴目标状态爱丽丝和谁共享同一个程序。2在原始协议描述中,附加了服务器的签名和身份。另一方面,我们假设签名者ROTH128MPM PInSBBEBI1IjE→B:E,mj+1,{Cj}B→E:E,{{m j+1}−1,{C j||S−1(m j+1)}K}代理返回后C j+1={C j||S −1(m j+1)}K} −1}KBE KEA={C j||S−1(m j+1)}K然后,她创建了一个新的容器:E阿克斯{{m1}S−1,., {m j}S−1,{m j+1}S−1,C j+1}“我的天,A它取代了之前Alice代理的容器这个过程会用新的校验和重复,直到Eve对结果满意,并释放AliceBob无法检测到攻击,因为Cj是不可公开验证的(它是用Alice的公钥加密的Bob所能看到的只是Cj的长度,从中他可以估计出必须在仅追加容器中的对象的数量因此,如果Eve想确保Bob没有理由怀疑,那么她在将其发送给Bob之前将j个签名对象添加到她的代理只要这些物品有适当的签名,谁签名和她从哪里得到的都无关紧要再一次,缺乏冗余允许Eve滥用其他主机作为预言机,这次是为了签名和校验和计算而不是解密。2.3伪造多跳协议在[3]中,Corradi,Montanari和Stefanelli提出了一种他们称之为多跳的协议,其目的与Karnik和Tripathi提出的仅附加容器相同它也会受到同样的攻击。然而,这一次,伪造的代理需要多跳一次才能完成攻击。作为参考,我们总结了下面的多跳协议。设(mid,,)为代理,其中mid为静态(不可变)代码和初始化数据,为(可变)应用程序数据,为协议数据(协议所需的Meta信息)。Alice用(A,,)表示她的代理。该协议还需要一个随机数γ和一个消息认证码μ。初始值为γ0=h(r)和μ0=h(r),其中r是随机选择的。在每一跳上,代理可以将一些数据M添加到其应用数据,然后由使用多跳协议的主机方案定义如下:γn= h( γn−1)µn= h( mn,γn−1,µn−1,in+1)Pn=Pn−1||S−1(µ n)M n= M n−1||M n||I n一BROTH129Bin→ in+1:(A,Mn,Pn),{γn}Kin+1,µn消息认证码γn用作链接关系,其将代理先前获得的结果绑定到在当前主机处获得的结果以及代理的下一跳的身份由于这种链接关系,攻击无法以与仅追加容器相同的方式执行。以夏娃为中心的星形路线在协议数据中太明显了。夏娃要做的就是提前一步计划。同样,我们假设夏娃知道某个γj−1,其中1≤j≤n。 她收到了施事体,所以她总是知道γ n-1和µ n-1。 她可以<通过与其他主机串通或作为智能体行程中的循环的结果来获得γj−1和jn。设ij+1为Bob,ij+2为Dave。Eve现在设置Mj=Mj−1,Pj=Pj−1,γj=γj−1,µj=µj−1,并执行以下操作:E→ B:(E,Mj,Pj),{γj}KB, μjB→D:(E,Mj||m j+1||B、Pj||S−1(µ j+1)),{γj+1}KD,µj +1D → E:(E,Mj||m j+1||B ||M ||D ,P J||S−1(µ j+1)||S−1(µ j+2)),B D{γj+2}KE,µj +2Eve首先将她的代理发送给Bob,在Bob处插入她选择的一些mj+1。然后它跳到Dave(下一个目标),插入一些随机数据M(稍后被丢弃),并返回Eve。Eve现在更新AliceE阿克斯(A,M j)||mj+1||B、PjE阿克斯|| S−1(µ j+1))`阿姆斯壮一=(A,Mj+1,Pj+1)阿格纳斯湾一夏娃现在计划她的下一步行动(她想在戴夫之后攻击为了将代理发送给戴夫,她需要知道γj+1和μj+1,但她然而,夏娃知道γ j、μ j和m j+1。 这足以计算γj+1=h(γj)μj+1= h( mj+1,γj,μj,D)在这个阶段,Eve要么继续攻击,要么释放AliceE→D:(λA,Mj+1,Pj+1),{γj+1}KD, μj+1多跳协议的潜在弱点与前面描述的协议相同,即滥用服务器作为预言机。ROTH130In一MMMM3KAG协议Karjoth、Asokan和Gu?lcu?[5]发表了一系列协议,旨在保护自由漫游代理获取的数据的完整性和机密性。 一般情况下,比较购物代理访问一些商店,并收集他们的报价。3.1可公开验证的链式数字签名可公开验证的链式数字签名协议(P1)定义如下:Mn={{mn,rn}KA,Cn}S−1Cn= h(Mn−1,in+1)M0={{m0,r0}KA,C0}S−1C0= h( r0,i1)in→in+1:n,{M0,...,Mn}其中m0是虚拟报价,rn是随机盐,这使得更难攻击加密。Cn称为n处的链式关系。通过假设,应该有可能从签名中推断出签名人的身份[5,pp. 198]。的签名者0被认为是代理的所有者(不幸的是,作者[5]中没有明确提到他们得出的结论是谁是给定代理的所有者,所以我们必须在这里做一点猜测)。该协议的安全性依赖于攻击者不改变链中最后一个元素n的假设。然而,攻击者没有理由如此乐于助人。 相反,如果攻击者愿意为代理构建一个完整的链,那么他甚至可以在自己进入之前删除链元素(这与例如,由Yee引入的诚实前缀属性[11,pp.267])。这里重要的观察是,所有先前的链接关系的输入是已知的。我们假设夏娃收到了爱丽丝的一个代理设夏娃为in,n>1。她选择了j,0j。Eve总是可以将agent重置为状态σj,除非存在新鲜度的概念(棘手,我们在第5节中简要讨论了这一点)或不受Eve控制的外部状态(这是我们在[9]中提出的底线8致谢我们感谢GunterKarjoth对最初手稿的评论,这有助于提高论文的精度和重点,以及从评论中发展出来的鼓舞人心的引用[1] 罗斯·安德森和罗杰·李约瑟。为撒旦的电脑编程在《今日计算机科学》,第1000卷,计算机科学讲义,第426-441页。Springer Verlag,1995年。[2] David M.象棋移动代码系统中的安全问题。在Giovanni Vigna,编辑,MobileAgents and Security,计算机科学讲义第1419卷,第1-14页。Springer Verlag,Berlin Heidelberg,1998.ROTH139[3] A.科拉迪河Montanari和C.斯特凡内利Internet环境下的移动代理保护。在第23届国际计算机软件和应用年会(COMPSAC[4] William M.作者声明:D. Guttman和Vipin Swarup。移动代理的安全性:问题和要求。国家信息系统安全会议论文集(NISSC 96),第591-597页,1996年10月[5] G. Karjoth ,N. Asokan 和C. Gu?lc u?保护自由漫游代理的计算结果在K。Rothermel和F. Hohl,编辑,Proceedings of the Second International Workshopon Mobile Agents(MA施普林格出版社,柏林海德堡,1998年9月。[6] 君特·卡尔乔斯。分布式市场中基于移动代理的安全商家代理In D.Kotz和F.Mattern,编辑,Proc. ASA/MA 2000,计算机科学讲义第1882卷,第44-56页。Springer Verlag,Berlin Heidelberg,2000.[7] 内马尔M. Karnik和Anand R.特里帕蒂Ajanta移动代理系统的安全性。技术报告TR-5-99,明尼苏达大学,明尼阿波利斯,MN 55455,美国。S.一、1999年5[8] 阿尔弗雷德·J保罗·梅内塞斯van Oorschot和Scott A.范斯通应用密码学手册。离散数学及其应用CRC Press,New York,1996. ISBN 0-8493-8523-7。[9] 沃克·罗斯合作代理人的相互保护。在Jan Vitek和Christian Jensen的编辑,Secure Internet Programming : Security Issues for Mobile and DistributedObjects,计算机科学讲义第1603卷,第275- 279285. 施普林格出版社,美国纽约州纽约市,1999年。[10] Volker Roth和Vania Conan。加密Java档案及其在移动代理安全中的应用。InFrank Dignum and Carles Sierra , editors , Agent Mediated ElectronicCommerce : A European Perspective , volume 1991 ofLecture Notes inQuarterical Intelligence,pages 232-244.施普林格出版社,柏林,2001年。[11] 班纳特·S Yee.是移动特工的避难所。在Secure Internet Programming中,计算机科学讲义第1603卷,第261施普林格出版社,美国纽约州纽约市,1999年。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功