1、Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage自动化的形式化分析为不可信的存储安全的文件共享协议布鲁诺BlanchetCNRS,鈥巴黎高等师范学院支持鈥瞖rieure,INRIAblanchetdi.ens.frAvik乔德赫瑞加州大学圣克鲁斯avikcs.ucsc.edu摘要我们研究一个国家的最先进的正式的安全性能不可信的存储安全的文件共享协议,在自动协议验证ProVerif。据我们所知,这是第一个安全的存储自动化的正式分析协议。该协议,作为基础设计文件系统Plutus的
2、,具有一些有趣的计划想偷懒的撤销和密钥轮换。这些计划的改善该协议的性能,但其安全性复杂属性。我们的分析,阐明了几个含?糊不清在设计和揭示了对协议的一些未知的攻击。我们建议更正,并证明精确的安全性保证为纠正协议。1。简介近年来的许多研究都集中在安全分析通信协议。在某些情况下,岁,看似可靠的协议,已经发现的攻击,这些协议得到纠正23,33,40;在其他情况下,这些协议的安全保证被发现被人误解,他们已经澄清有时甚至形式化和证明4,33,37。更普遍的是,此行的工作强调了困难设计安全通信协议,以及核实其精确的安全性能的重要性。虽然已安全通信协议深入研究,安全存储已收到协议远不如关注。一些依靠这些协议在
3、安全沟通,我们期望通常为安全技术沟通,以及适用于这样的协议。但存储一些鲜明的特点,对安全问题似乎超越的背景下研究的通信协议。也许最引人注目的这些功能是动态的访问控制。事实上,尽管大多数存储系统具有动态的访问控制以某种形式,对比较抽象的安全后果如保密性和完整性的属性很少评估详细。在本文中,我们显示了安全存储协议是值得分析和研究一个有趣的例子。具体来说,我们分析一个国家的最先进的文件共享协议利用安全存储加密技术不受信任的服务器上。该协议是文件的基础上系统Plutus 32。此设置有趣的是几个的原因。首先,存储服务器的妥协是合理的共同威胁的今天,是审慎的不信任例如出于安全的服务器34。下一步,我们研
4、究的协议有非常典型的设计为安全的文件共享存储在不可信,存储数据的加密和签名,并键,用于加密,签名,验证,和解密这些数据由用户管理。几个文件系统遵循这个基本设计,包括SNAD 35,天狼星28,和其他加密20世纪90年代以来,文件系统15。最后,超越协议的基本设计,一些有前途的新功能懒惰的撤销和密钥轮换,改善方案,如该协议的性能在存在的动态访问控制,但复杂又将其安全属性。这些功能是值得研究的。举例来说,我们的分析显示,懒?惰撤销允许更精确的完整性保证比纳伊夫计划28。懒惰的撤销,如果不受信任的作家被撤销,读者可以分辨从撤销后的书面内容以前可能已经由该作家撰写的内容;因此,他们可以信任前的内容,即
5、使他们不信任,后者的内容。在不同的说明,计算安全密钥轮换计划已产生了最近很多人的兴趣6,7,26。我们的分析揭示了一些在新的协议,可以利用完整漏洞关键的轮换计划,即使是安全的。正式的技术在我们的分析中发挥显著作用。我们模型中的协议,并确认其安全性能自动协议的验证ProVerif。 ProVerif是基于固体,包括正式的应用理论基础PI演算与证明理论,一阶逻辑。正式语言的力量正是我们指定的协议,证明或反驳精确的安全属性的协议。这种严谨的水平不负有心人在几个方面:?我们找到一个新的协议的完整的攻击,并表明,它可以有严重的实际后果。这种攻击没有发现超过四年是很难找到这样的证词攻击“手”。?我们提出了
6、修复,并证明它可以解决的协议。攻击和校正相对一个完整的正式规范,不能立即32的非正式规范明显。我们也证明了一个比一个弱的保密保证声称在32(并表明他们的要求不能真)。?正式演习,使我们能够通知和澄清32中的一些模糊之处;它也使我们能够找到一些新的,简单的攻击,更复杂的已知的。这些发现极大地提高我们的理解该协议的微妙之处。?最后,使用自动验证的产量大大证明我们的信心比手工更高层次技术,其中有被称为是容易出错的。更普遍的是,我们的研究结果再次确认,非正式的理据(如显示特定攻击的抵抗)对协议就足够了。据我们所知,我们的研究是第一个自动化的正式分析的一个安全的存储协议;我们希望我们的做法为其他协议进行
7、了富有成果的这一地区。相关工作有一个庞大的身躯,在正式的工作方法验证的安全协议,例如,1,4,8,16,29,33,37。更多信息我们读者参考14这方面的工作,我们这里重点更加紧密安全文件的设计和验证的相关工作系统。基于文件系统上的网络连接(对象)存储协议(全国证券交易商协会,OSD)27,30,分布式访问通过加密存储在受信任的实施控制能力。本议定书的半正式的安全性分析出现在30,而19-21目前正式模型本议定书在应用人工安全证明PI演算。在其他安全的文件共享协议,在不可信存储,我们研究这里是一个最接近那些落后的文件系统仙王座25,天狼星28,和SNAD 35。懒惰撤销第一次出现在仙王座;总结
8、懒撤销的起源31它的局限性。对阅读和写作SIRIUS文件的快捷键是为那些在Plutus相同。然而,这些键存储和分布式安全服务器(“带”),而不是(“带外”),由用户直接分配。此外,撤销在SIRIUS是立竿见影的,而不是懒惰。在SNAD,阅读文件的按键分布在波段在SIRIUS。然而,与Plutus和SIRIUS,有键书面文件,任何用户都可以写内容,签署这些内容用其私有密钥,并存储服务器是受信任的访问控制,以写入。虽然我们研究的协议部分信任的存储服务器,以防止所谓的回滚攻击(其中内容收到的文件系统不是最新的内容发送到文件系统),该协议背后的文件系统SUNDR 34专门提供了一个所谓的保证叉的一致性
9、,即允许用户检测回滚攻击不信任存储服务器。该正确性协议正式证明34。 SUNDR并没有重点其他的保密性和完整性保证。最近几个密钥轮换计划已经提出和手动证明计算模型安全6,7,26,各种替代计划和重点分布和签名已旨在消除在这方面的公共密钥加密36。机械核实这些计划应该是有趣的未来工作。最后,为了保证更强的信息流的属性比那些在本文研究,访问控制辅以精确的代码分析。最近,一些类型系统已设计等目的18,22,38,42。 18系统特别适合证明存在动态访问属性控制和不信任的存储。组织本文的其余部分安排如下:在第2节中,我们勾勒Plutus背后的协议。在第3节,我们给ProVerif概述,并提出我们的模型
10、Plutus ProVerif。第4节中,我们指定并分析Plutus的保密性和完整性属性ProVerif,并提出我们的结果和意见。最后,在第5节,我们讨论我们的贡献,并结束。2。 PlutusPlutus文件系统是基于存储设计32不依赖存储服务器提供了强有力的保密完整性保证。相反,文件的内容加密保护,写作和阅读的关键这些文件的所有者管理等内容。特别计划出台节约密钥分配和密码存在的动态访问控制;这些计划复杂的协议和它的安全性属性。在Plutus,校长有资格作为业主,作家,和读者。每个文件属于一个组别,组中的所有文件具有相同的的作家和读者。一个业主组生成和分发写作和阅读的关键该组的内容;这些键中的
11、所有文件共享该组。具体来说,一个写密钥是用来加密和签署的内容,而读的关键是用来验证和解密等内容。这些键可以撤销由业主动态控制访问这些文件;一个新的写密钥和一个新的读密钥,然后生成和分布适当。然而,新的写密钥仅用于随后写道:不像SIRIUS 28,这些文件不会立即新的写密钥保护,使先前阅读的关键,可以用来验证和解密内容这些文件,直到他们重新编写。这个计划,被称为懒撤销,避免了多余的加密技术,是有道理的由以下意见:?对现有的内容与新的写进行加密关键不保证这些内容的保密以前的读者,因为这些内容也可能已经缓存由以前的读者。更巧妙的是,由于现有的内容来自以前的作家,签订新的内容写密钥会错误地表明,他们来
12、自新的作家。此外,所谓的密钥轮换计划,让新读者来自新的读密钥先前的读密钥,避免多余的密钥分配梩他的新读者不需要保持先前的读密钥,读现有的内容。相比之下,新的读密钥不能从以前的阅读关键的,因此,其后的内容新的写密钥写入只能读取新的读者。具体地说,一个写密钥的形式(SK,LK),其中SK的非对称密钥对(SK,VK)的一部分,和LK是一个对称加密密钥;互补读的关键是(VK,LK)。 SK,VK,和LK是一个符号键,确认键,和一个密码箱的关键。内容加密与LK2与SK签署,这些内容都与VK验证和?解密LK。 Plutus使用RSA密码系统39,所以我们有SK =(D,N)和VK =(E,N),模数n是两
13、个大素数p和q的产品,和指数D和E?是逆模(P - 1)(Q - 1),也就是说,版? 1 MOD(P - 1)(Q - 1)。因此, 7的功能! XDMOD N和Y 7!叶MOD N逆。鉴于哈希功能散列消息M是通过计算与SK签署哈希S =(男)? MOD N和S是通过检查验证与VK硒MOD N =哈希(M)。我们呼吁(P,Q)RSA的种子。一般情况下,电子商务可能是随机选择的,相对总理(1)(Q 1),和D可以计算E,P和Q然而,在Plutus,E是唯一确定由N和LK如下:给定一个伪随机序列hrii产生的种子LK,E是第一首相数序列HRI +pNI。我们表示这种算法genExp(N,LK)。
14、综上所述,签名/验证密钥对(SK,VK)生成RSA一个随机种子(P,Q)和LK密码箱的关键,通过计算N = PQ,E =(N,LK)genExp,VK =(E,N),和SK =(D,N),其中D是电子的反模(P 1)(Q 1)。组的所有者分配(SK,LK)作家和LK,以飨读者,用户可以进一步从中n和LK VK使用genExp。注意,n是已经到作家从SK。此外,业主分发一个签署n以作家,他们十分重视时,他们写的内容文件系统,因此任何用户都可以从文件系统中获得N并验证其真实性。因此,作家为读者可以充当Plutus,虽然在32它是错误地声称,作家不能获得VK(这意味着读访问是不相交的从作家访问)。它
15、是已知的,作家可以充当SIRIUS读者以类似的方式28,36。让(D,N)和(E,N型)的私钥和公共关键的一组人。初始和后续该组的作家和读者的密钥版本产生如下:版本0的初始密码箱的关键LK 0是随机的,和最初的签名/验证密钥对(SK0,vk0)产生RSA随机种子(模数N0)和LK 0。版本V版本V + 1时版本V键撤销,产生一个新的Lockbox关键LK v 1“曲径通幽”与以前的密码箱关键LK v所有者的私钥:LK v +1 = lkDvMOD N的可以检索以前的密码箱的关键“平仓”所有者的公共密钥的新的Lockbox关键:LK v = lkEv1 MOD N.特别是,与读者一个密码箱的关键
16、LK V0任何V0? v可以生成验证通过从模数NV的关键vkv文件系统,递归V0平仓LK LK v,并从中vkv从NV和使用genExp LK v。新签名/验证密钥对(SKV 1,vkv 1)是产生RSA随机种子(模量NV 1)和LK v 1。虽然存储服务器是不信任提供了强有力的保密性和完整性的保证,仍然有一定程度的信任放在服务器上,以防止XX的修改由一个名为服务器验证计划存储写入。具体来说,一组的所有者生成一个新鲜的写令牌每一个版本,并分发该令牌作家版本和存储服务器。服务器允许一个作家修改只有在正确的写令牌的存储区服务器;,尤其是撤销作家不能商店恢复到以前的状态,或目前的垃圾状态。3。 Pr
17、oVerif和一个Plutus正式模型为了研究Plutus正式,我们依靠的自动加密协议验证ProVerif。我们简要目前这个验证下,说明我们的Plutus模型下面。3.1。 ProVerifProVerif 2,11,12,14的目的是自动验证验证的安全协议。该协议指定在PI演算加密,扩展应用PI演算的方言3。所需的安全属性可以指定的,尤其是,作为通信41断言,这是形式搃f一些属性事件已被执行,然后其他的事件已被执行?(我们说明这下面的输入语言。)内部,该协议被翻译成一组Horn子句,安全属性翻译成derivability查询这些条款:当某些属性证明事实是不是派生的条款。 ProVerif使用
18、了号决议为基础的算法,以显示此非derivability。ProVerif依赖于正规的,所谓的Dolev姚模型协议24,其中的消息条款为蓝本在代数。这种加密比较抽象模型可以更容易地自动比更具体的证据,计算模型,在其中的消息被建模为位串。因此,ProVerif可以处理各种各样重写规则或指定的加密基元方程以上条款。此外:?当ProVerif证明,财产证明是有效的无限数量和协议会议无限的邮件大小。证明失败时,ProVerif提供了一个推导从条文的事实。它还试图重建,从这个推导,跟踪的协议,显示该属性是假的5。当跟踪重建ProVerif的失败,没有给出明确的答案。这种情况是不可避免的,因为的不可判定性
19、的问题。在我们的研究中,每当这种情况发生,人工检查所提供的推导ProVerif让我们重建对攻击财产:ProVerif证明总是失败对应的攻击。我们的读者参考14详细资料ProVerif和它背后的理论。3.2。一个ProVerif模型Plutus我们现在提出的Plutus ProVerif模型;,其安全性属性指定,并在第4节研究。3.2.1。加密基元,列表和整数我们抽象的加密基元函数符号,并指定它们的属性和重写规则方程以上条款。长期ENC(M,K)表示结果加密消息M用对称密钥K;重写规则月12日(ENC(X,Y),Y)! x模型的事实,即任何形式ENC长期(M,K)与K解密获得M.(X和Y是变量可
20、以匹配任何M和K)长期哈希(男)长期EXP(M(R,N)表示哈希消息M.)表示计算MOD北路议员我们的结果摘要RSA的随机种子新鲜名称。 N(S)表示种子S.模项e(S,K)表示独特的由模N(S)和基地K决定由指数这一事实是仿照第2节中描述的算法;重写规则:genExp(N(X),Y)! E(X,Y)D(S,K)是逆指数,解释第2节。这其实是仿照方程:EXP(EXP(Z,(D(X,Y),N(X),(E(X,Y),N(X)= ZEXP(EXP(Z,(E(X,Y),N(X),(D(X,Y),N(X)= Z最后,重写规则破解(E(X,Y),D(X,Y),N(X)! x模型的一个模N(S),可以有效地
21、“的因素”获得RSA的种子,如果这两个指数E(S,K)和D(S,K)是已知的17。我们允许作家和读者列出的模型集:nil是空的列表,和利弊(M,L)的延伸列表L withM;我们如果且仅当n是一个成员(N,L)链表L的成员同样,我们的模型版本号与整数:零0,整数SUCC(M)是继任者整数m,我们有GEQ(N,M)当且仅当整数N是大于或等于整数。以下条文定义谓词成员和GEQProVerif。成员(X,利弊(X,Y);成员(X,Y)的成员(X,利弊(Z,Y)。GEQ(X,X);GEQ(X,Y)GEQ(SUCC(X),Y)优雅的符号,我们有时会写0,1,。 。 。为为零,苏克(零)。 。 。 ,M?
22、 N为GEQ(M,N);和M 2升成员(M,L)。3.2.2。该协议我们适用Pi -演算进程模型校长事件14。非正式的:?输出(U,M),P通道上发送消息M名为U和继续进程P;一个特例是进程外(U,M),那里是没有延续。?(U,X),P接收一个通道上的一个消息M名为U,匹配模式X男,并继续必然要在X变量的进程P在M.这里条件匹配的X可能是一个变量x,匹配任何消息,并存储在x;模式N,只匹配的消息?;甚至一个更复杂的模式,如(= N,X),它匹配任何一对的第一个组件是N和存储其第二在X组件?新的M,P创建一个新名称米,并继续作为进程P?事件E(货币供应量M1,锰。),P执行事件E的供应量(M1,
23、。 。 。 ,MN),并继续作为一个特殊的过程P.情况下是一个过程,事件E“(货币供应量M1。,MN),其中没有延续。执行电子供应量(M1,。MN)只是记录,有一定的程序点已达到一定值的货币供应量M1,。 。 。 ,锰。这种事件用于指定的安全属性,在4.1节中解释。?如果M = M0则P elseQexecutes P IFM评估相同期限为M0,否则执行问:一个特殊情况下的过程,如果M = M0,然后P,其中有没有其他的延续。令X = P M计算男,与它相匹配模式X和匹配成功时,继续P在X变量绑定到匹配的条款m值?P | Q运行的进程P和Q并行。?!P运行无限数量的过程中副本P在平行。在图1,
24、2和3,我们定义流程模型业主,作家和读者的角色;指定的协议这些过程的并行组成。 (“存储服务器是假定在这一点上信任,因此不为蓝本。我们的研究服务器验证的写入和其属性)网络是仿照公共通道网,像往常一样,我们假设对手控制该网络。同样,文件系统为蓝本公共通道FS。另一方面,私人(安全)渠道不是对手。例如,rprivchannel(R)和wprivchannel(W)是私人渠道所有者发送键读者R和作家瓦特,分别。我们限制可能撤销的数量在任何集团maxrev。 (因此版本的数量是有界的。在这个级别的详细信息,ProVerif不会终止无限数量的版本。我们管理获得终止与无限数量的版本一个更抽象的处理,加密,
25、感谢ProVerif扩展优势的传递GEQ中,为了简化Horn子句。然而,我们不存在抽象的模型,在这里,因为错过一些,更发现袭击下面详细的模型。)首先,图1显示了业主的代码。一个所有者创建其私人/公共密钥对(2-5行),然后创建要求组(7-9行)。对于每个组,雇主保持在一个私人通道的currentState一些国家。(目前的状态是作为此通道上的消息进行,业主读取和写入接收状态此通道上发送的邮件。)国家包括当前版本号,允许读者名单和作家,密码箱的关键,该组的符号键。雇主为组创建密钥的初始版本(12-14行),在大多数maxrev的后续版本生成(17-21行),根据要求和分发这些密钥允许读者和作家要
26、求(行25-30和34-40)。密钥的生成和分布如下在第2节的轮廓。此外,业主的迹象每个版本用其私有密钥(38行)的弹性模量,发送该版本的作家(40行)签署模量,并发送其公钥,以飨读者,使他们可以验证该签名(30行)。事件模型运行时断言代码:例如,isreader(R,G,V)和iswriter(W,G,v)断言R是一个读者和W是一个版本在G组的作家诉下一步,图2显示了作家的代码。一个作家版本V克集团在获得密码箱键,符号键,和业主签订模量为V g的所有者(46-47行)。写入数据,一个诚实的作家加密与关键的Lockbox(50行),数据标志加密符号键(第51行),并发送签名加密文件系统的一个头
27、,其中包括ownersigned弹性模量(52-54行)。事件输出(W,M,G,V)断言,一个诚实的作家群G瓦特发送数m文件系统使用的版本诉相反的键,不诚实的作家泄漏的密码箱键,符号键和业主签订的模数(59行);对手可以使用此信息的行为,作家。本次活动的腐败(W,G,V)主张作家,G组的W是腐败的版本是V业主的守则让processWtr=4445! (净,(W,G)(*启动了G组*作家瓦特)46(净值,(wkeyreq,W,G);(*发送写密钥请求*)47(wprivchannel(W),(= G,V,LK,SK,SN);(*获得LK,SK,并签署了模数*)48(49(新的M;(*创建数据写入
28、*)让encx50= ENC(M,LK)(*加密*)51让sencx= EXP(哈希(encx),SK)(*符号*)52事件使(W,M,G,V)(*断言该数据米已写入版本V* W在G组)53让(DX,N)= SK54个(FS,(G,V,N,SN,encx,sencx)(*发送内容的文件系统*)55)56|57(在(净额=(腐败,W);(* W *收到请求腐败)58腐败事件(W,G,V);(*断言,W已损坏版本V* G组)59出(净,(LK,SK,SN)(* LK泄漏,SK,并签署模量*)60)61)。图2。作家守则62让processRdr=63! (网(R,G);(*主动为读者群G*?)64
29、出(净,(rkeyreq,R,G);(*发送阅读的关键要求*)65(rprivchannel(R),(= G,V,LK,ownerpubkey);(*获得LK和所有者的公共密钥*)66(67(FS,(= G,VX,N,SN,encx,sencx);(*获得头和内容,从文件系统*)68,如果哈希(N)= EXP(SN,ownerpubkey)(*头*验证签名)69(如果(V,VX)=(SUCC(零),零),然后70(让LK= EXP(LK,ownerpubkey)(*放松LK *)71让VK =(genExp(N,LK),N)(*派生VK*)72,如果哈希(encx)= EXP(sencx VK)(*验证签名加密*)73令x =月12日(encx LK)(*解密获得的数据*)74事件得到(R,X,G,VX)(*断言,读者R读取数据以x* G组和版本VX)75)76。 。 。77)78|79(净额=(腐败,R);(* R *收到请求腐败)80腐败事件(R,G,V)(*断言的R版本V* G组已损坏)第81条(净值,LK)(*泄漏LK*)82)83)。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1