我计划在iPad应用程序中引入双因素身份验证。目前用户使用用户名和密码登录我的应用程序。该用户名和密码是从使用.Net开发的后端Web服务器验证的。如果用户授权登录,则可以访问iPad应用程序。
现在我想引入双因素身份验证来验证用户。我想知道我们在这里有什么选择。由于我们没有用户的电话,因此每次他尝试登录iPad应用程序时都会考虑向手机发送密码。但iPad不支持通过GSM / CDMA网络发送消息。有没有办法实现这个目标? (考虑从本地ISP获取SMS网关并将SMS写入服务器。但它的成本更高)第三方模块就可以了。
答案 0 :(得分:0)
您可以使用代码向用户的手机发送短信。
之后,用户输入代码,APP验证向服务器发出请求的代码。
在用户成功引入用户名/密码后发送短信。
其他选项(不太广泛)是通过电子邮件发送该代码。
答案 1 :(得分:0)
答案 2 :(得分:0)
我无法完全表达我对Twitter最近的TFA实施给我留下了多少印象,它非常方便(假设他们没有破坏协议)比许多其他形式的TFA更安全。
Here's a description written by Wired
但总结一下,您为TFA激活了一个设备,它会生成一个私有(设备)/公共(服务器)密钥对。当您在收到正确的用户名/密码凭据后尝试登录时,服务器会在使用公钥加密的任何授权设备上向应用程序发送推送通知,并且应用程序会对该随机数进行解密,并将该随机数发送回服务器并获得会话。
当然,正如其他人所提到的,您可以使用预先构建的服务,例如Google身份验证器,但它们往往比较笨拙,并且担心SMS和TOTP安全性。
答案 3 :(得分:0)
双因素身份验证意味着确认用户知道的东西(他们的密码)以及他们拥有的东西(如物理钥匙,徽章或RSA钥匙扣; 重要的部分是它是除了物理对象之外的物理对象你给他们什么访问)。向他们用于登录应用程序的iPad发送任何类型的推送都会失败,并且不会超过单一因素(仅限密码)。您唯一的选择是:
答案 4 :(得分:0)
检查google身份验证器。 https://code.google.com/p/google-authenticator/
我认为这对于两步验证来说非常安静。
这是服务器端的源代码(它在php上,但我认为将它转换为.NET或其他平台并不是一个大问题)https://github.com/chregu/GoogleAuthenticator.php
据我所知,它使用基于时间的一次性密码算法http://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm