Revert "[Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords"

This reverts commit 088e932882.


Took 6 minutes
This commit is contained in:
Lukas Brübach 2026-08-25 20:52:25 +02:00
parent 088e932882
commit 47df709f37
33 changed files with 23 additions and 675 deletions

View file

@ -25,8 +25,7 @@ void FeatureSet::initalizeFeatureList(QMap<QString, bool> &_featureList)
_featureList.insert("idle_client", false);
_featureList.insert("forgot_password", false);
_featureList.insert("websocket", false);
_featureList.insert("hashed_password_login", false);
_featureList.insert("challenge_response_auth", false);
// featureList.insert("hashed_password_login", false);
// These are temp to force users onto a newer client
_featureList.insert("2.7.0_min_version", false);
_featureList.insert("2.8.0_min_version", false);

View file

@ -8,7 +8,6 @@ message Event_ServerIdentification {
enum ServerOptions {
NoOptions = 0;
SupportsPasswordHash = 1;
SupportsChallengeResponseAuth = 2;
}
optional string server_name = 1;
optional string server_version = 2;

View file

@ -6,14 +6,4 @@ message Response_PasswordSalt {
optional Response_PasswordSalt ext = 1017;
}
optional string password_salt = 1;
// scrypt cost parameters for password_salt. Absent/zero for legacy accounts.
optional int32 n = 2;
optional int32 r = 3;
optional int32 p = 4;
// Server-generated challenge. When present the client must authenticate
// with a challenge-response instead of transmitting the password hash.
optional bytes nonce = 5;
// True when the account still uses the legacy password format and should
// be migrated to the scrypt format after a successful login.
optional bool needs_migration = 6;
}

View file

@ -28,7 +28,6 @@ message SessionCommand {
FORGOT_PASSWORD_CHALLENGE = 1023;
REQUEST_PASSWORD_SALT = 1024;
SET_CARD_ART_PARAMS = 1025;
SUBMIT_PASSWORD_VERIFIER = 1026;
REPLAY_LIST = 1100;
REPLAY_DOWNLOAD = 1101;
REPLAY_MODIFY_MATCH = 1102;
@ -219,14 +218,3 @@ message Command_SetCardArtParams {
optional double vertical_offset = 5;
optional double zoom = 6;
}
// Client uploads the new password verifier to migrate a legacy account
// after a successful challenge-response login. Idempotent; only applies
// to accounts still using the legacy password format.
message Command_SubmitPasswordVerifier {
extend SessionCommand {
optional Command_SubmitPasswordVerifier ext = 1026;
}
// Full verifier string to store, e.g. "$pbkdf2-sha512$210000$<salt>$<verifier>"
required string password_verifier = 1;
}