Установка безопасного подключения с проверкой подлинности
В протоколе клиентского-серверного приложения сервер привязывается к порту связи, такому как сокет или интерфейс RPC. Затем сервер ожидает, пока клиент подключится и запросит службу. В случае взаимной проверки подлинности роль безопасности при настройке подключения является двойной:
- Проверка подлинности клиента на сервере.
- Проверка подлинности сервера клиентом.
Клиентские и серверные компоненты транспортного приложения используют пакет безопасности для установления безопасного подключения для передачи сообщений. Первым шагом в установлении безопасного подключения является создание контекста безопасности; то есть непрозрачная структура данных, содержащая данные безопасности, относящиеся к подключению, например ключ сеанса и длительность сеанса.
Контекст безопасности по сути представляет собой сообщение от пакета безопасности, связанного с клиентом, к пакету безопасности, связанному с сервером. Следовательно, для создания контекста безопасности обычно требуется как клиент, так и сервер для выполнения вызовов соответствующих пакетов безопасности. Дополнительные сведения о функциях контекста см. в разделе Управление контекстом.
Протокол, используемый для установления безопасного и прошедшего проверку подлинности подключения, включает обмен одним или несколькими "маркерами безопасности" между клиентом и сервером. Эти маркеры отправляются двумя сторонами в виде непрозрачных сообщений, а также любые другие сведения, относящиеся к протоколу приложения. Как непрозрачное сообщение, маркер получается от функции пакета безопасности клиентом, который не может интерпретировать или изменить его, и пересылается в виде сообщения на сервер. Маркер также является непрозрачным для сервера, который не может ни интерпретировать, ни изменить маркер. Сервер перенаправит непрозрачный маркер в свой пакет безопасности для интерпретации. Затем пакет информирует сервер о проверке подлинности клиента или о сбое проверки подлинности.
Клиент получает маркер сервера в сообщении, извлекает маркер из полученного сообщения и использует его в вызове пакета безопасности. Затем клиент снова вызывает пакет безопасности, указывая, установлено ли безопасное подключение или требуется ли дальнейший обмен, прежде чем безопасное подключение будет готово. Теоретически количество необходимых маркеров безопасности не ограничено. На практике требуется только ограниченное количество обменов. Проверка подлинности NTLM основана на схеме запроса и ответа и использует три ногами для проверки подлинности клиента на сервере. Протокол Kerberos версии 5.0 может требовать дополнительных обменов сообщениями.
Связанные темы