2016-07-06 56 views
2

我想在Android KeyStore中存儲一些敏感數據(Refresh token)。Xamarin.Android Secure Strorage(Keystore)

我打算用Xamarin實驗室樣品ISecureStorage實施

KeyVaultStorage

但他們所使用的設備ID和密碼....這不可能是一個安全的方式?

而且在他們的Xamarin.Auth庫,它充分利用了Android密鑰庫...他們的密碼硬編碼

AndroidAccountStore

這是怎麼回事?我錯過了什麼嗎?

在iOS上,它更簡單,因爲KeyChain依賴於在iOS上執行的PIN屏幕。 Android的解決方案是什麼?不要說共享首選項。我需要更安全的東西(KeyStore !!)

回答

0

硬編碼值保留了向後兼容性,但添加了API,因此用戶可以將任意密碼作爲字符串提交。如果密碼未通過,將使用舊的硬編碼字符串,這是安全問題。

有計劃將[Obsolete]屬性添加到不安全的API中。

由用戶決定如何生成/傳遞密碼(UI或不像您提到的DeviceID那樣安全)。

關於實驗室:來自Evolve16預科培訓的那些實驗室?

如果是。這些實驗室的核心現在集成在Xamarin.Auth中,因此用戶可以直接使用Xamarin.Auth來使用SecureStorage和其他實用程序(CryptoUtilities)。

+0

這裏有什麼建議傳遞密碼。似乎很多例子都很高興通過設備ID。這背後有一個原因嗎?即 KeyStore是否只能由創建它的應用程序線程訪問?所以即使你有密碼,這沒關係? ... – AhmedW

+0

密鑰管理始終是問題;如果您傳入設備ID,則實際上將鑰匙放在儲物櫃旁邊,所以基本上唯一安全的方法是使用用戶輸入解鎖鑰匙 – Roy

+0

感謝Roy!原生Android Keystore提供程序如何克服此限制? – AhmedW