How it works

S4 is an Amazon S3-based application of Least-Authority File System, or LAFS.
LAFS is a free, open source cloud storage system with verifiable end-to-end
security. It distributes your data across multiple servers. Even if some of
the servers fail or are taken over by an attacker, the entire filesystem continues
to function correctly, preserving your privacy and security.

Here's how it works:

A "storage grid" is made up of one or more storage servers. In the case of S4, the grid has one server
which is run by Least Authority, and configured to store its data in Amazon Simple Storage Service (S3).
A "gateway" uses the storage servers and provides access to the filesystem over HTTP(S), SFTP, or FTP.

Users do not rely on storage servers to provide confidentiality nor integrity for their data -- instead all
of the data is encrypted and integrity-checked by the gateway, so that the servers can neither read nor modify
the contents of the files. Users do rely on storage servers for availability.

In the typical deployment mode each user runs her own gateway on her own machine. This way she relies on
her own machine for the confidentiality and integrity of the data.

An alternate deployment mode is that the gateway runs on a remote machine and the user connects to it over
HTTPS or SFTP. This means that the operator of the gateway can view and modify the user's data (the user relies
on the gateway for confidentiality and integrity), but the advantage is that the user can access the filesystem
with a client that doesn't have the gateway software installed, such as a cell phone.

LAFS also supports access control. In LAFS, there are two kinds of files: immutable and mutable. When you
upload a file to the storage grid you can choose which kind of file it will be in the grid. Immutable files
can't be modified once they have been uploaded. A mutable file can be modified by someone with read-write access
to it. A user can have read-write access to a mutable file or read-only access to it, or no access to it at all.

A user who has read-write access to a mutable file or directory can give another user read-write access to that
file or directory, or they can give read-only access to that file or directory. A user who has read-only access
to a file or directory can give another user read-only access to it.

When linking a file or directory into a parent directory, you can use a read-write link or a read-only link.
If you use a read-write link, then anyone who has read-write access to the parent directory can gain read-write
access to the child, and anyone who has read-only access to the parent directory can gain read-only access to
the child. If you use a read-only link, then anyone who has either read-write or read-only access to the parent
directory can gain read-only access to the child.

What is verifiable end-to-end security?

Every seller of cloud storage services will tell you that their service is
"secure". But what they mean by that is something fundamentally different from
what we mean. What they mean by "secure" is that after you've given them the power
to read and modify your data, they try really hard not to let this power be abused.
This turns out to be difficult! Bugs, misconfigurations, or operator error can
accidentally expose your data to another customer or to the public, or can corrupt
your data. Criminals routinely gain illicit access to corporate servers. Even more
insidious is the fact that the employees themselves sometimes violate customer
privacy out of carelessness, avarice, or mere curiousity. The most conscientious
of these service providers spend considerable effort and expense trying to mitigate
these risks. However, some privacy breach is inevitable--if by nothing else, then
by government order via programs like PRISM.

What we mean by "security" is something different. The service provider never
has the ability to read or modify your data in the first place: never. If you use
S4, then all of the threats described above are non-issues to you. Not only is it
easy and inexpensive for the service provider to maintain the security of your data,
but in fact they couldn't violate its security if they tried. This is what we call
provider-independent security.

This guarantee is integrated naturally into S4 (and LAFS, on which S4 is based)
and and doesn't require you to perform a manual pre-encryption step or cumbersome
key management. After all, having to do cumbersome manual operations when storing
or accessing your data would nullify one of the primary benefits of using cloud
storage in the first place: convenience.

What is Least-Authority Backup good for?

It is good for securely backing up your data off-site. The "tahoe
backup" command inspects your local filesystem for files that have
changed since the last time you ran it. It uploads each file that
has changed and it creates a directory in LAFS to hold the
current "snapshot"—the current version of each of the files. You can
browse or access old versions just by browsing the old snapshot
directories.

Where is my data stored?

Your data, encrypted, is stored on Amazon's Simple Storage Service
(S3), which is a convenient, reliable, and widely understood
platform for storage.

Data stored in Amazon S3, Amazon SimpleDB, or Amazon Elastic Block Store (EBS)
is redundantly stored in multiple physical locations as part of normal operation
of those services and at no additional charge. Amazon S3 and Amazon SimpleDB
provide object durability by storing objects multiple times across multiple
Availability Zones on the initial write and then actively doing further
replication in the event of device unavailability or detected bit-rot.

How much do the services cost?

S4 costs $25 per month for unlimited storage, for personal use.

How secure is my credit or debit card information?

LeastAuthority.com does not hold any credit or debit card information on our servers.
When you sign up, a connection is made to our payment processor,
Stripe, which holds your card information on
LeastAuthority.com's behalf. Stripe is certified to PCI Service Provider Level 1,
the most stringent certification level. The connections to both leastauthority.com
and the Stripe API are made over TLS (with
forward secrecy
in modern browsers), so the security of your card information is at least as good
as for other e-commerce sites.

Are there limits on how much data I can store?

There are no limits on the total data you can store, but there is currently
a limit on the size of an individual file. Files larger than about 3 GB might
fail to upload. All upload failures, including failures caused by this, are
shown in your LAFS client software, so you'll know if this happens to
you.

We are working on lifting this limitation and will keep you informed about
our progress.

Can I delete old files to save space?

For now, it is not possible to remove data from the LAE service. If you
unlink a file, you lose your ability to access it, but it does not free up
the space in your S3 bucket, so you still get charged for it.

We are working on fixing this issue and will keep you informed about our
progress.

What is the relationship between LeastAuthority.com and the LAFS open-source project?

Zooko Wilcox-O'Hearn, founder and CEO of Least Authority Enterprises, was one
of the inventors of LAFS. Least Authority Enterprises contributes all
of the code we write to the free and open-source software project. We believe that's the
best thing for our customers.

The Python source code for this website, our automation and monitoring scripts,
and our fork of LAFS to support Amazon S3
are all open-sourced under the
same
licenses as LAFS itself. The S3 backend depends on a fork of the
txaws library that is open-sourced under
the MIT / X / Expat License.