Si los ingenieros de tu empresa son unos inútiles: contrata buenos abogados

Hola buenas, hoy voy a hablaros sobre un tema que vengo siguiendo desde hace tiempo relativo a la libertad de los usuarios sobre los cacharros que se compran. Por poner un nombre os hablaré de Sony y de la PS3.

Sony y su PS3

Todos aquellos que tengáis una PS3 (y la uséis) os habréis dado cuenta que se trata de un "cacharro" bastante jugoso y lleno de posibilidades. Cuando salió al mercado Sony estaba dispuesto a que la gente hiciera buen uso de él mediante una increíble "feature" llamada OtherOS. Además de esa "feature" se incluían otras como: compatibilidad con PS1 y compatibilidad con PS2 (primero por HW y posteriormente por SW). Pues bien... de repente en una actualización desaparece la compatibilidad con PS1 y PS2 (de aquellas consolas que lo hacían por SW). Se supone que las actualizaciones deben añadir funcionalidades o corregir errores. Desde luego no creo que emular el hardware de una PS2 sea un error.

La gente inquieta (que forman el 90% de la llamada scene) vivían alegres y felices con el OtherOS ya que permitía usar la consola con los propósitos originales de Sony además de poder hacer lo que tú quisieras con ella sin incurrir en la ilegalidad. No todo era color de rosa: desde OtherOS se vetaba el acceso a un SPU (uno de los procesadores del sistema) y desde luego nada de RSX (el chip gráfico y de sonido denominado "Sintetizador de Realidad"). Con esto se aseguraban que nadie fuera a sacar juegos para el OtherOS que compitiesen con los juegos "habituales" de PS3, es decir, los de empresas licenciadas que habrían pagado una pasta a Sony para que esto fuese así.

Y allí donde alguien pone una barrera alguien desea saltarla.

Apareció un individuo llamado Geohot (conocido por realizar el primer jailbreak de iPhone) que mediente un simple puente en la placa de la consola era capaz de acceder a toda la memoria de la consola, es decir, dentro y fuera del OtherOS. Imaginad que desde la máquina virtual de Java pudiérais acceder a direcciones de memoria del sistema real... Ese avance permitió acceder al RSX y por tanto a una futura implementación de OpenGL dentro del OtherOS que usase el RSX... esto resultó inadmisible para Sony que decidió cortar por lo sano: una actualización del firmware eliminaba la opción OtherOS de la consola. Una opción que aparecía en la misma publicidad de las consolas hasta el momento vendidas. A todas luces esto es ilegal (o al menos según la ley europea) y mucha gente fue la que intentó interponer demandas conjuntas contra Sony. Tal revuelo se formó que Sony decidió hacer frente a las críticas: "que los clientes presenten reclamaciones a los vendedores". Impresionante: evitan a los clientes y "enmarronan" a quien vende su producto...

Con la eliminación del OtherOS llegó la tormenta: demasiada gente muy curiosa ahora no podía usar la PS3 como ellos querían, de hecho como Sony había dicho en un principio que se podía usar. Así la gente comenzó a mirar "dentro" de la (hasta ese momento) "consola más segura del mercado". Y apareció el primer bug: una filtración de un manual de Sony revelaba que la consola, antes de arrancar, podía autenticarse con un dispositivo especial mediante el USB de forma que en el servicio técnico pudieran trabajar con ella, arreglarla, restaurarla, etc. En este proceso de autenticación Sony cometió un error en la reserva de memoria de los descriptores USB. Si el dispositivo que se enchufaba pedía tamaños extravagantes para alojar descriptores de dispositivo, el driver símplemente lo hacía. Mediante un ataque de heap overflow se consiguió inyectar código en la consola antes de que arrancase el GameOS. Las primeras copias de seguridad de juegos podían empezar a usarse después de varios años de vida de la consola. Nunca antes se había tardado tanto en "piratear" una consola, el motivo símplemente era que los "curiosos" podían usar la consola para sus propósitos sin necesidad de "cacharrear" nada.

Aquí el "castigo" de Sony también fue ejemplar: la siguiente actualización de firmware corregía el bug en el driver de USB, además (y de regalo) impedía usar ningún dispositivo USB que no fuera oficial: ni mandos para la consola no oficiales, ni adaptadores de mandos de PS2 a PS3, ni adaptadores de memory card de PS2 a PS3... nada. Si esto no es una acción monopolística, ¿entonces qué es?.

Hasta ahora empezaba el clásico juego de sceners encuentran bugs, empresa publica firmware que corrige bugs. Ya era posible arrancar copias de seguridad pero resultaba un engorro, los juegos nuevos eran más difíciles (o imposibles) de arrancar y era imposible usar la conexión a internet o los servicios del PSN. Pero había un problema: usar GNU/Linux seguía siendo imposible y la alternativa AsbestOS (aplicación casera) resultaba engorrosa de usar. Entonces llegó el 27C3 y su sección Console Hacking 2010 titulada: "Sony PS3: Epic Fail".

Los autores de AsbestOS no estaban dispuestos a renunciar al OtherOS así que se fijaron como objetivo crear el suyo propio. Para ello se pusieron a investigar sobre los últimos bugs de la consola y descubrieron alguno nuevo. En el congreso dieron una animada y divertida charla donde presentaron su trabajo. Fue tal la expectación que resultaba casi imposible conectar a los servidores dedicados del congreso. Al final de la charla revelaron el "Epic Fail" de Sony que explico a continuación:

Imaginemos que disponemos de un sistema de autenticación basado en clave asimétrica. Dentro de la consola, en algún lugar, se encuentra la clave pública. Los programas que se cargan en la consola se cifran mediante una clave privada en las oficinas de Sony. Ambas claves, la privada y la pública, se generaron a partir de una clave maestra. Para mantener la clave maestra a salvo (esta clave se encuentra en las oficinas de Sony bajo máxima seguridad) se generan los pares de claves mediante una función de ofuscación y un número cualquiera. De esta manera, por muchas claves que conozcamos nos será imposible (o computacionalmente imposible) calcular la clave maestra. Y aquí está el problema: los ingenieros de Sony utilizaron SIEMPRE el mismo número aleatorio en lugar de calcular uno cada vez. Si eliminamos la aleatoriedad de la función de ofuscación la convertimos ahora en una constante y por tanto fácilmente computable. Buscando dentro del firmware de la consola las claves públicas podremos recolectar las suficientes como para poder calcular las claves privadas y finalmente la maestra.

Bueno, las consecuencias de esto no se hicieron esperar: se publicó en Google Docs una hoja de cálculo con todas las claves públicas y privadas del sistema, así como la clave maestra. El equipo de AsbestOS sólo se ocupó de la parte necesaria para crear un paquete con firma oficial que permita volver a cargar Linux en la consola (está actualmente en desarrollo) pero abrió la puerta a todos aquellos que deseaban "customizar" el firmware de la consola. Ahora cualquiera podría crear firmwares o paquetes para GameOS con firma oficial. De hecho existen herramientas caseras para hacer esto.

Si os preguntáis qué puede hacer Sony para evitar esto la respuesta es fácil: desde el punto de vista técnico nada, porque si publicasen un firmware con una nueva clave maestra todo el software publicado hasta el momento dejaría de funcionar y si tiene una clave nueva pero se permite la antigua seguiríamos igual. Así que Sony ha decidido ponerse las pilas y ha movido baza: pretende llevar a juicio a todas las personas que han intervenido de alguna forma en el desarrollo de la scene de PS3. La lista de denuncias contra los "hackers" es increíble, incluso acusan de extorsión.

Ahora mi opinión: un error tan grave en el sistema va a intentar ser corregido en los tribunales. Los mismos tribunales que han permitido a Sony eliminar features de su consola. Y es que Sony hace muy buenos productos, pero los gestiona muy mal debido a su grandísimo afán recaudatorio. Intenta exprimir al máximo a todos sus usuarios llegando incluso a emplear técnicas ilegales para ello (¿no recordáis ya el rootkit de Sony Music?). Así que Sony, va siendo hora de que aprendas que la gente compra las cosas para usarlas como más les guste y que a nadie le gusta que le fuercen a nada y menos pagando por ello. La piratería de vuestra consola la creásteis vosotros al piratearnos a nosotros el OtherOS. Pero no aprenderán...

Si os preguntáis qué les va a pasar a los "hackers", bueno, GeoHot no violó ningún término de uso puesto que su aplicación para extraer las claves corría dentro del OtherOS. Por otro lado, Marcan, principal investigador dentro de AsbestOS (grupo Overfl0w) es español y aquí la ley le ampara a él puesto que nunca aceptaron donaciones y su trabajo únicamente sirve para correr Linux dentro de la consola.

Si aún no os habéis aburrido con todo este rollo, aquí van algunos enlaces interesantes:

Para correciones, aportaciones o peticiones... al menda Sticking out tongue

P.D. Gracias a los usuarios que me habéis mandado correcciones, en especial a Ignacio Pérez por la aclaración sobre dónde se encontraban las claves públicas y privadas... Sticking out tongue

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
int-0's picture

5-0 a favor de Sony...

Como viene siendo habitual con la justicia y las leyes, el grande parece que va ganando: un juez californiano ha decidido tomar medidas cautelares contra Geohot, el hacker que publicó el primer exploit para PS3 y no hace mucho reveló la masterkey de la consola. Así que Sony se ha envalentonado y ha enviado varias notificaciones DMCA a varios sitios webs de hackers. El profesor de la Carnagie Mellon ha retirado el mirror. Después Kmeaw, autor del más conocido custom firmware basado en 3.55 para PS3 ha retirado sus enlaces. Graf_chokolo (scener y autor de un costom firmware también conocido pero por diferentes motivos) también ha recibido notificación y han desaparecido algunos links. Por último, han desaparecido varios proyectos en github de kakaroto, que contenían las keys del último firmware publicado por Sony.

En fin... unos buenos abogados son la mejor protección, no?

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

nacho's picture

Muy Interesante

Está muy bien eso de recopilar y resumir un conjunto de noticias que, aunque por separado no gustan, no dan la visión global de los movimientos de una compañía, y juntas gustan aún menos.

Gracias por la perspectiva.

Nacho

cleto's picture

¡Enhorabuena! Me ha encantado

¡Enhorabuena! Me ha encantado el post. Muchas gracias por la historia... seguro que tiene un final feliz.

int-0's picture

Gracias...

...ya iré informando Eye-wink

Así lo más reciente es que el grupo Overfl0w retiró de su web el repositorio GIT con las herramientas que estaban creando (medida cautelar) pero otro grupo de gente hemos creado un mirror independiente donde siguen estando disponibles... Eye-wink

Incluso un profesor en la Carnegie Mellon ha mirroreado el sitio de Geohot y ha desafiado a Sony a que intente demandarle a él y a su universidad (ya hizo algo parecido contra otras grandes corporaciones). Aquí tenéis el mirror y el mensaje del profesor:

http://www.ps3hax.net/showthread.php?t=17676#axzz1Au5pCpVf

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------