20080929 lunes septiembre 29, 2008

Otro tonto error de un programador

A finales de los 90 existían un sinfín de redes montadas con el Windows de turno mediante la creación de un 'Grupo de Trabajo' bajo el cual se compartían impresora y discos. Técnicamente se utilizaban los servicios NetBIOS de la implementación de Microsoft y las credenciales se obtenían con un simple nombre de usuario y su password.

Como no podía ser de otra manera, los hackers vieron un filón en todos aquellos 'share resources' llenos de interesante información, y no se tardó en encontrar el bug que permitía, mediante un cliente de NetBIOS modificado, tomar acceso a cualquier recurso compartido con un Windows 95. El bug permaneció en secreto varios años hasta que en el 2000 fué detectado y corregido por Microsoft.

El error era tan simple, que incluso se especulaba si no había sido introducido como 'puerta trasera'. Consistía básicamente en que a la hora de chequear si la password pasada era la correcta, no se hacía en base a la longitud del password bueno, sino que se tomaba el que se recibía del cliente. Si un cliente de NetBIOS modificado enviaba un password de 1 carácter, probando 64 veces se lograba dar con la primera letra del password bueno y conseguir estar autorizado.

 

La historia se repite, esta vez en la videoconsola de última generación de Nintendo, la Wii, la cual por diseño está provista de los más avanzados sistemas de seguridad y encriptación. En la máquina, a partir del primer boot-loader se establece una cadena de confianza mediante criptografía fuerte, para el boot1, el boot2, el IOS, los canales (juegos) y finalmente los juegos que se leen del DVD(1). Todo el software va debidamente encriptado y firmado, usándose SHA-1, MD5, RSA2048 y AES. Pero como decía Confuncio (no se si fue él), 'una cadena es tan resistente como lo sea el eslabón más débil'.

Para desespero de los ingenieros de la Wii, la rutina que comprueba la firma de un DVD, para asegurar que su contenido sea íntegro, en la comparación entre el hash SHA-1 calculado a partir del contenido y el que se graba en el propio DVD (y que obviamente va firmado con la clave RSA privada) se hace a nivel de string y no binaria, es decir, cuando encuentra un cero, dará por bueno el contenido del DVD modificado, por lo que únicamente se tendrá que forzar este valor (los detalles al final del post (2)).

He aquí el banner que utilizan los hackers de la Wii en su página HackMii.com..


 

 

(1) Para los que estén interesados en la secuencia de arranque de una Wii, la cosa va más o menos así. Al arrancar la máquina se ejecuta un código ROM que va embutido en el chip principal (Hollywood) , obviamente este código ni es leible exteriormente ni es modificable. La misión de este boot0 es cargar un boot1 de la memoria flash (NAND) y verificar mediante SHA-1 que su hash coincide con el que se ha escrito en el propio chip en una área PROM. El boot1 carga a su vez un boot2, verificando mediante  una hash encriptada con RSA la integridad de sus estructuras. Este último software es el que se actualiza de tanto en tanto por Nintendo para corregir bugs y tapar los agujeros de seguridad que le van encontrando.

(2) El FakeSigning o Firmas Trucha, consiste en modificar el contenido de un DVD de tal manera que su hash SHA-1, de 20 bytes, empiece por cero, luego, como firma RSA ponemos ceros, que por las propiedades del RSA indicará que el SHA-1 que encripta es todo ceros. Al comparar el SHA-1 calculado y el que va en la firma, se verificarán dos strings de longitud 0, cuya comparación siempre dará true. Si la comparación fuese binaria, se compararían los 20 bytes y daría false, a no ser que tuviesemos un maquinón para generar un contenido que su hash SHA-1 fuese todo ceros, algo criptográficamente imposible.

Nota: Este contenido se presenta con la única finalidad de divulgar conocimientos técnicos.

Posted by Feliciano Borrego in Wii at 20080929

20071208 sábado diciembre 08, 2007

Ideas y Buenas ideas

Es mayoritariamente admitido que las ideas 'per se' no tienen un valor intrínseco, a muchas personas le vienen a la cabeza una idea de tanto en cuando. Sin embargo, 'construir' una 'buena idea' no es algo tan común, es fruto de un proceso mucho más complejo, de un esfuerzo intelectual en el que no sólo interviene la imaginación y la creatividad, sino que necesita de conocimientos multidisciplinarios y como no, de tiempo para crearla y madurarla convenientemente.
Las buenas ideas, al ser bienes escasos, son valiosas, y no menos las personas con la facilidad para crearlas, y si no que se lo pregunten a los directivos de las empresas de publicidad cuando van a la caza de 'creativos', por poner un ejemplo.


Cuando Sony tuvo la idea de crear la mejor videoconsola jamás construida para que las personas amantes de los vídeo juegos deseasen tener una, no tuvo una 'buena' idea, es una idea que a cualquier organismo con inteligencia se le hubiese ocurrido. El ir a buscar la arquitectura más potente que existía en esos momentos para su PS3 apenas merece reconocimiento, es como decir '-He comido estupendamente el en restaurante xxx por 400€', faltaría más.

Que Microsoft viese como el creciente y el más multimillonario mercado del ocio desfilase por delante suyo y tuviese la idea de conquistar una parte del pastel con su software, tampoco parece que sea algo que necesariamente se le tenga que ocurrir a alguna mente especialmente brillante, más bien se necesita tener una buena caja llena de $$$ y algo de insensatez para abordar la aventura.

En cambio, cuando Nintendo tuvo la idea de crear una videoconsola para que a la gente que no le gustaran los vídeo juegos les apeteciese jugar, eso sí fue una 'buena idea', ya que en sí es una contradicción, y hay que ser muy creativo y visionario para llevarla a la práctica, y además con éxito.


No obstante, aquella persona de Sony que les propuso la manera de introducir su Blu-ray en el mercado de consumo mucho más deprisa de lo que sería habitual para este tipo de dispositivos, y adelantarse así al HD-DVD en cuotas de mercado, para poder vender así más peliculas de su 'Sony Pictures Entertaiment' amén de cobrar rollalties, sí que tuvo una 'buena idea'. El integrar el lector de Blu-ray dentro de la PS3, algo que quizás tuvo que ver para que dicha consola necesitase mucho más hardware del que sería razonable, no parece que sea para dotar de más extras a la videoconsola, es más, me atrevería a decir, que la PS3 no es una máquina concebida para vender videojuegos, sino que es una máquina para vender películas de alta definición en Blu-ray. Si esto no fuera así, el último modelo creado para rebajar el precio de la videoconsola, en vez de eliminar su retrocompatibilidad con la PS2 (una 'mala idea') y tres nimiedades más, hubiesen optado por quitar el costoso reproductor de Blu-ray y en su lugar hubiesen hecho una versión con un lector de DVD con una reducción de precio mucho más drástica. Porque a día de hoy ¿cuantos videojuegos para la PS3 van sobre Blu-ray?..

Posted by Feliciano Borrego in Wii at 20071208

20071012 viernes octubre 12, 2007

Wii con teclado USB La última actualización del firmware de la Wii de Nintendo, la 3.1, entre otras mejoras, permite la utilización de un teclado con conexión Usb, incluso si es inalámbrico, con lo que se puede escribir cómodamente desparramado en el sofá del comedor. Además, permite disimular un poco más la introducción del código de bloqueo parental, ya que cuando se introduce con el wiimote, a poco espabilado que sea tu hijo pequeño, no tardará mucho en descubrirlo :).[Read More] Posted by Feliciano Borrego in Wii at 20071012

20070601 viernes junio 01, 2007

6 Razones por las que Wii será la videoconsola más exitosa

Menudo regalazo el de mi mujer, cómo se ha estirado. Aunque al final se acabe arrepintiendo, yo la voy a gozar hasta que me salgan callos en los dedos.

 Queda pues inaugurada esta nueva categoría. Porque me apetece..

[Read More] Posted by Feliciano Borrego in Wii at 20070601 Comentarios[2]