SPORC: Group Collaboration Using Untrusted Cloud Resources

SPORC: Group Collaboration Using Untrusted Cloud Resources

SPORC: Group Collaboration using Untrusted Cloud Resources Ariel J. Feldman, William P. Zeller, Michael J. Freedman, and Edward W. Felten Princeton University Abstract selves is a source of users’ privacy angst, as privacy poli- cies may be weakened due to market expediencies. Finally, Cloud-based services are an attractive deployment cloud providers face pressure from government agencies model for user-facing applications like word processing world-wide to release information on demand [15]. and calendaring. Unlike desktop applications, cloud ser- This paper challenges the belief that applications must vices allow multiple users to edit shared state concurrently sacrifice strong security and privacy to enjoy the bene- and in real-time, while being scalable, highly available, fits of cloud deployment. We present a system, SPORC, and globally accessible. Unfortunately, these benefits that offers managed cloud-based deployment for group come at the cost of fully trusting cloud providers with collaboration services, yet does require users to trust the potentially sensitive and important data. cloud provider to maintain data privacy or even to oper- To overcome this strict tradeoff, we present SPORC, a ate correctly. SPORC’s cloud servers see only encrypted generic framework for building a wide variety of collabo- data, and clients will detect any deviation from correct rative applications with untrusted servers. In SPORC, a operation (e.g., adding, modifying, dropping, or reorder- server observes only encrypted data and cannot deviate ing operations) and will recover from the error. Much from correct execution without being detected. SPORC like SUNDR [24], SPORC bases its security and privacy allows concurrent, low-latency editing of shared state, guarantees on the security of users’ cryptographic keys, permits disconnected operation, and supports dynamic and not on the cloud provider’s good intentions nor on access control even in the presence of concurrency. We some threshold-like protocol between servers [9] that is demonstrate SPORC’s flexibility through two prototype susceptible to administrative or software attacks. applications: a causally-consistent key-value store and a SPORC provides a generic collaboration service in browser-based collaborative text editor. which users can create a document, modify its access con- Conceptually, SPORC illustrates the complementary trol list, edit it concurrently, experience fully automated benefits of operational transformation (OT) and fork* merging of updates, and even perform these operations consistency. The former allows SPORC clients to execute while disconnected. The SPORC framework supports a concurrent operations without locking and to resolve any broad range of collaborative applications. Data updates resulting conflicts automatically. The latter prevents a are encrypted before being sent to a cloud-hosted server. misbehaving server from equivocating about the order of The server assigns a total order to all operations and re- operations unless it is willing to fork clients into disjoint distributes the ordered updates to clients. If a malicious sets. Notably, unlike previous systems, SPORC can auto- server drops or reorders updates, the SPORC clients can matically recover from such malicious forks by leveraging detect the server’s misbehavior, switch to a new server, OT’s conflict resolution mechanism. restore a consistent state, and continue. The same mech- anism that allows SPORC to merge correct concurrent 1 Introduction operations also enables it to transparently recover from attacks that fork clients’ views. An emerging class of cloud-based collaborative services, From a conceptual distributed systems perspective, such as online document processing and calendaring, pro- SPORC demonstrates the benefit of combining opera- vides users with anywhere-available, real-time, and con- tional transformation [11] and fork* consistency proto- current access to shared state. Their deployments on man- cols [23]. Operational transformation (OT) defines a aged cloud platforms enjoy global accessibility, high avail- framework for executing lock-free concurrent operations ability, fault tolerance, and elastic resource allocation and that both preserves causal consistency and converges to a scaling. Yet these benefits have come at the cost of having common shared state. It does so by transforming opera- a fully trusted server, creating a risk of privacy problems tions so they can be applied commutatively by different due to server-side information leaks. The history of such clients, resulting in the same final state. While OT origi- services is one rife with unplanned data disclosures and nated with decentralized applications using pairwise rec- malicious break-ins [24]. Indeed, the very centralization onciliation [11, 18], recent systems like Google Wave [44] of information makes cloud providers high value targets have used OT with a trusted central server that orders and for attack. Further, the behavior of service providers them- transforms clients’ operations. Fork* consistency, on the other hand, was introduced as a consistency model for Each client, even if it is controlled by the same user as interacting with an untrusted server: If the server causes another client, has its own local view of the document that the views of two clients to diverge, the clients must either must be synchronized with all other clients. never see each others’ subsequent updates or else identify the server as faulty. 2.1 Goals Recovering from a malicious fork is similar to recon- We designed SPORC with the following goals in mind: ciling concurrent operations in the OT framework. Upon detecting a fork, SPORC clients use OT mechanisms to Flexible framework for a broad class of collabora- Because SPORC uses an untrusted server replay and transform forked operations, restoring a consis- tive services. which does not see application-level content, the server is tent state. Previous applications of fork* consistency [23] generic and can handle a broad class of applications. On could only detect forks, but not resolve them. the client side, SPORC provides a library suitable for use This paper makes the following contributions: by a range of desktop and web-based applications. 2 We identify and explore the conceptual connection Propagate modifications quickly. When a client is § between operational transformation protocols and the connected to the network, its changes to the shared state fork* consistency model, and use this connection to should propagate quickly to all other clients so that clients’ motivate SPORC’s design. views are nearly identical. This property makes SPORC suitable for building collaborative applications requiring 3 We describe SPORC’s framework and protocols for § nearly real-time updates, such as collaborative text editing real-time collaboration. SPORC provides security and instant messaging. and privacy against both an untrusted server that me- To allow diates communication and other clients that lack ac- Tolerate slow or disconnected networks. clients to edit the document while offline or while experi- cess control permissions. encing high network latency, clients in SPORC update the 4 We demonstrate how to support dynamic access con- § document optimistically. Every time a client generates a trol, which is challenging because SPORC supports modification, the client applies it immediately to its local concurrent operations and offline editing. state, and only later sends it to the server for redistribu- 5 We describe how clients can detect and recover tion. As a result, clients’ local views of the document will § from maliciously-instigated forks. We also present a invariably diverge, and SPORC must be able to resolve checkpoint mechanism that reduces saved client state these divergences automatically. and minimizes the join overhead for new clients. Keep data confidential from the server and unau- 6 We illustrate the extensibility of SPORC’s pluggable thorized users. Since the server is untrusted, document § data model by building both a key-value store and a updates must be encrypted before being sent to the server. browser-based collaborative text editor. We imple- For efficiency, the system should use symmetric-key en- ment these services as both stand-alone applications cryption. SPORC must provide a way to distribute this and web services; the latter run in a browser, execute symmetric key to every client of authorized users. When in JavaScript (compiled from Java via GWT [12]), a document’s access control list changes, SPORC must and require no prior installation. ensure that newly added users can decrypt the entire docu- ment, and that removed users cannot decrypt any updates We evaluate SPORC’s performance in Section 7 before subsequent to their expulsion. discussing related work and concluding. Detect a misbehaving server. Even without access to document plaintext, a malicious server could still do signif- 2 System Model icant damage by deviating from its assigned role. It could attempt to add, drop, alter, or delay clients’ (encrypted) The purpose of SPORC is to allow a group of users who updates, or it could show different clients inconsistent trust each other to collaboratively edit some shared state, views of the document. SPORC must give clients a means which we call the document, with the help of an untrusted to quickly detect these kinds of misbehavior. server. SPORC is comprised of a set of client devices Recover from malicious server behavior. If clients that modify the document

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    14 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us