所以我剛剛與Android的UrbanAirship集成。在.properties文件中存儲密鑰是不好的做法
他們的示例代碼使用.properties
文件來存儲API密鑰和祕密。我發現這非常令人擔憂,因爲這些文件在擴展APK之後可以輕鬆訪問。
我不打算就你的應用中存儲敏感數據展開辯論。我只想知道存儲這樣的密鑰是否是不可接受的。
如果是的話那哪一種更安全但直接的方法?我目前將我自己的API密鑰作爲靜態變量存儲在全局文件中。
所以我剛剛與Android的UrbanAirship集成。在.properties文件中存儲密鑰是不好的做法
他們的示例代碼使用.properties
文件來存儲API密鑰和祕密。我發現這非常令人擔憂,因爲這些文件在擴展APK之後可以輕鬆訪問。
我不打算就你的應用中存儲敏感數據展開辯論。我只想知道存儲這樣的密鑰是否是不可接受的。
如果是的話那哪一種更安全但直接的方法?我目前將我自己的API密鑰作爲靜態變量存儲在全局文件中。
由於APK內容未經過加密,因此該字符串與.properties文件中的字符串相比,是從編譯的類中輕鬆提取的。您可以通過在您的Globals課程中存儲加密文件來使其更難以提取,但不要指望您發送給用戶的任何內容保持祕密。
如果您需要安全的方式將密鑰加載到內存中,請在運行時通過安全通道從您自己的服務器請求它們。即使您將密鑰存儲在只能從您的程序訪問的共享首選項/數據庫中,根源設備也可以解決此問題,因爲它可以訪問所有文件。 Class/Dex文件可以在任何時候進行反向設計。
也看看像dexguard工具。它比proguard提供更多的混淆,安全功能。
關於城市飛艇;放置在.properties文件中的關鍵和祕密本質上是用於分析調用,而不是實際的「推送」。儘管您也有API調用的主祕密。這是您需要保護的應用程序祕密值。這就是爲什麼Urban Airship不鼓勵推出需要應用密鑰和主密鑰的設備。如果您僅存儲Urban Airship的應用密鑰和祕密,則不存在安全問題。