MySQLデータベースには、暗号化されていない状態にしておくことができない非常に機密性の高いデータを含める必要があります。しかし、データベースはアプリで検索可能なままである必要があります。 MySQLでの保管時の暗号化のオプションは何ですか?
私はCryptDBを調べましたが、2014年の初めからサポートされていません。また、CryptDBもJavaと自然に統合されません。CryptDBをSpringおよびEclipseで動作させるには、多くの作業が必要になる場合があります。そして、他の行レベルの暗号化方法は、誰かが提案しない限り、まだ実行可能ではないようです。
MySQLのデータベースレベルの暗号化オプションは何ですか?また、CentOS 7で実行されているMySQLデータベースに関連するファイルシステム暗号化オプションは何ですか?
MySQLデータベースは、Spring MVCアプリと排他的に対話します。
注:これはCentOS 7のみがインストールされている専用の物理ボックスで実行されているため、Windows固有のツールは使用できません。
いくつかのオプションがあります。
データベースを含むファイルを暗号化する場合は、カーネルにdm-cryptを含めて、そのようなセキュリティを提供します https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt
アプリがデータベースマシンの外部でも通信を暗号化する場合は、mysqlにすでに含まれているsslオプションを使用できます https://dev.mysql.com/doc/refman /5.6/en/ssl-connections.html
そして、mysqlがaes_encrypt のように提供する暗号化関数を使用して、オンデマンドでアプリケーションレベルと暗号データに降りることができます-functions.html
MYSQLをインストールしてWindowsサーバーで実行している場合は、TPM暗号化に加えてPINブートパスワードを使用して、BitLockerを調べます。ホストOSがWindowsでCentOSがVMの場合でも、その後、これで十分です。
静止データの暗号化があるため、クエリによってアクセスされていないサーバーディスクパーティションで静止している場合は、TPM plusでBitLockerなどのOSレベルのフルディスク暗号化を使用しますPINブートパスワードはHITECH、HIPAAなどの多くの規制により罰金.
移動中のデータと、データへのアクセスを許可するユーザーまたはアプリケーションのアクセス制御は別の話ですが、私は特に、保存データの暗号化についてその性質または同等のものについて検討します。
MariaDBは、mysqlのかなりの代替品です。バージョン10.1以降の保存データは暗号化されています。
商用製品を検討しているかどうかはわかりませんが、この製品 MyDiamo には、エンジンベースのMYSQL/MariaDB暗号化ソリューションがあります。
このアプローチの良い点は、フォーマットと順序を維持することです。これは、「検索能力」の要件に最適だと思います。また、列固有のアクセス制御、enc/decポリシーを持つことができます。
開示:私はDBセキュリティコンサルティングとして働いており、MyDiamoまたはそのバリアントを多くの場合に使用しました。