Wie funktioniert iOS App DRM genau?


10

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.

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

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


1
Ich weiß nicht, was Sie davon abhält, aber ich kenne mindestens einen Weg, wie dies getan werden kann: Wenn iOS sich weigert, eine App auszuführen, es sei denn, sie wurde bezahlt, ist eine Aufzeichnung dieser Zahlung im Formular vorhanden einer digitalen Signatur auf einem Datenelement einschließlich einer Prüfsumme der App.
Harald Hanche-Olsen

Antworten:


14

Eigentlich funktioniert es eher wie SSL. Bei der Anmeldung für ein Apple-Konto generiert Apple ein öffentliches / privates Schlüsselpaar für Ihren Benutzernamen. Es gibt Ihnen dann Ihren privaten Schlüssel und behält Ihre öffentliche. (Deshalb müssen Sie Ihr iDevice beim ersten Kauf oder bei der Wiederherstellung mit Ihrem iTunes-Konto aktivieren.) Bei der Aktivierung wird Ihr privater Schlüssel auf Ihr iDevice übertragen. Grundsätzlich passiert, wenn Sie eine App kaufen (kostenlos oder kostenpflichtig). Apple generiert einen 4096 Byte langen Header, der mit Ihrem öffentlichen Schlüssel verschlüsselt ist.

Wenn Sie sich mit öffentlichen / privaten Schlüsseln auskennen, kann der öffentliche Schlüssel für sein privates Paar verschlüsseln ... Zum Beispiel würde ich einen öffentlichen Serverschlüssel 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 nur Daten verschlüsseln und private Schlüssel nicht entschlüsseln und umgekehrt.

Wenn Sie Ihre App herunterladen, wird ein Header mit Ihrem öffentlichen Schlüssel verschlüsselt. Nur Ihr privater Schlüssel kann den in die App eingebetteten Header entschlüsseln. Wenn ich beispielsweise ein für Sie generiertes IPA kopiere und es auf mein iDevice lege (dies setzt voraus, dass Sie es dort abrufen können, würde iTunes die Synchronisierung trotzdem ablehnen) und dann versuche, es auszuführen, stürzt es einfach ab weil mein privater Schlüssel den Header nicht entschlüsseln könnte! Beachten Sie auch, dass die IPA-Datei (eine IPA ist im Wesentlichen eine umbenannte Zip-Datei) keinen Header enthält. Wenn Sie sich den Inhalt einer IPA ansehen, werden Sie feststellen, dass sie eine Datei ohne Erweiterung enthält. Nehmen wir 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, in der sich der verschlüsselte Header befindet.

Ja, wie oben erwähnt, werden Ihre Apps so lange ausgeführt, wie Sie sich an Ihre Apple ID erinnern können, da das iDevice (und iTunes) KEINE Signaturprüfung mit iTunes durchführen. Dies bedeutet, dass Sie entfernte Apps installieren und auch ältere IPAs mit Ihrem Gerät synchronisieren können, solange diese Ihnen gehören und Sie die IPA noch auf unbestimmte Zeit haben!


0

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

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

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


Diese Antwort erklärt nicht, wie iOS Lizenzbeschränkungen erzwingt.
Dai
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.