SALTとは何ですか?どのように使用しますか?質問する

SALTとは何ですか?どのように使用しますか?質問する

いろいろ調べてみましたが、「ソルト」とは何か、またそれをどのように使用/実装するかがまだよくわかりません。初心者のような質問で申し訳ありませんが、私は PHP を独学しています。

ベストアンサー1

私は専門家ではありませんが、簡単に答えると、テキスト行を「ソルトする」とは、行の末尾にいくつかの文字を追加することを意味します。「salt」に「abcdefg」をソルトすると、「saltabcdefg」になります。これは、「salt」が推測されにくいパスワードである場合に役立つ可能性があります。

通常、パスワード+ソルトは、元に戻すのが難しいプロセスによって、まったく異なる文字列に変換 (「ハッシュ」) されます。この変換された文字列は、ソルトのプレーンテキストとともにパスワードとして保存され、パスワード本来の元のプレーンテキストは破棄されます。誰かが正しいパスワードを入力したかどうかを確認するには、入力した内容とパスワード ファイルにリストされているソルトを組み合わせて、結果をハッシュします。結果が記録されているパスワード ハッシュと一致する場合、正しいパスワードが入力されたことがわかります。

ソルトの実装は、ソルトとして使用する文字列を選択して、それを追跡するのと同じくらい簡単です。ただし、パスワードごとにソルトを変更すると、パスワードとソルトの組み合わせを追跡し、バリエーションを生成する方法が必要になります。もちろん、パスワードをプレーンテキストで保存するのではなく、パスワードをハッシュすることも必要になるので、ハッシュ関数を選択する必要があります。この時点で、問題はソルト自体からパスワード セキュリティ スキームの実装へと進んでいます。

PHP の場合、いくつかのフレームワークがこれをどのように実装しているかを確認するとよいでしょう。CakePHP と Zend の 2 つのクイック リンクを次に示します。

http://www.jotlab.com/2010/04/18/cakephp-rainbow-table-protection-behaviour/

http://www.zimuel.it/blog/2009/07/build-a-secure-login-with-zend-framework/

おすすめ記事