Real AES
Encryptモジュール向けにDefuse PHP-Encryptionライブラリを使用した認証付きAES-256暗号化メソッドを提供するセキュリティモジュール。
real_aes
インストール
composer require 'drupal/real_aes:8.x-2.6'
概要
Real AESは、DrupalのEncryptモジュール用の暗号化メソッドプラグインを提供するモジュールです。このプラグインは、業界標準のAES-256暗号化をCBCモードで提供し、HMAC認証によるデータ整合性検証機能を備えています。
暗号化処理には、セキュリティ研究者Taylor HornbyとScott Arciszewskiによって開発・保守されているDefuse PHP-Encryptionライブラリを使用しています。このライブラリは、暗号化のベストプラクティスに従って設計されており、暗号化処理を正しく実装するための信頼性の高いソリューションです。
認証付き暗号化(Authenticated Encryption)により、暗号文のデータ整合性が保証されます。復号時にはまず整合性チェックが実行され、チェックが通過した場合にのみ復号処理が実行されます。これにより、CBCモードでのAESに対する特定の暗号文攻撃を防止できます。
Features
- AES-256暗号化(CBCモード)による強力なデータ保護機能の提供
- HMAC認証によるデータ整合性検証(認証付き暗号化)
- Defuse PHP-Encryptionライブラリによる安全で信頼性の高い暗号化実装
- 256ビット暗号化キーサイズの自動検証機能
- Encryptモジュールとのシームレスな統合
Use Cases
個人情報の暗号化保存
ユーザーの氏名、住所、電話番号などの個人情報をデータベースに暗号化して保存します。Field EncryptモジュールとReal AESを組み合わせることで、特定のフィールドのデータを自動的に暗号化・復号できます。これにより、データベースが漏洩した場合でも個人情報が保護されます。
機密文書の保護
契約書、財務データ、医療記録などの機密文書を暗号化して保存します。Keyモジュールでファイルプロバイダーを使用し、暗号化キーをWebルート外の安全な場所に保存することで、セキュリティレベルを高めることができます。
Webフォームデータの暗号化
お問い合わせフォームやアンケートで収集したデータを暗号化保存します。Webform Encryptモジュールと組み合わせることで、フォーム送信データを自動的に暗号化し、データベースでの保存時のセキュリティを確保できます。
APIトークン・認証情報の保護
サードパーティサービスのAPIキーやアクセストークンを暗号化して保存します。Encryptモジュールのプログラマティックなインターフェースを使用して、設定に保存されたシークレット情報を暗号化できます。
GDPR/個人情報保護法への対応
GDPRやその他の個人情報保護法では、個人データの適切な技術的保護措置が求められます。Real AESによる強力な暗号化は、これらの規制要件への対応策の一つとして活用できます。
Tips
- 本番環境では、キープロバイダーとして「Configuration」を使用しないでください。データベースにキーが保存されるため、セキュリティリスクがあります。代わりに「File」プロバイダーを使用し、キーファイルをWebルート外に保存してください。
- 暗号化キーは必ずランダムに生成してください。推測可能なパスワードやフレーズをキーとして使用しないでください。
- キーファイルのバックアップを安全な場所に保管してください。キーを失うと、暗号化されたデータを復号できなくなります。
- キーファイルには適切なファイルパーミッションを設定し、Webサーバーのみがアクセスできるようにしてください(例: chmod 600)。
- 暗号化を有効にする前に、必ずデータのバックアップを取ってください。暗号化処理中に問題が発生した場合に備えるためです。
Technical Details
Hooks 1
hook_requirements
Defuse PHP-Encryptionライブラリがインストールされているかをチェックし、ステータスレポートに表示します。
Troubleshooting 4
Composerでモジュールをインストールしていない可能性があります。「composer require drupal/real_aes」を実行して、モジュールとその依存関係を正しくインストールしてください。
暗号化キーのサイズが256ビットではありません。Keyモジュールでキーを作成する際に、キーサイズとして「256」を選択してください。既存のキーを使用している場合は、256ビット(32バイト)のキーを再生成してください。
同じ暗号化キーが使用されていることを確認してください。キーが変更されたり、異なるキーを使用すると復号に失敗します。また、暗号化されたデータが途中で変更・破損していないことを確認してください。
ステータスレポート(/admin/reports/status)でDefuse PHP-Encryptionライブラリのインストール状態を確認してください。「Not Installed」と表示される場合は、Composerで依存関係を再インストールしてください。
Security Notes 4
- Real AESはAES-256暗号化とHMAC認証を組み合わせた認証付き暗号化を提供します。これにより、暗号文の改ざんを検出できます。
- 暗号化キーはモジュールのセキュリティの根幹です。キーの管理には十分な注意を払ってください。
- このモジュールはDrupalのセキュリティカバレッジの対象です。セキュリティ脆弱性が発見された場合、Drupalセキュリティチームによって対応されます。
- 暗号化はセキュリティの一層であり、これだけでは完全なセキュリティを保証しません。適切なアクセス制御、安全なサーバー設定、定期的なセキュリティ更新と組み合わせて使用してください。