Wie funktioniert DRM für iOS-Apps genau?

Wenn ich eine App in iTunes auf meinem Windows-Computer kaufe, erhalte ich eine *.ipa-Datei, die ein eigenständiges iOS-Anwendungspaket ist. Ich kann den Inhalt dieser IPA-Dateien mit 7-Zip durchsuchen und sogar Ressourcen und andere Details extrahieren, was darauf hindeutet, dass diese IPA-Dateien überhaupt nicht verschlüsselt sind.

Wenn sie also nicht verschlüsselt sind, wie funktioniert DRM? Was hindert mich daran, eine IPA-Datei auf den Computer eines anderen zu kopieren und das IPA in iTunes zu importieren und es dann auf dem Gerät eines anderen zu installieren?

Kann bitte auch jemand bestätigen, dass ich, solange ich die IPA-Datei behalte, sie auf meinen iDevices installieren kann (natürlich unter derselben Apple-ID)? Ich mache mir nur Sorgen, dass eine App in Zukunft aktualisiert werden könnte, um Funktionen zu entfernen, oder sogar vollständig aus dem App Store gezogen werden könnte.

Ich weiß nicht, was Sie davon abhält, aber ich kenne mindestens einen Weg, wie es getan werden könnte: Nämlich, indem iOS sich weigert, eine App auszuführen, es sei denn, sie wurde bezahlt, wobei eine Aufzeichnung dieser Zahlung im Formular vorhanden ist einer digitalen Signatur auf einem Datenelement, einschließlich einer Prüfsumme der App.

Antworten (2)

Eigentlich funktioniert es eher wie SSL. Bei der Anmeldung für ein Apple-Konto generiert Apple ein Paar aus öffentlichem und privatem Schlüssel für Ihren Benutzernamen. Es gibt Ihnen dann Ihren privaten Schlüssel und behält Ihren öffentlichen. (Deshalb müssen Sie Ihr iDevice beim ersten Kauf oder bei der Wiederherstellung mit Ihrem iTunes-Konto aktivieren). Bei der Aktivierung überträgt es Ihren privaten Schlüssel auf Ihr iDevice. Im Grunde genommen generiert Apple beim Kauf einer App (kostenlos oder kostenpflichtig) einen 4096 Byte langen Header, der mit Ihrem öffentlichen Schlüssel verschlüsselt ist.

Wenn Sie öffentliche/private Schlüssel verstehen, kann der öffentliche Schlüssel für sein privates Paar verschlüsseln ... Zum Beispiel würde ich einen öffentlichen Schlüssel eines Servers verwenden, um Daten zu verschlüsseln, die an den Server gesendet werden sollen. Der Server würde dann seinen privaten Schlüssel verwenden, um ihn zu entschlüsseln. Wenn es Daten zurücksenden möchte, verwendet es meinen öffentlichen Schlüssel, um die Daten zu verschlüsseln, und ich verwende meinen privaten Schlüssel, um sie zu entschlüsseln! Öffentliche Schlüssel können Daten nur verschlüsseln und nicht entschlüsseln und umgekehrt für private Schlüssel.

Wenn Sie Ihre App herunterladen, hat sie einen Header, der mit Ihrem öffentlichen Schlüssel verschlüsselt ist. Nur Ihr privater Schlüssel kann den in die App eingebetteten Header entschlüsseln. Wenn ich zum Beispiel ein für Sie generiertes IPA kopiert und auf mein iDevice gelegt habe (vorausgesetzt, Sie können es dort bekommen, würde iTunes sowieso die Synchronisierung ablehnen) und dann versuchen, es auszuführen, stürzt es einfach ab weil mein privater Schlüssel den Header nicht entschlüsseln könnte! Es ist auch erwähnenswert, dass die IPA-Datei (ein IPA ist im Wesentlichen eine Zip-Datei, die umbenannt wurde) keinen Header hat. Wenn Sie sich den Inhalt eines IPA ansehen, werden Sie feststellen, dass es eine Datei ohne Erweiterung enthält. Nehmen Sie zum Beispiel die Facebook-App, sie hätte eine Datei mit dem Namen „Facebook“. Dies ist die Binärdatei der App, und dies ist die Datei, die den verschlüsselten Header enthält.

Ja, wie oben erwähnt, werden Ihre Apps weiter ausgeführt, solange Sie sich an Ihre Apple-ID erinnern können, da das iDevice (und iTunes) KEINE Signaturüberprüfung mit iTunes durchführt! Das bedeutet, dass Sie entfernte Apps installieren und auch ältere IPAs mit Ihrem Gerät synchronisieren können, solange sie Ihnen gehören und Sie das IPA noch auf unbestimmte Zeit haben!

Ändern Sie einfach die Erweiterung von .ipain .zip. Wenn Sie eine alte Version von iTunes verwenden, befindet sich die IPA-Datei in:

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

Wurden Sie gesehen ... Gehen Sie zu dem Benutzer, den Sie beim Herunterladen der App verwendet haben.

Diese Antwort erklärt nicht, wie iOS Lizenzbeschränkungen erzwingt.