Desvelado el bug del trucha

y usar CUDA para acelerar la obtención de una clave valida?¿
MANDAXXXX escribió:mmmm 256^256:

3231700607131100730071487668866995196044410266971548403213034542752465513886
7890893197201411522913463688717960921898019494119559150490921095088152386448
2831206308773673009960917501977503896521067960576383840675682767922186426197
5616183809433847617047058164585203630504288757589154106580860755239912393038
5521914333389668342420684974786564569494856176035326322058077805659331026192
7084603141502585928641771167259436037184618573575983511523016459044036976132
3328723122712568471082020972515710172693132346967854258065669793504599726835
2998638215525166389437335543602135433229604645318478604952148193555853611059
596230656 combinacines......... [burla3]


[Modo Offtopic #ON]
Pos na cuando nos ponemos a ello? xDDDDDDDDDDDDDDDDDDDDDDDDD

Poquitas no son ja ja ja si tuvieras que quemar un DvD por cada prueba encima seria la ostia XD
Verbatim haria contrato con nosotros pa suministrarnos DvD en cantidades abismales XD
[/Modo Offtopic #OFF]

a_SBeR_RH escribió:y usar CUDA para acelerar la obtención de una clave valida?¿


Que es CUDA?
Creo que has tenido muy buena idea Klaus.

Y no creo que sea 256^256 sino más bien 256*256 con lo que "solo" tenemos 65536 combinaciones, que no son muchas.
Digo esto porque tenemos 256 posibilidades por cada caracter, ya que partimos que el caracter anterior es válido, por lo menos eso creo.

Vamos que me parece muy buena idea la forma de obtener una clave original.

Un saludo.
Como vamos con las mates de la ESO?
revisemos esa combinatoria ;)
Hasta donde yo se, RSA son 256 bytes, vamos, 256 caracteres elevado a 256 posibilidades, de ahi lo complicado (para nosotros) y lo seguro (para el que licencia la tecnologia). :V

La idea de Klaus no es mala, pero no creo que sea tan simple, porque si no RSA no valdria para nada...
nyonyo escribió:Creo que has tenido muy buena idea Klaus.

Y no creo que sea 256^256 sino más bien 256*256 con lo que "solo" tenemos 65536 combinaciones, que no son muchas.
Digo esto porque tenemos 256 posibilidades por cada caracter, ya que partimos que el caracter anterior es válido, por lo menos eso creo.

Vamos que me parece muy buena idea la forma de obtener una clave original.

Un saludo.


256^256 no son 65536, tienes que multiplicar 256 por si mismo 256 veces, te aseguro que te puede aburrir poniendo ceros
Las dos keys están en el contenido (disco, canal, etc...). Una es la que se obtiene desde el campo "issuer" hasta el final del archivo. La otra está en la firma. La firma la Wii la desencripta con la llave publica, que como su nombre dice es la que es publica, para encriptar contenido necesitas la privada, que solo la tiene Nintendo.

Actualmente es imposible conseguir firmar un disco de una forma completamente valida (a no ser que tengas la llave privada), no hay más [mad] .
klausus escribió:Creo que tengo una pequeña idea de como solucionar el trucha y obtener la clave original de nintendo para firmar con la clave original.
Pero antes diganme si mis susposiciones son correctas si son asi puede que sea valido...

Hasta lo que he entendido actualmente la consola con los IOS antes del nuevo que hay ahora (37) la comprobacion la hacia hasta encontrarse el final de cadena (0x00) no?
Leia dos cadenas y en ambas tenia que estar el 0x00 en la misma posicion y lo que habia antes de 0x00 era comprobado si era igual no es asi?

2 Dudas en 1 ---> ambas cadenas estan en el disco/canal o una en el disco/canal y la otra en la wii?¿lo que venga despues del 0x00 si lo ponemos por ejemeplo en decimoquito caracter, tieene que se igual tb?

Continuemos con mi suposicion si ponemos todo a 0x00 al no haber caracter que comprobar automaticamente devuelve 0 (validcio ok)
Encambio si ponemos el 0x00 al final hace la validacion compreta y adivinar todos esos numero es muy dificil o imposible de calcular todos de golpe no es asi?

Ahora bien...
Si ponemos el 0x00 a partir del segundo caracter el primero debera coincidir para k devuelva "0" de manera que ahora nuestros palos de ciego son solo de 256 numeros a provar una ver encontremos el numero X que funcione sabemos cual es el primer caracter de la clave ahora repetimos el mismo proceso pero poniendo de caracter 1 el que savemos que va ok y ahora provamos los 256 en el 2 para saber cual es el seguro y asi vas haciendo pruevas uno por uno hasta obtener todos yobtendrias una clave correcta/original sin truchear no es asi? Creen que funcionaria?

Desde luego si tenemo la clave original ya es incapable ... y podriamos firmar lo que quisieramos....

Por contra .... NO ES IMPOSIBLE OBTENERSE PERO SE TARDARIA BASTANTE TIEMPO EN PROVAR TODOS LOS NUMEROS HASTA OBTENRER TODOS... 256 pruebas por cada caracter suponiendo k son 256 (no se cuantos son exactamente) son bastantes pruebas XD


Wanikoko ¿Crees que sirve de algo o se he congeturado algo que no tiene ni pies ni cabeza?


esa fue la idea que yo tuve (no son tantas combinaciones, 256*256) pero es irrealizable, las dos cadenas que compara estan en el TMD, la primera es el hash del tmd desencriptado, y la segunda el propio hash del tmd, Waninkoko lo explico muy bien unos post mas atras. No se puede realizar lo que dices porque:

******Primer paso
Modificar el reserved del TMD, hasta que este tenga un 0x00 en el segundo byte, haces 256 comprobaciones (byte y 0x00) y consigues el primer byte del hash codificado.

Muy bien.

*******Segundo paso
Vuelves a modificar el reserved del TMD para tener un hash de 2 byte y el tercero sea 0x00. El hash ya no es el mismo que en el primer paso, ya que el TMD ha cambiado, y por tanto el primer caracter del hash firmado no es el mismo que en la primera prueba

Salu2
a_SBeR_RH escribió:y usar CUDA para acelerar la obtención de una clave valida?¿


Cuda (calculos de proposito general con una tarjeta grafica) puede ir muy bien para calculos en punto flotante, pero con enteros, es mas potente una CPU que una GPU

Como Bien dicen por ahi, hay 256^256 combinaciones, pongamos por caso a 1µs por cada operacion tardariamos...

1,02*10^603 años... imposible
¿Ya estamos fantaseando con reventar las claves? Siempre pasa lo mismo en los foros de scene de cualquier consola [qmparto]
mejor hagamonos amigos de un programador de nintendo y suministre la clav e seria mas factible que romperlas [risita]
merol escribió:
esa fue la idea que yo tuve (no son tantas combinaciones, 256*256) pero es irrealizable, las dos cadenas que compara estan en el TMD, la primera es el hash del tmd desencriptado, y la segunda el propio hash del tmd, Waninkoko lo explico muy bien unos post mas atras. No se puede realizar lo que dices porque:

******Primer paso
Modificar el reserved del TMD, hasta que este tenga un 0x00 en el segundo byte, haces 256 comprobaciones (byte y 0x00) y consigues el primer byte del hash codificado.

Muy bien.

*******Segundo paso
Vuelves a modificar el reserved del TMD para tener un hash de 2 byte y el tercero sea 0x00. El hash ya no es el mismo que en el primer paso, ya que el TMD ha cambiado, y por tanto el primer caracter del hash firmado no es el mismo que en la primera prueba

Salu2



Vale no habia caido en que cambiaba la clave al cambiar algun caracter o algo... no habia caido XD
Si alguien conociese a alguien del marenostrum, que es el ordena mas potente de Europa seguro que nos ayudaria bastante.
elbuscador escribió:Si alguien conociese a alguien del marenostrum, que es el ordena mas potente de Europa seguro que nos ayudaria bastante.


Offtopic # On

Ya puestos pedimos ayuda a nuestro amigos del ejercito de autodefensa americano XD

Offtopic # Off
klausus escribió:
Offtopic # On

Ya puestos pedimos ayuda a nuestro amigos del ejercito de autodefensa americano XD

Offtopic # Off


COmo ya se veia era coña, no conozco nadie dle marenostrum xD.

El comentario iba enfocado a desbravar, la cosa porque os veo ahi to conectrados.
elbuscador escribió:
COmo ya se veia era coña, no conozco nadie dle marenostrum xD.

El comentario iba enfocado a desbravar, la cosa porque os veo ahi to conectrados.


=D

Lo mio tb tranquilo XD

No se me ocurre nada asi que se lo dejo a los profesionales... XD
En lo de modificar el reserved del tmd hasta que tengas 0x00 en el segundo caracter (o el primero) es que nada te garantiza de que en 256*256 intentos (ni en los que sean) vayas a conseguir un caracter null en las primeras posiciones
En resumen: La potra ha sido descomunal, vaya cagada gorda de Nintendo a la hora de hacer comprobaciones (iba a decir que es de primero de carrera, pero bueno, lo mismo es de segundo XD). En cualquier caso es un fallo imperdonable para un ingeniero, y mas aun para uno de lo que se presupone a una compañia del tamaño de Nintendo.

A los que hablais de reventar la RSA, deciros que precisamente la seguridad de la RSA radica en la incomputabilidad en tiempo razonable del calculo de la clave mediante fuerza bruta. Vamos, que no van por ahi los tiros.
d34th escribió:
Cuda (calculos de proposito general con una tarjeta grafica) puede ir muy bien para calculos en punto flotante, pero con enteros, es mas potente una CPU que una GPU

Como Bien dicen por ahi, hay 256^256 combinaciones, pongamos por caso a 1µs por cada operacion tardariamos...

1,02*10^603 años... imposible


Será cuestión de poner 603 computadoras a descifrar por partes, y en un año la tenemos X-D
rockmann escribió:
Será cuestión de poner 603 computadoras a descifrar por partes, y en un año la tenemos X-D


1,02*10^603 significa 1,02 con 603 ceros detras, vamos, imposible [mad]
Waninkoko escribió:Os voy a contar mi metodo XD

La Wii desencripta un hash SHA1 contenido en la firma y calcula otro hash SHA1 desde el campo "issuer" del TMD hasta el final del TMD.

Si ambos hashes coinciden, el disco esta bien firmado.
El caso es conseguir que ambos hashes comienzen por 0x00

El metodo mas sencillo es cambiar los 256 bytes de la firma por ceros, y modificar el campo "reserved" del TMD hasta que el hash SHA1 que se hace sobre el TMD comienze por 0x00.


Una pequeña pregunta...
El campo ISSUER cual es?? Esque estado mirando en el programers notedpad y no me aparace el NUL si (0x00) pero el ISSUER no... tal vez se una pregunta noob pero esque toy enpezando y me gustaria hacer pruebas n_n

Querria saber como localizo ese campo por ejemplo en el programers notedpad o cualquier editor hexadecimal para de ahi en adelante ponerlo todo a NUL (0x00) mas que nada por probar a hacerlo manualmente ^o^
klausus escribió:
Una pequeña pregunta...
El campo ISSUER cual es?? Esque estado mirando en el programers notedpad y no me aparace el NUL si (0x00) pero el ISSUER no... tal vez se una pregunta noob pero esque toy enpezando y me gustaria hacer pruebas n_n

Querria saber como localizo ese campo por ejemplo en el programers notedpad o cualquier editor hexadecimal para de ahi en adelante ponerlo todo a NUL (0x00) mas que nada por probar a hacerlo manualmente ^o^


Pues simplemente tienes que ir "pasando" tipos desde el principio.

u32 sig_type; --> 4 bytes
u8 sig[256]; --> 256 bytes
u8 fill1[60]; --> 60 bytes
-----------------------------
TOTAL --> 320 bytes

Y luego ya solo es llegar allí. La mayoría de editores hex. incluyen una opción para saltar a un "offset" (posición) de archivo. Así que vas allí, y pones 320.

Verás que llegas a un trozo con lo de ROOT-... etc., pues allí seleccionas desde el principio (de la cadena) hasta el final (del archivo), lo pegas en uno nuevo, guardas, y "hasheas".
GameZelda escribió:
Pues simplemente tienes que ir "pasando" tipos desde el principio.

u32 sig_type; --> 4 bytes
u8 sig[256]; --> 256 bytes
u8 fill1[60]; --> 60 bytes
-----------------------------
TOTAL --> 320 bytes

Y luego ya solo es llegar allí. La mayoría de editores hex. incluyen una opción para saltar a un "offset" (posición) de archivo. Así que vas allí, y pones 320.

Verás que llegas a un trozo con lo de ROOT-... etc., pues allí seleccionas desde el principio (de la cadena) hasta el final (del archivo), lo pegas en uno nuevo, guardas, y "hasheas".



Muchas gracias ahora mas o menos entiendo mas los campo que estan en wiibrew XD esk me liaba >_<


Ya modifique un TMD dese la linea 320 que comienza el ROOT... hasta el final n_n enfin... conseguido XD


A otra cosa jeje
72 respuestas
1, 2