2012-12-18 60 views
-1

我最近被授予設計/實現/維護Android APK簽名服務器的任務。我過去從來沒有這樣做過,並且可能會在Rails中完成(我的組織是Rails商店)。設計Android APK簽署服務器

此次簽約服務器基本上採用由構建給出的APK,並配有保護和安全標誌證書吧。除了限制在特定的IP地址之外,這個簽名服務器不應該允許任何外部訪問。

我沒有任何書面的簽字服務器體驗。那些做過這些的人會不會分享他們的經驗和一些設計模式來設計它,所以它是安全的和保護的?

回答

1

簽署APK的過程是不是超級複雜。然而;服務器的安全將是yoru任務中最困難的部分。簡而言之,您應該在服務器或某個地方擁有憑據,以便您可以簽署apk(理想情況下這是安全的)。

一個很好的地方,瞭解這個過程是: http://developer.android.com/tools/building/index.html

+0

謝謝!我在當地完成了這項工作,但我們在這裏有一個大規模的生產車間,需要爲它編寫一個簽名服務器。 Android引用是我們用來編寫本地腳本的東西,但我們正在爲它構建一個簽名服務器。 任何設計的建議? – xbeta

+0

您是否設法找到解決方案呢? – 8bithero

2

通過IP限制是絕對不夠的,至少使用某種形式的用戶名/密碼認證和保存審計日誌,讓你知道誰籤什麼,什麼時候。如果你這樣做是在香草紅寶石,節省了APK到一個文件並調用jarsigner作爲一個shell命令可能是這樣做的最簡單的方法。如果您使用JRuby,則可以使用Java API來進行實際簽名。

您還需要確保只有你的web應用可以讀取的簽名密鑰,至少是。如果你有很多密鑰,你需要讓用戶選擇使用哪個密鑰或給他們一個基於組的密鑰等(一個用於遊戲部門,一個用於音樂應用部門等)。您可能還想考慮將密鑰存儲在HSM或智能卡中,以確保無法從服務器提取密鑰。如果有人破解它,他們將能夠簽署應用程序,但不會竊取實際的密鑰(不能被撤銷)。