Articulo de referencia

Protocolo de transporte seguro en tiempo real

El Protocolo de Transporte en Tiempo Real Seguro ( SRTP ) es un perfil para el Protocolo de Transporte en Tiempo Real (RTP) diseñado para proporcionar cifrado, autenticación e i...

El Protocolo de Transporte en Tiempo Real Seguro ( SRTP ) es un perfil para el Protocolo de Transporte en Tiempo Real (RTP) diseñado para proporcionar cifrado, autenticación e integridad de mensajes , y protección contra ataques de repetición a los datos RTP tanto en aplicaciones unicast como multicast . Fue desarrollado por un pequeño equipo de expertos en protocolos de Internet y criptografía de Cisco y Ericsson . Fue publicado por primera vez por la 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 RTCP Seguro ( SRTCP ); este proporciona de forma segura a SRTP las mismas funciones que RTCP proporciona a RTP.

El uso de SRTP o SRTCP es opcional en aplicaciones RTP o RTCP; sin embargo, incluso si se utilizan, todas las funciones que ofrecen (como el cifrado y la autenticación) son opcionales y pueden habilitarse o deshabilitarse por separado. La única excepción es la autenticación de mensajes, que es indispensable y obligatoria al usar SRTCP.

Cifrado del 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 utilizar el cifrado de bloques AES como cifrado de flujo :

Modo de contador de enteros segmentado
Un modo de contador típico , que permite el acceso aleatorio a cualquier bloque, es esencial para el tráfico RTP que se ejecuta en redes poco fiables con posible pérdida de paquetes. En general, casi cualquier función puede utilizarse como contador , siempre que no se repita durante un gran número de iteraciones. Sin embargo, el estándar para el cifrado de datos RTP es simplemente un contador incremental entero convencional. 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 sesión predeterminada de 112 bits.
modo f8
Una variante del modo de retroalimentación de salida , mejorada para permitir búsquedas y con una función de inicialización modificada. Los valores predeterminados de la clave de cifrado y la clave de sal son los mismos que para AES en modo contador. (Se ha elegido AES ejecutándose en este modo para su uso en redes móviles 3G ).

Además del cifrado AES, SRTP permite desactivar el cifrado por completo mediante el cifrado nulo , que puede considerarse una alternativa compatible. De hecho, el cifrado nulo no realiza ningún cifrado; el algoritmo de cifrado funciona como la función identidad y copia el flujo de entrada al flujo de salida sin modificaciones. Es obligatorio implementar este modo de cifrado en cualquier sistema compatible con SRTP. Por lo tanto, puede utilizarse cuando no se requieren las garantías de confidencialidad que ofrece SRTP, mientras que otras características de SRTP, como la autenticación y la integridad de los mensajes, sí pueden utilizarse.

Si bien SRTP puede adaptarse fácilmente a nuevos algoritmos de cifrado, el estándar SRTP establece que estos solo pueden introducirse mediante la publicación de un nuevo RFC ( Federico Modificado de Referencia ) que defina claramente el nuevo algoritmo.

Autenticación, integridad y protección contra repetición.

Los algoritmos de cifrado mencionados anteriormente no garantizan por sí solos la integridad de los mensajes; un atacante no podrá descifrar los datos, pero sí podrá falsificarlos o reproducirlos. Por lo tanto, el estándar SRTP también proporciona los medios para garantizar la integridad de los datos y protegerlos contra la reproducción.

Para autenticar el mensaje y proteger su integridad, se utiliza el algoritmo HMAC-SHA1 [ 1 ] . Este produce un resultado de 160 bits, que luego se trunca a 80 o 32 bits para convertirse en la etiqueta de autenticación que se añade a cada paquete. El HMAC se calcula sobre la carga útil del paquete y el material de la cabecera, 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 de cada nuevo mensaje recibido y solo admite el nuevo mensaje si no se ha recibido con anterioridad. Este enfoque se basa en la protección de la integridad para imposibilitar la modificación del número de secuencia sin ser detectado.

Derivación de claves

Se utiliza una función de derivación de claves para obtener las distintas claves empleadas 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 forma criptográficamente segura. De este modo, el protocolo de gestión de claves solo necesita intercambiar 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 clave impide que un atacante recopile grandes cantidades de texto cifrado con una sola 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, las múltiples aplicaciones de la función de derivación de clave brindan seguridad hacia atrás y hacia adelante, ya 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 lograra recuperar una clave de sesión, no podría descifrar los mensajes protegidos con claves de sesión anteriores y posteriores derivadas de la misma clave maestra. (Cabe señalar que, por supuesto, una clave maestra filtrada revela todas las claves de sesión derivadas de ella).

SRTP se basa en un protocolo externo de gestión de claves para establecer 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. Varios proveedores ofrecen productos que utilizan el método de intercambio de claves SDES .

DTLS-SRTP

  • El RFC 5764 define DTLS-SRTP . DTLS-SRTP utiliza el protocolo DTLS para entregar la clave maestra y permite la autenticación mediante clave pública. 

Interoperabilidad y aplicaciones

Consulte la sección Comparación de software VoIP §  Software VoIP seguro para teléfonos, servidores y aplicaciones compatibles con SRTP.

Telefonía (VoIP)

Compatibilidad con navegadores web

Navegadores web conocidos con soporte SRTP de algún tipo

Familias de navegadores web con algún nivel de SRTP en las ramas de actualización principales del sistema de renderizado central

Hasta el momento, no se conoce ningún soporte SRTP para navegadores web basados ​​en texto.

Documentos de normas

  • RFC 3711 , Norma propuesta, Protocolo de transporte seguro en tiempo real (SRTP) 
  • RFC 4771 , Norma propuesta, Contador de desbordamiento 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 , Estándar 64, RTP: Un protocolo de transporte para aplicaciones en tiempo real 
  • RFC 2104 , Informativo, HMAC: Hashing con clave para la autenticación de mensajes 
  • RFC 7714 , Norma propuesta, Cifrado autenticado AES-GCM en el Protocolo de transporte seguro en tiempo real (SRTP) 

Referencias

  1. RFC 2104 
  2. "Tutorial de llamadas seguras - Proyecto Asterisk - Wiki del Proyecto Asterisk" . wiki.asterisk.org . Consultado el 22 de diciembre de 2019 .
  3. "Asterisk SRTP" . VoIP-Info . 13 de febrero de 2007. Consultado el 22 de diciembre de 2019 .