Sunday, March 16, 2008

FARSITE: Federated, Available, and Reliable Storage for an Incompletely Trusted Environment

A. Adya, W. J. Bolosky, M. Castro, R. Chaiken, G. Cermak, J. R. Douceur, J. Howell, J. R. Lorch, M. Theimer, R. P. Wattenhofer, "FARSITE: Federated, Available, and Reliable Storage for an Incompletely Trusted Environment", 5th OSDI, Dec 2002. http://citeseer.ist.psu.edu/adya02farsite.html

------------------

Farsite: secure, scalable file system

logically functions as a centralized file server but physically distributed among a set of untrusted computers

Randomized Replication => availability
cryptographic techniques => secrecy of file content (confidentiality)
Byzantine-fault-tolerant => integrity

scalable => distributed hint mechanism
high performance => locally caching data, lazily propagating file updates, varying the duration and granularity

Farsite:


  • central file server


    • shared namespace

    • location-transparent access

    • reliable data storage

  • local desktop filesystems


    • low cost

    • privacy from nosy sysadmins

    • resistance to geographically localized faults

The security is provided as a matter of virtual security of cryptography, randomized replication, and Byzantine fault tolerance.

The goal: harness the collective resources of loosely coupled insecure and unreliable machines to provide logically centralized secure and reliable file storage service.

cryptography and replication to preserver the confidentiality and integrity

directory metadata is relatively small. It must be comprehensible and revisable directly by the system. Byzantine is used for this.

Farsite's intended workload and machine characteristics are those observed on desktop machines.
workload


  1. high access locality

  2. low persistent update rate

  3. a pattern of read/write sharing that is sequential

Machine Characteristics


  1. high fail stop rate

  2. low but significant rate of malicious or opportunistic subversion

Administration in Farsite is an issue of configuring a minimal system and to authenticate new users and machines. Also signing certificates.

Farsite is intended to run on the desktop workstations ~ 10^5 machines nonce of which are dedicated servers. Connected by a high-bandwidth, low latency network whose topology can be ignored.

Fundamental technology trends for Farsite:


  1. a general increase in unused disk capacity (disk capacity is increasing at a faster rate than disk usage, this enables replication of reliability)

  2. a decrease in the computational cost of cryptographic operations (this enables distributed security)

The system allows the flexibility of multiple roots each of which can be regarded as the name of a virtual file server that is collaboratively created by the participating machines.

The security of any distributed system is an issue of managing trust.

The security components that rely on redundancy need to trust that an apparently distinct set of machines, is truly distinct and not a single malicious machine pretending to be many => Sybil Attack

The certificates


  1. namespace certificate : associating the root with a set of machines managing the root metadata

  2. user certificate: associating a user with his personal public key so that his identity can be validated

  3. machine certificate: associating a machine with its own public key to establish the validity of a machine

Machine certificates in Farsite are not signed directly by CAs but rather by users whose certificates designate them as authorized to certify machines.

users' private key is encrypted by a symmetric key and then stored on a globally readable directory in Farsite. CA private key is kept offline because the entire security of Farsite depends on their secrecy.

Each machine in Farsite may play three roles


  1. client: a machine that directly interacts with the user

  2. directory group : a set of machines that collectively manage file information

  3. file host




No comments: