0

http://developer.android.com/google/play/billing/billing_best_practices.html

ベスト プラクティスのドキュメントが示唆しているように、サーバーでアプリ内課金の署名検証タスクを実行したいと考えています。これにより、ノンスに関する次の節にたどり着きます。

また、サーバーで nonce 検証を実行している場合は、必ずサーバーで nonce を生成してください。

購入リクエストで渡した nonce は、developerPayload追加の検証のために購入データの一部として返されることを知っています。クライアントが SecureRandom を使用して一意の nonce を生成するだけでは十分ではありませんか? - とにかく、検証のために購入データをサーバーに戻すため、クライアントが生成したナンスも保存して、リプレイ攻撃を除外します。

nonce がサーバー上で生成されていることを「確認」する必要があるのはなぜですか? アプリはアプリ内購入の前にサーバーからナンスを要求する必要があるため、プロセスが複雑に思えます。

私が考えることができる唯一の非常にまれな状況は、クライアント上の SecureRandom がサーバー上で既に使用されているノンスを生成するインスタンスを防ぐことです。orderIdそれでも、それ自体が一意であるはずの と照合することで、そのような状況を簡単に特定できるのではないでしょうか。

4

0 に答える 0