WordPress 6.8へのアップデート:パスワード暗号化アルゴリズムの変更とダウングレード時の注意点

WordPressはバージョン6.8で、パスワードの暗号化(正確にはハッシュ化)方式に大きな変更が加えられました。これによりセキュリティは強化されましたが、誤って6.8にアップデートした後、旧バージョン(6.7以前)に戻した場合、ログインに支障が出る可能性があります。

本記事ではその詳細と対処法を簡単に説明します。

パスワード処理内容の変更事項

WordPress 6.8では、これまで使われていたphpassというパスワードハッシュ方式から、業界標準のbcryptに移行しました。

phpassとは?

phpassは、PHPで使われるパスワードハッシュライブラリで、WordPressを含む多くのPHPアプリケーションで長年使われてきました。

特徴

  • ポータブル性が高い:PHP環境であればどこでも動作可能。
  • ソルトを使用:ハッシュ化の際にソルト(乱数)を加えることで、同じパスワードでも異なるハッシュを生成。
  • 運用が軽量:比較的処理が軽く、低スペックなサーバーでも安定して動作。

デメリット

  • セキュリティの限界:ハッシュ処理のコスト(時間的負荷)が固定で、現代の高性能CPUには脆弱。
  • ブルートフォース(総当たり)攻撃に弱くなりつつある:計算が速いため、パスワードを総当たりで破る攻撃に対して十分な防御ができなくなってきている。

bcryptとは?

bcryptは、元々UNIX系のセキュリティ強化のために開発されたハッシュ関数で、現在ではパスワードハッシュの標準として広く採用されています。

特徴

  • スローハッシュ:意図的にハッシュ処理に時間をかける設計(時間コストを調整可能)。
  • 自動ソルト生成:ソルトを自動的に付加し、さらに安全性を向上。
  • 適応的セキュリティ:コンピュータの性能向上にあわせて、ハッシュ処理をより重くすることができる(cost値で調整)。
  • 多くの言語・ライブラリで標準対応:セキュリティ指針に準拠した設計。

デメリット

  • 処理がやや重い:パフォーマンスが重要な大規模システムでは工夫が必要な場合もある。

phpassとbcryptの違い(まとめ)

項目phpassbcrypt
ソルト使用○(ランダムソルト)◎(自動付加され埋め込まれる)
ハッシュの強度△(古くなってきた)◎(現代標準の強力な方式)
ハッシュ速度調整△(固定)◎(costパラメータで調整可)
セキュリティ△(中程度、ブルートフォースに弱い)◎(高い防御力)
サポート○(WordPressなどで使用)◎(WordPress 6.8以降で標準)
処理速度高速やや遅め(意図的)

なぜWordPressはbcryptに移行したのか?

近年は、ユーザー情報漏洩リスクが高まりつつあり、単なるソルト付きハッシュでは不十分とされています。phpassは、当時としては十分安全でしたが、現在のセキュリティ基準にはやや古くなっており、今後の安全性を見据えてbcryptへの移行が決定されました。

実際、他のCMS(たとえばLaravelやDjango)ではすでにbcryptArgon2が標準になっており、WordPressもその流れに合わせて進化しています。

ダウングレード時に発生する問題

6.8でハッシュ(暗号化)されたパスワードは、6.7以前のWordPressでは認識できません。これは旧バージョンがbcryptに非対応のためです。

※6.7以前から6.8にアップグレードした場合は、アップグレード後に初めてログインする時にパスワードがbcrypt化されますので、特別な操作は不要です。

具体的な症状

  • WordPress 6.8でパスワードを変更またはログイン → パスワードがbcrypt化
  • その後、6.7以前に戻す → bcryptに非対応のためログイン不可

解決策と回避法

  • パスワードの再設定:ログインできないユーザーには、「パスワードをお忘れですか?」からリセットしてもらう方法が一番安全です。
  • 管理者による対応:管理者がログインできる場合は、対象ユーザーのパスワードを管理画面から再設定することも可能です。
  • データベースの手動編集:上級者であれば、wp_usersテーブル内のuser_passカラムを手動でMD5()などで再ハッシュする方法もありますが、これは推奨されません。

ダウングレードの前に

  • ユーザーデータのバックアップは必須
  • 可能であれば、ダウングレードせず対応策を模索

まとめ

WordPress 6.8は、セキュリティ強化の観点から非常に大きな前進でしたが、旧バージョンへのダウングレード時には注意が必要です。

  • bcrypt化されたパスワードは6.7以前では認識できません
  • ログインできない場合はパスワードの再設定が必要です
  • 可能な限りダウングレードは避けるか、慎重な対応が求められます

この記事が、トラブル回避やセキュリティ理解の助けになれば幸いです。

コメント

コメントはこちらからどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です