domingo, 9 de febrero de 2014

Encriptación de las comunicaciones usando Elastix II

Encriptación de las comunicaciones

Se puede aplicar la encriptación en tres niveles:
  • Señalización (SIP).
  • Multimedia (RTP).
  • Transmisión de datos en general (OpenVPN).

Encriptación de la señalización

Protocolo SIP
Cuando se conecta un dispositivo SIP a la red de telefonía, lo primero que hace es anunciar al servidor SIP que se encuentra disponible para recibir llamadas. Los dispositivos SIP se identifican usando direcciones SIP, también conocidas como SIP-URI, que tienen la forma:

sip:usuario@dominio
En Elastix, el registro de extensiones SIP y el envío peticiones para realizar llamadas, requiere por defecto autenticación (usuario y contraseña).
La siguiente figura muestra el proceso de autenticación de un dispositivo SIP.


Debido a que el protocolo SIP dentro de su especificación no incluye mecanismos de seguridad, la información se envía como texto plano, puede ser fácilmente vista y utilizada por un atacante.

SIP/TLS

El documento RFC en donde se define el protocolo SIP, recomienda el uso de TLS como medida de protección para evitar ataques como la interceptación de llamadas, o ataques man-in-the-middle, entre otros.
TLS “Transport Layer Security”, es un protocolo mediante el cual se establece una conexión segura por medio de una canal cifrado entre dos dispositivos. Esta definido en el documento RFC 4346.
Se divide en dos partes:
  • TLS Record Protocol, que se encarga de mantener una conexión segura entre dos dispositivos.
  • TLS Handshake Protocol cuya función es la negociación de la llaves criptográficas y la autenticación cliente/servidor.

Utilizando SIP/TLS conocido como SIPS, cuando un usuario, usando un dispositivo SIP desea realizar y mantener una llamada con cierto nivel de privacidad, utiliza el SIPS URI (SIP over TLS).

La forma en que se genera una llamada utilizando SIPS es el siguiente:
  • Los dispositivos SIP (cliente y servidor) tienen cargado un certificado firmado por una autoridad de certificación común.
  • Cuando se realiza una llamada, se inicia con la negociación las llaves criptográficas y la autenticación cliente – servidor. Ambos dispositivos SIP deben tener certificados firmados por la misma autoridad de certificación.
  • Durante la negociación de las llaves criptográficas se genera de forma dinámica una llave simétrica y los algoritmos de encriptación que van a ser utilizados por los dispositivos.
  • Cuando termina el proceso de negociación de las llaves criptográficas, los dispositivos establecen una sesión SIP entre ellos. Las llaves y algoritmos negociados previamente se utilizan para encriptar y desencriptar los mensajes SIP que se van intercambiando.
El SIPS URI es similar al SIP URI que es transportado sobre UDP o TCP en comunicaciones no cifradas. Las diferencias principales son:
  • El SIPS URI tiene la forma: sips:usuario@dominio.
  • Para el transporte de información se usa TLS. Por tanto los datos enviados son cifrados.
  • El puerto SIPS es el 5061, en lugar del puerto 5060 que esta reservado para UDP o TCP.
Para la transmisión de datos se recomienda utilizar el algoritmo AES 128-bit en modo CBC (Cipher Block Chaining), mientras que para la autenticación y verificación de la integridad de los mensajes, se debería usar SHA-1. Este aspecto dependerá de la capacidad del dispositivo SIP a utilizar.
Otro beneficio de usar SIPS, es que permite el intercambio de las llaves de encripción que van a ser usadas para cifrar la comunicación (voz, vídeo, entre otras) usando SRTP.
Si bien SIP/TLS (SIPS) provee los mecanismos proteger comunicaciones entre dos dispositivos (cliente/servidor), no es posible mantener la confidencialidad de forma directa en la comunicaciones extremo a extremo (cliente/cliente). Para cada segmento, una conexión TLS distinta se establece
(hop by hop). En la siguiente figura se muestra esta relación.

El uso de SIPS tiene las siguientes ventajas:
  • Soporte para autenticación mutua (cliente y servidor). Importante para evitar ataques man-in-the-middle.
  • Provee confidencialidad e integridad de la comunicación.
  • TLS es un protocolo universalmente soportado por diferentes dispositivos y sistemas operativos.
  • Protege el proceso de negociación de las llaves a ser utilizadas para la encriptación de multimedia (SRTP).
Así mismo tiene las siguientes limitaciones:
  • No brinda confidencialidad extremo a extremo. Requiere la terminación y creación de una nueva sesión para cada uno de los segmentos.
  • Solo puede ser usado con TCP o SCTP, pero no con UDP. Muchos proveedores de telefonía SIP solo soportan tráfico UDP.
  • Aumenta la utilización de recursos en el servidor SIP (Elastix) en un 30%, en especial en el uso de procesador y memoria RAM.

No hay comentarios: