-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC 9266: Channel Bindings for TLS 1.3 support #462
Comments
I will probably spend time to improve |
@kazu-yamamoto: Good :) Please read the RFC5929 before: It is important to support previous TLS versions and TLS 1.3. For example, XMPP needs some XEPs in more the main RFC6120 with SCRAM-SHA-*-PLUS variants:
All SCRAM RFCs, I-Ds: |
@Neustradamus Is it enough to revert 9b23d2a? |
@kazu-yamamoto: I am not sure about it, I am not an Haskell dev... But there are 3 parts which must be possible:
Haskell devs from 2 XMPP projects:
|
@epoberezkin I guess that you have an opinion on this. |
afaik supercede dropped xmpp and that package is depracated. |
8795ab6 implements |
@kazu-yamamoto: Good job! Now it supports 3 parts?
|
|
Yes for tls-server-end-point, it is needed, it is in:
And it is in SASL2 I-D: Extensible Simple Authentication and Security Layer (SASL): https://datatracker.ietf.org/doc/html/draft-melnikov-sasl2 |
@epoberezkin I have implemented |
@kazu-yamamoto: Thanks! You will remove the support of TLS 1.2 in 2.0? Important: "tls-server-end-point" is needed too: it is in several XEPs and it will be in next SASL2 IETF RFC, an RFC which will replace: https://datatracker.ietf.org/doc/html/rfc4422. You can look in all links cited in my previous comment. |
The last comment was to @epoberezkin which implemented
|
@kazu-yamamoto: Ah sorry, too quick to read :) Can you add comments in the code about "tls-unique" and RFC5929, "tls-server-end-point" and RFC5929, "tls-exporter" and RFC9266? Example in GnuTLS code:
|
The old default for Extended Master Secret of TLS 1.2 was allowed. |
@Neustradamus About comments. The binding name were already there. I added RFC stuff in their comments. |
Thanks @kazu-yamamoto! |
No. |
I have implemented |
What I'm not convinced yet:
|
@kazu-yamamoto: I have sent you an email |
@Neustradamus Yes. I have read the mail. Thank you. I tried to read the code of OpenSSL but I don't understand |
@epoberezkin Would you tell me whether or not |
@kazu-yamamoto sorry for slow replies! tlsunique should be available for TLS 1.3 too - we use exactly that now. While it was defined for TLS 1.2 it can be used with some caveats for TLS 1.3 too - it's just a digest over client's handshake.
You really need both to get tlsunique binding in both client and server, I believe they should not be deprecated, because which one to use depends on client/server role and in any case they can be useful for debugging. I am not sure what "the first Finished" means, if you want to have tlsunique available to both sides via a single then it should be getPeerFinished in the server and getFinished in the client. Also, I believe tlsunique should not be used when session resumption is allowed (that was the motivation to offer new bindings for TLS 1.3 spec) - just looked briefly at this commit, so maybe you can make the new function throw exception unless resumption is disabled.
tlsunique is client's Finished value, as it's defined in TLS handshake, it should not be calculated differently
Good question. We did not test that. |
(1) tls-server-end-point The problem is that the structure of TLS 1.3 certificate is different from that of TLS 1.2: TLS 1.2:
TLS 1.3:
Some guys say "just use the entire of TLS 1.3 certificate" while others say "encode it into TLS 1.2 certificate". (2) tls-unique See the following figure to understand which is the first and which is the second.
The TLS message is composed as follows:
RFC 5929 says:
If the handshake message header is not included, the spec should say so explicitly. Anyway, the current specifications look ambiguous to me. |
Can you add the support of RFC 9266: Channel Bindings for TLS 1.3?
Little details, to know easily:
I think that you have seen the jabber.ru MITM and Channel Binding is the solution:
Thanks in advance.
Linked to:
The text was updated successfully, but these errors were encountered: