Nextcloud 管理画面警告「sodium パスワードハッシュ用の Argon2」

Nextcloudを含むサーバーを移設したら管理画面を見ると下記のような警告が表示されています

PHPのモジュール
このインスタンスには、いくつかの推奨 PHP モジュールがありません。
パフォーマンスと互換性を向上させるために、これらをインストールすることを強くお勧めします: - sodium パスワードハッシュ用の Argon2

ここで警告が表示されるSodium(libsodium)で利用される Argon2 は、現代で最も安全とされるパスワードハッシュ化アルゴリズムの一つです。2015年の Password Hashing Competition (PHC) で優勝し、現在は IETF (RFC 9106) でも標準化されています。

1. GPU/ASIC 攻撃への強い耐性(メモリハード性) 

Argon2 は、計算の際に意図的に大量のメモリ(RAM)を消費するように設計されています。 

  • 理由: 攻撃者が GPU や専用チップ(ASIC)を使って高速にパスワードを試行(総当たり攻撃)しようとしても、メモリ不足がボトルネックとなり、攻撃コストが非常に高くなります。
  • 調整可能性: 開発者は、使用するメモリ量、CPU使用時間(反復回数)、並列処理数をシステムに合わせて細かく調整できます。 

2. Sodium が採用する「Argon2id」

Sodium の最新バージョンでは、デフォルトで Argon2id という種類が使用されます。これには以下のハイブリッドな利点があります: 

  • サイドチャネル攻撃への耐性: 計算パターンの漏洩を防ぐ(Argon2i の特性)。
  • GPU攻撃への最大耐性: 大規模並列計算を困難にする(Argon2d の特性)。 

3. Sodium での利便性

Sodium(libsodium)ライブラリを使用すると、複雑な設定を意識せずに安全な実装が可能です。 

  • 自動ソルト: ハッシュ化のたびにユニークなランダム値(ソルト)を自動で生成・付与し、同じパスワードでも異なるハッシュ値になります。
  • 一貫した APIcrypto_pwhash というシンプルな API を通じて、推奨される最高レベルのセキュリティを簡単に導入できます。

このlibsodium という強力な暗号ライブラリを PHP から呼び出せるモジュールが不足しているので警告が表示されていますので、そのモジュールをインストールすると警告は解消されます

# RHEL系の場合
$ sudo dnf install php-sodium

# Ubuntuの場合
$ sudo apt update
$ sudo apt install php8.3-sodium

インストールが終了するとApache等のWEBサーバーを再起動します

$ sudo systemctl restart php-fpm
$ sudo systemctl restart httpd

\ 最新情報をチェック /