首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加密/存储私钥,如果登录使用的是生物识别/OTP/登录谷歌

如何加密/存储私钥,如果登录使用的是生物识别/OTP/登录谷歌
EN

Security用户
提问于 2021-10-19 17:44:26
回答 1查看 365关注 0票数 0

我正在创建一个跨平台应用程序,在该应用程序中,我使用AES-GSM加密所有数据.因此,我的问题是,我想在用户的设备( Android、IOS、Web等)上本地存储私钥。但由于登录,我有多个选项,即生物识别(在脱机情况下),PIN,OTP,电子邮件密码,或登录谷歌。

因为认证主要是使用Firebase身份验证,而且用户也可以脱机打开应用程序,在之前登录一次之后,使用生物识别或PIN。我怎样才能储存秘密钥匙?对于PIN,我也使用盐度散列来存储它,因此我不能基于PIN加密密钥,因为用户还可以选择使用生物特征登录,这只能返回true或false。有人能给我建议解决办法吗?

EN

回答 1

Security用户

回答已采纳

发布于 2021-10-20 11:31:18

如果不要求用户输入某种形式的凭据(密码、密钥文件等),就无法完全安全地存储密钥。生物识别技术和类似技术可以用来验证用户身份,但不能用来解密秘密。但是,如果您愿意相信攻击者还没有完全接管应用程序(例如替换应用程序二进制文件,或者获得了在调试器下运行应用程序的能力,或者获得了根/管理权限),那么可以在大多数平台上安全地存储机密(有这些警告)。

Windows、MacOS、iOS和Android都支持适用于对称密钥等秘密的加密密钥/凭据存储。桌面Linux没有可靠可用的选项,但确实有一些可以检查的选项。

  • 使用Windows,您可以使用PasswordVault (.NET)凭据管理API(本机)来存储密钥,也可以使用数据保护API (DPAPI、.NET原生较新)对其进行加密,然后将加密的数据存储在任何您想要的位置。
  • 使用MacOS和iOS,您可以将密钥链 API用于存储密钥
  • 对于Android,您可以使用密钥库功能来存储密钥。
  • 在桌面Linux中,您可能会检查诸如GNOME键环KWallet之类的选项,或者仅仅查看是否有一个运行中的GPG代理具有加载的私钥,并使用GPG加密这个秘密(然后将其存储在任何地方)。
票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/256282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档