2014-01-17 63 views
5

我正计划在我的iPad应用程序中引入双因素身份验证。目前用户使用用户名和密码登录到我的应用程序。该用户名和密码由使用.Net开发的后端Web服务器进行验证。如果用户授权登录,则他可以访问iPad应用程序。在iPad应用程序中实施双因素身份验证

现在我想介绍两个因素认证来验证用户。我想知道我们在这里有什么选择。由于我们有用户的电话号码,所以每次他尝试登录iPad应用程序时都会考虑向他的电话发送密码。但iPad不支持通过GSM/CDMA网络发送消息。有没有办法做到这一点? (想想从本地ISP获取短信网关并将短信写入服务器,但费用更高)第三方模块可以。

+0

我已经看到dropbox支持2FA。他们提供了两种选择,SMS或使用Duo Mobile,Google Authenticator等TOTP应用程序。任何人都知道他们是如何实现它的? – nath

+0

从ipad发送短信将是一个潜在的安全漏洞 - OTP需要由服务器生成并发送,否则服务器无法验证它。替代品是用于生成OTP的系统 - 可以是基于像google身份验证程序的软件,也可以是其他硬件,如rsa令牌 – rist

回答

0

您可以通过代码向用户的手机发送短信。

之后,用户将代码和APP验证向服务器发出请求的代码。

用户成功引入用户名/密码后发送短信。

其他选项(少扩展)是通过电子邮件发送该代码。

0

我不能完全表达我多少由Twitter最近TFA实现印象深刻,这是非常方便(假设他们没有把事情弄糟协议)更安全比许多其他形式的TFA。

Here's a description written by Wired

但总而言之,您需要激活一个TFA设备,并生成一个私钥(设备)/公共(服务器)密钥对。当您在接收到正确的用户名/密码凭证后尝试登录时,服务器会将推送通知发送给使用公钥加密的任何授权设备上的应用程序,并且该应用程序会解密该随机数并将该随机数发送回服务器并给予会话。

当然,正如其他人所提到的那样,您可以使用诸如Google Authenticator之类的预建服务,但它们往往比较笨拙,并且存在SMS和TOTP安全问题。

0

双因素认证意味着确认用户知道的东西(他们的密码)和他们拥有的东西(如物理钥匙,徽章或RSA密钥卡; 重要的部分是它是一个物理对象,而不是你正在给他们进入)。向他们用来登录应用程序的iPad发送任何形式的推送都会导致失败,并且不会比单一因素(仅限密码)更好。您的唯一选择是:

  • 分配RSA密钥卡(或类似)。可能不是一个选项,因为成本&管理开销相关联。
  • 创建一个验证器应用程序只有可以在iPad上使用您的应用程序(与Google Authenticator应用程序相同)在单独的设备上运行。通过为受保护的应用程序注册一个URI方案,并在每次打开身份验证器时尝试从身份验证器中打开身份验证器应用程序,您都可以阻止身份验证器应用程序在iPad上运行。如果受保护的应用程序打开,则意味着用户正试图在同一设备上运行这两个应用程序,并且验证者不应验证它们。
  • 使用验证码向他们的注册手机发送短信。通过在这里使用SMS,你迫使用户使两台设备都能够登录,这是TFA的关键。请注意,广告素材用户可以在其iPad上注册Google Voice号码(或带有短信应用的类似VOIP),从而绕过TFA的实体方面。
相关问题