web-dev-qa-db-ja.com

https経由でユーザー名とパスワードを送信するだけです。これでいい?

ユーザーが私のサイトにログインすると、ユーザー名とパスワードがhttps経由で私に送信されます。 ssl以外には、パスワードの特別な難読化はありません-パスワードはブラウザのメモリに平文で保存されます。

他に何かすべきことはありますか? RAMでも、どうにかしてハッシュ化しておく必要がありますか?

53
Riley Lark

これで結構です。他に何もする必要はありません。それをハッシュしたり、RAMで難読化したりする必要はありません。

パスワードを永続的なメモリ(データベースなど)に保存する前に、サーバー側で適切にハッシュするように注意し、適切な方法でパスワードをハッシュするように注意する必要があります。例: パスワードを安全にハッシュする方法どのパスワードハッシュ方式を使用する必要がありますか?最も安全なパスワードハッシュアルゴリズム?パスワードの保存にbcryptを推奨するセキュリティ専門家はいますか?

ユーザーに追加のセキュリティを提供する場合は、次の手順を実行できます。

  • サイト全体のSSL/TLSを使用します。 HTTP経由でサイトにアクセスしようとすると、すぐにHTTPSにリダイレクトされます。

  • サイトで [〜#〜] hsts [〜#〜] を有効にします。これにより、ブラウザはHTTPS経由でのみ接続するようになります。 Paypalが使用します。最近のバージョンのFirefoxとChromeでサポートされています。

これらのことを行う必要があるとは言っていません(サイト全体のSSL/TLSは大きな違いをもたらします)。しかし、これらはいくつかの一般的な攻撃ベクトルに対するセキュリティを強化するのに役立ついくつかのオプションです。

43
D.W.

さらに、クライアント証明書を使用することもできます。サーバーは、クライアント証明書を要求することによって、MitMがないことのみをサーバーに保証できます。それ以外の場合は、MitMがないことを適切に検証するためにクライアントを信頼する必要があります。これは、多くのサービスが信頼できるはずです。

6
Steve Dispensa