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

Implement XEP-0480: SASL Upgrade Tasks #80

Closed
tmolitor-stud-tu opened this issue Dec 14, 2023 · 9 comments
Closed

Implement XEP-0480: SASL Upgrade Tasks #80

tmolitor-stud-tu opened this issue Dec 14, 2023 · 9 comments
Assignees

Comments

@tmolitor-stud-tu
Copy link
Contributor

This is the last missing piece for modern SASL2 authentication: XEP-0480: SASL Upgrade Tasks is needed to make sure clients can update the old SHA-1 password hashes to more secure alternatives like SHA-256.

This isn't as urgent as the other SASL2 related stuff you just implemented, but needed to make sure we can transition from SHA-1 to something more secure before SCRAM-SHA-1 becomes insecure.
This transition will take quite some time, so it is good to start early with this.

I promise this is the last SASL-related implementation request I'm doing ;)

BTW: This XEP was originally developed inside the main SASL2 XEP (XEP-0388) but later factored out to not create another of these large XEPs like MUC or PubSub.

@tmolitor-stud-tu
Copy link
Contributor Author

tmolitor-stud-tu commented Dec 14, 2023

Side note: I've wrote a blog post about modern SASL authentication that more or less led to all of these SASL2 related XEPs over here: https://monal-im.org/post/00004-sasl/

@Neustradamus
Copy link

Important too :)

@Neustradamus
Copy link

@tmolitor-stud-tu: Good news, @prefiks has added the support in xmpp 1.9.0 and ejabberd 24.10, a big thanks!

@tmolitor-stud-tu
Copy link
Contributor Author

Nice, thanks!!

@tmolitor-stud-tu
Copy link
Contributor Author

tmolitor-stud-tu commented Dec 1, 2024

@badlop I'm sorry, the xep had two errors, fixed over here: xsf/xeps#1403
without base64 encoding, the salt could contain characters not allowed in xml and the schema didn't match the description and examples regarding the iterations attribute (it was still an element in the schema)

please fix the ejabberd implementation to match the new fixed xep version 0.2.0.

@tmolitor-stud-tu
Copy link
Contributor Author

Example:

RECV(127): <task-data xmlns='urn:xmpp:sasl:2'><salt iterations='4096' xmlns='urn:xmpp:scram-upgrade:0'>êª0flüb˚-h)√*!▒æ</salt></task-data>
XML parse error occurred: line: 1 , col: 1624 desc: The operation couldn’t be completed. (NSXMLParserErrorDomain error 9.)

@weiss weiss reopened this Dec 1, 2024
@weiss
Copy link
Member

weiss commented Dec 1, 2024

Fixed, thanks.

@weiss weiss closed this as completed Dec 1, 2024
@Neustradamus
Copy link

@tmolitor-stud-tu, @weiss: Thanks for your reactivity!

@Neustradamus
Copy link

Neustradamus commented Dec 3, 2024

@badlop: Like you have seen, the @tmolitor-stud-tu XEP-0480 fix has been merged!

XEP-0480 0.2.0 is now official:

@weiss, @badlop: Thanks for your reactivity!

@badlop: Oups, I have seen that it is not upstream, can you update too?


Initial commits from @prefiks are here:

ejabberd 24.10 specifications added by badlop:

badlop added a commit to processone/ejabberd that referenced this issue Dec 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants