ergochat / ergo

A modern IRC server (daemon/ircd) written in Go.
https://ergo.chat/
MIT License
2.23k stars 178 forks source link

recommended default: advertise SCRAM #2032

Closed slingamn closed 1 year ago

slingamn commented 1 year ago

cc @jwheare

IRCCloud attempts SCRAM-SHA-256 when it is advertised and does not fall back to PLAIN on failure. This will break authentication for accounts that were created on Ergo 2.7 or earlier, then never logged into again until the first time SCRAM-SHA-256 was advertised (because we only have bcrypt-based credentials and no SCRAM credentials). This is an unacceptable compatibility break, but it's also a weird enough edge case that IRCCloud will probably never fix it.

Compromise: make advertising it a recommended default, but require old servers to opt in explicitly. On a related note, SCRAM is bad and clients should not implement it.

Fixes #1782