2FA is fragile, but here is a quick fix!

Jay Prakash, Ashutosh Dhekne



Two factor authentication tries to stop thieves who have your password from accessing your account by asking you to authorize the access using a registered token device such as your phone. Two factor authentication relies on a simple premise: it asks the user to prove that the user “knows” something (password), and it asks the user to prove that the user “has” something (access to their phone).

This method works well when an adversary is trying to remotely gain access to your accounts. However, given that almost 70 million phones are stolen/lost each year [2], it is natural to wonder if 2FA authentication holds up well when the registered token device falls in the wrong hands. If an adversary is able to break the password using a stolen phone, the second factor becomes meaningless—the adversary already “has” the registered device and can simply approve the second factor notification immediately.

Our suggestion for authenticator apps like Duo [3], Authy [4], Google Authenticator [5], is to lock the phone and show the lock-screen, forcing the user to unlock before displaying the authentication code or allowing approval. Thus someone trying to access an account on a phone device, would now have to prove that (1) they “know” the password, (2) “have” the mobile phone, and (3) “know” the mobile phone unlock pin/pattern. It thus becomes harder to misuse a stolen unlocked phone. Interestingly, this method would apply to both, time-hashed one time passwords (TOTPs), and push-notification based- approaches of 2FA in practice. An attacker would need to unlock the phone using the phone’s strong authentication (PIN, pattern, or password) to access the app’s authentication code or assert approval.


References
[1] https://developer.android.com/reference/android/app/admin/DevicePolicyManager#lockNow()
[2] https://www.forbes.com/sites/steveolenski/2017/12/08/is-the-data-on-your-business-digital-devices-safe/?sh=2f7ae4564c6a
[3] https://duo.com/product/multi-factor-authentication-mfa/duo-mobile-app
[4] https://authy.com/
[5] https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_SG&gl=US