8 ms·
SpiderOak Encryptr – Zero-Knowledge Password Syncing
- JshWright 10y agoLatest commit 5fdc936 on Dec 18, 2015 Is this still an active project? 4 months is a long time to pass without a commit published.
- CiPHPerCoder 10y agoI lean towards "No". For example, this was never merged: https://github.com/SpiderOak/Encryptr/pull/180 https://github.com/SpiderOak/Encryptr/pull/180 I eventually closed it because I keep an eye on https://github.com/pulls https://github.com/pulls and it was unnecessary clutter.
- ekrizzle 10y agoOne reason that was never merged was because it was a flawed patch to a non-problem. - Erin @ SpiderOak
- CiPHPerCoder 10y agoThe "non-problem" of a biased PRNG is that you get reduced entropy in your generated passwords, thus reducing security. The "flaw" in the pull request was fixed in a later commit (by switching to Uint8Array instead of Uint32Array), and then it was ignored by the SpiderOak team.
- Dylan16807 10y agoSelecting one of 84 characters purely randomly gives you 6.3923174227787602763 bits of entropy. Selecting one of 84 characters by using modulus on a 32 bit random number gives you 6.3923174227787602889 bits of entropy. It is a bug, but it is absolutely a non-problem. The difference you would get from using 83 or 85 characters is many orders of magnitude larger; this is not something that needs such an enormous level of precision.
- dchest 10y agoWow. While the bias was tiny, I expect more from crypto software. Calling it a "non-problem" is very strange. Edit: submitted another patch https://github.com/SpiderOak/Encryptr/pull/263 https://github.com/SpiderOak/Encryptr/pull/263
- tptacek 10y agoCan you go into more detail about this? Because I hear "biased RNG" and the switch that flips in my head is "never use this thing".
- Dylan16807 10y agoThe password generator gets 32 bit random values and then does modulus 84 to pick characters. There is a bias, but it has as much entropy as a perfect generator choosing out of 83.999999999999999 characters. Edit: The question in my mind is whether it was oversight or intentional simplicity. The first is a bad sign, the second isn't a big deal.
- CiPHPerCoder 10y agoConsidering they had earlier tickets opened by their own team to fix it and hadn't, I'm calling "oversight". https://github.com/SpiderOak/Encryptr/issues/49 https://github.com/SpiderOak/Encryptr/issues/49 That being said, I do agree with your analysis that the impact of this isn't a problem for users.
- pbsd 10y agoConsidering how tiny the bias is along with the added complexity of the solution (in a chaotic language like Javascript, no less), I'd say the SpiderOak people are not crazy for not having accepted it. There would be somewhat of an argument here if the original was reducing random bytes modulo 84. As it is, this is almost like dinging EdDSA for doing a similar thing: reducing a 512-bit number modulo a 252-bit integer instead of doing the 'proper' procedure.
- CiPHPerCoder 10y ago> I'd say the SpiderOak people are not crazy for not having accepted it. They didn't simply not accept it. They tossed one bit of feedback my way, which I addressed in a follow-up commit, and then they neglected to do anything further. No discussion, no rejection, etc. If they wanted to reject it because of complexity concerns, I would have been fine with that. At least it would have been some sort of closure, and I wouldn't feel like the person I replied to originally about this project being inactive. If it turns out that they're actually still planning to develop it further, I'm happy to be proven wrong about that. Today, 'dchest wrote a superseding PR that solves the problem while maintaining a very small code diff, and I'd prefer his solution over my own. (I have no ego about my JavaScript coding skills. There are tens of millions of people who can do it better than me.)
- marshray 10y agoWhile I agree that 2^32%85 produces a minuscule bias, there's this thing called base 64 that interoperates pretty well with arbitrary byte strings.
- nitrogen 10y agoSometimes software is just "done", you know, or only needs updates every few years.
- dsp1234 10y agoThat there are 93 issues including what appear to be UI issues implies that this project is probably not in that category though.
- JshWright 10y agoYes, but those projects don't generally include references to things that are "coming soon" in the readme.
- zymhan 10y agoSure, if it's a command line tool that does something simple maybe. Not a project that depends on a bunch of modern frameworks and has a mobile app. Plus, it's security software.
- deleted 10y ago[deleted]
- SloopJon 10y agoI'm a little confused by this. The project page makes it sound like someone's weekend project, complete with a donation link, but in fact it seems to be the client for one of SpiderOak's products. In any case, I'm having fun reading about some of the projects used to build this, including Crypton. Will this work with any Crypton server, or is it somehow tied to SpiderOak? Edit: "I am happy to announce that SpiderOak has acquired Encryptr" (blogs.devgeeks.org).
- ekrizzle 10y agoYes, Encryptr and Crypton (the framework and server) are both fully open, in that you can run with your own server. SpiderOak also provides a public free server. https://github.com/SpiderOak/crypton https://github.com/SpiderOak/crypton - Erin @ SpiderOak
- y7 10y agoI was slightly puzzled what they meant by "zero-knowledge encryption", but after looking around a bit it looks to be more of a buzzword than really related to zero-knowledge proofs (besides them using SRP for password validation). As far as I know, all password managers like Lastpass, 1Password, etc. use client-side encryption of data. Does this do anything new?
- bascule 10y agoYeah, it's puzzling why SpiderOak persists in using the term "zero knowledge" to mean something entirely different from ZKPs. As far as I can tell they're the only ones doing this too. Especially with zkSNARKs and practical applications like Zcash, all I can think this will accomplish is confusing people.
- toyg 10y agoBecause it differentiates them from the likes of Dropbox, who can easily look into your files. What other term would you use? "Client-side encryption" is too diluted a term.
- schoen 10y agoThey tried to coin a new (unrelated) sense of this term about two years ago in order to try to explain services where the service provider doesn't have access to your data. I agree that it's confusing because of the much more clearly established technical term with a different meaning, and I don't think SpiderOak's sense has caught on outside of the company. Can anyone suggest a better term? Some people like "end-to-end encrypted" even in this context, but that doesn't really make sense for data at rest, which is almost all of what SpiderOak's products deal with. Edit: SpiderOak has had a super-hard time marketing their privacy features to people who aren't already familiar with the fairly stark distinctions in play in different access models. I'm sure they would appreciate if someone came up with a straightforward way to explain "products where the service provider doesn't have access to your data, and can't get access without your help in any circumstances because of technical constraints".
- 10y ago
- aorth 10y agoI prefer pass, which uses GPG and regular bash scripts to store passwords. You can sync the directory of encrypted passwords via git too. No fancy stuff. https://www.passwordstore.org/ https://www.passwordstore.org/
- jjnoakes 10y agoWhat is the easiest way to access such a store from a phone? Assume I have synchronized the encrypted files myself.
- aorth 10y agoI haven't figured that one out yet! :(
- rhyzomatic 10y agoFor Android: Password Store! https://github.com/zeapo/Android-Password-Store https://github.com/zeapo/Android-Password-Store It's on F-Droid (not sure about Google Play) and it works really well. You need another app to manage your keys, but there is OpenKeyChain for that (also on F-Droid).
- d_theorist 10y agoRequirements: Node and npm - http://nodejs.org/ Node package manager for the Cordova CLI and Grunt Cordova CLI - https://github.com/apache/cordova-cli/ Cordova / PhoneGap command line interface npm install -g cordova Grunt - http://gruntjs.com/ Build tool for minimising, running and tests npm install -g grunt-cli PhantomJS - http://phantomjs.org/ Headless webkit for running tests Cordova-icon and Cordova-splash - https://github.com/AlexDisler/cordova-icon/ and https://github.com/AlexDisler/cordova-splash/ npm install -g cordova-icon and npm install cordova-splash Nope. Nope nope nope.
- Karunamon 10y agoI'm not clear on what exactly your problem is here.
- dsp1234 10y agoI'm also curious about what the problem is. If the goal is a simple API client that has iOS/Android/Desktop compatibility, then Cordova seems a reasonable choice. Would the above commenter have preferred 4+ separate projects instead?
- jernfrost 10y agoYou seem to imply 4 projects is 4x the time. In my experience I spent more than 2x the time just getting a Cordova project up an running compared to just building the whole dam thing from scratch on iOS. Why? Cordova kept changing all the time. Documentation sucked. It was buggy. The tools were substandard and it had inconsistent behavior across platforms. Terrible experience. I have colleagues who had the same terrible experience but they still cling to the idea that it will somehow work out in the end. The idea of one code to rule all the platforms is just too enticing. I don't doubt that some people will be more effective at using Cordova. The problem is people treat this decision as if it is independent of the people who will build the solution. Somebody with years of training doing JavaScript and practically no experience with writing native code will likely be much faster with Cordova. That is why these projects exist in the first place. There are so many JavaScript developers out there. For them even a crappy setup like Cordova will still be faster than native development. But in reverse if you actually got good experience with native platforms and know the tools, Cordova is not going to deliver. You wont have access to the kind of debugging tools, editors, type checking, GUI builders, documentation etc you get on a native platform, which makes a native developer work efficiently.
- ikeboy 10y agoPreviously: https://news.ycombinator.com/item?id=9976158 https://news.ycombinator.com/item?id=9976158
- rkeene2 10y agoWebPass ( https://webpass.rkeene.org/ https://webpass.rkeene.org/ ) is similar -- its syncing is done by encrypting the list of sites (note that passwords are never stored or encrypted) and sending that from one client to another (no server ever stores the encrypteed list of sites). It's also an iOS/Chrome webapp so it will act like a native app in some ways. It's also a single JavaScript file which isn't too heavy. The sync'ing is done by a simple process that reads what another client writes implemented as a CGI talking over a FIFO.
- abhv 10y agoI am an academic who works on zero-knowledge proofs; as far as I can tell, this system has nothing to do with the Turing-award winning concept of "zero-knowledge." Based on the information on the website, my opinion is that the author is gratuitously appropriating the term "zero-knowledge" here.