簡體   English   中英

Android - 安全存儲

[英]Android - Secure storage

我如何在Android設備中存儲一個秘密密鑰,唯一可能使用密鑰,而不是檢索它。 例如:我從應用程序向此“安全存儲”導入私有/生成RSA密鑰對或對稱密鑰。 現在,NOBODY應該能夠檢索密鑰,甚至是原始應用程序。 (密鑰的非秘密部分 - RSA密鑰對的公鑰 - 但不是對稱密鑰的一部分 - 仍然應該是可檢索的,特別是如果密鑰是在安全存儲中生成的)

密鑰庫現在應該充當黑盒子,提供加密數據的輸入和解密數據的輸出,例如,我提供我想要解密的加密值,並獲取解密的值。

如果這是在Android設備的硬件安全芯片中實現的話,這是一個很大的優點,就像智能​​卡芯片一樣,它具有防篡改功能,即使設備被植根和克隆也可以保證密鑰的安全。

Android手機的哪些想法,有這樣的防篡改芯片? 關於如何使用這種存儲的任何想法?

發現了一個類似的問題: Android安全存儲,但這不能回答我的問題。

我會回答這個但是有所保留。

https://developer.android.com/training/articles/keystore.html

“密鑰材料可能綁定到Android設備的安全硬件(例如,可信執行環境(TEE),安全元素(SE))。 當為密鑰啟用此功能時,其密鑰材料永遠不會暴露在安全硬件之外 “。

因此,您為密鑰啟用了該功能。 然而,

“如果Android操作系統受到攻擊或攻擊者可以讀取設備的內部存儲, 攻擊者可能可以在Android設備上使用任何應用程序的Android Keystore密鑰 ,但不能從設備中提取它們。”

這是因為Android允許使用密鑰而沒有本質上不安全的秘密。 因此我的預訂。

在使用安全芯片回答Android設備時,我會對搜索說。 似乎TEE soc已經存在了一段時間。

秘密:[______________]

找到了在Android上獲取安全存儲所需的操作:

您需要購買符合ASSD規范(高級安全SD)的Secure MicroSD卡。 這是一個包含安全元素的MicroSD卡,通常是PKI解決方案,您可以在卡上生成私鑰,因此無法提取私鑰,但可以提取公鑰並使用它來加密只有MicroSD卡可以解密。

兩個例子是CertGate MicroSD(可作為消費者版本稱為“SmartCard-HSM Android”)和一個不再用於消費者版本的是G&D移動安全卡。

這使得它成為一個安全的存儲設備,不會被根電話攻擊,並且根據定義不能復制,也不可能。 如果你正確點擊,唯一的方法是使用公鑰強制私鑰作為驗證。 但是如果你使用RSA-2048,那在技術上也是不可能的。

原因是手機制造商似乎將內置的手機安全元件鎖定到制造商認可的應用程序,因此您無法任意使用它。 唯一的方法是以MicroSD卡的形式向手機添加安全元素。

(此答案僅適用於5.0之前的Android版本)

您可以查看CertStoreKeyStore ,但我不知道這些是如何在Android上實現的。 我做了一些搜索,但找不到任何有希望的例子,實際上在Android-Security-Discussions小組上發現了一個帖子 ,表明這可能甚至不適用於Android。

你問的是不可能的。 具有越獄設備的用戶可以比您更多地控制設備。 沒有地方可以隱藏任何東西,而且永遠不會有。 您正在尋找的是“(在) 安全雖然不安全 ”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM