andrewfeeney,
@andrewfeeney@phpc.social avatar

Suppose you have a sign in form which first accepts an email address and then proceeds to MFA steps. If you enter an email which does not match one in the system you get an error. "No matching account found" or whatever. Conversely if you enter an email which matches, you progress to the next screen. In this way you can know whether or not a particular email address is registered with the service.

What would be an alternative approach that doesn't reveal this information?

viq,
@viq@hackerspace.pl avatar
andrewfeeney,
@andrewfeeney@phpc.social avatar

@viq I saw this! It’s brilliant.

sven,
@sven@phpc.social avatar

@andrewfeeney Adobe does this. But they just expose that “email not found” error. 🤦‍♂️

andrewfeeney,
@andrewfeeney@phpc.social avatar

@sven Even AWS expose email not found.

sven,
@sven@phpc.social avatar

@andrewfeeney sheesh.

caroga,

@andrewfeeney You could let the user always progress to the MFA step, and let them "fail successfully" on there. If the account does not exist, you could loop the MFA with "invalid code"-errors, while in reality there is no validation at all. This does come at the expense of "clouding" the real issue when legit users run into this error..
Or you could send the link to the MFA page to the mail, and have the user open this to proceed after the 1st step.
Just some ideas, not that great but yeah...

viq,
@viq@hackerspace.pl avatar

@andrewfeeney
Always go to second screen, with error message "account verification failed" or "wrong account or (verification)" (not sure how to properly refer to MFA here)

andrewfeeney,
@andrewfeeney@phpc.social avatar

@viq So you have to essentially pretend the account exists and accept an MFA code or whatever. Then presumably make sure the request takes the same amount of time as a real one?

viq,
@viq@hackerspace.pl avatar

@andrewfeeney
This may be a situation where having username and password together on first page, and second factor later may be easier, because then you can just say "account and password don't match", leaving only potentially timing analysis to figure out whether account exists or not.

andrewfeeney,
@andrewfeeney@phpc.social avatar

@viq What if it's a "magic link" style login, with no password at all?

codebyjeff,
@codebyjeff@hachyderm.io avatar

@viq @andrewfeeney if email is the only input, then that makes no difference

the usual way is to use the email to send out a code to that address, so that the person with the email can use but no info is leaked

that may be ugly for what you are designing

viq,
@viq@hackerspace.pl avatar

@codebyjeff
If you'redesigning authentication system, do you need to? Authentik, Keycloak, Authelia, ORY Hydra do a pretty good job of that, doing a lot of protections you probably didn't think of. And then you "just" need to add OIDC or SAML to your application.
@andrewfeeney

andrewfeeney,
@andrewfeeney@phpc.social avatar

@viq @codebyjeff I hear you. I'm dealing with an existing system design, and considering a response to a pen test result.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • infosec
  • tacticalgear
  • DreamBathrooms
  • cisconetworking
  • khanakhh
  • mdbf
  • magazineikmin
  • modclub
  • InstantRegret
  • rosin
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • ngwrru68w68
  • JUstTest
  • everett
  • tester
  • cubers
  • normalnudes
  • thenastyranch
  • osvaldo12
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • megavids
  • lostlight
  • All magazines