Skip to content
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

-PLUS variants for SCRAM #950

Closed
Neustradamus opened this issue Nov 15, 2019 · 10 comments
Closed

-PLUS variants for SCRAM #950

Neustradamus opened this issue Nov 15, 2019 · 10 comments
Labels
enhancement New feature or request wontfix This will not be worked on

Comments

@Neustradamus
Copy link

Neustradamus commented Nov 15, 2019

"When using the SASL SCRAM mechanism, the SCRAM-SHA-256-PLUS variant SHOULD be preferred over the SCRAM-SHA-256 variant, and SHA-256 variants [RFC7677] SHOULD be preferred over SHA-1 variants [RFC5802]".

https://xmpp.org/extensions/inbox/hash-recommendations.html

-PLUS variants:

LDAP:

  • RFC5803: Lightweight Directory Access Protocol (LDAP) Schema for Storing Salted: Challenge Response Authentication Mechanism (SCRAM) Secrets: https://tools.ietf.org/html/rfc5803

HTTP:

2FA:

IANA:

Linked to:

@jstedfast jstedfast added the enhancement New feature or request label Nov 15, 2019
@jstedfast
Copy link
Owner

jstedfast commented Nov 15, 2019

MailKit already supports (and has for a few years now) SCRAM-SHA-256 and SCRAM-SHA-1 and correctly prefers SCRAM-SHA-256 over SCRAM-SHA-1.

The SCRAM SASL mechanisms do not appear to be widely supported among mail servers in general and the PLUS variants are even less widely supported as far as I've seen which makes this feature an extremely low priority for me.

I also don't have any servers available to me for testing any implementation of the PLUS variants that I come up with, so that puts a major road block in front of me as well.

That said, I would welcome a Pull Request for this feature if you really need it that badly.

@Neustradamus
Copy link
Author

Neustradamus commented Nov 15, 2019

Yes, the request is for -PLUS variants :)

Since some months, Cyrus SASL supports (and Cyrus IMAP):

More info on "State of Play" cited previously.

@jstedfast
Copy link
Owner

I don't have access to a Cyrus IMAP server, so that doesn't help me at all.

@jstedfast
Copy link
Owner

This seems impossible to implement using C# and SslStream.

@jstedfast jstedfast added the wontfix This will not be worked on label Nov 17, 2019
@Neustradamus
Copy link
Author

@jstedfast: What is the problem exactly?

@jstedfast
Copy link
Owner

@Neustradamus

I don't remember, but presumably the hooks needed for the -PLUS variants aren't available (or I couldn't find them) in SslStream. I'd be happy to review pull requests if you'd like to implement this.

@Neustradamus Neustradamus changed the title -PLUS variants for SCRAM-SHA-1 and SCRAM-SHA-256 -PLUS variants for SCRAM Nov 12, 2020
jstedfast added a commit that referenced this issue Aug 14, 2021
jstedfast added a commit that referenced this issue Aug 14, 2021
jstedfast added a commit that referenced this issue Aug 15, 2021
jstedfast added a commit that referenced this issue Aug 15, 2021
jstedfast added a commit that referenced this issue Aug 22, 2021
jstedfast added a commit that referenced this issue Aug 28, 2021
jstedfast added a commit that referenced this issue Sep 4, 2021
jstedfast added a commit that referenced this issue Sep 5, 2021
jstedfast added a commit that referenced this issue Sep 10, 2021
@jstedfast
Copy link
Owner

MailKit v3.0.0 has been released with support for the -PLUS variants.

@Neustradamus
Copy link
Author

@jstedfast: Nice, thanks!

Compatibility with TLS 1.2 and 1.3?

@jstedfast
Copy link
Owner

yes

@Neustradamus
Copy link
Author

@jstedfast: It is official for TLS 1.3 Binding!

Details:

  • tls-unique for TLS =< 1.2
  • tls-exporter for TLS = 1.3

Linked to:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

2 participants