Matrix
Coturn (TURN-сервер)
Аутентификация
lt-cred-mechВключает Long-Term Credentials (LTC) механизм аутентификации.
Клиенты должны передавать логин и пароль для соединения с TURN-сервером.
use-auth-secretВключает механизм динамической аутентификации.
Вместо статических паролей клиенты получают временные ключи (HMAC), сгенерированные сервером.
static-auth-secret=579d650b6e2d82c40519340ff5decd211a656725494b63e8d3e0e99a989b3316Секретный ключ для генерации временных паролей (используется с
use-auth-secret).Клиенты и сервер используют его для создания временных учетных данных (username, password).
Пароли создаются по алгоритму HMAC-SHA1 и действуют ограниченное время.
cert=/etc/letsencrypt/live/mx.dc24.cloud/fullchain.pemПуть к SSL-сертификату (используется для TLS/DTLS).
Позволяет серверу шифровать соединения.
pkey=/etc/letsencrypt/live/mx.dc24.cloud/privkey.pemПриватный ключ для SSL-сертификата.
Должен соответствовать сертификату (
fullchain.pem).
no-tcp-relayОтключает ретрансляцию трафика по TCP.
Полезно для снижения нагрузки на сервер (TURN обычно передаёт видео/аудио по UDP).
no-multicast-peersОтключает поддержку многоадресной передачи (multicast).
Уменьшает нагрузку, если сервер не работает с multicast-группами.
fingerprint– это настройка, которая включает контрольную сумму (CRC32) в заголовках сообщений STUN/TURN.🔹 Зачем нужен этот параметр?
Обеспечивает целостность данных – клиент может проверить, что сообщение не повреждено.
Повышает безопасность – помогает защититься от некоторых видов атак на подмену данных.
Упрощает совместимость с WebRTC – многие браузеры и клиенты WebRTC требуют
fingerprint.
Параметр
ec-curve-name=secp384r1в CoturnЭтот параметр указывает, какую эллиптическую кривую использовать для шифрования в TLS.
🔹 Что такое
secp384r1?secp384r1– это эллиптическая кривая P-384 (NIST).Обеспечивает 384-битное шифрование, что безопаснее, чем стандартная P-256 (secp256r1).
Используется в ECDH (Elliptic Curve Diffie-Hellman) для создания защищённого обмена ключами.
🔹 Почему это важно?
Использование эллиптической криптографии (ECC) делает шифрование: ✅ Безопаснее – выше уровень защиты по сравнению с RSA 2048.
✅ Быстрее – меньшая нагрузка на CPU.
✅ Совместимо – поддерживается всеми современными браузерами и WebRTC.
🔹 Как включить в Coturn?
Добавь в /etc/turnserver.conf:
Добавь в
/etc/turnserver.conf:ec-curve-name=secp384r1Затем перезапусти Coturn:
systemctl restart coturn🔹 Какие есть альтернативы?
secp256r1(P-256) – быстрее, но менее безопасен.secp521r1(P-521) – максимально безопасен, но медленнее.
Если хочешь баланс между безопасностью и скоростью, secp384r1 – лучший выбор. 🚀
Как шифруется трафик при WebRTC и TURN?
1️⃣ UDP:
TURN не шифрует сам UDP-трафик, он просто ретранслирует пакеты.
Однако WebRTC использует SRTP (Secure Real-time Transport Protocol), который шифрует UDP-трафик аудио и видео.
SRTP использует AES (обычно AES-128-GCM или AES-256-GCM).
Ключи для шифрования передаются через DTLS (Datagram Transport Layer Security).
2️⃣ TCP:
SRTP работает только с UDP, потому что он предназначен для потоковой передачи в реальном времени.
Если WebRTC использует TCP, то применяется TLS (Transport Layer Security).
TURN-трафик по TCP можно зашифровать через TLS (TURN over TLS, порт 5349).

