Как работает приложение DRM для iOS?


10

Когда я покупаю приложение в iTunes на моем компьютере с Windows, я получаю файл * .ipa, который представляет собой автономный пакет приложений для iOS. Я могу просматривать содержимое этих файлов IPA с помощью 7-Zip и даже извлекать ресурсы и другую информацию, что говорит о том, что эти файлы IPA вообще не шифруются.

Так что, если они не зашифрованы, как работает DRM? Что мешает мне скопировать файл IPA на чужой компьютер и импортировать IPA в iTunes, а затем установить его на чужое устройство?

Кроме того, кто-то может подтвердить, что пока я храню файл IPA, я смогу установить его на свои iDevices (под тем же Apple ID, конечно)? Я просто обеспокоен тем, что в будущем приложение может быть обновлено для удаления функций или даже может быть полностью удалено из магазина приложений.


1
Я не знаю, что мешает вам сделать это, но я знаю, по крайней мере, один способ, которым это можно сделать: а именно, iOS отказывается запускать приложение, если оно не было оплачено, запись об этом платеже присутствует в форме какой-то цифровой подписи на части данных, включая контрольную сумму приложения.
Харальд Ханче-Олсен

Ответы:


14

На самом деле, это работает больше как SSL. После регистрации учетной записи Apple, Apple генерирует пару открытый / закрытый ключ для вашего имени пользователя. Затем он дает вам ваш закрытый ключ и сохраняет ваш открытый. (Вот почему при первой покупке или восстановлении iDevice вы должны активировать его с помощью учетной записи iTunes). После активации он передает ваш закрытый ключ на ваш iDevice. В основном, когда вы покупаете приложение (бесплатное или платное), Apple генерирует заголовок длиной 4096 байт, который шифруется вашим открытым ключом.

Если у вас есть понимание открытого / закрытого ключей, открытый ключ может шифроваться для его частной пары ... Например, я бы использовал открытый ключ сервера для шифрования данных для отправки на сервер. Затем сервер будет использовать свой закрытый ключ для его расшифровки. Когда он хочет отправить данные обратно, он использует мой открытый ключ для шифрования данных, а я использую свой личный ключ для его расшифровки! Открытые ключи могут только шифровать данные и не могут расшифровывать и наоборот для закрытых ключей.

Когда вы загружаете ваше приложение, оно имеет заголовок, зашифрованный вашим открытым ключом. Только ваш закрытый ключ может расшифровать заголовок, встроенный в приложение. Например, если я скопировал сгенерированный для вас IPA и поместил его на свой iDevice (предполагается, что вы можете получить его там, iTunes все равно откажется синхронизировать его), а затем я попытался запустить его, он просто потерпел бы крах потому что мой закрытый ключ не сможет расшифровать заголовок! Также стоит отметить, что файл IPA (IPA - это, по сути, zip-файл, который был переименован) не имеет заголовка. Если вы посмотрите на содержимое IPA, вы поймете, что он содержит файл без расширения, Возьмите приложение Facebook, например, оно будет иметь файл с именем «Facebook». Это двоичный файл приложения, и этот файл содержит зашифрованный заголовок.

Да, как указано выше, ваши приложения будут работать до тех пор, пока вы помните свой Apple ID, поскольку iDevice (и iTunes) не проверяют подпись с iTunes вообще! Это означает, что вы можете устанавливать удаленные приложения, а также синхронизировать старые IPA на свое устройство, если они принадлежат вам, а IPA у вас еще неограниченный!


0

Просто измените расширение с .ipaна .zip. Если вы используете старую версию iTunes, файл IPA будет находиться в:

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

Если вы видите ... Перейдите к пользователю, который использовался при загрузке приложения.


Этот ответ не объясняет, как iOS применяет лицензионные ограничения.
Дай
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.