Jak dokładnie działa DRM aplikacji na iOS?

9

Kiedy kupuję aplikację w iTunes na komputerze z systemem Windows, otrzymuję plik * .ipa, który jest samodzielnym pakietem aplikacji dla systemu iOS. Mogę przeglądać zawartość tych plików IPA za pomocą 7-Zip, a nawet wyodrębniać zasoby i inne szczegóły, co sugeruje, że te pliki IPA w ogóle nie są szyfrowane.

Więc jeśli nie są szyfrowane, jak działa DRM? Co powstrzymuje mnie przed kopiowaniem pliku IPA na komputer innej osoby i importowaniem IPA do iTunes, a następnie instalowaniem go na urządzeniu innej osoby?

Czy ktoś może również potwierdzić, że dopóki zachowam plik IPA, będę mógł go zainstalować na moich urządzeniach iDevices (oczywiście pod tym samym Apple ID)? Obawiam się, że w przyszłości aplikacja może zostać zaktualizowana w celu usunięcia funkcji lub nawet może zostać całkowicie usunięta ze sklepu z aplikacjami.

Dai
źródło
1
Nie wiem, co Cię powstrzymuje, ale znam co najmniej jeden sposób, aby to zrobić: mianowicie, że iOS odmawia uruchomienia aplikacji, chyba że została opłacona, zapis tej płatności w formie jakiegoś podpisu cyfrowego na kawałku danych, w tym sumie kontrolnej aplikacji.
Harald Hanche-Olsen

Odpowiedzi:

13

W rzeczywistości działa bardziej jak SSL. Po zarejestrowaniu konta Apple Apple generuje parę klucza publicznego / prywatnego dla Twojej nazwy użytkownika. Następnie daje ci twój klucz prywatny i utrzymuje twój publiczny. (Dlatego przy pierwszym zakupie lub przywracaniu iDevice musisz je aktywować za pomocą konta iTunes). Po aktywacji przekazuje twój klucz prywatny do twojego iDevice. Zasadniczo dzieje się, gdy kupujesz aplikację (bezpłatną lub płatną). Apple generuje nagłówek o długości 4096 bajtów, który jest szyfrowany za pomocą klucza publicznego.

Jeśli rozumiesz klucze publiczne / prywatne, klucz publiczny może szyfrować dla swojej prywatnej pary ... Na przykład użyłbym klucza publicznego serwera do szyfrowania danych w celu wysłania na serwer. Serwer użyłby następnie swojego klucza prywatnego do odszyfrowania. Kiedy chce odesłać dane, używa mojego klucza publicznego do szyfrowania danych, a ja używam mojego klucza prywatnego do ich odszyfrowania! Klucze publiczne mogą szyfrować tylko dane i nie mogą deszyfrować i odwrotnie w przypadku kluczy prywatnych.

Po pobraniu aplikacja ma nagłówek zaszyfrowany za pomocą klucza publicznego. Tylko twój klucz prywatny może odszyfrować nagłówek osadzony w aplikacji. Na przykład, jeśli skopiowałem wygenerowany dla ciebie IPA i umieściłem go w moim iDevice (zakładając, że możesz go tam dostać, iTunes i tak nie chciałby go zsynchronizować), a następnie spróbowałem go uruchomić, po prostu by się zawiesił ponieważ mój klucz prywatny nie byłby w stanie odszyfrować nagłówka! Warto również zauważyć, że plik IPA (IPA jest zasadniczo plikiem zip, którego nazwa została zmieniona) nie ma nagłówka, jeśli spojrzysz na zawartość IPA, zauważysz, że zawiera on plik bez rozszerzeń, na przykład aplikacja Facebooka, miałaby plik o nazwie „Facebook”. To jest plik binarny aplikacji i jest to plik z zaszyfrowanym nagłówkiem.

Tak, jak wspomniano powyżej, Twoje aplikacje będą działały tak długo, jak będziesz mógł zapamiętać swój Apple ID, ponieważ iDevice (i iTunes) NIE sprawdzają podpisów za pomocą iTunes, jak nigdy dotąd! Oznacza to, że możesz instalować usunięte aplikacje, a także synchronizować starsze IPA z urządzeniem, o ile są one twoje i nadal masz IPA na czas nieokreślony!

jduncanator
źródło
0

Wystarczy zmienić rozszerzenie z .ipana .zip. Jeśli używasz starej wersji iTunes, plik IPA będzie w:

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

Czy widzisz ... Przejdź do użytkownika, którego używałeś podczas pobierania aplikacji.

Właśnie
źródło
Ta odpowiedź nie wyjaśnia, w jaki sposób iOS wymusza ograniczenia licencji.
Dai