2011-01-12 39 views
9

我正在使用Dropbox API。在示例應用程序,它包含這些行:在Android中存儲API密鑰足夠充分嗎?

// Replace this with your consumer key and secret assigned by Dropbox. 
// Note that this is a really insecure way to do this, and you shouldn't 
// ship code which contains your key & secret in such an obvious way. 
// Obfuscation is good. 
final static private String CONSUMER_KEY = "PUT_YOUR_CONSUMER_KEY_HERE"; 
final static private String CONSUMER_SECRET = "PUT_YOUR_CONSUMER_SECRET_HERE"; 

我很清楚的口頭禪「保密是不是安全」,並混淆真的只是略微增加的努力來提取密鑰所需要的量。我不同意他們的說法:「善意是好的」。我應該怎麼做才能保護鑰匙呢?是不是很好夠了,還是我應該考慮一些更精細的東西?

+2

請在此處閱讀有關此主題的討論:https://groups.google.com/d/topic/android-developers/quD5gYIZ4Ig/discussion – 2011-01-13 08:05:07

回答

5

你不能幫助它。如果用戶(攻擊者)擁有受保護的數據和執行解除保護的代碼,用戶最終可以訪問數據。就這麼簡單。在恰當的時間調試器和斷點是他們所需要的。那,很多空閒時間和決心。

保密性是否足夠滿足您的需求取決於您的業務細節。但通常在移動世界中,如果客戶擔心他們的數據被盜,他們會實施高級盜竊和丟失控制。諸如遠程擦除,強制性屏幕鎖定等等。我不認爲這取決於應用程序員複製所有這些東西。

2

安全永遠不可能是完美的,所以決定你要做多少工作取決於你。您可以將用戶密碼分解爲多個字符串,以進行簡單的更改,從而提供最低程度的額外安全性,或者您可以創建一種算法來以另一種方式表示密碼(任何內容都不會插入字符串中每個X空格都不使用的字符修改每個字符,也許基於數字表示)。

你必須考慮工作與收益。如果這是一個你和幾個朋友要使用的應用程序,那麼它可能並不重要。如果這將成爲1000萬人使用的應用程序,那麼安全性顯然更受關注。