移动应用安全码验证

Posted

技术标签:

【中文标题】移动应用安全码验证【英文标题】:Mobile app security code verification 【发布时间】:2016-09-09 14:08:23 【问题描述】:

我计划设计一个应用程序,该应用程序将提供可供用户选择添加到其帐户的替代安全流程。

到目前为止,我的想法是获取用户下载应用程序的手机的电话号码,然后将网站帐户与电话号码相关联,每个唯一电话号码只有一个帐户。

显然,为了提高安全性,代码将每 30 秒随机生成一次。因此,如果用户想要登录,网站或应用程序将需要该帐户链接到的移动设备的安全代码。

我坚持的一件事是如何让应用程序和网站相互通信并不断更新,以便应用程序每 30 秒为每个注册的用户提供一个新的安全代码(只要他们有该选项已启用)。

安全代码将存储在数据库中,(假设我们至少有几千个启用该选项的用户)数据库的更新量肯定会使服务器过载?

我将如何做这件事,并优化服务器处理它的“算法”。

此外,在这种情况下,更“强大”的数据库服务器(例如 MariaDB)会比 mysqli、SQLite 等更好吗?

问候

【问题讨论】:

您不需要将代码存储在数据库中。只需生成一个代码并等待 30 秒。之后,放下它。 好的,但是我将使用什么过程从网站的应用程序中获取它? HOTP 或 TOTP,通常。为此有公共 RFC。还有github.com/paragonie/multi_factor 【参考方案1】:

这可以通过Two-Factor Authentication 来实现。双因素身份验证为帐户登录添加了第二级身份验证。当您只需要输入您的用户名和一个密码时,这被认为是单因素身份验证。在两因素身份验证中,让我们在登录时添加从您的手机或外部应用程序提供的唯一代码,以进行另一步骤的身份验证。

通过双重身份验证,您可以生成每 30 秒更改一次的随机数,该随机数可在用户登录时使用。

您可以自己实施两因素身份验证,也可以使用现有的身份验证,例如GoogleAuthenticator for php。使用 Google Authenticator,它允许使用我们可以构建二维码的秘密创建一个秘密密钥。从 Google Authenticator 应用程序读取二维码后,它将每 60 秒生成一次。

【讨论】:

以上是关于移动应用安全码验证的主要内容,如果未能解决你的问题,请参考以下文章

PayPalPro Flow API 和地址和安全码验证

如何获取android安全码SHA1

我的手机说安全码不对?

vue实现随机验证码(数字类型字母类型)业务适用于登录页网页安全码

vue实现随机验证码(数字类型字母类型)业务适用于登录页网页安全码

--移动硬盘一区变RAW无安全项-本地策略改经典也无效