I am working on a system that will require the user to log in to the device using the account created on the website. Authentication will go through HTTPS, so this is not a problem. The application running on the device will allow you to make purchases inside the application using a credit card associated with their account, so it is important that the login credentials are safe enough so that it is difficult to attack using brute force. The only problem is that the device that will be used by the user will have limited user input capabilities (essentially, arrow keys and a selection button).
In this case, a typical username / password may be too cumbersome to enter, which also requires the development of an on-screen keyboard that is accessible using the arrow keys. Users are likely to eventually create simple passwords that are easy to crack. However, after entering the system, the user will use the access token behind the scenes, so they may not need to enter the password many times.
The first step is that the user will need to enter their username or identification number. Using a number may be easier to enter, but also easier to guess. I am also open to suggestions in this area.
Next is the password entry process. So, here are a few ideas that I have, but I'm not a cryptography specialist, so I donβt know how to evaluate the level of security.
The user must first register the device. This may be a step that I require in any case, for added security. The device will generate a key that will be sent to the server and saved with the account. The key will be required when making future authentication requests. The user will need to log into the website to approve the device. The device will not have any identifier, so if you do not log in soon, you will not know if it was your device or someone else is trying to fake you. It would be nice to create some kind of additional identifier, maybe a short code, phrase or image will be displayed so that you know this is the same device that you just tried to register.
Since entering a text password may be too complicated if the device is registered, it is possible that a four-digit access code may be used in the application to confirm purchases. In any case, this can be nice to prevent if other users of the device cannot use your account without your permission. However, if they watch you enter your password, then this is not very good for this purpose.
If device registration is not required, instead of logging in with a text password, the user may be presented with images or phrases as parameters, and they should choose the right combination of images / phrases that match their account.
That's all I have. What do you think? How can I create a simple but secure login when purchasing apps in an app?
source share