iOSアプリのDRMは正確にどのように機能しますか?


10

WindowsコンピューターのiTunesでアプリを購入すると、自己完結型のiOSアプリケーションパッケージである* .ipaファイルを取得します。7-ZipでこれらのIPAファイルの内容を参照し、リソースやその他の詳細を抽出することもできます。これは、これらのIPAファイルがまったく暗号化されていないことを示唆しています。

暗号化されていない場合、DRMはどのように機能しますか?IPAファイルを他のユーザーのコンピューターにコピーし、そのIPAをiTunesにインポートして、他のユーザーのデバイスにインストールすることを妨げているのは何ですか?

また、IPAファイルを保持している限り、iDeviceに(もちろん同じApple IDで)インストールできることを誰かが確認できますか?将来、アプリが更新されて機能が削除されるか、アプリストアから完全に削除される可能性があることだけが心配です。


1
あなたがそれを止めることが何であるかはわかりませんが、少なくとも1つの方法でそれを行うことができます。つまり、iOSが支払われない限りアプリの実行を拒否することにより、その支払いの記録がフォームに表示されますアプリのチェックサムを含むデータの一部に対するデジタル署名の一部。
Harald Hanche-Olsen 2012

回答:


14

実際には、SSLのように機能します。Appleアカウントにサインアップすると、Appleはユーザー名の公開鍵と秘密鍵のペアを生成します。その後、秘密鍵が提供され、公開されます。(そのため、最初に購入するとき、またはiDeviceを復元するときは、iTunesアカウントでアクティブ化する必要があります)。アクティベーション時に秘密鍵をiDeviceに転送します。基本的に何が起こるかはあなたがアプリ(無料または有料)を購入するときです。Appleはあなたの公開鍵で暗号化された4096バイト長のヘッダーを生成します。

公開鍵/秘密鍵について理解している場合は、公開鍵で秘密鍵を暗号化できます。たとえば、サーバーの公開鍵を使用して、サーバーに送信するデータを暗号化します。サーバーはその秘密鍵を使用して復号化します。データを送り返す場合は、公開鍵を使用してデータを暗号化し、秘密鍵を使用してデータを復号化します。公開鍵はデータの暗号化のみが可能で、秘密鍵の復号化やその逆はできません。

アプリをダウンロードすると、公開鍵で暗号化されたヘッダーがあります。アプリに埋め込まれたヘッダーを解読できるのは秘密鍵だけです。たとえば、生成されたIPAをコピーしてiDeviceに配置した場合(ここで取得できることを前提としていますが、iTunesは同期を拒否します)、それを実行しようとすると、単純にクラッシュします私の秘密鍵はヘッダーを解読できないからです!また、IPAファイル(IPAは基本的に名前が変更されたzipファイルです)にはヘッダーがありません。IPAのコンテンツを見ると、拡張子のないファイルが含まれていることがわかります。たとえば、Facebookのアプリを例にとると、「Facebook」という名前のファイルがあります。これはアプリのバイナリであり、暗号化されたヘッダーが含まれているファイルです。

はい、上記のとおり、iDevice(およびiTunes)がiTunesで署名チェックを行わないため、Apple IDを覚えている限り、アプリは引き続き実行されます。つまり、削除されたアプリをインストールし、古いIPAをデバイスに同期して、IPAが無期限に残っている限り、デバイスに同期することができます。


0

拡張子をから.ipaに変更するだけ.zipです。古いバージョンのiTunesを使用している場合、IPAファイルは次の場所にあります。

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

表示されましたか...アプリをダウンロードしたときに使用していたユーザーに移動します。


この回答は、iOSがライセンス制限を実施する方法を説明していません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.