Сводка SQL Server и шифрования клиентов
В этой статье приводится сводка различных сценариев и связанных процедур для включения шифрования для SQL Server а также проверка работы шифрования.
Шифрование всех подключений к серверу (шифрование на стороне сервера)
Тип сертификата | Принудительное шифрование в свойствах сервера | Импорт сертификата сервера на каждом клиенте | Параметр сертификата сервера доверия | Свойство Encrypt в строке подключения | Комментарии |
---|---|---|---|---|---|
Самозаверяющий сертификат — автоматически создается SQL Server | Да | Не удается сделать | Да | Не учитывается | SQL Server 2016 (13.x) и более ранних версиях используется алгоритм SHA1. SQL Server 2017 (14.x) и более поздних версиях используется SHA256. Дополнительные сведения см. в статье Изменения алгоритма хэширования для самозаверяющего сертификата в SQL Server 2017 г. Мы не рекомендуем использовать этот подход для использования в рабочей среде. |
Самозаверяющий сертификат, созданный с помощью New-SelfSignedCertificate или makecert — вариант 1 | Да | Нет | Да | Не учитывается | Мы не рекомендуем использовать этот подход для использования в рабочей среде. |
Самозаверяющий сертификат, созданный с помощью New-SelfSignedCertificate или makecert — вариант 2 | Да | да | Необязательно | Не учитывается | Мы не рекомендуем использовать этот подход для использования в рабочей среде. |
Сервер сертификатов компании или из центра сертификации (ЦС), который отсутствует в списке участников — доверенные корневые программы Майкрософт — вариант 1 | Да | Нет | Да | Не учитывается | |
Сервер сертификатов компании или из центра сертификации (ЦС), который отсутствует в списке участников — доверенные корневые программы Майкрософт — вариант 2 | Да | да | Необязательно | Не учитывается | |
Доверенные корневые центры | Да | Нет | Необязательно | Не учитывается | Мы рекомендуем использовать такой подход. |
Шифрование подключений из определенного клиента
Тип сертификата | Принудительное шифрование в свойствах сервера | Импорт сертификата сервера на каждом клиенте | Указание параметра сертификата сервера доверия на клиенте | Вручную укажите для свойства шифрования значение Да/True на стороне клиента. | Комментарии |
---|---|---|---|---|---|
Самозаверяющий сертификат — автоматически создается SQL Server | Да | Не удается сделать | Да | Не учитывается | SQL Server 2016 (13.x) и более ранних версиях используется алгоритм SHA1. SQL Server 2017 (14.x) и более поздних версиях используется SHA256. Дополнительные сведения см. в статье Изменения алгоритма хэширования для самозаверяющего сертификата в SQL Server 2017 г. Мы не рекомендуем использовать этот подход для использования в рабочей среде. |
Самозаверяющий сертификат, созданный с помощью New-SelfSignedCertificate или makecert — вариант 1 | Нет | Нет | Да | Да | Мы не рекомендуем использовать этот подход для использования в рабочей среде. |
Самозаверяющий сертификат, созданный с помощью New-SelfSignedCertificate или makecert — вариант 2 | Нет | да | Необязательно | Да | Мы не рекомендуем использовать этот подход для использования в рабочей среде. |
Сервер сертификатов компании или ЦС, который отсутствует в списке участников — доверенные корневые программы Майкрософт — вариант 1 | Нет | Нет | Да | Да | |
Сервер сертификатов компании или ЦС, который отсутствует в списке участников — доверенные корневые программы Майкрософт — вариант 2 | Нет | да | Необязательно | Да | |
Доверенные корневые центры | Нет | Нет | Необязательно | Да | Мы рекомендуем использовать такой подход. |
Как определить, работает ли шифрование?
Вы можете отслеживать обмен данными с помощью такого средства, как Сетевой монитор Майкрософт или сетевой sniffer, и проверить сведения о пакетах, захваченных в средстве, чтобы убедиться, что трафик зашифрован.
Кроме того, можно проверить состояние шифрования SQL Server подключений с помощью команд Transact-SQL (T-SQL). Для этого выполните следующие действия:
- Откройте новое окно запроса в SQL Server Management Studio (SSMS) и подключитесь к экземпляру SQL Server.
- Выполните следующую команду T-SQL, чтобы проверить значение столбца
encrypt_option
. Для зашифрованных подключений значениемTRUE
будет .
SELECT * FROM sys.dm_exec_connections