我正在开发一个系统,该系统需要用户使用他们在网站上创建的帐户登录设备。身份验证将通过 HTTPS 进行,因此这不是问题。设备上运行的应用程序将允许使用与其帐户相关联的信用卡进行应用内购买,因此登录凭据必须足够安全,以使其难以使用暴力攻击进行攻击。唯一的问题是用户将使用的设备将具有有限的用户输入功能(主要是箭头键和选择按钮)。
在这种情况下,典型的用户名/密码可能太麻烦而无法输入,还需要开发可通过箭头键导航的屏幕键盘。用户最终可能会创建容易破解的简单密码。但是,一旦登录,用户将在后台使用访问令牌,因此他们可能不需要多次输入密码。
第一步是用户需要输入他们的用户名或 ID 号。使用数字可能更容易输入,但也更容易猜测。我也愿意接受这方面的建议。
接下来是输入“密码”的过程。所以这里有一些我的想法,但我不是密码学专家,所以我不知道如何衡量安全级别。
用户必须先注册设备。无论如何,这可能是我需要的一个步骤,以提高安全性。该设备将生成一个密钥,该密钥将发送到服务器并与帐户一起存储。执行未来的身份验证请求时将需要该密钥。用户需要登录网站才能批准该设备。该设备不会有任何类型的标识符,因此除非您很快登录,否则您不会知道它是您的设备还是其他人试图欺骗您。如果能够创建某种附加标识符,可能会显示一个短代码、短语或图像,这样您就可以知道它与您刚刚尝试注册的设备相同。
由于输入文本密码可能太难了,只要设备已注册,在确认应用内购买时也许可以使用 4 位密码。无论如何,这可能会很好地防止设备的其他用户在未经您许可的情况下使用您的帐户。但是,如果他们正在监视您输入密码,那么它就不再适合这个目的了。
如果不需要注册设备,而不是使用文本密码登录,用户可能会看到图像或短语作为选项,他们必须选择与其帐户匹配的正确图像/短语组合。
到目前为止,这就是我所拥有的。你觉得呢?你有没有什么想法?当涉及应用内购买时,如何创建一个简单但安全的登录?