I submitted a feature request for encryption over this (it's probably vulnerable to MITM attacks as-is, as you never verify the recipient). My request was:
* Generate the URL like sharefest.me/roomid#randomstring
* Sharefest encrypts the file contents before and after transmission with randomstring as key using the SJCL.
* Send the URL/key out of band, over a secure channel.
Out of interest, if the decryption is being done in a client by JavaScript, what's stopping a MITM attacker replacing the JavaScript crypto library with something that captures the source URL and key?
The short answer is that so long as the page is loaded entirely over TLS, and the TLS isn't stripped or subverted in any way, it's safe from MITM. Sharefest doesn't currently support TLS, so they would need to set that up prior to enabling end-to-end encryption.
You can download ShareFest, audit it and store it locally so you can run your known-good version. It's just an HTML page and a few JS files (or at least it was, last time I looked).
I was going to create a version of this that was a single webpage and had as little code as possible (for auditability and ease of saving/deployment), but other projects got in the way (plus it's easier to improve ShareFest than write it from scratch).
That's true, I guess. The funny thing is that the most I ever transfer is family photos and code, but I don't see why anyone should be able to look at even my family photos.
The other thing is, as with almost all web-based solutions, you're being tracked by various scripts in the background (Google API/JS, etc.). So, if you're paranoid, you're better off with a client solution.
Sure, but a client solution doesn't have the ease-of-use of this for the other party. I use Ghostery, incidentally, but your general point is that security on a live webpage is impossible, which I agree with. That's why I proposed that the app be made into a downloadable package as well.
Why downloadable package is necessarily more secure than a live webpage over TLS (HTTPS)? Given that you can verify that Sharefest is Sharefest (using the certificate in the future), I don't see the big difference. I do think that a live webpage can be updated with security fixes more easily.
Being a live webpage also give us, as the developers, much less headaches in terms of protocol compatibility -- We maintain just one "version" of Sharefest client at the same time.
Because a downloadable package can't be replaced by something else the next time you use it, while Sharefest can, and nation-states can easily serve you whatever they want, even over SSL.
They can spoof the package and its key.
If the root of trust (CA) is tempered as you suggest and the chain of trust is broken, I don't see how you can really secure it.
Personally, I don't see a better platform than RetroShare. That is why I believe, we're better off if we all get behind RetroShare:
Developers can extend this platform with as many plugins as they wish - as an open-source solution, it's totally open. (I believe fragmentation, more specifically increasing the number of less advanced solutions doesn't help...)
Client side solutions can do even more tracking because there is no browser sandbox. And for example the µTorrent client has ads in it which are probably tracked.
Done! Not that I am really using it (yet?), but I'd love to play with it, especially the forum feature (reminds me of usenet clients, which I never really got to use because that was before my time) - so feel free to "add me" if you're a "casual" yourself, or even if you're super serious about it, but don't mind playful old me.
This might be cool in theory, but no way in HELL it's the 'easiest way in the world.' As of right now, only chrome can transfer files to chrome, and firefox to firefox.
Speaking of which, is there a website where people share what they "sync" with BTSync? There was a website called 12char.com, but it's dead now. Are there alternatives to 12char?
Recently, I started building a website which does pretty much exactly this. When I had it up and running after a few days (the WebRTC API is relatively simple), I found sharefest and have been using that since.
It's a great way to get files from one place to the other. The (encrypted) data does not go via a server, making this potentially the fastest, most scalable and safest type of file transfer available in a browser. One of the extra perks is that sharing files on a local network becomes really really fast. It's miles ahead
Waiting for the day RIAA will "demand" that browser vendors, such as Google, Microsoft and Apple especially, stop implementing protocols that "make it easy" to pirate files. And the companies might actually listen. So far Google has fulfilled their every request and then some (hello ContentID, mass DMCA automation tool for links, and SEO punishments!), so it wouldn't surprise me if they did this, too.
Won't work for me. I want to send a file, know when it's done and close my computer. With Dropbox and others I know when it's sent from my perspective. With P2P the whole system becomes unstable. And for all of my file sharing, it is unacceptable. Too much uncertainty.
if you're only sending to one recipient we have that feature in (you get file downloaded green message on the top)
if you have multi recipient that's a more complex ui problem that we're thinking of...
Thanks for the feedback
Thanks for the reply! If I have to think that will I also CC somebody/team/any group before sending it out, then it becomes too complex for me. It's not then the easiest by far since I already have a working solution!
Well I agree that dropbox is easy, but it's also limited.
Space for example.
Also, if you're sending to a group of co-workers you don't have to upload the entire thing to the cloud. it'll transfer blazingly fast inside the LAN.
If the files I'm sending would be huge, which for me they never are, and if I'm inside a LAN then I can use a file server for that. It would also be a directory for those files.
I think there's something in your product, but it doesn't have any selling points for me. Even if you make it as good as Dropbox or any other service, I won't change. For that, you need to be better than existing solutions.
Either be better or be different. Generic user facing file sharing - been there, done that.
storage space and bandwidth are not really limiting factors on today's internet. i have over 100gig of online storage and 25mbps internet, for example. (corrected 1gig to 100gig).
If anyone has bitdefender installed, it may block websockets from communicating with the server.
If you don't receive a url when adding a file, check your websockets status here: http://websocketstest.com/
How about a checkbox for keeping the file in local storage, so when you restart the browser, you can share that file without having to download first? Or is that done already anyway?
I've received a feedback that people want a copy to clipboard button, I'm against it just because there's no way to do it today without flash.
what do you guys think?
Sharefest and google drive are made for different purposes.
Sharefest is a file sharing/transfer platform.
When Drive is, well as its name infers...a drive.
Yes, but it's much more limited by the inherent use of server storage. They, for instance, give 15GB (https://support.google.com/drive/answer/2736257?hl=en) for ALL your files. So you end up thinking, should I share via Drive and waste 10% of my space for this one time sharing.
* Generate the URL like sharefest.me/roomid#randomstring
* Sharefest encrypts the file contents before and after transmission with randomstring as key using the SJCL.
* Send the URL/key out of band, over a secure channel.
* Voila, end-to-end crypto.
I don't know if anything became of it, though.
EDIT: Oh, here it is: https://github.com/Peer5/ShareFest/issues/24