HLS Common Encryption

最終更新日:2023-02-08 16:32:05

ビデオをさらに保護するために、クラウドVoDはHLS AES暗号化を提供し、ビデオの海賊版を防止します。ビデオは暗号化され、再生するビデオを復号化するためには特別な認証が必要です。

仕組み

HLSプロトコルは、映像ファイルが暗号化されているかどうかと、どのアルゴリズムが暗号化されているかを識別するために使用される暗号鍵: # EXT-X-KEYを定義します(現在、クラウドVoDではAES-128暗号化アルゴリズムが使用されています)。復号鍵を取得するアドレスを指定します。
プレーンテキストのm3u8ファイルを受信したプレーヤーは、ファイルが「#EXT-X-KEY」タグで暗号化されていることを認識します。再生するためには、プレーヤーは「#EXT-X-KEY」の「URI」で提供されるURLから復号鍵を取得し、「METHOD」パラメータで提供されるアルゴリズム情報に従ってビデオファイルを復号化する必要があります。
EXT-X-KEYを持つm3u8ファイルの例を次に示します。
[Feature Upgrade] Advanced Access Control
Cloud VoDはAES-128アルゴリズムによるHLS暗号化を提供し、暗号鍵はCloudVoD KMSで管理され、不正な傍受を防止するためにHTTPSで転送されます。

CloudVoD KMSアドレス:https://api.cloudv.haplat.net/vod/videoManage/getHlsKeyByVideoId

使用方法

ビデオを暗号化する

  1. HLS共通暗号化はデフォルトで無効になっています。まず、カスタマーサービスに連絡して、この機能を有効にしてください。
  2. トランスコードテンプレートを作成し、 Enryptedトランスコードを有効にします。
  3. トランスコードテンプレートを作成したら、映像をトランスコードして暗号化をトリガーする必要があります。
  4. 暗号化が完了すると、映像リストのステータスが「トランスコード(暗号化)」と表示され、すでに暗号化されていることを示します。

再生

映像が暗号化されると、URLの最後に認証パラメータが追加されます。例えば

https://cloudv.cdnetworks.com/appname/streamname/cloudv-transfer/playlist.m3u8?t=1666336607&k=3628a37a13d566252d&vid=cf352bbd01831000553f6000&r=f96237ab0183

エンドユーザーを認証するように独自の認証サーバーを設定し、それらの認証されたユーザーに認証情報を含むURLのみを提供することをお勧めします。正しい適応コードまたはビデオURLを取得すると、プレーヤーはm3u8プレイリストから鍵を取得し、再生のためにビデオを復号化します。プロセスは主に次のステップに分かれます。
ステップ1
認証パラメータt、k、r、vidで、暗号化された映像のURLを取得します。例えば、元動画のURLは

https://cloudv.cdnetworks.com/vod/test.m3u8

上記の認証パラメータを追加すると、URLは

https://cloudv.cdnetworks.com/vod/test.m3u8?t=1533289173&k=b83eb56186b4c7c7ae7ff7e2a1ee58d9&vid=0f97c608015f10007f0f055d00000000&r=ff237ff1016410000950defa00000000

認証済みURLを取得/作成する方法には、いくつかの方法があります。

これにより、動画再生リクエストがあるごとにURLをクエリする必要があり、URLのクエリが大量に発生するため、自身のサーバーに負荷がかかる可能性があります。

  • 認証パラメータ t、k、r、vid を自分で追加することもできます。
パラメータ 説明
t 有効期限を示すUNIXの第2レベルのタイムスタンプ。
vid 動画の VideoId を確認することができます。コンソールまたはAPI getVideoListを介して確認することができます。
k k=md5(secretKey+vid+t+r)。 SecretKeyは、コンソールから [アカウント] > [セキュリティ設定] > [ API情報管理] > [アクセスキー管理] から取得できます。
r rはユーザーが割り当てることができる乱数です。

ステップ2
プレーヤーが認証パラメータを含むURLをリクエストした場合、例えば

https://cloudv.cdnetworks.com/vod/test.m3u8?t=1533289173&k=b83eb56186b4c7c7ae7ff7e2a1ee58d9&vid=0f97c608015f10007f0f055d00000000&r=ff237ff1016410000950defa00000000

クラウドVoDはm3u8ファイルを返信し、以下のように_EXT-X-KEYの_URIに認証情報を自動的に追加します。

ステップ3
プレーヤーは、クラウドVoDからm3u8を取得すると、自動的にクラウドVoD認証サービスからコンテンツキーを取得するリクエストを送信します。
クラウドVoD認証サービスは認証情報を検証し、認証情報が有効であることが確認された場合、KMSはコンテンツキーをプレーヤーに送信します。それ以外の場合、リクエストは直接拒否されます。
ステップ4
復号化キーを受信した後、プレーヤーはビデオを復号化して再生することができます。復号鍵はHTTPSで暗号化されて送信されるため、送信時のセキュリティが確保されます。