web-dev-qa-db-ja.com

パスワードのランダムな文字を使用してユーザーを識別します

パスワードがプレーンテキストで保存されていないと仮定すると、サポート担当者が電話中に顧客にパスワードのランダムな文字を尋ねることで、どのようにして顧客を識別できるのでしょうか。

たとえば、パスワードが「password」の場合、サポート担当者は最初と4番目の文字を要求し、顧客は「p」と「s」と言います。この時点で、サポート担当者は、正当な顧客と話していると見なします。

私の頭に浮かぶ唯一の解決策は、プレーンテキストのパスワードを使用しているということですが、そうではなく、銀行であるため、別の解決策があることを願っています...

PS:これは実際のシナリオであり、フィッシングの試みではありません。

編集:マシューが言ったように、彼らのシステムにアクセスできなければ、何が起こっているのかを知ることは不可能です。私の質問の目的は、カスタムメイドのアルゴリズムではなく、これを達成するための既知の「公開」メソッドがあるかどうかを知ることでした。

1
eez0

暗号化ハッシュのポイントは、元に戻せないことであるため、そこから取得することはできません。

パスワードが設定されているときに、パスワードから数文字を選んで保存する可能性があるため、カスタマーサービスは、2または3ではなく、1と4の文字を認識しています。ただし、パスワードを可逆暗号化で保存しているのではないかと強く思います。 、それは説明がはるかに簡単であり、銀行は優れた情報セキュリティ慣行を持っていることで知られていないためです。

一連の文字ペア(強力なソルトを使用し、適切なアルゴリズムを使用)と、これがどの文字ペアであるかを詳細にハッシュしている可能性があります。次に、システムが要求する文字を要求すると、システムはハッシュしてtrueまたはfalseの応答を返すことができます。真の応答が見つかるまで、または3回(たとえば)試行が行われるまで、要求するペアを変更しないでください。

この場合、プレーンテキストのパスワードを保存する必要はなく、カスタマーサービス担当者は2文字を超える文字にアクセスできず(監査可能な方法でしか確認できません)、最も弱い点は2文字の比較的低いエントロピーである。

しかし、それが彼らのシステムにアクセスせずに彼らがしていることであるかどうかはわかりません...

0
Matthew