web-dev-qa-db-ja.com

比較的新しいハッシュと古いテスト済みハッシュを使用したダブルハッシュ

注:私は一般的に暗号化に比較的慣れていないので、何かを作ったら指摘してください
ここで誤解。

すでに広範囲にテストおよび研究されている、よく知られている暗号化/ハッシュ関数を常に使用する必要があると聞きました。 -それに同意します-scryptはまだ初期段階であるため、リスクを伴う可能性があることも読みましたが、FPGAやGPUを使用した攻撃などの問題は解決しているようです。

「私の」素晴らしいアイデアは、2つのハッシュを使用することでした。 PBKDF2のように広範囲にテストされ、その後に暗号化されます!したがって、理論的にはscryptによって保護され、ifバグ/エクスプロイト/問題が見つかった場合でも、PBKDF2によって提供されるよく知られた保護の保護があります。

このアイデアに欠陥はありますか?

いいえ、この質問の複製ではありません:この質問 2つの異なるハッシュ関数を使用した「ダブルハッシュ」 2つのハッシュを使用してもメリットがないということですが、それはsha256とsha512に関するものなので、これがPBKDF2とscryptにも当てはまるかどうかはわかりません。

一方、ここのこの投稿 異なるハッシュアルゴリズムが一緒に使用されたことはありますか? は、構成として使用された場合に提供されると述べています"原像耐性は少なくとも2つの関数の中で最も強い関数としては優れていますが、衝突の場合、最も弱い関数が全体的な抵抗を定義します "。私の知る限り、ここでは衝突は問題になりません...

パスワードをハッシュして保存したいだけだと思います。

1
Xaphanius

あなたは本当にあなた自身の暗号実装を転がすことから離れるべきです。パスワードの保存にbcryptを使用してみませんか?それはそのために広範囲にテストされており、非常にうまく機能します。

それが持っているいくつかの利点は次のとおりです。

  • ブルートフォースへの耐性
  • レインボーテーブルへの抵抗
  • 塩の生成
  • ハッシュのラウンドを設定することによるスケーラブルな速度
  • ブローフィッシュアルゴリズムに基づいて構築
3
user72066