Эта статья о том, что нового появилось в SQL Server Management Studio 20 (SSMS), и является второй из серии статей на эту тему. Первую статью можно почитать тут: Upcoming changes for SQL Server Management Studio (SSMS) — Part 1.Заключительной статьёй в серии является: Upcoming changes for SQL Server Management Studio (SSMS) — Part 3. SSMS 20 может удивить Вас сразу после установки, когда вдруг обнаружится что по умолчанию предполагается шифрованное соединение SSMS с сервером баз данных. На то, чтобы помочь пользователям SSMS справится с этой проблемой и добиться лучшей защиты соединения с помощью новых механизмов шифрования SQL Server 2022, как раз и направлена эта статья.

Что такое TDS, TLS и шифрование

Протокол Tabular Data Stream (TDS) — это протокол уровня приложения, используемый клиентами для подключения к SQL Server.

SQL Server использует Transport Layer Security (TLS) для шифрования данных, которые передаются по сети между экземпляром SQL Server и клиентским приложением. TLS имеет разные версии, каждая из которых имеет разные уровни безопасности и производительности. Последней версией является TLS 1.3, она была опубликована в 2018 году.

Шифрование — это процесс кодирования данных для защиты их от несанкционированного доступа. Шифрование может применяться к статичным данным (хранящимся на диске) или при передаче (передаваемых по сети).

TDS 8.0 появился для поддержки обязательного шифрования при подключениях SQL Server, а подтверждение TLS предшествует любому сообщению TDS. TDS 8.0 совместим с TLS 1.3, а также с TLS 1.2 и более ранними версиями.

Как обеспечивается шифрование в SSMS 20

SSMS 20 — это первая версия SSMS, поддерживающая строгое шифрование и TLS 1.3. Включить его можно благодаря переходу на библиотеку доступа к данным Microsoft.Data.SqlClient (MDS) 5.1.4. MDS, которая использовалась SSMS 19 и более поздними версиями, а также другими инструментами SQL Server.

Строгое шифрование — это новый вариант обеспечения шифрования, представленный в MDS 5. Чтобы использовать TLS 1.3, клиент и сервер должны его поддерживать и иметь установленный доверенный сертификат. Строгое шифрование сейчас является наиболее безопасным вариантом шифрования.

Включение шифрования для подключения к SQL Server

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

Подключение из SSMS 20

Вы можете изучить специально созданную страницу руководства: Connect with SQL Server Management Studio, которая призвана помочь сориентироваться в настройках нового диалогового окна подключения SSMS 20. Эти изменения затронут всех, кто будет подключаться к SQL Server. Настоятельно рекомендуем разобраться в том, что изменилось и как это повлияет на процесс подключения, прежде чем Вы установите себе SSMS 20.

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

Обратите внимание: по умолчанию шифрование теперь является обязательным. При использовании значения по умолчанию «Обязательное» (Mandatory), любое подключение к экземпляру SQL Server, у которого не установлен доверенный сертификат, выдаст ошибку «The certificate received from the remote server was issued by an untrusted certificate authority»:

thumbnail image 1 captioned Screenshot of error from SSMS when connecting with Mandatory encryption but no trusted certificate
Скриншот ошибки SSMS при подключении с обязательным шифрованием, но без доверенного сертификата

Дополнительную информацию можно найти в статье Ошибка «Сертификат, полученный от удаленного сервера, выдан недоверенным центром сертификации» при подключении к SQL Server.

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

Функции, которые не поддерживают строгое шифрование

Некоторые функции SQL Server не поддерживают строгое шифрование. Текущий список можно найти в TDS 8.0-SQL Server. Неподдерживаемые сценарии, специфичные для SSMS, и известные проблемы описаны в статье: Заметки о выпуске SQL Server Management Studio (SSMS).

На момент публикации список функций, не поддерживающих принудительное строгое шифрование, такой:

  1. Группы доступности AlwaysOn

  2. Экземпляр отказоустойчивого кластера AlwaysOn (FCI)

  3. Репликация SQL Server

  4. Доставка журналов

  5. Служебная программа sqlcmd

  6. bcp, программа

  7. Служба CEIP SQL Server (шпион вендора)

  8. Агент SQL Server

  9. Database Mail

  10. Связанные серверы

  11. Соединитель Polybase для SQL Server

Комментарии (1)


  1. speshuric
    01.04.2024 20:48

    На момент публикации список функций, не поддерживающих принудительное строгое шифрование, такой

    Список - вся "внутренность", накопленная за ~25 лет.