データベースのユーザー名、電子メール、パスワードのフィールドを暗号化し、保存されているユーザーファイルを暗号化したい。これどうやってするの?私はGazzangなどのソフトウェアを知っており、公開されているコストがないため、毎年数千ドルの費用がかかることしかわかりません。
自分で構築できる代替ソリューションはありますかORフィールドとユーザーファイルを暗号化できるサーバー上で実行されるソフトウェアを使用しますか?
それが違いを生むかどうかはわかりませんが、私はPHP/MYSQLを使用しており、クラウドサーバーを持っています。
MySQLサーバーでの暗号化の最も簡単な方法は、ランダムに生成されたパスフレーズを使用した aes_encrypt() です。
ユーザーのパスワードは暗号化しないでください。パスワードは常にハッシュ化する必要があります。パスワードはbcryptまたはsha256を使用して保存する必要があります。
復号化する必要があるデータの暗号化:変数を使用してキーを設定します
確認する必要があるデータのソルトハッシュ(パスワード)
Salting は非常に重要です。私はこれを十分に強調することはできません。比較的安価なデバイス(約2k)を使用すると、ほとんどのアルゴで1秒に100mのハッシュを実行できます。ハイエンドのデバイス(〜6k-主に産業目的で使用)は、毎秒12億以上のハッシュを達成できます(sha、 md5、md4など)攻撃者がFPGAファームを使用している場合、1秒あたり数兆の推測が行われることはありません。統計を見ることができます ここ
Johnと最適化されていないコードを使用して、Linkedinリスト(ソルトなしのハッシュ)は、デフォルトのマングリングルールを使用して24時間未満で推定されました...ハッシュをソルトします。データベースが公開されている場合、これにより、(必ずしも)即座にアクセスを危険にさらすことなく、ユーザーにパスワードを変更するよう通知することができます。
不要な場合は保管しないでください。
これは直接の問題ではないことはわかっていますが、真剣に、それは同じくらい重要です。ある時点でデータベースが危険にさらされていると仮定すると、データがない場合は公開できません。
最後:データベースのベストプラクティスセキュリティを使用します。データを検証し、ストアドプロシージャを使用して入力を処理し、データベースアクセスログを監視および監査します。