2008-09-17 14 views
1

私はiPhone向けのゲームを開発しており、スコアをサーバーに送信できるようにしたいと考えています。十分に簡単ですが、実際にゲームプレイから得られたスコアを確認したいと思います。輸出条件での実際の暗号化の禁止(defacto)により、安全な/確認されたチャネルで情報を取り戻す最良の方法は何でしょうか?iPhoneのアプリからサーバーへの確認済みチャンネル

すべての私の考えは、RSA形式のデジタル署名アルゴリズムに戻っていますが、そのエクスポートの質問を通過するためには、より少ない「暗号」が好まれます。

ありがとうございます!

答えて

1

あなたが署名したクライアント証明書で開始された接続のみを受け入れるように設定されているクライアント証明書(あなたが署名した)を使用してサーバーへのHTTPS接続を確立できませんでしたか?

0

ランダムな、何かかなり長いものを生成し、最終的にスコアを付けて、静的な名前をつけたり、sha1/md5したりして、サーバーに渡してランダムなハッシュがハッシュと同じです。作るためにあなたはそれが難しい一日の数値表現してランダムに掛け、その後、engenierを逆にしたい場合は(月曜日= 1、火曜日= 2、...)

1

:アフター思っ

長い話非常に短い、あなたは非常に少数の制限でデジタル署名コードをエクスポートすることができます。詳細はstart at the BIS export FAQをご覧ください。

デジタル署名の免除については、EAR 742.15(b)3をご覧ください。

もちろん、私は弁護士ではなく、昨年にルールが変更されている可能性があります。グッド・イナフかもしれません

0

一つのアイデア:

  • Secret1、Secret2、Secret3は、任意のランダムな文字列とします。
  • DeviceIDをiPhoneの一意のデバイスIDとします。
  • ハッシュ(Foo + Bar)は、FooとBarを連結してハッシュを計算することを意味します。
  • その後

  1. 初めてサーバーへのアプリの話、それはDevicePasswordを要求します。 iPhoneが送信する:DeviceID、ハッシュ(DeviceID + Secret1)

  2. サーバーはSecret1を使用してリクエストがアプリケーションから送信されたことを確認します。そうであれば、DevicePasswordを生成し、DeviceIDとDevicePasswordとの関連付けをサーバ上に保存する。

  3. サーバーの応答:DevicePassword、ハッシュ(DevicePassword + Secret2)

  4. アプリはSecret2を使用していますが、パスワードがサーバから来ていることを確認します。そうであれば、それを保存します。

  5. は、スコアを提出するには、iPhoneは、送信:デバイスID、スコア、ハッシュ(スコア+ DevicePassword + Secret3)

  6. サーバがSecret3とDevicePasswordを使用して検証します。

DevicePasswordの利点は、各デバイスが効果的にユニークな秘密を持っている、と私はそれはそれは難しい提出スコアを盗聴パケットによって秘密を決定することになるだろうことを知らなかった場合ということです。

通常、アプリはインストールごとにDevicePasswordを1回だけ要求する必要があるため、DevicePasswordの疑わしいリクエストを簡単に特定したり、1日に1回しか制限したりできません。

免責事項:このソリューションは私の頭の上から外れているので、このスキームに大きな欠陥がないことを保証することはできません。

+0

これはちょうど匿名の人によって下落してしまいました。ゲームスコアの提出にはおそらく十分ではありますが、完全に解読できないからです。 – benzado

+0

さらに反射すると、システムは不可能になりません。 RSAを使用する場合でも、ユーザーはアプリ内にプライベート署名鍵を渡す必要があります。したがって、実際にはキーを隠す能力だけで安全です。 – benzado

1

実際の暗号を使用しても実際にはあなたには何も買われません。あなたは基本的にDRMの問題の逆を持っています。そのような場合、コンテンツの復号化を防ぎたいが、視聴するためには復号化する必要があるので、それらをキーにする必要があります。

あなたの場合、偽のスコアに署名しないようにする必要がありますが、実際のスコアに署名できる必要があります。したがって、キーを与えなければなりません。

あなたのスキームが潜在的な報酬よりも多くの努力を必要とすることを確認することが必要です。我々はゲームのリーダーボードについて話しているので、ステークスはあまり高くありません。 tcpdumpを使っている人があまりにも速くそれを理解できないようにしてください。あなたのサーバーが "実験"(1つのソースからの多くの失敗した投稿)を検出するほどスマートな場合、あなたはどんな暗号アルゴリズムにも頼るよりも安全です。

関連する問題