Come funziona esattamente l'app DRM per iOS?


10

Quando acquisto un'app in iTunes sul mio computer Windows, ottengo un file * .ipa che è un pacchetto di applicazioni iOS indipendente. 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 DRM? Cosa mi impedisce di copiare un file IPA sul computer di qualcun altro e importare l'IPA in iTunes e quindi installarlo sul dispositivo di qualcun altro?

Inoltre, qualcuno può confermare che fino a quando manterrò il file IPA sarò in grado di installarlo sul mio iDevices (ovviamente con lo stesso ID Apple)? Sono solo preoccupato che in futuro un'app potrebbe essere aggiornata per rimuovere funzionalità o potrebbe essere estratta completamente dall'app store.


1
Non so cosa ti impedisce di farlo, ma conosco almeno un modo in cui potrebbe essere fatto: vale a dire, con iOS che rifiuta di eseguire un'app a meno che non sia stata pagata, un record di quel pagamento è presente nel modulo di alcune firme digitali su un pezzo di dati incluso un checksum dell'app.
Harald Hanche-Olsen

Risposte:


14

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. Ti dà quindi la tua chiave privata e mantiene il tuo pubblico. (Ecco perché quando acquisti per la prima volta o quando ripristini iDevice devi attivarlo con il tuo account iTunes). All'attivazione trasferisce la chiave privata su iDevice. Fondamentalmente ciò che accade è quando acquisti un'app (gratuita o a pagamento), Apple genera un'intestazione lunga 4096 byte crittografata con la tua chiave pubblica.

Se hai una comprensione delle chiavi pubbliche / private, la chiave pubblica può crittografare per la sua coppia privata ... Ad esempio, userei una chiave pubblica del server per crittografare i dati da inviare al server. Il server utilizzerà quindi la sua chiave privata per decrittografarlo. Quando vuole restituire i dati, usa la mia chiave pubblica per crittografare i dati e io uso la mia chiave privata per decrittografarli! Le chiavi pubbliche possono solo crittografare i dati e non possono decrittografare 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ò decrittografare l'intestazione incorporata nell'app. Quindi, ad esempio, se copiassi un IPA generato per te e lo inserissi sul mio iDevice (questo presuppone che tu possa portarlo lì, iTunes si rifiuterà comunque di sincronizzarlo), e quindi proverei a eseguirlo, si bloccherebbe semplicemente perché la mia chiave privata non sarebbe in grado di decrittografare 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 dai un'occhiata al contenuto di un IPA ti accorgerai che contiene un file senza estensione, prendi ad esempio l'app di Facebook, avrebbe un file chiamato "Facebook". Questo è il file binario dell'app e questo è il file che contiene l'intestazione crittografata.

Sì, come indicato sopra, le tue app continueranno a funzionare finché riesci a ricordare il tuo ID Apple in quanto iDevice (e iTunes) NON eseguono NESSUN controllo delle firme con iTunes. Ciò significa che puoi installare le app rimosse e anche sincronizzare gli IPA più vecchi sul tuo dispositivo purché siano tuoi e tu abbia ancora l'IPA a tempo indeterminato!


0

Cambia l'estensione da .ipaa .zip. Se stai utilizzando una versione precedente di iTunes, il file IPA sarà in:

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

Stavi vedendo ... Vai all'utente che stavi usando quando hai scaricato l'app.


Questa risposta non spiega in che modo iOS applica le restrizioni di licenza.
Dai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.