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

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 cifrados en absoluto.

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 el 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 se actualice para eliminar funciones o incluso que se elimine por completo de la tienda de aplicaciones.

No sé qué le impide hacer eso, pero sé al menos una forma en que podría hacerlo: a saber, si iOS se niega a ejecutar una aplicación a menos que haya sido pagada, 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.

Respuestas (2)

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 te da tu clave privada y mantiene tu clave pública. (Es por eso que cuando compras por primera vez o cuando restauras tu iDevice debes activarlo con tu cuenta de iTunes). Tras la activación, transfiere su clave privada a su iDevice. Básicamente, lo que sucede es que cuando compra una aplicación (gratuita o de pago), Apple genera un encabezado de 4096 bytes de longitud que se cifra con su clave pública.

Si tiene alguna comprensión de las claves públicas / privadas, la clave pública puede cifrar su par privado ... Por ejemplo, usaría una clave pública de servidores para cifrar los datos para enviar al servidor. El servidor luego usaría su clave privada para descifrarlo. Cuando quiere devolver los 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 encriptado 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 obtenerlo allí, iTunes se negaría a sincronizarlo de todos modos), y luego traté de ejecutarlo, simplemente fallaría ¡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 cambiado de nombre) no tiene el encabezado, si observa el contenido de un IPA, se dará cuenta de que contiene un archivo sin extensión, tome la aplicación de Facebook, por ejemplo, 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 verifica la firma con iTunes en absoluto! ¡Esto significa que puede instalar aplicaciones eliminadas y también sincronizar IPA anteriores con su dispositivo siempre que sean suyos y aún tenga el IPA indefinidamente!

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 

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

Esta respuesta no explica cómo iOS impone las restricciones de licencia.