El protocolo de Skype es una red de telefonía de Internet patentada que utiliza Skype . Skype no ha puesto a disposición del público las especificaciones del protocolo y las aplicaciones oficiales que utilizan el protocolo son de código cerrado .
La red de Skype no es interoperable con la mayoría de las otras redes de voz sobre IP (VoIP) sin la licencia adecuada de Skype. Se han realizado numerosos intentos de estudiar o aplicar ingeniería inversa al protocolo para revelar el protocolo, investigar la seguridad o permitir clientes no oficiales.
El 20 de junio de 2014, Microsoft anunció la desaprobación del antiguo protocolo de Skype. Dentro de varios meses a partir de esta fecha, para continuar usando los servicios de Skype, los usuarios de Skype tuvieron que actualizar a las aplicaciones de Skype lanzadas en 2014, y los usuarios no pudieron iniciar sesión en versiones anteriores de Skype (clientes). [1] [2] No se ha hecho ningún anuncio sobre si SmartTV y los teléfonos de hardware con funcionalidad de Skype incorporada continuarán funcionando sin interrupciones. El nuevo protocolo de Skype, el Protocolo de notificación de Microsoft 24, prometía una mejor mensajería fuera de línea y una mejor sincronización de mensajes entre los dispositivos de Skype. La desaprobación entró en vigencia en la segunda semana de agosto de 2014. [3]
Arquitectura de igual a igual
Skype fue la primera red de telefonía IP peer-to-peer . [4] La red contiene tres tipos de entidades: supernodos , nodos ordinarios y el servidor de inicio de sesión. Cada cliente mantiene una caché de host con la dirección IP y los números de puerto de los supernodos accesibles. El directorio de usuarios de Skype está descentralizado y distribuido entre los supernodos de la red. Los supernodos se agrupan en ranuras (9-10 supernodos) y las ranuras se agrupan en bloques (8 ranuras). [5]
Anteriormente, cualquier cliente con un buen ancho de banda, sin restricciones debido al firewall o traducción de direcciones de red (NAT), y una potencia de procesamiento adecuada, podía convertirse en un supernodo. Esto supuso una carga adicional para aquellos que se conectaban a Internet sin NAT, ya que Skype usaba sus computadoras y conexiones a Internet como terceros para perforar UDP (para conectar directamente dos clientes detrás de NAT) o para retransmitir completamente las llamadas de otros usuarios. En 2012, Microsoft alteró el diseño de la red y puso todos los supernodos bajo su control como servidores alojados en centros de datos. [6] En ese momento, Microsoft defendió la medida, diciendo que "creen que este enfoque tiene beneficios inmediatos de rendimiento, escalabilidad y disponibilidad para los cientos de millones de usuarios que componen la comunidad de Skype". [7] En ese momento había cierta preocupación con respecto a las implicaciones del cambio en la privacidad, [8] que parecen haber sido probadas como ciertas con la revelación del programa de vigilancia PRISM en junio de 2013. [9] [10]
Skype no admite el uso del protocolo IPv6 , [11] lo que reduciría en gran medida la complejidad asociada con la estructura de comunicación IPv4 antes mencionada.
Los supernodos retransmiten comunicaciones en nombre de otros dos clientes, ambos detrás de firewalls o traducción de direcciones de red de "uno a varios". Sin la retransmisión por los supernodos, dos clientes con dificultades de firewall o NAT no podrían realizar ni recibir llamadas entre sí. Skype intenta que los dos extremos negocien los detalles de la conexión directamente, pero a veces la suma de problemas en ambos extremos puede impedir que se establezca una conversación directa.
Los problemas con los firewalls y NAT pueden ser:
- Los números de puerto externos o la dirección IP no se pueden derivar, porque NAT los reescribe
- El firewall y NAT en uso evitan que se reciba la sesión.
- UDP no se puede utilizar debido a problemas de NAT, como el tiempo de espera
- Los cortafuegos bloquean muchos puertos
- TCP a través de NAT de varios a uno siempre es "solo hacia afuera" de forma predeterminada: agregar configuraciones de reenvío de puertos al enrutador NAT puede permitir la recepción de sesiones TCP
Protocolo
La señalización se cifra mediante RC4 ; sin embargo, el método solo oculta el tráfico, ya que la clave se puede recuperar del paquete. Los datos de voz están encriptados con AES . [12]
La interfaz de programación de aplicaciones (API) del cliente de Skype abre la red a los desarrolladores de software. La API de Skype permite que otros programas usen la red de Skype para obtener información de " páginas blancas " y administrar llamadas.
El código de Skype es de código cerrado y el protocolo no está estandarizado. [13] Partes del cliente utilizan Internet Direct (Indy) , una biblioteca de comunicación de socket de código abierto. [ cita requerida ]
El 8 de julio de 2012, un investigador de Benin, Ouanilo Medegan, publicó artículos y código de prueba de concepto, resultados de su ingeniería inversa en el cliente de Skype. [14]
Detección de protocolo
Muchas empresas de redes y seguridad afirman detectar y controlar el protocolo de Skype para aplicaciones empresariales y de operador. Si bien los métodos de detección específicos utilizados por estas empresas a menudo son propietarios, la prueba de chi-cuadrado de Pearson y la caracterización estocástica con clasificadores Naive Bayes son dos enfoques que se publicaron en 2007. [15]
Capa de ofuscación
El algoritmo de cifrado RC4 se utiliza para ofuscar la carga útil de los datagramas.
- Se toman el CRC32 de la IP pública de origen y destino, el ID de paquete de Skype
- Vector de inicialización de la capa de ofuscación de Skype (IV).
El XOR de estos dos valores de 32 bits se transforma en una clave RC4 de 80 bytes utilizando un motor de claves desconocido.
Se puede encontrar un uso indebido notable de RC4 en Skype en las transmisiones de TCP (UDP no se ve afectado). Los primeros 14 bytes (10 de los cuales son conocidos por el usuario, ya que consisten en un hash del nombre de usuario y la contraseña) se XOR-ed con el flujo RC4. Luego, el cifrado se reinicializa para cifrar el resto del flujo TCP. [dieciséis]
TCP
Paquetes TCP:
TCPPaquete TCP de inicio de Skype
El paquete Skype Init TCP contiene
- la semilla (4 bytes)
- cadena init_str 00 01 00 00 01 00 00 00 01/03
Datagramas de bajo nivel
Casi todo el tráfico está cifrado. Cada comando tiene sus parámetros agregados en una lista de objetos. La lista de objetos se puede comprimir.
/ Lista de objetos ... - | Enc -> Cmd -> Encod ^ \ Lista comprimida ... - | Frag | | | ------------------ <--------------- | Ack
NAck
Reenviar -> Reenviar ... Mensaje
Listas de objetos
Un objeto puede ser un número, una cadena, una IP: puerto o incluso otra lista de objetos. Cada objeto tiene una identificación. Este ID identifica qué parámetro de comando es el objeto.
Objeto: Número IP: Puerto Lista de números Cuerda Clave RSA
Lista de objetos Tamaño de lista (n) Objeto 1 . . Objeto n
Compresión de paquetes
Los paquetes se pueden comprimir. El algoritmo es una variación de la compresión aritmética que usa reales en lugar de bits.
Asuntos legales
La ingeniería inversa del protocolo de Skype mediante la inspección / desmontaje de archivos binarios está prohibida por los términos y condiciones del contrato de licencia de Skype. Sin embargo, la ley de la Unión Europea permite la ingeniería inversa de un programa de computadora sin obtener el permiso de un autor con fines de interoperabilidad. [17] En los Estados Unidos, la Digital Millennium Copyright Act proporciona protecciones para el software de ingeniería inversa a los efectos de la interoperabilidad con otro software. [18] [19] También hay precedentes legales en los Estados Unidos cuando la ingeniería inversa tiene como objetivo la interoperabilidad de formatos de archivo y protocolos. [20] [21] [22]
Además, algunos países permiten específicamente la copia de un programa con fines de ingeniería inversa. [23]
Notas
- ^ "Abriendo camino para la próxima generación de Skype en el escritorio" . 20 de junio de 2014.
- ^ Keizer, Gregg. "Actualización: Skype para retirar ediciones recientes para Windows, Mac; actualizaciones obligatorias" .
- ^ Chris Merrimen (15 de agosto de 2014). "Skype deja de funcionar en teléfonos Android más antiguos dejando a los usuarios de Linux en la oscuridad" . CNET . Consultado el 2 de octubre de 2014 .
- ^ Salman A. Baset; Henning Schulzrinne (2004). "Un análisis del protocolo de telefonía de Internet peer-to-peer de Skype". pag. 11. arXiv : cs / 0412017v1 .
- ^ "Límite de descarga excedido" . citeseerx.ist.psu.edu . Consultado el 26 de febrero de 2021 .
- ^ Branscombe, Mary (27 de julio de 2012). "Olvídese de las teorías de la conspiración: los supernodos de Skype pertenecen a la nube" . 500 palabras hacia el futuro (ZDNet) . Consultado el 17 de junio de 2013 .
- ^ "Skype reemplaza los supernodos P2P con cajas de Linux alojadas por Microsoft (actualizado)" . Ars Technica . 2 de mayo de 2012 . Consultado el 17 de junio de 2013 .
- ^ Kosner, Anthony (18 de julio de 2012). "¿Los cambios de Microsoft en la arquitectura de Skype facilitarán el espionaje?" . Blog de Forbes . Consultado el 17 de junio de 2013 .
- ^ Gallagher, Ryan (6 de junio de 2013). "Snooping PRISM recientemente revelado hace que la vigilancia de Verizon parezca cosas de niños" . Blog de pizarra . Consultado el 17 de junio de 2013 .
- ^ Greenwald, Glenn (7 de junio de 2013). "El programa NSA Prism aprovecha los datos de usuario de Apple, Google y otros" . The Guardian . Consultado el 17 de junio de 2013 .
- ^ "Skype no es compatible con IPv6" . Cuenta de Twitter oficial de Skype. El 1 de noviembre de 2012 . Consultado el 4 de noviembre de 2012 .
- ^ Introducción Análisis de Skype Aplicación de políticas anti-Skype , Skype descubrió Estudio de seguridad de Skype, Desclaux Fabrice, 11/7/2005, EADS CCR / STI / C
- ^ "¿Qué protocolos usa Skype?" . Ayuda . Skype. Archivado desde el original el 3 de marzo de 2009.
- ^ "Publicaciones en la categoría inversa de Skype" . oKLabs .
"Ingeniería inversa de Skype: el (largo) viaje;)". oKLabs . - ^ Dario Bonfiglio; et al. "Revelar el tráfico de Skype: cuando la aleatoriedad juega contigo" . Revisión de comunicación informática ACM SIGCOMM . 37 (SIGCOMM 2007): 37–48. Archivado desde el original el 30 de abril de 2011.
- ^ Fabrice Desclaux; Kostya Kortchinsky (17 de junio de 2006). "Vanilla Skype parte 2" (PDF) . RECON2006 .
- ^ Directiva 2009/24 / EC del Parlamento Europeo y del Consejo de 23 de abril de 2009 sobre la protección legal de programas de computadora
- ^ Sección 17 de USC. 1201 (f).
- ^ Ley de aplicación de los tratados de derechos de autor y de interpretación o ejecución y fonogramas de la OMPI
- ↑ Sega vs Accolade, 1992
- ^ Sony contra Connectix, 2000
- ^ Pamela Samuelson y Suzanne Scotchmer (mayo de 2002). "El derecho y la economía de la ingeniería inversa" (PDF) . Revista de derecho de Yale . 111 : 1575-1663. doi : 10.2307 / 797533 . JSTOR 797533 . Archivado desde el original (PDF) el 16 de julio de 2011 . Consultado el 17 de marzo de 2015 .
- ^ En el conjunto de leyes de "propiedad intelectual" francesa, hay una excepción que permite a cualquier usuario de software realizar ingeniería inversa. Véase el código de la propriété intellectuelle (en francés) . Esta ley es la aplicación nacional de un acto legislativo de la UE: la Directiva del Consejo 91/250 / CEE , desde entonces derogada por la Directiva 2009/24 / CE del Parlamento Europeo y del Consejo, de 23 de abril de 2009, sobre la protección jurídica de programas de ordenador. que también tiene una disposición muy similar que permite la descompilación / ingeniería inversa con el fin de desarrollar y probar programas independientes pero que interactúan).
Referencias
- Salman A. Baset y Henning Schulzrinne (2004). "Un análisis del protocolo de telefonía de Internet peer-to-peer de Skype". arXiv : cs / 0412017v1 .
- P. Biondi & F. Desclaux (3 de marzo de 2006). "Silver Needle en Skype" (PDF) .
- F. Desclaux y K. Kortchinsky (6 de junio de 2006). "Vanilla Skype - parte 1" (PDF) .
- F. Desclaux y K. Kortchinsky (17 de junio de 2006). "Vanilla Skype - parte 2" (PDF) .
- L. De Cicco; S. Mascolo; V. Palmisano (mayo de 2007). "Una investigación experimental del control de congestión utilizado por Skype VoIP" (PDF) . WWIC 07 . Saltador.
- L. De Cicco; S. Mascolo; V. Palmisano (9 al 11 de diciembre de 2008). "Un modelo matemático del algoritmo de control de congestión de Skype VoIP" (PDF) . Proc. de la Conferencia IEEE sobre Decisión y Control 2008 .
- Dario Bonfiglio; Marco Melia; Michela Meo; Dario Rossi; Paolo Tofanelli (27 a 31 de agosto de 2007). "Revelar el tráfico de Skype: cuando la aleatoriedad juega contigo" . Revisión de comunicación informática ACM SIGCOMM.
enlaces externos
- Sitio web que contiene artículos y herramientas relacionados con el protocolo de Skype y análisis de comportamiento
- Repositorio de artículos sobre análisis de Skype
- Arquitectura de Skype en el interior