4

一時的なパスワードや機械で生成されたパスワードをクリア テキストとしてデータベースに保存することは、どの程度のセキュリティ上の問題になりますか?

パスワードは一方向ハッシュ関数とソルトを使用して暗号化する必要があることを理解しています。これは、ユーザーが提供するパスワードの場合に特に当てはまります。ユーザーは通常、パスワードを何度も再利用するからです。データベースが盗まれた場合、泥棒は公共料金の請求書、ソーシャル ネットワーク、さらにはオンライン バンキングの可能性など、サード パーティの Web サイトのユーザー アカウントにアクセスできる可能性があります。

一時的/機械で生成された「ようこそ」または「リセット」パスワードをクリア テキストとしてデータベースに保存することは、どの程度の問題でしょうか? パスワードはユーザーに電子メールで送信され、ログイン時に変更する必要があります。彼らが提供するパスワードはハッシュ化されます。

私が尋ねる理由は、一時パスワードをクリア テキストとして保存することにはいくつかの優れた特性があるからです。たとえば、ユーザーが「ようこそ」または「リセット」メールを受信しない場合、管理者は一時パスワードをすばやく検索できます。

一時パスワードは機械で生成されるため、データベースが盗まれた場合、泥棒はユーザーがログインするサード パーティの Web サイトにアクセスできなくなります。ただし、泥棒は、一時パスワードを生成したアプリケーションにログインできます。

これらのパスワードに短い「有効期限」を割り当てると、露出が制限されますが、全体として、このアプローチがどれほど危険であるかを確認しているだけです.

4

2 に答える 2

7

機械で生成されたパスワードであっても、プレーン テキストで保存しないでください。

攻撃者が何らかの形で SQL インジェクションを使用してデータベースへの読み取りアクセスのみを取得した場合、攻撃者ができることを見てみましょう (私はSQL インジェクションがいかに簡単かという小さなデモを作成しました。悪意のある入力を取得するには、次の矢印をクリックするだけです)。

読み取りアクセス権を持つ攻撃者は、好きな電子メール アドレスのパスワードのリセットを要求する可能性があります。データベースで新しく生成されたトークンを確認できるため、このトークンを使用してリセット ページを呼び出し、このユーザーのパスワードを変更できます。言うまでもなく、元のユーザーになりすますことができるようになりました。

他のサイトで使用できない場合でも、他のすべてのパスワードと同じようにトークンを処理します。ユーザー アカウントがアクセスできるデータには、他のサイトのハッキングに使用できる他のデータ (誕生日、本名など) が含まれている可能性があります。

于 2013-10-11T07:20:37.753 に答える
5

プレーンテキストは言うまでもなく、パスワードをデータベースに保存してはいけません。それらのハッシュを保存する必要があります。理由については、この回答を参照してください。次に、その事実に基づいてすべてのパスワード リセット機能を構築する必要があります。パスワードのリセット機能に関するこの回答も参照してください。

于 2013-10-11T00:36:53.897 に答える