WordPressの認証Cookie内のusername(個人識別情報)を暗号化することで、セキュリティを向上させるプラグインです。
- 透明な動作: 既存のWordPress認証フローに影響なし、ユーザー体験の変更なし
- 高性能: 同一プロセス内でのキャッシュ機能により95%のパフォーマンス改善を実現
- 強力な暗号化: Sodium ChaCha20-Poly1305(認証付き暗号化)を使用
- Core統合準備: WordPressコアへの統合を想定した最小限の変更設計
- WordPress: 5.0以上
- PHP: 7.4以上
- PHP拡張: Sodium(PHP 7.2+で標準搭載)
- プラグインファイルを
/wp-content/plugins/wp10-auth-cookie-encryption/にアップロード - WordPress管理画面でプラグインを有効化
wp-config.phpに暗号化キーを追加:
define('AUTH_COOKIE_KEY', 'your-secret-encryption-key-here');プラグインを初めて有効化する際は、全ユーザーの強制再ログインが必要です。
データベースから全ユーザーのセッション情報を削除してください:
DELETE FROM wp_usermeta WHERE meta_key = 'session_tokens';または、WP-CLIを使用する場合:
wp user meta delete --all --key=session_tokens上記の方法が使用できない場合は、wp-config.php の認証キーを変更することでも強制ログアウトできます:
define( 'AUTH_KEY', '新しいランダムな文字列' );
define( 'SECURE_AUTH_KEY', '新しいランダムな文字列' );
define( 'LOGGED_IN_KEY', '新しいランダムな文字列' );
define( 'NONCE_KEY', '新しいランダムな文字列' );
define( 'AUTH_SALT', '新しいランダムな文字列' );
define( 'SECURE_AUTH_SALT', '新しいランダムな文字列' );
define( 'LOGGED_IN_SALT', '新しいランダムな文字列' );
define( 'NONCE_SALT', '新しいランダムな文字列' );新しいキーは WordPress.org Secret Key Generator で生成できます。
注意: 認証キー変更はパスワードリセットを要求する場合があるため、セッショントークン削除を推奨します。
- アルゴリズム: Sodium ChaCha20-Poly1305(認証付き暗号化)
- エンコード: Base64URL
- 識別子:
:(コロン) - Nonceサイズ: 24バイト(ランダム生成)
username|expiration|token|hmac
:暗号化文字列|expiration|token|hmac
- 暗号化: ログイン時のみ実行(軽微な影響)
- 復号化: リクエスト毎に実行、但しキャッシュ機能により最適化
- 改善効果: 同一リクエスト内で95%の処理時間削減
- 個人識別情報: Cookieに含まれるusernameを暗号化
- プライバシー: ネットワーク傍受からの保護
- 認証情報: より強固なCookieベース認証
以下のWordPress認証Cookieが対象となります:
| Cookie名 | 用途 | 影響 |
|---|---|---|
wordpress_ |
HTTP認証 | username部分が暗号化 |
wordpress_sec_ |
HTTPS認証 | username部分が暗号化 |
wordpress_logged_in_ |
ログイン状態 | username部分が暗号化 |
症状: 管理画面に「暗号化キーが定義されていません」と表示
解決: wp-config.phpにAUTH_COOKIE_KEYを追加
症状: 管理画面に「Sodium拡張が必要です」と表示
解決: サーバー管理者にPHP Sodium拡張の有効化を依頼
症状: プラグイン有効化後にログインできない
解決:
- プラグインを一時的に無効化
- 認証キーを更新して強制ログアウト実行
- プラグインを再有効化
- Sodium拡張が必須(PHP 7.2+で標準搭載)
- 暗号化キー未設定時は機能無効
- 既存の平文Cookieとの混在期間あり
- 初回導入時は全ユーザーの再ログインが必要
- 暗号化キー変更時も全ユーザーの再ログインが必要
- サーバー間でのキー同期が必要(マルチサーバー環境)
プラグインは以下のWordPressフィルターを使用します:
auth_cookie: Cookie生成時の暗号化処理wp_parse_auth_cookie_username: Cookie解析時の復号化処理
このプラグインはWordPressコアへの統合を想定して設計されています:
- 最小変更: コアへの変更は1行のフィルター追加のみ
- 完全互換: 既存機能への影響なし
- 拡張性: 他のセキュリティプラグインも同じフィルターを活用可能
GPL v2 or later
技術的な質問や問題報告は、プラグインの公式リポジトリまでお願いします。
注意: このプラグインは認証Cookieのセキュリティを向上させますが、HTTPS通信、強力なパスワード、定期的なセキュリティ更新など、総合的なセキュリティ対策の一部として使用してください。