2011-12-19 14 views
7

私はアンドロイドアプリケーション経由でWebサービスにリクエストする必要があります。 Webサービスは、必要に応じて設計できます。安全なWebサービスリクエスト

私が選ぶ方法は問わず、ハックしたい人は、私のアンドロイドアプリケーションコードをリバースエンジニアリングする必要があります(これは非常に難しくありません)。 は私のことを正確に見ることができます私はデータを暗号化し、ハードコードされたパスワードまたは他の解決方法を使用します。

100%安全なソリューションはありますか?

+0

これを見てください。私は彼らが同じことを求めていると思う:http://stackoverflow.com/questions/2320937/securing-communication-from-android-to-a-web-service – eboix

+0

私はこの質問をする前にこの答えを読んだが、私はそれがアプリケーションのリバースエンジニアリングの問題を解決するとは思わない。 –

+0

を使用すると、データを暗号化し、そのキーのハッシュをdbに格納し、dbを暗号化することができます。これはハックするのが難しいはずです – Mal

答えて

6

100%安全ではありません。あなたの攻撃者にとって難しいことをするだけです。あなたが考えることができますもの:

  • 暗号化 - 暗号化されたチャネルを介して、あなたの要求を渡すと 基本的なスニッフィングを停止します(これはMITMで対抗することができます)

  • 難読化 - 彼らはたときに理解することは、あなたの意図が難しくあなたのアプリが危険にさらされているときに気づくと、それに対処する能力 - これまでのアプリ

第二部デコンパイルが緩和されます。これを処理する典型的な方法は、最初に実行したときに各クライアントに一意のトークンを割り当て、サービスへの各呼び出しでこれを引数として渡すことです。

誰かがあなたのアプリケーションをデコンパイルしてサービスを呼び出す方法を見つけ出すと、酷いリクエストがどこから来ているのかを監視し、疑わしい動作(つまり、同じキーからの複数のリクエスト異なるIPアドレスを介して)。そこから鍵をブロックすることができます。

+1

+1良い答え、最高のために願う - 最悪に備える – amelvin

+0

これを見てくださいhttp://shabbirdhangot.wordpress.com/2014/07/12/secure-web-service-url-in-android/ –

2

"ハッキング"が心配ですが、セキュリティに関する議論の根底にはリスクが定義されています。

あなたは何に対して防御しようとしていますか?

たとえば、攻撃者が他のユーザーとサーバーとの接続を読み取るのを防ぎますか?

このシナリオでは、シンプルで安全なソリューションは、対称暗号化キーに非対称キー交換を使用するか、これを行う既存のプロトコル(HTTPSなど)を使用することです。 HTTPSを使用している場合はサーバーの秘密鍵(または証明書)を組み込み、man-in-the-middle攻撃を防御します。あなたのアプリケーションをリバースエンジニアリングしても、ここでは攻撃者の役に立ちません。

関連する問題