Безопасность транспорта в группах доступности и зеркальном отображении базы данных

Область применения:SQL Server

Защита транспорта подразумевает проверку подлинности и (необязательно) шифрование сообщений, которыми обмениваются базы данных. Для зеркального отображения базы данных и групп доступности Always On проверка подлинности и шифрование настраиваются на конечной точке зеркального отображения базы данных. Общие сведения о конечных точках зеркального отображения базы данных см. в разделе "Конечная точка зеркального отображения базы данных" (SQL Server).

Проверка подлинности

Проверка подлинности — это процесс проверки того, что пользователь является тем, за кого себя выдает. Подключения между конечными точками зеркального отображения базы данных требуют проверки подлинности. Запросы на соединение от партнера или свидетеля, если таковые имеются, должны проходить аутентификацию.

Тип проверки подлинности, применяемый экземпляром сервера при зеркальном отображении базы данных или для групп доступности AlwaysOn, является свойством конечной точки зеркального отображения базы данных. Для конечных точек зеркального отображения базы данных доступны два типа защиты передаваемых данных: проверка подлинности Windows (интерфейс SSPI) и проверка подлинности на основе сертификатов.

Проверка подлинности Windows

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

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

  • Если экземпляры SQL Server работают как службы под разными учетными записями домена (в одном и том же или в доверенных доменах), учетная запись для входа каждой из них должна быть создана в master на каждом из других экземпляров сервера, и этой учетной записи должны быть предоставлены разрешения CONNECT на конечной точке.

  • Если экземпляры SQL Server запускаются от имени учетной записи Network Service, то для учетной записи компьютера каждого узла (<domain-name>\<computer-name>$) необходимо создать имя входа в master на каждом другом сервере, и этому имени входа необходимо предоставить разрешения CONNECT на конечную точку. Это обусловлено тем, что экземпляр сервера, выполняемый под учетной записью Network Service, выполняет проверку подлинности с помощью учетной записи домена главного компьютера.

Примечание.

Пример настройки сеанса зеркального отображения базы данных с помощью Windows Authentication см. в примере: настройка зеркального отображения базы данных с помощью проверка подлинности Windows.

Сертификаты

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

Метод шифрования определяется при создании сертификата. Дополнительные сведения см. в разделе "Зеркальное отображение базы данных" — использование сертификатов для исходящих подключений. Внимательно управляйте сертификатами, которые вы используете.

Чтобы установить идентичность при соединении, экземпляр сервера использует закрытый ключ собственного идентификатора. Экземпляр сервера, который принимает запрос на соединение, для проверки подлинности отправителя использует открытый ключ идентификатора отправителя. Например, рассмотрим два экземпляра сервера: Server_A и Server_B. Server_A использует закрытый ключ для шифрования заголовка подключения перед отправкой запроса Server_Bна подключение. Server_B использует открытый ключ Server_Aсертификата для расшифровки заголовка подключения. Если расшифрованный заголовок корректен, Server_B знает, что заголовок был зашифрован Server_A, и соединение аутентифицировано. Если расшифрованный заголовок неверен, Server_B понимает, что запрос на подключение не является подлинным, и отклоняет подключение.

Шифрование данных

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

Примечание.

Конечные точки зеркального отображения, созданные в SQL Server Management Studio, создаются либо с обязательным шифрованием, либо с отключённым шифрованием. Чтобы изменить параметр SUPPORTEDшифрования, используйте ALTER ENDPOINT инструкцию Transact-SQL. Дополнительные сведения см. в разделе ALTER ENDPOINT.

При необходимости можно управлять алгоритмами шифрования, которые могут использоваться конечным узлом, указав одно из следующих значений для параметра ALGORITHM в инструкции CREATE ENDPOINT или ALTER ENDPOINT:

Значение ALGORITHM Описание
RC4 (по умолчанию) Указывает на то, что конечная точка должна использовать алгоритм RC4.

Предупреждение. Алгоритм RC4 не рекомендуется. Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого рекомендуется использовать алгоритм AES.
AES (рекомендуется) Указывает на то, что конечная точка должна использовать алгоритм AES.
AES RC4 Указывает, что две конечные точки согласовывают алгоритм шифрования с этой конечной точкой, предпочитая алгоритм AES.
RC4 AES Указывает, что две конечные точки согласовывают алгоритм шифрования с этой конечной точкой, предпочитая алгоритм RC4.

Если обе конечные точки указывают оба алгоритма, но в разном порядке, приоритет имеет конечная точка, принимающая соединение.

Caution

Алгоритм RC4 является относительно слабым, хотя работает значительно быстрее по сравнению с AES, в то время как AES является довольно надежным алгоритмом. Поэтому следует использовать алгоритм AES.

Алгоритм RC4 поддерживается только в целях обратной совместимости. Данные можно шифровать только с помощью RC4 или RC4_128, если база данных находится на уровне совместимости 90 или 100 (не рекомендуется). Используйте вместо этого более новые алгоритмы, например AES. В SQL Server 2012 (11.x) и более поздних версиях данные, зашифрованные с помощью RC4 или RC4_128, можно расшифровать на любом уровне совместимости.

Сведения о синтаксисе Transact-SQL для указания шифрования см. в разделе CREATE ENDPOINT.

Настройка безопасности транспорта для конечных точек зеркального отображения базы данных