<div dir="ltr"><div dir="ltr"><div>On Mon, May 25, 2020 at 3:15 AM Michael Osipov <<a href="mailto:1983-01-06@gmx.net">1983-01-06@gmx.net</a>> wrote:<br></div></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">[...]</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">So I read the discussions. RFC 2744 shall not be changed, people<br>
admitted that the spec of SASL GS2 mechs is wrong and should be changed,<br>
but this has not happened yet. It remained at UNSPEC all the years.<br>
<br>
So we have several issues here:<br>
* GSS-API C bindings and SASL requests are two distinct RFCs which<br>
require/mandate differnt things.<br>
* The change in JGSS in unrelated to this patch because GSS-API knows<br>
nothing about SASL and its fauly spec.<br>
<br>
Since we are doing LDAP over SASL here and RFC 5801 requires to be<br>
UNSPEC (0) the SASL TlsChannelBinding class must take that into account.<br>
Unfortunately, JGSS implies with the args of the ChannelBinding the type<br>
fo the adress. So will change my opinion a bit:<br>
<br>
No property for AD/non-AD is necessary, but handling of UNSPEC is<br>
required. JGSS shall remain at NULLADDR. The subtype<br>
UnspecEmptyInetAddress should be at least evaluated.<br>
<br>
Michael<br></blockquote><div><br></div><div> No. This isn't just about RFC 5801. As Alexey Bakhtin observed, this also applies to channel bindings for HTTP Negotiate Authentication (loosely aka "SPNEGO"), not only for NTLM (which probably isn't at issue here) but also for Kerberos -- that's where I first encountered this, working on a proprietary Java Kerberos implementation.</div><div><br></div><div>More generally, if you want channel bindings to interoperate in the GSSAPI Kerberos Mechanism for any protocol -- SASL GS2, HTTP Negotiate Authentication, or anything else -- ignore the fact that RFC 2744 specifies 255 for the "no address" case and do what everyone actually does: use zero.</div><div><br></div><div>Here is a test from MIT Kerberos that (implicitly) uses zero: <a href="https://github.com/krb5/krb5/blob/master/src/tests/gssapi/t_bindings.c">https://github.com/krb5/krb5/blob/master/src/tests/gssapi/t_bindings.c</a></div><div><br></div><div>And here is one from Heimdal: <a href="https://github.com/heimdal/heimdal/blob/5057d04f6a47f05f1ed7c617458722104d4c17dc/lib/gssapi/test_context.c">https://github.com/heimdal/heimdal/blob/5057d04f6a47f05f1ed7c617458722104d4c17dc/lib/gssapi/test_context.c</a></div><div><br></div><div></div></div></div>