在應用內結算概述Security Controls部指示在遠程服務器上而不是在應用程序(在Android設備上本地運行的)執行一個「簽名驗證」:爲什麼遠程服務器上的簽名驗證比設備上的簽名驗證更安全?
通過執行簽名驗證可以幫助檢測已被篡改或被欺騙的響應 。您可以在您的應用程序中執行此簽名驗證步驟,即 ;然而, 如果你的應用程序連接到一個安全的遠程服務器然後我們 建議您該 服務器上進行簽名驗證。
但是,如果我在遠程服務器上執行簽名驗證,預計只有yes/no
或true/false
答案,是不是這其實更容易被攻擊者截獲並修改?
如果從遠程服務器的答案是另一個簽名,那麼設備如何比這樣做第一(市場)的簽名更安全的本地驗證第二簽名?
我錯過了什麼?
更新: @alf正確地指出,如果該服務器還負責提供購買的內容和簽名驗證的服務器上執行,那麼即使攻擊者妥協的應用程序,服務器將無法實現購買的內容通過應用內結算。這是微不足道的,而且很好理解。
我沒有原來提的是,我實際上指的是其中服務器不提供任何內容而只是驗證簽名,從而使應用程序可以決定是否解鎖某些功能的情景。在這種情況下,遠程服務器簽名驗證在應用程序內的優點是什麼?
我也想知道,如果在實現應用內付費時真正需要服務器簽名檢查才能解鎖功能。你的發現是什麼? – 2014-09-15 19:09:13