Ошибки Radius-сервера
Коды причины завершения сеанса:
| № | Причина | Описание |
| 1 | User Request | Прекращение сеанса по инициативе пользователя (например с помощью LCP Terminate или выхода из сети – log out). |
| 2 | Lost Carrier | На порту был сброшен сигнал DCD (детектирование несущей). |
| 3 | Lost Service | Сервис больше не предоставляется (например, разорвано соединение пользователя с хостом). |
| 4 | Idle Timeout | Истекло время допустимого бездействия (Idle timer). |
| 5 | Session Timeout | Достигнута максимальная продолжительность сеанса. |
| 6 | Admin Reset | Сессия или порт сброшены администратором. |
| 7 | Admin Reboot | Администратор прекратил обслуживание пользователей NAS (например, для перезагрузки NAS). |
| 8 | Port Error | Сервер NAS обнаружил для порта ошибку, потребовавшую разрыва сессии. |
| 9 | NAS Error | Сервер NAS обнаружил (не связанную с портом), потребовавшую разрыва сессии. |
| 10 | NAS Request | Сервер NAS завершил сессию по неизвестной причине. |
| 11 | NAS Reboot | Сервер NAS завершил сессию для аварийной перезагрузки. |
| 12 | Port Unneeded | Сервер NAS завершил сессию потому, что уровень использования ресурсов слишком мал (например, в случаях выделения полосы по запросу реально достижимая скорость позволяет отключить один из портов). |
| 13 | Port Preempted | Сервер NAS завершил сеанс для предоставления порта пользователю с более высоким приоритетом. |
| 14 | Port Suspended | Сервер NAS завершил сеанс для прерывания виртуальной сессии. |
| 15 | Service Unavailable | Сервер NAS не может предоставить запрошенный сервис. |
| 16 | Callback | Сервер NAS прерывает текущую сессию для организации обратного соединения (callback). |
| 17 | User Error | Ошибка в полученных от пользователя данных, вызвавшая прекращение сеанса. |
| 18 | Host Request | Нормальное завершение сеанса хостом. |
Бесплатное подключение к интернет. Провайдер м. Войковская (районы Войковский, Коптево), м. Дмитровская, м. Тимирязевская (район Дмитровский), м. Печатники (район Печатники). Интернет по доступным ценам для частных лиц и организаций на улицах Большая Академическая, Михалковская, Нарвская, Коптевская, на улице Гурьянова и на всех других улицах, перечисленных районов.
Информационная безопасность и защита информации (архив ИПМ бакалавры 2010-2021г, Богомолов)
8 Лекция. Протоколы AAA
Протоколы AAA
AAA ( Authentication, Authorization, Accounting ) — используется для описания процесса предоставления доступа и контроля за ним.
Рис. Для чего нужен протокол AAA
Представьте организацию (например университет) с множеством систем (серверы, АТС, WI-FI, здания, помещения и т.д.). Необходимо регистрировать в каждой системе одного и того-же пользователя. Чтобы этого не делать, ставится сервер AAA и все пользователи регистрируются только в нем. Все системы организации обращаются к серверу AAA.
Основные протоколы AAA:
Наибольшее распространение получил RADIUS ему на смену создан DIAMETER. Закрытые протоколы не выдерживают конкуренции.
RADIUS ( Remote Authentication in Dial-In User Service )
Протокол опубликован в 1997, был опубликован как RFC 2058 и RFC 2059.
Последние версии (2012) RFC 2865 (rus PDF) и RFC 2866 (rus PDF).
Основные особенности:
Рис. Запрос клиента и варианты ответа сервера RADIUS
Пользователь посылает свои данные для аутентификации и авторизации серверу (FTP,POP,WWW,PROXY и т.д.), такие серверы называются Network Access Server (NAS).
Сервер NAS и сервер RADIUS используют общий секретный ключ (для аутентификации друг друга, и хэширования открытых паролей пользователей).
NAS (клиент) формирует запрос серверу RADIUS Access Request, сервер RADIUS может ответить:
Ответ Access-Challenge может использоваться для посылки случайного числа пользователю, для дальнейшего хеширования его с паролем (см. CHAP).
При выполнении всех условий в отклик Access-Accept включается список всех конфигурационных параметров для данного пользователя.
К таким параметрам относятся тип сервиса (например, SLIP, PPP, Login User) и все требуемые для предоставления этого сервиса значения.
Для протоколов SLIP и PPP могут включаться такие параметры, как
Взаимодействие с PAP и CHAP
CHAP
DIAMETER
Таблица. Сравнение протоколов Diameter и RADIUS
Транспортный протокол
Ориентированные на соединение протоколы (TCP и SCTP)
Протокол без установления соединения (UDP)
Защита
Hop-to-Hop, End-to-End
Hop-to-Hop
Поддерживаемые агенты
Relay, Proxy, Redirect, Translation
Полная поддержка, означающая, что поведение агента может быть реализовано на RADIUS-сервере
Возможности по согласованию
Согласовывает поддерживаемые приложения и уровень безопасности
Не поддерживается
Обнаружение узлов
Статическая конфигурация и динамическое обнаружение
Статическая конфигурация
Сообщение инициации сервера
Поддерживается. Например, сообщение повторной аутентификации, завершения сессии
Не поддерживается
Максимальный размер данных атрибутов
16,777,215 октетов
255 октетов
Поддержка сторонних производителей
Поддерживает сторонние атрибуты и сообщения
Поддерживает только сторонние атрибуты
LDAP ( Lightweight Directory Access Protocol )
Облегченный (относительно DAP) протокол для доступа к службе каталогов X.500 (http://ru.wikipedia.org/wiki/X.500).
Cлужба каталогов — это репозитарий, в котором хранится информация о людях, компьютерах, сетевых устройствах и приложениях.
Хотя LDAP и не протокол AAA, это больше «Электронный отдел кадров», но т.к. в электронной карточке сотрудника может содержаться, например, пароль, то LDAP тоже можно использовать для централизованного управления доступом.
Его можно использовать, например, для web-сайта, для аутентификации. Кроме этого, web-сайт может получить ФИО, email, телефон и д.р. информацию о пользователе из LDAP, что позволяет исключить подмену информации о себе пользователем или допустить ошибку при вводе информации пользователем, а так же уменьшает количество ручной работы по вводу информации.
Протоколы AAA такой информации не дают, но, например, коммутаторы могут работать только с RADIUS, и не могут работать с LDAP.
Примеры использования служб каталогов:
Рис. Дерево каталога LDAP (традиционное именование записей)
dc (domain component) — компонент домена
ou (organizational unit) — организационную единицу
uid (user id) — идентификатор пользователя
Имя запись пользователя напоминает записи DNS.
Так же как и DNS серверы LDAP:
Построение дерева может быть также основано на доменных именах Internet. Этот подход к именованию записей становится всё более популярным, поскольку позволяет обращаться к службам каталогов по аналогии с доменами DNS.
Рис. Дерево каталога LDAP (Internet-именование записей)
PPP Termination Causes and Code Values
When a PPP event terminates a subscriber session, causing a RADIUS Acct-Stop message to be issued, the RADIUS Acct-Terminate-Cause attribute (49) reports the cause or reason for the termination. This attribute is included only in RADIUS Acct-Stop messages. The termination cause is conveyed as a code value in the attribute. RFC 2866, RADIUS Accounting, defines the standard mapping between 18 termination causes and code values.
Junos OS defines a set of internal termination cause codes that are mapped to the RFC-defined code values. When a subscriber session is terminated, the router logs a message for the internal termination cause and logs another message for the RADIUS Acct-Terminate-Cause attribute. You can use the logged information to help monitor and troubleshoot terminated sessions.
Table 1 lists the default mapping between the internal identifier for PPP termination causes and the code values that represent them in the RADIUS Acct-Terminate-Cause attribute (49).
You can remap the internal identifiers to a custom code value in the range 1 through 4,294,967,295 by using the terminate-code statement at the [edit access] hierarchy level. You can view the current mapping by issuing the show network-access terminate-code ppp detail command.
Table 1 lists the default PPP terminate mappings. The table indicates the supported PPP terminate reasons and the RADIUS Acct-Terminate-Cause attributes they are mapped to by default.
4.5.3.1 Система аутентификации удаленных пользователей при подключении через модем RADIUS
Семенов Ю.А. (ИТЭФ-МФТИ)
Yu. Semenov (ITEP-MIPT)
(RFC-2138. Remote Authentication Dial In User Service, P. Vixie, S. Thomson, Y. Rekhter, J. Bound.)
| Введение | Работа |
| Запрос/Отклик | Работа с PAP и CHAP |
| Почему UDP? | UDP упрощает реализацию сервера |
| Формат пакета | Типы пакетов. Запрос доступа |
| Пакеты Access-Accept | Сообщение Access-Reject |
| Сообщение Access-Challenge | Атрибуты |
| Имя пользователя | Пароль пользователя |
| Атрибут CHAP-пароль | Атрибут NAS-IP-Address |
| Атрибут NAS-порт | Атрибут тип услуги (Service-Type) |
| Атрибут Framed-Protocol | Атрибут Framed-IP-Address |
| Атрибут Framed-IP-Netmask | Атрибут Framed-Routing |
| Атрибут Filter-Id | Атрибут Framed-MTU |
| Атрибут Framed-Compression | Атрибут Login-IP-Host |
| Атрибут Login-Service | Атрибут Login-TCP-Port |
| Атрибут Reply-Message | Атрибут Callback-Number |
| Атрибут Callback-Id | Атрибут Framed-Route |
| Атрибут Framed-IPX-Network | Атрибут State |
| Атрибут Class | Атрибут Vendor-Specific |
| Атрибут Session-Timeout | Атрибут Idle-Timeout |
| Атрибут Termination-Action | Атрибут Called-Station-Id |
| Атрибут Calling-Station-Id | Атрибут NAS-идентификатор |
| Атрибут Proxy-State | Атрибут Login-LAT-Service |
| Атрибут Login-LAT-Node | Атрибут Login-LAT-Group |
| Атрибут Framed-AppleTalk-Link | Атрибут Framed-AppleTalk-Network |
| Атрибут Framed-AppleTalk-Zone | Атрибут CHAP-Challenge |
| Атрибут NAS-Port-Type | Атрибут Port-Limit |
| Атрибут Login-LAT-Port | Удаленный доступ пользователя на указанную ЭВМ (Telnet) |
| Кадровая аутентификация пользователя посредством CHAP | Пользователь с картой вызова-отклика (Challenge-Response) |
| Ссылки |
1. Введение
Управление последовательных линий и модемных пулов при большом числе пользователей может потребовать весьма значительных административных усилий. Так как модемные пулы по определению являются каналами во внешний мир, они требуют особых мер безопасности. Это может быть реализовано путем поддержки единой базы данных пользователей, которая используется для аутентификации (проверке имени и пароля). Эта база данных хранит в себе и конфигурационные данные, характеризующие вид услуг, предоставляемых пользователю (например, SLIP, PPP, telnet, rlogin).
Сервер сетевого доступа NAS (Network Access Server) работает как клиент системы RADIUS (RFC-2138, 2618-2621). Клиент передает информацию о пользователе специально выделенным серверам RADIUS, и далее действует в соответствии с полученным откликом на эти данные.
Серверы RADIUS принимают запросы от пользователей, осуществляют аутентификацию и выдают конфигурационную информацию, которая необходима клиенту, чтобы предоставить пользователю запрошенный вид услуг.
Сервер RADIUS может выполнять функцию прокси-клиента по отношению к другим серверам RADIUS или прочим аутентификационным серверам.
Взаимодействие клиента и сервера RADIUS аутентифицируются с использованием общего секретного ключа (пароля), который никогда не пересылается по сети. Кроме того, каждый пароль пользователя пересылается от клиента к серверу в зашифрованном виде, чтобы исключить его перехват.
Гибкие аутентификационные механизмы
Сервер RADIUS может поддерживать несколько методов аутентификации пользователя. При получении имени пользователя и его пароля сервер может воспользоваться PPP PAP или CHAP, UNIX login, и другими аутентификационными механизмами.
Все операции подразумевают использование ансамблей атрибут-длина-значение. Новое значение атрибута может быть добавлено без редактирования существующей версии реализации протокола.
1.1. Терминология
В этом документе используются следующие термины:
Молчаливое удаление (silently discard)
| Это означает, что программа выбрасывает пакет без какой-либо обработки. Программная реализация должна предоставлять возможность диагностирования таких случаев и записи их статистики. |
2. Работа
Когда клиент сконфигурирован для использования RADIUS, любой пользователь предоставляет аутентификационные данные клиенту. Это может быть сделано с помощью традиционной процедуры login, когда пользователь вводит свое имя и пароль. В качестве альтернативы может использоваться протокол типаPPP, который имеет специальные пакеты, несущие аутентификационную информацию.
Когда клиент получил такую информацию, он может выбрать для аутентификации протокол RADIUS. Для реализации этого клиент формирует запрос доступа (Access-Request), содержащий такие атрибуты как имя пользователя, его пароль, идентификатор клиента и идентификатор порта, к которому должен получить доступ пользователь. При передаче пароля используется метод, базирующийся на алгоритме MD5 (RSA Message Digest Algorithm [1]).
Запрос Access-Request направляется по сети серверу RADIUS. Если в пределах заданного временного интервала не поступает отклика, запрос повторяется. Клиент может переадресовать запрос альтернативному серверу, если первичный сервер вышел из строя или недоступен.
Когда сервер RADIUS получил запрос, он проверяет корректность клиента-отправителя. Запрос, для которого сервер RADIUS не имеет общего секретного ключа (пароля), молча отбрасывается. Если клиент корректен, сервер RADIUS обращается к базе данных пользователей, чтобы найти пользователя, чье имя соответствует запросу. Пользовательская запись в базе данных содержит список требований, которые должны быть удовлетворены, прежде чем будет позволен доступ. Сюда всегда входит сверка пароля, но можно специфицировать клиента или порт, к которому разрешен доступ пользователя. Сервер RADIUS может посылать запросы к другим серверам, для того чтобы выполнить запрос, в этом случае он выступает в качестве клиента.
Если хотя бы какое-то условие не выполнено, сервер посылает отклик «Access-Reject» (отклонение Access-Reject текст комментария.
Если все условия выполнены, сервер может послать отклик-приглашение (Access-Challenge). Этот отклик может содержать текстовое сообщение, которое отображается клиентом и предлагает пользователю откликнуться на приглашение. Отклик-приглашение может содержать атрибут состояния (State). Если клиент получает Access-Challenge, он может отобразить текст сообщения и затем предложить пользователю ввести текст отклика. Клиент при этом повторно направляет свой Access-Request с новым идентификатором, с атрибутом пароля пользователя, замененным зашифрованным откликом. Этот запрос включает в себя атрибут состояния, содержащийся в приглашении Access-Challenge (если он там был). Сервер может реагировать на этот новый запрос откликами Access-Accept, Access-Reject, или новым Access-Challenge.
Если все условия выполнены, список конфигурационных значений для пользователя укладываются в отклик Access-Accept. Эти значения включают в себя тип услуги (например: SLIP, PPP, Login User) и все параметры, необходимые для обеспечения запрошенного сервиса. Для SLIP и PPP, сюда могут входить такие значения как IP-адрес, маска субсети, MTU, желательный тип компрессии, а также желательные идентификаторы пакетных фильтров. В случае символьного режима это список может включать в себя тип протокола и имя ЭВМ.
2.1. Запрос/Отклик
При аутентификации приглашение/отклик, пользователю дается псевдослучайное число и предлагается его зашифровать и вернуть результат. Авторизованные пользователи снабжаются специальными средствами, такими как смарт-карта или программой, которая облегчает вычисление отклика.
Пакет Access-Challenge обычно содержит сообщение-ответ, включая приглашение (challenge), которое должно быть отображено для пользователя. Обычно оно имеет форму числа и получается от внешнего сервера, который знает, какого типа аутентификатор должен быть применен для данного авторизованного пользователя и, следовательно, может выбрать псевдослучайное число заданной длины.
Пример: NAS посылает серверу RADIUS пакет Access-Request с NAS-идентификатором, NAS-портом, именем пользователя, паролем пользователя (который может быть фиксированной строкой, как приглашение «challenge», но Access-Challenge с сообщениями состояния (State) и Reply-Message вместе со строкой «Challenge 12345678, enter your response at the prompt», которую отображает NAS. NAS предлагает ввести отклик и посылает серверу новый запрос NEW Access-Request (с новым идентификатором) с NAS-идентификатором, NAS-портом, именем пользователя, паролем пользователя (отклик, введенный пользователем, шифруется) и с тем же самым атрибутом состояния, который прислан с Access-Challenge. Сервер затем присылает назад Access-Accept или Access-Reject в зависимости от того, корректен ли отклик или следует послать еще один Access-Challenge.
2.2. Работа с PAP и CHAP
Для CHAP NAS генерирует псевдослучайное приглашение (желательно 16 октетов) и посылает его пользователю, который возвращает CHAP-отклик вместе с идентификатором и именем пользователя CHAP. NAS посылает затем серверу RADIUS пакет Access-Request с именем CHAP-пользователя в качестве User-Name и с CHAP ID и CHAP-откликом в качестве CHAP-Password (атрибут 3). Случайный вызов может быть включен в атрибут CHAP-Challenge или, если он имеет длину 16 октетов, может быть помещен в поле аутентификатор запроса пакета запроса доступа. NAS может включать в себя атрибуты Service-Type = Framed-User и Framed-Protocol = PPP в качестве подсказки серверу RADIUS, указывая, что предполагается использование канала PPP.
Если сервер RADIUS не способен выполнить запрошенную аутентификацию, он должен прислать сообщение Access-Reject. Например, CHAP требует, чтобы пароль пользователя должен быть доступен серверу в открытом текстовом виде, чтобы он мог зашифровать CHAP-вызов и сравнить его с CHAP-откликом. Если пароль не доступен серверу RADIUS в таком виде, он должен послать клиенту сообщение Access-Reject.
2.3. Почему UDP?
Может возникнуть вопрос, почему RADIUS использует протокол UDP вместо TCP. UDP был выбран по чисто техническим причинам. Существует большое число моментов, которые нужно понять. RADIUS является протоколом, ориентированным на операции и имеющим ряд интересных особенностей:
| 1. | Если запрос к первичному аутентификационному серверу не прошел, он должен быть переадресован вторичному серверу. Чтобы удовлетворить этому, копия запроса должна храниться на уровне выше транспортного, с тем, чтобы позволить альтернативную попытку. Отсюда следует, что необходим таймер ретрансмиссии. |
| 2. | Временные требования данного конкретного протокола значительно отличаются от тех, которые обеспечивает TCP. |
| 3. | Природа данного протокола не требует контроля состояния, что упрощает применение протокола UDP. |
Клиенты и серверы приходят и уходят. Системы перезагружаются, а сетевое питание выключается и включается. UDP полностью исключает влияние всех этих событий на работу системы. Любой клиент и сервер может открыть UDP обмен однажды и оставлять его в таком состоянии, игнорируя какие-либо сбои в сетевой среде.
2.4. UDP упрощает реализацию сервера.
В ранних реализациях RADIUS сервер поддерживал один процесс (single threaded). Это означает, что только один запрос принимался, обрабатывался и отправлялся. Это оказалось неприемлемым для сред, где механизм обеспечения безопасности требует определенного времени (1 или более секунд). Очередь запросов в сервере будет значительной и в средах, где сотни людей требуют аутентификации каждую минуту, время обслуживания запроса становится настолько большой, что начинает нервировать пользователей. Очевидным решением проблемы является многопроцессный сервер. Достичь этого проще всего с помощью UDP. Порождаются отдельные процессы для обслуживания каждого запроса, а эти процессы могут напрямую взаимодействовать с клиентом NAS путем отправки UDP-пакета.
Это не панацея. Применение UDP требует организации повторных передач, для чего нужно на сервере запускать соответствующие таймеры. В этом UDP уступает TCP, но это небольшая плата за полученные преимущества.
3. Формат пакета
Рис. 1. Формат пакета RADIUS
Поле код содержит один октет и идентифицирует тип пакета RADIUS. Если получен пакет с неверным значением поля код, он молча отбрасывается.
Стандартизованы следующие значения поля код:
| Код | Назначение |
| 1 | Запрос доступа (Access-Request) |
| 2 | Доступ разрешен (Access-Accept) |
| 3 | Доступ не разрешен (Access-Reject) |
| 4 | Accounting-Request |
| 5 | Accounting-Response |
| 11 | Access-Challenge |
| 12 | Сервер состояния (экспериментальный) |
| 13 | Клиент состояния (экспериментальный) |
| 255 | Зарезервировано |
Коды 4 и 5 будут описаны в документе [RFC-2139]. Коды 12 и 13 зарезервированы для возможного использования.
Поле идентификатор имеет один октет, и служит для установления соответствия между запросом и откликом.
Поле аутентификатор имеет 16 октетов. Старший октет пересылается первым. Этот параметр служит для аутентификации отклика от сервера RADIUS, и используется в алгоритме сокрытия пароля.
Значение аутентификатора запроса в пакете Access-Request должно быть также непредсказуемым, чтобы исключить возможные атаки.
Хотя протокол RADIUS не может исключить всех возможных атак, в частности с использованием подключения к линии в реальном масштабе времени, но генерация псевдослучайных аутентификаторов все же обеспечивает относительную безопасность.
NAS и сервер RADIUS используют секретный пароль совместно. Этот секретный пароль и аутентификатор запроса пропускаются через хэширование MD5, чтобы получить 16-октетный дайджест, который объединяется посредством операции XOR с паролем, введенным пользователем, результат помещается в атрибут пароля пользователя пакета Access-Request.
Секретный пароль, совместно используемый клиентом и сервером RADIUS, должен быть достаточно большим и непредсказуемым, как хороший пароль. Желательно, чтобы секретный пароль имел, по крайней мере, 16 октетов. Сервер RADIUS должен использовать IP-адрес отправителя UDP-пакета, чтобы решить, какой секретный пароль использовать.
Когда используется переадресующий прокси-сервер, он должен быть способен изменять пакет при проходе в том или ином направлении. Когда прокси переадресует запрос, он может добавить атрибут Proxy-State, а при переадресации отклика, он удаляет атрибут Proxy-State. Так как ответы Access-Accept и Access-Reject аутентифицированы по всему своему содержимому, удаление атрибута Proxy-State сделает сигнатуру пакета некорректной. По этой причине прокси должен вычислить ее заново.
Многие атрибуты могут быть записаны несколько раз, в этом случае порядок следования атрибутов одного и того же типа должен быть сохранен. Порядок атрибутов различных типов может быть изменен.
В данном документе регламентированы атрибуты для пакетов с полем код, равным 1, 2, 3 и 11. Чтобы определить, какие атрибуты допускаются для пакетов с полем код=4 и 5, смотри [9].
4. Типы пакетов
Тип пакета RADIUS определяется полем тип, размещенным в первом октете.
4.1. Запрос доступа
Пакеты Access-Request посылаются серверу RADIUS, и передают информацию, которая используется для определения того, позволен ли данному пользователю доступ к специфицированному NAS, и допустимы ли запрошенные услуги. Программная реализация, желающая аутентифицировать пользователя, должна послать пакет RADIUS с кодом поля тип=1 (Access-Request).
При получении запроса (Access-Request) доступа от корректного клиента, должен быть передан соответствующий ответ. Запрос доступа (Access-Request) должен содержать атрибут имени пользователя. Он должен включать в себя атрибут NAS-IP-адреса или атрибут NAS-идентификатора (или оба эти атрибута, хотя это и не рекомендуется). Он должен содержать атрибут пароля пользователя (User-Password) или атрибут CHAP-пароля. Желательно, чтобы он содержал атрибут NAS-порта или NAS-Port-Type или оба эти атрибута, если только тип запрошенного доступа не содержал номер порта.
Значение поля аутентификатор запроса (Request Authenticator) должно изменяться, когда используется новый идентификатор.
Поле атрибуты имеет переменную длину и содержит список атрибутов, которые необходимы для заданного типа сервиса, а также любых дополнительных опционных атрибутов.
4.2. Пакеты Access-Accept
Поле идентификатор является копией одноименного поля в запросе Access-Request, который инициировал сообщение Access-Accept.
Значение поля аутентификатор отклика (Response Authenticator) вычисляется на основе значения Access-Request, как это описано выше. Поле атрибуты имеет переменную длину и содержит список из нуля или более атрибутов.
4.3. Сообщение Access-Reject
Если какое-либо значение полученного атрибута неприемлемо, тогда сервер RADIUS должен послать пакет с полем код= 3 (Access-Reject). Пакет может содержать один или более атрибутов Reply-Message с текстом, который может быть отображен NAS для пользователя. Поле идентификатор для данного пакета копируется из одноименного поля пакета Access-Request, вызвавшего данный отклик.
Значение поля аутентификатор отклика вычисляется на основе содержимого сообщения Access-Request, как это описано выше.
4.4. Сообщение Access-Challenge
Если сервер RADIUS хочет послать пользователю вызов, требующий отклика, то сервер должен реагировать на запрос Access-Request посылкой пакета с полем код =11 (Access-Challenge). Поле атрибуты может содержать один или более атрибутов Reply-Message, и может опционно включать атрибут состояния. Никакие другие атрибуты здесь не применимы.
При получении Access-Challenge, поле идентификатор соответствует содержимому пакета Access-Request. Кроме того, поле аутентификатор отклика должно содержать корректный отклик на обрабатываемый запрос Access-Request. Некорректные пакеты молча отбрасываются. Если NAS не поддерживает обмен вызов/отклик (challenge/response), он должен обрабатывать сообщение Access-Challenge, как если бы это был запрос Access-Reject.
Если сервер NAS поддерживает обмен вызов/отклик, получение корректного сообщения Access-Challenge указывает, что следует послать новый запрос Access-Request. Сервер NAS может отобразить текстовое сообщение для пользователя, если таковое имеется, а затем предложить ему ввести отклик. Затем сервер посылает исходное сообщение Access-Request с новым идентификатором запроса и аутентификатором отклика, с атрибутом пароля пользователя, содержащим зашифрованный отклик пользователя. Кроме того, это сообщение содержит атрибут состояния (State) сообщения Access-Challenge, если таковой имелся.
NAS, который поддерживает PAP может переадресовать сообщение Reply-Message клиенту, подключенному по модемному каналу, и принять PAP-отклик, который он может использовать как отклик, введенный пользователем. Если NAS этого сделать не может, он должен воспринимать Access-Challenge, как если бы он получил сообщение Access-Reject. Формат пакета Access-Challenge совпадает с форматом Access-Accept и Access-Request.
Поле идентификатор является копией одноименного поля пакета Access-Request, который вызвал посылку Access-Challenge.
Значение аутентификатора отклика вычисляется так, как это было описано выше. Поле атрибуты имеет переменную длину, и содержит список из нуля или более атрибутов.
5. Атрибуты
Атрибуты RADIUS несут в себе специфическую аутентификационную и конфигурационную информацию для запросов и откликов. Некоторые атрибуты могут быть включены в список более одного раза. Воздействие такого использования зависит от типа атрибута.
Рис. 2. Формат записи атрибута
Поле тип имеет один октет. Возможные значения этого поля перечислены в документе RFC-1700 «Assigned Numbers» [3]. Значения 192-223 зарезервированы для экспериментального использования, значения 224-240 выделены для специальных реализаций, а значения 241-255 зарезервированы на будущее. Ниже в таблице 1. представлена спецификация стандартизованных значений атрибутов. Сервер и клиент RADIUS могут игнорировать атрибуты неизвестного типа.
| Код | Назначение |
| 1 | Имя пользователя (User-Name) |
| 2 | Пароль пользователя (User-Password) |
| 3 | CHAP-пароль |
| 4 | NAS-IP-адрес |
| 5 | NAS-порт |
| 6 | Тип услуги (Service-Type) |
| 7 | Framed-Protocol |
| 8 | Framed-IP-адрес |
| 9 | Framed-IP-Netmask |
| 10 | Framed-Routing |
| 11 | Filter-Id |
| 12 | Framed-MTU |
| 13 | Framed-Compression |
| 14 | Login-IP-Host |
| 15 | Login-Service |
| 16 | Login-TCP-Port |
| 17 | (unassigned) |
| 18 | Сообщение-отклик (Reply-Message) |
| 19 | Callback-Number |
| 20 | Callback-Id |
| 21 | (не определено) |
| 22 | Framed-Route |
| 23 | Framed-IPX-Network |
| 24 | Состояние |
| 25 | Класс |
| 26 | Vendor-Specific |
| 27 | Таймаут сессии (Session-Timeout) |
| 28 | Idle-Timeout (таймаут пассивного состояния) |
| 29 | Termination-Action (процедура завершения) |
| 30 | Called-Station-Id |
| 31 | Calling-Station-Id |
| 32 | NAS-Идентификатор |
| 33 | Proxy-State |
| 34 | Login-LAT-Service |
| 35 | Login-LAT-Node |
| 36 | Login-LAT-Group |
| 37 | Framed-AppleTalk-Link |
| 38 | Framed-AppleTalk-Network |
| 39 | Framed-AppleTalk-Zone |
| 40-59 | (зарезервировано для акоунтинга) |
| 60 | CHAP-вызов (CHAP-Challenge) |
| 61 | NAS-Port-Type |
| 62 | Port-Limit |
| 63 | Login-LAT-Port |
| строка | 0-253 октетов |
| адрес | 32 битовый код, старший октет передается первым. |
| целое | 32 битовый код, старший октет первый. |
| время | 32 битовый код (старший октет первый) равен числу секунд с момента 00:00:00 GMT, 1-го января, 1970. Стандартные атрибуты не используют этот тип данных, но он представлен здесь, так как может быть применен в атрибутах зависящих от производителя (Vendor-Specific). |
5.1. Имя пользователя
Рис. 3. Формат атрибута
Поле тип =1, длина ³ 3. Поле строка имеет один или более октетов. NAS может ограничить максимальную длину имени пользователя, но рекомендуется, чтобы программа была способна обрабатывать как минимум 63 октета. Применяется несколько форматов имени пользователя:
| монолитный | Состоит только из буквенно-цифровых символов. Эта простая форма может использоваться для локального управления NAS. |
| простой | Состоит только из печатных символов ASCII. |
| name@fqdn SMTP адрес | Стандартное имя домена (Fully Qualified Domain Name; с или без завершающей точкой) указывает область, где применимо имя. |
| уникальное имя | Имя в формате ASN.1 используется в аутентификационных системах с общедоступным ключом. |
5.2. Пароль пользователя
Этот атрибут указывает на пароль аутентифицируемого пользователя или на вводимые пользователем данные в ответ на Access-Challenge. Этот атрибут используется только в пакетах Access-Request.
При передаче пароль шифруется. Пароль сначала дополняется нулями до границы кратной 16 октетам. Затем согласно алгоритму MD5 вычисляется хэш-функция. Это вычисление производится для потока октетов, состоящего из о бщего секретного пароля, за которым следует аутентификатор запроса (Request Authenticator). Для полученного кода и первых 16 октетов пароля производится операция XOR. Результат кладется в первых 16 октетов поля строка атрибута пароля пользователя.
Если пароль длиннее 16 символов, вычисляется вторая хэш-функция для потока данных, включающего в себя общий секретный пароль и результат предыдущей операции XOR. Полученный результат и вторые 16 октетов пароля объединяются с помощью операции XOR, а полученный код кладется во вторые 16 октетов поля строка атрибута User-Password. Если необходимо, эта операция повторяется. Следует только иметь в виду, что поле строка не может превышать 128 символов.
Данный метод заимствован из книги «Network Security» Кауфмана, Пелмана и Спесинера [4; стр. 109-110]. Более формализовано алгоритм можно описать следующим образом:
Берется общий секретный ключ S и псевдослучайный 128-битный аутентификатор запроса RA. Пароль разбивается на 16-октетные блоки p1, p2, …, pi. последний из них дополняется нулями до размера кратного 16 октетам. Далее реализуется алгоритм MD5. Берутся блоки шифрованного текста c(1), c(2), …, c(i), получаются промежуточные значения b1, b2, … bi:
| b1 = MD5(S + RA) | c(1) = p1 XOR b1 |
| b2 = MD5(S + c(1)) | c(2) = p2 XOR b2 |
| . | . |
| . | . |
| . | . |
| bi = MD5(S + c(I-1)) | c(i) = pi XOR bi |
Поле строка будет содержать c(1)+c(2)+. +c(i), где знак + означает присоединение.
5.3. Атрибут CHAP-пароль
Рис. 4. Формат атрибута CHAP-Password
Поле CHAP ID имеет один октет и содержит идентификатор CHAP из CHAP-отклика пользователя. Поле строка имеет 16 октетов и содержит CHAP-отклик пользователя.
5.4. Атрибут NAS-IP-Address
Этот атрибут указывает IP-адрес сервера NAS, который запрашивает аутентификацию пользователя. Атрибут применяется только в пакетах Access-Request. В пакете Access-Request должен присутствовать NAS-IP-адрес или NAS-идентификатор. Формат атрибута NAS-IP-Address представлен на рис. 5.
Рис. 5. Формат атрибута NAS-IP-Address
Поле адрес имеет протяженность 4 октета (IPv4).
5.5. Атрибут NAS-порт
Рис. 6. Формат атрибута NAS-порт
5.6. Атрибут тип услуги (Service-Type)
| Код поля значение | Назначение |
| 1 | Login |
| 2 | Framed |
| 3 | Callback Login |
| 4 | Callback Framed |
| 5 | Outbound |
| 6 | Administrative |
| 7 | NAS Prompt |
| 8 | Authenticate Only |
| 9 | Callback NAS Prompt |
Таково назначение кодов атрибута типа услуг при использовании в сообщениях Access-Accept. Когда они применяются в пакетах Access-Request, они должны рассматриваться как подсказки серверу RADIUS и говорят, что NAS имеет причины полагать, что пользователь предпочтет указанные услуги, но сервер не обязан следовать этим подсказкам.
| Login | Пользователь должен быть подключен к ЭВМ. |
| Framed | Для пользователя должен быть запущен пакетный протокол, такой как PPP или SLIP. |
| Callback Login | Пользователь должен быть отсоединен, выполнен обратный дозвон, после чего осуществлено соединение с ЭВМ. |
| Callback Framed | Пользователь должен быть отсоединен, выполнен обратный дозвон, после чего для пользователя запущен пакетный протокол типа PPP или SLIP. |
| Outbound | Пользователю предоставляется доступ к выходным устройствам. |
| Administrative | Пользователю предоставляется доступ к административному интерфейсу NAS, с которого могут выполняться привилегированные команды. |
| NAS Prompt | Пользователю предоставляется возможность вводить непривилегированные команды NAS. |
| Authenticate Only | Запрашивается только аутентификация, ненужно возвращать никакой авторизационной информации Access-Accept (обычно используется прокси-серверами, а не самим NAS). |
| Callback NAS Prompt | Пользователь должен быть отсоединен, выполнен обратный дозвон, после чего ему предоставляется возможность ввода непривилегированных команд NAS. |
5.7. Атрибут Framed-Protocol
| Код поля значение | Назначение |
| 1 | PPP |
| 2 | SLIP |
| 3 | Протокол удаленного доступа AppleTalk (ARAP) |
| 4 | Gandalf владелец протокола SingleLink/MultiLink |
| 5 | Xylogics владелец IPX/SLIP |
5.8. Атрибут Framed-IP-Address
Поле тип = 8, поле длина = 6.
Поле адрес содержит 4 октета. Значение 0xFFFFFFFF указывает, что NAS следует разрешить пользователю выбрать адрес. Значение 0xFFFFFFFE отмечает, что NAS следует выбрать адрес для пользователя (например, выбрать его из зарезервированного списка, имеющегося в NAS). Другие допустимые значения указывают, что NAS должен использовать этот код в качестве IP-адреса пользователя.
5.9. Атрибут Framed-IP-Netmask
Этот атрибут указывает на сетевую IP-маску, которая должна быть сконфигурирована для пользователя, когда он является маршрутизатором сети. Атрибут может использоваться в пакетах Access-Accept. Он может использоваться в пакете Access-Request в качестве подсказки NAS серверу относительно того, какую сетевую маску он предпочитает. Но сервер не обязан следовать этой подсказке. Формат записи атрибута аналогичен формату атрибута NAS-IP-адрес. Поле тип = 9, поле длина = 6. Поле адрес имеет 4 октета и определяет сетевую IP-маску.
5.10. Атрибут Framed-Routing
| Код поля значение | Назначение |
| 0 | Ничего не делать |
| 1 | Посылать маршрутные пакеты |
| 2 | Принимать маршрутные пакеты |
| 3 | Посылать и принимать |
5.11. Атрибут Filter-Id
Поле строка здесь имеет один или более октетов и его содержимое зависит от программной реализации. Содержимое должно иметь читабельный формат и не должно влиять на работу протокола. Рекомендуется, чтобы отображаемое сообщение содержало 32-126 ASCII-символов.
5.12. Атрибут Framed-MTU
Этот атрибут указывает значение MTU, которое должно быть проставлено для пользователя, когда это не согласуется каким-либо другим образом (например, PPP). Атрибут используется только в пакетах Access-Accept. Формат атрибута аналогичен показанному на рис. 6. Поле тип = 12, а поле длина = 6. Поле значение имеет 4 октета и может принимать значения в интервале 64-65535.
5.13. Атрибут Framed-Compression
Этот атрибут указывает на протокол сжатия, который следует использовать при передаче данных. Атрибут используется в пакетах Access-Accept. Атрибут используется в пакетах Access-Request в качестве подсказки серверу о том, какой вид компрессии предпочитает использовать NAS, но сервер не обязан следовать этой рекомендации.
Можно использоваться несколько атрибутов данного типа. Окончательное решение о применении того или иного метода компрессии принимает сервер NAS.
| Код поля значение | Назначение |
| 0 | Никакого |
| 1 | Сжатие заголовка VJ TCP/IP [5] |
| 2 | Сжатие заголовка IPX |
5.14. Атрибут Login-IP-Host
Поле адрес имеет 4 октета. Значение 0xFFFFFFFF указывает на то, что NAS должен позволить пользователю выбор адреса. Значение 0 говорит, что NAS должен сам выбрать ЭВМ, с которой будет соединен пользователь. Любые другие значения указывают адрес, с которым сервер NAS должен соединить пользователя.
5.15. Атрибут Login-Service
| Код поля значение | Назначение |
| 0 | Telnet |
| 1 | Rlogin |
| 2 | Сброс TCP |
| 3 | PortMaster (собственник) |
| 4 | LAT |
5.16. Атрибут Login-TCP-Port
5.17. Атрибут типа 17 в настоящее время не определен.
5.18. Атрибут Reply-Message
Этот атрибут содержит текст, который может быть отображен для пользователя. Если используется в пакете Access-Accept, это сообщение об успешном выполнении. При использовании с Access-Reject, это уведомление о неудаче. Это может быть элемент диалога с пользователем перед очередной попыткой послать запрос доступа (Access-Request).
5.19. Атрибут Callback-Number
Поле строка содержит один или более октетов. Действительный формат информации может варьироваться от узла к узлу и отличаться для разных приложений.
5.20. Атрибут Callback-Id
Поле строка содержит один или более октетов. Действительный формат информации может варьироваться от узла к узлу и отличаться для разных приложений.
5.21. Атрибут типа 21 в настоящее время не определен
5.22. Атрибут Framed-Route
5.23. Атрибут Framed-IPX-Network
Поле значение имеет 4 октета. Значение 0xFFFFFFFE указывает, что сервер NAS должен выбрать для пользователя сеть IPX (т.е. выбрать одну или более IPX-сетей из имеющегося списка). Остальные значения должны рассматриваться как IPX-сети, предназначенные для подключения.
5.24. Атрибут State
Этот атрибут предназначен для посылки сервером клиенту в сообщении Access-Challenge и должен быть передан немодифицированным от клиента к серверу в новом отклике Access-Request на исходный вызов, если таковой имеется.
Поле строка имеет один или более октетов. Действительный формат информации может варьироваться от узла к узлу и отличаться для разных приложений.
5.25. Атрибут Class
5.26. Атрибут Vendor-Specific
Этот атрибут служит для того, чтобы позволить производителям обеспечить поддержку их собственных атрибутов, непригодных для общего применения. Атрибут не должен влиять на работу протокола RADIUS.
Рис. 7. Формат записи атрибута Vendor-Specific
Старший октет ID изготовителя равен нулю, а младшие три октета представляют собой код изготовителя, как это определено в RFC-1700 (SMI Network Management Private Enterprise Code [2]). Порядок октетов сетевой.
Рис. 8. Пример формата строки
Поле строка предназначено для записи параметров, специфических для данного производителя.
5.27. Атрибут Session-Timeout
Поле значение содержит 4 октета, и несет в себе 32-битовое целое число (максимальное число секунд, в течение которых пользователь будет оставаться соединенным с сервером NAS).
5.28. Атрибут Idle-Timeout
Поле значение содержит 4 октета и несет в себе 32-битовое целое число без знака, соответствующее максимальному времени пассивности клиента в секундах. По истечении этого времени соединение с сервером разрывается.
5.29. Атрибут Termination-Action
| 0 | Значение по умолчанию |
| 1 | RADIUS-Request |
Если поле значение соответствует RADIUS-Request, по завершении соответствующего сервиса NAS может послать новый запрос Access-Request серверу RADIUS, включив атрибут State, если он имеется.
5.30. Атрибут Called-Station-Id
Поле строка содержит один или более октетов, содержащих телефонный номер, через который пользователь дозвонился до системы. Действительный формат информации может варьироваться от узла к узлу и отличаться для разных приложений.
Поле строка содержит один или более октетов, где записан номер телефона, с которого позвонил пользователь. Действительный формат информации может варьироваться от узла к узлу и отличаться для разных приложений. Рекомендуется использование печатных ASCII-символов.
5.32. Атрибут NAS-идентификатор
Поле строка содержит один или более октетов, и должна быть уникальной для NAS в области действия сервера RADIUS. Например, полное имя домена вполне подходит в качестве NAS-идентификатора. Действительный формат информации может варьироваться от узла к узлу и отличаться для разных приложений.
5.33. Атрибут Proxy-State
Поле строка содержит один или более октетов. Действительный формат информации может варьироваться от узла к узлу и отличаться для разных приложений.
5.34. Атрибут Login-LAT-Service
Этот атрибут указывает на систему, с которой должен быть соединен пользователь посредством LAT (Local Area Transport). Он может использоваться в пакетах Access-Accept, но только когда в качестве услуги специфицирован LAT (локальный доступ). Атрибут может использоваться в пакетах Access-Request в качестве подсказки серверу, но сервер не обязан следовать этой рекомендации.
Администраторы используют атрибут сервиса, когда имеют дело с кластерными системами, такими как VAX или Alpha-кластер. В такой среде несколько процессоров совместно используют общие ресурсы (диски, принтеры и т.д.), и администраторы конфигурируют каждый из них для обеспечения к каждому из ресурсов. В этом случае каждая ЭВМ в кластере оповещает о предоставляемых услугах через широковещательные сообщения LAT.
5.35. Атрибут Login-LAT-Node
5.36. Атрибут Login-LAT-Group
Этот атрибут содержит строку, идентифицирующую групповой код LAT, который данный пользователь авторизован использовать. Атрибут может использоваться в пакетах Access-Accept, но только когда специфицирован LAT в качестве Login-Service. Он может быть использован в пакете Access-Request в качестве подсказки серверу, но сервер не обязан следовать этим рекомендациям. LAT поддерживает 256 различных групповых кодов, которые LAT использует как некую форму прав доступа. LAT преобразует эти групповые коды в 256 битовую карту соответствия (bitmap).
5.37. Атрибут Framed-AppleTalk-Link
5.38. Атрибут Framed-AppleTalk-Network
5.39. Атрибут Framed-AppleTalk-Zone
5.40. Атрибут CHAP-Challenge
5.41. Атрибут NAS-Port-Type
Поле значение имеет 4 октета. «Виртуальный» (в таблице 7) относится к соединению с NAS через некоторый транспортный протокол. Например, если пользователь осуществил удаленный доступ (telnet) в NAS, для того чтобы аутентифицировать себя как внешнего пользователя, запрос Access-Request может включать атрибут NAS-Port-Type = Virtual в качестве подсказки серверу RADIUS, что пользователь не является физическим портом.
| Код поля значение | Назначение |
| 0 | Async |
| 1 | Sync |
| 2 | ISDN Sync |
| 3 | ISDN Async V.120 |
| 4 | ISDN Async V.110 |
| 5 | Виртуальный |
5.42. Атрибут Port-Limit
Поле значение имеет 4 октета и содержит 32-битовое целое число без знака, которое определяет максимальное число портов, к которым пользователь может быть подключен сервером NAS.
5.43. Атрибут Login-LAT-Port
5.44. Таблица атрибутов
В таблице собраны основные характеристики атрибутов, типы пакетов, где они используются, а также возможное число атрибутов в пакете.
| Request | Accept | Reject | Challenge | # | Атрибут |
| 1 | 0 | 0 | 0 | 1 | User-Name |
| 0-1 | 0 | 0 | 0 | 2 | User-Password [*] |
| 0-1 | 0 | 0 | 0 | 3 | CHAP-Password [*] |
| 0-1 | 0 | 0 | 0 | 4 | NAS-IP-Address |
| 01 | 0 | 0 | 5 | NASPort | |
| 0-1 | 0-1 | 0 | 0 | 6 | Service-Type |
| 0-1 | 0-1 | 0 | 0 | 7 | Framed-Protocol |
| 0-1 | 0-1 | 0 | 0 | 8 | Framed-IP-Address |
| 0-1 | 0-1 | 0 | 0 | 9 | Framed-IP-Netmask |
| 0 | 0-1 | 0 | 0 | 10 | Framed-Routing |
| 0 | 0+ | 0 | 0 | 11 | Filter-Id |
| 0 | 0-1 | 0 | 0 | 12 | Framed-MTU |
| 0+ | 0+ | 0 | 0 | 13 | Framed-Compression |
| 0+ | 0+ | 0 | 0 | 14 | Login-IP-Host |
| 0 | 0-1 | 0 | 0 | 15 | Login-Service |
| 0 | 0-1 | 0 | 0 | 16 | Login-TCP-Port |
| 0 | 0+ | 0+ | 0+ | 18 | Reply-Message |
| 0-1 | 0-1 | 0 | 0 | 19 | Callback-Number |
| 0 | 0-1 | 0 | 0 | 20 | Callback-Id |
| 0 | 0+ | 0 | 0 | 22 | Framed-Route |
| 0 | 0-1 | 0 | 0 | 23 | Framed-IPX-Network |
| 0-1 | 0-1 | 0 | 0-1 | 24 | State |
| 0 | 0+ | 0 | 0 | 25 | Class |
| 0+ | 0+ | 0 | 0+ | 26 | Vendor-Specific |
| 0 | 0-1 | 0 | 0-1 | 27 | Session-Timeout |
| 0 | 0-1 | 0 | 0-1 | 28 | Idle-Timeout |
| 0 | 0-1 | 0 | 0 | 29 | Termination-Action |
| 0-1 | 0 | 0 | 0 | 30 | Called-Station-Id |
| 0-1 | 0 | 0 | 0 | 31 | Calling-Station-Id |
| 0-1 | 0 | 0 | 0 | 32 | NAS-Identifier |
| 0+ | 0+ | 0+ | 0+ | 33 | Proxy-State |
| 0-1 | 0-1 | 0 | 0 | 34 | Login-LAT-Service |
| 0-1 | 0-1 | 0 | 0 | 35 | Login-LAT-Node |
| 0-1 | 0-1 | 0 | 0 | 36 | Login-LAT-Group |
| 0 | 0-1 | 0 | 0 | 37 | Framed-AppleTalk-Link |
| 0 | 0+ | 0 | 0 | 38 | Framed-AppleTalk-Network |
| 0 | 0-1 | 0 | 0 | 39 | Framed-AppleTalk-Zone |
| 0-1 | 0 | 0 | 0 | 60 | CHAP-Challenge |
| 0-1 | 0 | 0 | 0 | 61 | NAS-Port-Type |
| 0-1 | 0-1 | 0 | 0 | 62 | Port-Limit |
| 0-1 | 0-1 | 0 | 0 | 63 | Login-LAT-Port |
[*] Запрос Access-Request должен содержать пароль пользователя или CHAP-пароль, но не должен содержать и то и другое.
Ниже в таблице представлены обозначения, использованные в таблице 8.
| 0 | Этого атрибута не должно быть в пакете. |
| 0+ | Атрибут может использоваться в пакете нуль или более раз. |
| 0-1 | Атрибут может использоваться в пакете нуль или один раз. |
| 1 | Атрибут должен присутствовать в пакете обязательно один раз. |
6. Примеры
Предлагается несколько примеров для иллюстрации потока пакетов и использования типовых атрибутов.
6.1. Удаленный доступ пользователя на указанную ЭВМ (Telnet)
Сервер NAS с адресом 192.168.1.16 посылает запрос Access-Request в UDP пакете серверу RADIUS для пользователя с именем NEMO, подключаемого к порту 3.
Code = 1 (Access-Request)
ID = 0
Request Authenticator = <16-октетное случайное число>
Атрибуты:
User-Name = «NEMO»
NAS-IP-Address = 192.168.1.16
NAS-Port = 3
Сервер RADIUS аутентифицирует NEMO и посылает запрос Access-Accept в UDP пакете серверу NAS, требуя от него организации удаленного доступа пользователя NEMO к ЭВМ с заданным адресом.
Code = 2 (Access-Accept)
ID = 0 (то же самое, что и в Access-Request)
Response Authenticator = <16-октетная контрольная сумма MD-5 кода (2),
id (0), приведенного выше Request Authenticator, атрибутов этого отклика и общего секретного пароля >
Атрибуты:
Service-Type = Login-User
Login-Service = Telnet
Login-Host = 192.168.1.3
6.2. Кадровая аутентификация пользователя посредством CHAP
Сервер NAS с адресом 192.168.1.16 посылает запрос Access-Request в UDP-пакете серверу RADIUS для пользователя с именем VANYA для подключения к порту 20 в рамках протокола PPP. Аутентификация осуществляется посредством CHAP. NAS посылает атрибуты Service-Type и Framed-Protocol в качестве рекомендаций серверу RADIUS воспользоваться PPP, хотя NAS необязательно этому последует.
Code = 1 (Access-Request)
ID = 1
Атрибуты:
User-Name = » VANYA»
NAS-IP-Address = 192.168.1.16
NAS-Port = 20
Service-Type = Framed-User
Framed-Protocol = PPP
Сервер RADIUS аутентифицирует VANYA и посылает запрос Access-Accept в UDP-пакете серверу NAS, сообщая, что он отрывает PPP-сессию и приписывает адрес пользователю из имеющегося у него списка.
Code = 2 (Access-Accept)
ID = 1 (тот же, что и в Access-Request)
Response Authenticator =
Атрибуты:
Service-Type = Framed-User
Framed-Protocol = PPP
Framed-IP-Address = 255.255.255.254
Framed-Routing = None
Framed-Compression = 1 (Компрессия заголовка VJ TCP/IP)
Framed-MTU = 1500
6.3. Пользователь с картой вызова-отклика (Challenge-Response)
Сервер NAS с адресом 192.168.1.16 посылает запрос Access-Request серверу RADIUS для пользователя с именем MANYA, подключаемого к порту 7.
| Code = 1 | (Access-Request) |
ID = 2
Request Authenticator =
Атрибуты:
User-Name = » MANYA»
User-Password = <16 октетов пароля дополненные в конце нулями,
объединенный функцией XOR с MD5 (общий секретный ключ |Request Authenticator)>
NAS-IP-Address = 192.168.1.16
NAS-Port = 7
Сервер RADIUS решает вызвать MANYA, отсылая назад строку вызова и ожидая отклика. Сервер RADIUS посылает запрос Access-Challenge серверу NAS.
| Code = 11 | (Access-Challenge> |
| ID = 2 | (тот же что и в Access-Request) |
Атрибуты:
Reply-Message = «Challenge 32769430. Enter response at prompt.»
State =
Пользователь вводит свой отклик, а NAS посылает новый запрос Access-Request с этим откликом и атрибутом State.
| Code = 1 | (Access-Request) |
| ID = 3 | (Заметьте, что он изменяется) |
Отклик был некорректен, поэтому сервер RADIUS предлагает NAS отклонить попытку входа в систему.
| Code = 3 | (Access-Reject) |
| ID = 3 | (то же что и в Access-Request) |
(отсутствуют, хотя сообщение Reply-Message может быть послано)
На практике, с сервером RADIUS связывается база данных, где хранятся имена пользователей и соответствующие им секретные пароли. Конкретный именованный пользователь должен аутентифицироваться только одним способом. Это уменьшает возможности атаки путем согласования использования наименее безопасного метода аутентификации. Если пользователь нуждается в использовании разных аутентификационных методов в различных ситуациях, тогда следует данному пользователю в каждом из этих вариантов выступать под разными именами.
Пароли должны храниться в местах с ограниченным доступом. Эти данные должны быть доступны только процессам, которые с ними работают.






