Вход:  Пароль:  
FreeSource: Asterisk/News/20060307 ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Шифрование

Введение

Тема шифрования трафика IP-телефонии интересна многим, особенно потому что Vo IP? изначально имеет гораздо более широкие возможности обеспечения безопасности, по сравнению с обычной телефонией.

SRTP

SRTP (secure RTP) в Asterisk реализован, но находится в состоянии «глубокой альфы», и поэтому до сих пор не включен в основную ветку. Этот протокол поддерживается в настоящий момент, например, SIP-телефонами Snom, которые очень распространены среди пользователей Asterisk, так что можно было бы ожидать скорого его развития, если бы не одно большое «но».


SRTP не имеет никакого смысла без шифрования SIP-потока, в котором и передаются ключи шифрования. Для этого самого шифрования не хватает реализации протокола TLS. Для него же, в свою очередь, не хватает реализации SIP over TCP. Для полноценной его реализации потребуется очень много усилий, поэтому в ближайший год чего-либо, что можно было без страха ставить на рабочие сервера я не ожидаю.


В том виде, в котором поддержка SRTP в сторонних патчах для Asterisk есть в настоящий момент, имеет смысл использовать лишь при передачи через VPN в качестве дополнительной меры усложнения взлома сомнительного качества.

IAX2 encryption

С IAX2 ситуация заметно лучше, но отнюдь не все так радужно как хотелось бы.


Начиная с Asterisk 1.2.4 отсутствующая в дистрибутивном примере iax2.conf опция 'encryption' может использоваться для поддержки шифрования. Так как сейчас реализован только один протокол — AES128, то варианты 'encryption=yes' и 'encryption=aes128' сейчас равнозначны.


После включения этой опции в выводе команды 'iax2 show peers' слева от поля «статус» появится "(E)", что должно означать, будто шифрование включено. Я не зря использую такие обтекаемые формулировки — включение encryption гарантировано означает лишь отображение этих трех символов, и больше ничего.


Для того чтобы шифрование действительно использовалось, необходимо использовать метод авторизации md5. Думаю вполне понятно, почему при использовании метода plaintext использовать шифрование попросту бессмысленно (как, вы ещё используете plaintext авторизацию? зря, очень зря). Самое же удивительное что шифрование не будет работать с rsa-авторизацией. Вот такой вот загадочный зверь этот Asterisk.


Для конечного пользователя это означает, что опция encryption=yes реально использоваться будет только если другая сторона его поддерживает _и_ используется md5 авторизация. В любом другом случае Asterisk в iax2 show peers будет бодро рапортовать об используемом шифровании, которое использоваться не будет.

Olle E Johansson


Olle E Johansson (oej) создал свою ветку в svn-репозитории, в которой содержатся патчи почти готовые к интегрированию в основную ветку. Эта ветка предназначена для тестирования, а не для использования на реальных критичных сервисах.


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


Большинство из существенных изменений SIP-стека также содержится и в отдельных, предназначеных для тестирования ветках.

T.38

Также oej в отдельную ветку вынес патч для поддержка T.38 транзита. Несмотря на то, что функционал этот очень важен для всех ISP и большинства офисных установок Asterisk, внимание сотрудников Digium к этому коду, увы, долгое время было минимально.


Тестирование его у нас показало, что к реальному использованию код, увы, не готов, потому как:


– падает;
– делает неработоспособным Hold на SIP-устройствах;


Думаю этого достаточно, чтобы считать патч неприменимым :)


Сейчас этот патч активно дорабатывается, и я надеюсь что скоро он станет гораздо более применим на практике. В настоящий момент я активно занимаюсь его тестированием.

Информация к размышлению


В рассылке asterisk-dev Russell предложил использовать pthread_rwlock_t вместо mutex'ов, например для связаных списков. Сейчас нити, выполняющие только чтение полностью блокируют список, не позволяя другим нитям даже читать его содержимое.


Если это изменение будет выполнено, то это может существенно увеличить масштабируемость Астериска, и однозначно улучшит его эффективность на многопроцессорных машинах, и машинах типа Sun T2000 (многоядерные процессоры с поддержкой нескольких нитей на одном ядре).


Kfleming ответил ему, что основной проблемой при этом будут тонкости реализации приоритета блокировок на чтение и чтение/запись.


В случае если сотрудниками Digium изменения внесены не будут, то эта разработка будет иметь смысл для любых ISP, использующих в своей работе Asterisk.

Изменения в svn head Asterisk


– russian locale for voicemail — ну наконец-то, не прошло и года с появления первой версии этого патча в их багтрекере;
– множество мелких доработок для сборки на Solaris — видимо они поняли, что Niagara будет хороша не только для Web, куда сейчас позиционируется, но и для IP-телефонии, особенно с учетом мультитредовой архитектуры Asterisk (которая собственно на системах от Sun и работает лучше всего);
– серия изменений в cdr_csv на тему большей гибкости настроек лога, а именно возможность писать в лог user field, uniqueid и дату/время в GMT;
– добавлена команда Park в asterisk manager интерфейс;
– интегрирован realtime патч для Meet Me? — очень ценное изменение;

Многопоточный IAX2


Недавно в svn head ушло интересное изменение в логике работы IAX2 — теперь есть возможность сразу создавать несколько worker threads, которые и будут обслуживать отдельные задачи, тем самым масштабируемость Астериск при работе по IAX2 повышается.


Особенно подобное изменение важно для любителей использовать realtime конфигурацию.


К сожалению тестирование показало, что проблемы в этом коде есть, и назвать его стабильным сложно. При сборке с -DDO_CRASH (падение астериска при возникновении критических ситуаций) единственное что Астериск делает стабильно — это падает.


Где именно падает выявлено, сейчас в нашей сборке вставлен отладочный код, который, возможно позволит выявить где.


Если вы используете -DDO_CRASH для отладки прямо в production — лучше этого на последних svn-срезах не делать. Падения каждые несколько минут с обрывами разговоров это не то, за что вам пользователи спасибо скажут.


Для улучшения IAX2 multithreading создана отдельная ветка разработки /team/file/iax2-multithreading/

Изменения в svn Zaptel


– Fix NMI issues with some IBM xSeries servers

Рассылка Asterisk


В дальнейшем с периодичностью раз в неделю-две аналогичные отчеты будут публиковаться в отдельную рассылку по Asterisk — comp.soft.others.asterisk. Здесь я публиковать этот материал не планирую из-за узкой специализации.


Подписаться на рассылку можно по адресу:


http://subscribe.ru/catalog/comp.soft.others.asterisk


 
Файлов нет. [Показать файлы/форму]
Один комментарий. [Показать комментарии/форму]