- •Aaa в сетях подвижной радиосвязи
- •Рис 1.1. Агентская последовательность
- •2. Radius Основные положения
- •Архитектура radius
- •Общая схема взаимодействия при использовании протокола radius
- •Алгоритмы аутентификации, авторизации и учета radius Базовая схема работы протокола
- •Взаимодействие с технологиями рар и chap
- •Работа посредников (прокси) в протоколе radius
- •Протокол учета radius (radius Accounting)
- •3. Реализация ааа в различных сетях aaa-сервер в ims сети
- •Aaa-сервер в WiMax сети
- •Функциональность современного aaa-сервера
Взаимодействие с технологиями рар и chap
Механизмы аутентификации PAP (Password Authentication Protocol) [60], CHAP (Challenge Handshake Authentication Protocol) [69], а позже - EAP (Extensible Authentication Protocol) [11], были специально разработаны для проведения процедуры аутентификации на участке «пользователь - NAS- сервер». При этом в протокол RADIUS были включены специальные атрибуты [67], [68], которые позволяют прозрачно передавать пользовательские параметры от NAS-сервера на RADIUS-сервер.
При использовании протокола РАР сервер доступа NAS принимает PAP ID и пароль, передавая их в запросе Access-Request на RADIUS-сервер в полях атрибутов User-Name и User-Password.
Использование протокола CHAP считается более безопасным методом аутентификации, в силу того, что пароль пользователя не передается в этом случае по сети. Для его реализации NAS-сервер генерирует случайное число - challenge (предпочтительно длиной - 16 байтов) и отправляет его пользователю, который генерирует и возвращает СНАР-отклик вместе с CHAP ID и CHAP username.
После этого NAS-сервер передает запрос Access-Request к RADIUS-серверу с атрибутом User-Name, содержащим значение CHAP username, и атрибут CHAP-Password с параметрами CHAP ID и СНАР-отклик.
На основании атрибута User-Name сервер RADIUS определяет пароль для пользователя, шифрует значение Challenge, применяя алгоритм MD5 к октету CHAP ID, найденному паролю и CHAP Challenge (из атрибута CHAP-Challenge) и сравнивает полученные результаты с атрибутом CHAP-Password. При совпадении сервер возвращает на NAS-сервер сообщение Access-Accept, в противном случае - Access-Reject. Если сервер RADIUS не способен выполнить запрошенную аутентификацию, он отправляет пакет Access-Reject. Например, требуется, чтобы пользовательский пароль был доступен серверу в открытом виде для шифрования CHAP challenge и сравнения с откликом CHAP. Если правила защиты, установленные в сети, не позволяют использовать незашифрованный пароль, то сервер RADIUS возвращает клиенту сообщение Access-Reject.
Рис. 2.5. Аутентификация при работе технологии CHAP
Работа посредников (прокси) в протоколе radius
Мы рассмотрели работу RADIUS в обычном режиме взаимодействия с клиентами (например, NAS). Теперь, обсудим режим посредника (прокси), когда RADIUS-сервер принимает от клиентов запросы аутентификации и пересылает их дальше другому RADIUS-серверу, а, получив отклик, направляет его обратно отправителю (NAS-серверу).
Наиболее часто посредники (прокси) используются для организации роуминга между Операторами. В этой ситуации в одном сеансе связи несколько Операторов связи принимают ряд запросов не только от своих пользователей, но и от клиентов своих партнеров, которые необходимо обрабатывать и переправлять дальше.
Работа RADIUS-сервера в режиме прокси достаточно проста. NAS передает к RADIUS-серверу запрос Access-Request, который переправляется удаленному серверу. Последний в зависимости от результата прохождения операции аутентификации возвращает ответ. В сообщении обязательно присутствует атрибут User- Name, который может содержать идентификатор NAI (Network Access Identifier) для работы с RADIUS-прокси. Выбор сервера, к которому будут пересылаться запросы, следует производить на основе областей аутентификации (authentication realm). Наименование области аутентификации может быть геа1т-частью NAI. Кроме того возможен выбор сервера для пересылки на основе других параметров, например, Called-Station-ld (numbered realm). На практике чаще всего используется named realm, когда имя пользователя указывает на сервер для пересылки. Наиболее простой метод - это использование имени с явным указанием области, например, master@protei. Значение после @ указывает, к какому серверу необходимо пересылать запросы.
RADIUS-сервер может работать одновременно и в режиме посредника (прокси), и в качестве самостоятельно сервера - обработчика сообщений. Режим выбирается в зависимости от области аутентификации. В нашем примере это может выглядеть так: для локальных пользователей в именах не используется символ Втаком случае пользователь, который проходит аутентификацию локально, будет иметь имя master, а пользователь, запросы которого необходимо пересылать, - master@protei. Сервер RADIUS может использоваться для пересылки запросов неограниченному числу удаленных серверов. Отвечающий сервер также может принимать запросы от неограниченного числа посредников.
В стандартизующих документах предусмотрена ситуация, при которой посреднику (прокси) разрешено пересылать запрос другому посреднику (прокси), однако, этого не рекомендуется делать во избежание образования петель и увеличения времени аутентификации. Рассмотрим процесс обмена сообщениями более подробно (рис. 2.6).
NAS передает посреднику запрос Access-Request, в который могут быть включены атрибуты Proxy-State. Сервер-посредник (прокси) должен трактовать эти атрибуты как нераспознаваемые данные (opaque data).
Возможная зависимость функционирования сервера-посредника от содержимого этих атрибутов недопустима. Если данный атрибут имеется в запросе, то посредник должен включить его и в отклик. При передаче запроса на следующий узел эти атрибуты могут быть включены в него, или не включены, однако изменять их посредник не имеет права. Прокси-сервер может добавить в пакет новый атрибут Proxy-State. При добавлении новый атрибут должен помещаться после уже имеющихся атрибутов Proxy-State, изменение порядка любых однотипных атрибутов для сервера-посредника недопустимо.
Рис. 2.6. Использование посредника (прокси) в работе RADIUS
При передаче запроса от NAS-сервера посредник (прокси) с помощью известного ему ключа расшифровывает значение атрибута User-Password (если он присутствует). Если в пакете имеется атрибут CHAP-Password и нет атрибута CHAP-Challenge, то сервер должен сохранить значение Request-Authenticator или скопировать его значение в создаваемый им самим атрибут CHAP-Challenge.
Пересылающий прокси-сервер шифрует User-Password с использованием известного ему разделяемого ключа для удаленного сервера, устанавливает значение поля Identifier и передает пакет Access-Request удаленному серверу. Удаленный сервер (если он является конечным узлом для данного пакета) проверяет достоверность идентификатора пользователя с помощью User-Password, Chap-Password или другого метода, определяемого будущими расширениями протокола, и возвращает Access-Accept, Access-Reject или Access-Challenge на прокси-сервер. Он должен также скопировать в ответ все атрибуты Proxy-State из запроса с сохранением их порядка.
Прокси производит проверку с использованием разделяемого ключа значение Response-Authenticator и в случае несовпадения отбрасывает его без уведомления. При успешной проверке он удаляет последний атрибут Proxy-State, если он был добавлен, подписывает Response-Authenticator в соответствии с разделяемым ключом, используемым с NAS-сервером, восстанавливает Identifier в соответствии с исходным запросом и передает его NAS.
Пересылающему серверу (прокси) может потребоваться изменение атрибутов в соответствии с локальной политикой, однако эти вопросы выходят за пределы стандарта и зависят от политики защиты, принятой в сети. Единственное ограничение, накладываемое на атрибуты Proxy-State, State и Class, - изменять их посреднику (прокси) недопустимо.