Page MenuHomePhabricator

OATHAuth Recovery Code code improvement suggestions
Open, Needs TriagePublic

Description

From the work in T232336: Separate recovery codes into a separate 2FA module and after the merge of https://gerrit.wikimedia.org/r/1182964, @Tgr made some suggestions for follow-up code improvements:

  • src/HTMLForm/KeySessionStorageTrait.php, line 27 : use set()/getSecret() instead of set/getSessionData()
  • src/Key/EncryptionHelper.php, line 105 : Instead of reusing the nonce, use random_nonce, random_nonce + 1, ... for the keys (that assumes key order is preserved, so e.g. no PHP -> JSON -> JS -> JSON -> PHP roundtrip) as the nonce doesn't have to be particularly random, just not reused. Or, preferably, just concatenate all recovery codes and encrypt as a single message.
  • src/Key/RecoveryCodeKeys.php, line 166 : use RequestContext::getMain()->getRequest()->getSecurityLogContext( $user->getUser() ) instead of manual IP logging.

Event Timeline

sbassett renamed this task from Recovery Code follow-up suggestions to OATHAuth Recovery Code code improvement suggestions.Oct 6 2025, 3:38 PM

Change #1193902 had a related patch set uploaded (by SBassett; author: SBassett):

[mediawiki/extensions/OATHAuth@master] OATHAuth Recovery Code code improvement

https://gerrit.wikimedia.org/r/1193902

Change #1193902 merged by jenkins-bot:

[mediawiki/extensions/OATHAuth@master] OATHAuth Recovery Code code improvement

https://gerrit.wikimedia.org/r/1193902

Change #1194962 had a related patch set uploaded (by SBassett; author: SBassett):

[mediawiki/extensions/OATHAuth@wmf/1.45.0-wmf.22] OATHAuth Recovery Code code improvement

https://gerrit.wikimedia.org/r/1194962

Change #1194962 merged by jenkins-bot:

[mediawiki/extensions/OATHAuth@wmf/1.45.0-wmf.22] OATHAuth Recovery Code code improvement

https://gerrit.wikimedia.org/r/1194962

Mentioned in SAL (#wikimedia-operations) [2025-10-09T20:18:30Z] <reedy@deploy2002> Started scap sync-world: Backport for [[gerrit:1194962|OATHAuth Recovery Code code improvement (T406501)]]

Mentioned in SAL (#wikimedia-operations) [2025-10-09T20:22:59Z] <reedy@deploy2002> sbassett, reedy: Backport for [[gerrit:1194962|OATHAuth Recovery Code code improvement (T406501)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2025-10-09T20:28:49Z] <reedy@deploy2002> Finished scap sync-world: Backport for [[gerrit:1194962|OATHAuth Recovery Code code improvement (T406501)]] (duration: 10m 19s)