News for hackers. Stuff that matters.
Re:End-to-end encryption in the browser by sneak on Monday March 23, 2020 @10:06AM (#22664212)
From one of HN's own stars:

Javascript Cryptography Considered Harmful: https://www.nccgroup.trust/us/about-us/newsroom-and-events/b...

There are some out of date bits, but the core of the post is still as true as it was back in 2011.

Re:End-to-end encryption in the browser by _squared_ on Monday March 23, 2020 @10:52AM (#22664627)
It's not just "some out of date bits", 90% of this post is ridiculously outdated.

Making an end-to-end encrypted web app with WebAssembly, WebCrypto, Service Workers and free TLS by Let's Encrypt is totally viable nowadays. Also, the Web userbase is largely using evergreen browsers like Firefox and Chrome.

Re:End-to-end encryption in the browser by minitech on Monday March 23, 2020 @10:21AM (#22664334)
Very little of that article is applicable. The website is served over HTTPS, the browser has a crypto API now. The encryption in this project decreases the impact of any future compromise of the server (if a share link is never visited post-compromise, it’s safe) and makes it necessary for an attacker to show their hand by serving malicious code to the client. (With browsers as they are now, that can be made hard to detect, but it’s a start. There’s always the risk of serving it up to someone who’s logging every response.)
Re:End-to-end encryption in the browser by sneak on Monday March 23, 2020 @10:38AM (#22664499)
All the other js resources on the page can still backdoor the app, though, and exfiltrate your keys. SRI and no longer executing javascript served with the right content-type in an img src is helpful along these lines, but even with SRI on every script tag, the sub-scripts pulled in from the integrity-checked third party js can pull in arbitrary further resources which can then overwrite your functions to steal your keys.

Even a strict CSP doesn't totally close the hole.

It's sort of crazy how difficult (that's a euphemism—I would term it "impossible") it is to even attempt to secure browser-based crypto, over and above the normal challenges involved in crypto implementation. I wouldn't use clientside js crypto for anything more secret than a grocery list.