2

WP7アプリを書いていますが、AmazonのAWSをストレージサービスとして使用してハイスコアデータを共有する機能を含めたいと思います。

私が理解している限り、WP7 XAPファイルは(現在)安全に暗号化されており、電話の既知の脱獄は存在しません。ただし、このような「安全な」暗号化は一時的なものである可能性があるため、これがベストプラクティスに違反するかどうか/どのように違反するかを理解したいと思います。

AWSのdynamoDBは、特定のアカウントデータを使用して生成でき、36時間有効な一時アクセストークンを使用します。トークンは、リクエストの署名を使用して検証する必要があります。

すべてのアクセスデータがXAPファイルに保存され、一時的なアクセストークンと署名も生成されることを検討しています。情報は、電話とAWSの間でhttpsリクエストを介して渡されます。

一時トークン計算の生成を外部Webサービスに渡すなど、別のプロセスを実行しようとしましたが、XAPファイルにアクセスできる場合に同様に危険にさらされない、このデータを保護する方法を考えることはできません。

ベストプラクティスのアプローチを完全に見逃しているのでしょうか、それとも過度に用心深いのでしょうか。

ありがとう。

4

1 に答える 1

1

人気のあるすべてのゲームに非公式の不正行為アプリが存在するのとほぼ同じ理由で、ユーザーが誤ったスコアを送信するのを防ぐことはできません。あなたができる最善のことはそれを難し​​くすることです。

簡単なアプローチでは、クライアントは暗号化せずにスコアをサーバーに直接送信します。エミュレータでアプリを実行して送信パケットをキャプチャし、デスクトップブラウザで同じURLを開くだけで、だれかが不正行為を行う可能性があります。推定時間:10分未満で、XAPをマーケットプレイスから直接ダウンロードし、マニフェストを削除して、エミュレーターにデプロイできることを知っている人なら誰でも実行できます。

次に、クライアントに暗号化キーを追加できます。今、誰かがそれを抽出するためにC#とReflectorを知っている必要がありますが、それらのスキルを持っている人にとってはそれでも簡単です。

次のレベルでは、暗号化キーを追加して、アセンブリを難読化できます。キーを抽出するには、CILとRelectorの知識が必要です。高度なスキルを持つ開発者がキーを抽出するには30分から1時間かかり、ほとんどの開発者は何時間もかかります。

最後に、複数のステップを追加して、侵入者をさらに混乱させることができます(たとえば、サーバーから一時トークンをダウンロードし、スコア送信プロセスで何らかの方法で使用するなど)。また、一部のスコアが違法となるようにスコアリングシステムを設計することもできます(ばかげた例:最小スコアリングアクションが2ポイントを獲得した場合、誰かが奇数をスコアとして送信した場合、彼は不正行為をしていることがわかります。これは簡単に理解できます。ただし、はるかに複雑なルールを作成できます)。

いずれにせよ、システムは常に脆弱であることに注意してください。攻撃者がシステムを突破するのにかかる時間の問題にすぎません。高度なスキルを持つ開発者に何時間も何日もかかる場合は、最高のプレーヤーに価値のある賞品を提供しない限り、誰もそれを気にしないと安全に想定できます。

于 2012-05-13T08:54:22.243 に答える