Поделиться через


Использование шифрования без проверки

SQL Server всегда шифрует сетевые пакеты, связанные со входом в систему. Если сертификат не был подготовлен на сервере при запуске, SQL Server создает самозаверяющий сертификат, который используется для шифрования пакетов входа.

Приложения могут также запрашивать шифрование всего сетевого трафика путем использования ключевых слов строк соединения или свойств соединения. Ключевыми словами являются "Encrypt" для ODBC и OLE DB при использовании строки поставщика с IDbInitialize::Initialize, или "Использовать шифрование для данных" для ADO и OLE DB при использовании строки инициализации с IDataInitialize. Это также может быть настроено диспетчером конфигурации SQL Server с помощью параметра принудительного шифрования протокола . По умолчанию шифрование всего сетевого трафика для подключения требует подготовки сертификата на сервере.

Дополнительные сведения о ключевых словах строки подключения см. в разделе "Использование ключевых слов строки подключения" с собственным клиентом SQL Server.

Чтобы включить шифрование, используемое, если сертификат не подготовлен на сервере, диспетчер конфигурации SQL Server можно использовать для задания параметров шифрования протокола Принудительного шифрования и сертификата сервера доверия . В этом случае шифрование будет использовать самозаверяющий сертификат сервера без проверки, если на сервере не подготовлен проверяемый сертификат.

Приложения также могут использовать ключевое слово TrustServerCertificate или связанный с ним атрибут подключения, чтобы гарантировать, что выполняется шифрование. Параметры приложения никогда не снижают уровень безопасности, заданный диспетчером конфигурации клиента SQL Server, но могут укрепить его. Например, если принудительное шифрование протокола не задано для клиента, приложение может запросить шифрование. Чтобы гарантировать шифрование, даже если сертификат сервера не подготовлен, приложение может запросить шифрование и TrustServerCertificate. Однако если параметр TrustServerCertificate не включен в конфигурации клиента, все равно требуется подготовленный сертификат сервера. В следующей таблице описаны все случаи:

Параметр «Принудительное шифрование протокола» на клиенте Параметр «Доверять сертификату сервера» на клиенте Строка соединения или атрибут соединения «Шифрование/использовать шифрование для данных» Строка соединения или атрибут соединения «Надежный сертификат сервера» Результат
нет Не применимо Нет (по умолчанию) Проигнорировано Шифрование не выполняется.
нет Не применимо Да Нет (по умолчанию) Шифрование происходит только в том случае, если есть проверяемый сертификат сервера, в противном случае попытка подключения завершается ошибкой.
нет Не применимо Да Да Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера.
Да нет Проигнорировано Проигнорировано Шифрование происходит только в том случае, если есть проверяемый сертификат сервера, в противном случае попытка подключения завершается ошибкой.
Да Да Нет (по умолчанию) Проигнорировано Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера.
Да Да Да Нет (по умолчанию) Шифрование происходит только в том случае, если есть проверяемый сертификат сервера, в противном случае попытка подключения завершается ошибкой.
Да Да Да Да Шифрование всегда происходит, но может использовать самозаверяющий сертификат сервера.

Поставщик OLE DB для собственного клиента SQL Server

Поставщик OLE DB собственного клиента SQL Server поддерживает шифрование без проверки путем добавления свойства инициализации источника данных SSPROP_INIT_TRUST_SERVER_CERTIFICATE, которое реализуется в наборе свойств DBPROPSET_SQLSERVERDBINIT. Кроме того, добавлено новое ключевое слово строки подключения TrustServerCertificate. Он принимает да или нет значений; значение по умолчанию не является значением по умолчанию. При использовании компонентов службы он принимает истинные или ложные значения; Значение false — значение по умолчанию.

Дополнительные сведения о усовершенствованиях, внесенных в набор свойств DBPROPSET_SQLSERVERDBINIT, см. в разделе "Инициализация" и "Свойства авторизации".

Драйвер ODBC для собственного клиента SQL Server

Драйвер ODBC собственного клиента SQL Server поддерживает шифрование без проверки путем добавления функций SQLSetConnectAttr и SQLGetConnectAttr . SQL_COPT_SS_TRUST_SERVER_CERTIFICATE был добавлен для принятия SQL_TRUST_SERVER_CERTIFICATE_YES или SQL_TRUST_SERVER_CERTIFICATE_NO с SQL_TRUST_SERVER_CERTIFICATE_NO значением по умолчанию. Кроме того, добавлено новое ключевое слово строки подключения TrustServerCertificate. Он принимает да или нет значений; "нет" — это значение по умолчанию.

См. также

Компоненты собственного клиента SQL Server