仅在 FE 中验证生物指纹认证是个好主意吗?

问题描述 投票:0回答:1

我正在开发一个带有专用服务器的移动应用程序。为了让用户访问主页,他必须使用用户名和密码登录。服务器将验证凭据并返回访问和刷新令牌。刷新后的内容将保存在“移动安全存储”中。

当用户返回应用程序时,/refresh api 请求将发送到服务器以检查存储的刷新令牌的有效性。如果它仍然有效,用户将获得访问权限并自动重定向到主页。如果没有,他将不得不重新登录。到目前为止没有什么特别的。

我想建议在设置中添加指纹生物识别或 PIN 作为额外的安全检查。我想知道我是否可以在没有任何服务器交互的情况下做到这一点:

  • 用户打开应用程序
  • /刷新已发送
    • 如果无效,请前往登录页面
    • 如果有效
      • 使用前端库(或 PIN)检查指纹
        • 如果有效,请转到主页
        • 如果无效,重复3次,然后进入登录页面

请参阅Sequence diagram是否有帮助。

它在架构方面是正确的,还是完全被骗了或者是一个糟糕的方法?

请注意,如果用户选择 PIN 作为第二次身份验证,我将发出 api 请求,因为 PIN 将存储在数据库中。我想知道我是否应该对指纹做同样的事情,但是如何存储指纹,更糟糕的是,如何在服务器端比较它?

感谢您的帮助!

我还没有实现任何东西,我需要有关构想的架构级别的反馈。

authentication mobile architecture backend fingerprint
1个回答
0
投票

要验证指纹是否属于用户,您需要与用户数据进行比较。这意味着您需要将其发送到前端。

您无法保密此数据,因为此时用户身份尚未确认(这就是您首先需要指纹的原因)

所以,我想说更安全的方法是在前端捕获输入数据(指纹),但在后端(非公开)捕获要比较的数据

  1. 采集指纹。
  2. 以某种方式对其进行编码。
  3. 将其发送到终点。
  4. 如果指纹匹配,端点将返回一个新的令牌。
  5. 您可以使用签名的令牌作为身份证明。
© www.soinside.com 2019 - 2024. All rights reserved.