summaryrefslogtreecommitdiffhomepage
path: root/keysafe.hs
Commit message (Collapse)AuthorAge
* updated many dependencies, ghc 8.xJoey Hess2020-02-14
| | | | | | | | | | | | | Updated many dependencies, notably secret-sharing which dropped the dep on polynomial, and so allows building with ghc 8.x. Did not try to support building with older ghc because the semigroup-monid transition would make it nontrivial. Stackage lts-14.25 is a compromise, since the stack shipped in debian (even unstable) is not able to handle newer ones. This commit was sponsored by Eric Drechsel on Patreon.
* Defer requesting secret key from gpg until just before backupJoey Hess2016-11-06
| | | | | | | | | So the user knows why gpg is asking for this secret key to be backed up. Before, this was done as soon as keysafe started, which didn't give the user any indication what was going on, unless they had multiple keys and so picked the key to back up from a list. This commit was sponsored by Thomas Hochstein on Patreon.
* Better suggestion when user is having difficulty thinking of a strong enough ↵Joey Hess2016-11-06
| | | | | | password. This commit was sponsored by Ignacio on Patreon.
* improved queue uploadJoey Hess2016-10-24
| | | | | | | | | * --upload-queued: Exit nonzero if unable to upload all queued objects. * --autostart: If unable to upload all queued objects initially, delay between 1 and 2 hours and try again. This way, if tor takes some time to start after login, it will retry later, when tor is hopefully running.
* fix spelling errors caught by lintianSean Whitton2016-10-22
| | | Gbp-Pq: Name fix-spelling-errors-caught-by-lintian.patch
* Check if --store-local directory is writable.Joey Hess2016-10-06
| | | | | | | | | | | | | | | | | | | | If run with --totalshares larger than the number of servers, and the --store-local directory is not writable, this causes keysafe to throw out the unwritable directory and so error out early due to their not being enough storage locations. That's better than the old behavior, which was to try to use the --store-local directory, fail and so proceed to storing the share on a server. That would eventually fail with "no storage locations" when it runs out of servers. That was bad, because shares were uploaded to servers, but perhaps not enough for restore to work, and a new name/othername would be needed to re-run the backup. This is not a perfect fix; if the --store-local directory is writable at first but for some reason the write of the share to it later fails, the situation described above still happens. This commit was sponsored by Jochen Bartl on Patreon.
* Gpg keyid bugsJoey Hess2016-10-06
| | | | | | | | | | | | | | Fix bugs with entry of gpg keyid in the keysafe.log. Gpg.anyKey was being used in writing the log, which made the log contain gpg keys with an empty keyid. Fix bug in --autostart that caused the full gpg keyid to be used in the name, so restores would only work when --gpgkeyid was specifid. Added a Distinguisher data type rather than the Gpg.anyKey hack. This commit was sponsored by Thom May on Patreon.
* New --add-storage-directory and --add-server optionsJoey Hess2016-10-06
| | | | | | | | * New --add-storage-directory and --add-server options, which can be used to make keysafe backup/restore using additional locations. * Removed --store-local option; use --add-storage-directory instead. This commit was sponsored by Thomas Hochstein on Patreon.
* move level from Server to StorageJoey Hess2016-10-06
| | | | | | | This allows local storage locations to have levels too, and also get shuffled nicely. This commit was sponsored by Ethan Aubin.
* Filter out escape sequences and any other unusual characters when writing ↵Joey Hess2016-09-27
| | | | | | | all messages to the console. This should protect against all attacks where the server sends back a malicious message.
* Added --check-servers mode, which is useful both at the command line to see ↵Joey Hess2016-09-27
| | | | | | what servers keysafe knows about, and as a cron job. This commit was sponsored by Jake Vosloo on Patreon.
* check server levelsJoey Hess2016-09-26
| | | | | | | | | Don't upload more than neededshares-1 shares to Alternate servers without asking the user if they want to do this potentially dangerous action. Never allow uploads to Untrusted servers. This commit was sponsored by Ignacio on Patreon.
* Randomize the server list.Joey Hess2016-09-26
| | | | | | | May help avoid some correlations. Once there are many servers, will spread the load out amoung them. This commit was sponsored by Ethan Aubin.
* Added --chaff-max-delay option for slower chaffing.Joey Hess2016-09-23
| | | | This commit was sponsored by Jeff Goeke-Smith on Patreon.
* In --autostart mode, check for gpg keys that have not been backed up, and ↵Joey Hess2016-09-22
| | | | | | | | offer to back them up. Only ask once per key. This commit was sponsored by Thomas Hochstein on Patreon.
* record already-existing backup in log after restoring a secret keyJoey Hess2016-09-22
| | | | | | | This will prevent --autostart from prompting to get the newly restored key backed up again. This commit was sponsored by Remy van Elst on Patreon.
* change backup log format so it can also log when backup of a key was skippedJoey Hess2016-09-22
| | | | | | | | This will be used later when keysafe --autostart prompts if the user wants to back up their gpg key. Making the change now before the backup log format gets frozen. This commit was sponsored by Josh Taylor on Patreon.
* Added --autostart mode and install FDO autostart fileJoey Hess2016-09-22
| | | | | | | | | | | | | | | | | | | | --autostart mode currently only uploads queued keys, but it will later be expanded to do more. Including checking the BackupRecord for problems when necessary. The autostart file is installed by keysafe --backup, so that when keysafe is installed with stack, and used, it will make sure it autostarts in the future. The autostart file is installed by the Makefile too. This will later let --autostart check for keys that have not been backed up and prompt about backing them up. This way, the user won't need to remember to run keysafe to back things up. Reused Utility.FreeDesktop from git-annex, and had to add some stuff it depends on. This commit was sponsored by Fernando Jimenez on Patreon.
* cleanupJoey Hess2016-09-22
|
* Added --backup-server and --restore-serverJoey Hess2016-09-15
| | | | | | To aid in backing up keysafe servers with minimal information leakage. This commit was sponsored by Andrea Rota.
* Store information about backed up keys in ~/.keysafe/backup.logJoey Hess2016-09-14
| | | | | | | | This can be deleted by the user at any time, but it's useful in case a server is known to be compromised, or a problem is found with keysafe's implementation that makes a backup insecure. This commit was sponsored by Nick Daly on Patreon.
* Added --chaff mode which uploads random junk to servers.Joey Hess2016-09-14
| | | | | | | | This is useful both to test the server throttling of uploads, and to make it harder for servers to know if an object actually contains secret key information. This commit was sponsored by Brock Spratlen on Patreon.
* Warn when --uploadqueued fails to upload to servers.Joey Hess2016-09-14
|
* Warn when uploads fail and are put in the upload queue.Joey Hess2016-09-14
|
* implemented dynamic rate limitingJoey Hess2016-09-13
|
* implement client-server Proof Of WorkJoey Hess2016-09-12
| | | | | | | | | | | | | | | | | | | Mashed up a argon2-based PoW with token buckets and bloom filters. This is intended to prevent a few abuses including: * Using a keysafe server for general file storage, by storing a whole lot of chunks. * An attacker guessing names that people will use, and uploading junk to keysafe servers under those names, to make it harder for others to use keysafe later. * An attacker trying to guess the names used for objects on keysafe servers in order to download them and start password cracking. (As a second level of defense, since the name generation hash is expensive already.) Completely untested, but it builds! This commit was sponsored by Andreas on Patreon.
* Added --name and --othername options.Joey Hess2016-09-04
|
* improve messageJoey Hess2016-09-01
| | | | Share download cannot be due to wrong password
* better message on bad passwordJoey Hess2016-08-31
|
* added --store-directoryJoey Hess2016-08-31
|
* Added basic test suite.Joey Hess2016-08-30
|
* Improve time estimates, taking into account the number of cores.Joey Hess2016-08-30
| | | | | This only affects time estimates while keysafe is generating hashes; it does not affect cost estimates to brute-force.
* make server default to only listening to localhostJoey Hess2016-08-29
| | | | | This way, the tor hidden service using it will be the only way it's exposed.
* --server needs a portJoey Hess2016-08-22
|
* http client, and --serverJoey Hess2016-08-20
|
* wordingJoey Hess2016-08-19
|
* done for the day!Joey Hess2016-08-19
|
* avoid displaying messages while progress bar is displayedJoey Hess2016-08-19
|
* chunkingJoey Hess2016-08-19
| | | | | This changed the storage format, not that it matters because nobody is using it yet.
* rename shard -> shareJoey Hess2016-08-19
| | | | This makes it clearer that it's not a chunk of data, but a Shamir share.
* minor prompt flowJoey Hess2016-08-18
|
* untested moving of upload queues on to serversJoey Hess2016-08-18
| | | | | | | | | | | There needs to be a 1:1 mapping between upload queues and servers, otherwise using the upload queue risks two shards for the same object being uploaded to the same server. Also, fixed storeShards to give up on StoreAlreadyExists, rather than trying another storage location. Otherwise, on a name collision, the shards would be rejected by the servers, and be stored to their upload queues.
* add support for multiple storage locattionsJoey Hess2016-08-18
| | | | also, server upload queues in ~/.keysafe
* obscure nameJoey Hess2016-08-17
|
* allow configuring N and MJoey Hess2016-08-17
| | | | | User has to remember they did this and use the same configuration on restore.
* probe knownTunings on restoreJoey Hess2016-08-17
|
* save restored secret key to gpg or fileJoey Hess2016-08-17
|
* simplifyJoey Hess2016-08-17
| | | | | Don't need to check key server for --gpgkeyid backup, because the same switch has to be provided at restore time.
* refactorJoey Hess2016-08-17
|
* make storage to use configurable on command lineJoey Hess2016-08-17
|