4 ms·
Auth is really not difficult to write. It's don't roll your own crypto, not don't roll your own auth. People need to stop spreading this fud.
by vmg12 1y ago
Auth is really not difficult to write. It's don't roll your own crypto, not don't roll your own auth. People need to stop spreading this fud.
- risyachka 1y agoYeah it’s not difficult if you know all the specs. The issue is 99% don’t know them and are not very good at following them. And the cost of error is very high. I’ve seen a lot of startups that failed to implement even google oauth securely. So yeah it’s a far cry from fud and you really should not do it unless you are actually good.
- threatofrain 1y agoBut given that BetterAuth is an open source project with a large following, and also given that they just got funding so they can hire more help, now we can evaluate BetterAuth's competency in terms of their ability to coordinate help.
- kylecazar 1y agoAlso, as far as I know, they aren't reimplementing the core auth libraries/specs mentioned
- fmbb 1y agoOAuth is very complicated and fuzzy though. I am not surprised anyone makes mistakes trying to integrate it anywhere.
- motorest 1y ago> Yeah it’s not difficult if you know all the specs. I don't think this is a valid point. Specs only cover a single responsibility: interoperability. This is not a critical requirement of auth services, unless you have a hard requirement on federated auth.
- hobofan 1y agoWhat? No! There are plethora of mistakes one can make in implementing AuthN/AuthZ, and many of them almost immediately will lead to either the direct leak of PII or can form the start of a chain of exploits. Storing password hashes in an inappropriate manner -> BOOM, all your user's passwords are reversible and can be used on other websites Not validating a nonce correctly -> BOOM, your user's auth tokens can be re-used/hijacked Not validating a session timestamps correctly -> BOOM, your outdated tokens can be used to gain the users PII
- vmg12 1y agoNone of those things are difficult to do correctly.
- hobofan 1y agoYeah, one would think so. Evidence in the wild shows otherwise.
- gjsman-1000 1y agoPlenty of evidence in the wild also shows that programmers in general should never be trusted.
- programmarchy 1y agoWith 5M you can get white hat audits. Even big boys like Okta have had serious fuckups [1]. [1] https://trust.okta.com/security-advisories/okta-ad-ldap-delegated-authentication-username/ https://trust.okta.com/security-advisories/okta-ad-ldap-dele...
- stephenr 1y ago> Storing password hashes in an inappropriate manner The problem isn't how you store the hash it's how you generate the hash.
- gjsman-1000 1y ago
- slashdev 1y agoAuth is actually really hard, with many really subtle high impact mistakes one can make.
- fathomdeez 1y agoI also ran into this trying to upgrade my company's auth strategy. The hardest part of auth is convincing people that... it's not actually as hard or dangerous as they think it is. It was an uphill and ultimately unsuccessful battle of mine. People can't even divorce JWTs as simple, verifiable json data blobs from the entirety of the OAuth2 spec. You see it on HN, with hundreds of circular comment threads and I've seen it in real life.
- jongjong 1y agoYes, people mix up the concepts of authentication and authorization (access control). Authentication can be really simple if you rely on a standard like JWT. Authorization is what's difficult and dangerous.
- threatofrain 1y agoI would recommend that people don't do auth not because it's easy to be insecure, it's that auth sometimes needs agility. Auth sometimes needs to grow and adapt just like any other part of your product. Except that auth might not be a core part of your insurance or tax app, and you'd rather spend your energy on the part of "agility" that has to do with the core parts of your app.
- fathomdeez 1y agoOn the flip side I was at a startup using auth0, because as you said, not a core part of the business right? Until the traction hit and they had hundreds of thousands of users. Suddenly the auth bill became untenable - users are great but there wasn’t enough revenue to cover these costs. Auth0 didn’t budge. In fact they were outright nasty to deal with. They were holding our user logins and passwords hostage and they knew it.
- threatofrain 1y agoYou don't have to buy into Okta, you can also lean on auth frameworks like auth.js. Either way you're depending on outside labor to adapt. I worked for a social media company before and we also rolled our own auth and we didn't regret it. High user accounts are a special case and you should know ahead of time. But for B2B? Beware. You might get hit with an ask for active directory support.
- gjsman-1000 1y agoAuth, in my experience, isn't actually that hard to write. OAuth, or any form of SSO, is not something you want to roll yourself. Crypto is absolutely not something you want to roll yourself.
- Intermernet 1y agoI agree completely, which is why it's enlightening to read implementations of crypto. These are often short, seemingly simple, self contained sections of code that have to be as close as possible to perfect. Even simple things like constant time comparison algorithms are beautiful little crystal palaces of code.