当锁定屏幕设置为"无"时,Android KeyStore会重置

时间:2013-09-17 12:55:54

标签: android keystore android-keystore android-4.3-jelly-bean

使用Android版本4.3和nexus 7

测试了以下问题

在使用Android版本4.3的KeyStore时,在将锁定屏幕设置为无后删除密钥,如果之前没有设置锁定屏幕则无关紧要。

要重现这一点,您可以使用位于
下的提供的android示例 “SDK \ SAMPLES \ Android的18 \安全\密钥库\ BasicAndroidKeyStore”。

运行申请后:

  • 列表项
  • sign(应为null)
  • 生成密钥
  • 签署(会唱歌)
  • 关闭应用程序
  • 重新开始
  • 唱歌(唱歌)
  • 将屏幕锁定设置为“无”(即使之前没有)(这可以在设置 - > security - >屏幕安全性下找到)。
  • 返回应用程序并尝试再次唱歌(将返回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中,如果保存了某些密钥,则无法将锁定屏幕设置为无。你必须先删除你的凭证才能这样做。

1 个答案:

答案 0 :(得分:5)

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

  

Android Security: The Forgetful Keystore

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