Accountability for distributed systems

dc.contributor.advisorDruschel, Peteren_US
dc.creatorHaeberlen, Andreasen_US
dc.date.accessioned2018-12-03T18:32:36Zen_US
dc.date.available2018-12-03T18:32:36Zen_US
dc.date.issued2009en_US
dc.description.abstractNodes in a distributed system can fail for many reasons, such as bugs, misconfigurations, hardware failures, intrusions, or insider attacks. Once a node has become faulty, its behavior can change arbitrarily. In benign cases, the node might simply stop; in less benign cases, it might actively try to subvert the rest of the system. A reliable distributed system must have a way to handle such faults. In this thesis, we explore a novel approach to this problem, which is based on accountability. In an accountable system, each node records its past actions in a tamper-evident log, and nodes inspect each other's log for signs of misbehavior. When nodes become faulty, the other nodes can eventually detect this, and they can obtain evidence that irrefutably links the fault to a faulty node. At the same time, correct nodes can always defend themselves against any false accusations. We characterize the class of faults that can be detected with our approach, and we show that it includes any fault that causally affects at least one correct node. We also present a set of techniques for enforcing accountability, including an algorithm for tamper-evident logs, and two techniques for detecting faults in the log: One relies on state machine replay to check a node's behavior against a reference implementation, while the other checks the logs against a declarative specification of the expected behavior. Each of these techniques can be applied to a wide range of distributed systems. To demonstrate that accountability is widely applicable, we have added it to several different types of systems, including a decentralized email system, a server-based file system, a peer-to-peer content distribution system, the Internet's interdomain routing system, and two multi-player games. In each case, accountability was able to detect a variety of problems that were previously reported in the literature. This shows that accountability is very general and can supersede a number of existing defenses. Our evaluation shows that accountability is practical, that its overhead is reasonable, and that it can scale to large numbers of nodes.en_US
dc.format.extent205 ppen_US
dc.identifier.callnoTHESIS COMP. SCI. 2009 HAEBERLENen_US
dc.identifier.citationHaeberlen, Andreas. "Accountability for distributed systems." (2009) Diss., Rice University. <a href="https://hdl.handle.net/1911/103683">https://hdl.handle.net/1911/103683</a>.en_US
dc.identifier.digital304987486en_US
dc.identifier.urihttps://hdl.handle.net/1911/103683en_US
dc.language.isoengen_US
dc.rightsCopyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.en_US
dc.subjectComputer scienceen_US
dc.subjectApplied sciencesen_US
dc.subjectAccountabilityen_US
dc.subjectDistributed systemsen_US
dc.subjectFault detectionen_US
dc.subjectReliability Securityen_US
dc.titleAccountability for distributed systemsen_US
dc.typeThesisen_US
dc.type.materialTexten_US
thesis.degree.departmentComputer Scienceen_US
thesis.degree.disciplineEngineeringen_US
thesis.degree.grantorRice Universityen_US
thesis.degree.levelDoctoralen_US
thesis.degree.nameDoctor of Philosophyen_US
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
304987486.pdf
Size:
7.9 MB
Format:
Adobe Portable Document Format