【あるごんつー】
Argon2 とは?
最終更新:
💡 メモリと計算の負担で、パスワード推測を高価に
パスワードのハッシュ化などに使うメモリハードな関数。Argon2d・Argon2i・Argon2idがあり、OWASPはパスワード保存にArgon2idを推奨しています。メモリ・反復・並列度を、根拠と運用負荷に合わせて設定します。
📌 このページのポイント
普通のハッシュと何が違う?
3種類はどう違うの?
Argon2dはデータ依存、Argon2iはデータ非依存のメモリアクセスを使う。Argon2idは最初のパスの前半をi方式、その後をd方式にする。サイドチャネルと時間・メモリのトレードオフを考慮した組み合わせなんだ。
64MB、3回、CPUコア数にすればいい?
重くするほど安全に運用できる?
推測のコストは上げられるけど、正規のログインにも負荷がかかる。同時要求が増えたときのメモリや待ち時間を測り、認証側の負荷管理も設計する。固定の200〜500msやコア数だけで決めるものではないよ。
どう保存して照合するの?
もっと詳しく知りたい人へ
ハッシュ値を復号して、元のパスワードを読む?
復号する方式ではありません。入力されたパスワードを、保存した条件とソルトを使って検証します。ソルトはパスワードごとに固有にし、保存形式と検証は実績ある実装に任せます。
📖 おまけ:英語の意味
「Argon2」 = メモリハードな関数の名称
💬 2015年のPassword Hashing Competitionで選ばれた方式です。RFC 9106はバージョン1.3のアルゴリズムと設定例を説明しています。