On 17/12/2014 03:22, Ryan Feeley wrote:
The user can be sent to the "account locked" screen as the result of three 
actions:
1) sign in
2) delete account (from settings)
3) change password (from settings)

Thanks for this! I updated the flow to accommodate the additional cases.

I imagine the original tab, if still open and verification occurs in the same 
browser, should complete whatever it was trying to do.

This is definitely tricky, especially when it comes to deleting the account.

Thinking through the currently known scenarios, and that locked accounts will 
not happen often, it’s probably best to keep it simple, and just show the same 
experience for all users.

I wholeheartedly support the "this is a very uncommon scenario, keep it simple" philosophy here :-)

The user attempts to perform a high-security action and is informed that the 
account is in “lockdown”. Clicking the email unlocks the account, and if they 
are attempting a delete or change password, they can then try it again.

So what I’m proposing is that we introduce the Lockdown screen as soon as the 
user clicks the Delete Account or Change Password link, and not after they have 
initiated the action.

From a technical standpoint, I'll note that the frontend will be able to poll for the lockout status of an account using the /v1/account/status endpoint.

Link again:
https://www.lucidchart.com/documents/view/a8190a33-b8f3-448c-bc9c-474528e46d37

Thanks for this Ryan, I'm looking forward to seeing it all come together.

Some notes below, based on my understanding of the core technical details of lockout as currently conceived. (Which makes "those technical details will have to change to make for a better experience" a perfectly valid reply...)


  * Re: the "Locked state" diagram on the first tab.

Being "in lockdown" is a property of the account, not of a particular device, so I'm not sure the new-device/old-device/attacker-device distinction is useful.

On the backend, the account is put on lockdown as a result of very high rate of failed login attempts, regardless of what device(s) the attempts came from. Once in this state, the "you can't do that because the account is locked" error applies uniformly to anyone attempting a high-security operation.

I'm not sure how to offer "previously used device -> experience unchanged" in a useful way. Is this safe to do in the event of a lost/compromised device? And how do we identify a previously-used device anyway?

Branching on whether the password is correct seems to defeat the major purpose of lockdown, which is to prevent brute-force password guessing attempts. When the account is in lockdown, we must not leak any information about correctness of submitted passwords.

Relatedly, the "signing-in/not-signing-in" distinction is an illusion. All three of the operations in question require the user to enter their password, which is why they're on the lockdown list - these are all the operations that provide an opportunity for password guessing by an attacker.


  * Re: the "Lockdown to Attacker" screen on the second tab.

I question whether this screen is useful. What do we gain by showing this screen rather than the "Lockdown to User" screen?

For an attacker triggering lockdown maliciously, I don't really care about them having a nice UX. They're probably hitting the backend APIs directly anyway.

For a user who triggers lockdown accidentally (e.g. by trying to brute-force their own forgotten password) the "Lockdown to User" screen seems more useful than "Lockdown to Attacker".


 Cheers,

   Ryan



_______________________________________________
Dev-fxacct mailing list
[email protected]
https://mail.mozilla.org/listinfo/dev-fxacct

Reply via email to