3 ms·
Wow, longer than a single line comment. I'm impressed. :-) I agree totally on all your points, and this still needs work, as I said. But that age old boogeym
by zedshaw 16y ago
Wow, longer than a single line comment. I'm impressed. :-)
I agree totally on all your points, and this still needs work, as I said.
But that age old boogeyman from the 90's of "javascript cryptography is flawed" has to go. It works just fine, and most of the complaints people have you can leverage against any language. Sure, it blows, but the SJCL has really good solutions to many of the encoding issues. After that it's pretty much just as lame as most languages.
Also, your attacks are valid on all existing sites, and I'm not claiming it solves any of those. If an attacker can get to the browser, then you're screwed always. I am not even trying to claim this solves any attack in the browser, and in fact I'm saying that all websites are vulnerable no matter what people use. Even with OpenID I can use evil UI tricks to get your password.
What this is solving is only the problem of people not wanting to setup their own auth system and get it right. It doesn't stop a determined evil web site from abusing it, because no solution would. It doesn't stop an idiot from using it wrong, because no solution would. It just helps them not store passwords, and that's it.
- tptacek 16y agoI know that serving up ribeyes carved off sacred cows is your schtick and all, but on this issue you're just wrong. Browser javascript is the most hostile environment crypto is deployed in today; it's worse even than microcontrollers that have to use CBC-MAC because SHA1 won't fit in code space. It doesn't work. I'm writing up a document about this now, as luck would have it, but in the meantime you could try not taking my word for and instead read Nate Lawson, who is smarter than both of us put together: http://rdist.root.org/2010/11/29/final-post-on-javascript-crypto/#comments http://rdist.root.org/2010/11/29/final-post-on-javascript-cr... Here's a hint: it's not about "encoding issues". SJCL is nice work, but SJCL is to a working cryptosystem what mixed oxide U/Pu fuel pellets are to a working nuclear reactor. Don't be like that boy scout who irradiated his whole suburb building something in his garage.
- deleted 16y ago[deleted]
- deleted 16y ago[deleted]
- bobds 16y agoWhy not build it into the browser? Firefox already exposes a window.crypto object.
- zedshaw 16y agoYou know what Thomas, you're right I'm being douchey. I'll work on making this a bit better, and report on what I find. Thanks for your comments so far.
- tptacek 16y agoI had it coming. But for what it's worth: I'm a net admirer of your work. Call me out for being unfair any time, but don't think I'm throwing darts at a Zed Shaw picture on my wall.
- krainboltgreene 16y agoIt doesn't stop an idiot from using it wrong, because no solution would. I disagree, I think our services provide a path of least resistance and if there's anything an idiot loves it's the path of least work/time.
- zedshaw 16y agoYeah, very very true. I've said for a while that the quality of example code and the "linguistic usability" of a service or API is a major influence on what a programmer does.