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:
------------------
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
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
- high access locality
- low persistent update rate
- a pattern of read/write sharing that is sequential
Machine Characteristics
- high fail stop rate
- 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:
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:
- a general increase in unused disk capacity (disk capacity is increasing at a faster rate than disk usage, this enables replication of reliability)
- 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
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
- namespace certificate : associating the root with a set of machines managing the root metadata
- user certificate: associating a user with his personal public key so that his identity can be validated
- 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
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
- client: a machine that directly interacts with the user
- directory group : a set of machines that collectively manage file information
- file host