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

MySQLに機密データを保存するための最良の方法は何ですか?

    真剣に、 MySQLのaes_encrypt()を使用しないでください これは、ブロック暗号を使用する最も安全でない方法です。 ECBモードを使用しているので、これが重大な間違いである理由を簡単に例証できます。

    プレーンテキストメッセージ:

    ECBモードで暗号化された同じメッセージ(使用する暗号は関係ありません):

    CBCモードを使用したまったく同じメッセージ(ここでも、使用する暗号は関係ありません):

    さらに多くの理由があります mysqlのaes_encryptを使用しないでください。特に、送信するすべてのクエリには、使用するaesキーも含まれます。データベースが侵害された場合、攻撃者はログを有効にし、aesキーを取得して、データベース全体を復号化します。 。

    では、すべきこと あなたが使う? このクラス 当面。 String2Key関数とIVでCBCモードを使用します。主キーをIVとして使用できます。各メッセージには、一意のIVが必要です。攻撃者がIVを知っていて、それらがシーケンシャルである場合、ブロック暗号の実装が安全である限りは問題ありません。 IVを再利用すると、WEPの安全性が大幅に低下します



    1. コマンドラインで外部キーチェックを無効にする

    2. Node.js MySQLモジュールのmysql.createConnectionとmysql.createPoolの違いは何ですか?

    3. MySQLでのgroup_concat_max_lenの最大許容値はいくつですか?

    4. ハウツー:検索結果のランキング