web-dev-qa-db-ja.com

HTTPSを介してデータを保護する最良の方法

私の目的は、ユーザーがログインする(iOS)アプリを用意し、成功したログインで、暗号化されたWebサービス(未定)を介して追加情報にアクセスすることです。

研究から、diffie-hellman鍵交換の暗号化技術、およびHMACと秘密鍵(diffie-hellmanから)を使用した「署名」を理解しています。

さらなる調査の結果、私はHTTPSに到達し、傍受を防止しました。

しかし、ログインデータがアプリとサーバー間で保護されていることを確認するために、HTTPS接続を介して何をする必要があるかについては、少し混乱しています。

  1. HTTPSは、POST 'username'& 'password'データをそのままサーバーに渡すのに十分なセキュリティですか?それともパスワードのハッシュなどの追加のセキュリティが必要ですか?

または

  1. HTTPS接続を介して、完全な鍵交換+要求の署名(およびある時点でアクセストークン)を実装する必要がありますか?

暗号化でどこに線を引くかわかりません。

4
Simon.

[〜#〜] https [〜#〜]は、情報を送受信するのに十分なセキュリティ以上のものです。HTTPSが自動的に処理するため、独自のセキュリティの実装を開始しないでください。それは提供します:

  • 守秘義務
  • 誠実さ
  • 信憑性

モバイルアプリケーションを作成する際の最大の注意点は、証明書の例外を受け取ったときのアプリケーションの動作を確認することです。

パスワードのハッシュに関しては、パスワードはサーバーに送信するものになるため、あまり役に立ちません。パスワードをハッシュしても、リプレイ攻撃やスニッフィングは依然として可能です。幸い、HTTPSを使用しているため、接続を介して送信されているものを表示することはできません。

アクセストークンに関しては、他のWebアプリケーションで使用するのと同じように、セッショントークンを使用できます。 RESTfulサービスが必要な場合は、リクエストごとにユーザー名とパスワードを送信する必要があります。

4
Lucas Kauffman