Seguridad de Skype Ing. Claudio Meola - Consultor CYBSEC ([email protected]) 1. Introducción Skype (disponible en http://www.skype.com) es un cliente multiuso que proporciona funcionalidades tanto de comunicación de voz como de mensajería instantánea y transferencia de archivos. La compañía destaca las características de comunicación de voz, y es una de las aplicaciones más populares para hacer y recibir llamadas sobre Internet. La arquitectura de Skype se asemeja mucho a los servicios de P2P (peer-to-peer). Esto no debe sorprender, ya que sus fundadores, Niklas Zennström y Janus Friis, fueron también los creadores de Kazaa, uno de los servicios más populares de P2P. Más que transmitir todos los datos de la comunicación de voz a través de un servidor central, Skype tiene la capacidad de utilizar las estaciones registradas en el sistema para transferir los datos entre los usuarios. Esto permite que el servicio maneje datos eficientemente mientras que los costos del mismo se mantienen al mínimo. Skype realizó el lanzamiento de su primera versión beta el 29 de agosto de 2003. Hacia octubre de 2004, Skype tenía más de un millón de usuarios en línea simultáneamente, y el 18 de mayo de 2005, tenía tres millones de usuarios en línea en simultáneo. Obviamente, Skype se ha hecho increíblemente popular en un tiempo muy corto. Por supuesto, mucha de esta popularidad se debe al hecho de que Skype proporciona comunicaciones de voz gratuitas, y además, la calidad de sonido es muy buena. Skype también proporciona servicios para hacer y recibir llamadas desde líneas telefónicas estándares. Estos servicios si tienen costo. El cliente de Skype se encuentra disponible para diversas plataformas y sistemas operativos, incluyendo Microsoft Windows, Linux, Mac OSX, y PocketPC. El modelo de negocio de Skype se basa en proveer los servicios para los cuales los usuarios pagan. Skype vende dos servicios, SkypeOut y SkypeIn. Cuando usted compra créditos para estos servicios, Skype le permite hacer o recibir llamadas de cualquier persona en el mundo que utilice un teléfono estándar. SkypeOut le permite marcar cualquier número de teléfono en el mundo, mientras que SkypeIn le proporciona un número de teléfono. Este número de teléfono puede ser llamado desde cualquier lugar utilizando un teléfono estándar y permite que los usuarios de Skype acepten llamadas entrantes a este número de teléfono asignado. Estos servicios proveen a los usuarios de Skype la capacidad de comunicarse con cualquier persona en el mundo, ya sea otro cliente Skype o cualquier persona con un teléfono. 2. Arquitectura de Skype Skype utiliza una arquitectura similar a Kazaa u otras redes P2P (Figura 1). No se trata de una red P2P muy estricta puesto que emplea un servidor centralizado para el proceso de alta de nuevos usuarios y para la autenticación de los usuarios existentes, utilizando un ID de usuario y contraseña. Hay tres tipos principales de computadoras definidas dentro del servicio de Skype: un nodo estándar, un súper nodo, y el servidor de Skype. Un nodo estándar es cualquier estación de trabajo que posea el software del cliente de Skype instalado. Los usuarios pueden hacer y recibir llamadas, enviar mensajes, y utilizar toda la funcionalidad de Skype a través de esta estación de trabajo. Los súper nodos son similares en apariencia y funcionalidad a la del usuario final, pero estas estaciones de trabajo han sido elegidas por el servicio de Skype para gestionar mucho del trabajo del sistema Skype. Si una estación de trabajo tiene una dirección IP (Internet Protocol) pública y un ancho de banda adicional, es candidata a convertirse en un súper nodo, y el usuario final no tiene ningún control sobre si su estación de trabajo es un súper nodo o no. Figura 1: Arquitectura de Skype Los súper nodos hacen el trabajo pesado para el servicio de Skype, y el servicio confía en estos súper nodos, no en un servidor centralizado, para mantener la ubicación de los usuarios en un directorio (conocido como índice global) y los datos de los nodos regulares. Las estaciones de trabajo que están detrás de un firewall o de un gateway NAT (Network Address Translation) nunca serán elegibles para convertirse en un súper nodo puesto que la estación de trabajo no posee una dirección IP pública. © 2007 CYBSEC S.A. 2 Dado que las comunicaciones, incluyendo texto, voz, y archivos se pueden enviar a otras estaciones de trabajo antes de alcanzar al destinatario, resulta importante cifrar estas comunicaciones de modo que los usuarios de las estaciones de trabajo que están retransmitiendo esta información no puedan accederla. El cifrado de la sesión comienza antes de que los dos clientes inicien la transferencia de información entre ellos. Todos los datos que se envían y se reciben entre los dos clientes se cifran usando un algoritmo de 256bit basado en el estándar AES. La clave para este intercambio es única para esa sesión particular y para el conjunto de estaciones de trabajo que intercambian la información. Una vez que haya terminado la sesión, la clave deja de ser válida. La figura 2 muestra la ventana principal que se presenta a un usuario cuando se ha autenticado en el sistema Skype. Según el website de Skype, "Skype utiliza RSA de 1024 bits para negociar las claves simétricas de AES. Las claves públicas del usuario son certificadas por el servidor de Skype en la conexión usando certificados RSA de 1536 o de 2048 bits." Figura 2: Ventana principal de Skype © 2007 CYBSEC S.A. 3 Skype se comunica utilizando una gran gama de puertos con diversas estaciones de trabajo y servidores. El cliente utiliza paquetes TCP (Transmission Control Protocol) y UDP (User Datagram Protocol) para transmitir información entre estos equipos. Por defecto, el cliente de Skype utilizará puertos superiores al 1387 para atender conexiones entrantes, y si estos puertos son inaccesibles, utilizará los puertos 80 y 443. Además, Skype proporciona soporte para varios proxies, incluyendo HTTP (Hypertext Transfer Protocol), HTTPS (HTTP sobre SSL), y SOCKS5. En la figura 3 se muestra la ventana de configuración de la conexión de Skype. Figura 3: Configuración de la conexión de Skype Skype utiliza un protocolo propietario para las comunicaciones con otros usuarios. No se sabe mucho sobre este protocolo puesto que Skype lo mantiene cerrado y cifrado. Se puede encontrar más información sobre la arquitectura de Skype en un artículo publicado por Salman A. Baset y Henning Schulzrinne de la Universidad de Columbia. Este artículo está disponible en formato PDF en http://arxiv.org/ftp/cs/papers/0412/0412017.pdf. 3. Aspectos de Seguridad ¿Skype es seguro? ¿El programa es seguro de utilizar? ¿Skype es más seguro que una llamada telefónica hecha con un teléfono analógico o ISDN? ¿Cómo es la seguridad de Skype comparada con otros sistemas basados en VoIP? Responder a estas preguntas no es sencillo. La seguridad no es una cualidad abstracta que se pueda analizar de forma aislada: para evaluar la seguridad de Skype es necesario considerar amenazas específicas y luego determinar si el diseño o la operación de Skype protegerán contra esas amenazas. © 2007 CYBSEC S.A. 4 Para una organización civil que confía en Skype para las comunicaciones de voz, las siguientes características de seguridad son de gran importancia: Privacidad ¿El sistema Skype permite que un usuario no autorizado escuche una conversación? Skype cifra la información que transmite sobre Internet. La seguridad de los datos intercambiados sobre una conexión cifrada depende de muchos factores, incluyendo los algoritmos de cifrado usados, cómo se eligen o se intercambian las claves de cifrado (esto se conoce como administración de claves), y la implementación de los algoritmos y de los protocolos en el software. Los clientes de Skype utilizan una combinación de protocolos para la registración en la red, la búsqueda de otros usuarios, y la realización de una llamada telefónica de voz. Finalmente, se utiliza una comunicación cifrada para transmitir voz, mensajes instantáneos, y archivos. ¿Skype realmente utiliza el cifrado? Skype utiliza el algoritmo RSA para el intercambio de claves y AES de 256 bits como algoritmo de cifrado. Sin embargo, debido a que Skype no ha publicado su protocolo, no es posible decir si el protocolo que utiliza RSA es seguro o no. Estas preocupaciones necesitan ser tomadas en contexto. Una conversación utilizando Skype es bastante más privada que una conversación usando un teléfono analógico tradicional o ISDN. Esas conversaciones pueden ser monitoreadas por cualquier persona que tenga acceso físico a la línea telefónica en cualquier punto entre las partes. El "cifrado" de Skype en contexto Skype es también más seguro que los sistemas actuales de VoIP, puesto que el cifrado no suele ser ofrecido por parte de la mayoría de los sistemas de VoIP. Sin embargo, es posible proteger una conversación de VoIP encaminando el tráfico de VoIP sobre una red privada virtual (VPN). Un sistema que usa VoIP sobre una VPN es probablemente más seguro que Skype, si se asume que la VPN fue configurada correctamente. Es importante mencionar que la seguridad de Skype se puede ver afectada con el uso de spyware u otra clase de programas de monitoreo que funcionen en la computadora del usuario. Por ejemplo, los programas como Netbus y Back Orifice pueden permitir que un usuario malintencionado active el micrófono de una PC y transmita el audio a un sitio remoto en Internet. Existen otras preocupaciones sobre la privacidad de Skype que los usuarios deben conocer: Aunque el cliente de Skype no registra las conversaciones de voz, tiene la capacidad de registrar las conversaciones de mensajería instantánea en un archivo histórico por usuario. Esta es la configuración por defecto. Estos archivos podrían ser recuperar © 2007 CYBSEC S.A. 5 con el uso de spyware, por otras aplicaciones de control remoto, o por un intruso que logra acceso físico a un sistema informático. Debido a que se registran a todos los usuarios de Skype en la misma "nube", cualquier usuario de Skype puede averiguar si otro usuario se encuentra conectado en un instante dado. Skype intenta enviar los paquetes directamente sobre Internet entre los participantes de una conversación, pero si no es posible una trayectoria directa, Skype enviará los paquetes a través de otras computadoras intermedias denominadas "supernodos". No se sabe si un súper nodo puede monitorear el tráfico de voz que pasa a través de él. Los representantes de Skype aseguran que tal monitoreo no es posible debido al uso del cifrado. Los servicios de llamada a teléfonos convencionales pueden usar cifrado hasta los gateways, pero en ese punto las llamadas telefónicas se descifran y se envían sobre la red pública de telefonía. Finalmente, se debe recordar que la seguridad del sistema Skype también depende de la buena voluntad de sus programadores y de la infraestructura donde funcionan los servidores de Skype. Autenticidad ¿Si inicia una conversación de Skype con otro usuario, está seguro que se está comunicando con el usuario cuyo nombre de usuario especificó? Cada usuario de Skype posee un nombre de usuario y una contraseña. Cada usuario tiene una dirección de email registrada. Para iniciar sesión en Skype el usuario debe proporcionar su nombre de usuario y su contraseña. Si pierde la contraseña, Skype cambiará la contraseña del usuario y le enviará la nueva a la dirección de email registrada. El cliente de Skype también tiene la capacidad de “recordar" un nombre de usuario y una contraseña para realizar la conexión automáticamente. Si la red de Skype ha sido vulnerada, varios ataques podrían ser posibles: Que un usuario malintencionado averigüe la combinación usuario/contraseña de los usuarios registrados de Skype. Si un usuario accediera a Skype a través de un proveedor de Internet malintencionado, dicho proveedor podría direccionar las comunicaciones de Skype del usuario a otro nodo. Alternativamente, podría ser posible que un nodo malintencionado falsifique una autentificación válida, permitiendo que un cliente inicie una sesión con una cuenta de usuario particular de Skype aunque la contraseña para esa cuenta no se conozca. Dado que Skype es un sistema de comunicaciones de voz, los usuarios pueden identificar con frecuencia a la otra persona con la que se están comunicando por el sonido de la voz. La voz es biométrica. Sin embargo, esta capa se encuentra ausente si Skype se utiliza solamente para la mensajería de texto o intercambio de archivos. © 2007 CYBSEC S.A. 6 Bajo circunstancias normales, el sistema de autenticación de Skype proporciona niveles similares de autenticación a los de otros sistemas de usuario/contraseña, tales como AOL o Hotmail. Disponibilidad ¿Skype siempre funciona si ambos participantes están conectados a Internet, o puede haber casos donde no pueda contactar a otro usuario de Skype, incluso si ambos se encuentran con sesión iniciada? ¿Puede interrumpirse una conversación en curso? Uno de los grandes triunfos del siglo veinte fue la asombrosa disponibilidad de la red pública de telefonía. En muchas regiones los clientes han sufrido caídas del servicio de cinco minutos por año o menos, esto equivale a una disponibilidad de 99.99905%. Aunque el diseño original de Internet era permitir que la red sobreviva a la pérdida de enlaces críticos, la disponibilidad se ha convertido solo recientemente en una meta de los fabricantes de equipamiento de Internet. El servicio de Internet es, en general, inferior al servicio telefónico. Así es que probablemente cualquier servicio de telefonía de Internet ofrezca una disponibilidad inferior a la de la red de telefonía pública. Existen factores adicionales que podrían comprometer la disponibilidad potencial de Skype. Puesto que el cliente de Skype requiere una autenticación centralizada, podría darse el caso de que la red entera de Skype deje de funcionar si los servidores de autenticación de Skype fallan o no se encuentran disponibles. Supervivencia ¿Si la red o la infraestructura de Skype se interrumpe o se daña de alguna manera, pueden los usuarios de Skype continuar comunicándose mientras la red se encuentra en dicha situación? Las redes de conmutación de paquetes fueron diseñadas para permitir que la comunicación entre los nodos pueda continuar incluso si la conexión directa entre ambos fuese interrumpida. La capacidad de un sistema de continuar funcionando después de que se haya degradado se conoce como supervivencia. El diseño del Internet permite que los proveedores de Internet elijan el nivel de supervivencia que desean para sus redes. Cuanto mayor es la supervivencia de un sistema, generalmente el mismo es más costoso y raramente proporciona un funcionamiento cotidiano mejor. Consecuentemente, la mayoría de los usuarios de Internet y muchos proveedores de servicios de Internet no han implementado a los sistemas para que puedan soportar la falla arbitraria de uno o más componentes. No se sabe si los servidores de autenticación de Skype pueden sobrevivir a las interrupciones o a los ataques de red. Resistencia ¿Si la red o la infraestructura de Skype se interrumpen o se dañan de manera tal que Skype deja de funcionar, los usuarios de Skype pueden reestablecer rápidamente la comunicación con otros usuarios? © 2007 CYBSEC S.A. 7 Las redes de conmutación de paquetes son extraordinariamente resistentes. En la mayoría de los casos las conexiones de Internet se pueden restaurar más rápidamente que las redes de telefonía tradicionales con el uso de dispositivos inalámbricos. Una ventaja adicional de Skype y de otros sistemas basados en VoIP es que estos sistemas fueron diseñados con los usuarios móviles en mente: son altamente tolerantes al cambio cotidiano de la dirección IP de un usuario. Consecuentemente, Skype y otros sistemas basados en VoIP son generalmente muy resistentes a interrupciones locales de la red. En el caso específico de Skype, mientras la computadora pueda registrarse con la red de Skype, el usuario podrá recibir llamadas donde se encuentre. Por otra parte, el servicio de Skype probablemente no podría funcionar si la infraestructura de autenticación de Skype no se encontrara disponible. Integridad de la conversación ¿Skype pierde partes de una conversación en progreso? ¿Se entregan intactos los archivos que se transmiten? Las características de integridad de Skype son totalmente desconocidas. Es posible que una conversación de voz sobre el sistema Skype sufra interrupciones o se vea degradado antes de alcanzar el otro extremo. Asimismo, Skype no garantiza que los mensajes instantáneos o los archivos serán entregados tal como fueron transmitidos. En la práctica, sin embargo, Skype parece hacer un buen trabajo transmitiendo fielmente la voz, y entregando sin corrupción los mensajes instantáneos y los archivos. Una excepción a esta regla parece ser cuando Skype se utiliza sobre una red inalámbrica 802.11. En este caso, la calidad de la voz sufre considerablemente. Integridad del sistema ¿Cómo afecta el uso de Skype a otras aplicaciones que se están ejecutando en la computadora del usuario y a la red? Otros programas P2P contienen spyware; ¿Skype los trae? Resulta preocupante para los administradores de red cuando los usuarios descargan y ejecutan software no autorizado, ya que entre otras implicancias, suelen consumir grandes cantidades de ancho de banda y pueden afectar a la propiedad intelectual. Debido a que las conversaciones de Skype se limitan a la voz, la carga total que un "súper nodo" Skype podría consumir sobre una red sería igual a dos veces el número de conversaciones que un súper nodo podría manejar en un determinado momento por el ancho de banda requerido para una única conversación de voz. No se sabe cuan alto es este límite. Skype podría también ser un vector de infección para el spyware. Aunque los creadores del programa aseguran que no contiene spyware o adware, es posible que no sea verdad o que su política cambie en el futuro. Skype podría tener vulnerabilidades de seguridad que una tercera persona podría explotar. Cabe destacar que muchos de los riesgos planteados por Skype no son diferentes a los riesgos planteados por el email o por otros medios de comunicación persona a persona. De hecho, Skype plantea probablemente pocos riesgos a la integridad del sistema total simplemente porque el uso primario de Skype es para comunicaciones de voz. Sin embargo, se deben extremar los cuidados cuando se utiliza Skype para intercambiar archivos. © 2007 CYBSEC S.A. 8 Igualmente, comparado con Kazaa u otros programas similares a este, Skype presenta menos riesgos porque el intercambio se realiza siempre entre individuos específicos. 4. Conclusiones Skype utiliza una tecnología nueva, por lo tanto, no ha sido objeto de demasiadas investigaciones. Quizás haya contribuido a esto el hecho de que la compañía mantiene en secreto la implementación de los protocolos. A pesar de ello, se pudo determinar que los diseñadores de Skype tuvieron en cuenta a la seguridad desde su concepción, y que ofrece más seguridad que las comunicaciones de voz analógica o ISDN convencionales, pero menos que los sistemas de VoIP sobre VPN. Skype tiene en cuenta a la autenticación y al cifrado de las comunicaciones que se establecen. El cifrado incluye, además de la voz, a la mensajería instantánea y al intercambio de archivos. Sin embargo, no se recomienda utilizar la funcionalidad de transferencia de archivos, ya que los mismos podrían contener código malicioso o violar la propiedad intelectual. Además, se recomienda deshabilitar el registro de las conversaciones de mensajería instantánea, que viene habilitado por defecto, y no recordar el usuario y la contraseña en el momento de la autenticación. En lo que se refiere a vulnerabilidades, Skype ha sufrido relativamente muy pocas, y fueron remediadas con actualizaciones de versión del cliente. Un punto importante a considerar, aunque escapa a los aspectos de seguridad, es el ancho de banda que se utiliza para cada conexión. En ambientes empresariales, Skype provee un conjunto de políticas administrativas que facilitan su implementación y mantenimiento centralizado, que permiten controlar los puertos de comunicaciones utilizados, la posibilidad o no de convertirse en súper nodo, la posibilidad o no de transferir archivos, etc. 5. Referencias http://www.skype.com/security http://arxiv.org/ftp/cs/papers/0412/0412017.pdf http://csrc.nist.gov/publications/nistpubs/800-58/SP800-58-final.pdf Securing IM and P2P Applications for the Enterprise Paul L. Piccard Syngress Publishing © 2006 ISBN:9781597490177 Ing. Claudio Meola - Consultor CYBSEC CYBSEC S.A. desde 1996 se dedica exclusivamente a prestar servicios profesionales especializados en Seguridad de la Información. Su área de servicios cubre América y Europa y más de 250 clientes acreditan la trayectoria empresaria. Para más información: www.cybsec.com. © 2007 CYBSEC S.A. 9