aboutsummaryrefslogtreecommitdiff
path: root/doc/encryption.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-04-16 19:30:31 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-04-16 19:35:02 -0400
commitd2e74efdb2e5b819d5c56f167291b006badd94cb (patch)
treee9dea4bcec8519f77b244c0c018b7bec919743cd /doc/encryption.mdwn
parent1247bfeaa7356e766d3ea09fa50bd300650f78af (diff)
document encryption
Diffstat (limited to 'doc/encryption.mdwn')
-rw-r--r--doc/encryption.mdwn35
1 files changed, 35 insertions, 0 deletions
diff --git a/doc/encryption.mdwn b/doc/encryption.mdwn
new file mode 100644
index 000000000..0f83bb7f9
--- /dev/null
+++ b/doc/encryption.mdwn
@@ -0,0 +1,35 @@
+git-annex mostly does not use encryption. Anyone with access to a git
+repository can see all the filenames in it, its history, and can access
+any annexed file contents.
+
+Encryption is needed when using [[special_remotes]] like Amazon S3, where
+file content is sent to an untrusted party who does not have access to the
+git repository.
+
+Such an encrypted remote uses strong GPG encryption on the contents of files,
+as well as HMAC hashing of the filenames. The size of the encrypted files,
+and access patterns of the data, should be the only clues to what is
+stored in such a remote.
+
+You should decide whether to use encryption with a special remote before
+any data is stored in it. So, `git annex initremote` requires you
+to specify "encryption=none" when first setting up a remote in order
+to disable encryption.
+
+If you want to use encryption, run `git annex initremote` with
+"encryption=USERID". The value will be passed to `gpg` to find encryption keys.
+Typically, you will say "encryption=2512E3C7" to use a specific gpg key.
+Or, you might say "encryption=joey@kitenet.net" to search for matching keys.
+
+The [[encryption_design|design/encryption]] allows additional encryption keys
+to be added on to a special remote later. Once a key is added, it is able
+to access content that has already been stored in the special remote.
+To add a new key, just run `git annex initremote` again, specifying the
+new encryption key:
+
+ git annex initremote myremote encryption=788A3F4C
+
+Note that once a key has been given access to a remote, it's not
+possible to revoke that access, short of deleting the remote. See
+[[encryption_design|design/encryption]] for other security risks
+associated with encryption.