PHPでAES暗号化を使用する場合はどこ1は、暗号鍵を保存する必要がありますか?
質問
私は自分のWebアプリでAES-256ビットencrpytionを実装しています:
ます。http://www.utoxin。名前/ 2009/07 /自動-DB-フィールド・暗号化・イン・CakePHPの/ の
ステップの1つは、ブートストラップファイルで使用される暗号と鍵を格納すると言います。しかし、何がPSか何かでファイルシステムをスキャンしてデータを復号化するから誰かを停止していますか?
データを保護するための最良の方法は何ですか?
解決
誰かがあなたのサーバーのハードドライブ上のすべてのファイルへのアクセス権を持っている場合、全てのベットはオフになっています。あなたのWebアプリケーションはまだそれにアクセスできるようにするために持っているので、あなたが、あなたのデータを保護することができます方法はありません。
この暗号化は、例えば、データベースではなく、ファイルシステムにアクセスすることができ、攻撃者からあなたを守りますSQLインジェクションによる。そして、その場合でも、彼らはデータを読み取ることができる可能性があります!特定のリークに応じて、Webアプリケーションは喜んで彼らのためにそれを解読するかもしれません。
他のヒント
(私はこれは古代の問題であると認識が、リンクされたブログ記事の著者として、私はいくつかのコメントを追加したい)
どのような受け入れ答えの言うことはすべて正しいです。ファイルシステムが危険にさらされると何ら保護がありません。下手に書かれた場合にも、はい、暗号化されていない形式でデータを公開することが可能です。このツールは、単にそれがはるかに簡単にデータベース内のデータの暗号化を処理できるようにする方法を提供することを意図しました。あなたは、自動復号化機能を好きではない場合、行動にafterFind()コールバックを削除するには些細なことであろうとそれはもはやトリガ、などのコストでセキュリティを向上させることができ、他の調整の任意の数(便利)。
私がこのポストを越えつまずく誰に役立ちます願っています。私はこの質問から私のブログにカップルのヒットを得たので誰かが、持っています。 :)
UNIXマシン上では、0600 permisionsで、Apacheのユーザーアカウントによって作成されたファイルの中にそれを格納することができます。これは、ルートによってアクセスすることができ、そのボックスは、それが何のproblem.Onウィンドウボックスがない安全です場合、私は知りません。