2012-07-27 107 views
15

Google在其License Verification Library中提供的默認ServerManagedPolicy依賴於服務器響應來確定許可證重新驗證時間間隔。這導致需要每隔幾天重新驗證一次,永久性的。這不僅對用戶造成滋擾,對於長時間沒有連接的用戶而言,這可能是一個嚴重的問題。 (我們剛剛從誰希望是沒有互聯網連接了幾個星期的用戶,這是什麼促使這個問題的詢問)這個Google LVL策略實施是否合理安全?

總之,我正在尋找一種算法,將完成兩件事情:

  1. ServerManagedPolicy相比,大大降低了連接要求;
  2. 提供了相同級別的反盜版保護。

在回答this question建議的策略算法忽略從谷歌的服務器的響應提供的時間,而不是使用的許可到期時間大約一個月,有許可證檢查被每隔幾天試圖(以如果收到LICENSED響應,則延長到期期限)。

雖然這種方法部分解決了第一個目標,但它仍然要求用戶每月在使用應用程序時連接一次,因此它不適用於(至少一個)用戶。

以下算法完成第一個目標,但我不知道第二個目標。任何意見指出這種算法的弱點,或對另一種方法的建議,將受到歡迎。

  1. 第一次運行時,請在執行許可檢查並堅持授權響應之前提供全部功能。收到後,請設置較短的到期期限(但超過Google Play提供的退款期限,目前爲15分鐘)。還要註冊幾天後的寬限期。
  2. 該應用程序將在許可證到期後再次開始檢查。如果連接失敗(飛行模式等),它將一直運行到寬限期到期。
  3. 寬限期到期後,在允許正常應用運行之前,堅持第二次獲得許可響應。
  4. 收到第二個LICENSED響應後,永久啓用應用程序的所有功能,並且再也不用再檢查。
  5. 如果在任何時候收到UNLICENSED響應,則永久禁用完整功能。 (用戶可以,當然,還原通過刪除所有的應用程序的數據到步驟1。)

附加點:

  • 有人建議放棄所述第一許可檢查,並等待直到期滿執行許可證檢查前的返回期限。堅持第一個LICENSED響應的目的是爲了防止在許可證檢查失敗後用戶簡單地停止應用程序進程,清除應用程序數據並重新啓動應用程序。 (即使每次只能使用15分鐘,該應用程序也能提供價值。)
  • 堅持第二個許可響應的目的是解決buy-run-backup-return-restore攻擊。
  • 我不是問回撥許可證檢查是否是個好主意(這是Google提供的代替他們不贊成使用的版權保護機制)。我也很清楚,沒有反盜版保護是萬無一失的,Google的整個許可機制可以被規避(在這種情況下,有關策略算法設計的所有問題都是無關緊要的)。這個問題的要點是與其他策略(例如ServerManagedPolicy)相比,上述算法對用戶的相對風險(對我們)和對用戶的好處。
+0

從「無形」轉變退款蟲「購買,還需要驗證」到「購買,不再需要驗證」有問題。只需在某些設置對話框中,您需要在應用程序的某個位置反映該位置。 (許可證:臨時某處,如果在「返回窗口」關閉後點擊,則強制執行檢查*然後*,如果它「過早」以獲得永久許可證則生成錯誤消息。一旦第二次驗證(自動,或手動),成爲許可證:永久。) – Yakk 2015-06-18 21:21:24

+0

@Yakk - 我不知道你看到什麼問題。是否需要控制第二次檢查的時間? – 2015-06-18 21:30:56

+1

所以有人購買你的產品,知道它「離線工作」。然後他們下載它,運行它,它工作。接下來,他們失去了連接(無論什麼原因沒有數據,wifi關閉)。 3天后,他們的應用程序停止工作,幾乎沒有診斷。重點是能夠說「一旦它說永久許可證,應用程序離線*」。對客戶來說顯然是一個重要的狀態變化:使客戶看到狀態變化是重要的。 – Yakk 2015-06-19 01:13:52

回答

5

關於盜版問題,總會存在風險,您所做的任何事情都無法完全防止。

與其他風險相反,您冒着不適用客戶的應用程序的風險。

我期望有很多來自不滿意客戶的0 *評論,他們甚至無法使用他們支付的應用程序,因爲它已被禁用,而免費獲得該應用程序的人可能不會中斷。這就像買DVD一樣,當盜版者收到不間斷的觀看時,讓你的臉上充滿版權警告。

我會堅持在購買應用程序時獲得許可的迴應,而不會打擾第二個迴應。如果有人能夠找到他們的答案,他們會發現他們在第二個附近。

編輯:我kcoppock同意購買後,有執照的檢查20分鐘會導致對客戶的干擾最小,避免你提到

+2

一次性審批受制於一個非常容易和衆所周知的漏洞:1)購買應用程序; 2)運行它並獲得授權響應; 3)備份您的設備; 4)退回應用程序(在15分鐘退款窗口內); 5)從備份恢復您的應用程序。 Voilà - 一款未經授權的應用程序。爲了防止這種情況,返回窗口關閉後必須至少進行一次許可證檢查。我應該補充一點,問題是,擬議的政策是否比LVL的默認政策(每隔幾天會永遠執行檢查)具有更多的盜版或其他風險。 – 2012-07-27 18:47:27

+1

爲什麼不在第一次啓動後延遲約20分鐘的授權檢查(允許全部功能)?然後你在返回窗口之外。 – kcoppock 2012-07-27 19:49:20

+0

@kcoppock - 是的,這可能是一個好主意。這與[在此]發佈的建議保持一致(http://www.androidpolice.com/2010/08/24/response-to-a-response-more-on-googles-android-licensing-service/)。真正的問題是,是否依賴於過期後發佈的單一LICENSED響應,使我們面臨比「ServerManagedPolicy」的默認行爲更大的風險。 – 2012-07-27 20:08:55