sql >> データベース >  >> RDS >> Mysql

サードパーティシステムへの自動ログインのためのユーザーデータの暗号化

    データベース内のデータの暗号化に関する最大の問題に遭遇しました:

    ➽鍵はどこに保管しますか?

    暗号化はデータの保護の問題を解決することはできず、データをキーに「集中」させることしかできません。キーを保存する場所はどこでも、アプリケーションはデータを復号化できる必要があるため、攻撃者が行う可能性があります。私が知っているこの問題には2つの解決策があります:

    1. できるだけ安全な場所に鍵を置きます。つまり、サーバー上のアクセスできないディレクトリのwww-rootディレクトリの外に必ず配置する必要があります。データの重要性に応じて、暗号化を別の専用サーバーにアウトソーシングすることも検討できます。
    2. キーをまったく保存せず、ユーザーパスワードから取得します。サーバーでさえデータを復号化できないため、これが唯一の本当に安全な方法です。もちろん、短所は、ユーザーがサービスを使用するたびにパスワードを入力する必要があることです。ユーザーがパスワードを変更した場合は、すべてのデータを再暗号化する必要があります。ユーザーがパスワードを忘れると、データは失われます。

    P.S. にデータを暗号化することをお勧めします MySQL AES_ENCRYPTはIVなしでECBモードを使用するため、データベースに保存します。これにより、特定の値を検索できますが、安全性は低くなります(パスワードで検索したくないと確信しています)。




    1. Java for OS X 2013-004はSwingアプリケーションにどのように影響しますか?

    2. 動的SQLクエリでテーブル名を設定するにはどうすればよいですか?

    3. MySQLデータベースでフルネームまたはファーストネームまたはラストネームを別々の列のファーストネームとラストネームで検索する

    4. ループを使用したPHPPDO挿入