Web アプリに AES-256 ビット暗号化を実装しています。
http://www.utoxin.name/2009/07/automatic-db-field-encryption-in-cakephp/
ステップの 1 つは、使用する暗号とキーをブーストラップ ファイルに保存することを示しています。しかし、誰かが PS などでファイル システムをスキャンしてデータを復号化するのを止めているのは何ですか?
データを保護する最善の方法は何ですか?
Web アプリに AES-256 ビット暗号化を実装しています。
http://www.utoxin.name/2009/07/automatic-db-field-encryption-in-cakephp/
ステップの 1 つは、使用する暗号とキーをブーストラップ ファイルに保存することを示しています。しかし、誰かが PS などでファイル システムをスキャンしてデータを復号化するのを止めているのは何ですか?
データを保護する最善の方法は何ですか?
誰かがサーバーのハード ドライブ上のすべてのファイルにアクセスできる場合、すべての賭けは無効になります。その場合、Web アプリケーションは引き続きデータにアクセスできる必要があるため、データを保護する方法はありません。
この暗号化は、データベースにアクセスできる攻撃者からのみ保護しますが、SQL インジェクションなどのファイル システムにはアクセスできません。その場合でも、データを読み取ることができる場合があります。特定のリークによっては、Web アプリケーションが喜んでデータを復号化する可能性があります。
(これは昔からの質問だと思いますが、リンクされたブログ投稿の著者として、コメントを追加したかったのです)
受け入れられた答えが言うことはすべて正しいです。ファイルシステムが危険にさらされると、保護はありません。また、はい、書き方が悪いと、データが暗号化されていない形式で公開される可能性があります。このツールは、データベース内のデータの暗号化をより簡単に処理する方法を提供することを目的としていました。自動復号化機能が気に入らない場合は、ビヘイビアーの afterFind() コールバックを削除して、それがトリガーされないようにするだけでなく、セキュリティを向上させる可能性のあるその他の調整をいくつでも削除するのは簡単です (コストを犠牲にして)。快適)。
これが、この投稿に出くわした他の誰かに役立つことを願っています. この質問から私のブログにいくつかのヒットがあったので、誰かが持っています。:)
Unixボックスでは、apacheのユーザーアカウントによって作成されたファイルに、0600パーミッションで保存できます。これはルートからアクセスできるので、ボックスが安全であれば問題ありません。Windows ボックスではわかりません。