ZRTP (состоит из Z и Транспортный протокол реального времени ) - это криптографический ключ -протокол соглашения для согласования ключей для шифрования между двумя конечными точками в телефонном вызове Voice over Internet Protocol (VoIP) на основе реального -временной транспортный протокол. Он использует обмен ключами Диффи – Хеллмана и безопасный транспортный протокол реального времени (SRTP) для шифрования. ZRTP был разработан Филом Циммерманном с помощью Брайса Уилкокса-О'Хирна, Колина Пламба, Джона Калласа и Алана Джонстона и был представлен на рассмотрение Internet Engineering Task Force (IETF) Циммерманн, Каллас и Джонстон 5 марта 2006 г. и опубликовано 11 апреля 2011 г. как RFC 6189.
ZRTP («Z» - это ссылка на своего изобретателя, Циммерманна; «RTP» означает транспортный протокол в реальном времени) описан в Internet Draft как «протокол соглашения о ключах, который выполняет обмен ключами Диффи-Хеллмана во время установления вызова внутри полосы в медиапоток транспортного протокола реального времени (RTP), который был установлен с использованием другого протокола сигнализации, такого как протокол инициации сеанса (SIP). Он генерирует общий секрет, который затем используется для генерации ключей и соли для безопасный RTP ( SRTP) сеанс ". Одна из особенностей ZRTP заключается в том, что он не полагается на сигнализацию SIP для управления ключами или на какие-либо серверы вообще. Он поддерживает гибкое шифрование, автоматически определяя, поддерживает ли другой клиент VoIP ZRTP.
Этот протокол не требует предварительных общих секретов и не полагается на инфраструктуру открытых ключей (PKI) или на центры сертификации, на самом деле эфемерные ключи Диффи-Хеллмана генерируются при каждом установлении сеанса: это позволяет обойти сложность создания и обслуживания доверенной третьей стороны.
Эти ключи участвуют в генерации секрета сеанса, из которого берутся сеансовый ключ и параметры для сеансов SRTP, а также ранее совместно используемые секреты (если таковые имеются): это обеспечивает защиту от несанкционированного доступа -the-middle (MiTM) атакует, пока злоумышленник не присутствовал в первом сеансе между двумя конечными точками.
ZRTP может использоваться с любым протоколом сигнализации, включая системы SIP, H.323, Jingle и с распределенными хеш-таблицами. ZRTP не зависит от уровня сигнализации, поскольку все согласования ключей происходят через медиапоток RTP.
ZRTP / S, расширение протокола ZRTP, может работать в любых типах устаревших телефонных сетей, включая GSM, UMTS, ISDN, PSTN, SATCOM, UHF / VHF радио, потому что это узкополосный протокол, ориентированный на поток битов, и выполняет все согласования ключей внутри потока битов между двумя конечными точками.
Алан Джонстон назвал протокол ZRTP, потому что в своих ранних Интернет-проектах он был основан на добавлении расширений заголовков к пакетам RTP, что сделало ZRTP вариантом RTP. В более поздних проектах формат пакета был изменен, чтобы сделать его синтаксически отличным от RTP. Ввиду этого изменения ZRTP теперь является псевдоакронимом .
Обмен ключами Диффи – Хеллмана сам по себе не обеспечивает защиту от злоумышленников. средняя атака. Чтобы гарантировать, что злоумышленник действительно не присутствует в первом сеансе (при отсутствии общих секретов), используется метод короткой строки аутентификации (SAS): взаимодействующие стороны устно перекрестно проверяют общее значение, отображаемое на обеих конечных точках. Если значения не совпадают, указывается атака «человек посередине». (В конце 2006 г. американское NSA разработало экспериментальную систему анализа и синтеза голоса, чтобы обойти эту защиту, но этот класс атак не считается серьезным риском для безопасности протокола.) SAS используется для аутентифицировать обмен ключами, который по сути является криптографическим хешем двух значений Диффи-Хеллмана. Значение SAS отображается для обеих конечных точек ZRTP. Для выполнения аутентификации это значение SAS зачитывается партнеру по голосовой связи вслух. Если значения на обоих концах не совпадают, указывается атака «человек посередине»; если они совпадают, атака «человек посередине» маловероятна. Использование фиксации хэша в обмене DH ограничивает злоумышленника только одним предположением, чтобы сгенерировать правильный SAS в атаке, что означает, что SAS может быть довольно коротким. Например, 16-битный SAS дает злоумышленнику только один шанс из 65536 не быть обнаруженным.
ZRTP обеспечивает второй уровень аутентификации против атаки MitM, основанный на форме непрерывности ключа. Он делает это путем кэширования некоторой хешированной информации о ключах для использования в следующем вызове, которая будет смешана с общим секретом DH следующего вызова, придавая ему свойства непрерывности ключей, аналогичные SSH. Если MitM не присутствует в первом вызове, он блокируется для последующих вызовов. Таким образом, даже если SAS никогда не используется, большинство атак MitM останавливаются, потому что MitM не присутствовал в первом вызове.
ZRTP имеет реализован как
. Коммерческие реализации ZRTP доступны в RokaCom от RokaCom, PrivateWave Professional от PrivateWave и совсем недавно в Silent Phone от Silent Circle, компании, основанной Циммерманном. Существует также Softphone от Acrobits. Draytek поддерживает ZRTP в некоторых своих аппаратных и программных средствах VoIP.
Опубликован список бесплатных SIP-провайдеров с поддержкой ZRTP.