暗号化と認証
あなたが HTTP ライブストリーミングを使用する場合は、iOS はメディア暗号化のサポートを内蔵しており、iOS 5.0 以降から、また、認証を提供しています。あなたが保護されたドメインからの暗号化キーを提供する場合は、あなたのアプリは、サーバーで初期化認証ハンドシェイクを処理する責任があります。
メディアダウンロードの暗号化
HTTP ライブストリーミングを使うと、メディアを暗号化するために、メディアセグメンタソフトウェアに指示することができます。セグメンタは、指定された間隔でそれらのキーの初期化ベクターと暗号化キーを生成します。
キーは、所定期間のすべてのビデオを暗号化するために使用されます。クライアントソフトウェアは、キーを取得し、ビデオを復号化するためにそれらを使用します。初期化ベクトルは、キーを使用するために必要です。
あなたは、セグメンタに、キーを変更する頻度と、現在のキーの初期化ベクトルを変更する頻度を教えてください。また、セグメンタにキーと初期化ベクトルを使用するためにのベース URL を教えて下さい。セグメンタには、それが生成するプレイリストファイル内のキーと初期化ベクトルの URL が含まれています。
キーは、通常、滅多に変更されず、セキュリティのために HTTPS 経由で提供されます。初期化ベクトルは、通常、頻繁に変更されますが、迅速な配達のために HTTP を介して提供されます。初期化ベクトルはキーなしでは使えないため、HTTP の使用は、セキュリティを低下させません。
詳細については、HTTP ライブストリーミングの概要 を参照してください。
暗号化キーのダウンロードのための認証
あなたの暗号化キーを保護するには、サーバは自分自身を認証するためのビデオクライアントを要求します。認証のメソッドは、アプリによって異なります。暗号化されたストリーミングコンテンツで AirPlay を使用する事は、iOS 5.0 以降でのみサポートされています。
(iOSで) Safari で Web ベースのビデオゲームで遊ぶ場合は、ユーザーが安全なドメインから提供されたキーで暗号化されたビデオを再生する前に手動で認証しておく必要があります。ログイン情報を公開するリスクなしには、JavaScript で認証を提供することはできません。手動認証は、ペイ·パー·ビューまたはサブスクリプション・ビデオでうまく行きますが、それは鑑賞するためのログインを必要とするので、商業的なビデオのためには、通常は望ましくありません。
ビデオが AirPlay 上で再生されている場合、テレビを見ている視聴者はパスワードを入力する必要はない事を心に留めておいて下さい。このような場合、視聴者は、別の部屋にあるかもしれない AirPlay 経由で映像を中継しているデバイスに認証を受ける必要があります。この状況は、長いクッキーや他の認証トークンが有効期限内である方法を含む、他の意味を持っています。それに応じて、サーバーを構成する必要があります。
アプリでビデオを再生する方法については、キー配送を認証するのには推奨される3つの手段があります。
- 保護された HTTPS の領域からキーを提供します。 再生が始まる前に、あなたのアプリは、非表示に保たれている資格情報を提供して、自身を認証する NSURLConnection を使用することができます。
- HTTPS経由でクッキーを使用します。 あなたのアプリは、HTTPS サーバへの接続を行い、 アプリに定義された方法でアプリを認証することができます。ご使用のサーバーは、キーの URL に適用されるクッキーを発行することができます。あなたは、再生が完了したずっと後に期限切れになるように Cookie を設定する必要があります。次に、サーバーはキーの将来の GET 要求で有効なセッション・クッキーの存在を必要とするでしょう。
- アプリに定義された URL スキームを使用して、.m3u8 ファイルのキーを指定してください。 このアプリはそれらの URL に対する要求を処理するためのカスタム NSURLProtocol を登録する必要があります。それは、キーの URL をロードする必要があるときにプレーヤーが再びアプリを呼び出し、あなたのアプリは、セキュアサイドチャネルを使用してキーを取得することができ、プレーヤーにそれを提供することができます。
賞味期限が近い将来にある場合は、最大の信頼性において、サーバーは将来の GET 要求への応答に Cookie の有効期限を更新する必要があります。
詳細については、 HTTP ライブストリーミングの概要 を参照してください。
前:アプリ内で AirPlay 経験値を豊かに
次:文書改定履歴