Show HN: FileRock, a Secure Dropbox Clone, goes Open Source
blog.filerock.com
blog.filerock.com
they say that they don't send the password over the net, but send instead the result from PBKDF2. but how does that make things more secure? couldn't someone simply snoop the PBKDF2 output and send that themselves? (if they could eavesdrop at all - my point is not that eavesdropping is possible, but that a transformed password is equivalent to the password itself).
i thought perhaps they provided a different random seed for PBKDF2, but then they would get a different answer each time and wouldn't be able to check it.
i get why PBKDF2 is better than just using a "simple" password. but i don't get why they make a point of saying your password is not transmitted. i mean, HTTP basic auth uses a hash, but that's considered just as insecure as the password for exactly this reason. and PBKDF2 is just a a glorified hash.
it just seems confused. claiming something is an advantage when it's not, as far as i can tell (although i suspect the confused party is me - it just reminded me so much of http basic auth...).
While the PBKDF2'd password CAN theoretically be snooped (if this wasn't wrapped in TLS, it would be trivial), the actual password cannot be calculated from the derivation.
So yes, an attacker who listened to your transmitted PBKDF2'd password can theoretically access your encrypted files from the server. However, if they could snoop, they could have just watched those encrypted files as they came across the wire.
The client-side encryption is still just as effective. As far as I can tell, your data would still be safe.
You are right, from the only point of view of the authentication, using a password gives you the same level of security as using one of its derivations (given a deterministic generation of the derivations and a password with same length and randomness of its derivations).
The mechanism that actually protects your credentials from being sniffed and used to get the first level of access to your account, is the industry standard SSL/TLS.
But even if someone discovers which is the derivation that you use to authenticate with the FileRock servers, they won't be able to know your password. And that means that the other derivations of your password (for example, the one used to protect the encryption keys for your data) are not disclosed as well. Therefore, even the people managing the FileRock servers will not know them, and they will not be able to access your encrypted data.
I hope this will solve your doubts.
PS: I see now that evv and notimetorelax also replied and they are correct.
With git-annex, it's very simple to create your own self-hosted Dropbox. Unlike Dropbox, though, git-annex allows you to make your filesystem completely decentralized.
A rather rudimentary analogy: Dropbox:gitannex :: SVN:git.
Granted this is the same weakness that exists in most implementations of SSL where one sends their clear text password over a SSL channel.
As far as concerns the usage of TLS, your guess is correct, right now we allow the usage of the most common cipher suites, with some of them not providing PFS.
However, the negotiation of cipher suite is just a matter of configuration, and we might take a closer look pretty soon on which ones we want to allow or not.
"Tahoe-LAFS is a Free and Open cloud storage system. It distributes your data across multiple servers. Even if some of the servers fail or are taken over by an attacker, the entire filesystem continues to function correctly, including preservation of your privacy and security."[0]
TL,DR: Storage nodes can't decrypt your data, so you don't have to trust them.
[0] https://tahoe-lafs.org/trac/tahoe-lafs
[1] https://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev
[2] https://tahoe-lafs.org/pipermail/tahoe-dev/2012-December/thr...
[3] https://leastauthority.com/
[4] https://leastauthority.com/howtoconfigure/
[5] https://tahoe-lafs.org/~marlowe/TWN27.html (mid-page)
(no affil.)
It's also an interesting question:
How comfortable do we feel relying upon the "principle of least authority" long-term in a mixed-trust environment? i.e., a p2p-style Tahoe-LAFS grid, or deploying it privately using a commercial vendor like Amazon S3 (either directly or through Dropbox for free), on our own servers, and everything in between.
You might not trust companies from certain countries with your data, and you shouldn't be forced to in order to store it* in the cloud*.
[0] https://en.wikipedia.org/wiki/Principle_of_Least_Authority
As a user of a service the client is the only piece that I really care about wrt data security. If I can verify that the client isn't secretly uploading encryption keys to the server while claiming to encrypt my data, it's a massive win for transparency.
The server is a just an abstracted hard disk. Why would I care how it is implemented?
Does (will) it sync as well as Dropbox?
Dropbox consumes almost no system resources, syncs right away with inotify, transmits files on the LAN and is generally very good at what it does. If your client is as good, I will switch to it for sure.
We are doing our best. So far, the performance and usage-of-resources are not the fields where we put the most of our effort. Additionally, there are two main issues to consider:
The first is about our security features: encryption and integrity check require some computation, hence our clients will have an higher load compared to Dropbox. Moreover, some of the magic performed by Dropbox to improve performance, cannot be combined with some of the security measures that we enforce.
The second is about the firepower of and age of the products you are comparing. Dropbox has a quite large and amazing team ( https://www.dropbox.com/about ) as well as few years of product development and testing on a large and impressively growing user base. The comparison with our team ( http://blog.filerock.com/founders/ and http://blog.filerock.com/dev-team/ ) and our time on this project so far, would be like throwing a cobble to the Ayers Rock and see who moves.
We are aware of the feature you mentioned: for instance, we already went for the filesystem monitoring using the API provided by the different platforms, but it turned out that they didn't behave as we expected on all platforms, in particular they made hard to get correct results needed by our integrity check technology. So we had to choose where to concentrate our effort and decided to put it on our distinctive features. So we switched to a simpler (and inefficient) approach that currently guarantees the correctness we need on each supported platform. As soon as possible, we plan to mix our current approach with the aforementioned usage of the different platform APIs to increase performance but still keeping our integrity check mechanism working properly.
Of course in the long term we aim to be as efficient as possible, and Dropbox is definitely the one to run after on this perspective. However, this will need time and resources. The good news is that having an open source client, anyone can contribute suggesting an improvement, or even implementing features that are not yet in our short-time roadmap (e.g., on-LAN files sync).
I naively attempted to roll my own mash-up for this purpose (https://github.com/clebio/duplicitySync) and was not successful. The combination of local encryption, incremental backup, and _synchronization across multiple computers_ was the breaking point.
2) Do you have mobile clients?
3) What makes this better than encfs on top of dropbox?
2) Not yet, but we are planning to.
3) See this comment: http://news.ycombinator.com/item?id=5036011