Соединение с компонентом Database Engine с использованием расширенной защиты

SQL Server поддерживает расширенную защиту, начиная с версии SQL Server 2008 R2. Расширенная защита для проверки подлинности представляет собой функцию сетевых компонентов, реализуемую операционной системой. Расширенная защита поддерживается в Windows 7 и Windows Server 2008 R2. Расширенная защита включена в пакеты обновления для предыдущих версий операционных систем Майкрософт. SQL Server обеспечивает более высокий уровень защищенности, если соединение устанавливается с использованием расширенной защиты.

Важное примечаниеВажно!

В Windows Расширенная защита не включается по умолчанию. Дополнительные сведения о включении функции Расширенная защита в Windows см. в разделе Расширенная защита проверки подлинности.

Описание расширенной защиты

Расширенная защита предусматривает привязку служб и каналов для предотвращения релейных атак при проверке подлинности. Во время проведения релейной атаки при проверке подлинности клиент, который может выполнить проверку подлинности NTLM (например, через проводник Windows, Microsoft Outlook, приложение .NET SqlClient и т. д.), подключается к атакующему (например, злонамеренному файловому серверу CIFS). Атакующий использует учетные данные клиента, чтобы замаскироваться под него и пройти проверку подлинности службы (например, экземпляра службы Database Engine).

Существуют две разновидности этой атаки.

  • При заманивающей атаке клиент добровольно подключается к атакующему.

  • При атаке с подделкой пакетов клиент намеревается подключиться к достоверной службе, но не знает, что маршрутизатор DNS или IP (или оба) заражен и перенаправляет соединение к атакующему, а не к службе.

SQL Server поддерживает привязку служб и каналов, чтобы сократить возможность проведения таких атак на экземпляр SQL Server.

Привязка служб

Привязка служб направлена против заманивающих атак, требуя от клиента отправки подписанного имени участника-службы (SPN) для службы SQL Server, с которой клиент пытается соединиться. При обработке ответа проверки подлинности служба проверяет, совпадает ли полученное в пакете имя участника-службы с ее собственным именем участника-службы. Если имеет место заманивающая атака, то клиент включит подписанное имя участника-службы атакующего. Атакующий не сможет передать этот пакет, чтобы пойти проверку подлинности как клиент в реальной службе SQL Server, поскольку он включает имя участника-службы атакующего. Привязка служб требует небольших разовых затрат, но не противодействует атакам с подделкой пакетов. Привязка службы производится, когда клиентское приложение не использует шифрования при подключении к SQL Server.

Привязка каналов

Привязка канала устанавливает защищенный канал (Schannel) между клиентом и экземпляром службы SQL Server. Служба проверяет подлинность клиента, сравнивая его токен привязки данного канала (СВТ) со своим собственным маркером СВТ. Привязка канала противодействует как заманивающим атакам, так и атакам с подделкой пакетов. Однако она требует более значительных затрат времени выполнения из-за шифрования системой защиты на транспортном уровне (TLS) всего трафика сеанса. Привязка каналов производится, когда клиентское приложение использует шифрование при подключении к SQL Server.

Поддержка операционных систем

Дополнительные сведения о поддержке расширенной защиты в ОС Windows можно найти по следующим ссылкам:

Параметры

Имеются три параметра соединения SQL Server, влияющие на привязку служб и привязку каналов. Эти параметры можно настроить с помощью диспетчера конфигурации SQL Server или с помощью WMI, для их просмотра можно воспользоваться аспектом Параметры протокола сервера управления на основе политик.

  • Принудительное шифрование

    Возможные значения — Вкл. и Выкл.. Для использования привязки каналов параметр Принудительное шифрование должен быть установлен в значение Вкл. и все клиенты должны принудительно выполнять шифрование. При значении Выкл. гарантируется только привязка служб. Параметр Принудительное шифрование — это один из флажков на вкладке Свойства протоколов для MSSQLSERVER (вкладка «Флаги») в диспетчере конфигурации SQL Server.

  • Расширенная защита

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

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

    • Если задано Разрешено, функция Расширенная защита требуется для соединений от операционных систем, поддерживающих функцию Расширенная защита. Расширенная защита не используется для подключений из операционных систем, не поддерживающих расширенную защиту. Соединения незащищенных клиентских приложений, выполняемых на защищенных клиентских операционных системах, отклоняются. Этот параметр обеспечивает более высокий уровень защиты, чем Выкл, но, тем не менее, не обеспечивает самый высокий уровень защиты. Рекомендуется использовать этот параметр в смешанной среде, где определенные операционные системы поддерживают функцию Расширенная защита, а некоторые нет.

    • Если выбрано Обязательно, то будут приниматься только соединения от защищенных приложений на защищенных операционных системах. Этот параметр обеспечивает наиболее высокий уровень защиты, но из операционных систем, которые не поддерживают расширенную защиту, нельзя будет подключиться к SQL Server.

  • Принятые имена участников-служб NTLM

    Переменная Принятые имена участников-служб NTLM необходима в том случае, когда для сервера известно более одного имени участника-службы. Когда клиент попытается подключиться к серверу с допустимым именем участника-службы, которое неизвестно серверу, то привязка службы завершится ошибкой. Чтобы избежать этого, пользователь может указать несколько имен участников-служб, представляющих сервер, с помощью параметра Принятые имена участников-служб NTLM. Переменная Принятые имена участников-служб NTLM содержит последовательность имен участников-служб, перечисленных через точку с запятой. Например, чтобы разрешить имена участников-служб MSSQLSvc/ HostName1.Contoso.com и MSSQLSvc/ HostName2.Contoso.com, введите MSSQLSvc/HostName1.Contoso.com;MSSQLSvc/HostName2.Contoso.com в поле Принятые имена участников-служб NTLM. Максимальная длина этой переменной 2 048 символов. Параметр Принятые имена участников-служб NTLM находится на дополнительной вкладке Свойства протоколов для MSSQLSERVER в диспетчере конфигурации SQL Server.

Включение расширенной защиты для компонента Database Engine

Чтобы обеспечить расширенную защиту, и на клиенте и на сервере должна работать операционная система, поддерживающая расширенную защиту. Кроме того, должно быть включено использование расширенной защиты. Дополнительные сведения о включении расширенной защиты в операционной системе см. в разделе Расширенная защита при проверке подлинности.

SQL Server поддерживает расширенную защиту начиная с версии SQL Server 2008 R2. Расширенная защита для некоторых предыдущих версий SQL Server будет доступна в следующих выпусках. После включения расширенной защиты на компьютере сервера выполните следующие шаги, чтобы включить расширенную защиту в SQL Server 2008 R2.

  1. В меню Пуск выберите последовательно Все программы, Microsoft SQL Server и Диспетчер конфигурации SQL Server.

  2. Разверните узел Конфигурация сети SQL Server, щелкните правой кнопкой мыши Протоколы для <Имя_экземпляра>, а затем выберите пункт Свойства.

  3. Для привязки каналов и служб на вкладке Дополнительно установите значение Расширенная защита для соответствующих параметров.

  4. Кроме того, если сервер имеет несколько имен участников-служб, то на вкладке Дополнительно настройте поле Принятые имена участников-служб NTLM, как описано в разделе «Параметры».

  5. Для привязки канала на вкладке Флаги установите параметр Принудительное шифрование в значение Вкл..

  6. Перезапустите службу Database Engine.

Настройка других компонентов SQL Server

Дополнительные сведения о настройке служб Службы Reporting Services см. в разделе Расширенная защита для проверки подлинности служб Reporting Services.

При использовании IIS для получения доступа к данным Службы Analysis Services по соединению с протоколами HTTP или HTTPS службы Службы Analysis Services могут использовать расширенную защиту, реализуемую IIS. Дополнительные сведения о настройке IIS для использования расширенной защиты см. в разделе Настройка расширенной защиты в IIS 7.5.