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


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

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

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

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

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

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

Параметр «Принудительное шифрование протокола» на клиенте

Параметр «Доверять сертификату сервера» на клиенте

Строка соединения или атрибут соединения «Шифрование/использовать шифрование для данных»

Строка соединения или атрибут соединения «Надежный сертификат сервера»

Результат

Нет

Отсутствует

Нет (по умолчанию)

Не учитывается

Шифрование отсутствует.

Нет

Отсутствует

Да

Нет (по умолчанию)

Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка соединения завершается неудачно.

Нет

Отсутствует

Да

Да

Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера.

Да

Нет

Не учитывается

Не учитывается

Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка соединения завершается неудачно.

Да

Да

Нет (по умолчанию)

Не учитывается

Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера.

Да

Да

Да

Нет (по умолчанию)

Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка соединения завершается неудачно.

Да

Да

Да

Да

Шифрование производится всегда, однако при этом может быть использован самозаверяющий сертификат сервера.

SQL Server Native Client OLE DB Provider

Поставщик OLE DB для собственного клиента SQL Server поддерживает шифрование без проверки путем добавления свойства инициализации источника данных SSPROP_INIT_TRUST_SERVER_CERTIFICATE, которое реализовано в наборе свойств DBPROPSET_SQLSERVERDBINIT. Кроме того, добавлено новое ключевое слово строки соединения «TrustServerCertificate». Оно принимает значения «yes» и «no», значение по умолчанию — «no». При использовании компонентов службы оно принимает значения true и false, значение по умолчанию — 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». Оно принимает значения «yes» и «no», значение по умолчанию — «no».

См. также

Другие ресурсы

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