3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【セキュリティ】Argon2 ―― 現代における最強クラスのパスワードハッシ

3
Posted at

はじめに

「速さ」を捨て、「コスト」を武器にした設計思想

パスワード漏洩事故のニュースは、もはや珍しくありません。
問題は「漏れたかどうか」ではなく、漏れたあとに何が起きるかです。

もし攻撃者が取得したのが 平文高速ハッシュ(MD5 / SHA) なら、結果は即ゲームオーバー。
一方、Argon2 のような メモリハード型ハッシュ で守られていれば、攻撃は「理論上可能」でも「現実的に割に合わない」ものになります。

この記事では、

  • Argon2 は何が違うのか
  • なぜ「今これを使うべき」なのか
  • 実務でどう設定すべきか

を、攻撃者視点も交えて解説します。


1. Argon2 とは何か

Argon2 は、パスワード専用に設計されたハッシュアルゴリズムです。
2015 年の Password Hashing Competition (PHC) で優勝し、現在は 事実上の業界標準 となっています。

重要な点はこれです:

❗ Argon2 は「暗号化」ではない
❗ 「復号」できない前提で設計されている

つまり、
「正しいパスワードかどうか」を検証するためだけの関数 です。


2. なぜ従来のハッシュは危険なのか

高速ハッシュの致命的欠点

アルゴリズム 1秒あたりの試行回数(GPU)
MD5 数十億
SHA-256 数十億
bcrypt 数万〜数十万
Argon2 数百〜数千

MD5 や SHA 系は「速く計算できる」ことが本来の利点でした。
しかし パスワード保存においては、それが最大の弱点 になります。

攻撃者はこう考えます:

「1 秒で 10 億回試せるなら、
8 文字パスワード? まぁ余裕でしょ」


3. Argon2 の核心:Memory-Hard(メモリハード)

Argon2 最大の特徴は 大量のメモリを使わせる設計 にあります。

なぜ「メモリ」が重要なのか?

  • CPU:コアを増やしやすい
  • GPU:並列計算が超得意
  • メモリ:高速・大容量は高価

Argon2 はこう言っています:

「計算したければ、まずメモリを出せ」

その結果:

  • GPU:VRAM が足りない
  • ASIC:設計コストが跳ね上がる
  • クラウド:攻撃コストが現実的でなくなる

攻撃者の“財布”を直接殴る設計です。


4. Argon2 の 3 つのバリエーション

種類 特徴 備考
Argon2d GPU 耐性最強 側信道攻撃に弱い
Argon2i 側信道耐性 GPU 耐性はやや弱
Argon2id 両者の折衷 実務推奨

結論

迷ったら Argon2id
これは世界共通の暗黙知です。


5. パラメータ設計が「本当のセキュリティ」

Argon2 は魔法ではありません。
パラメータをケチると普通に弱くなります。

主要パラメータ

  • time_cost:計算回数(時間)
  • memory_cost:使用メモリ量
  • parallelism:並列度
  • salt:必須(ランダム)

現実的な推奨例(Web サービス)

Algorithm: Argon2id
Memory:    64 MB
Time:      3
Parallel:  2
Salt:      16 bytes

ログイン 1 回あたり:

  • サーバー:数十 ms
  • 攻撃者:地獄

6. よくある誤解

「HTTPS だから安全」
→ 通信は安全、DB は無防備

「salt してるから SHA-256 で十分」
→ GPU にとって salt は障害物ではない

「デフォルト設定でいい」
→ デフォルトは 最低限最適 ではない


まとめ

Argon2 の本質はこうです:

守っているのはパスワードではなく、
攻撃者の「時間」と「コスト」を奪うこと

安全とは「絶対に破られない」ことではありません。
「破る意味がなくなる」状態を作ることです。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?