Argon2 とは?
Argon2 は、オフラインでのパスワード解析に高いコストをかけさせるために設計されたパスワードハッシュアルゴリズムです。反復計算と設定可能なメモリコストを組み合わせるため、攻撃者はパスワード候補を試すたびに時間とメモリの両方を必要とします。
Argon2id が通常デフォルトとして選ばれる理由:
- 多くのパスワード保存システムでは、Argon2i や Argon2d だけを使うよりも、サイドチャネル攻撃への耐性と GPU による解析への耐性のバランスが優れています
- エンコード済みの出力には、アルゴリズム、バージョン、メモリ、反復回数、並列度、ソルト、ハッシュが 1 つの移植可能な文字列として格納されます
- 一意のランダムソルトにより、同じパスワードから同じ保存ハッシュが生成されることを防ぎます
- 検証環境が高速になったら、メモリと反復回数の設定を引き上げられます
このツールの使い方:
- ハッシュ化したいパスワードを入力します。
- 生成済みのソルトをそのまま使うか、新しいランダムソルトを作成します。
- Argon2 のバリアントを選び、ハッシュを検証するシステムに合わせてメモリ、反復回数、並列度、ハッシュ長を調整します。
- エンコード済みハッシュを生成し、その文字列全体をアプリケーションのデータベースに保存します。
セキュリティ上の注意:
- 平文のパスワードを保存したりログに記録したりしないでください。
- パスワードごとに新しいランダムソルトを使ってください。
- 任意のシークレットは、検証側にも同じシークレットがある場合にのみ使ってください。そうでない場合、後でハッシュを検証できません。
- 実際のユーザーにとって許容できるサインイン待ち時間を保てる範囲で、できるだけ高いメモリ設定と反復回数設定を選んでください。