All,

Still working with our AD team, trying to implement Microsoft's AD edict to only allow LDAP SASL bindings with a security strength factor of 2 or greater.

https://bugzilla.redhat.com/show_bug.cgi?id=1793709


So I realize (now) that sssd's default GSSAPI SASL binding does not do signing.  Whereas, the GSS-SPNEGO authentication mechanism does.  Both authentication mechanisms claim a SSF of 256.  So both are accepted by AD DCs enforcing MS' stricter policy.  (We have verified this by hard-coding sssd clients to AD DCs thus configured).

Even with the new hotfix that Microsoft released in July, the AD DCs still report event 2889 (insecure LDAP binding or unsigned LDAP binding) for GSSAPI SASL bindings.  They do not report event 2889 for GSS-SPNEGO SASL bindings.  

I believe our older sssd clients (RHEL 6) cannot do gss-spnego auth mech.  Only our newer RHEL7 and RHEL8 clients can do gss-spnego.  

So while we can satisfy MS' stricter requirement of SASL bindings with SSF >= 2, the AD admins will still see events 2889 in their DC logs.  Certainly for our older clients.

I don't fully understand this claim of SSF == 256 for GSSAPI.

SSF == 0 is supposed to be no protection, SSF = 1 is supposed to be basic integrity checking only, >1 – Supports authentication, integrity and confidentiality.

https://ldapwiki.com/wiki/Security%20Strength%20Factor 

I thought signing was what gave you integrity checking.  To prevent man-in-the middle attacks.  If so, how can GSSAPI claim SSF == 256, since it's not doing signing?

Otherwise, if you can get integrity checking without signing and our GSSAPI bindings are strongly encrypted (they are), how could a man in the middle insert their own code into the packet?  I..e, how important is signing really, if we're strongly encrypted?

Just trying to gauge if it's worth the work effort to convert all our new'ish sssd client to gss-spnego, or leave them at (default) gssapi.

Spike

PS Best would be if MS had broken out insecure LDAP binding and unsigned SASL bindings into 2 different events.  What the AD team *really* wants to eradicate is simple LDAP bindings (i.e., user name/password supplied in clear text).  However, it's hard to distinguish between that and our (sssd-initiated) GSSAPI SASL bindings -- AD team is just looking for event 2889 in their logs.