web-dev-qa-db-ja.com

パスワードが回復可能であってはならない(一方向ハッシュ)と信じて間違いはありませんか?

最近、ケーブルプロバイダーのオンラインアカウントのパスワードを忘れましたが、パスワードがメールのプレーンテキストで送信されていることがわかりました。データベースにパスワードをプレーンテキストで保存しているかどうかを尋ねるメールをカスタマーサポートにすぐに送りました。実際には、「アプリケーションの設計」のために、パスワードを回復可能な形式でハッシュする必要があると言った彼らのソフトウェアエンジニアの1人から迅速な応答がありました。

彼らがソルトを使用しているかどうかを尋ねるためにメールを返送しませんでしたが、一般的に、パスワードのセキュリティと回復に関しては、共通点が最も低いものを順守していると思いました。

私はここで間違っていますか?彼らが強力な暗号化方法を使用している場合、これは完全に受け入れられますか?

41
user3127

ISPの場合、パスワードをプレーンテキストで保存したり、可逆暗号化を使用したりする可能性があります。この可逆暗号化は、答えが主張するようにハッシュではありません。

古いプロトコルはパスワードを challenge-response ダイジェスト認証の一部として使用するため、ISPは一方向ハッシュを使用しない傾向があります。

最も注目すべきは [〜#〜] apop [〜#〜] で、これは古いPost Office Protocolの拡張機能です。通常のPOPでは、ユーザー名とパスワードはクリアテキストで送信されますが、これは明らかに悪いことです。したがって、人々はスニッフィングとリプレイ攻撃を防ぐ拡張機能について考えました:サーバーは一意の識別子を送信します(奇妙な理由により、仕様ではタイムスタンプと呼ばれていますが、それ以上です)。クライアントは、MD5ハッシュを計算する前に、この識別子とパスワードを連結します。サーバーは同じ計算を行う必要があるため、クリアパスワードが必要です。このプロトコルは古くなっています。代わりにPOP over SSLを使用してください。しかし、それはまだ一般的に使用されています。

さらに、ISPは多くの場合多数のサービスを提供するであり、ISPのすべてに中央認証メカニズムを使用させることは大きな課題です。したがって、多くの場合、パスワードはこれらのサーバーに複製されます。この複製は、信頼性の理由からいつでも再現可能でなければならないため、クリアテキストのパスワードが保存されることがよくあります。中央認証が不可能な場合でも、プレーンなパスワードではなく、さまざまな暗号化された形式をレプリケーションソースに保存することをお勧めします。

明らかにこれらのパスワードを提供することは非常に悪い習慣です顧客と第1レベルのサポート担当者。それらをプレーンメールで送信すると、事態はさらに悪化します。

46

HTTPダイジェスト認証など、パスワードをプレーンテキスト(または暗号化されているがハッシュされていない)で保存することを要求する多くのプロトコルがあるため、回復可能な形式でパスワードを保存する正当な理由があります。これで問題ありません。公開されたパスワードストア(および暗号化キー)の場合、ほとんどのパスワードはハッシュされていてもかなり安価に回復できるため、違いはそれほど大きくありません。

しかし、彼らの行動についてのあなたの説明は本当に説得力があるようには聞こえません-それは合法かもしれませんが、私はそれには賭けません。

ただし、serとして、パスワードがプレーンテキストで保存されていない(たとえば、アカウントを表示している管理者に表示される)ことや、サービスが実際にパスワードを安全に保つよう管理していることを信頼してはなりません。これは、サイト間でパスワードを共有せず、パスワードを確認するという通常の予防策は、一目見ただけでは覚えにくいことを意味します。

12
Nakedible

他の誰もがそうであるように、ISPは内部からの攻撃、外部からの侵害、およびソーシャルエンジニアリングに対して脆弱であるため、あなたが説明するやり方は非常に悪いものです。最も重要なのは、彼らが「あなたに」あなたのパスワードを送ってはならないということです。彼らはあなたのパスワードをリセットし、ログインして新しいものを作成するためのトークンをあなたに送るべきです。

それを超えて、人々はパスワードを再利用しないように促すあらゆる努力にもかかわらず、パスワードを再利用するため、パスワードのオンライン保存はユーザーを危険にさらします。

他の人が指摘しているように、APOPやHTTP Digest Authnなど、プレーンテキストを必要とするいくつかの古いプロトコルがあり、これらの古い内部プロセスを説明している可能性があります。 Microsoftは、古いシステムのいくつかで同じ問題を抱えています。しかし、これらは、まさにこれらの種類の理由により、排除すべき悪いプロトコルです。

適切にハッシュされた適度に良いパスワードは、確かにクラックから保護できます。
その方法(およびしない方法については、 パスワードを安全にハッシュする方法 を参照してください! )

7
nealmcb