Drupal 12はArgon2idに移行します

Dries and Logo
目次

この記事は Dries Buytaert 氏の公式ブログ「dri.es」の翻訳記事です。Driesブログの記事一覧よりすべての翻訳記事をご覧いただけます。

Drupal 12では、デフォルトのパスワードハッシュ化にArgon2idを採用します。OWASPが推奨し、NISTのガイダンスにも沿った、現時点でのパスワード保存のベストプラクティスをすべてのDrupalサイトに適用する変更です。

Drupalはセキュリティに敏感な用途や大規模なサイトで多く使われているため、こうした変更は非常に重要です。

Drupalの初期バージョンでは、パスワードを単純なMD5ハッシュで保存していました。今日の基準からすれば極めて脆弱な方式です。Drupal 7では、ソルトと複数回のイテレーションを加えたSHA-512を使うphpassライブラリの改良版を導入し、Drupal 10ではbcryptに移行しました。攻撃者のハードウェアが高速化するたびに対応を強化してきたわけで、今回の変更もその流れを受け継ぐものです。

この変更を初めて見たとき、Argon2idbcryptと実際に何が違うのかを理解したいと思いました。

最大の特徴は「メモリハード」であることです。Argon2idのハッシュ計算には、bcryptと比べてはるかに多くのメモリが必要で、しかもその量は設定で調整できます。

現代のGPUは、1回の計算に使うRAMが非常に少ないbcryptを大量に並列実行できます。GPUは全体のメモリ容量は大きいものの、何千もの並列処理でそれを共有しています。Argon2idはこの点を突いており、並列で実行できるハッシュ計算の数を制限することで、攻撃をスケールさせるコストと難易度を大幅に引き上げます。

最良のセキュリティ改善とは、誰も意識しなくていいものです。Drupal 12にアップグレードしたサイトでは、各ユーザーが次回ログインした際に既存のパスワードが自動的にArgon2idで再ハッシュ化されます。また、万が一特定のPHPインストール環境でArgon2idが利用できない場合でも、互換性のためにDrupalはbcryptにフォールバックします。

多くのサイトオーナーはパスワードのハッシュ化について考えることがないため、Drupalのデフォルト設定がそのままセキュリティポリシーになります。この変更から最も恩恵を受ける人たちは、それが起きたことすら気づかないかもしれません。だからこそ「デフォルトで安全」であることがとても重要なのです。

この実現に貢献してくれたすべての方に感謝します。

— Dries Buytaert

PS: LinkedInでのディスカッションもぜひご覧ください。

この記事は「Drupal 12 switches to Argon2id」(投稿日:2026-03-30)の翻訳記事です。

カテゴリ