2

クライアント用にASP.netWebアプリケーションを作成しています。これは組織でホストされます(この要件は必須です)。要件の1つは、データベース内のデータを保護して、内部管理者とDBAがサーバーにアクセスしたり、DBのバックアップを取得したりした場合にデータを表示できないようにすることです。

私はLinq-to-SQLとADO.NETを使用してデータベースをクエリしています。

データベースに含まれるデータを保護するためのベストプラクティスと考えられるものは何ですか?

私が検討しているオプションの1つは、データの保護を処理するために、アプリケーションのビジネス層とデータアクセス層の間に暗号化/復号化層を追加することです。

このアプローチにより、データベースのパフォーマンスとアプリケーションのパフォーマンスが低下するのではないかと心配しています。

任意のアイデアや提案を歓迎します。

PS。すばやく簡単に実装できるオプションの方がさらに優れています;-)

4

1 に答える 1

1

Windows2008またはWindows2008R2(またはVistaまたは7)を使用していると仮定します。

データベース内のデータを暗号化しないでください。暗号化するとパフォーマンスが低下し(カタツムリの速度の点まで)、データベースの多くの機能が失われます。

BitLockerまたはEFSを使用して暗号化します(EFSを使用すると、データベースファイルのみを暗号化でき、セットアップと保守が簡単です。暗号化証明書をバックアップすることを忘れないでください)。

EFS:

管理者がWindowsバックアップを使用してのみバックアップできるようにします(wbadminを使用したコマンドラインで十分です。これも提供できます)。ボリューム全体をバックアップすることをお勧めします。

これらのバックアップ管理者は、SQL Server 2008が実行されているものとは別の資格情報を使用してそのマシンにログインし、暗号化キーにアクセスしたり、インストールしたりしてはなりません。

バックアップ管理者は、暗号化されたファイルをそのままバックアップできますが、Windowsバックアップはバックアップ形式としてVHDを使用するため(ファイルはNTFSボリューム上にあり、これらの秘密の証明書で暗号化されているため)、それらにアクセスすることはできません。

データベースにログインしてデータを読み取り/ダンプする権限を付与しないことを忘れないでください。この設定をテストし、回復を実行します(準備ができていないと、暗号化されたデータは簡単に失われます)。

于 2012-03-18T10:35:15.023 に答える