有兩種授權機制 (Policy)可供選擇:
1. ServerManagedPolicy
這是Google推薦developer使用的Policy
這種授權機制會在第一次AP啟動時透過Android Market程式連上遠端Google server,如果授權成功就會把 license 寫入在手機裡的cache,但這個 license 寫入手機時會透過一個Obfuscator (混淆器) 來加密,所以就算root後也無法盜取這個license
下次AP啟動時,就會直接從cache裡取得license,手機即便是在離線狀態也能正常啟動
2. StrictPolicy
這是較嚴格的Policy,每次AP啟動都會去詢問遠端Google server。
在安全性的部分:
-防止偽造License-
Google server在發出 license 時,有使用2048bit RSA的非對稱式加密演算法做 "簽署" 用,Google會留有一份private key,開發者會得到public key並hardcode進自己的AP。
用private key加密後的license,只能透過public key解密。
這並不是防止別人盜取license,而是確保所有license都是從Google server發出,其他不知名的server無法偽裝成Google server並發出偽造的license。
-防止盜取license-
Google也提供了一個implementation供開發者選用: AESObfuscator,使用AES對稱式加密演算法來混淆本地端的 license。
-防止Hacker重組原始碼並移除licensing程式碼-
Google建議使用ProGuard來混淆Java原始碼
http://developer.android.com/guide/publishing/licensing.html
Google 提供的授權保護機制
週二, 2011-04-19 21:57
#1
Google 提供的授權保護機制