Chính xác thì ứng dụng DRM của iOS hoạt động như thế nào?


10

Khi tôi mua một ứng dụng trong iTunes trên máy tính Windows của mình, tôi nhận được tệp * .ipa là gói ứng dụng iOS độc lập. Tôi có thể duyệt nội dung của các tệp IPA này bằng 7-Zip và thậm chí trích xuất tài nguyên và các chi tiết khác, điều này cho thấy các tệp IPA này hoàn toàn không được mã hóa.

Vậy nếu chúng không được mã hóa, DRM hoạt động như thế nào? Điều gì ngăn tôi sao chép tệp IPA sang máy tính của người khác và nhập IPA vào iTunes và sau đó cài đặt nó trên thiết bị của người khác?

Ngoài ra, ai đó có thể vui lòng xác nhận rằng miễn là tôi giữ tệp IPA, tôi sẽ có thể cài đặt nó vào iDevices của mình (tất nhiên là có cùng ID Apple) không? Tôi chỉ lo ngại rằng trong tương lai một ứng dụng có thể được cập nhật để xóa các tính năng hoặc thậm chí có thể được kéo hoàn toàn khỏi cửa hàng ứng dụng.


1
Tôi không biết điều gì ngăn bạn làm điều đó, nhưng tôi biết ít nhất một cách có thể thực hiện: Cụ thể, bằng cách iOS từ chối chạy ứng dụng trừ khi đã được thanh toán, hồ sơ thanh toán đó có trong biểu mẫu một số chữ ký số trên một phần dữ liệu bao gồm tổng kiểm tra của ứng dụng.
Harald Hanche-Olsen

Câu trả lời:


14

Trên thực tế, nó hoạt động giống như SSL. Khi đăng ký tài khoản Apple, Apple sẽ tạo cặp Khóa công khai / riêng cho tên người dùng của bạn. Sau đó nó cung cấp cho bạn khóa riêng của bạn và nó giữ cho bạn công khai. (Đó là lý do tại sao khi bạn mua lần đầu hoặc khi bạn khôi phục iDevice, bạn phải kích hoạt nó bằng tài khoản iTunes của mình). Khi kích hoạt, nó sẽ chuyển khóa riêng của bạn sang iDevice. Về cơ bản những gì xảy ra là khi bạn mua một ứng dụng (miễn phí hoặc trả phí) Apple tạo ra một tiêu đề dài 4096 byte được mã hóa bằng khóa chung của bạn.

Nếu bạn có bất kỳ hiểu biết nào về khóa Công khai / riêng tư, khóa chung có thể mã hóa cho cặp riêng tư đó ... Ví dụ: tôi sẽ sử dụng khóa chung của máy chủ để mã hóa dữ liệu để gửi đến máy chủ. Sau đó, máy chủ sẽ sử dụng khóa riêng để giải mã nó. Khi nó muốn gửi lại dữ liệu, nó sử dụng khóa chung của tôi để mã hóa dữ liệu và tôi sử dụng khóa riêng của mình để giải mã nó! Khóa công khai chỉ có thể mã hóa dữ liệu và không thể giải mã và ngược lại đối với khóa riêng.

Khi bạn tải xuống ứng dụng của mình, nó có một tiêu đề được mã hóa bằng khóa chung của bạn. Chỉ khóa riêng của bạn mới có thể giải mã tiêu đề được nhúng trong ứng dụng. Vì vậy, ví dụ, nếu tôi đã sao chép IPA được tạo cho bạn và đặt nó trên iDevice của tôi (điều này giả sử bạn có thể lấy nó ở đó, iTunes sẽ từ chối đồng bộ hóa nó), và sau đó tôi đã cố chạy nó, nó sẽ bị sập bởi vì khóa riêng của tôi sẽ không thể giải mã được tiêu đề! Ngoài ra, cần lưu ý rằng tệp IPA (IPA về cơ bản là tệp zip đã được đổi tên) không có tiêu đề, nếu bạn xem nội dung của IPA, bạn sẽ nhận ra rằng nó chứa tệp không có phần mở rộng, lấy ứng dụng của Facebook làm ví dụ, nó sẽ có một tệp có tên 'Facebook'. Đây là tệp nhị phân của ứng dụng và đây là tệp có tiêu đề được mã hóa trong đó.

Có, như đã nêu ở trên, các ứng dụng của bạn sẽ tiếp tục chạy miễn là bạn có thể nhớ Apple ID của mình vì iDevice (và iTunes) KHÔNG kiểm tra chữ ký với iTunes từ trước đến nay! Điều này có nghĩa là bạn có thể cài đặt các ứng dụng đã xóa và đồng bộ hóa IPA cũ hơn với thiết bị của mình miễn là chúng là của bạn và bạn vẫn có IPA vô thời hạn!


0

Chỉ cần thay đổi phần mở rộng từ .ipasang .zip. Nếu bạn đang sử dụng phiên bản iTunes cũ, tệp IPA sẽ ở:

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

Bạn có thấy ... Chuyển đến người dùng bạn đang sử dụng khi bạn tải xuống ứng dụng.


Câu trả lời này không giải thích cách iOS thực thi các hạn chế giấy phép.
Đại
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.