簡體   English   中英

如何在Android上隱藏公鑰?

[英]How to hide public key on android?

Android的安全手冊指出,將公鑰(用於Android市場)僅作為字符串保存並不安全,應該以某種方式將其隱藏/編碼。 有人可以給我舉個例子嗎?

(我沒有單獨的服務器,因此無法將其存儲在此處)

更新。 相信,這是非常常見的任務,與Android無關,但也與其他應用程序有關。

您鏈接到頁面的相關文本為:

重要提示:為了保護您的公共密鑰不受惡意用戶和黑客的侵害,請勿將您的公共密鑰作為整個文字字符串嵌入。 而是在運行時從片段中構造字符串,或使用位操作(例如,與其他字符串進行XOR)隱藏實際的密鑰。 密鑰本身不是秘密信息,但是您不想讓黑客或惡意用戶容易地用另一個密鑰替換公共密鑰。

這就是您幾乎需要知道的所有內容。 知道您的公鑰的人沒有任何危害,這里的潛在危害是有人會用自己的程序替換您程序中的公鑰,從而將應用內購買轉移到自己的帳戶中。

他們建議您通過將密鑰存儲在單獨的片段中或將密鑰與其他字符串進行XOR運算,使攻擊者更加困難。 現在,他們不僅要把他們的密鑰粘貼到您的密鑰上,還必須弄清楚您正在對字符串進行什么轉換,並使他們自己的密鑰適合該模式。 這是更多的工作,可能會阻止臨時攻擊者,但不會阻止真正有決心的人。

如果您使用Keytool實用程序,這一切都為您完成。 您將在本地計算機上獲得一個.keystore文件,其中包含用密碼加密的私鑰; 將該文件和密碼保密,就可以保證安全。

http://developer.android.com/guide/publishing/app-signing.html

實際上,我相信Eclipse的Android插件甚至可以自動為您完成所有這些工作。

在公鑰上,您可以對其進行哈希處理並將其另存為哈希值。 更好的方法是在需要將哈希值取回時,將哈希值添加到您知道的內容中。 可能類似於用戶名或ESN。 看一下android.telephony.TelephonyManager.getDeviceId()

暫無
暫無

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

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