Custom password before allowing "Export" #494
Replies: 1 comment
-
just to add some additional context, I just saw this: https://www.twilio.com/blog/august-2022-social-engineering-attack Authy's model leans heavily into syncing TOTP secrets across devices. They had user accounts compromised through an attack on the company which allowed registering additional unauthorized devices.
the fact that they try to minimize it by saying it "only" affected 93 users is a distraction. the fact that it happened at all is a demonstration of the security flaw. this is a live demonstration of the use-case for having stronger controls before TOTP secrets can be exfiltrated off of a device by any means |
Beta Was this translation helpful? Give feedback.
-
Android app.
Is your feature request related to a problem? Please describe.
The current workflow for exporting saved data is this:
while this is very good and far far superior than no authentication at all, i feel like this can be stronger
Describe the solution you'd like
an option to set a custom key/password before:
this is different from setting an encryption password (step 3 above) since that is a password to access the backup
what i am proposing is a custom password to allow anything being exported at all
this can be either in addition to device credentials (current step 4), or in place of it.
the reason this can be stronger than the current workflow is that a user can set a much stronger custom password than the device lock password/pin/pattern/biometrics since it is used very rarely
also, the device credentials needs to be used to open the app in the first place (to unlock phone, and also to unlock the app if the app lock option is enabled), providing opportunities for peeping close-in-time to triggering an export. a separate/additional password that is rarely used provides a much stronger protection against exfiltration of the secrets.
so, the proposed additional option in settings would be:
and if it has been set, the proposed workflow would be:
and if this is also implemented as a gate to login, the workflow would be:
for QR code:
Describe alternatives you've considered
In terms of exporting data, FreeOTP does it this way:
this achieves that: any backups will not be accessible unless you have the original password first set in the 1st place.
pro: slightly less friction for UX
con: no way to change it once set other than resetting the app entirely and starting over
there can be a way to do it this way while still allowing securely changing the password later: the old password must be required in order to change it. cannot simply set a new one without inputting the current one.
Additional context
I like that the app uses android's device credentials and there are security benefits to that, so i would like that to stay.
e.g. if every app uses android device credentials, only 1 pin needs to be changed to update all of them, whereas app-specific pins may never be changed at all.
however, in the context of exfiltration of TOTP data, a custom and rarely used password just for the exporting or syncing of data offers security advantages, because it only needs to be used rarely:
the app lock "Lockscreen" option that prompts for device credentials upon opening the app should still use the device credentials since it is used every time the app is opened
the custom password should be used any time anything other than the current one time code can be exfiltrated from the device.
Beta Was this translation helpful? Give feedback.
All reactions