問題タブ [fairplay]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
download - DRM されたコンテンツのクライアント側を保護することは合理的ですか?
更新:この質問は、コンテンツのクライアント側を保護 (暗号化/難読化) することと、サーバーから送信する前に保護することに関するものです。itune のようなアプローチでは、転送前にファイルが暗号化/難読化されていないため、長所と短所は何ですか。
元の質問のメモに追加したように、遵守する必要がある契約があります (drm を実装するほとんどのサービスの場合と同様)。私たちは DRM フリーを推進しており、ほとんどのコンテンツ プロバイダーとの契約はそれに基づいていますが、だからと言って既に課せられている義務から解放されるわけではありません。
私は最近、itunes / fairplay が drm にどのようにアプローチするかに関する情報をいくつか読みましたが、サーバーが実際に保護なしでファイルを提供することを期待していませんでした。
この回答の引用は、問題の精神を捉えているようです。
目標は、単に「正直な人を正直に保つ」ことであるべきです。これより先に進むと、次の 2 つのことだけが起こります。
- 私たちは勝てない戦いをしています。カンニングしたい人は成功します。
- 私たちは製品を使いにくくすることで、製品の正直なユーザーを傷つけています。
ここでは正直なユーザーへの影響は見られません。これがクライアント側で発生するかサーバー側で発生するかに関係なく、ファイルはユーザーに関連付けられます。これにより、1 のユーザーに別のチャンスが与えられます。
追加情報: クライアント環境は adobe air で、複数のコンテンツ タイプ (音楽、ビデオ、フラッシュ アプリ、画像) が含まれます。
では、iTunes の Fairplay のようにして、メディア クライアント側を保護することは合理的でしょうか。
注:アンブレイカブル DRM は解決不可能な問題だと思います。これに対する答えを探しているほとんどの人は、その必要性は、コンテンツ プロバイダーとの契約に既に関係していることに関係しています。
ios - 暗号化/フェアプレイを使用したIOSアプリの送信、実行方法または自動
少し見回すには、アプリケーション自体がどのように暗号化されているか、または暗号化されていないかについての概要が必要です。
デフォルトでは、アプリのビルド中に、テストデバイスなどにロードされたときにすべて暗号化されません。
そのため、アプリを送信して配布用にビルドすると、いつ暗号化されるので、ユーザーの電話にデプロイしたときに簡単にリバースエンジニアリングされません。
それとも、これはビルド/送信時に行わなければならない追加のステップですか?
epub - 抽出中のEpubソースコードの問題
iPadにあるインタラクティブな電子書籍(.epub)のソースコードを「見よう」としていますが、Ibooksアプリでは正常に動作しています。
私がしたことは、電子書籍のファイル拡張子.epubを.zipに変更し、解凍することです。問題は、epubフォルダー内のファイルを開こうとすると、完全に台無しになることです。
問題はどこだ?(私がテストした本は、itunesストアの「風と太陽」にあります)
ios - AirPlay ミラーリング プロトコルのデコード
アプリで iPad 2 のディスプレイを Mac にミラーリングしたい。
サービスを公開_airplay._tcp
し、ポートでリッスンしています7100
。アプリはAirPlay
メニューに表示され、Mirroring
オプションもあります。ビデオとオーディオのストリーミングは完璧に機能します。
POST /fp-setup
しかし、FairPlay 暗号化 ( ) をデコードして AirPlay ミラーリングをサポートする方法がわかりません。http://www.aorensoftware.com/blog/2011/08/20/exploring-airplay-mirroring-internals/を参考にしました。誰かがそれを行う方法について何か考えがある場合は、教えてください。
drm - Airplay Mirroringについて... fp-setup後のこと
私のプロジェクトは、復号化された Airplay Mirrorred h.264 画面データを Android デバイスから取得することです。
私は AES のようなものについて何も知らないので...だから、iPad と AppleTV の間でオムニピークされたハードコードされたデータでそのステップをスキップしました。
「非公式Airplayプロトコル」から始まりました。
シーケンスに似ていて、「fp-setup」でiPadから質問しました。
AirTunesControllerのソース コードを調べることは非常に役に立ちました。そのコードから多くのヒントを得ることができました。そこで、iPad、AppleTV から 'FPLY' 開始バイナリを取得しました。iPad に返信したところ、「fp-setup」の手順は完了です。
シーケンスは..
iPad からFPLY311 を受信
し、FPLY312 で応答
し、iPad から FPLY313 を受信し、 FPLY314
と応答しました.. その後、「POST /stream」がいくつかのバイナリ パラメータ リスト (bplist) と共に届きました。
それは..のように見えます(私のadb logcatからキャプチャ)
D/Server( 432): AIRPLAY ミラーリング サーバー: 新しい接続が検出されました D/Server( 432): AIRPLAY
サーバー: 新しい接続が追加されました
D/Server( 432): BReNTT: /stream.xml
D/Server( 432): BReNTT: / stream.xml >> GET
D/Server( 432): BReNTT: 536 バイトのコンテンツを応答
D/Server( 432): BReNTT: /fp-setup, body size: 16
D/Server( 432): 0x46 0x50 0x4c 0x59 0x03 0x01 0x01 0x00 0x00 0x00 0x00 0x04 0x02 0x00 0x03 0xbb
D/Server( 432): BReNTT: /fp-setup >> POST >> 311
D/Server( 432): BReNTT: 257 バイトのコンテンツを応答
D/Server( 432) : BReNTT: /fp-setup, 本体サイズ: 164
D/Server( 432): 0x46 0x50 0x4c 0x59 0x03 0x01 0x03 0x00 0x00 0x00 0x00 0x98 0x01 0x8f 0x1a 0x9c
d/server(432):0x7d 0x0a 0xf2 0x57 0xb3 0x1f 0x21 0xf5 0xc2 0xd2 0xbc 0x81 0x4c 0x03 0x2d 0x45
d/server(432):0x78 0x35 0x0 0x4 0x4
0x4040x40x40x40x40x450x 432): 0xad 0x2c 0x91 0x1d 0x7f 0x3e 0x1e 0x7e 0xd4 0xc0 0x58 0x95 0x5d 0xff 0x3d 0x5c
D/Server( 432): 0xee 0xf0 0x14 0x38 0x7a 0x98 0x5b 0xdb 0x34 0x99 0x50 0x15 0xe3 0xdf 0xbd 0xac
D/Server( 432): 0xc5 0x60 0x47 0xcb 0x92 0x6e 0x09 0x3b 0x13 0xe9 0xfd 0xb5 0xe1 0xee 0xe3 0x17
D/Server( 432): 0xc0 0x18 0xbb 0xc8 0x7f 0xc5 0x45 0x3c 0x76 0x71 0x64 0x7d 0xa6 0x86 0xda 0x3d
D/Server( 432): 0x56 0x48 0x75 0xd0 0x3f 0x8a 0xea 0x9d 0x60 0x09 0x2d 0xe0 0x61 0x10 0xbc 0x7b
d/server(432):0xe0 0xc1 0x6f 0x39 0x1c 0x36 0x9c 0x75 0x34 0x4a 0xe4 0x7f 0x33 0xac 0xfc 0xf1
d/server(432):0x0e
0x63 432): 0xc5 0x06 0x7f 0x2a
D/Server( 432): BReNTT: /fp-setup >> POST >> 313
D/Server( 432): BReNTT: 応答中...
D/Server( 432): 0x46 0x50 0x4c 0x59 0x03 0x01 0x04 0x00 0x00 0x00 0x00 0x14 0x0e 0x63 0xa9 0xb5 d/server(432)
:
0x8b 0xfc 0xe2 0x15 0xe9 0x60 0x01 0xc4
0x9E /Server( 432): BReNTT: /stream >> POST !! コンテンツの長さは 750 です
最後に、Param1 と Param2 のリストを取得しました。
それらは AES キーと AES 初期化ベクトル データで、相対的に 72 バイトと 16 バイトです。そして、同じ7100番ポートから突然、iPadの画面バイナリデータが連続してきました。
キー: deviceInfoTime 値=-422009852.719235
キー: macAddress 値=64:20:0C:EF:DF:81
キー: param1 は Binary 型です。
BReNTT-Debug( 432): 46 50 4C 59 01 02 01 00 00 00 00 3C 00 00 00 00
BReNTT-Debug( 432): 88 E4 F8 2C 81 78 C1 8B 47 51 AC 24 B2 7C 0C 2A
BReNTT-Debug( 432): 00 00 00 10 C8 99 DC 69 65 C1 08 1D E6 A9 D9 66
BReNTT-Debug( 432): E2 BA 3E 34 54 8C DB C6 51 C3 22 DB 18 DC 22 F5
BReNTT-Debug( 432): 8F E1 54 A6 0A EC EE 18
キー: sessionID 値=-1483478994
キー: deviceID 値=110088818777987
キー: connectTime 値=0.009737
キー: バージョン 値=200.54
キー: latencyMs 値=90
Key: fpsInfo type=4
Key: authTime Value=422009852.735252
Key: prepareTime Value=0.004542
Key: configTime Value=0.004692
Key: resolveDNSTime Value=0.008402
Key: timestampInfo type=4
Key: param2 は Binary 型です。
BReNTT-Debug( 432): 66 A7 5D 63 6D 80 C8 30 19 95 2A EC 2D D7 2F 1C
そして..
それは私があなたに尋ねたい質問です。
Unofficial Airplay Protocol によると、
オプションの Param1 と Param2 が存在する場合、画面データは暗号化されますよね?
これらの 72 バイトと 16 バイトの AES データを処理して、iPad からの h.264 画面データを復号化するにはどうすればよいですか??
ありがとうございました。
ios - iOS IPA AppStore アプリの再パッケージ化/再署名
問題の説明
iOS デバイスで任意のアプリケーションを制御する必要があります。私の計画は、実行可能ファイルを IPA (リモート制御ロジックが実装されている場所) に挿入し、再パッケージ化することです。
アプリケーションは制御された環境 (特定のデバイス) で実行する必要があるため、プロビジョニング プロファイルと開発証明書を使用して再パッケージ化/署名する予定です。
まず、コードを挿入せずにサードパーティのアプリを再パッケージ化しようとしています。これは次の方法で行われます。
上記は、Xcode を使用して手動でビルドしたアプリケーションではうまく機能しますが、AppStore からダウンロードした IPA を使用すると、次のデバイス ログ エラーで機能しません。
アプリケーションの「Mach-O」実行可能ファイルを調べたところ、関連するアーキテクチャの「コード署名」セクションが (「signcode」ツールによって) 完全に変更されていることが確認されました。
質問
- Xcode を使用して手動で作成したアプリが正常に再パッケージ化/署名されているのに、AppStore からダウンロードしたアプリを再パッケージ化できないのはなぜですか?
- 開発証明書とプロビジョニング プロファイルを使用して AppStore アプリを再パッケージ化/署名するにはどうすればよいですか?
- FairPaly は、(Xcode を使用して) 手動で作成したアプリと、アプリストアからダウンロードしたアプリをどのように区別しますか? 手動で作成されたアプリにはない、アプリストアアプリにある残差は何ですか?
参考文献
ios - Fairplay SPC リクエストが nil を返す
[AVAssetResourceLoadingRequest streamingContentKeyRequestDataForApp:contentIdentifier:options:error:]; を使用しようとしています。メソッドを使用して SPC キーを取得しましたが、意図した SPC 値ではなく nil が返されました。主に、提供されている Fairplay アプリケーションの例を参照しています。エンコードされたリクエスト URL ホスト文字列をコンテンツ識別子として使用し、SPC サーバーから取得した .DER 証明書をアプリ データとして使用しています。他の誰かがこの問題を経験しましたか?
ここでの SPC の出力は nil です。完全なエラーの説明は次のとおりです。
ios - Apple FairPlay キー サーバー モジュールの実装
誰かがこの部分を実装できましたか? Apple は、FairPlay SDK (プレビュー) と共にいくつかの参照コードをリリースしましたが、かなりの部分が欠落しています。実装に役立つ/ガイドするガイド/チュートリアルはありますか?