Термин
DTLS-SRTP
Шифровальная пара, используемая WebRTC для передачи медиа: DTLS (RFC 9147, апрель 2022) согласовывает ключи, SRTP (RFC 3711, март 2004) шифрует RTP-пакеты. Шифрование end-to-end между участниками соединения является обязательным в WebRTC.
WebRTC требует шифрования – режима «без шифрования» не существует. Используется механизм DTLS-SRTP: в начале соединения происходит DTLS-рукопожатие, в ходе которого согласуются ключи шифрования, а затем SRTP применяет их для шифрования каждого RTP-пакета. DTLS (Datagram TLS) обеспечивает обмен ключами по протоколу TLS поверх UDP. SRTP (Secure RTP) шифрует полезную нагрузку RTP с помощью AES-128-GCM или AES-256-GCM, аутентифицирует заголовки и защищает от атак повторного воспроизведения.
Шифрование происходит между WebRTC-устройствами: между двумя участниками в peer-to-peer-звонке или между клиентом и SFU в топологии с SFU. SFU находится посередине цепочки шифрования: он устанавливает DTLS-соединение с каждым клиентом отдельно и заново шифрует медиа своими ключами при пересылке. Это означает, что SFU видит расшифрованный медиапоток – ему это необходимо для маршрутизации, работы simulcast и SVC-стриминга, – но при этом делает оператора SFU точкой доверия.
Для end-to-end-шифрования, проходящего через SFU без раскрытия, WebRTC поддерживает Insertable Streams (W3C 2021) и связанные E2EE-архитектуры (используются в Google Meet E2EE, WhatsApp video, Zoom E2EE mode). Они добавляют дополнительный слой шифрования поверх SRTP, который расшифровывается только конечными участниками, а SFU пересылает непрозрачные зашифрованные данные. Настройка сложнее, зато SFU больше не может подслушивать.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.