在应用内结算概述Security Controls部指示在远程服务器上而不是在应用程序(在Android设备上本地运行的)执行一个“签名验证”:为什么远程服务器上的签名验证比设备上的签名验证更安全?
通过执行签名验证可以帮助检测已被篡改或被欺骗的响应 。您可以在您的应用程序中执行此签名验证步骤,即 ;然而, 如果你的应用程序连接到一个安全的远程服务器然后我们 建议您该 服务器上进行签名验证。
但是,如果我在远程服务器上执行签名验证,预计只有yes/no
或true/false
答案,是不是这其实更容易被攻击者截获并修改?
如果从远程服务器的答案是另一个签名,那么设备如何比这样做第一(市场)的签名更安全的本地验证第二签名?
我错过了什么?
更新: @alf正确地指出,如果该服务器还负责提供购买的内容和签名验证的服务器上执行,那么即使攻击者妥协的应用程序,服务器将无法实现购买的内容通过应用内结算。这是微不足道的,而且很好理解。
我没有原来提的是,我实际上指的是其中服务器不提供任何内容而只是验证签名,从而使应用程序可以决定是否解锁某些功能的情景。在这种情况下,远程服务器签名验证在应用程序内的优点是什么?
我也想知道,如果在实现应用内付费时真正需要服务器签名检查才能解锁功能。你的发现是什么? – 2014-09-15 19:09:13