4
Android如何在4.4及更高版本中保護密鑰庫?它如何加密/解密它?是否有任何好的教程描述密鑰庫在設備上的工作方式?Android密鑰庫如何受到保護?
Android如何在4.4及更高版本中保護密鑰庫?它如何加密/解密它?是否有任何好的教程描述密鑰庫在設備上的工作方式?Android密鑰庫如何受到保護?
密鑰庫的加密/解密由keystore服務處理,該服務又與稱爲「keymaster」的硬件抽象層模塊鏈接。 AOSP提供軟件(「軟件密鑰管理器」)實施,但設備供應商可以提供對基於硬件的受保護存儲(如果可用)的支持。在ARM體系結構上,這與ARM「TrustZone」鏈接。
上層圖層完全不知道實現:密鑰管理器HAL導出方法來生成或刪除密鑰對,簽名數據等,但實際上並不提供任何私鑰的暴露。
教程明智,沒有什麼。但書本上,有兩本很棒的書。首先是Nikolay Elenkov的「Android安全內部」。他還撰寫了一篇名爲「Android探索」的博客,該博客深入介紹了(在幾篇文章中)密鑰庫。第二個是Jonathan Levin的「Android Internals」,它討論了keystore守護進程。
我相信ARM TrustZone是關於將可信世界的處理器/存儲器從正常的世界中分離出來的。例如在可信執行環境中運行可信應用程序。我認爲,「受保護的存儲」將是另一回事。 – r0ng 2016-06-20 11:53:43
不,密鑰庫的密鑰實際上鍊接到用戶的密碼或PIN,並且TrustZone用於在設備生存期內驗證它們。此外,在受保護的存儲器(讀取:dm-crypt)的情況下,硬件密鑰可以駐留在芯片上並且只能在信任區模式(SMC或EL3,64位)下訪問,因此它只是在同一故事中的不同情節。 – Technologeeks 2016-07-02 13:25:27