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