Архитектура интерфейса поставщика поддержки безопасности
В этом справочном разделе для ИТ-специалистов описаны протоколы проверка подлинности Windows, используемые в архитектуре интерфейса поставщика поддержки безопасности (SSPI).
Интерфейс поставщика поддержки безопасности Майкрософт (SSPI) является основой для проверка подлинности Windows. Приложения и службы инфраструктуры, требующие проверки подлинности, используют SSPI для предоставления.
SSPI — это реализация API универсальной службы безопасности (GSSAPI) в операционных системах Windows Server. Дополнительные сведения о GSSAPI см. в статье RFC 2743 и RFC 27444 в базе данных RFC IETF.
Поставщики поддержки безопасности по умолчанию (SSPs), которые вызывают определенные протоколы проверки подлинности в Windows, включаются в SSPI как библиотеки DLL. Эти SSPS по умолчанию описаны в следующих разделах. Дополнительные поставщики SSPI можно включить, если они могут работать с SSPI.
Как показано на следующем рисунке, SSPI в Windows предоставляет механизм, который несет маркеры проверки подлинности по существующему каналу связи между клиентским компьютером и сервером. Когда необходимо пройти проверку подлинности на двух компьютерах или устройствах, чтобы они могли безопасно взаимодействовать, запросы на проверку подлинности направляются в SSPI, которая завершает процесс проверки подлинности независимо от используемого сетевого протокола. SSPI возвращает прозрачные двоичные большие объекты. Они передаются между приложениями, в какой момент их можно передать на уровень SSPI. Таким образом, SSPI позволяет приложению использовать различные модели безопасности, доступные на компьютере или сети, не изменяя интерфейс в систему безопасности.
В следующих разделах описаны SSP по умолчанию, взаимодействующие с SSPI. SSPS используются различными способами в операционных системах Windows для повышения безопасности обмена данными в небезопасной сетевой среде.
Также включен в этот раздел:
Выбор поставщика поддержки безопасности
Поставщик поддержки безопасности Kerberos
Этот SSP использует только протокол Kerberos версии 5, реализованный корпорацией Майкрософт. Этот протокол основан на версиях RFC 4120 и черновиков рабочей группы сети. Это стандартный отраслевый протокол, который используется с паролем или смарт-картой для интерактивного входа. Это также предпочтительный метод проверки подлинности для служб в Windows.
Так как протокол Kerberos является протоколом проверки подлинности по умолчанию с Windows 2000, все доменные службы поддерживают SSP Kerberos. К этим службам относятся:
Запросы Active Directory, использующие протокол LDAP
Удаленное управление сервером или рабочей станцией, использующее службу удаленного вызова процедур
Службы печати
Проверка подлинности на сервере клиента
Удаленный доступ к файлам, использующий протокол SMB (common Internet File System или CIFS)
Управление распределенной файловой системой и реферал
Проверка подлинности в интрасети для службы IIS (IIS)
Проверка подлинности центра безопасности для безопасности протокола Интернета (IPsec)
Запросы сертификатов к службам сертификатов Active Directory для пользователей домена и компьютеров
Расположение: %Windir%\System32\kerberos.dll
Этот поставщик включен по умолчанию в версии, указанные в списке "Область применения " в начале этого раздела, а также Windows Server 2003 и Windows XP.
Дополнительные ресурсы для протокола Kerberos и SSP Kerberos
Усовершенствования Kerberos для Windows Vista
Изменения в проверке подлинности Kerberos для Windows 7
Поставщик поддержки безопасности NTLM
Поставщик поддержки безопасности NTLM (NTLM SSP) — это протокол обмена двоичными сообщениями, используемый интерфейсом поставщика поддержки безопасности (SSPI), чтобы разрешить проверку подлинности на вызовы NTLM и согласовать параметры целостности и конфиденциальности. NTLM используется везде, где используется проверка подлинности SSPI, включая проверку подлинности сервера или CIFS, проверку подлинности HTTP-переговоров (например, веб-аутентификацию в Интернете) и службу удаленного вызова процедур. Поставщик SSP NTLM включает протоколы проверки подлинности NTLM и NTLM версии 2 (NTLMv2).
Поддерживаемые операционные системы Windows могут использовать службу SSP NTLM для следующих компонентов:
Проверка подлинности клиента или сервера
Службы печати
Доступ к файлам с помощью CIFS (SMB)
Безопасная служба вызова удаленной процедуры или служба DCOM
Расположение: %Windir%\System32\msv1_0.dll
Этот поставщик включен по умолчанию в версии, указанные в списке "Область применения " в начале этого раздела, а также Windows Server 2003 и Windows XP.
Дополнительные ресурсы для протокола NTLM и SSP NTLM
Изменения проверки подлинности NTLM в Windows 7
Поставщик поддержки безопасности дайджеста
Дайджест-проверка подлинности — это отраслевый стандарт, используемый для протокола LDAP и веб-проверки подлинности. Дайджест-проверка подлинности передает учетные данные в сети в виде хэша MD5 или дайджеста сообщений.
Служба SSP дайджеста (Wdigest.dll) используется для следующих действий:
Доступ к Internet Explorer и службы IIS (IIS)
Запросы LDAP
Расположение: %Windir%\System32\Wdigest.dll
Этот поставщик включен по умолчанию в версии, указанные в списке "Область применения " в начале этого раздела, а также Windows Server 2003 и Windows XP.
Дополнительные ресурсы для протокола Дайджеста и SSP дайджеста
Поставщик поддержки безопасности Schannel
Защищенный канал (Schannel) используется для проверки подлинности на веб-сервере, например при попытке пользователя получить доступ к защищенному веб-серверу.
Протокол TLS, протокол SSL, протокол Private Communications Technology (PCT) и протокол DTLS (Datagram Transport Layer) основаны на криптографии открытого ключа. Schannel предоставляет все эти протоколы. Для всех протоколов канала SCHANNEL используется модель клиент-сервер. Schannel SSP использует сертификаты открытого ключа для проверки подлинности сторон. При проверке подлинности сторон Schannel SSP выбирает протокол в следующем порядке предпочтения:
Tls версии 1.0
Tls версии 1.1
Tls версии 1.2
Secure Socket Layer (SSL) версии 2.0
Secure Socket Layer (SSL) версии 3.0
Технология частной коммуникации (РСТ)
Обратите внимание, что по умолчанию параметр "РСТ " отключен.
Выбранный протокол является предпочтительным протоколом проверки подлинности, поддерживаемым клиентом и сервером. Например, если сервер поддерживает все протоколы Schannel и клиент поддерживает только SSL 3.0 и SSL 2.0, процесс проверки подлинности использует SSL 3.0.
DTLS используется при явном вызове приложения. Дополнительные сведения о DTLS и других протоколах, используемых поставщиком Schannel, см . в техническом справочнике по поставщику поддержки безопасности Schannel.
Расположение: %Windir%\System32\Schannel.dll
Этот поставщик включен по умолчанию в версии, указанные в списке "Область применения " в начале этого раздела, а также Windows Server 2003 и Windows XP.
Примечание.
ПРОТОКОЛ TLS 1.2 появился в этом поставщике в Windows Server 2008 R2 и Windows 7. DTLS появилась в этом поставщике в Windows Server 2012 и Windows 8.
Дополнительные ресурсы для протоколов TLS и SSL и Schannel SSP
Согласование поставщика поддержки безопасности
Простой и защищенный механизм согласования GSS-API (SPNEGO) формирует основу для SSP ведения переговоров, который можно использовать для согласования определенного протокола проверки подлинности. Когда приложение обращается к интерфейсу SSPI для выполнения входа в сеть, оно может указать SSP для обработки запроса. Если приложение указывает SSP "Согласование", он анализирует запрос и выбирает соответствующего поставщика для обработки запроса на основе политик безопасности, настроенных клиентом.
SPNEGO указывается в RFC 2478.
В поддерживаемых версиях операционных систем Windows поставщик поддержки безопасности "Согласование" выбирается между протоколом Kerberos и NTLM. Согласование выбирает протокол Kerberos по умолчанию, если этот протокол не может использоваться одной из систем, участвующих в проверке подлинности, или вызывающее приложение не предоставило достаточно информации для использования протокола Kerberos.
Расположение: %Windir%\System32\lsasrv.dll
Этот поставщик включен по умолчанию в версии, указанные в списке "Область применения " в начале этого раздела, а также Windows Server 2003 и Windows XP.
Дополнительные ресурсы для SSP "Согласование"
[MS-SPNG]: простой и защищенный механизм согласования GSS-API (SPNEGO)
[MS-N2HT]: согласование и спецификация протокола проверки подлинности HTTP Nego2
Поставщик поддержки безопасности учетных данных
Поставщик службы безопасности учетных данных (CredSSP) предоставляет взаимодействие с пользователем единого входа при запуске новых сеансов служб терминалов и служб удаленных рабочих столов. CredSSP позволяет приложениям делегировать учетные данные пользователей с клиентского компьютера (с помощью клиентского SSP) на целевой сервер (через серверный SSP) на основе политик клиента. Политики CredSSP настраиваются с помощью групповой политики, а делегирование учетных данных по умолчанию отключено.
Расположение: %Windir%\System32\credssp.dll
Этот поставщик включается по умолчанию в версии, указанные в списке "Область применения" в начале этого раздела.
Дополнительные ресурсы для SSP учетных данных
[MS-CSSP]: спецификация протокола поддержки безопасности учетных данных (CredSSP)
Поставщик служб безопасности учетных данных и единый вход для входа в службы терминалов
Поставщик поддержки безопасности расширений
Extensions (NegoExts) — это пакет проверки подлинности, который согласовывает использование SSPS, отличных от NTLM или протокола Kerberos, для приложений и сценариев, реализованных корпорацией Майкрософт и другими компаниями по программному обеспечению.
Это расширение для пакета "Согласование" позволяет выполнять следующие сценарии:
Доступность полнофункционированного клиента в федеративной системе. Доступ к документам можно получить на сайтах SharePoint, и их можно изменить с помощью полнофункциональных Приложение Office ликации Майкрософт.
Многофункциональная поддержка клиентов для служб Microsoft Office. Пользователи могут войти в службы Microsoft Office и использовать полнофункциональное Приложение Office ликацию Майкрософт.
Размещен Microsoft Exchange Server и Outlook. Доверие к домену не установлено, так как Exchange Server размещен в Интернете. Outlook использует службу Windows Live для проверки подлинности пользователей.
Расширенная доступность клиента между клиентскими компьютерами и серверами. Используются сетевые компоненты и компоненты проверки подлинности операционной системы.
Пакет Windows Negotiate обрабатывает SSP NegoExts таким же образом, как и для Kerberos и NTLM. NegoExts.dll загружается в локальный системный центр (LSA) при запуске. При получении запроса проверки подлинности на основе источника запроса NegoExts ведет переговоры между поддерживаемыми SSPS. Он собирает учетные данные и политики, шифрует их и отправляет эти сведения в соответствующий поставщик служб SSP, где создается маркер безопасности.
SSPs, поддерживаемые NegoExts, не являются автономными SSPS, такими как Kerberos и NTLM. Поэтому в поставщике SSP NegoExts при сбое метода проверки подлинности по какой-либо причине отображается или регистрируется сообщение об ошибке проверки подлинности. Методы повторной проверки подлинности или резервные методы проверки подлинности не возможны.
Расположение: %Windir%\System32\negoexts.dll
Этот поставщик включен по умолчанию в версии, указанные в списке "Область применения" в начале этого раздела, за исключением Windows Server 2008 и Windows Vista.
Поставщик поддержки безопасности PKU2U
Протокол PKU2U был представлен и реализован в качестве SSP в Windows 7 и Windows Server 2008 R2. Этот SSP обеспечивает одноранговую проверку подлинности, особенно через функцию совместного доступа к носителям и файлам с именем HomeGroup, которая появилась в Windows 7. Эта функция позволяет обмениваться данными между компьютерами, которые не являются членами домена.
Расположение: %Windir%\System32\pku2u.dll
Этот поставщик включен по умолчанию в версии, указанные в списке "Область применения" в начале этого раздела, за исключением Windows Server 2008 и Windows Vista.
Дополнительные ресурсы для протокола PKU2U и SSP PKU2U
Выбор поставщика поддержки безопасности
SSPI Windows может использовать любой из протоколов, поддерживаемых с помощью установленных поставщиков поддержки безопасности. Тем не менее, поскольку не все операционные системы поддерживают те же пакеты SSP, что и любой компьютер под управлением Windows Server, клиентов и серверов, должны договориться об использовании протокола, который они оба поддерживают. Windows Server предпочитает клиентские компьютеры и приложения использовать протокол Kerberos, надежный протокол на основе стандартов, когда это возможно, но операционная система продолжает разрешать клиентские компьютеры и клиентские приложения, которые не поддерживают протокол Kerberos для проверки подлинности.
Прежде чем проверка подлинности будет проходить, два компьютера связи должны согласиться с протоколом, который они оба могут поддерживать. Для использования любого протокола через SSPI каждый компьютер должен иметь соответствующий SSP. Например, для клиентского компьютера и сервера для использования протокола проверки подлинности Kerberos они должны поддерживать Kerberos версии 5. Windows Server использует функцию EnumerateSecurityPackages , чтобы определить, какие SSPS поддерживаются на компьютере и какие возможности этих SSPs являются.
Выбор протокола проверки подлинности можно обрабатывать одним из следующих двух способов:
Единый протокол проверки подлинности
Если на сервере указан один допустимый протокол, клиентский компьютер должен поддерживать указанный протокол или сбой связи. Если указан единый допустимый протокол, обмен проверкой подлинности выполняется следующим образом:
Клиентский компьютер запрашивает доступ к службе.
Сервер отвечает на запрос и указывает протокол, который будет использоваться.
Клиентский компьютер проверяет содержимое ответа и проверяет, поддерживает ли он указанный протокол. Если клиентский компьютер поддерживает указанный протокол, проверка подлинности продолжается. Если клиентский компьютер не поддерживает протокол, проверка подлинности завершается ошибкой, независимо от того, разрешен ли клиентский компьютер для доступа к ресурсу.
Параметр "Согласование"
Параметр согласования можно использовать, чтобы разрешить клиенту и серверу пытаться найти приемлемый протокол. Это основано на простом и защищенном механизме согласования GSS-API (SPNEGO). Когда проверка подлинности начинается с параметра согласования протокола проверки подлинности, обмен SPNEGO выполняется следующим образом:
Клиентский компьютер запрашивает доступ к службе.
Сервер отвечает со списком протоколов проверки подлинности, которые он может поддерживать и вызов проверки подлинности или ответ на основе протокола, который является его первым выбором. Например, сервер может перечислить протокол Kerberos и NTLM и отправить ответ проверки подлинности Kerberos.
Клиентский компьютер проверяет содержимое ответа и проверяет, поддерживает ли он любой из указанных протоколов.
Если клиентский компьютер поддерживает предпочтительный протокол, проверка подлинности продолжается.
Если клиентский компьютер не поддерживает предпочтительный протокол, но поддерживает один из других протоколов, перечисленных сервером, клиентский компьютер позволяет серверу знать, какой протокол проверки подлинности он поддерживает, и проверка подлинности продолжается.
Если клиентский компьютер не поддерживает ни один из перечисленных протоколов, обмен проверкой подлинности завершается сбоем.