El Protocolo seguro de transporte en tiempo real ( SRTP ) es un perfil para el Protocolo de transporte en tiempo real (RTP) destinado a proporcionar cifrado, autenticación e integridad de mensajes y reproducir protección contra ataques a los datos RTP en aplicaciones de unidifusión y multidifusión . Fue desarrollado por un pequeño equipo de expertos en criptografía y protocolo de Internet de Cisco y Ericsson . Fue publicado por primera vez por el IETF en marzo de 2004 como RFC 3711.
Dado que RTP va acompañado del Protocolo de control RTP (RTCP) que se utiliza para controlar una sesión RTP, SRTP tiene un protocolo hermano, llamado Secure RTCP ( SRTCP ); proporciona de forma segura las mismas funciones a SRTP que las proporcionadas por RTCP a RTP.
La utilización de SRTP o SRTCP es opcional en aplicaciones RTP o RTCP; pero incluso si se utiliza SRTP o SRTCP, todas las funciones proporcionadas (como cifrado y autenticación) son opcionales y se pueden habilitar o deshabilitar por separado. La única excepción es la función de autenticación de mensajes, que es indispensable y necesaria cuando se utiliza SRTCP.
SRTP y SRTCP utilizan el Estándar de cifrado avanzado (AES) como cifrado predeterminado . Hay dos modos de cifrado definidos que permiten utilizar el cifrado de bloque AES como cifrado de flujo :
Además del cifrado AES, SRTP permite desactivar el cifrado por completo, utilizando el llamado cifrado de cifrado nulo , que puede asumirse como un cifrado alternativo compatible. De hecho, el cifrado nulo no realiza ningún cifrado; el algoritmo de cifrado funciona como función de identidad y copia el flujo de entrada en el flujo de salida sin ningún cambio. Es obligatorio implementar este modo de cifrado en cualquier sistema compatible con SRTP. Como tal, se puede utilizar cuando no se requieren las garantías de confidencialidad garantizadas por SRTP, mientras que se pueden utilizar otras funciones de SRTP, como la autenticación y la integridad de los mensajes.
Aunque SRTP puede adaptarse fácilmente a nuevos algoritmos de cifrado, el estándar SRTP establece que solo se pueden introducir nuevos algoritmos de cifrado mediante la publicación de un nuevo RFC de seguimiento estándar complementario que debe definir claramente el nuevo algoritmo.
Los algoritmos de cifrado mencionados anteriormente no garantizan por sí solos la integridad del mensaje; un atacante no podrá descifrar datos, pero sí podrá falsificar o reproducir datos transmitidos previamente. Por lo tanto, el estándar SRTP también proporciona los medios para garantizar 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 anteriormente, los compara con el número de secuencia de cada nuevo mensaje recibido y admite el nuevo mensaje sólo 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.
Se utiliza una función de derivación de claves para derivar las diferentes claves utilizadas en un contexto criptográfico (claves de cifrado y sales SRTP y SRTCP, claves de autenticación SRTP y SRTCP) a partir de una única clave maestra de una forma criptográficamente segura. Por lo tanto, el protocolo de gestió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 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 hay una gran cantidad de texto cifrado disponible. 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 .
Consulte Comparación de software VoIP § Software VoIP seguro para teléfonos, servidores y aplicaciones que admiten SRTP.
Navegadores conocidos con algún tipo de soporte SRTP
Familias de navegadores web con cierto nivel de SRTP en las ramas de actualización principales del sistema de representación principal
Hasta el momento no existe soporte SRTP conocido para navegadores web basados en texto. Aunque SRTP podría usarse para operar en una VPN , junto con navegadores web, no se sabe que ninguna red VPN lo esté usando.