ZRTP
ZRTP — криптографический
IETF
5-го марта 2006.
Описание
ZRTP предлагается как способ согласования ключей шифрования с использованием метода Диффи — Хеллмана через медиа поток, устанавливаемый протоколом
SIP). Во время посыла звонка создаётся публичный ИД, используемый при создании ключей, которыми будет шифроваться медиа поток разговора. Таким образом ключ действителен только в течение одного разговора, образуя таким образом сессию Secure RTP (SRTP). При разрыве соединения ключ и весь криптографический контекст уничтожается, что обеспечивает совершенную прямую секретность
(PFS).
Таким образом существует потенциал встраивания этого механизма в уже существующие программные VoIP
программные продукты, шлюзы и ИП телефоны.
Протокол не требует заранее сгенерированных ключей, или поддержки инфраструктуры обмена ключей (
man in the middle
), обеспечивая единую криптозащиту между любыми двумя точками в мире ИП.
ZRTP может теоретически применяться совместно с любыми сигнальными протоколами, использующими
, так как в теории ZRTP не зависит от сигнализации, осуществляя обмен ключей в медиа сессии RTP. Таким образом ZRTP может стать открытым стандартом де-факто в мире IP-телефонии.Аутентификация
SAS
Сам по себе алгоритм обмена ключами
Диффи — Хелмана даёт потенциальному Человеку_посередине всего одну попытку сгенерировать правильную SAS при попытке атаки. Так как SAS получается из старших 32 битов хеша и имеет две формы представления (16-битную B256 в виде пары слов из списка PGP, и 20-битную B32
в виде четырёх символов), она является очень короткой, вероятность необнаружения атаки при использовании SAS в формате B256 равна 1/65536. Применение SAS в формате B32 понижает вероятность необнаружения атаки в 16 раз (по сравнению с B256), до 1/1048576.
Непрерывность ключевого материала
Вторым уровнем защиты ZRTP от атак
"человек посередине"
является непрерывность ключевого материала. Хеш ключевой информации предыдущего вызова подмешивается к параметрам алгоритма Диффи - Хеллмана при следующем вызове (между этими же абонентами), что придаёт протоколу ZRTP сходство с SSH. Если "человека посередине" не было при первом вызове, он исключается из всех последующих.
Открытый стандарт
- Софт-клиент GPL.
- Jitsiв настоящее время имеет поддержку ZRTP с использованием внешней библиотеки ZRTP4J lib.
- PJSIP — кроссплатформенный стек для open source разработок в области VoIP, ожидается его выход с полной поддержкой ZRTP в первом квартале 2009 года. Заявлена поддержка в Symbian, Windows Mobile.
- PhonerLite - ZRTP библиотека собственной разработки.
- Поддержка ZRTP может быть экспериментально добавлена в Asterisk с помощью набора патчей, разработанных в рамках проекта Zfone. При этом для работы протокола используется libZRTP.
- Поддержка ZRTP была добавлена в основной код FreeSWITCH c 05 апреля 2012
Коммерческое использование
- Авторская разработка самого Филипа Циммермана — . Бесплатна в течение бета-тестирования, но планируется в дальнейшем распространение только коммерческих небесплатных копий, уже демонстрировалась в Москве Филипом Циммерманом.
- KHAMSA SA в качестве PrivateGSM — первое внедрение ZRTP по ТФОПи спутниковой телефонии. Использует библиотеку libZRTP разработанную Циммерманом.
- UM Labs выпустила шлюз с SIP Security Controller, который обеспечивает безопасные зашифрованные соединения между устройствами, поддерживающими ZRTP, сетями VoIP с коммерческими или бесплатными ИП-АТС, которые не поддерживают ZRTP или другую шифрозащиту.
- M5T ZRTP SAFE — отдельная независимая разработка стека ZRTP.
См. также
- VoIP