<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<div dir="ltr">
<div></div>
<div data-ogsc="" style="">
<div>Hello,</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">Ok, so I have tested the GSSAPI method with a non-native (endured, non delegated) Kerberos login and it works with and without TLS no matter if channel binding is enforced or not. (GSS without TLS fails as expected with auth when request signing
is required).</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">So this either means the enforcing does not work on Windows Server 2019 or the enforcing is not for TLS binding in GSSAPI handshakes.</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">I will publish the traces later.</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">BTW1 when using GSS with TLS and requesting Auth-int and/or auth-conf the MS DS will actually terminate the connection with a "wrong parameter" error (on the server side event log) and close the socket with no proper error.</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">BTW2 i tested anonymous binds, it rejects RootDSE queries in my case.</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">Gruss</div>
<div dir="ltr">Bernd</div>
<div dir="ltr"><br>
</div>
<div class="ms-outlook-ios-signature" id="ms-outlook-mobile-signature">
<div style="direction: ltr;">-- </div>
<div style="direction: ltr;">http://bernd.eckenfels.net</div>
</div>
</div>
<div id="id-24995838-ea1a-4c0a-8046-cf78ae4422aa" class="ms-outlook-mobile-reference-message">
<hr style="display: inline-block; width: 98%; font-family: -webkit-standard; font-size: 12pt; color: rgb(0, 0, 0);" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif"><b>Von:</b> Michael Osipov <1983-01-06@gmx.net><br>
<b>Gesendet:</b> Sonntag, Januar 19, 2020 11:15 AM<br>
<b>An:</b> Bernd Eckenfels<br>
<b>Cc:</b> security-dev@openjdk.java.net<br>
<b>Betreff:</b> Re: LDAP Channel Binding
<div> </div>
</font></div>
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Am 2020-01-19 um 08:02 schrieb Bernd Eckenfels:<br>
> You said it is confusing, but the bug you mentioned is only a valid<br>
> feature request, it does not talk about failing binds. I would assume<br>
> that Kerberos needs the binding token and the others not.<br>
> Unfortunatelly the doc from Microsoft is quite incomplete and<br>
> confusing.<br>
<br>
The problem is that JSSE Sun Impl documentation does not even mention<br>
TLS channel binding. To make things worse, I agree with you, Microsoft's<br>
documentation is horrible. It does not say whether we are talking about<br>
GSS-API channel binding or TLS channel biding.<br>
<br>
The best I have comeup with is <a href="https://github.com/WinRb/rubyntlm/issues/27">
https://github.com/WinRb/rubyntlm/issues/27</a><br>
<a href="https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/dd639324(v=vs.90)?redirectedfrom=MSDN">https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/dd639324(v=vs.90)?redirectedfrom=MSDN</a><br>
<br>
> So has anybody seeing failing TLS binds yet and if so, in which<br>
> condition?<br>
<br>
Yes, see <a href="https://stackoverflow.com/q/59756206/696632">https://stackoverflow.com/q/59756206/696632</a><br>
<br>
What I can say is tht in our company auth-int has been mandatatory for<br>
several months now and my Java code always used auth-conf with GSSAPI<br>
mech w/o any flaws.<br>
<br>
> It is also not clear why AD proposes the auth. quality of protection<br>
> from digest-md5 if it is configured to reject it. So if somebody can<br>
> get Microsoft to look into this and provide details, that would be<br>
> great.<br>
><br>
> Gruss Bernd<br>
><br>
><br>
> -- <a href="http://bernd.eckenfels.net">http://bernd.eckenfels.net</a> ________________________________ Von:<br>
> Michael Osipov <1983-01-06@gmx.net> Gesendet: Saturday, January 18,<br>
> 2020 9:39:08 PM An: Bernd Eckenfels <ecki@zusammenkunft.net>;<br>
> security-dev@openjdk.java.net <security-dev@openjdk.java.net><br>
> Betreff: Re: LDAP Channel Binding<br>
><br>
> Am 2020-01-16 um 11:32 schrieb Bernd Eckenfels:<br>
>> Hello,<br>
>><br>
>> Some updates:<br>
>><br>
>> Microsoft moved their automatic update of the LDAP policies in<br>
>> Windows Server updates to March 2020 (but still recommend to<br>
>> activate it earlier).<br>
>><br>
>> And I did some tests: when you turn on the mandatory LDAP Signing,<br>
>> then simple binds or Digest-md5 binds over LDAP are rejected by<br>
>> NTDS. Both work over ldaps: (Implicite TLS, did not check<br>
>> STARTTLS). DIGEST-MD5 without TLS is also possible, but you have to<br>
>> request qop=auth-int. (Sidenode AD will reject digest-md5 with<br>
>> Auth-int over TLS). I did not Test GSSAPI or SPNEGO yet.<br>
>><br>
>> The mandatory LDAP channel binding does not seem to make a<br>
>> problem/change. I suspect it only applies to Kerberos or NTLM which<br>
>> I still need to test.<br>
><br>
> That is confusing because:<br>
> <a href="https://bugs.openjdk.java.net/browse/JDK-6491070">https://bugs.openjdk.java.net/browse/JDK-6491070</a><br>
><br>
> I am excited to see your GSSAPI mech results. You cannot test SPENGO<br>
> because the Java SASL factory does not suppor the GSS-SPNEGO SASL<br>
> mech.<br>
><br>
>> PS: testcode<br>
>> <a href="https://gist.github.com/ecki/cdd7a14575b7dca10da8d362974731a0">https://gist.github.com/ecki/cdd7a14575b7dca10da8d362974731a0</a><br>
><br>
> You code looks wrong. Retrieving data from RootDSE does not require<br>
> a successful bind. It will work anonymously. You need to go down the<br>
> tree.<br>
><br>
> Look at ldapsearch(1), if you don't provide -Y GSSAPI, it will<br>
> perform a simple search for supportedSASLMechanisms and pick the best<br>
> one it supports. This is the same as obtaining the root naming<br>
> contexts, this can be done anonymously too.<br>
><br>
> Michael<br>
><br>
<br>
</div>
</span></font></div>
</div>
</body>
</html>