0

私の目標は、Android ゲームから REST によってハイスコアを読み取り、安全に投稿することです。質問とその答えとしての良い提案を見つけました。

受け入れられた回答に質問があります。秘密鍵をアプリにハード コードし、それを使用して URL を md5 暗号化します。結果はパラメーターとして URL 自体に追加されます (リンクされた投稿の回答を参照)。さらにSSLを使用しても、私の場合はメリットがないと思います。私も秘密鍵を使用する必要があり、誰かが私のアプリをクラックしてリバース エンジニアリングすると、彼は秘密 SSL キーと秘密鍵を取得します。パスワードやいくつかの重要なデータは送信しません。ユーザーが入力した名前またはスコア付きのニックネームと、場合によっては国だけです。ルート化された電話を持っている人は URL を見ることができますが、このアプローチではサーバー上のハイスコアを偽造することはできませんよね? SSL を省略して、HTTPS の代わりに HTTP を使用しても、何の不利益もありませんよね? それとも、私がしなかったこのアプローチに何か問題がありますか? 考えない?(可能な場合は SSL を省略したいと思います。実装が簡単であり、Google Play で暗号化されたアプリを使用する際の米国の輸出規制に関するこの問題は、サーバーにハイスコアを送信するだけでは面倒すぎるためです)。

4

3 に答える 3

4

追加で SSL を使用すると、私のケースにはメリットがないと思います

誰かがトラフィックを傍受してあなたの秘密鍵を見るのが難しくなります.

ルート化された電話を持っている人は URL を見ることができますが、このアプローチではサーバー上のハイスコアを偽造することはできませんよね?

彼らはあなたの秘密鍵を使用して HTTP リクエストを確実に実行できます。秘密鍵を確認するために電話をルート化する必要はありません。HTTP リクエストの結果を使用するために電話をルート化する必要があるかどうかはわかりません。

SSL を省略して、HTTPS の代わりに HTTP を使用しても、何の不利益もありませんよね?

SSL をスキップすると、だれかがプロキシ サーバーやその他の形式のトラフィック スニファーを使用して秘密鍵を盗み見やすくなります。

暗号化されたアプリを使用する際の米国政府の許可に関するこの問題

私はあなたが何について話しているのか分かりません。

于 2013-11-03T18:44:53.457 に答える
0

SSL は、クライアントとサーバー間のスニッフィングのみを防止します。クライアントとサーバー間で機密情報を送信しない場合は、SSL を使用しても意味がありません。アプリにハードコードされた「秘密の」キーを送信することはお勧めできません。アプリを逆コンパイルすると、そのキーは秘密ではなくなります。

ルート化された電話を持っている人は URL を見ることができますが、このアプローチではサーバー上のハイスコアを偽造することはできませんよね?

「秘密鍵」を持っている人なら誰でも、HTTP(s) リクエストを作成し、必要な hiscore を設定できます。クライアントを信用してはいけません!サーバー自体で hiscore を計算してから、それをクライアントに返す必要があります。できれば逆にしないでください。

于 2013-11-03T18:55:59.697 に答える
0

次のように、URL の一部をハッシュしています。

http://yourserver/?key=hashed_value&score=100

しかし、これではセキュリティがまったく確保されません。クライアントは引き続きそのURL を確認して、次のように独自の POST を作成できます。

http://yourserver/?key=hashed_value&score=300

ハッカーが使用するハッシュ値は、アプリが使用するものと同じです。

目的に応じて HTTPS使用する必要があります。

この例では「GET」を使用しましたが、POST も同じです。HTTPS でない場合は、HTTP リクエスト全体を確認できます。

于 2014-04-22T16:49:54.997 に答える