edición general
513 meneos
 

Descifran el algoritmo de Skype mediante ingeniería inversa

El protocolo VoIP de Skype es uno de los más eficientes en cuanto tiempo de respuesta e interactividad y ello es posible gracias a un sistema de cifrado propio, basado en RC4, entre los clientes y los servidores de la compañía. Según parece, un grupo de hackers liderado por Sean O’Neil ha conseguido descifrar dicho algoritmo mediante ingeniería inversa lo que en resumidas cuentas casi desvela la mayoría de secretos del popular programa VoIP.

| etiquetas: algoritmo , skype , ingeniería inversa
221 292 0 K 523 mnm
221 292 0 K 523 mnm
  1. +info: Skype sin embargo ha comentado que la filtración del trabajo de O'Neil es lo que ha facilitado los ataques de spam contra usuarios del servicio VoIP que ofrecen. Comentan que entienden le trabajo mediante ingeniería inversa sobre sus protocolos, pero en este caso no ha ayudado sino todo lo contrario, incluso están considerando acciones legales.

    cryptolib.com/ciphers/skype/
  2. Claro, se empeñan en hacer seguridad por oscuridad y pasa lo que pasa. Si un algoritmo para ser seguro debería no ser público, entonces es que no es seguro.
  3. #2 Según entiendo lo que han conseguido es saber como cifra y descifra el algoritmo, es decir sigue siendo seguro, simplemente ahora se sabe como funciona.
  4. #4 espero que te refieras a los de skype...
  5. #3 Si siguiera siendo seguro no armarían tanto revuelo :-P

    For over 10 years, Skype enjoyed selling the world security by obscurity. We must admit, really good obscurity. I mean, really really good obscurity. So good that almost no one has been able to reverse engineer it out of the numerous Skype binaries. Those who could, didn’t dare to publish their code, as it most certainly looked scarier than Frankenstein.

    webcache.googleusercontent.com/search?q=cache:http://www.enrupt.com/in
  6. Basado en RC4, igual que WEP. :-D
  7. Sería genial que liberara el código y pudiéramos ver implementaciones en clientes como pidgin, empathy, digsby...
  8. Hace años había PGPfone, que pena que su última actualización sea del 2002... www.pgpi.org/
  9. #4 y a ti solo se te puede llamar de una forma: ladrón de oxido.
  10. #9 Está Ekiga
  11. Imagino que esto hará que empiezen a salir montones de clientes de Skype libres, plugins para los clientes de mensajería que ya hay, etc,...

    (Spam ya había)
  12. #5 ¿Piratas los de Skype? ¿Porqué? Ponen una herramienta gratuita muy útil a disposición de todo el mundo...
  13. Puesto que, como se indica, el comentario original del blog de O'Neil ha sido eliminado, y hay copias en la caché de Google, copio el texto aquí por si Google lo elimina:

    Skype's Biggest Secret Revealed
    07/07/10 | by Sean O’Neil | Categories: News

    For over 10 years, Skype enjoyed selling the world security by obscurity. We must admit, really good obscurity. I mean, really really good obscurity. So good that almost no one has been able to reverse engineer it out of the numerous Skype binaries. Those who could, didn’t dare to publish their code, as it most certainly looked scarier than Frankenstein.

    The time has come to reveal this secret. cryptolib.com/ciphers/skype contains the greatest secret of Skype communication protocol, the obfuscated Skype RC4 key expansion algorithm in plain portable C. Enjoy!

    Why publish it now? - It so happened that some of our code got leaked a couple of months ago. We contacted Skype reporting the leak. Only weeks later, our code is already being used by hackers and spammers and we are abused by Skype administration. I do not want to go into any finger-pointing details here, but naturally, we do not wish to be held responsible for our code being abused. So we decided that the time has come for all the IT security experts to have it. Why let the hackers have the advantage? As professional cryptologists and reverse engineers, we are not on their side. Skype is a popular and important product. We believe that this publication will help the IT security community help secure Skype better.

    However, for the time being, we are not giving away a licence to use our code for free in commercial products. Please contact us if you need a commercial licence.

    It is not all security by obscurity of course. There is plenty of good cryptography in Skype. Most of it is implemented properly too. There are seven types of communication encryption in Skype: its servers use AES-256, the supernodes and clients use three types of RC4 encryption - the old TCP RC4, the old UDP RC4 and the new DH-384 based TCP RC4, while the clients also use AES-256 on top of RC4. It all is quite complicated, but we’ve mastered it all. If you want to know more, come to Berlin for 27C3 to hear all the juicy details on how to use this function to decrypt Skype traffic.

    With best regards,
    Skype Reverse Engineering Team
  14. #10 : óxido=oxígeno?
  15. #14 Para los talibanes del software libre las cosas son así, o haces las cosas igual que nosotros o eres lo peor de lo peor.
  16. #17 Sin embargo skype es un ejemplo de como el software propietario puede ser mejor que el libre.

    No entiendo como le piden a una empresa que libere el código y se cabrean cuando no lo hace. Supongo que todos ellos trabajaran gratis. No sé.
  17. "talibanes del software libre" Creía que jamás leería esto en Meneame

    Muestra de la pluralidad que hay.

    #17 Para tu "suerte" los "talibanes del software" no se fijan en el precio Se fijan en que si el programa sigue su filosofía de libertad.

    Pero bueno; que te voy a contar, seguro que tú eres mucho más entendido que todos nosotros
  18. Yo diría que lo de Skype más que seguridad por ocultación, es exclusividad por ocultación. Skype funciona muy bien, y no quieren que nadie sea capaz de hacer lo mismo.
  19. #17 Hay muchos sistemas para ganar dinero con el software libre. Libre no quiere decir gratis. Por ponerte un ejemplo Stallman vendía su Emacs hace tiempo. Tu pagabas y él te mandaba un disco con el programa y el código fuente.

    No digo que Skype pueda hacer esto, pero el caso es que opciones hay.
  20. #18 No nos engañemos, Skype no vende software. Si no el servicio.
  21. Pues en la wikipedia no dice nada de rc4:

    Skype utiliza el algoritmo AES A 256-bit para cifrar la voz, la transferencia de archivos o un mensaje instantáneo. Para la versión de pago se utiliza el algoritmo RSA a 2048-bit para el acceso a voicemail y 1536-bit para la negociación a la hora de establecer la conexión. Para ello utilizan una llave asimétrica lo cual permite evitar ataques man-in-the-middle.

    Para #17, no alcanzo a comprender que tiene que ver un taliban con el software libre, los talibanes son integristas guerrilleros estudiantes del islam, mientras que el software libre es un movimiento ético.
  22. #23 pues lo tienes bien facil. Hablas con los de Skype Reverse Engineering Team, confirmas sus teorias y en caso de ser ciertas modificas el artículo. Seguramente el que escribio el articulo no tenía tanta información como ellos. ;)
  23. más eficientes en cuanto tiempo de respuesta e interactividad (...) gracias a un sistema de cifrado propio
    Digo yo que lo de tiempo de respuesta e interactividad vendrá más influenciado por el protocolo en sí que por los algoritmos de cifrado (algoritmos que seguro que NO se han inventado ellos).
  24. Para #4. Para empezar apréndete el significado de las palabras.

    Hace unos 10 años compré un compilador en disquete para el Commodore 64. Me costó más de 30 euros original. El manual decia que cualquier intento de copiado podía destruir el disquete original, y que en caso de que el disquete se estropease la editorial del compilador disponía de una dirección a la que dirigirse para conseguir otra copia. A día de hoy la empresa no existe y nadie se hará cargo de proporcionarme una copia nueva del compilador.

    La ingeniería inversa sirve para que estos abusos no pasen, y discos protegidos como este puedan copiarse y preservarse en el futuro.
  25. #17 Modelo ético de obligar a una empresa, o cualquier organización a utilizar los preceptos vuestros.
  26. #18 ¿Y quién dice que tienen que liberar el código? Lo que tienen que hacer es publicar las especificaciones de su protocolo para que terceros puedan hacer clientes de skype mejores (el de Linux es pura bazofia) o en plataformas en las que skype no se molesta en implementarlos.
  27. Para #4. Edit #26.

    El caso del compilador es solo un pequeño ejemplo que me afecta personalmente.

    Otro ejemplo mucho mas importante e ilustrativo es el proyecto de emulación de máquinas recreativas de bar llamado MAME, que gracias a ingeniería inversa, y dentro de un proyecto totalmente altruista, se preserva una ingente cantidad de funcionalidad en software comercial 'obsoleto' pero imprescindible de cara a preservar viva una parte de la historia de los videojuegos. Y todo ello gracias a la ingenieria inversa; pero tú prefieres llamarlo despectivamente pirateo.

    Lamento tener que decirlo pero eres un ignorante en estos temas.
  28. #28 #8, sin ir más lejos.

    Publicar las especificaciones de su protocolo para que terceros puedan hacer clientes mejores? Ellos han diseñado algo y esperan ganar dinero con ello. Si liberan sus especificaciones tendrán competencia sobre su propio producto. Tan difícil es de entender?

    Llevado este talibanismo a otros casos, es como si yo me siento en una terraza pero compro las bebidas a los punkis que me las venden a mitad de precio. Encima, los dueños del bar no solo no me reprenden, sino que les culpo de mantener en secreto la receta de la salsa que le echan a la carne.
  29. #22 No puedo editar el mensaje anterior. Skype no vende el software, pero su cliente sí que vende publicidad, entre otras cosas. Será una parte pequeña de sus beneficios, pero me parece bien que no puedan renunciar a ella. Además... es su producto, que hagan con él lo que le venga en gana. Los que creeis que lo podeis mejorar haceis otro cliente y lo liberais. Existen casos de éxito de esto, tantos como casos de fracaso.
  30. #30 Yo eso lo entiendo, pero también me alegro mucho de que hayan conseguido obtener esa información por ingeniería inversa (algo totalmente legal por ejemplo en España). A ver si con esta implementación libre empiezan a salir clientes decentes para Linux.

    Por cierto, Skype gana dinero dando un servicio. Aunque en el futuro use un cliente de un tercero seguiré pagando a Skype por realizar llamadas.
  31. #31 Creo que no has entendido la noticia. Por que precisamente lo que permite esta noticia es programar otros clientes.

    Y cambiando de tema: al respecto de esa publicidad yo hace tiempo que no utilizo Skype en PC, pero en mis tiempos no tenía publicidad y en mi teléfono también te digo que no tiene publicidad.
  32. #23 No estás muy puesto en el tema del software libre. A los fanáticos de este movimiento (que a mi personalmente me parece algo de un valor incalculable para toda la humanidad) se les ha llamado talibanes precisamente por eso, por el fanatismo de sus ideas. Me refiero a la gentuza que tacha al Windows como una lacra de la sociedad y califican a Ubuntu como una puta mierda de distribución.
  33. Pues yo no sé si prefiero la seguridad por oscuridad, o la seguridad a base de amenazas:

    /*
    |*|
    |*| Skype Library RC4 v1.109 by Sean O'Neil.
    |*| All rights reserved.
    |*| Not for commercial use.
    |*|
    |*| We are reverse engineers.
    |*| We can prove if you have used this code in your product.
    |*| We will find you.
    |*| We will prosecute for copyright infringement.
    |*| This code is quite unique and is easily identifiable.
    |*| Result may match Skype's 100%, but this code is ours.
    |*| The computation is significantly different from Skype's.
    |*|
    |*| For academic research and educational purposes only.
    |*| If you require Skype compatibility in your products,
    |*| feel free to contact Sean O'Neil on www.enrupt.com
    |*|
    |*| Last changes: 09.07.2009 (a minor correction from 1.108 that does not affect its use in Skype-compatible projects)
    |*| Published: 07.07.2010
    |*| More will be published at 27C3, December 2010 (www.ccc.de/en/calendar)
    |*|
    */

    Entiendo la necesidad de descubrir como funciona un driver (por ejemplo) por ingeniería inversa si el fabricante se niega a darlos para todos los sistemas operativos. Pero el resultado suele ser libre y (sí, sé la diferencia) gratuito. En este caso, han conseguido destripar el algoritmo de Skype (incluso te dan el código), pero te avisan de que si lo usas, van a ir a por ti (lo curioso es que si Skype les denuncia a ellos, a muchos les parecerá un acto rastrero que atenta contra las libertades de blablabla). Skype tiene un producto, imagino que patentado y que tendrán el copyright. Luego llega el amable señor hacker, les destripa como funciona el producto, lo copia, y lo vende (se lucra). No veo la diferencia que hay con el espionaje industrial.

    Y sí, si hubieran liberado el código no estaría diciendo todo esto, pero realmente no me parece lógico, ni ético (que sí, que vale, que el código está ahí, se puede ver, se puede leer, pero si lo usas te van a dar p'al pelo). Y es una pena porque, como han dicho más arriba, podría servir para que clientes de mensajería de código abierto y libre pudieran ser, también, compatibles con el protocolo de Skype.

    A todo esto, Fring ya soportaba las llamadas por Skype, ahora incluso soporta videollamadas. Por lo que dicen, usan el API público de Skype. Así que: ¿por qué no usan programas tipo pidgin ese API? ¿Era realmente necesario reventar este algoritmo?
  34. #35 Porque hasta ahora si querías usar el API de Skype en programas tipo pidgin, skype tenía que estar ejecutándose también; lo cual, en mi opinión, resulta bastante absurdo.
  35. A mi desde luego ético no me parece. Será muy cerrado y todo lo que digan, pero detrás de ese código hay un montón de trabajo que nadie tiene derecho a destrozar.
  36. No he entendido nada :-/ y eso que me he leído la noticia xD
  37. ahora necesitamos que alguien se dedique a descifrar la mierda de los codecs de flash. A ver si en gnash empieza a funcionar bien.

    no siento pena de que, a los que abusan del robo de libertades (muchas veces con el consentimiento y defensa de sus víctimas), se les toque los huevos. Es más, animo a practicar este sano deporte.
  38. #39 ahi es donde acaban las libertades de la gente y se pone a hacer vandalismo

    Yo apoyo el software libre, pero obviamente skype ofrece un servicio gratuito y que funciona mejor que el resto

    ¿por qué necesito saber como funciona si cumple mis expectativas?
  39. #4 Si no existiesen personas con la capacidad y decisión de realizar ingeniería inversa sobre cierto software, ahora tendrías que pagar una licencia de Windows (cueste lo que cueste e implique lo que implique la licencia) para poder usar tu ordenador, ya que no podrían existir sistemas operativos libres si el fabricante no lo contempla en su plan de negocio.
    Pensarás quizá que nunca has usado Linux, pero si has podido usar windows sin una licencia restrictiva hasta niveles absurdos o has tenido una mejor experiencia, es porque se le ha forzado a Microsoft a dar ciertas libertades y ventajas al usuario ante la tentativa de existir una alternativa menos restrictiva y forzar a que mantenga un equilibrio mas o menos aceptable.

    Por otro lado, esto no es piratería.
    La ingeniería inversa implica descifrar el algoritmo que utiliza un programa para implementarlo de nuevo de otra forma.

    Además, a vosotros (gente como tú) que llamaís piratas a la gente, suele gustaos el sistema de patentes a lo americano.
    No entiendo pues porqué los criticas: se han molestado en hacer ingeniería inversa (una de las cosas más complicadas que hay en la informática, hay que echarle huevos) es porque no estaba patentado.
    Es como si Renault inventa el turbo pero no lo patenta, y otro fabricante toma el concepto de incorporar una turbina al motor para aumentar la potencia ante determinadas circunstancias y lo desarrolla en su coche... Obviamente las piezas del Turbo de ambos vehículos serán distintas, pero siguiendo el mismo concepto y aportando el mismo valor.

    Pero para no dejar cabos sueltos voy más allá aún... No tiene sentido patentar un algoritmo o concepto de software, ya que si Microsoft hubiese patentado el doble click, el menú inicio, el botón "mostrar escritorio" ahora quizá no estarías comentando en menéame, ya que la tecnología estaría estancada por la culpa de 4 fabricantes, que estarían explotando un mercado que no puede incorporar una idea absurda y necesaria que cualquiera hubiera podido idear, y en el caso de no ser así, a la que cualquiera debería tener acceso.
  40. Y ahora lo que iva a comentar... Enhorabuena a Sean O’Neil y a su equipo, habeis demostrado tener sobrados conocimientos y una ética envidiable.
  41. Los de Skype se han pasado de listos... Chuleaban diciendo que no lo ivan a patentar para que no quede escrito en ningún sitio como hacen las cosas pensando que ivan a poder explotar el algoritmo siempre, ya que nedie iva a tener huevos de descifrarlo...
    Si lo hubiesen patentado les hubiese durado 10 años, nadie hubiese podido usarlo en ese tiempo y tendrían libertad de explotarlo... ahora QUE SE JODAN.
  42. #43 "ivan" es con Mayúscula inicial y es un nombre de barón (huy, es broma, varón, aunque habrá algún Barón que se llame Iván).

    Tú quieres decir "iban" (del verbo "ir").
  43. #36, no lo sabía, pues sí que es un poco rídiculo, sí, a ver si se ponen las pilas en ese sentido y mejoran la API...

    #41 + #42 estoy de acuerdo contigo salvo en esto:

    Por otro lado, esto no es piratería.
    La ingeniería inversa implica descifrar el algoritmo que utiliza un programa para implementarlo de nuevo de otra forma.

    Desde el momento en el que están prohibiendo el uso de lo que han descubierto, y se lucran con ello, yo lo llamaría piratería. Por eso en mi otro comentario digo "Luego llega el amable señor hacker, les destripa como funciona el producto, lo copia, y lo vende (se lucra)", porque el "amable señor hacker" desapareció entre el trabajo de destripar como funciona, y el copiarlo para venderlo y lucrarse. Del mismo modo que nos gusta diferenciar "hacker" de "cracker", deberíamos diferenciar el usar la ingeniería inversa por el bien de todos y la ingeniera inversa para beneficio propio (y prohibición, bajo amenazas, de que otros lo puedan usar libremente).

    La ética envidiable de Sean O’Neil deja de serlo en cuanto toma la misma actitud que los que protegían su protocolo dificultando el entender como funcionaba, pero esta vez con amenazas:

    ---
    |*| Skype Library RC4 v1.109 by Sean O'Neil.
    |*| All rights reserved.
    |*| Not for commercial use.
    |*|
    |*| We are reverse engineers.
    |*| We can prove if you have used this code in your product.
    |*| We will find you.
    |*| We will prosecute for copyright infringement.
    |*| This code is quite unique and is easily identifiable.
    |*| Result may match Skype's 100%, but this code is ours.
    |*| The computation is significantly different from Skype's.
    |*|
    |*| For academic research and educational purposes only.
    |*| If you require Skype compatibility in your products,
    |*| feel free to contact Sean O'Neil on www.enrupt.com
    ---

    Y de su blog:

    "However, for the time being, we are not giving away a licence to use our code for free in commercial products. Please contact us if you need a commercial licence".

    No tengo claro que permitan su uso en programas no comerciales, pero con la licencia que han puesto ("All rights reserved, we will find you, we will prosecute you") no parece muy compatible con las licencias libres...
  44. Crei que ya era software libre :-/

    Se supone que ya no hay secretos.
comentarios cerrados

menéame