【问题标题】:What is keys which do not require encryption in KeyStore Provider?KeyStore Provider 中不需要加密的密钥是什么?
【发布时间】:2018-06-27 11:05:07
【问题描述】:

我想使用 Android KeyStore Provider(在 Android 6 及更高版本上)存储我的密钥。但我不明白一件事:当用户更改锁屏设置时,密钥是否会被删除?

在 Android 6 的更改列表中描述:

不再删除静态不需要加密的密钥 当安全锁屏被禁用或重置时(例如,由用户 或设备管理员)。需要静态加密的密钥将 在这些事件期间被删除。

但是什么是不需要加密的密钥呢?这是否意味着我应该在不安全的存储密钥(没有加密)之间进行选择,或者当用户更改设置时它会被删除?

【问题讨论】:

    标签: android encryption keystore


    【解决方案1】:

    需要用户身份验证的密钥是在 API 23+ 上的 KeyGenParameterSpec 上使用 setAuthenticationRequired 生成的:

    KeyGenParameterSpec
      .Builder(...)
      .setUserAuthenticationRequired(requiresAuth)
      ...
      .build()
    

    并在 API 19-22 上的 KeyPairGeneratorSpec 上使用 setEncryptionRequired

    specBuilder = KeyPairGeneratorSpec.Builder(context)
    if (requiresAuth) {
      specBuilder.setEncryptionRequired()
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 2019-08-17
      • 2021-12-25
      • 1970-01-01
      相关资源
      最近更新 更多