2012-02-13 22 views
34

ストーリーは短いので、最近当社のMySQL DBがダンプされて盗まれたという侵入がありました。エグゼクティブは現在、非常に緊張しており、他のセキュリティ対策を強化するだけでなく、DB内のすべての顧客情報(電子メールアドレス、自宅の住所、名前など)を暗号化することを意図しています。私の会社のMySQL DBの顧客情報を暗号化する最良の方法は?

これはどこから始めるべきかわかりません。私たちはPHPアプリケーションを実行します。明らかに、これは我々が最小化したいいくつかの付加的なオーバーヘッドを作り出すだろう。もう1つの懸念事項は、暗号化された新しいフィールドが使用されている場所でコードを変更することが難しいことです。

これは不必要な予防策として私に襲いかかりますが、経営陣はそれを確信しています。

どのようなタイプの暗号化アルゴリズム/方法がこのユースケースに最適でしょうか?

+8

サーバーのセキュリティを強化します。時間を過ごす。すべてのデータを暗号化するのは本当に極端なようです。プッシュバック、スーツはすべてを知っていない。 –

+4

データベースのアクセスは、モデルの低レベルの変更だけでデータを暗号化するために必要な場所に隔離する必要があります。文字通り、データレイヤー/モデル/ビジネスオブジェクトの外部にあるものは、変更する必要があります。また、データが暗号化されていることを認識する必要があります。内部ストレージが変更されたためにモデルの使用方法を変更する必要がある場合は、アプリの書き方が非常に悪いです。 – meagar

+0

最初にデータがどのように盗まれたかについて、より多くの情報を提供することに役立つかもしれません。それはコーディングの問題ですか?サーバーセットアップの問題ですか?機密データは、暗号化を使用してホワイトリストに登録されたコンピュータのみがアクセスできる別のサーバーに置くことをお勧めします。塩とハッシュを調べる。 – earthmeLon

答えて

49

ここでMySQLでこれを行う方法については、http://thinkdiff.net/mysql/encrypt-mysql-data-using-aes-techniques/という非常に良い書き方があります。

現在、優勢なベストプラクティス/標準であるAESを256ビット鍵で使用したいと考えています。 256ビットAESキーは、最新のコンピューティングパワーに対して安全であるのに十分なサイズであると考えられています。

データベースが暗号化されているかどうかにかかわらず、それが過度だと思われるかどうかにかかわらず、良い考えです。データが恐ろしいほど敏感ではないとしても、顧客レコードの紛失は、少なくともあなたの会社にとって非常に恥ずかしいものとなり、将来的に顧客の信頼と人々のデータを引き継ぐ意欲に悪影響を与える可能性があります。データベースの内容全体を暗号化することは、今のところ業界標準ではないかもしれませんが、トレンドはそのように動いており、より強固なセキュリティの姿勢を採用することはできません。それ以外の場合は、Defense-In-Depth実装の別のエントリと考えてください。

http://www.symantec.com/connect/articles/secure-mysql-database-design - あなたのアプリケーションをチェックするためのいくつかの参考になる安全なデータベースシステム設計の紹介です。

+5

この方法は非常に安全ではありません。暗号化モードがこのようなアプローチで**安全でないECBモード**に戻されるからです。 – ASBai

関連する問題