长期完整性的分层容错 论文翻译.doc_第1页
长期完整性的分层容错 论文翻译.doc_第2页
长期完整性的分层容错 论文翻译.doc_第3页
长期完整性的分层容错 论文翻译.doc_第4页
长期完整性的分层容错 论文翻译.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

窗体顶端长期完整性的分层容错秉健春,佩特罗斯曼尼阿蒂斯英特尔研究大学伯克利分校斯科特Shenker,约翰Kubiatowicz美国加州大学伯克利分校摘要通常,容错服务有关的假设类型和故障,他们可以容忍的最大数量这种故障时,同时提供其正确性的保证;阈值是侵犯性,正确性丢失。我们重新审视的概念在长期归档存储方面的故障阈值。我们注意到,故障阈值不可避免地长期违反服务,使得传统的容错不适用长期的。在这项工作中,我们进行的“再分配容错预算“的一项长期的服务。我们分裂投入服务件的服务,每一个都可以容忍不同没有失败的故障数(并不会造成整个服务失败):每件可在一个关键值得信赖的过错层,它必须永远不会失败,或不可信的故障层,它可以大量经常失败,或其他故障层次之间。通过仔细工程的一项长期的服务分裂成片,必须服从不同的故障阈值,我们可以延长其必然灭亡。我们证明了这一点做法Bonafide,一个长期的key - value存储,与所有类似的文献中提出的系统,在保持完整性面对拜占庭故障,无需自我认证的数据。我们描述了分层容错的概念,设计,实施,Bonafide和实验评价,并主张我们的做法是一个实际仍未显著改善在长期服务的艺术状态。一,引言当前容错复制服务设计往往不适合长期的应用,如档案,数字文物,这是越来越重要的存储42,为企业的监管5,6,文化36原因。从典型的故障假设这不合适结果这类系统的正确性空调。例如,在典型的拜占庭容错(BFT)系统13,它是假定复制故障副本的数目总是比一些不太固定阈值,如副本人口的1 / 3。在典型的“短期”的应用,这样一个uniformthreshold基于故障假设是合理的,可以实现的。例如,可以说在一个wellmaintained人口多元化,高保证副本服务器,由当时总人口的三分之一被打破生长进入或刚刚出现故障,故障副本的运营商可以修复它们。因此,维修的数量减少有缺陷的副本,可避免出现违反阈值,从而保持系统的故障假设不可侵犯。不幸的是,这种推理分崩离析的应用部署一个长期的地平线,说几十年。而人口副本服务器可以振振有词“以及维护”足够数年,它是完美一时难以保障在长途的门槛违反。即使不可能相关的故障成为可能,给予足够的10。一旦违反阈值,然而简短的一段时间,系统的故障假设是侵犯,和正确性再也不能保证在任何时候之后的时间(2.1节)。在这项工作中,我们专注于存储应用与长期视野和设计复制的服务模式适合他们。我们观察到的,系统的可靠性在长时间跨度的组件可以显着不同。首先,复杂的,但正式未经认证的软件神器可能容易表现出的脆弱性;它和错误之间的所有时隔判决一个人的程序员。然而,正式验证展出软件工件可能需要更长的时间弱点:它不会表现出的错误反对它进行了验证,但也许假设下验证其正确性后,一个可能不再持有激进的技术变化(认为过渡作为这种变化的多处理器)的单处理器。到这种极端的理由,受信任的第三方,“组件”分布式服务,如根DNS服务器可能需要更长的时间以失败告终:例如,即使如果所有涉及硬件和软件组件作为指定的,可信的组件可能会失败,如果组织经营出卖给犯罪分子。我们认为而这种差异可能是深奥和短期服务的实际意义,它可能是一个无法回避的考虑长期应用。这个观察,带领我们到一个分层的故障框架如复制应用(2.2节)。这框架分割成不同的系统组件用于例如,软件和硬件;类写操作是在从不同的软件类用于只读操作和硬件。该框架将在所有节点上的一类的组成部分分别从另一个类,分配的组成部分层每个类一个单独的故障。更喜欢传统模型,在每一层的故障假设基于阈值的,但实际的阈值不同于层与层。例如,故障假设写操作组件的人口可能是一个典型BFT系统1/3threshold,而故障读操作组件的人口门槛可能会更高。没有这一提法的魔力:每个故障层本身就是受了故障阈值。然而,这种多层次的方法使我们的结构一个制度,以便在不违反操作不再其整体的故障假设。一个非正式可以查看这种分层的故障框架作为一个“重新分配的可靠性预算”在不同的硬件和软件组件跨越时间。这更强的故障框架意味着每个组件类不同的业务做法:高信任度的组件都必须正式核实,然后才部署,这可能意味着,他们只能在有限的功能或者说,他们经常运行,并简要大多脱线,以减少他们的攻击面而低信任的组件,可能会更大,buggier,连续运行。为了使事情具体,我们研究某类长期应用:一个真正的长期的键值商店。这样的设施是有用的,例如,作为一个寻找敏感数据给予一个humanmemorable的目录名称。一个例子是selfcertifying目录给出的一个文件中存储的文件名的humanfriendly名称。这种服务可以关闭循环以前提出的长期可靠的档案服务如冰川25,Oceanstore 31,帕加马49,和保存数据存储20,它可以承受拜占庭式的攻击作为客户端长仅持有selfcertifying数据项的名称。这使得超出范围在找到这些人不友好的名称的任务在未来的用户,更何况,今天的selfcertifying名称(例如,一个文件的SHA - 1散列)不会证明什么,在未来的技术在他们身后是击败(这是最近展示SHA - 1哈希的必然19)。Bonafide是这样一个关键值存储提供其下的正确性担保(完整性和活性)分层故障模型(第3)。 Bonafide分区操作一个key - value存储,分为三个班的组件三层基于阈值的故障假设的约束。最低,最容易出错的层的Bonafide是占领服务的过程中,为应对机制到客户端的只读请求(例如,寻找备份现有的键 - 值绑定)和缓冲,但不执行新的键值增加。中间层包含更新过程中,一批执行的全部缓冲键 - 值增加,但定期运行和只简单。最高一层包含一个最小的值得信赖的一个过时的设施,存储模块(MAS)的证明,这使容易出错的服务过程中的安全和保护更新过程的完整性。Bonafide提供担保只要没有组件值得信赖的顶级,比第三ofmiddle层组件失败,在同一时间少;任何数字底部层组件可能会失败。此外,像其他系统,如无忧15,Bonafide提供耐久性(即不失去存储键 - 值绑定)只要系统更快地创建数据副本比他们都将丢失。我们的原型实现提供了一个简单添加/接口和显示合理的性能(4节)。我们注意到,对于大多数积木Bonafide是借来的,从以前的工作,最显着的从受信任的原语,进行身份验证的数据结构,积极的恢复和BFT复制的状态机。这是结构Bonafide作为服务观察一个长期运行的分层故障的框架,我们声称小说。我们讨论Bonafide权衡和扩展第5,第6节中描述的相关工作,并得出结论在第7。2分层容错在本节中,我们展示了如何统一的faultthreshold系统模型是不适合长期应用,我们引入一个分层的故障框架考察其长期应用的可行性。虽然我们这里重点拜占庭故障的方法适用于弱类型以及故障。2.1故障假设侵犯我们在这里给出一个系统如何建立对卡斯特罗的例子和Liskov流行的实用拜占庭容错(PBFT)13协议的复制状态机打破了甚至故障阈值的瞬态违反。在数N,上层约束f PBFT副本允许使用副本定额(通常是大小2F + 1),以保护系统的安全性和活性,只要为N 3F。图1说明了一个人口N = 4时的副本,其中R1和R2的故障,违反PBFT的故障bound1(F = 1)。此外,非故障副本R0和R3不能暂时沟通彼此,例如,由于瞬态干扰如DOS从故障副本。客户端A发送REQ一个系统。两个发生故障的副本说服R0承诺,因为这三个执行REQ一个第一,他们形成了一个3 = 2F + 1法定人数。后来的客户端B发送REQ b以系统。两个发生故障的副本说服R3承诺和执行REQ B首先,因为R3从未只见REQ A.今后,所有的结果,这两个非故障副本发送回给客户,将依赖上的分歧全球系统的历史和国家的意见。因为只有2(= F + 1)匹配的答复是需要要说服一个客户端的结果,即使故障假设再次会见,因为一个错误的副本修好了,剩下的一个故障副本将永远能够证实R0世界someFigure 1的看法:一个例子,显示故障的潜在影响阈值冲突PBFT。黑色圆圈故障的副本(其中一个是主要的),灰色圆圈是正确的副本,和白色圆圈客户。当两个客户端C1和C2提交请求REQ在大致相同的一个副本和req b时间,但只有管理,以达到一个正确的,这两个副本的每个故障副本可以说服两个正确的副本分配相同的序列号不同的要求。客户端和R3的世界观向其他客户,保持了夏利无限期。崩溃故障容错复制状态机的基础上32协议做了Paxos拜占庭故障处理(即,假设一个明确拜占庭故障阈值0),他们可以有类似的如果拜占庭故障作物很少,并简要的问题。虽然不是所有可能的复制状态一般机协议,此图中,正好说明共同的趋势:一旦故障假设是违反(作为一个在传统BFT协议的门槛违反相同)系统无法提供其正确性保证再次,即使假设故障后恢复。在原来的PBFT协议的约束故障适用在系统的生命周期,假设,一旦副本变得故障不会恢复。 PBFT的作者制定PBFT公关,加强与一些协议硬件支持,试图修复故障的副本。因此,PBFT减少漏洞的长度在此期间,故障约束系统的窗口可能被破坏,即使比F故障可能发生在系统的生命周期,只要为故障经常修复足以使比F故障不断同时出现,系统维护其担保。PBFT - PR达到此修复使用主动恢复14:每个副本定期对硬件看门狗重新启动它从一个新鲜的软件安装只读介质(例如,一个CD - ROM),潮红的任何运行时代码自上次重新启动造成的损害。重新启动后,该协议的清理之前,它的服务状态追溯到进入正常运行。现在的窗口vulnerability2是连续两个时期之间的时间,成功跨越积极的复苏阶段副本的人口,这是比寿命短该系统。但是,如果违反了约束和F故障漏洞窗口内,该协议将失败再次。 2.2分层故障框架我们观察到,传统的故障模型大多世界提供了一个无论是好或坏的看法。节点故障是不正确的,有什么之间。然而,在现实中,不同的节点组成部分在一个复杂的系统表现出不同层次的容错;这其实也是在虫洞模型探讨短期应用51,53,我们比较我们方法与节中详细的虫洞模型6。在这项工作中,我们认为它可能是不可避免的长期服务使用一个分层故障框架,利用不同水平的可靠性,在不同的系统的组成部分。在此框架下,不同服务实现的组件类假定保持他们的号码(拜占庭)故障不同的阈值。我们相信,一个分层故障框架是可取的由于广泛的分化之间的软件和硬件组件。分化的一个来源来自不同的保证措施。硬件微处理器设计进行广泛的正式核查在生产,虽然极其复杂,往往表现出更少的错误和安全漏洞他们比典型的软件系统的实施。即使在软件世界,正式验证的组件可以严格证明其正确性保证根据具体的执行模型和结果,许多运行时错误和漏洞保护40,45。这种方法可以利用一些通过使用强烈的成功和性能成本类型的语言,如Java和C,它被吹捧作为更安全的环境,为建设强大的系统:他们提供了一个正式的保证,只要执行运行时实现语言的语义正确,没有应用程序将是脆弱的一些典型的系统缓冲区溢出的瘟疫一样。类似的保证提供基于语言的类型安全的操作系统奇异等27。一个分化的第二个来源是从护理系统部署:严密的物理访问控制,积极主动的硬件和软件的更换,反应灵敏系统管理,精心设计的防火墙入侵检测机制有助于保持出的威胁,可以利用任何漏洞目前系统的物理和逻辑接口组成部分。例如,这是一个软件组件易受特定的利用,通过SSH流量承担可以屏蔽,利用之间的防火墙互联网和组件之前丢弃所有SSH包他们到达54,或者如果它只是通信其他值得信赖的私人网络组件18,46。一个分化的第三个来源是从滚动采购的特点,在长期服务的软件andhardware技术。与典型“短期”的系统,它不是数据“流”通过硬件和软件,而是硬件“流”通过长期的服务和软件资料3:虽然服务需求不变,硬件变得过时,操作系统的发展,通信标准的发展壮大,和加密bestknown方法被打破,取而代之的是他们的继任。例如,假设一个值得信赖的逻辑组件永远不会失败,将需要昂贵的积极主动更换加密库或受信任的硬件平台,用于实现它,作为新的密码分析技术成为可能,更快的硬件介绍,保护处理器的新工艺从包中的物理或电气篡改成为可用。相比之下,少受信任的组件,能买得起落后国家的艺术,并使用复制或其他面具故障的技术,只有迁移到新的软件硬体更频繁,并可能在更低的成本。最后,故障的差异可能来自有限曝光。许多高保证体系,如认证当局保持敏感元件(如,他们的攻击签名密钥),主要或完全脱线,限制机会。拥有有限或潜在的服务成批的更新,但可以大多只读(或确实脱线与上线,不可信的代理21,30,33),可以相当有效地保护这种方式。有趣的是,有不平凡的依赖在所有这些来源的分化。例如,一个成熟的正确的系统,是一个值得信赖的经营组织是严格多个相同的可靠一个不可靠的组织运作的系统。由于去通常的安全系统“的真理,是一个复杂的系统作为其最薄弱环节的安全。这个简单的观察可以我们认为,长期的故障模型可以有效,切实构建在不同的系统组件属于不同的故障层次:在每一层,可以假设的理由,虽然不同的故障阈值该故障阈值可能意味着限制每一层的组件功能。例如,如果一个人认为,一个组件层是给予一个低故障阈值得益于其正式验证,该组件不能过于复杂:形式化验证无论是在仍然是一个非常昂贵的命题人的努力和计算资源方面56。同样,一个层的故障阈值是有道理的,其其余大多脱线最好只对应该服务可以承受定期执行的功能分批进行。3 Bonafide我们在本文的目标应用是一个键值Bonafide存储在一个分层的故障模式旨在提供长期的完整性usingreplication。我们的动机建立一个长期的key - value存储不仅作为为系统建设的方法,我们介绍的情况下研究早期的文件,而且还因为它是从根本上需要归档存储系统作为冰川25,OceanStore 31,帕加马49,并保存数据存储20,而这样的系统提供耐用性(数据丢失保护)和真实性,他们需要数据和对其真实性自我认证持有物业:客户端需要获取从档案系统的文件必须有一个验证如一个文档的加密哈希内容,以确保服务返回什么没有被修改;没有这样一个客户端认证者无法获得任何真实性保证从服务。我们寻求建立一个存档服务正是这种身份验证的间接提供:它可以用来从URL或查询服务一个人类可读的名字组成的随机位身份验证,然后可以用来获取实际从冰川,Oceanstore,或类似系统的文件给他们。在最简单的情况下,像Bonafide这样的系统提供一个最小的接口:客户端调用Bonafide的添加(键,值)的方法来存储和维护特定键 - 值对,如果没有这样的关键是已经被保留,和(钥匙)价值的方法取得任何存储键 - 值由该密钥对,如果存在。服务是追加只。有没有方法删除或替换现有的键 - 值对。我们使用追加只接口简单,它不是一个要求。3.1设计原理我们采用分层故障框架背后的直觉试图通过重构服务功能如进入一个更可靠的故障状态层Bonafide变化和回答只读层一个不太可靠的故障状态问题(即GET请求)。在符合针对不同的故障层的理由,我们作出可靠的,状态改变的功能主要是脱线,运行定期批次执行状态的变化(缓冲,但不执行附加请求在大多不可靠的运作系统)。这样一个高层次的设计,特别是一个挑战当使用商品硬件,隔离之间的可靠和不可靠的组件类。卡斯特罗和Liskov方法punctuates系统的时间轴与定期的软件刷新,其中可以帮助系统的故障登山对故障阈值从悬崖。不幸的是,一旦系统孤立消失越过悬崖,即使是错误的数量莫名其妙地减少了故障阈值再次dataFigure 2:Bonafide操作以下。每个Bonafide副本候补服务期(S期)和更新阶段(U相)。不能孤立故障违反之前和之后的变化,造成损失的安全和活性保证。为了应对这一挑战,我们要求我们的第三,最在自己的顶级故障层组件的可靠类:为保护国家在执行过程中的一个值得信赖的机制不可靠的组件类。这种机制不仅是非常关键的,但甚至不能大多脱线;结果,以确保其故障阈值是合理的,我们必须非常简单。对于Bonafide的顶级组件类,我们使用一个过时,证明存储(MAS)的设施,类似于密封贮存现代可信平台硬件提供的机制4。该工具允许我们非常可靠存储少量的内存,只允许可靠阶段变化的机制来更新此存储。第二个挑战是,我们的中间层,可靠状态改变机制必须以某种方式能够其组成部分有经验的面具故障。我们使用拜占庭故障容错复制状态机的方法实施这一中间层的机制。然而,因为这中间层主要是关闭,我们需要系统的所有节点在同步执行该层时尚,这意味着宽松的时钟同步为执行此层相当长的时期。我们描述了如何放松对时钟同步的要求和同步执行的状态机在5.2节的复制。最后一个挑战是搞清楚如何使用我们非常有限的存储证明,以保护一个潜在的大服务状态。我们采取的方法是使用身份验证数据结构,它允许任意的完整性大,结构化数据是由一个小的保护加密摘要。3.2概述Bonafide是一个复制的服务副本运行,R =1,。 。 。 N(N = 3F + 1)。副本操作交替同步阶段有两种类型:服务阶段(S期)和随后的状态更新阶段(U相)(图2)。在第i个S期,要求能查询服务承诺的状态(即,取bindingTable 1:在Bonafide组件及其相关的故障层。已加入)(I - 1)- ST U相。添加请求缓冲和执行后的第i个结束S期,在第i个U相。换句话说,服务一批国家发生变化,只有在U相。Bonafide由三个组件类(可信存储,状态更新和服务),其中每个属于不同的故障阈值故障层。表1总结Bonafide故障层。状态更新组件包含副本的状态更新过程中,操作系统和硬件,不包括值得信赖的顶级,和副本的服务组件包含服务的过程中,不包括,操作系统和硬件的值得信赖的顶级。此外,Bonafide以下的标准,部分同步假设活性。在网络中,丢包,reorderings和重复发生,但消息的重发最终交付。然而,虽然有限的上限存在邮件传递和操作的执行时间,这些界限不协议实体。这是一个标准的网络假设拜占庭容错系统,而不是唯一以Bonafide。根据这种分层故障假设,Bonafide保证服务的安全性,也就是返回的数据的完整性。然而,以保证耐久性以及(即,没有数据丢失)系统应创建数据副本他们的速度比丢失,系统,如无忧15。此外,为确保活性(即非饥饿状态)S期最多2 / 3的故障副本必须发生曾经在一段时间(更确切地说,在有限数量在所有的时间点)的阶段。这是确保一个添加请求必须重新提交客户端数量有限时代之前,它最终担任一个U相。一个Bonafide节点包含的MAS以及缓冲区暂时添加请求和主要数据保持致力于绑定的结构(图3)。Bonafide,服务状态的键 - 值对的保持作为一个哈希树37的变化,计算一个从整个国家的加密摘要叶,存储在树的根。个别结果状态查询(即,关键在树中查找)对验证,根精华,只要消化是保持被篡改的安全,个人查找由一个不受信任的服务组件,而不用担心一个完整的侵犯。这种状态是复制在不受信任的存储系统(底部的每个副本层),但其根消化大小(1千位在秩序今天的硬件)是存储在每个节点的MAS。每个副本的MAS模块是在其最值得信赖的的故障层:我们认为在服务期间没有MAS模块返回比那些存储在其他的内容。我们使用MAS的服务状态的根精华,因为它加密保护任何有关答复的完整性该国甚至是不可信的组件提供。服务状态更新在U相,调用信任的一个最值得信赖的故障的看门狗层。在U相,所有缓冲写入商定非故障的副本,使用状态机复制协议,然后体现在服务的状态,以取代每个replicasMAS完整消化。 U相Bonafide层下一个最值得信赖的的故障:我们假设没有超过三分之一的副本更新软件可以同时出现故障,以确保国家机器复制协议的安全性和活性保证必须坚持在一个单一的U相。服务状态提供给客户端的S阶段。的反应,以获取/添加请求被接受F + 1副本时返回给客户端相同的客户端结果,每个结果符合相应在它的MAS模块副本的服务状态消化。 “F + 1号来自绑定更新的故障层,它假定没有比F更新过程可以因此,在任何一个U相故障;不超过f更新过程可以把正确更新的摘要到自己的MAS的。如果相同的响应客户端请求提供至少F + 1不可信的服务流程,但由F 1值得信赖的国家的支持摘要金管局,保证客户端得到什么,至少提供一个正确副本。在最坏的情况下,客户端将接收没有有效的反应或反应显然无效从副本,然后再试一次。此外,服务状态审计(潜在的存储故障或其他位损失)修复过程中,S期。在协议层,Bonafide提供以下财产安全。如果添加或获取操作收集F + 1匹配的答复不同的副本,得到的答复是正确的。换句话说,有一个串行附表致力于绑定,一旦有约束力的承诺,看到客户。这是类似的完整性保证其他长期存储系统,但不像他们,Bonafide可以采取任何键“名称”寻求数据价值,不仅是自我认证的名称。在本文中,我们将讨论只是增加了,但拥有财产安全的Bonafide甚至当有删除或替换系统的API。除了安全性,Bonafide提供以下活性财产。如果添加操作收集2F 1暂定从不同的副本,确认绑定图3:Bonafide节点包含以下状态显示在图中的MAS,一个缓冲区添加请求暂时和一个助攻,保持致力于绑定。MAS存储AST根精华,序列号,和一个检查站证书。左边显示的get,加,审计/修复运行在S期的进程,并有权侧面说明了更新的过程中,运行在U相。 “箭头显示处于何种状态的进程访问。ING集团是保证致力于在U相有最多f在S期的故障,在此期间,调用操作。如果有比F故障在S期,添加操作不保证绑定在U相犯,因为故障副本可以发送伪造的暂定确认。一个Bonafide根本限制是,它是不是耐常见的拒绝服务攻击,如,名称蹲。在现有的所有档案系统我们都知道的,有缺陷的客户端可以插入任意绑定到Bonafide,防止利用合法客户端这些绑定。接下来,我们详细的服务状态和组件的功能Bonafide。3.3 Bonafide国在Bonafide,服务状态(键 - 值的集合绑定)保持作为验证的搜索树(AST)。一个AST 11是一个渐进的机制保持加密消化超过排序的数据集(如按键排序的键 - 值对),延长37搜索传统Merkle树的概念。每节点包含一个键 - 值对和验证标签。 AST节点的标签是通过散列计算连同它的所有子节点的内容和标签。树的根标签是一种加密的消化树的全部内容:它是抗碰撞,这意味着它是棘手的,发现两种不同的数据集高产相同的AST消化,因此,它可以作为承诺的内容助攻39。Merkle树,一个简洁的见证(有时也称为证明),可以产生显示一个特定的键 - 值对出现在一个AST根标签。 Merkle树不同,助攻也可以提供一个简洁的证人没有出现在它的一个关键。证人在数数的长度键 - 值对包含在树。每个Bonafide副本维护一个典型的助攻(不可信)存储包含键 - 值集合对排序键,一个接收缓冲区,但尚未提交客户端添加新的键值对,也请求在不受信任的存储和MAS内有两个插槽其值得信赖的硬件设备(见3.4节)。新加坡金管局标识符QS值的形式存储的插槽S,R其中S是最新的助攻消化和R是一个整数序列与特定的U相关联的编号。 “标识符QC插槽存储描述一个检查站证书在3.6节。最后,副本知道对方的公共密钥和硬件设备的公共密钥。3.4顶级:可信加密:我们假设标准加密原语(primitive)的数字签名和哈希。这些原语在顶级的故障模式属于(他们在几乎所有的系统研究和实践)。在保持我们的“滚动式采购”这种信任的参数过长时间(2.2节),我们假设加密是取代与最新的技术,算法,和密钥大小以及前的妥协是,即使可行更不用说实际(见5.2节草图这是如何实现的)。对于一个管理系统,这是合理和可行的方法。简炼,我们用中号IA消息M表示数字签名主要一副本我的信任的硬件设备(即,它的MAS主要)是主要的我“。如果M没有签名,没有标在符号。可信硬件:Bonafide依靠的存在对每个副本系统中的可信硬件设备8。今天,这种装置可以在实施可编程的,防篡改的安全协处理器作为IBM的市售PCIXCC 8板,但与实施的便宜值得信赖的替代品可信计算平台的到来,从英特尔(如英特尔 TXT)和AMD(普雷西迪奥)管道。为了帮助定期进行恢复操作,此设备包含一个时间源(这可以是一个普通的,单调的,基于晶体的时钟源上绑定一个上限漂移,或收到的外部信任的时间源如GPS设备)。一个硬件看门狗,也包含内,使用此时间源,以触发积极的定期回收,所造成的主机重新启动,从读onlymedia。这种硬件看门狗设置模式位与它相关的MAS。此位是用来表示该系统是在其U相,并不能在任何设置时尚比其他触发看门狗。该模式然而,位操作系统复位。通常这样做是在U相,而软件仍在信任的中间层。在S期,不再信任的操作系统当然resetthis位,但位复位是幂等的,所以这行为不检是无效的。这种模式位有时也被称为粘寄存器。最后,该设备包含一个简单的界面的MAS。的MAS包含一个模式位,并存储设置插槽,每个标识由一个标识符问“写接口的MAS是商店(Q,V),其中V是一个价值;这个店V至槽标识符问此接口允许模式位指示请求只当一个U相正在进行中。 MAS的阅读界面允许访问所有的时间。它允许的证明,新鲜的检索任何插槽;查找(Q,Z),其中Q是一个插槽标识符和Z是用于新鲜度(通常提供一个nonce由客户端),返回LOOKUP,Q,V,Z,T,米我“,其中V是目前占领标识符的Q插槽的价值MAS的,T是在设备内部,M是当前模式位,和我“是硬件设备的主体。如果插槽是空的,那么V =空返回认证。在我们自己最近的工作,我们已推出一个证明附加记忆体(A2M)16,我们比较详细A2M在第6 MAS。目的是为会员管理:Bonafide良好的配置,低流失节点基础设施。自成员流失低,节点成员手动管理。会员管理是概念还相信,在顶级的故障模式。我们将讨论如何扩展Bonafide自动化成员在中间层的管理,通过重构它在5.2节MAS。3.5底层:服务流程在S期,每个Bonafide副本运行添加/过程中,为客户端请求,并连续审计在耐用性的背景和修复过程。伪服务过程中,在图4中给出。获取:当一个客户端C调用(K)检索密钥K值,其Bonafide存根(称为代理下面)组播的GET,K,Z,CC消息到RZ是新鲜感使用一个随机数和等待为F +1答复,我,V,PI,LOOKUP,QS,SI,RI,Z,T,M我有效匹配的邮件确认(K,V)内在AST,AST,或(K,V)不存在。请注意,认证包括nonce的客户端发送,以确保它不接受一个陈旧的响应。一个副本寻找它的关键在处理GET其本地的AST和生产存在/不存在证人,伴随着它的最新的MAS认证。添加缓冲:当客户端C调用添加(K,V)插入密钥K和值v,Bonafide之间的绑定客户端代理代码组播地址,K,V,Z,CC至R。“客户端等待为2F + 1暂定确认,每个这是ATENTREPLY,K,V,Z,C我的消息在那里我是从不同的副本,副本标识符。如果clientCLIENT.GET(关键)/ / quo_RPC发送味精为R,收集匹配的响应非*/ /从一个给定大小的的法定人数的领域,转发关于超时答复,*,价值,见证,quo_RPC(的GET,关键,F + 1)返回值我SERVER.GET(客户端,键)/ /这是服务器的I价值,见证lookup_AST(关键)ATTlookup_MAS(QS)/ /认证发送给客户端一个答复,我的价值,证人,ATTCLIENT.ADD(键,值)TENTREPLY,*键,值quo_RPC(地址,键,值,2F +1)/ /在这一点上,客户持有一个初步的答复在未来的S期收集回复消息/ /(F + 1有效的,匹配的答复是收集)返回接受(键,值)SERVER.ADD(客户端,键,值)我(键,值“在助攻),治疗作为获取并返回添加客户端,键,值添加发送客户端TENTREPLY,我,键,值SERVER.AUDIT(ASTNode,hASTNode)状态检查ASTNode,hASTNode(无效状态)修复ASTNode / /获取来自其他为每个孩子ASTNode彗星载于ASTNode标签审核(C,HC)/ / HCSERVER.START_SERVICE(Committed_Adds)我/ /添加在以前的U相犯的答复每个关键,价值,客户端Committed_Adds发送给客户端一个答复,我的价值,证人,ATT图4:简化服务过程中的伪代码。超时内没有收到响应,它假定该请求已被删除网络,所以重传请求没有副本回应。请注意接收2F +1暂定确认是一种暗示,这意味着具有约束力的很可能是承诺。客户端不执行任何操作这取决于约束力的承诺,不能撤消。我们的活跃度的保证,确保客户端将得到最后的承诺(见下文)为每接收一个未提交的数量有限后添加2F + 1个这样的提示。客户端还为提交异步等待回复MAS的证明形式的消息答覆,I,V,PI,LOOKUP,QS,SI,RI,Z,T,M我(认证是的MAS查找的结果)。这些消息由副本发送下开始S期。一个答复是有效的,如果证人PI验证存在键 - 值对在一个AST(K,V)消化SI,和认证是正确签署的的发件人的MAS。只要客户端代理获得F + 1有效的从不同的副本相匹配的答复,所有确认除了相同的键 - 值对,它接受要求为完成,并通知应用程序。在S期,只有缓冲区副本添加和每个地址发送一个TENTREPLY消息。它可以处理在U相的ADDS。副本也重新SERVER.UPDATESTART()我PBFT.Invoke(批次,我stable_ckpt_cert,添加我)SERVER.FINALIZE()我SERVER.EXECUTE(批)I / / PBFT执行回调追加一批在batch_log在收到的2F + 1 - ST一批:选择batch_log最新stable_ckptAllAdds添加每批工会每个关键,价值,客户端AllAdds修复助攻这一新的关键路径,如果需要的话插入AST键,值插入关键,价值,客户到Committed_Addsstore_MAS(QS,ASTRootDigest)组播一个UCHECKPOINT和冲洗batch_logSERVER.FINALIZE()我接收2F + 1个符合UCHECKPOINTs:store_MAS(QC,stable_ckpt_cert)复位看门狗定时器模式位开始一个新的S期图5:更新过程中的伪代码。打开已分配增加了现有的映射名称。在接下来的S期,副本响应新插入的答复消息添加。平均(承诺)新的绑定将响应时间对S期的长度秩序。审计和维修:审计和修复过程,确保所有从AST根访问的AST节点正确地储存。这个过程是递归的,开始其中hASTRoot SERVER.AUDIT(ASTRoot,hASTRoot)助攻根的消化和遍历树秩序,在此期间,树节点从存储中提取如果仍然可以通过计算其散列值验证并在标签中包含的哈希进行比较它的父节点。对于每一个失踪的消化H,副本我的AST节点多播一条REQASTNODE,我,h我请求为R,等待至少有一个RESPASTNODE,H,ASTNode响应。响应不必签字,因为副本验证其完整性的递归哈希助攻。只要在受信任的根消化仍MAS的,其余的AST节点的自我证明。3.6中间层:更新过程信任的看门狗定时器到期时,系统开始重新启动从只读介质,其安全主动恢复软件。主要责任U相是提交到一个新增加主要服务的状态。在U相,系统结束确保至少2F 1副本存储最新的服务国家消化(见伪图5)在MAS。14复制状态,我们使用PBFT协议个人阶段的机器,虽然任何BFT状态机器复制协议会的工作。 PBFT提供一个同步调用(请求)方法,返回一个响应。一个PBFT客户端(这是一个副本的U PHASEIN我们使用的协议)使用此方法来提交应用程序请求的缓冲添加请求副本并最终收到包含结果的答复。PBFT还提供了一个执行(请求)回调副本,调用应用程序代码的过程订购的客户端请求,执行实际的插入加入服务的状态的键绑定。副本之间交换的所有消息都包含一个新鲜认证后从MAS目前牵强U相开始显示模式位必须和时间戳必须是最近的。举目无亲通过的消息本证明是无效的和下降的。这是为了确保该更新操作,包括PBFT调用,他们重新启动的节点阶段。这样的节点而导致的任何故障是由于更新过程中的故障,我们中间的故障由F层的边界。更新开始了其挂起每个副本包添加(由表示)和最新的稳定检查站(即,2F + 1个符合金管局前证明获得MAS插槽QC轮)(由政务司司长表示)成BATCH的,我,CS,一个我消息,它提交PBFT的Invoke。应用程序状态机:更新状态机,执行批处理请求PBFT,商店订购为了批处理请求,直到它接收到2F + 1 - ST他们从不同的副本。后续批次忽略,以确保活性(没有副本的方式知道多少批,他们可以期待超越2F + 1 - ST)。请注意,如果在最f故障S期,有至少有一个正确的副本提交每个请求的客户端收到2F + 1暂定在S期的确认,排除饥饿。只要有没有这样的S期不时比F故障,系统会进展。在接收(2F + 1)- ST批次,应用程序状态机挑选最新的稳定检查站,并所有的联盟增加了跨所有2F + 1批次。它的订单根据一致的顺序(例如,通过的ADDSh(KvC),验证客户端的签名,并插入所有有效的对进入该命令中的AST,忽视键已经存在。副本计算新的助攻消化小号*我的序列号R *我(= R + 1),商店QS槽进入其金融管理局和组播R一UCHECKPOINT,查找,QS,S *I,R *我,T,M我的消息。副本时收到2F + 1个符合UCHECKPOINT消息时,它设置为存储在MAS插槽QC一个新的稳定的检查站证书。如果一个副本的旧服务国家是不是最新的,它必须执行状态转移,如下所述。副本时获得一个新的稳定的检查站证书,它复位看门狗定时器D,这是剩余时间,直到下一个U相,并到其退出S期的节点otherthan副本开放的沟通和复位模式变量。在开始新的S期,副本发送回复消息对所有新插入的补充,如前面所述。状态的转移:最新的副本,缺少实际的服务状态(例如,因为有些人的AST节点损坏),可申请过程中使用相同的修复过程S期获得他们所需的AST节点成批的ADDS。前阶段可以结束,副本的MAS必须包含最新的稳定检查站。一个缓慢的副本背后可能获得通过执行其检查站商定的写操作。然而,稳定的检查站的广播通过这些副本,分别达日期允许一个缓慢的副本追加到该国消化它的MAS,从而赶上与他人进入以未来的S期。单协议优化:设计描述需要至少1 2F PBFT调用,每批次之一,在每个阶段。在最坏的情况下,每次调用需要3个网络往返时间,无形中增加U相任务的延迟,从而增加U相,在长期减少的最低期限系统的可用性。相反,更新过程中可以做预处理,以创建一个建议消息包含至少2F + 1批信息,而只提交该提案PBFT。这种优化复制通过引入PBFT主要功能一个领导者,以收集批次消息。按成本更大的复杂性,这种优化可以使所有使用可用批处理的消息,不只是第一2F + 1消息副本产生,也减少了worstcase数所需的往返时间。我们的实现使用这种优化。了其待每个副本包增加了一个和CS从金管局获得最新的稳定检查站槽QC成BATCH的,我,CS,一个我消息,筛选出这些增加了对已分配的密钥,并广播一批一旦领导人副本到R(定义见下文)收集至少2F + 1这样的消息,包括它自己的,它它们打包成一个提出的信息,提交PBFT援引拜占庭协议。在执行PBFT回调,副本,确保建议集包含至少2F + 1批次从不同副本。如果是这样,它运行的功能来更新服务状态,其余的U相是相同的。在每个U相,上述领导人副本(L MOD N),其中R是目前U相轮数。领导人可以胡作非为,可以通过推迟一个提出在信息传输,或通过发送一个不正确的消息。后一种情况下可以被发现在执行PBFT回调,可谓以上。一个非故障副本可以检测前通过设置一个计时器尽快组播其BATCH的情况下包括在建议的消息,它已无大碍时停止encountersits自己BATCH的批次在执行回调;如果计时器到期,然后副本发起一个领导者的变化。为了避免不必要的因领导人的改变瞬态缓慢,副本不连续的领导者指数退避改变灌顶。负责人的变化是类似的建议形成:启动改变,副本多播一条LEADERCHANGE消息,未来的领导者(L + 1 MOD N)侦听。当领导人收集2F + 1这样的请求,打包成一个单一的LEADERCHANGEREQUEST,它提交给PBFT;执行这一请求增量L,完成领导人的改变。请注意,领导者的角色类似,但无关PBFT小学作用; PBFT的内部运作,包括初级分配和观点的变化,是不透明的U相功能。3.7正确性根据分层故障假设,Bonafide提供完整的财产。简言之,它足以表明,任何具有约束力的承诺,保证在未来的安全(如果返回,这是正确的绑定)和生活(如果有在大多数f故障的副本,只要2F + 1副本已确认收到添加请求,约束力将被添加)。我们通过连接客户知道(暂定确认2F +1)到U相的条件,并从有到状态机复制的步骤。我们推迟详细附录A的参数4实验评估在本节中,我们目前实施Bonafide和评估其性能。4.1实施为了验证我们的设计,我们开发了一个原型Bonafide实施。我们实施“添加/背景审核和维修,并优化版本Bonafide更新过程中(不包括领导人选举)在C / C + +中的Fedora Core 6。客户端和服务器沟通与财经事务局局长的异步执行太阳RPC 47在sfslite库3。客户 - 服务器通信的签名认证,我们使用ESIGN与NTT的2048位密钥。客户端使用代理,它Bonafide的本地存根代码,执行添加/ Get操作。服务器维护金管局,AST和一个缓冲的日志增加。 MAS是作为一个图书馆和实施,它使用NTT的ESIGN签名的2048位密钥以及。我们作为一个使用SHA - 1安全的散列函数。在U相的拜占庭式的协议,我们使用PBFT库14移植到Fedora Core 6的。 PBFT使用消息验证互助委员会。在更新过程中,表2:(一)获取和添加时间。 (二)审计和维修时间。每一个节点上运行的更新服务器和PBFT复制状态机。领导者的更新服务器创建一个建议消息,并调用PBFT协议在人口上达成共识的建议,得到哈希的建议。达成协商一致时,每副本提取从领导者

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论