Bagaimana cara kerja aplikasi iOS DRM, tepatnya?

10

Ketika saya membeli aplikasi di iTunes di komputer Windows saya, saya mendapatkan file * .ipa yang merupakan paket aplikasi iOS mandiri. Saya dapat menelusuri konten file IPA ini dengan 7-Zip dan bahkan mengekstrak sumber daya dan detail lainnya, yang menunjukkan file-file IPA ini tidak dienkripsi sama sekali.

Jadi jika mereka tidak dienkripsi, bagaimana cara kerja DRM? Apa yang menghentikan saya dari menyalin file IPA ke komputer orang lain dan mengimpor IPA ke iTunes dan kemudian menginstalnya di perangkat orang lain?

Juga, bisakah seseorang mengonfirmasi bahwa selama saya menyimpan file IPA saya akan dapat menginstalnya ke iDevices saya (tentu saja di bawah ID Apple yang sama)? Saya hanya khawatir bahwa di masa depan aplikasi mungkin diperbarui untuk menghapus fitur atau bahkan mungkin ditarik dari toko aplikasi sepenuhnya.

Dai
sumber
1
Saya tidak tahu apa yang menghentikan Anda dari melakukan itu, tetapi saya tahu setidaknya satu cara itu bisa dilakukan: Yaitu, oleh iOS menolak untuk menjalankan aplikasi kecuali telah dibayar, catatan pembayaran itu hadir dalam formulir dari beberapa tanda tangan digital pada selembar data termasuk checksum dari aplikasi.
Harald Hanche-Olsen

Jawaban:

14

Sebenarnya, ini berfungsi lebih seperti SSL. Setelah mendaftar untuk akun Apple, Apple menghasilkan pasangan Kunci Publik / Pribadi untuk nama pengguna Anda. Ini kemudian memberi Anda kunci pribadi Anda dan membuat Anda tetap publik. (Itu sebabnya ketika Anda pertama kali membeli atau ketika Anda mengembalikan iDevice Anda, Anda harus mengaktifkannya dengan akun iTunes Anda). Setelah aktivasi, transfer kunci pribadi Anda ke iDevice Anda. Pada dasarnya yang terjadi adalah ketika Anda membeli aplikasi (gratis atau berbayar) Apple menghasilkan header panjang 4096 byte yang dienkripsi dengan kunci publik Anda.

Jika Anda memiliki pemahaman tentang kunci Publik / pribadi, kunci publik dapat mengenkripsi pasangan privasinya ... Misalnya saya akan menggunakan kunci publik server untuk mengenkripsi data untuk dikirim ke server. Server kemudian akan menggunakan kunci privat untuk mendekripsi. Ketika ingin mengirim data kembali, ia menggunakan kunci publik saya untuk mengenkripsi data dan saya menggunakan kunci pribadi saya untuk mendekripsi! Kunci publik hanya dapat mengenkripsi data dan tidak dapat mendekripsi dan sebaliknya untuk kunci pribadi.

Saat Anda mengunduh aplikasi, tajuknya dienkripsi dengan kunci publik Anda. Hanya kunci pribadi Anda yang dapat mendekripsi tajuk yang tertanam di aplikasi. Jadi misalnya, jika saya menyalin IPA yang dibuat untuk Anda, dan menaruhnya di iDevice saya (ini dengan asumsi Anda bisa mendapatkannya di sana, iTunes akan menolak untuk menyelaraskannya), dan kemudian saya mencoba menjalankannya, itu hanya akan crash karena kunci pribadi saya tidak akan dapat mendekripsi header! Juga patut dicatat bahwa file IPA (IPA pada dasarnya adalah file zip yang telah diubah namanya) tidak memiliki header, jika Anda melihat isi IPA Anda akan menyadari bahwa itu berisi file ekstensi-kurang, Ambil aplikasi Facebook misalnya, itu akan memiliki file bernama 'Facebook'. Ini adalah biner aplikasi, dan ini adalah file yang memiliki header terenkripsi di dalamnya.

Ya, sebagaimana dinyatakan di atas aplikasi Anda akan terus berjalan selama Anda dapat mengingat ID Apple Anda karena iDevice (dan iTunes) TIDAK memeriksa tanda tangan dengan iTunes apa pun! Ini berarti Anda dapat menginstal aplikasi yang dihapus dan juga menyinkronkan IPA lama ke perangkat Anda selama mereka milik Anda dan Anda masih memiliki IPA tanpa batas!

jduncanator
sumber
0

Cukup ubah ekstensi dari .ipamenjadi .zip. Jika Anda menggunakan iTunes versi lama, file IPA akan berada di:

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

Apakah Anda melihat ... Buka pengguna yang Anda gunakan saat mengunduh aplikasi.

Hanya
sumber
Jawaban ini tidak menjelaskan bagaimana iOS memberlakukan pembatasan lisensi.
Dai