ZRTP

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

ZRTP — криптографический протокол согласования ключей шифрования, используемый в системах передачи голоса по IP-сетям (VoIP). ZRTP описывает метод получения ключей по алгоритму Диффи — Хелмана для организации Secure Real-time Transport Protocol (SRTP). ZRTP осуществляет согласование ключей в том же потоке RTP, по которому установлена аудио/видео связь, то есть не требует отдельного канала связи. Разработан Филипом Циммерманом (Phil Zimmermann, автор Pretty Good Privacy), Джоном Калласом (Jon Callas) и Аланом Джонстоном (Alan Johnston) в 2006 году. Описание протокола было подано в IETF 5-го марта 2006.





Описание

ZRTP предлагается как способ согласования ключей шифрования с использованием метода Диффи — Хеллмана через медиа поток, устанавливаемый протоколом RTP (Real-time Transport Protocol), который образуется после инициализации вызова, используя любой тип сигнализации, например — Session Initiation Protocol (SIP). Во время посыла звонка создаётся публичный ИД, используемый при создании ключей, которыми будет шифроваться медиа поток разговора. Таким образом ключ действителен только в течение одного разговора, образуя таким образом сессию Secure RTP (SRTP). При разрыве соединения ключ и весь криптографический контекст уничтожается, что обеспечивает совершенную прямую секретность (PFS). Таким образом существует потенциал встраивания этого механизма в уже существующие программные VoIP программные продукты, шлюзы и ИП телефоны.

Протокол не требует заранее сгенерированных ключей, или поддержки инфраструктуры обмена ключей (PKI), или центра сертификации (СА). Это избавляет от сложностей создания структуры авторизации, основанной на доверенной поддержке, которая, например, применяется в шифровании SSL. Главной целью организации шифроканала, будь то голосовая сессия, или https соединение с интернет-банком — избежать возможности присутствия Человека_посередине (man in the middle), обеспечивая единую криптозащиту между любыми двумя точками в мире ИП.

ZRTP может теоретически применяться совместно с любыми сигнальными протоколами, использующими RTP для передачи медиа потока, включая SIP, H.323, SCCP, MGCP Unistim и Jingle, так как в теории ZRTP не зависит от сигнализации, осуществляя обмен ключей в медиа сессии RTP. Таким образом ZRTP может стать открытым стандартом де-факто в мире IP-телефонии.

Аутентификация

SAS

Сам по себе алгоритм обмена ключами Диффи — Хелмана не может обеспечить защиту от присутствия человека посередине (man in the middle). Для аутентификации ZRTP использует Short Authentication String (SAS) "короткую строку аутентификации", являющуюся сокращённым представлением криптографического хэша полученных ключей Диффи — Хелмана. Значения SAS вычисляются на каждой стороне соединения, абоненты передают их друг другу голосом для сверки. Если значения не совпали, то с большой уверенностью можно предположить присутствие Человека_посередине. Использование алгоритма Диффи — Хелмана даёт потенциальному Человеку_посередине всего одну попытку сгенерировать правильную SAS при попытке атаки. Так как SAS получается из старших 32 битов хэша и имеет две формы представления (16-битную B256 в виде пары слов из списка PGP, и 20-битную B32 в виде четырёх символов), она является очень короткой, вероятность необнаружения атаки при использовании SAS в формате B256 равна 1/65536. Применение SAS в формате B32 понижает вероятность необнаружения атаки в 16 раз (по сравнению с B256), до 1/1048576.

Непрерывность ключевого материала

Вторым уровнем защиты ZRTP от атак "человек посередине" является непрерывность ключевого материала. Хэш ключевой информации предыдущего вызова подмешивается к параметрам алгоритма Диффи - Хеллмана при следующем вызове (между этими же абонентами), что придаёт протоколу ZRTP сходство с SSH. Если "человека посередине" не было при первом вызове, он исключается из всех последующих.

Открытый стандарт

  • Софт-клиент Twinkle использует GNU ccRTP и проект GNU ZRTP для использования ZRTP в разработках. Все перечисленные пакеты поддерживают открытую лицензию GPL.
  • Jitsi в настоящее время имеет поддержку ZRTP с использованием внешней библиотеки ZRTP4J lib.
  • PJSIP — кроссплатформенный стек для open source разработок в области VoIP, ожидается его выход с полной поддержкой ZRTP в первом квартале 2009 года. Заявлена поддержка в Linux, Windows, OSX, Symbian, Windows Mobile.
  • PhonerLite - ZRTP библиотека собственной разработки.
  • Поддержка ZRTP может быть экспериментально добавлена в Asterisk с помощью [zfoneproject.com/prod_asterisk.html набора патчей], разработанных в рамках проекта Zfone. При этом для работы протокола используется libZRTP.
  • Поддержка ZRTP была добавлена в основной код FreeSWITCH [wiki.freeswitch.org/wiki/ZRTP c 05 апреля 2012]

Коммерческое использование

  • Авторская разработка самого Филипа Циммермана — Zfone, доступный для Mac OS X, Windows, и Linux. Бесплатна в течение бета-тестирования, но планируется в дальнейшем распространение только коммерческих небесплатных копий, уже демонстрировалась в Москве Филипом Циммерманом.
  • KHAMSA SA в качестве PrivateGSM — первое внедрение ZRTP по GSM (без использования VoIP) для платформы Symbian OS, соответственно — только для смартфонов. Дополнительные расширения ZRTP/S позволяют расширить применение ZRTP в сетях ISDN, ТФОП и спутниковой телефонии. Использует библиотеку libZRTP разработанную Циммерманом.
  • UM Labs выпустила шлюз с SIP Security Controller, который обеспечивает безопасные зашифрованные соединения между устройствами, поддерживающими ZRTP, сетями VoIP с коммерческими или бесплатными ИП-АТС, которые не поддерживают ZRTP или другую шифрозащиту.
  • M5T ZRTP SAFE — отдельная независимая разработка стека ZRTP.

См. также

Напишите отзыв о статье "ZRTP"

Ссылки

[tools.ietf.org/html/draft-zimmermann-avt-zrtp-11 ZRTP: Media Path Key Agreement for Secure RTP]

Отрывок, характеризующий ZRTP

– Что толкаешься то, – про тебя одного огонь, что ли? Вишь… развалился.
Из за устанавливающегося молчания послышался храп некоторых заснувших; остальные поворачивались и грелись, изредка переговариваясь. От дальнего, шагов за сто, костра послышался дружный, веселый хохот.
– Вишь, грохочат в пятой роте, – сказал один солдат. – И народу что – страсть!
Один солдат поднялся и пошел к пятой роте.
– То то смеху, – сказал он, возвращаясь. – Два хранцуза пристали. Один мерзлый вовсе, а другой такой куражный, бяда! Песни играет.
– О о? пойти посмотреть… – Несколько солдат направились к пятой роте.


Пятая рота стояла подле самого леса. Огромный костер ярко горел посреди снега, освещая отягченные инеем ветви деревьев.
В середине ночи солдаты пятой роты услыхали в лесу шаги по снегу и хряск сучьев.
– Ребята, ведмедь, – сказал один солдат. Все подняли головы, прислушались, и из леса, в яркий свет костра, выступили две, держащиеся друг за друга, человеческие, странно одетые фигуры.
Это были два прятавшиеся в лесу француза. Хрипло говоря что то на непонятном солдатам языке, они подошли к костру. Один был повыше ростом, в офицерской шляпе, и казался совсем ослабевшим. Подойдя к костру, он хотел сесть, но упал на землю. Другой, маленький, коренастый, обвязанный платком по щекам солдат, был сильнее. Он поднял своего товарища и, указывая на свой рот, говорил что то. Солдаты окружили французов, подстелили больному шинель и обоим принесли каши и водки.
Ослабевший французский офицер был Рамбаль; повязанный платком был его денщик Морель.
Когда Морель выпил водки и доел котелок каши, он вдруг болезненно развеселился и начал не переставая говорить что то не понимавшим его солдатам. Рамбаль отказывался от еды и молча лежал на локте у костра, бессмысленными красными глазами глядя на русских солдат. Изредка он издавал протяжный стон и опять замолкал. Морель, показывая на плечи, внушал солдатам, что это был офицер и что его надо отогреть. Офицер русский, подошедший к костру, послал спросить у полковника, не возьмет ли он к себе отогреть французского офицера; и когда вернулись и сказали, что полковник велел привести офицера, Рамбалю передали, чтобы он шел. Он встал и хотел идти, но пошатнулся и упал бы, если бы подле стоящий солдат не поддержал его.
– Что? Не будешь? – насмешливо подмигнув, сказал один солдат, обращаясь к Рамбалю.
– Э, дурак! Что врешь нескладно! То то мужик, право, мужик, – послышались с разных сторон упреки пошутившему солдату. Рамбаля окружили, подняли двое на руки, перехватившись ими, и понесли в избу. Рамбаль обнял шеи солдат и, когда его понесли, жалобно заговорил:
– Oh, nies braves, oh, mes bons, mes bons amis! Voila des hommes! oh, mes braves, mes bons amis! [О молодцы! О мои добрые, добрые друзья! Вот люди! О мои добрые друзья!] – и, как ребенок, головой склонился на плечо одному солдату.
Между тем Морель сидел на лучшем месте, окруженный солдатами.
Морель, маленький коренастый француз, с воспаленными, слезившимися глазами, обвязанный по бабьи платком сверх фуражки, был одет в женскую шубенку. Он, видимо, захмелев, обнявши рукой солдата, сидевшего подле него, пел хриплым, перерывающимся голосом французскую песню. Солдаты держались за бока, глядя на него.
– Ну ка, ну ка, научи, как? Я живо перейму. Как?.. – говорил шутник песенник, которого обнимал Морель.
Vive Henri Quatre,
Vive ce roi vaillanti –
[Да здравствует Генрих Четвертый!
Да здравствует сей храбрый король!
и т. д. (французская песня) ]
пропел Морель, подмигивая глазом.
Сe diable a quatre…
– Виварика! Виф серувару! сидябляка… – повторил солдат, взмахнув рукой и действительно уловив напев.
– Вишь, ловко! Го го го го го!.. – поднялся с разных сторон грубый, радостный хохот. Морель, сморщившись, смеялся тоже.
– Ну, валяй еще, еще!
Qui eut le triple talent,
De boire, de battre,
Et d'etre un vert galant…
[Имевший тройной талант,
пить, драться
и быть любезником…]
– A ведь тоже складно. Ну, ну, Залетаев!..
– Кю… – с усилием выговорил Залетаев. – Кью ю ю… – вытянул он, старательно оттопырив губы, – летриптала, де бу де ба и детравагала, – пропел он.
– Ай, важно! Вот так хранцуз! ой… го го го го! – Что ж, еще есть хочешь?
– Дай ему каши то; ведь не скоро наестся с голоду то.
Опять ему дали каши; и Морель, посмеиваясь, принялся за третий котелок. Радостные улыбки стояли на всех лицах молодых солдат, смотревших на Мореля. Старые солдаты, считавшие неприличным заниматься такими пустяками, лежали с другой стороны костра, но изредка, приподнимаясь на локте, с улыбкой взглядывали на Мореля.
– Тоже люди, – сказал один из них, уворачиваясь в шинель. – И полынь на своем кореню растет.
– Оо! Господи, господи! Как звездно, страсть! К морозу… – И все затихло.
Звезды, как будто зная, что теперь никто не увидит их, разыгрались в черном небе. То вспыхивая, то потухая, то вздрагивая, они хлопотливо о чем то радостном, но таинственном перешептывались между собой.

Х
Войска французские равномерно таяли в математически правильной прогрессии. И тот переход через Березину, про который так много было писано, была только одна из промежуточных ступеней уничтожения французской армии, а вовсе не решительный эпизод кампании. Ежели про Березину так много писали и пишут, то со стороны французов это произошло только потому, что на Березинском прорванном мосту бедствия, претерпеваемые французской армией прежде равномерно, здесь вдруг сгруппировались в один момент и в одно трагическое зрелище, которое у всех осталось в памяти. Со стороны же русских так много говорили и писали про Березину только потому, что вдали от театра войны, в Петербурге, был составлен план (Пфулем же) поимки в стратегическую западню Наполеона на реке Березине. Все уверились, что все будет на деле точно так, как в плане, и потому настаивали на том, что именно Березинская переправа погубила французов. В сущности же, результаты Березинской переправы были гораздо менее гибельны для французов потерей орудий и пленных, чем Красное, как то показывают цифры.