Шифрование и SQL-сервер TLS_RSA_WITH_AES_128_GCM_SHA256

80
4

Есть ли связь между шифром TLS_RSA_WITH_AES_128_GCM_SHA256 и SQL Server?

Когда TLS_RSA_WITH_AES_128_GCM_SHA256 отключено, приложение ASP.NET не может подключиться к SQL Server. Хотя SQL Server все еще работает, SQL Server Management Studio также не может подключиться к базе данных. В SSMS отображается следующая ошибка.

Соединение было успешно установлено с сервером, но затем произошла ошибка во время процесса входа в систему. (поставщик: поставщик SSL, ошибка: 0 - на другом конце канала нет процесса.) (поставщик данных.Net SqlClient)

спросил(а) 2017-08-01T12:41:00+03:00 3 года, 2 месяца назад
1
Решение
81

В результате постепенного отказа от TLS 1.0 мы начали внедрять дополнительную безопасность на наших серверах. Прежде всего, явно отключить клиент и сервер TLS 1.0 (и SSL 1/2/3) и явно включить TLS 1.2 и 1.1. Кроме того, мы ограничиваем шифры, доступные для использования при подключении через TLS 1.2/1.1.

Мы следовали статье Remus, отправленной в письмо (https://support.microsoft.com/en-us/help/3135244/tls-1-2-support-for-microsoft-sql-server), и использовали дополнительные ресурсов, чтобы мы ничего не пропустили (это было хорошо: https://blogs.sentryone.com/aaronbertrand/tls-1-2-support-read-first/). Мы также вынудили.NET Framework использовать TLS 1. 2-> 1. 1-> 1.0 порядок поиска, добавив ключи реестра SchUseStrongCrypto на наши серверы (https://technet.microsoft.com/en-us/library/безопасность/2960358.aspx).

Несмотря на вышеизложенное, мы не смогли подключиться к экземплярам SQL 2014 или SQL 2016 в среде Windows Server 2016 при попытке подключения из среды Windows Server 2012 R2. У нас была установка SharePoint в Windows 2012 R2, которая не смогла подключиться к ее базе данных, и нам не удалось подключиться к экземплярам с SSMS на этом же сервере. Сработало подключение через SSMS с Windows 10 или другой установки сервера 2016. Здесь ошибка, которую мы получали:

sql server Номер ошибки: 10054 Уровень важности: 20 Состояние: 0

При отправке запроса на сервер произошла ошибка транспортного уровня. (поставщик: поставщик TCP, ошибка: 0 - существующее соединение было принудительно закрыто удаленным хостом).

Как только мы разрешили шифрование TLS_RSA для использования на обоих серверах, мы смогли подключиться (неважно, какой шифр мы использовали, мы использовали первый в этом списке):

TLS_RSA_WITH_AES_256_GCM_SHA384

TLS_RSA_WITH_AES_128_GCM_SHA256

TLS_RSA_WITH_AES_256_CBC_SHA256

TLS_RSA_WITH_AES_128_CBC_SHA256

TLS_RSA_WITH_AES_256_CBC_SHA

TLS_RSA_WITH_AES_128_CBC_SHA

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

ответил(а) 2017-08-10T20:57:00+03:00 3 года, 2 месяца назад
41

Прочтите поддержку TLS 1.2 для Microsoft SQL Server, укажите версию SQL Server, которую вы используете, загрузите и примените соответствующие компоненты из связанной статьи, повторите попытку:

Используйте следующую таблицу, чтобы определить, имеет ли ваша текущая версия SQL Server поддержку TLS 1.2 или вам нужно загрузить обновление, чтобы включить поддержку TLS 1.2. Используйте ссылки для загрузки в таблице, чтобы получить обновления сервера, которые применимы к вашей среде.

ответил(а) 2017-08-01T12:46:00+03:00 3 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема