RealTime в Asterisk: архитектура и конфигурация

RealTime в Asterisk: архитектура и конфигурация с 5 октября по 9 октября

Количество
свободных мест

8 Записаться

Курсы по Mikrotik MTCNA

Курсы по Mikrotik MTCNA с 6 апреля по 10 апреля

Количество
свободных мест

7 Записаться

Курс по Zabbix

Zabbix: мониторинг Asterisk и VoIP с 7 сентября по 11 сентября

Количество
свободных мест

8 Записаться
Asterisk OAuth 2.0: Современный метод аутентификаций для SIP
20
Доклад
Александр Абабий
Asterisk OAuth 2.0: Современный метод аутентификаций для SIP

Современные методы авторизации в IP-телефонии долгое время оставались в тени веб-технологий. В то время как весь мир давно перешел на токены и сложные системы идентификации, мир SIP долгое время довольствовался классической связкой логина и пароля. Однако сегодня ситуация меняется. Безопасность коммуникаций становится не просто «дополнительной опцией», а фундаментом, на котором строится вся корпоративная связь. Переход к использованию OAuth 2.0 и одноразовых паролей (OTP) — это не дань моде, а необходимость, продиктованная развитием мобильных клиентов и облачных сервисов.

Проблема классических методов заключается в их статичности. Дайджест-аутентификация, которая считается стандартом в SIP, безусловно лучше передачи пароля в открытом виде, но она всё равно завязана на постоянный секрет, который хранится на устройстве. В современных реалиях, когда Ip-телефония для удаленных сотрудников используется повсеместно, риск компрометации таких данных возрастает. Именно поэтому назрела необходимость внедрения механизмов, которые позволяют отказаться от паролей в пользу временных токенов доступа.

Кризис парольной аутентификации в SIP

Традиционная схема авторизации в SIP-сетях строится на довольно старых принципах. У нас есть пользователь, у него есть пароль, и этот пароль знает как клиент, так и сервер. При попытке регистрации происходит обмен хэшами. Кажется, что всё надежно, но на практике это создает массу проблем для безопасности и администрирования.

Во-первых, пароли часто бывают слабыми. Пользователи не любят сложные комбинации, а администраторы не всегда могут заставить их использовать менеджеры паролей. Во-вторых, если пароль скомпрометирован, злоумышленник получает бессрочный доступ к линии, пока этот пароль не будет изменен вручную. В масштабах корпорации с тысячами абонентов управление такими секретами превращается в кошмар.

Основные недостатки классического подхода:

  • Статичность данных: пароль не меняется годами.
  • Сложность отзыва доступа: нужно менять пароль на сервере и перенастраивать устройство.
  • Отсутствие гибкости: нельзя дать доступ «только на час» или «только для определенных действий».
  • Проблемы с WebRTC: интеграция телефонии в браузерные CRM-системы требует более изящных решений, чем проброс логинов и паролей через JavaScript.

Для решения этих задач был разработан стандарт RFC 8898. Он описывает, как можно использовать OAuth-токены для идентификации в SIP. Идея в том, что устройство вообще не знает пароля пользователя. Оно получает временный токен от доверенного сервера авторизации и предъявляет его SIP-серверу. Это кардинально меняет подход к безопасности: Защита IP-ATC теперь строится на управлении правами доступа в реальном времени, а не на хранении секретных слов.

OAuth 2.0: как это работает в телефонии

OAuth 2.0 — это протокол, который мы видим каждый день, когда нажимаем кнопку «Войти через Google» или «Войти через Яндекс». В контексте SIP всё работает по похожей логике. Вместо того чтобы вбивать пароль в настройках софтфона, приложение перенаправляет пользователя на страницу авторизации корпоративного сервера. После успешного входа приложение получает токен (Access Token).

Процесс авторизации по шагам выглядит примерно так:

  1. Клиент запрашивает авторизацию у сервера (Identity Provider).
  2. Пользователь вводит свои корпоративные данные (SSO).
  3. Сервер выдает клиенту токен доступа.
  4. Клиент отправляет SIP-сообщение REGISTER, прикладывая этот токен.
  5. SIP-сервер проверяет токен у провайдера идентификации и, если он валиден, разрешает регистрацию.

Это дает огромные преимущества. Например, можно настроить политику так, чтобы токен действовал всего один день. Или привязать выдачу токена к определенному IP-адресу или состоянию устройства. Если сотрудник увольняется, его учетная запись блокируется в центральном каталоге, и все выданные токены мгновенно становятся бесполезными. В такой схеме Установка Asterisk требует интеграции с внешними системами управления идентификацией, что делает связь частью общего защищенного контура компании.

Реальность Open Source: Asterisk, Kamailio и PJSIP

Несмотря на наличие стандартов, практическая реализация OAuth в открытых проектах продвигается медленно. Если мы посмотрим на мир проприетарных решений, то у таких гигантов, как Oracle, Cisco или AudioCodes, поддержка токенов в SBC (Session Border Controllers) уже присутствует. В мире Open Source ситуация иная.

Возьмем Kamailio — популярный SIP-прокси. Там обсуждение внедрения OAuth идет уже давно, но «из коробки» готового и простого модуля для широкого круга задач пока нет. С Asterisk ситуация еще интереснее. В коде Asterisk есть упоминания OAuth, но они относятся к очень специфическим вещам, например, к модулю chan_motif для работы с Google Voice. Если же мы говорим про основной драйвер chan_pjsip, через который работает 99% современных инсталляций, то нативной поддержки OAuth-авторизации для обычных абонентов в основной ветке пока нет.

Однако не всё так плохо:

  • В самом проекте PJSIP (библиотека, на которой построен драйвер в Asterisk) есть ветки разработки, где поддержка токенов уже реализована.
  • Существуют обходные пути через использование внешних прокси-серверов.
  • Разработчики активно смотрят в сторону RFC 8898, так как запросы от крупного бизнеса на эту функцию растут.

Для тех, кто хочет разобраться, как это настроить в текущих реалиях, существуют специализированные Курсы по Asterisk, где разбираются нестандартные модули и способы интеграции телефонии с современными веб-протоколами.

Использование SIP-прокси как моста к современности

Если ваша АТС не умеет работать с OAuth напрямую, это не значит, что путь закрыт. Оптимальным решением является использование промежуточного SIP-прокси, который берет на себя всю работу с токенами. Одним из самых интересных решений здесь является Flexisip — разработка компании Belledonne Communications (те самые ребята, которые делают софтфон Linphone).

Flexisip умеет проверять токены и работать в связке с серверами авторизации. Вы ставите его «перед» вашим Asterisk. Мобильные клиенты подключаются к Flexisip, предъявляют токены, прокси их проверяет и, если всё хорошо, транслирует вызовы на Asterisk. Для самой АТС это выглядит как обычный доверенный трафик от прокси-сервера.

В качестве «мозга», который будет выдавать эти токены, отлично подходит Keycloak. Это мощное Open Source решение для управления пользователями и доступами. Keycloak написан на Java, очень стабилен и поддерживает практически все современные протоколы: OAuth 2.0, OpenID Connect, SAML. С его помощью можно легко реализовать схему, где один и тот же логин/пароль используется для входа в почту, CRM и телефонию.

Решение проблемы «сна» мобильных приложений

Когда мы говорим о современных методах работы, нельзя игнорировать проблему мобильных клиентов. Вы наверняка замечали: когда софтфон на смартфоне уходит в фон, он через некоторое время перестает принимать звонки. Это происходит потому, что операционные системы (Android и iOS) «усыпляют» приложения для экономии заряда батареи.

Раньше эту проблему пытались решить частыми перерегистрациями (Keep-alive), но это просто «выжирало» аккумулятор за пару часов. Современный и правильный путь — использование Push-уведомлений.

Схема работы через Push:

  1. Клиент регистрируется на SIP-прокси (например, Flexisip) и засыпает.
  2. На прокси приходит входящий вызов для этого клиента.
  3. Прокси видит, что клиент не в сети, и отправляет запрос на сервер Push-уведомлений (Google FCM или Apple APNs).
  4. Смартфон получает системное уведомление, которое «будит» приложение.
  5. Приложение просыпается, быстро регистрируется и принимает входящий звонок.

Для настройки такой связки вам понадобятся аккаунты разработчика в Google и Apple, чтобы получить необходимые ключи и сертификаты. Это довольно кропотливая работа, но без неё создать качественный сервис мобильной связи в 2024 году невозможно. Если система настроена правильно, пользователь даже не заметит задержки, а телефон будет жить от одного заряда полный рабочий день.

Двухфакторная аутентификация (OTP) в диалпланах

Еще один уровень защиты, который часто путают с OAuth, — это одноразовые пароли (OTP). Если OAuth нужен для того, чтобы приложение «залогинилось» в системе, то OTP — это подтверждение конкретного действия. Например, вы хотите разрешить международные звонки только после ввода кода из приложения-аутентификатора.

Это реализуется через логику диалплана Asterisk. Когда пользователь набирает «запрещенное» направление, система не сразу соединяет его, а просит ввести цифровой код.

Примерная логика реализации:

  • Абонент набирает номер.
  • Asterisk с помощью функции Read просит ввести 6 цифр.
  • Введенный код отправляется через AGI-скрипт (на PHP, Python или Go) в Keycloak.
  • Keycloak проверяет, совпадает ли код с тем, что сейчас в приложении пользователя (Google Authenticator и др.).
  • Если ответ положительный, Asterisk выполняет Dial.

Такая Аудит IP-ATC покажет, что даже в случае кражи физического телефона или SIP-аккаунта, злоумышленник не сможет совершить дорогостоящие вызовы, так как у него нет доступа ко второму фактору. Это «человеческий» и понятный способ защиты, который не требует от пользователя запоминания сложных паролей, достаточно иметь под рукой смартфон с установленным ключом.

 

Заключение

Asterisk REST Interface предоставляет беспрецедентный уровень контроля над медиапотоками и каналами, что делает его идеальным выбором для построения интеллектуальных голосовых систем. Однако при реализации сложных сценариев, таких как интеграция с AI-платформами, необходимо учитывать ограничения интерфейса в части обработки SIP-сигнализации и управления ресурсами.

Практическая ценность ARI раскрывается полностью только при комплексном подходе: использовании современных методов передачи аудио, внедрении систем мониторинга через AMI и активном использовании наработок сообщества. Понимание этих нюансов позволяет создавать надежные масштабируемые решения, способные выдерживать высокие нагрузки и обеспечивать бесшовное взаимодействие между классической телефонией и миром искусственного интеллекта.

Ежегодная конференция по Asterisk 2026!

Билеты уже в продаже!

Остались вопросы?

Я - Игорь Кондрашин, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

Наши
клиенты

Посмотреть все