2012-04-03 3 views
2

私の要求は、次のとおりです。唯一のモバイルデバイス(iPhoneやアンドロイド)からサーバーサイドとモバイルクライアントの通信のセキュリティを保証するソリューションは何ですか?次のように

  1. 制限要求、それはプログラムまたはブラウザからの要求が禁止されている、と言うことです。
  2. セッションベースの会話。
  3. サーバーサイドは、他のプロキシや他の方法で変更されていない投稿データを再調整することができます。
  4. モバイルデバイスがハッキングされる可能性がある状況を考慮する必要があります。

私の要求に私の考えのいくつか:1に対応する

  • :私はRSAを使用したい、私が鍵と秘密を生成し、クライアントは、データを暗号化するためにキーを使用し、サーバーはその秘密を使用解読し、鍵をチェックする。しかし、モバイルがハッキングされたときに、そのキーは他人に知られていますか?
  • 3:私はhmacアルゴリズムと秘密鍵を使用して、すべての要求に対して署名を生成します。

私のソリューションについてのセキュリティ上の問題はありますか?あなたは何ですか?

を更新しました:ご迷惑をおかけして申し訳ございませんが、ユーザーのログインに基づいてすべての要望が話されています。

答えて

0

1)すべてのモバイルアプリで公開鍵/秘密鍵の組み合わせが同じでない限り、RSAを使用して解決するかどうかはわかりません。ブラウザはRSAを使用して簡単にデータを暗号化することができます。

モバイルオペレータによって挿入されたヘッダーが入ってくるHTTPヘッダーと、そのヘッダーが偽装されている可能性があるかどうかを確認する方法があります。

難しい問題です。私はそれについて考え続けて、何かが頭に浮かぶかどうかを知らせます。

2)セッションベースの暗号化では、Diffie-Hellman鍵交換アルゴリズムを使用してセッション鍵をネゴシエートし、それを使用して要求をセッションにロックすることができます。

3)音が良い。

4)ハッキングされている電話の周りの唯一の方法は、デバイスだけでなく、ユーザーを認証する必要があるため、ユーザーにログインを要求することだと思います。もう1つは、人々が電話を共有するため、ハッキングされていない可能性もあります。それはちょうどleantだったかもしれません。

+0

最初にお返事いただきありがとうございます。あなたの視点4)には、実際にはユーザーのログインが必要です。言いたいことを忘れるのは私のせいであり、私は自分の質問に更新を加えました。そして、1)に、私はあなたがRSAについて何を意味するかをあまり理解していません。 – jianpx

+0

RSAは、デバイス/コンピュータ/アプリケーションを認証し、サーバとクライアント間で秘密のメッセージを送信するのに便利です。 メッセージを暗号化してサーバーに送信するというリクエストがアプリによって行われたことを認証しようとすると、暗号化されたメッセージをコピーして送信する他のユーザーは何を停止しますか?彼らは電話をハックする必要はありません。彼らはただパケットスニッファを使用して、暗号化されたメッセージを盗む必要があります。または私はあなたを誤解していますか? –

0

ASIHTTPRequest APIの使用を検討し、より多くの保護のためにSSLを使用することを検討してください。ハッキングされたモバイルの場合、ユーザーログインはそれを達成するのに便利な方法で、ユーザーがPOST要求を送信するたびにパスを要求することができます。

+0

あなたの答えをありがとう。しかし、実際には、私はサーバーサイドの問題を考えているので、ASIHTTPRequest apiはクライアントの仕事です。私は、SSLソリューションのトークンを検討しているが、すべての携帯電話やISPがSSLをサポートしているわけではないので、一般的な解決策ではありません。 – jianpx

+0

次に、serverfault.comでこの質問をしてみてください。いくつかの論理的回答 –

4
  1. 通常はできません。
  2. Cookieベースの定期的なセッションを使用してください。モバイルアプリケーションは、何らかの形でサーバーに認証される必要があります(プライベートアカウント、Googleアカウント、SSLクライアント証明書など)。本当にランダムなセッションIDを提供し、セッションハイジャックなどを防ぐためにSSLで安全なソリューションを使用してください。
  3. SSL(HTTPS)を使用してください。
  4. 意味がわかりません。デバイス固有の認証を行っている場合は、アカウントを取り消して盗まれた電話などを使用できないようにする必要があります。

最後のことを言えば、セキュアなプロトコルを発明しようとしないでください。 HTTPSを使用して、安全なソリューションを作成できるとは考えていません。単に書籍/ブログ/記事/教科書を読んでいるからです。

再度:HTTPSを使用してください。

+0

が表示されることがあります。すべてのモバイルデバイスがhttpsをサポートしているわけではありません。 – jianpx

+1

AndroidとiPhoneは確かにしています。近年建てられたものは他にもたくさんあります。本当にそうでない場合は、あなたのアプリにOpenSSLなどをバンドルしてください。 HTTPSを使用しない理由はありません:) –