パスワードハッシングには理想的なbcrypt作業係数は何ですか?最適なbcrypt作業係数
私が10の係数を使用すると、ラップトップでパスワードをハッシュするのに約1秒かかります。私たちが非常にビジーなサイトで終わると、それは人々のパスワードをチェックするだけの良い仕事に変わります。
作業ファクタを7にして、パスワードのハッシュ作業の総数をノートパソコンのログインごとに約0.01に減らす方が良いでしょうか?
ブルートフォースの安全性と運用コストのトレードオフをどのように決めるのですか?
パスワードハッシングには理想的なbcrypt作業係数は何ですか?最適なbcrypt作業係数
私が10の係数を使用すると、ラップトップでパスワードをハッシュするのに約1秒かかります。私たちが非常にビジーなサイトで終わると、それは人々のパスワードをチェックするだけの良い仕事に変わります。
作業ファクタを7にして、パスワードのハッシュ作業の総数をノートパソコンのログインごとに約0.01に減らす方が良いでしょうか?
ブルートフォースの安全性と運用コストのトレードオフをどのように決めるのですか?
この値は、パスワード:$2a$(2 chars work)$(22 chars salt)(31 chars hash)
に保存されています。固定値ではありません。
負荷が高すぎる場合は、次回のログイン時に負荷をかけすぎると、速やかに何かに暗号をかけて計算します。同様に、時間が経つにつれてより良いサーバーが得られるので、負荷が問題にならない場合は、ログイン時にハッシュの強さをアップグレードすることができます。
トリックはほぼ同じ時間ムーアの法則と一緒に永遠に未来へ。 数値はlog2です。したがって、コンピュータの速度が倍になるたびに、デフォルトの数値に1を加算します。
ブルートゥースでユーザーのパスワードを強制的に鳴らす時間を決めます。たとえば、いくつかの一般的な辞書の単語については、あなたのアカウントの作成は、おそらく既に彼らのパスワードが弱いと警告したでしょう。それが1000の一般的な言葉の1つであれば、攻撃者はそれぞれをテストするために0.1秒かかり、100sを購入する(よくある単語はもっと一般的です...)。ユーザーが「共通辞書単語」と2つの数字を選択した場合、それは2時間以上です。パスワードデータベースが侵害され、攻撃者が1日に数百のパスワードしか取得できない場合、安全にパスワードを変更するために、ほとんどのユーザーを数時間または数日購入したことになります。時間を買うのは問題だ。
http://www.postgresql.org/docs/8.3/static/pgcrypto.htmlあなたが考慮する必要があるパスワードを数回入力してください。もちろん、そこにリストされているパスワードはランダムな文字です。辞書の単語...実際には、パスワードが12345の男を保存することはできません。
これは本当に優れた答えです。私はログインアイデアに再暗号化を考慮していなかった。どうもありがとうございます! – Chris
どのように暗号化が機能しますか?古いbcrypt作業コストをどこかに保存しなければならないので、ログインに使用してパスワードを検証した後、データベースのハッシュとコストを更新する必要があります。 –
@ JerrySaravia bcryptの美しさは、コストがハッシュ自体に格納されていることです。したがって、余分なものを保存する必要はありません。現在のハッシュで認証し、すぐに別のコストでハッシュを再生成するだけです。シンプル! –
オフライン攻撃はコストがかかりません。 「オンライン」の場合、サービス拒否攻撃を防ぐために試行間の最小遅延(たとえば5秒)を使用できます。 –
InformationSecurityの重複:[推奨されるbcryptのラウンド数](http://security.stackexchange.com/q/17207/46416) –
興味のある方は、サーバー上でbcryptのパフォーマンスをテストするための小さなJava CLIツールを作成しました。サーバーの負荷と応答時間のバランスをとるためには明らかに重要です)。https://github.com/cdraeger/hash-performance – Blacklight