Overview
Today, many users maintain data at remote storage service providers, and collaborate with each other using the shared data. It is important to guarantee the integrity of the data when the service is not trusted.
More and more data resides online at remote storage services. Such data is easy to access from anywhere; a group of users may share it with each other, and users can collaborate online using the stored data. Examples of such storage systems include shared file systems, source-code repositories, and Web 2.0 collaboration tools like Wikis and Google Docs.
It is important to guarantee the integrity of the stored data when the service is not fully trusted. Traditional methods for data integrity protection have to be adapted for efficiently protecting the integrity of data in storage systems. We have developed novel algorithms to protect users from faulty or potentially corrupted storage systems.
To give a practical demonstration of how Merkle hash trees protect storage integrity, we have developed encryption and integrity protection methods for a high-performance cryptographic file system [1].
On a more conceptual level, we are addressing the situation where multiple users access a shared storage service. However the users do not usually communicate with each other, but only do so in exceptional situations. Normally they communicate only through the storage service. In this model, certain attacks by a malicious storage service cannot be prevented. Our protocols provide atomic read and write operations on the storage space when the service is correct and weaker, so-called forking semantics when the service is faulty [2, 3, 4].
Applying our approach to the Subversion revision control system, we have demonstrated how to guarantee integrity for a practical online collaboration tool [5].
Publications
- Roman Pletka and Christian Cachin.
Cryptographic security for a high-performance distributed file system.
In Proc. 24th IEEE Conf. on Mass Storage Systems and Technologies (MSST), pages 227-232, September 2007. - Christian Cachin, Abhi Shelat, and Alexander
Shraer.
Efficient fork-linearizable access to untrusted shared memory.
In Proc. 26th ACM Symposium on Principles of Distributed Computing (PODC 2007), pages 129-138, August 2007. - Christian Cachin, Idit Keidar, and Alexander Shraer.
Fork sequential consistency is blocking.
Information Processing Letters, 109(7):360-364, March 2009. - Christian Cachin, Idit Keidar, and Alexander Shraer.
Fail-aware untrusted storage.
In Proc. Intl. Conference on Dependable Systems and Networks (DSN), June 2009. - Christian Cachin and Martin Geisler.
Integrity protection for revision control.
In Michel Abdalla and David Pointcheval, editors, Proc. Applied Cryptography and Network Security (ACNS), volume 5536 of Lecture Notes in Computer Science, pages 382-399. Springer, 2009.