安全存储的限制-KeyChain和KeyStore

问题描述

我打算在我的应用中使用flutter_secure_storage来保留一些私钥和令牌。 我正在寻找Android和iOS上安全存储的限制,但是找不到以下问题的答案:

  1. KeyChain和KeyStore存储分别在iOS和Android上有多大?
  2. 我们可以在其中存储多少个密钥?
  3. 个人钥匙有多大?
  4. 什么是存储寿命?它仅在安装应用程序时存在吗?它是短暂的吗?

谢谢

解决方法

安全存储就像Shared Prefences / NSUserDefaults。它以键值对的形式存储数据。数据被加密,并使用由唯一设备密钥构成的密钥对存储的数据进行加密和解密。数据存储在根目录中的某个位置,只有操作系统可以访问它。

  1. 安全存储没有存储限制(任何文档中都没有空间限制,但我确实认为您不能存储1Gb +以上的大量数据)
  2. 您可以在其中存储无限数量的密钥
  3. 基于MKJParekh's answer,您最多可以存储2147483647个字符。
  4. 卸载应用后,数据将被删除。 (请注意,安全存储中的数据无法在Android中备份)Take a look at this

请勿使用安全存储来存储敏感的私钥和令牌。您未指定要在安全存储中存储哪些私钥和令牌。您可能正在存储数据库凭据或其他用户不应获取的凭据。尽管存储在安全存储中的数据是经过加密的,但并不完全安全。用户可以root /越狱他们的设备,从而完全控制操作系统。有一些工具可以拦截提供的密钥并使用它来解密数据。防止这种情况的唯一方法是永远不要将密钥提供给用户。您应该将其存储在可以控制的服务器中。 (Firebase Cloud Functions,AWS ECS或您自己的VPS)就是这些服务器的示例。

何时使用安全存储
使用安全存储来存储应加密并向用户隐藏的数据。该数据应仅存储用户的敏感数据,例如其api键,而不存储您的服务器私钥

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...