Come funziona il DRM dell'app iOS, esattamente?

8

Quando acquisto un'app in iTunes sul mio computer Windows, ricevo un file * .ipa che è un pacchetto di applicazioni iOS autosufficiente. Posso sfogliare il contenuto di questi file IPA con 7-Zip e persino estrarre risorse e altri dettagli, il che suggerisce che questi file IPA non sono affatto crittografati.

Quindi, se non sono crittografati, come funziona il DRM? Cosa mi impedisce di copiare un file IPA sul computer di qualcun altro e di importare l'IPA in iTunes e poi di installarlo sul dispositivo di qualcun altro?

Inoltre, qualcuno può confermare che finché tengo il file IPA sarò in grado di installarlo sui miei iDevices (con lo stesso ID Apple, ovviamente)? Sono solo preoccupato del fatto che in futuro un'app possa essere aggiornata per rimuovere funzionalità o addirittura essere estratta completamente dall'app store.

    
posta Dai 08.03.2012 - 23:20
fonte

2 risposte

12

In realtà, funziona più come SSL. Al momento della registrazione per un account Apple, Apple genera una coppia di chiavi pubblica / privata per il tuo nome utente. Quindi ti dà la tua chiave privata e mantiene il tuo pubblico. (Ecco perché quando acquisti per la prima volta o quando ripristini il tuo iDevice devi attivarlo con il tuo account iTunes). All'attivazione trasferisce la tua chiave privata sul tuo iDevice. In pratica, ciò che accade è quando acquisti un'app (gratuita oa pagamento) Apple genera un'intestazione lunga 4096 byte che viene crittografata con la tua chiave pubblica.

Se hai qualche comprensione delle chiavi pubbliche / private, la chiave pubblica può crittografare per la sua coppia privata ... Ad esempio, utilizzerei una chiave pubblica dei server per crittografare i dati da inviare al server. Il server userebbe quindi la sua chiave privata per decodificarlo. Quando vuole inviare i dati, usa la mia chiave pubblica per crittografare i dati e io uso la mia chiave privata per decrittografarla! Le chiavi pubbliche possono solo crittografare i dati e non possono decodificare e viceversa per le chiavi private.

Quando scarichi la tua app ha un'intestazione crittografata con la tua chiave pubblica. Solo la tua chiave privata può decodificare l'intestazione incorporata nell'app. Così, per esempio, se ho copiato un IPA generato per te, e lo metto sul mio iDevice (questo presume che tu possa averlo lì, iTunes si rifiuterà di sincronizzarlo comunque), e poi ho provato a farlo funzionare, sarebbe semplicemente crashato perché la mia chiave privata non sarebbe in grado di decodificare l'intestazione! Vale anche la pena notare che il file IPA (un IPA è essenzialmente un file zip che è stato rinominato) non ha l'intestazione, se date un'occhiata al contenuto di un IPA vi renderete conto che contiene un file senza estensione, per esempio, prendi l'app di Facebook, avrebbe un file chiamato "Facebook". Questo è il file binario dell'app e questo è il file con l'intestazione crittografata.

Sì, come indicato sopra, le tue app continueranno a funzionare finché ti ricordi il tuo ID Apple poiché l'iDevice (e iTunes) NON esegue il controllo delle firme con iTunes che-così-mai! Ciò significa che puoi installare app rimosse e anche sincronizzare gli IPA più vecchi sul tuo dispositivo, purché siano tuoi e tu abbia ancora l'IPA a tempo indeterminato!

    
risposta data 10.04.2012 - 20:48
fonte
0

Cambia semplicemente l'estensione da .ipa a .zip . Se stai utilizzando una vecchia versione di iTunes, il file IPA sarà in:

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

Hai visto ... Vai all'utente che stavi utilizzando quando hai scaricato l'app.

    
risposta data 10.10.2018 - 09:16
fonte

Leggi altre domande sui tag