【问题标题】:How is the Android keystore protected?Android 密钥库如何受到保护?
【发布时间】:2016-09-19 20:46:32
【问题描述】:

Android 如何保护 4.4 及更高版本中的密钥库?它如何加密/解密它?是否有任何好的教程来描述密钥库如何在设备上工作的内部原理?

【问题讨论】:

    标签: android android-keystore


    【解决方案1】:

    密钥库的加密/解密由密钥库服务处理,该服务又与称为“keymaster”的硬件抽象层模块链接。 AOSP 提供软件(“softkeymaster”)实现,但设备供应商可以提供对基于硬件的受保护存储(如果可用)的支持。在 ARM 架构上,这与 ARM“TrustZone”相关联。

    上层与实现完全无关:keymaster HAL 导出方法来生成或删除密钥对、签名数据等,但实际上并不提供任何私钥的暴露。

    教程明智,没有什么。但就书籍而言,有两本很棒的书。第一个是 Nikolay Elenkov 的“Android Security Internals”。他还写了一篇名为 Android Explorations 的博客,其中深入描述了(在几篇文章中)密钥库。第二个是 Jonathan Levin 的“Android Internals”,其中讨论了密钥库守护进程。

    【讨论】:

    • 我相信 ARM TrustZone 旨在将可信世界的处理器/内存与正常世界分开。例如,在可信执行环境中运行可信应用程序。我认为“受保护的存储”将是另一回事。
    • 不,密钥库的密钥实际上重新链接到用户的密码或密码,并且在设备生命周期内使用 TrustZone 来验证它们。此外,在受保护的存储(读取:dm-crypt)的情况下,硬件密钥可能驻留在芯片上,并且只能在信任区模式(SMC 或 EL3,64 位)下访问,因此这只是同一个故事中的不同情节.
    猜你喜欢
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 2014-02-18
    • 2011-12-23
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多