Share on Google+Share on FacebookTweet about this on Twitter

Muchos me preguntan que de donde se obtienen las firmwares de Apple, que como podemos tener tan pronto los enlaces a sus descargas que si como pueden filtrarse en el caso del iPod Touch que Apple la vende… Vamos a explicarlo:

Antes de empezar, recuerdo por cierto que quienes tengan intención de actualizar o restaurar sus iPhone o iPod Touch con las versiones 3.0 que se filtraron antes del lanzamiento oficial… os aviso que os abstengais, no son las mismas aunque recen ser la misma revisión.

Y a lo que vamos.

Apple usa un sistema simple pero eficiente para llevar a cabo las actualizaciones de sus dispositivos a través de iTunes, desde las firmwares de los iPod, iPod Touch o iPhone o incluso los perfiles de los operadores del iPhone.

Cuando estas en iTunes, este comprueba si existen actualizaciones, ¿cómo? simplemente accede a un xml y lo revisa. Este XML contiene la información de cada una de las firmwares y la documentación adjunta a cada una de ellas, así como los enlaces a cada una de las firmwares. iTunes solo tiene que acceder y buscar si existe una versión superior en dicho XML con un simple parsing de este. Si existe saca por pantalla el aviso y si se acepta, accede al mismo XML del cual obtiene la URL completa de la firmware a descargar.

Este XML se puede consultar desde cualquier PC:

http://phobos.apple.com/version

Si accedemos a él tendremos acceso a todas las URL de las firmware de Apple. Evidentemente algunas antiguas es posible que no existan ya. En realidad los enlaces existen, pero no se muestran en dicho XML. Si queremos descargar cualquier firmware tan solo tenemos que copiar la URL y listo.

¿Pero que sucede con las actualizaciones del iPod Touch? Cualquiera que examine, busque… en dicho XML se dará cuenta que cuando llega a una firmware para iPod Touch se encuentra algo como esto:

“protected://pfd.apple.com/ProtectedAsset/iPodTouch/061-6579.20090527.Xde3T/iPod1,1_3.0_7A341_Restore.ipsw”

la etiqueta “protected” lo dice todo, y evidentemente cambiando “protected” por “www” no es suficiente. Aun así os diré que las primeras versiones de Apple de este sistema, si que era suficiente cambiar dicha etiqueta por “http” y se podía realizar la descargar. ¿Absurdo verdad? Como se tocan los huevos los chicos de Apple.

De la primera versión se pasó a la segunda versión, que es la que se usa ahora, que tampoco es que tenga mucha complicación, aunque mucho más ingeniosa que la primera. Pero antes de explicarla vamos a intentar comprender que problema tiene Apple con ello.

Una firmware no puede firmarse para cada usuario. Bueno, a ver, se podría hacer, pero no sería viable de ninguna forma, desde que el archivo pesaría más, hasta que sería un auténtico engorro por todos los sentidos. Esto quiere decir que la firmware .ipws es la misma para todos (esto no sucede igual cno las aplicaciones, las cuales sí estan firmadas para cada usuario). Ademas esta el problema añadido de que pasaría para aquellos q comprasen el iPod Touch con dicha actualización.

Bueno, ya tenemos el primer problema para Apple. La firmware es igual para todos, bit a bit. Está igualmente claro que quien compra la actualización y le da a actualizar le saldrá y quien no no le saldrá o le saldra un cartel que le diga que la puede comprar. ¿Luego como sabe iTunes que la has comprado o no? Por tu cuenta de AppStore, está claro, pero… ¿que envia itunes a los servidores de Apple para comprobar si está disponible o no (comprada o no)?

Para ello tendríamos que usar un Sniffer en dos PCs, uno con una cuenta que la ha comprado y otro una cuenta en la que no la ha comprado y ver si existe algo diferente, o usar un procedimiento similar.

Sorpresa!! iTunes no envia a los servidores de Apple ninguna información referente a nustra cuenta. Es lógico, nuestra firmware no depende de nuestra cuenta, no se encripta para ella ni para nada. Pero está claro que algo cambia!! Antes de desvelar el secreto vamos a ver los dos ejemplos anteriores, uno con la actualización pagada y otra sin pagar:

1º. Sin Pagar

Se accede a iTunes, este comprueba un XML por actualizaciones, encuentra un protected y decuelve un mensaje de que si se quiere se compre.

2º. Pagando/comprado el iPod Touch con dicha actualizacion

Se accede a iTunes, este comprueba un XML por actualizaciones, encuentra la firmware y la descarga.

¿Cual es la diferencia de los dos casos? el XML.

Podemos decir que quien ha comprado la firmware accede entonces a un XML diferente? Efectivamente, eso es lo que sucede.

Pero entonces, preguntarán algunos, aun no comprendo pq los enlaces que existen son tan solo temporales y con un formato extraño, en el que suele terminar por key=XXXXXXXXXX. Es simple. Cuando se ha comprado la firmware se accede a un XML, siempre se accede al mismo!! y este genera temporalmente un enlace válido a la firmware del iPod Touch. Si la Key no es válida no se podrá descargar, si es válida si. Esta Key se genera en los servidores de Apple, pero no importa que sea temporal o permanente. ¿Por qué? porque en el momento que queramos podremos acceder al XML y este generará una válida.

¿Y cual es este XML? Cualquiera que sepa manejar un Sniffer lo podría saber facilmente:

“http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client.MZITunesClientCheck/version?touchUpdate=true”

Ese es el XML que accede un iPod Touch con acceso a las actualizaciones. En realidad es igual al que se usa para acceder a los iPhone o a cualquier otro iPod, salvo que si miramos bien se le ha añadido una coletilla “?touchUpdate=true”. ¿Curioso verdad?. Si visitamos ese XML, en apariencia es igual al que nos aparece si visitamos la página primera (que no es más que una redirección a la que acabo de poner sin la coletilla). Pero si buscamos en nusetro nuevo XML por “iPod1,1_3” que sería la versión 3.0 para el iPod Touch viejo, vemos algo muy diferente al “protected”, por el contrario nos encontramos con esto otro:

“http://pfd.apple.com/ProtectedAsset/iPodTouch/061-6579.20090527.Xde3T/iPod1,1_3.0_7A341_Restore.ipsw?downloadKey=1245443827_8105f42b8b462d3652857c8d121f9c52”

Sorpresa sorpresa… y eso sí que es un enlace válido hacia la firmware, 100% genuino y desde los servidores de Apple.

¿Ahora bien, hasta que punto esto es legal o no legal?

Por una parte estamos descargando algo desde un servidor de Apple, igual que lo hace quien lo haya comprado o a quien el iPod Touch le viniese de fábrica. Por otro lado se da el caso de que en el caso de que nofuese ilegal, descargamos la firmware, la introducimos en nuestro iPod y una vez que está dentro de él, iTunes ya interpretará que nusetro iPod Touch se compró con ella o que la compramos y nos mostrará las actualizaciones pertinentes, ¿con lo que ya no sería ilegal?

Desde mi punto de vista es legal, pero está claro que no es ético. Es legal porque no se está realizando nada, ninguna práctica ni sorteando ningún sistema… no hacemos ninguna práctica ilegal, y la firmware no dice que tan solo se pueda introducir en los iPod que la compraron, dado que podría venir de fábrica, no es un software exclusivo como en el caso de las aplicaciones ni nada por el estilo. Tampoco estamos distribuyendo software dado que sale de sus servidores… que evidentemente no es ético? evidentemente, puesto que Apple cobra por ello, y aunque no nos parezca correcto lo que hace Apple, tampoco podemos poner la justicia por nuestra mano.

Claro está, todo es desde mi punto de vista…

Un saludo y espero que haya servido para esclarecer algunas cosillas.