Comment fonctionne l'application iOS DRM, exactement?

10

Lorsque j'achète une application dans iTunes sur mon ordinateur Windows, j'obtiens un fichier * .ipa qui est un package d'application iOS autonome. Je peux parcourir le contenu de ces fichiers IPA avec 7-Zip et même extraire des ressources et d'autres détails, ce qui suggère que ces fichiers IPA ne sont pas du tout chiffrés.

Donc, s'ils ne sont pas chiffrés, comment fonctionne DRM? Qu'est-ce qui m'empêche de copier un fichier IPA sur l'ordinateur de quelqu'un d'autre et d'importer l'IPA dans iTunes, puis de l'installer sur l'appareil de quelqu'un d'autre?

De plus, quelqu'un peut-il confirmer que tant que je conserve le fichier IPA, je pourrai l'installer sur mes iDevices (sous le même identifiant Apple, bien sûr)? Je crains juste qu'à l'avenir une application puisse être mise à jour pour supprimer des fonctionnalités ou même être retirée complètement de l'App Store.

Dai
la source
1
Je ne sais pas ce qui vous empêche de le faire, mais je sais au moins une façon de le faire: à savoir, par iOS refusant d'exécuter une application à moins qu'elle n'ait été payée, un enregistrement de ce paiement étant présent dans le formulaire d'une signature numérique sur un élément de données, y compris une somme de contrôle de l'application.
Harald Hanche-Olsen

Réponses:

14

En fait, cela fonctionne plus comme SSL. Lors de la création d'un compte Apple, Apple génère une paire de clés publique / privée pour votre nom d'utilisateur. Il vous donne ensuite votre clé privée et garde votre public. (C'est pourquoi lorsque vous achetez pour la première fois ou lorsque vous restaurez votre iDevice, vous devez l'activer avec votre compte iTunes). Lors de l'activation, il transfère votre clé privée sur votre iDevice. Fondamentalement, ce qui se passe, c'est lorsque vous achetez une application (gratuite ou payante), Apple génère un en-tête de 4096 octets qui est chiffré avec votre clé publique.

Si vous avez une compréhension des clés publiques / privées, la clé publique peut chiffrer pour sa paire privée ... Par exemple, j'utiliserais une clé publique de serveur pour chiffrer les données à envoyer au serveur. Le serveur utiliserait alors sa clé privée pour la décrypter. Lorsqu'il veut renvoyer des données, il utilise ma clé publique pour crypter les données et j'utilise ma clé privée pour les décrypter! Les clés publiques peuvent uniquement chiffrer les données et ne peuvent pas déchiffrer et vice-versa pour les clés privées.

Lorsque vous téléchargez votre application, son en-tête est chiffré avec votre clé publique. Seule votre clé privée peut déchiffrer l'en-tête intégré à l'application. Ainsi, par exemple, si je copiais une IPA générée pour vous et la mettais sur mon iDevice (cela suppose que vous pouvez l'obtenir là-bas, iTunes refuserait de toute façon de la synchroniser), puis j'essayais de l'exécuter, elle planterait simplement car ma clé privée ne pourrait pas décrypter l'en-tête! Il est également intéressant de noter que le fichier IPA (un IPA est essentiellement un fichier zip qui a été renommé) n'a pas d'en-tête, si vous regardez le contenu d'un IPA, vous vous rendrez compte qu'il contient un fichier sans extension, Prenez l'application de Facebook par exemple, elle aurait un fichier nommé «Facebook». Il s'agit du binaire de l'application, et c'est le fichier qui contient l'en-tête chiffré.

Oui, comme indiqué ci-dessus, vos applications continueront de fonctionner tant que vous vous souviendrez de votre identifiant Apple, car l'iDevice (et iTunes) ne vérifie AUCUNE signature avec iTunes quoi qu'il en soit! Cela signifie que vous pouvez installer des applications supprimées et également synchroniser des IPA plus anciennes avec votre appareil tant qu'elles sont à vous et que vous avez toujours l'IPA indéfiniment!

jduncanator
la source
0

Modifiez simplement l'extension de .ipaà .zip. Si vous utilisez une ancienne version d'iTunes, le fichier IPA sera dans:

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

Avez-vous vu ... Accédez à l'utilisateur que vous utilisiez lorsque vous avez téléchargé l'application.

Juste
la source
Cette réponse n'explique pas comment iOS applique les restrictions de licence.
Dai