Hacker News new | ask | show | jobs
by pinephoneguy 1573 days ago
How do you do shared secret authentication in this model? I know cert based auth is far better but today many apps rely on some kind of shared secret auth. Don't you by definition trust eg LDAP/IPA servers then?

EDIT: In case it's not clear: I'm talking about employee facing software inside an organization where you might have some kind of single sign on system or a distributed account system (like IPA or LDAP.)

3 comments

Use SAML.

The SP never sees the credentials. The SP only sees a token which includes the username (NameID) and other attributes passed from the IdP through the client.

https://en.wikipedia.org/wiki/Security_Assertion_Markup_Lang...

(Scroll down to the "Single sign-on using SAML in a Web browser" image for a good data flow depiction)

Basically this seems to be a "SAML-IZE EVERYTHING".

But with SAML you're trusting the cert/key pair on the signing end of the connection. If you say "well, we can use the cert provided by the server by getting it over HTTPS every time we need to auth with SAML," then you're trusting the Root CA Cert/Key pair for the TLS connection that underlies the HTTPS protocol. (Source: I've written two SAML SPs.)

With ZT, you basically have to bootstrap trust from the factory. I don't think of ZT as "don't trust anything" - it's more like "trust our supply lines".

Think about the failure modes of ZT: if the NIC, the CPU, the OS, and the bootloader are deemed secure at boot time, there has to be something that starts the bootloader and loads its keys. If you compromise _that_ piece, then you can compromise anything further up the stack and not worry too much about security alerts. The only way to make sure that all machines are secure/uncompromised is to XRay all of the bootloader chips and verify them down to the ~100um level (got this figure by talking to a guy doing grad work @UofM when he was in SV around 2017-2018, I want to say).

I don't know but have wondered about this sort of thing before.

There is a Wikipedia article on 'Key ceremony'[0] that seems to indicate an in-real-life shared secret creation and or sharing event.

(https://en.wikipedia.org/wiki/Key_ceremony)[0]

One method is "assume your system is penetrated, so do not put all your secrets on one system."

For example, don't use the same password on your Etrade account that you use on your bank account.