Hi, I was planning to encrypt my files with GPG for safety before uploading them to the cloud. However, from what I understand GPG doesn’t pad files/do much to prevent file fingerprinting. I was looking around for a way to reliably pad files and encrypt metadata for them but couldn’t find anything. Haven’t found any recommendations on the privacyguides website either. Any help would be appreciated!
Thanks
Any encryption worth being called that randomises itself such that the same file, encrypted twice with the same key, produces completely different ecrypted versions.
To out it another way, if similarities in files could be detected despite their encryption, then the encryption would be worthless.
https://en.m.wikipedia.org/wiki/Ciphertext_indistinguishability
Just use
rclone
. It does this natively.Can you point to where such a capability is mentioned in the documentation? I’m using
rclone
right nowI recommend making a giant tarball and encrypting that with gpg and then encrypting again with rclone.
I wouldn’t be able to do incremental backups in such a case
Yes. Security has trade offs. But cloud backup storage is cheap.
Is there no way to encrypt the metadata of files using GPG? And how do people pad their files to prevent fingerprinting? Surely I’m not the first person to be asking about this? I haven’t had much luck searching online
Thanks, this is great!
Yes GPG should add appropriate padding (random initialization vector) to not reveal whether two ciphertexts have the same plaintext. It makes no real attempt to conceal that the two plaintexts have the same length. If you want that, best bet is to make all ciphertexts the same length, by padding plaintexts out to 1MB or whatever, and turning off compression. Actually you might first check the manual to see if there is already an option for that. There are a lot, and I no longer keep track.
Cryptographer’s saying (Silvio Micali, I think): “A good disguise does not reveal the person’s height”. So you are on the right track.
I also have media and other binary blobs which I’d like to archive in an encrypted fashion, will GPG suffice? ChatGPT mentioned OpenSSL for this but I’m not sure where that’s taking me.
Openssl really isn’t the right thing for that. GPG is fine for individual files if you don’t mind leaking the approximate length. You may be better off with borg backup depending on your exact use case.
I’m using
rclone
, do you recommend I runborg
on top of it to encrypt said files? And doesborg
explicitly do what I’m trying to achieve? I’m going to take a look at the documentation, thanksI’m not really familiar with rclone. I just use Borg and it does about everything I could want. You can even ssh mount a Borg repo as a file system and browse the files, though it is read only (you can’t modify anything that way). Obvs you need the decryption key to do that.
I see. I’m using Cryptomator, but I was recently linked to
rclone
’s in-built encryption, which is probably what I’ll use next. ThanksI will check into rclone again. People keep mentioning it. I think I may have considered it before deciding on borg. But my use case is primarily backup rather than archiving. The two aren’t quite the same.
If there are really no good padding tools I’ll probably start a new git repo and write one, would be a pretty handy CLI tool
Sounds like you want a proper backup solution. Take a look at borg backup, a tool that supports encrypted, deduplicated, compressed, incremental backups. You can even directly save to your cloud via protocols such as ssh, s3, etc.
Have you considered cryfs?
You could use Duplicati. I’m not sure if it does padding but it simplifies encryption and prevents corruption.