I wish people would stop using the phrase "zero knowledge" willy nilly. It has a specific meaning within cryptography.
Yeah... I kept looking for the way this is ZK. Do they just mean that the files are encrypted on their servers and so they can't read them? I understand accidentally stepping on a term from an adjacent field, but using it this way for a product that presumably is crypto-centric is a bit of a red flag.
Librevault: Open source zero-knowledge peer-to-peer file sync
21–30 of 31 posts
Re: Librevault: Open source zero-knowledge peer-to-peer file sync
#22Looks great! Any plans to document the synchronization protocol? I've been using SyncThing but it lacks the main feature I need, which is to selectively synchronize only certain files to other devices.
Re: Librevault: Open source zero-knowledge peer-to-peer file sync
#23Re: Librevault: Open source zero-knowledge peer-to-peer file sync
#24Earlier quoted context omitted.
SyncTrayzor (windows client implementing synching) is pretty nice. It runs as a tray icon but when you click it, it loads like a native app even though it's a web app (similar to electron)
But it is still a web ui, not a native one. Also, SyncTrayzor itself is not cross-platform, so Linux users have to install syncthing-inotify for watching the directories for changes.
Re: Librevault: Open source zero-knowledge peer-to-peer file sync
#25Can you describe your file encryption procedure? In the Meta::Chunk class the 'encrypt' function only computes AES-CBC with no MAC, but there are calls to compute_strong_hash at other points in the library. There are references to a (non-cryptographic) Rabin hash as well as SHA2-224 and SHA3-224 in these functions - which is used for ciphertext authenticity and integrity?
During the indexing procedure, the value of SHA3-224(AES256(data)) is computed for each chunk. Then, the list of these hashes is placed into Meta structure. After that, this Meta is ECDSA-signed using a EC point, decoded from A-type secret. Any other type of secret contain the public part of EC point and can verify the signature.
Re: Librevault: Open source zero-knowledge peer-to-peer file sync
#26Re: Librevault: Open source zero-knowledge peer-to-peer file sync
#27Earlier quoted context omitted.
During the indexing procedure, the value of SHA3-224(AES256(data)) is computed for each chunk. Then, the list of these hashes is placed into Meta structure. After that, this Meta is ECDSA-signed using a EC point, decoded from A-type secret. Any other type of secret contain the public part of EC point and can verify the signature.
So is there a per-chunk MAC, or do you rely on the signed hashes of ciphertext for the integrity and authenticity of each chunk?
This HMAC is computed over plaintext chunks and used to determine, if we already have this chunk in database (because of random IV we get different hash of ciphertext every time), not for verification.
And what is wrong about verifying integrity and authenticity by hash-then-sign?
Re: Librevault: Open source zero-knowledge peer-to-peer file sync
#28Earlier quoted context omitted.
So is there a per-chunk MAC, or do you rely on the signed hashes of ciphertext for the integrity and authenticity of each chunk?
Actually, there is per-chunk HMAC support in the protocol and present revisions add HMAC for each chunk into Meta: https://github.com/Librevault/librevault-common/blob/master/... This HMAC is computed over plaintext chunks and used to determine, if we already have this chunk in database (because of random IV we get different hash of ciphertext every time), not for verification. And what is wrong about verifying integ…
Re: Librevault: Open source zero-knowledge peer-to-peer file sync
#29Geez, that's what I am exactly working on off-work, slowly but the idea is nearly 100% identical.
Re: Librevault: Open source zero-knowledge peer-to-peer file sync
#30I tried the following:
1. Download app and install
2. "Add folder" new key, select folder I want to sync. Ok. Folder did not then appear in the list as expected. It should it appear in the window straight away, right?
3. I then installed the software on another computer.
4. On other computer clicked 'Open URL' and added "lvlt:". OK. This did nothing either.
Where am I going wrong. Please add a basic getting started to your site which shows the basic steps to add a folder on one computer and then set up another computer to sync the folder down onto.
Looks like a great little app. thx in advance for your assistance.