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
cryptolib.com/ciphers/skype/
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
(Spam ya había)
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
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é.
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
No digo que Skype pueda hacer esto, pero el caso es que opciones hay.
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.
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).
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.
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.
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.
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.
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.
/*
|*|
|*| 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?
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.
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?
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.
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.
Tú quieres decir "iban" (del verbo "ir").
#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...
Se supone que ya no hay secretos.