Безопасность транспорта и цифровые сертификаты
В этой статье описаны сведения о протоколах TLS и цифровых сертификатах.
Транспортный уровень безопасности (TLS)
Протоколы TLS и SSL находятся между уровнем протокола приложения и уровнем TCP/IP, где они могут защитить и отправить данные приложения на транспортный уровень. Протоколы TLS/SSL используют алгоритмы из набора шифров для создания ключей и шифрования информации. Клиент и сервер согласовывают версию протокола и набор шифров, которые будут использоваться для шифрования во время начального этапа подключения (предварительного входа) при создании подключения. Наиболее высокая поддерживаемая версия TLS всегда предпочтительна при рукопожатии TLS. Сведения о версиях протоколов TLS, поддерживаемых различными версиями операционных систем Windows, см. в статьях "Протоколы TLS/SSL" (Schannel SSP). Сообщалось о нескольких известных уязвимостях по протоколу SSL и более ранним версиям TLS. Рекомендуется обновить протокол TLS 1.2 для безопасного взаимодействия.
SQL Server может использовать TLS для шифрования данных, передаваемых через сеть между экземпляром SQL Server и клиентским приложением. TLS использует сертификат для реализации шифрования.
Шифрование TLS позволяет повысить безопасность данных, передаваемых между экземплярами SQL Server и приложениями, расположенными в разных сетях. Однако, если весь трафик между SQL Server и клиентским приложением шифруется с помощью TLS, требуется следующая дополнительная обработка:
- Во время подключения требуется дополнительный обход сети.
- Пакеты, отправленные из приложения в экземпляр SQL Server, должны быть зашифрованы стеком TLS клиента и расшифровываются стеком TLS сервера.
- Пакеты, отправленные из экземпляра SQL Server в приложение, должны быть зашифрованы стеком TLS сервера и расшифровываются стеком TLS клиента.
Это важно
Начиная с SQL Server 2016 (13.x), Secure Sockets Layer (SSL) был упразднен. Вместо этого используйте TLS (TLS 1.2). Дополнительные сведения см. в статье KB3135244 — поддержка TLS 1.2 для Microsoft SQL Server. SQL Server 2022 предоставляет поддержку TLS 1.3. Дополнительные сведения см. в разделе поддержки TLS 1.3. Если между клиентским и серверным компьютерами отсутствуют соответствующие протоколы, вы можете столкнуться с ошибкой существующее соединение было принудительно закрыто удаленным узлом.
Общие сведения о цифровом сертификате
Цифровые сертификаты — это электронные файлы, которые работают как сетевой пароль для проверки удостоверения пользователя или компьютера. Они используются для создания зашифрованного канала, используемого для обмена данными с клиентами. Сертификат — это цифровая инструкция, выданная центром сертификации (ЦС), которая отвечает за удостоверение владельца сертификата и позволяет сторонам безопасно взаимодействовать с помощью шифрования.
Цифровые сертификаты предоставляют следующие службы:
- Шифрование: они помогают защитить данные, которые обмениваются от кражи или изменения.
- Проверка подлинности. Они проверяют, что их владельцы (люди, веб-сайты и даже сетевые устройства, такие как маршрутизаторы) действительно кто или что они утверждают. Как правило, проверка подлинности является односторонней, где источник проверяет личность получателя, но также возможна взаимная проверка подлинности с использованием TLS.
Сертификат содержит открытый ключ и подключает этот открытый ключ к удостоверению пользователя, компьютера или службы, содержащей соответствующий закрытый ключ. Открытые и закрытые ключи используются клиентом и сервером для шифрования данных перед передачей. Для пользователей, компьютеров и служб Windows доверие к удостоверяющему центру (ЦС) устанавливается при определении корневого сертификата в хранилище доверенных корневых сертификатов, а сертификат содержит допустимый путь сертификации. Сертификат считается допустимым, если он не был отменен (он не находится в списке отзыва сертификатов ЦС или CRL) или истек срок действия.
Три основных типа цифровых сертификатов описаны в следующей таблице:
Тип | Описание | Преимущества | Недостатки |
---|---|---|---|
Самоподписанный сертификат | Сертификат подписан приложением, создающим его или созданным с помощью New-SelfSignedCertificate. | Стоимость (бесплатная) | — Сертификат автоматически не доверяется на клиентских компьютерах и мобильных устройствах. Сертификат необходимо добавить вручную в хранилище доверенных корневых сертификатов на всех клиентских компьютерах и устройствах, но не все мобильные устройства позволяют изменять хранилище доверенных корневых сертификатов. — Не все сервисы работают с самозаверяющимися сертификатами. — Сложно установить инфраструктуру для управления жизненным циклом сертификатов. Например, самозаверяющий сертификат нельзя отменить. |
Сертификат, выданный внутренним ЦС | Сертификат выдан инфраструктурой открытых ключей (PKI) в вашей организации. Примером является служба сертификатов Active Directory (AD CS). Дополнительные сведения см. в разделе "Общие сведения о службах сертификатов Active Directory". | — позволяет организациям выдавать собственные сертификаты. — менее дорого, чем сертификаты от коммерческих центров сертификации. |
— повышенная сложность развертывания и обслуживания PKI. — Сертификат не автоматически доверяется клиентскими компьютерами и мобильными устройствами. Сертификат необходимо добавить вручную в хранилище доверенных корневых сертификатов на всех клиентских компьютерах и устройствах, но не все мобильные устройства позволяют изменять хранилище доверенных корневых сертификатов. |
Сертификат, выданный коммерческим ЦС | Сертификат приобретается у доверенного коммерческого Центра сертификации. | Развертывание сертификатов упрощается, так как все клиенты, устройства и серверы автоматически доверяют сертификатам. | Стоимость. Необходимо заранее спланировать, чтобы свести к минимуму количество необходимых сертификатов. |
Чтобы доказать, что владелец сертификата является тем, кто они утверждают, сертификат должен точно определить владельца сертификата другим клиентам, устройствам или серверам. В следующей таблице описаны три основных метода.
Метод | Описание | Преимущества | Недостатки |
---|---|---|---|
Соответствие объекта сертификата | Поле субъекта сертификата содержит общее имя узла. Например, сертификат, выданный www.contoso.com , может быть использован на веб-сайте https://www.contoso.com . |
— Совместимо со всеми клиентами, устройствами и службами. -Компартментализация. Отзыв сертификата для узла не влияет на другие узлы. |
— необходимое количество сертификатов. Сертификат можно использовать только для указанного узла. Например, вы не можете использовать сертификат www.contoso.com для ftp.contoso.com , даже если службы установлены на одном сервере.-Сложность. На веб-сервере каждый сертификат требует собственной привязки IP-адресов. |
Сопоставление альтернативного имени субъекта сертификата (SAN) | Помимо поля субъект, поле Альтернативное имя субъекта сертификата содержит список различных имен узлов. Рассмотрим пример.www.contoso.com ftp.contoso.com ftp.eu.fabrikam.net |
-Удобство. Один и тот же сертификат можно использовать для нескольких узлов в нескольких отдельных доменах. — Большинство клиентов, устройств и служб поддерживают сертификаты SAN. — аудит и безопасность. Вы точно знаете, какие узлы могут использовать сертификат SAN. |
- Требуется больше планирования. При создании сертификата необходимо указать список узлов. - Отсутствие структурированной сегментации. Вы не можете выборочно отозвать сертификаты для некоторых указанных узлов, не затрагивая все узлы в сертификате. |
Совпадение сертификата с подстановочным знаком | Поле субъекта сертификата содержит общее имя как подстановочный знак (*) плюс один домен или поддомен. Например, *.contoso.com или *.eu.contoso.com . Подстановочный *.contoso.com сертификат можно использовать для:www.contoso.com ftp.contoso.com mail.contoso.com |
Гибкость. Вам не нужно предоставлять список узлов при запросе сертификата и использовать сертификат для любого количества узлов, которые могут потребоваться в будущем. | — Нельзя использовать подстановочные сертификаты с другими доменами верхнего уровня (TLD). Например, нельзя использовать подстановочный *.contoso.com сертификат для *.contoso.net хостов.— Можно использовать только субдоменные сертификаты для имен узлов на уровне субдомена. Например, нельзя использовать *.contoso.com сертификат для www.eu.contoso.com . Кроме того, вы не можете использовать *.eu.contoso.com сертификат для www.uk.eu.contoso.com .— Устаревшие клиенты, устройства, приложения или службы могут не поддерживать универсальные сертификаты. — Подстановочные знаки недоступны с сертификатами расширенной проверки (EV). - Требуется тщательное аудит и контроль. Если wildcard-сертификат скомпрометирован, это влияет на все узлы в указанном домене. |