El seguro y en tiempo real Protocolo de transporte ( SRTP ) es un perfil de tiempo real Protocolo de transporte (RTP) destinado a proporcionar el cifrado, el mensaje de autenticación y de integridad , y ataque de repetición de protección a los datos RTP en tanto unicast y multicast aplicaciones. Fue desarrollado por un pequeño equipo de expertos en protocolo de Internet y criptografía de Cisco y Ericsson . Fue publicado por primera vez por el IETF en marzo de 2004 como RFC 3711 .
Dado que RTP está acompañado por el Protocolo de control de RTP (RTCP) que se utiliza para controlar una sesión de RTP, SRTP tiene un protocolo hermano, llamado Secure RTCP ( SRTCP ); proporciona de forma segura las mismas funciones a RTCP, como las proporcionadas por SRTP a RTP.
La utilización de SRTP o SRTCP es opcional en aplicaciones RTP o RTCP; pero incluso si se utilizan SRTP o SRTCP, todas las funciones proporcionadas (como el cifrado y la autenticación) son opcionales y se pueden activar o desactivar por separado. La única excepción es la función de autenticación de mensajes que es indispensable y necesaria cuando se utiliza SRTCP.
Cifrado de flujo de datos
SRTP y SRTCP utilizan el estándar de cifrado avanzado (AES) como cifrado predeterminado . Hay dos modos de cifrado definidos que permiten que el cifrado de bloque AES se utilice como un cifrado de flujo :
- Modo de contador de enteros segmentados
- Un modo de contador típico , que permite el acceso aleatorio a cualquier bloque, que es esencial para el tráfico RTP que se ejecuta en una red no confiable con posible pérdida de paquetes. En el caso general, casi cualquier función puede usarse en el rol de contador , asumiendo que esta función no se repite para un gran número de iteraciones. Pero el estándar para el cifrado de datos RTP es solo un contador incremental de enteros habitual. AES que se ejecuta en este modo es el algoritmo de cifrado predeterminado, con un tamaño de clave predeterminado de 128 bits y una longitud de clave de sal de sesión predeterminada de 112 bits.
- modo f8
- Una variación del modo de retroalimentación de salida , mejorado para ser buscable y con una función de inicialización alterada. Los valores predeterminados de la clave de cifrado y la clave salt son los mismos que para AES en modo contador. (Se ha elegido AES que se ejecuta en este modo para su uso en redes móviles 3G ).
Además del cifrado AES, SRTP permite la capacidad de deshabilitar el cifrado por completo, utilizando el denominado cifrado NULL , que puede asumirse como un cifrado compatible alternativo. De hecho, el cifrado NULL no realiza ningún cifrado; El algoritmo de cifrado funciona como función de identidad y copia el flujo de entrada al flujo de salida sin ningún cambio. Es obligatorio que este modo de cifrado se implemente en cualquier sistema compatible con SRTP. Como tal, se puede usar cuando no se requieren las garantías de confidencialidad aseguradas por SRTP, mientras que se pueden usar otras características de SRTP, como la autenticación y la integridad de los mensajes.
A través de SRTP puede adaptarse fácilmente a nuevos algoritmos de cifrado, el estándar SRTP establece que los nuevos algoritmos de cifrado solo pueden introducirse mediante la publicación de un nuevo RFC de seguimiento estándar que debe definir claramente el nuevo algoritmo.
Protección de autenticación, integridad y reproducción
Los algoritmos de cifrado enumerados anteriormente no aseguran por sí solos la integridad del mensaje, un atacante no podrá descifrar datos, pero puede falsificar o reproducir datos transmitidos previamente. Por lo tanto, el estándar SRTP también proporciona los medios para asegurar la integridad de los datos y la seguridad frente a la reproducción.
Para autenticar el mensaje y proteger su integridad, se utiliza el algoritmo HMAC-SHA1 [1] . Esto produce un resultado de 160 bits, que luego se trunca a 80 o 32 bits para convertirse en la etiqueta de autenticación adjunta a cada paquete. El HMAC se calcula sobre la carga útil del paquete y el material del encabezado del paquete, incluido el número de secuencia del paquete. Para protegerse contra ataques de repetición , el receptor mantiene los números de secuencia de los mensajes recibidos previamente, los compara con el número de secuencia en cada nuevo mensaje recibido y admite el nuevo mensaje solo si no se ha recibido previamente. Este enfoque se basa en la protección de la integridad para que sea imposible modificar el número de secuencia sin detección.
Derivación de claves
Se utiliza una función de derivación de claves para derivar las diferentes claves utilizadas en un contexto criptográfico (claves y sales de cifrado SRTP y SRTCP, claves de autenticación SRTP y SRTCP) a partir de una única clave maestra de una manera criptográficamente segura. Por lo tanto, el protocolo de administración de claves necesita intercambiar solo una clave maestra, todas las claves de sesión necesarias se generan aplicando la función de derivación de claves.
La aplicación periódica de la función de derivación de claves evita que un atacante recopile grandes cantidades de texto cifrado cifrado con una única clave de sesión. Esto proporciona protección contra ciertos ataques que son más fáciles de llevar a cabo cuando se dispone de una gran cantidad de texto cifrado. Además, múltiples aplicaciones de la función de derivación de claves proporcionan seguridad hacia atrás y hacia adelante en el sentido de que una clave de sesión comprometida no compromete otras claves de sesión derivadas de la misma clave maestra. Esto significa que incluso si un atacante logró recuperar una clave de sesión, no podrá descifrar mensajes protegidos con claves de sesión anteriores y posteriores derivadas de la misma clave maestra. (Tenga en cuenta que, por supuesto, una clave maestra filtrada revela todas las claves de sesión derivadas de ella).
SRTP se basa en un protocolo de administración de claves externo para configurar la clave maestra inicial. Dos protocolos diseñados específicamente para usarse con SRTP son ZRTP y MIKEY . También existen otros métodos para negociar las claves SRTP. Hay varios proveedores que ofrecen productos que utilizan el método de intercambio de claves SDES .
Interoperabilidad y aplicaciones
Consulte Comparación de software de VoIP § Software de VoIP seguro para teléfonos, servidores y aplicaciones compatibles con SRTP.
Telefonía (VoIP)
Soporte de navegador web
Navegadores conocidos con soporte SRTP de algún tipo
- Familia Blink (motor de navegador)
- Chromium (navegador web) admite (pero no universalmente) SRTP de forma experimental desde 2016
- Opera (navegador web)
- Vivaldi (navegador web)
Familias de navegadores web con algún nivel de SRTP en la línea principal que actualizan las ramas del sistema de representación central
- Gecko (software)
- Trident (software) (reemplazado, pero existía un soporte mínimo en el momento de la expiración)
- WebKit
Hasta ahora, no existe soporte SRTP conocido para navegadores web basados en texto. Aunque SRTP podría usarse para operar en una VPN , junto con los navegadores web, no se sabe que ninguna red VPN lo esté usando.
Documentos de normas
- RFC 3711, Estándar propuesto, Protocolo de transporte seguro en tiempo real (SRTP)
- RFC 4771, Estándar propuesto, Contador de transferencia de transferencia de transformación de integridad para el Protocolo de transporte seguro en tiempo real (SRTP)
- RFC 3551, Estándar 65, Perfil RTP para conferencias de audio y video con control mínimo
- RFC 3550, Standard 64, RTP: un protocolo de transporte para aplicaciones en tiempo real
- RFC 2104, informativo, HMAC: hash con clave para autenticación de mensajes
Ver también
- ZRTP
Referencias
- ^ RFC 2104
- ^ "Tutorial de llamadas seguras - Proyecto Asterisk - Wiki del proyecto Asterisk" . wiki.asterisk.org . Consultado el 22 de diciembre de 2019 .
- ^ "Asterisco SRTP" . VoIP-Info . 2007-02-13 . Consultado el 22 de diciembre de 2019 .