0

Web には、このテクノロジの基本を示す多くの投稿があります。データはクライアント以外のあらゆる場所で暗号化され、列暗号化キー (CEK) を使用してクライアントがデータを暗号化または復号化します。

  1. CEK はクライアント マシンに保存されますか? アプリケーションの接続文字列で? クライアント(=従業員)から見えますか?たとえば、新しい秘書を雇った場合、彼は機密 (および暗号化された) データにアクセスできる必要があります。彼に新しいラップトップを渡し、読み取り/書き込み権限を付与し、新しいラップトップにアプリケーションをインストールします。他に何をしますか? CEKとは何かを彼に「伝える」?CEK をレジストリのどこかに保存しますか?

  2. 列マスター キー (CMK) の役割: 新しい CEK を作成し、紛失した場合にそれらを復元するには? システム全体の鍵を、許可された 1 人だけが保持できるようにするには?

4

1 に答える 1

3

列暗号化キー (CEK) は、実際にはデータと共に SQL Server に格納されますが、列マスター キー (CMK) なしでは使用できません。クライアント アプリケーションがデータを復号化するために必要なのは CMK です。CMK は、クライアント マシンの Windows 証明書ストアまたは Azure Key Vault に格納できます。

SSMS で「列の暗号化」ウィザードを使用すると、両方のタイプのキーが生成されます。CMK (Windows 証明書ストアまたは Azure Key Vault) を保持する場所を尋ねられ、暗号化された列ごとに 1 つの CEK を持つか、すべての列で共有される単一の CEK を持つかを選択できます。また、既存の CMK があればそれを再利用することもできます。

データを復号化する必要があるアプリケーションは、CMK にアクセスする必要があり (これについては後で詳しく説明します)、接続文字列に次のように追加する必要があります。

Column Encryption Setting=Enabled;

この設定は、必要に応じてプログラムで変更することもできます。

connStringBuilder.ColumnEncryptionSetting = SqlConnectionColumnEncryptionSetting.Enabled;

アプリケーションが CMK にアクセスする方法は、保存場所によって異なります。

  • CMK が Windows 証明書ストアに格納されている場合、Always Encrypted が有効なドライバーがそれを自動的に取得します (CEK には、それを使用するために必要な CMK の詳細が含まれています)。

  • CMK が Azure Key Vault に格納されている場合は、Azure Key Vault プロバイダーを登録するためにいくつかの変更が必要です。

私は Windows 証明書ストアを使用していませんが、既存のコンピューターのストアから CMK をエクスポートし、それを新しいコンピューターのストアにインポートすることで、新しいコンピューターに暗号化された列へのアクセスを許可すると思います。

于 2016-06-10T12:43:04.623 に答える