Cryptomator – Encrypt files on your cloud storage
cryptomator.org
cryptomator.org
Cryptomator is a strange example of how GUI-centric developers seem to be unaware of how important it is to make software usable on the command line.
Also it is a good example of how using Java produces unexpected limitations and complications.
I lost two days fiddling around with several simple use cases without good results - what an experience switching to gocryptfs and getting everything I need up in a few minutes because it just falls out naturally.
It is an interesting lesson about software usability to compare cryptomator vs gocryptfs.
It might be possible via terminal to mount in Android, but I am not sure about iOS.
Cryptomator does a lot more on user friendliness, looking at their community page.
> Linux is fully supported. Beta-quality MacOS support is available, which means things usually work fine, but you may hit the odd issue (please file a ticket if you do!).
> Third-party implementations exist for for
> Windows: cppcryptfs > Android: DroidFS
So gocryptfs has only beta support of Mac and no first party support for Windows/Android, and no support of iOS.
On the other hand, Cryptomator has first party support for all these platforms.
Based on the above, I don’t think that gocryptfs is really in the same space as Cryptomator which provides easy to use encrypted folders across all the major platforms that most people use.
What do you mean there is no integrity? Tampering with ciphertext is detected, because the ciphertext is authenticated.
File sizes and the directory structure are of course known. You can do deduplication like Borg, Restic, CryFS, but you get a performance hit that can be noticeable with sync.
> Against a less-powerful active adversary who can modify the ciphertexts but has no access to the mounted filesystem, gocryptfs keeps file contents secret and provides imperfect integrity protection. In at least one case, imperfections in the integrity protections lead to a break of confidentiality. It is possible that the integrity imperfections lead to further confidentiality breaks depending on which applications are using the filesystem.
I know you're advertising to slightly less technical users, but please provide some documentation explaining your choices! AES alone doesn't say anything about the mode of operation, which makes or breaks the scheme.
From a little sleuthing, it seems likely that they're using GCM-SIV[1], which is a good choice.
`securefs` has but `gocryptfs` hasn't:
* Native Windows support.
* Extended attribute on Mac.
* Random padding.
`gocryptfs` has but `securefs` hasn't:
* Reverse mount (mount a plain dir as an encrypted dir).
BTW the reverse mount turns out to be a very useful feature that solves many problems with large file systems!
Just use cryptsetup on loopback mounted LUKS-structured files, and put the encrypted file in Dropbox or wherever. No filesystem-level weirdness, no random software with unknown/untested pedigree. Add a cronjob that unmounts the filesystem every N minutes and you have a pretty decent sometimes-on place to store just about anything. Double bonus, put a git repository and checkout in the filesystem and you get history of whatever you're stashing in there.
Some rsync-like binary diff could work with mounted big files syncing chunks across networks, but I am not sure if that works well when more than one mount of the remote file exists. Not sure if dropbox is a good tool for that.
Please update, if I am wrong - I am interested in mounting encrypted remote files from more than one devices!
Disk encryption is with XTS mode, also not authenticated. If the remote is not trusted, a number of attacks are possible.
Small changes in the LUKS container can trigger uploading the entire container. It seems, since Dropbox syncs deltas, it can get away with that by uploading changed blocks. That’s not the case with most cloud providers.
That was actually the motivation for per file encryption for cloud storage.
I'd much rather go for classics like eCryptFs and EncFs. EncFs especially seems like a good match here, with its cross platform support. Gocryptfs also exists as a replacement, but portability doesn't seem to be as good.
Either way, they have the same advantage (mounting a file system transparently with access to file based sync) without the disadvantage of needing to download the entire LUKS container.
Optimizing for cloud sync is quite difficult. If we could trust something like AES ECB (we can't, don't use it) we could efficiently synchronise only changes to files like we can with unencrypted files, but alas. Partial modification with the same key and the same IV often go against the assumptions made by encryption modes and can easily introduce vulnerabilities. You probably also need to at least re-encrypt the rest of the file if you change just a single bit in the middle.
From former head of Go security team at Google.
Age in asymmetrical mode would be particularly bad for remote storage as it doesn't authenticate the file in this mode. The people running the server would be able to overwrite the files with whatever they wanted if they could get access to or figure out the public key used.
This is a utility to encrypt a file from command line. It’s like saying ZIP is an alternative, because it has encryption.
Well... 99% clients wont install thirdparty software to decrypt shared files.
B2 1TB/storage/month ~ $5 250GiB/traffic/month ~$2,5
On OneDrive 1TB/storage/month ~ $7 (home user, there's cheaper enterprise plans) 250GiB/traffic/month $0