在移动应用程序中存储用户凭证(iOS/Android)

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

在我们的一个移动应用程序(React Native)中,我们需要在 API 令牌过期后自动刷新它。我们的身份验证提供商不支持 OAuth/OpenID。因此,为了满足这一要求,应用程序将用户的凭据存储在 iOS 和 Android 设备中。它使用相应操作系统提供的标准钥匙串/密钥库机制来存储凭据。

但是,我们的渗透测试人员已将此标记为风险,并建议在将凭据存储在设备的安全存储中之前对其进行加密,以增加复杂性(OAuth/Open ID 是他们的首选)。

我们对此有多个疑问,

  1. 既然我们有越狱a=保护,那么在KeyChain中存储凭证真的是一个问题吗?

  2. 当刷新令牌/授权代码等 OAuth 无法使用时,这是移动开发中遵循的标准程序吗

  3. 我们可以使用其他方法吗?

  4. 如果我们决定按照渗透测试人员的建议进行加密,那么在决定存储加密密钥的位置时就会出现问题。将其存储在钥匙串中没有任何意义,因为它违背了目的。还有哪些地方可以安全地保存加密密钥

android ios authentication access-token refresh-token
1个回答
0
投票

使用设备的安全存储方法(例如 iOS Keychain 或 Android Keystore)来安全存储敏感数据。钥匙串 (iOS) 或密钥库 (Android) 都足够安全。为了存储密钥和其他敏感信息,它们提供了一个安全且隔离的区域。

您还可以使用以下替代方案:

远程配置:在应用程序设置过程中,从远程服务器获取私有配置信息。通过这样做,您可以从外部管理和更新凭据,而无需更改应用程序。

实施生物识别身份验证(面部识别、指纹)以确保对应用程序关键区域的访问安全。这将安全性提高了另一个级别。

请记住,安全是一个持续的过程,没有任何解决方案是 100% 万无一失的。评估应用程序的特定要求、遵守安全最佳实践并了解最新的安全危险和保护措施至关重要。您可以通过运行渗透测试并与安全专家合作来查找并修复移动应用程序中的漏洞。

© www.soinside.com 2019 - 2024. All rights reserved.