RADIUS
RADIUS (англ. Remote Authentication in Dial-In User Service) — протокол для реализации аутентификации, авторизации и сбора сведений об использованных ресурсах, разработанный для передачи сведений между центральной платформой и оборудованием. Этот протокол применялся для системы тарификации использованных ресурсов конкретным пользователем/абонентом. Центральная платформа и оборудование Dial-Up доступа (Network Access Server (NAS, не путать с хранилищем) с системой автоматизированного учёта услуг (биллинга)), RADIUS используется как протокол AAA:
- англ. Authentication — процесс, позволяющий аутентифицировать (проверить подлинность) субъекта по его идентификационным данным, например, по логину (имя пользователя, номер телефона и т. д.) и паролю.
- англ. Authorization — процесс, определяющий полномочия идентифицированного субъекта на доступ к определённым объектам или сервисам.
- англ. Accounting — процесс, позволяющий вести сбор сведений (учётных данных) об использованных ресурсах. Первичными данными (то есть, традиционно передаваемых по протоколу RADIUS) являются величины входящего и исходящего трафиков: в байтах/октетах (с недавних пор в гигабайтах). Однако протокол предусматривает передачу данных любого типа, что реализуется посредством VSA (Vendor Specific Attributes).
История
Протокол RADIUS был разработан Карлом Ригни (англ. Carl Rigney) в фирме Livingston Enterprises для их серверов доступа (Network Access Server) серии PortMaster к сети интернет, и позже, в 1997, был опубликован как RFC 2058 и RFC 2059 (текущие версии RFC 2865 и RFC 2866). На данный момент существует несколько коммерческих и свободно распространяемых RADIUS-серверов. Они несколько отличаются друг от друга по своим возможностям, но большинство поддерживает списки пользователей в текстовых файлах, LDAP, различных базах данных. Учётные записи пользователей могут храниться в текстовых файлах, различных базах данных, или на внешних серверах. Часто для удаленного мониторинга используется SNMP. Существуют Прокси-серверы для RADIUS, упрощающие централизованное администрирование и/или позволяющие реализовать концепцию интернет-роуминга. Они могут изменять содержимое RADIUS-пакета на лету (в целях безопасности или для выполнения преобразования между диалектами). Популярность RADIUS-протокола, во многом объясняется: открытостью к наполнению новой функциональностью при сохранении работоспособности с устаревающим оборудованием, чрезвычайно высокой реактивностью при обработке запросов ввиду использования UDP в качестве транспорта пакетов, а также хорошо параллелизуемым алгоритмом обработки запросов; способностью функционировать в кластерных (Cluster) архитектурах (например OpenVMS) и мультипроцессорных (SMP) платформах (DEC Alpha, HP Integrity ) — как с целью повышения производительности, так и для реализации отказоустойчивости.
В настоящее время (с середины 2003-го года) разрабатывается протокол DIAMETER (текущие версии RFC 3588 и RFC 3589), который призван заменить RADIUS, предоставляя механизм миграции.
Возможности
Будучи частью биллинговой системы, RADIUS-сервер является интерфейсом взаимодействия с телекоммуникационной системой или сервером (например маршрутизатором или коммутатором) и может реализовывать для такой системы следующие сервисы:
Общие
- Создание и хранение учётных записей пользователей (абонентов)
- Управление учётной записью пользователя (абонента) из персонального интерфейса (например веб-кабинета)
- Создание карточек доступа (логин или PIN-код) для предоставления услуг, с некоторым лимитом действия (Dial-Up доступа в Интернет и карточной IP-телефонии)
- Ручная и автоматическая блокировка учётной записи абонента по достижении заданного критерия или лимита
- Сбор и анализ статистической информации о сессиях пользователя и всей обслуживаемой системы (в том числе CDR)
- Создание отчётов по различным статистическим параметрам
- Создание, печать и отправка счетов к оплате
- Аутентификация всех запросов в RADIUS-сервер из обслуживаемой системы (поле Secret)
Аутентификация
- Проверка учётных данных пользователя (в том числе шифрованных) по запросу обслуживаемой системы
Авторизация
- Выдача состояния блокировки учётной записи пользователя
- Выдача разрешения к той или иной услуге
- Сортировка данных на основе анализа статистической информации (например динамическая маршрутизация) и выдача результата сортировки по запросу
Учёт (Accounting)
- Онлайн-учёт средств абонента: уведомления о начале и конце сессии со стороны обслуживаемой системы
- Промежуточные сообщения о продолжении сессии (Interim-пакеты)
- Автоматическое принудительное завершение действия сессии на обслуживаемой системе в рамках услуги (packet of disconnection)
- BOOT message — специальный пакет, который отправляется телекоммуникационной системой на RADIUS-сервер при запуске (перезапуске) системы, с целью принудительного завершения всех сессий
В настоящее время протокол RADIUS используется для доступа к виртуальным частным сетям (VPN), точкам беспроводного (Wi-Fi) доступа, Ethernet-коммутаторам, DSL и другим типам сетевого доступа. Благодаря открытости, простоте внедрения, постоянному усовершенствованию, протокол RADIUS сейчас является фактически стандартом для удаленной аутентификации.
Процесс аутентификации и авторизации
Для определения принципа работы протокола RADIUS необходимо рассмотреть рисунок, приведённый выше[где?]. Ноутбуки и IP-телефон представляют устройства пользователя, с которых необходимо выполнить аутентификацию и авторизацию на сетевых серверах доступа (NAS): точке Wi-Fi доступа, маршрутизаторе, VPN-сервере и IP АТС. На рисунке приведены несколько из возможных вариантов NAS, существуют и другие сетевые устройства доступа. RADIUS реализуется в виде интерфейса между NAS (RADIUS-клиент) и RADIUS-сервером — программным обеспечением, устанавливаемым на компьютере (сервере) или ином специализированном устройстве. Сервер взаимодействует с устройством пользователя не напрямую, а только через сетевой сервер доступа.
Пользователь отправляет запрос на сетевой сервер для получения доступа к определённому сетевому ресурсу, используя сертификат доступа. Сертификат отправляется на сервер через сетевой протокол канального уровня (например, PPP в случае коммутируемого доступа, DSL в случае использования соответствующих модемов и т.д.). NAS, в свою очередь, посылает сообщение запроса доступа на RADIUS-сервер (RADIUS Access Request). Запрос включает сертификаты доступа, представленные в виде имени пользователя и пароля или сертификата безопасности, которые получены от пользователя. Запрос может содержать дополнительные параметры: сетевой адрес устройства пользователя, телефонный номер, информацию о физическом адресе, с которого пользователь взаимодействует с NAS.
Сервер проверяет информацию на корректность, используя схемы аутентификации:
- PAP (Password Authentication Protocol) (RFC 1334) – простой аутентификационный протокол, который используется для аутентификации пользователя по отношению к сетевому серверу доступа (NAS). РАР используется РРР протоколом. Практически все сервера доступа поддерживают РАР. РАР передает зашифрованный пароль через сеть и, следовательно, при перехвате трафика пароль может быть подвержен атаке перебора. Поэтому РАР, обычно, используется в том случае, когда сервер не поддерживает защищенные протоколы, такие как СНАР, ЕАР и т.п.
- CHAP (англ. Challenge Handshake Authentication Protocol) (RFC 1994) — широко распространённый алгоритм проверки подлинности, предусматривающий передачу не самого пароля пользователя, а косвенных сведений о нём. При использовании CHAP сервер удаленного доступа отправляет клиенту строку запроса. На основе этой строки и пароля пользователя клиент вычисляет хеш-код MD5 и передает его серверу. Хеш-функция является алгоритмом одностороннего (необратимого) шифрования, поскольку значение хеш-функции для блока данных вычислить легко, а определить исходный блок по хеш-коду с математической точки зрения невозможно за приемлемое время. Сервер, которому доступен пароль пользователя, выполняет те же самые вычисления и сравнивает результат с хеш-кодом, полученным от клиента. В случае совпадения учётные данные клиента удалённого доступа считаются подлинными.
- MD5 (Message-Digest algorithm 5) (RFC 1321) — широко используемая криптографическая функция с 128 битовым хешем. В алгоритме найден ряд уязвимостей, в силу чего Министерство внутренней безопасности США не рекомендует использование MD5 в будущем, и для большинства правительственных приложений c 2010 года США требуется перейти на семейство алгоритма SHA-2[источник не указан 2405 дней].
- EAP (Extensible Authentication Protocol) (RFC 3748) позволяет проверять подлинность при подключениях удаленного доступа с помощью различных механизмов проверки подлинности. Точная схема проверки подлинности согласовывается клиентом удаленного доступа и сервером, выполняющим проверку подлинности (им может быть сервер удаленного доступа или RADIUS сервер). По умолчанию в маршрутизацию и удаленный доступ включена поддержка протоколов EAP-TLS и MD5-Challenge (MD5-задача). Подключение других модулей ЕАР к серверу, использующему маршрутизацию и удаленный доступ, обеспечивает поддержку других методов ЕАР. Протокол EAP позволяет вести свободный диалог между клиентом удаленного доступа и системой проверки подлинности. Такой диалог состоит из запросов системы проверки подлинности на необходимую ей информацию и ответов клиента удаленного доступа. Например, когда протокол EAP используется с генераторами кодов доступа, сервер, выполняющий проверку подлинности, может отдельно запрашивать у клиента удаленного доступа имя пользователя, идентификатор и код доступа. После ответа на каждый такой запрос клиент удаленного доступа проходит определенный уровень проверки подлинности. Когда на все запросы будут получены удовлетворительные ответы, проверка подлинности клиента удаленного доступа успешно завершается.
Схемы проверки подлинности, использующие протокол EAP, называются типами EAP. Для успешной проверки подлинности клиент удаленного доступа и сервер, выполняющий проверку подлинности, должны поддерживать один и тот же тип EAP.
Теперь вернемся к RADIUS серверу, который проверяет информацию, полученную от NAS. Сервер проверяет идентичность пользователя, а также корректность дополнительной информации, которая может содержаться в запросе: сетевой адрес устройства пользователя, телефонный номер, состояние счета, его привилегии при доступе к запрашиваемому сетевому ресурсу. По результатам проверки RADIUS сервер посылает NAS один из трех типов откликов:
- Access-Reject показывает, что данный пользовательский запрос неверный. При желании сервер может включить текстовое сообщение в Access-Reject, которое может быть передано клиентом пользователю. Никакие другие атрибуты (кроме Proxy-State) не разрешены в Access-Reject.
- Access-Challenge. Запрос дополнительной информации от пользователя, например, второй пароль, пин-код, номер карты и т.п. Этот отклик также используется для более полного аутентификационного диалога, где защитный туннель выполняется между устройством пользователя и RADIUS сервером, так что сертификаты доступа скрываются от NAS.
- Access Accept. Пользователю разрешен доступ. Поскольку пользователь аутентифицирован, то RADIUS сервер проверяет авторизацию на использование запрошенных пользователем ресурсов. Например, пользователю может быть разрешён доступ через беспроводную сеть, но запрещен доступ к VPN сети.Таким образом, работа RADIUS протокола может в общем случае быть представлена, как показано на таблице ниже.
Стандарты
Определён в
- RFC 2865 Remote Authentication Dial In User Service (RADIUS)
- RFC 2866 RADIUS Accounting
Также имеет отношение к
- RFC 2548 Microsoft Vendor-specific RADIUS Attributes
- RFC 2607 Proxy Chaining and Policy Implementation in Roaming
- RFC 2618 RADIUS Authentication Client MIB
- RFC 2619 RADIUS Authentication Server MIB
- RFC 2620 RADIUS Accounting Client MIB
- RFC 2621 RADIUS Accounting Server MIB
- RFC 2809 Implementation of L2TP Compulsory Tunneling via RADIUS
- RFC 2867 RADIUS Accounting Modifications for Tunnel Protocol Support
- RFC 2868 RADIUS Attributes for Tunnel Protocol Support
- RFC 2869 RADIUS Extensions
- RFC 2882 Network Access Servers Requirements: Extended RADIUS Practices
- RFC 3162 RADIUS and IPv6
- RFC 3575 IANA Considerations for RADIUS
- RFC 3576 Dynamic Authorization Extensions to RADIUS
- RFC 4672 RADIUS Dynamic Authorization Client MIB
- RFC 4673 RADIUS Dynamic Authorization Server MIB
- RFC 3579 RADIUS Support for EAP
- RFC 3580 IEEE 802.1X RADIUS Usage Guidelines
- RFC 4014 RADIUS Attributes Suboption for the DHCP Relay Agent Information Option