2011-07-19 13 views
5

プログラミング言語に関係なくクライアントサーバーのセキュリティと認証

私はクライアントサーバーアプリケーションを持っています。

モバイルクライアント - HTTPサーバー

アプリは、アンドロイドではない、いくつかの携帯電話で利用できるようになります。

私は、要求がクライアントの携帯電話からのものであることを確認したいと思います。

どのようにしてこのセキュリティ上の問題を解決できますか?

私が提案している:

は、モバイルアプリにハードコードされた秘密鍵を持っている:

を各要求は、この鍵を使って暗号化し、サーバ側で復号化されます。

このようにすれば、キーをハードコードするのは安全ですか? (逆コンパイラは、キーを取得することができますアプリだけでなく、アンドロイドのための利用できるようになります?!)

追加情報:各ユーザーは、ユーザーID /ユーザ名を持っています

...

+2

私は同様の問題に対してOAuthを使用しました。これは完全にこのニーズに適合し、ほぼすべてのプログラミング言語用のライブラリがあります。私のケースでは、OAuthサーバーはAndroid携帯/タブレットとリンゴの携帯/タブレットと通信します。 – Marco

+0

「クライアントのモバイルのみ」とはどういう意味ですか? (1)認証されたユーザーだけがモバイルからサーバーにアクセスできます。または(2)ユーザーは自分のモバイルからサーバーにアクセスできます。または(3)ユーザーは、PCではなくモバイルでのみサーバーにアクセスする必要があります。 (1)は容易であり、(2)および(3)はそうではない。以下も参照してください:http://en.wikipedia.org/wiki/Two-factor_authentication – Ando

答えて

3

暗号化キー(または秘密を保持する必要があるもの)をモバイルアプリに入れておかないでください。これは重大な欠陥です。

鍵はリバースエンジニアリングすることができます。実際、いくつかの大手企業がこのミスを犯しています。 Googleの "twitter oauth key compromised"

+0

はい私はそう思いました...解決策は何ですか? –

+0

@Sherif - リクエストが特定のデバイス*から来ていることを確認するための確実な方法はありません。何らかの認証(ユーザー名とパスワードなど)で*ユーザー*を特定するだけです。 – Qwerky

関連する問題