6

以下问题用 android 版本 4.3 和 nexus 7 测试

使用Android 4.3 版本的KeyStore 时,将锁屏设置为none 后key 会被删除,之前是否设置了none 无关紧要。

要重现这一点,您可以使用位于
“sdk\samples\android-18\security\keystore\BasicAndroidKeyStore”下的提供的 android 示例。

运行应用程序后:

  • 项目清单
  • 符号(应该为空)
  • 生成密钥
  • 签署(将签署某事)
  • 关闭应用程序
  • 重新开始
  • 签署(将签署某事)
  • 将屏幕锁定设置为“无”(即使之前没有)(可以在设置 -> 安全 -> 屏幕安全下找到)。
  • 返回应用程序并再次尝试签名(将返回 null)

在检查我发现的 android 源代码时,在第 639 行中,密钥库似乎已被重置。请参阅:https ://android.googlesource.com/platform/frameworks/base/+/52c489cd63cca0361f374f7cb392018fabfa8bcc/core/java/com/android/internal/widget/LockPatternUtils.java

有谁知道为什么会这样?我将此报告给 android 社​​区 https://code.google.com/p/android/issues/detail?id=60176

编辑:在 android 版本 4.2 中,如果保存了某些密钥,则无法将锁定屏幕设置为无。在这样做之前,您必须先删除您的凭据。

4

1 回答 1

7

从 4.3 开始,这似乎是 Android 中的一个错误。这里有一篇非常好的文章:

Android 安全:健忘的密钥库

作者说有些人声称这是一个功能而不是一个错误,但我不同意。如果加密数据即将变得不可读,平台至少应该通知用户,如果不能完全阻止他们继续进行。

于 2015-06-09T14:38:58.057 回答