←back to thread

312 points campuscodi | 9 comments | | HN request time: 0.876s | source | bottom
Show context
Diggsey ◴[] No.43375000[source]
I recently had to implement SAML and this headline does not surprise me in the slightest.

The SAML spec itself is fairly reasonable, but is built upon XML signatures (and in turn, XML canonicalization) which are truly insane standards, if they can even be called such.

Only a committee could produce such a twisted and depraved specification, no single mind would be capable of holding and combining such contradictory ideas.

It would be so simple to just transmit signatures out-of-band and SAML would be a pleasure to implement.

replies(3): >>43375038 #>>43375229 #>>43375725 #
1. TZubiri ◴[] No.43375725[source]
Is SSO salvageable at all? It seems like the idea of just logging into different accounts is fine.

Also just the idea of connecting your accounts together such that you can get megacompromised is foundationally riskier

replies(4): >>43376069 #>>43376167 #>>43376289 #>>43378267 #
2. gusmd ◴[] No.43376069[source]
One can use OIDC instead of SAML for SSO.
3. unscaled ◴[] No.43376167[source]
SAML is not the only standard for SSO. Before SAML we had Kerberos and nowadays you can use Open ID Connect. Other standards can have their own gotcha, but SAML is uniquely horrendous.

When we get vulnerabilities in the SSO protocol (SAML or otherwise) these vulnerabilities generally only affect some of the clients (identity consumers) who have implemented the protocol incorrectly or are using a feature that the provider has implemented incorrectly. Vulnerabilities that break the entire provider are less common.

When comparing this situation to having multiple different accounts, I can't see how SSO is less secure. Sure, when you have breach that affects the entire identity provider the damage is high, but the risk of having a breach (any breach!) is lower, since implementations are fewer, more consolidated and usually developed by people with better expertise.

4. thayne ◴[] No.43376289[source]
OIDC is better than SAML, but that isn't a high bar. And OIDC has its own problems.
replies(1): >>43376359 #
5. tptacek ◴[] No.43376359[source]
OIDC's problems are nothing like those of SAML.
6. blincoln ◴[] No.43378267[source]
The biggest problem with having separate accounts for everything is that a lot of the users will make their own "wish it were SSO" by setting their passwords in the systems to the same value. Then, when the weakest system is exploited, the attacker gets credentials that are valid across the organization. Yes, they should be using a password manager with unique, random passwords for each system, but realistically a good chunk of larger organizations' staff are not going to do that.

Some other headaches:

Having decentralised authentication means that onboarding and offboarding need to have a bunch of tedious manual steps, or custom automation.

Whoever does user support for the organization has to be trained to reset passwords/unlock accounts in a hodgepodge of systems.

Any security controls the organization wants to implement need to be reimplemented or approximated in a bunch of different systems. E.g. if there are regulatory requirements for account lockouts, time between explicit reauthentication, etc.

It becomes much more critical to collect the authentication logs/event data for all of those systems, and harmonize its formatting with everything else so that the security ops team isn't maintaining separate monitoring/alerting rules for every system.

For large-scale systems, there are also at least theoretically performance advantages to the kind of signed ticket approach that SSO mechanisms tend to use, versus having to do database lookups of session IDs or verify a password. It's possible to do that without SSO, but if you're going to the trouble of implementing that kind of mechanism, you're most of the way to having SSO anyway, and might as well just finish the job IMO.

replies(3): >>43378708 #>>43378719 #>>43380223 #
7. TZubiri ◴[] No.43378708[source]
Often password rules make slight variations of the passwords so that the damage is limited.

Furthermore, attackers don't try all accounts since they don't know which ones exist (unless they have email access).

8. TZubiri ◴[] No.43378719[source]
"If there are regulatory requirements for account lockouts"

Then the vendor can impmenent those? The need for control might be a source for greater risk.

9. semitones ◴[] No.43380223[source]
> Having decentralised authentication means that onboarding and offboarding need to have a bunch of tedious manual steps, or custom automation.

Furthermore, SAML SSO alone does not save you from worrying about this, ideally you'd also implement SCIM, to have actually automated + real-time identity updates, which is yet another protocol separate from SAML.