【发布时间】:2019-06-19 10:29:08
【问题描述】:
在我的国家/地区,我们有一项 MFA 服务,例如,它可以输入您的手机号码,然后 ping 您的手机,您输入一个 PIN 码即可通过身份验证。调用此服务的应用程序会取回您的等效“社会安全号码”。
在应用程序中可以按如下方式使用:
- 您是第一次打开应用程序。输入您的电话号码并进行身份验证。
- 该应用也可能让您选择一个图钉,但在首次登录后,它不会提示您再次使用此 MFA,它会使用您的面部 ID 或您的 touchId
这是如何工作的?
这是一个猜测:
- 在注册期间,调用 MFA 服务,它会获取您的“社会安全号码”并将其用作您的用户名
- 您输入的密码(可能只有 4 个字母 - 很短,所以这让我怀疑这个理论)然后用作您的密码
- 然后将用户名和密码(pin)存储在您的密钥链/核心存储中,应用程序会提示您输入 faceId/touchId,但随后会发送您的用户/密码以使用 API 对您进行身份验证
它是这样工作的吗?如果是这样,是不是 4 位数的密码太不安全了?我假设如果您可以使用它进行身份验证,那么任何可以访问您的 API 的人都可以尝试暴力破解它。由于它是应用程序使用的 API,这意味着它对所有人开放。
如果我错了,请纠正我。
编辑:我想可以为每个用户生成一个秘密,并且可以使用该秘密对 pin 进行加密,使其更长。
【问题讨论】:
标签: java android ios authentication authorization