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