私はアンドロイドアプリケーションで使用するために外部サーバーからデータを取得します。私はこのデータが私のアプリでのみアクセス可能であることを望みます。私は標準のhttp接続を使用して、json形式のapache/phpサーバーからデータを取得します。また、関連するデータを取得するためにいくつかのパラメータをサーバーに送信します。今、私は何をするつもりは次のとおりです。httpリクエストが私のアンドロイドアプリから来ているかどうか確認してください
- MD5( "someSecretPhrase" +のparams)のようなものを送るのparams
- を送信します。
- 秘密の句がサーバー側で正しいかどうか確認してください。
ここで、リバースエンジニアリングに関しては安全なアプローチですか?今のところ私はこのデータを得る他の可能性はないと考えることができます。しかし、もし誰かが私のAPKを逆コンパイルできれば、彼はこの "someSecretPhrase"(サーバ側でやるのは難しい)を取り出してサーバにアクセスすることができますか?本当の脅威ですか?サーバーによって私のアプリケーションを認証する他の可能性はありますか?
私はフォーラムなどを見ました。 Identify whether HTTP requests from Android App or not? and then respond appropriatelyですが、デコンパイルの問題については説明していません。
私は共有ホスティングを開始しています。したがって、サーバー上の異なるアーキテクチャはおそらく私の選択肢ではありません。このデータは脆弱ではありません(クライアントのクレジットカード番号はありません)。しかし、集めるためには多くの作業が必要です(そして、それは継続的に集められます)ので、誰かが自分の考えをコピーしてデータを使うことができれば、 .. –
あなたのサーバが何らかのデータで返信する場合は、それを公開しておくべきです。アプリを逆コンパイルしてリクエストを偽装するだけでなく、攻撃者はプロキシを使用して、正当なアプリに送信するデータをダンプすることができます。 –
私はあなたを正しく理解していれば、安全に行う唯一の選択肢は、サーバーとアプリケーションの間の暗号化された接続を使用することです。 Httpsは大丈夫でしょうか?私は、使い方が簡単ではないことを理解しています。しかし、他に何か欠点がありますか?それはかなり遅いですね。私はちょうどこのデータの安全性が努力の価値があるかどうかを調べようとしています –