Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage.docx

上传人:b****7 文档编号:24962513 上传时间:2023-06-03 格式:DOCX 页数:49 大小:41.50KB
下载 相关 举报
Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage.docx_第1页
第1页 / 共49页
Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage.docx_第2页
第2页 / 共49页
Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage.docx_第3页
第3页 / 共49页
Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage.docx_第4页
第4页 / 共49页
Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

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

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)。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1