web-dev-qa-db-ja.com

SQL Serverの「強制暗号化」と「強制プロトコル暗号化」

さまざまな設定がサーバーとクライアントの通信の動作にどのように影響するかを理解しようとしています。サーバーに、SQLサービスで使用するように構成された発行済みの交換証明書を持つ自己署名CAをインストールしました。

最初に、ルートCAがクライアントにインストールされていないときに、この接続が失敗することを確認します。しかし、私が何をしてもそれはとにかくうまくいくようです。

理由をよりよく理解するために、私はすべてのオプションとそれらが生み出すべき効果をリストアップしようとしています。しかし、私がそれを正しく理解したかどうかはわかりません...

誰かがここで不足している部分を修正して記入するのを手伝ってくれますか?


SQL Serverで "Force Encryption"設定を有効にする場合:

  • 実際には、これは私の接続文字列でEncrypt=True;TrustServerCertificate=True;を設定することと同じです。クライアントは、暗号化を使用する必要があるかどうか、およびサーバーを信頼する必要があるかどうかについては言いません。
  • このオプションは、個々のサービスインスタンスを暗号化するために使用できます。
  • CAなしの自己署名交換証明書をサポートします。

SQL Serverで "Force Protocol Encryption"設定を有効にする場合:

  • サーバー上のすべてのサービスへのすべてのクライアント接続は暗号化されます。
  • クライアントとサーバーの両方で使用できる信頼できるCAによって発行された交換証明書が必要です。

クライアントで "Force Protocol Encryption"設定を使用する場合:

  • この単一のクライアントはSSLの使用を強制し、このマシンで利用可能な信頼できるCAによって発行された交換証明書が必要です。これがないと、この接続は失敗します。

サーバーとクライアントの両方で "Force Protocol Encryption"設定を有効にする場合:

  • これは推奨されません。しかし、なぜ?何が起こり、何が失敗しますか?

サーバーで "Force Encryption"と "Force Protocol Encryption"の両方を有効にする場合:

  • これは何をもたらすのでしょうか? Force Protocol Encryptionが有効になっているときにForce Encryptionが何に設定されているかは重要ですか?
10
Andreas Zita

MicrosoftのMSDNブログには、考えられる状態とその結果を説明する表があります。

関連するクライアントのみの安全な接続に影響を与えるクライアント側の設定と接続プロパティオプションを理解するには、 SQL Serverへの安全な接続を選択的に使用する を参照してください。サーバーと他のクライアントは影響を受けません。

4
Ben Paz