summaryrefslogtreecommitdiffhomepage
path: root/Benchmark.hs
Commit message (Collapse)AuthorAge
* 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.
* Change format of ~/.keysafe/backup.logJoey Hess2016-09-15
| | | | | | | Allow deserializing SecretKeySource so we can later know what gpg keys are backed up. Converted KeyId to Text as JSON can't handle ByteString.
* simplifyJoey Hess2016-09-14
|
* fix buildJoey Hess2016-09-14
|
* actually, that doesn't work so well, maxProofOfWork is not a power of 2Joey Hess2016-09-13
|
* another benchamrkJoey Hess2016-09-13
|
* use less expensive hash for proof of workJoey Hess2016-09-13
| | | | | | | | | | | | | | The server has to run the hash once to verify a request, so a hash that took 4 seconds could make the server do too much work if it's being flooded with requests. So, made the hash much less expensive. This required keeping track of fractional seconds. Actually, I used Rational for them, to avoid most rounding problems. That turned out nice. I've only tuned the proofOfWorkHashTunable on my fanless overheating laptop so far. It seems to be fairly reasonablly tuned though.
* 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.