Назва RADIUS є абревіатурою від Remote Authentication Dial In User Service і являє собою мережевий протокол, що забезпечує централізовану Аутентифікацію (Authentication), Авторизацію (Authorization) і Облік використовуваних мережних ресурсів (Accounting). В англомовній літературі для цих трьох функцій (Authentication, Authorization, Accounting) використовується абревіатура ААА.
Під Аутентифікацією розуміється процес, що дозволяє ідентифікувати користувача за його даними, наприклад, за логіном (ім'я користувача, номер телефону і т. Д.) і паролю.
Авторизація - процес, протягом якого визначаються повноваження ідентифікованого користувача на доступ до певних мережевих ресурсів
Термін Облік використаних мережевих ресурсів вже сам по собі досить інформативний. Первинними даними, які передаються по протоколу RADIUS, є обсяги вхідного і вихідного трафіків при передачі даних, і тривалість розмови і набраний номер при використанні IP телефонії. Крім визначених у протоколі стандартних атрибутів (параметрів), протокол передбачає можливість використання виробником обладнання (вендором) власних атрибутів. В англомовній літературі вони називаються Vendor Specific Attributes або VSA.
Протокол RADIUS був розроблений компанією Livingston Enterprises (конкретно Карлом Рігні/Carl Rigney) для віддаленого комутованого доступу через мережеві сервери доступу (Network Access Server - NAS) цієї компанії серії PortMaster до мережі internet. Пізніше, в 1997, протокол RADIUS був опублікований як RFC 2058 і RFC 2059. Поточні версії RFC 2865 (Remote Authentication Dial In User Service (RADIUS)) і RFC 2866 (RADIUS Accounting). Іноді замість поняття "мережевий сервер доступу" використовується інший: "віддалений сервер доступу" (Remote Access Server - RAS).
В даний час протокол RADIUS використовується для доступу до віртуальних приватних мереж (VPN), точкам бездротового (Wi-Fi) доступу, Ethernet комутаторів, DSL та іншим типам мережевого доступу. Завдяки відкритості, простоті впровадження, постійному удосконаленню, протокол RADIUS зараз є фактично стандартом для віддаленої аутентифікації.
Аутентифікація та авторизація
Для з'ясування роботи RADIUS протоколу розглянемо малюнок, наведений нижче.
Ноутбуки та IP телефон, представляють пристрої користувача, з яких необхідно виконати аутентифікації та авторизації на мережевих серверах доступу (NAS) :
- точці Wi-Fi доступу,
- маршрутизаторе,
- VPN сервері і
- IP АТС.
На малюнку показані не всі можливі варіанти NAS. Існують і інші мережеві пристрої доступу.
RADIUS протокол реалізовується у вигляді інтерфейсу між NAS, який виступає як RADIUS клієнт, і RADIUS сервером - програмним забезпеченням, яке може бути встановлено на комп'ютері (сервері) або якомусь спеціалізованому пристрої. Таким чином, RADIUS сервер, як правило, не взаємодіє безпосередньо з пристроєм користувача, а тільки через мережевий сервер доступу.
Користувач надсилає запит на мережевий сервер доступу для отримання доступу до певного мережного ресурсу, використовуючи сертифікат доступу. Сертифікат надсилається на мережевий сервер доступу через мережевий протокол канального рівня (Link Layer), наприклад, Point-to-Point Protocol (PPP) у разі виконання комутованого доступу, Digital Subscriber Line (DLS) - у разі використання відповідних модемів і т.п. NAS після цього, в свою чергу, надсилає повідомлення запиту доступу на RADIUS сервер, так званий RADIUS Access Request. Цей запит включає сертифікати доступу, які зазвичай представлені у вигляді імені користувача і пароля або сертифіката безпеки, отриманих від користувача. Крім цього запит може містити додаткові параметри, такі як мережеву адресу пристрою користувача, його телефонний номер, інформацію про фізичну адресу, з якого користувач взаємодіє з NAS.
RADIUS сервер перевіряє цю інформацію на коректність, використовуючи такі схеми аутентифікації, як PAP, CHAP, EAP і т.п. Коротко опишемо ці протоколи.
PAP (Password Authentication Protocol) (RFC1334) - простий аутентифікаційний протокол, який використовується для аутентифікації користувача по відношенню до мережевого сервера доступу (NAS). РАР використовується РРР протоколом. Практично всі сервери доступу підтримують РАР. РАР передає незашифрований пароль через мережу і, отже, є незахищеним протоколом. Тому РАР, зазвичай, використовується в тому випадку, коли сервер не підтримує захищені протоколи, такі як снаря, ЕАР і т.п.
CHAP (англ. Challenge Handshake Authentication Protocol) (RFC 1994) — широко поширений алгоритм перевірки автентичності, що передбачає передачу не самого пароля користувача, а непрямих відомостей про нього. При використанні CHAP сервер віддаленого доступу відправляє клієнту рядок запиту. На основі цього рядка і пароля користувача клієнт обчислює хеш-код MD5 (Message Digest-5) і передає його серверу. Хеш-функція є алгоритмом одностороннього (незворотного) шифрування, оскільки значення хеш-функції для блоку даних обчислити легко, а визначити вихідний блок по хеш-коду з математичної точки зору неможливо за прийнятний час. (За хешування існує багато літератури, наприклад, можна прочитати: Хешування). Сервер, якому доступний пароль користувача, виконує ті ж самі обчислення і порівнює результат з хеш-кодом, отриманим від клієнта. У разі збігу облікові дані клієнта віддаленого доступу вважаються справжніми.
MD5 (Message-Digest algorithm 5) (RFC 1321) — широко використовувана криптографічна функція з 128 бітовим хешем. Знайдений ряд вразливостей в алгоритмі MD5, в силу чого в США департамент US Department of Homeland Security не рекомендує використання MD5 в майбутньому, і для більшості урядових програм c 2010 США потрібно перейти на сімейство алгоритму SHA-2.
Протокол 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 протоколу може в загальному випадку бути представлена, як показано на таблиці нижче.
Направлення | ||
Access-Request: NAS-Identifier, NAS-Port, User-Name, User-Password (пароль може бути проігнорований) | ||
Access-Challenge: State (0 или 1) и Reply-Message (Наприклад: "Challenge 12345678, enter your response at the prompt") | ||
Access-Request: з новим ID, NAS-Identifier, NAS-Port, User-Name, User-Password (пароль кріптографіруется). State (той же, що і в Access-Challenge) | ||
Access-Challenge: State (0 или 1) и Reply-Message (Наприклад: "Challenge 12345678, enter your response at the prompt") |
Облік використаних мережевих ресурсів
Після того, як NAS дозволив користувачу доступ, NAS посилає RADIUS серверу повідомлення про початок обліку мережевого доступу - пакет Accounting Request, який містить атрибут Acct-Status-Type зі значенням "start". Це повідомлення зазвичай містить ідентифікатор користувача, його мережеву адресу, порт підключення та унікальний ідентифікатор сесії.
NAS може періодично посилати RADIUS серверу пакет Accounting Request, що містить атрибут Acct-Status-Type зі значенням "interim-update". Подібна інформація призначена для поновлення статусу користувача під час активної сесії. Зазвичай подібна інформація супроводжується інформацією про поточну дату і тривалості сесії.
Після припинення користувачем доступу до мережі NAS посилає RADIUS серверу останній пакет Accounting Request, який містить атрибут Acct-Status-Type зі значенням "stop". Також передається інформація про час сесії, кількість надісланих пакетів, кількості переданих байтів, через закінчення сполуки та інша інформація, пов'язана з мережевим доступом.
Зазвичай, RADIUS клієнт посилає пакет Accounting Request з можливим повтором через деякий інтервал часу, поки не отримає у відповідь від RADIUS серверау підтвердження прийому - пакет Accounting-Response.
Основна мета цих даних - використання їх для виставлення рахунків, однак, вони можуть використовуватися також для отримання статистики по наданим послугам і для загального мережевого моніторингу.
Зазвичай, для аутентифікації та авторизації RADIUS сервером використовується 1812 UDP порт, а для обліку послуг - 1813 UDP порт. Проте, у ряді випадків можуть використовуватися й інші порти. Зокрема, пристрої Cisco Systems за замовчуванням використовують 1645 і 1646 порти відповідно.
В даний час існує цілий ряд реалізацій RADIUS серверів різними фірмами. Ми рекомендуємо використовувати SoftPI RADIUS сервер.