¿Cómo funciona exactamente la aplicación DRM de iOS?

10

Cuando compro una aplicación en iTunes en mi computadora con Windows, obtengo un archivo * .ipa que es un paquete de aplicación iOS independiente. Puedo explorar el contenido de estos archivos IPA con 7-Zip e incluso extraer recursos y otros detalles, lo que sugiere que estos archivos IPA no están encriptados.

Entonces, si no están encriptados, ¿cómo funciona DRM? ¿Qué me impide copiar un archivo IPA en la computadora de otra persona e importar la IPA a iTunes y luego instalarlo en el dispositivo de otra persona?

Además, ¿alguien puede confirmar que mientras conserve el archivo IPA podré instalarlo en mis iDevices (bajo la misma ID de Apple, por supuesto)? Solo me preocupa que en el futuro una aplicación pueda actualizarse para eliminar funciones o incluso pueda retirarse de la tienda de aplicaciones por completo.

Dai
fuente
1
No sé qué le impide hacerlo, pero sé al menos una forma en que podría hacerse: a saber, si iOS se niega a ejecutar una aplicación a menos que se haya pagado, un registro de ese pago está presente en el formulario de alguna firma digital en un dato que incluye una suma de verificación de la aplicación.
Harald Hanche-Olsen

Respuestas:

14

En realidad, funciona más como SSL. Al registrarse para obtener una cuenta de Apple, Apple genera un par de claves pública / privada para su nombre de usuario. Luego le da su clave privada y mantiene su público. (Es por eso que cuando compra por primera vez o cuando restaura su iDevice debe activarlo con su cuenta de iTunes). Tras la activación, transfiere su clave privada a su iDevice. Básicamente, lo que sucede es que cuando compras una aplicación (gratuita o de pago), Apple genera un encabezado largo de 4096 bytes que se cifra con tu clave pública.

Si tiene alguna comprensión de las claves públicas / privadas, la clave pública puede cifrar para su par privado ... Por ejemplo, usaría una clave pública de servidor para cifrar datos para enviar al servidor. El servidor luego usaría su clave privada para descifrarlo. Cuando quiere devolver datos, usa mi clave pública para cifrar los datos y yo uso mi clave privada para descifrarlos. Las claves públicas solo pueden cifrar datos y no pueden descifrar y viceversa para las claves privadas.

Cuando descarga su aplicación, tiene un encabezado cifrado con su clave pública. Solo su clave privada puede descifrar el encabezado incrustado en la aplicación. Entonces, por ejemplo, si copié un IPA generado para usted y lo puse en mi iDevice (suponiendo que pueda tenerlo allí, iTunes se negaría a sincronizarlo de todos modos), y luego intenté ejecutarlo, simplemente se bloqueaba ¡porque mi clave privada no podría descifrar el encabezado! También vale la pena señalar que el archivo IPA (un IPA es esencialmente un archivo zip que ha sido renombrado) no tiene el encabezado, si observa el contenido de un IPA se dará cuenta de que contiene un archivo sin extensión, Por ejemplo, la aplicación de Facebook tendría un archivo llamado 'Facebook'. Este es el binario de la aplicación, y este es el archivo que tiene el encabezado cifrado.

Sí, como se indicó anteriormente, sus aplicaciones continuarán ejecutándose siempre que pueda recordar su ID de Apple, ya que el iDevice (e iTunes) NO comprueba la firma con iTunes. ¡Esto significa que puede instalar aplicaciones eliminadas y también sincronizar IPA antiguas con su dispositivo siempre que sean suyas y aún tenga la IPA indefinidamente!

jduncanator
fuente
0

Simplemente cambie la extensión de .ipaa .zip. Si está utilizando una versión anterior de iTunes, el archivo IPA estará en:

C:\user\ ...\music\itunes\mobile applications 

Si vio ... Vaya al usuario que estaba usando cuando descargó la aplicación.

Sólo
fuente
Esta respuesta no explica cómo iOS aplica restricciones de licencia.
Dai