AES-128動画暗号化 — HLSセグメント暗号化の仕組み

AES-128動画暗号化

AES-128(128ビット鍵を用いるAdvanced Encryption Standard)は、2001年にNISTによって標準化された対称ブロック暗号です。オンラインバンキング、政府通信、そして大半のストリーミングプラットフォームで動画コンテンツの保護に使われています。

HLSではAES-128はセグメント単位で適用されます。各セグメントファイルが鍵で暗号化され、プレイヤーは再生中に逐次復号します。

HLSにおけるAES-128の使い方

HLS仕様には2つの暗号化モードが定義されています。

  • AES-128 — セグメント単位の暗号化、鍵はHTTPで別途配信。最も一般的。
  • SAMPLE-AES — サンプル単位の暗号化(セグメント内の動画フレームを暗号化)。FairPlay DRMで使用。

「暗号化動画ホスティング」のページ — 講座、限定コンテンツ、有料会員制 — ではセグメント単位のAES-128が標準です。

鍵の配送

暗号鍵は16バイトのランダム値です。HLSプレイリストはプレイヤーに鍵の取得先を示します。

#EXT-X-KEY:METHOD=AES-128,URI="https://example.com/key/123",IV=0x1234...

プレイヤーはHTTP(通常は認証付き)で鍵を取得し、メモリ上でセグメントを復号して動画要素に渡します。

シングルキーとマルチキー

シングルキー: 1動画、1鍵、1URL。シンプル。URLが取得されると動画全体を復号できてしまいます。

マルチキー(AVCaption): 1動画に多数の鍵(セグメントのバッチごとに1つ)。各鍵は個別の署名付きURLで取得されます。1つの鍵URLが取られても、そのバッチ(約60秒)しか露出しません。動画全体の抽出には全鍵URLの取得が必要で、レート制限と署名トークンの有効期限と組み合わせれば、自動化された海賊行為のコストは大幅に上がります。

AES-128とDRM

鍵配送付きのAES-128は「DRMライト」と呼ばれることがあります。本格的なDRM(Widevine、PlayReady、FairPlay)はさらに次を加えます。

  • ハードウェア結合の復号(TEE、Secure Enclave)
  • デバイス単位・期間単位の再生権を行使するライセンスサーバー
  • 出力保護(HDCP)。非DRM準拠のディスプレイへのキャプチャを遮断

DRMはスタジオライセンスのコンテンツ(ハリウッド作品、プレミアムシリーズ)で必須です。自社制作のコンテンツ(講座、チュートリアル、B2B研修、有料会員)であれば、AES-128マルチキーと署名付きURLで十分であり、コストも大幅に抑えられます。

ブラウザ対応

ネイティブHLS再生(Safari)はAES-128を標準対応します。HLS.js(Chrome/Firefox/Edge)はWeb Crypto API経由でJavaScriptで復号します。いずれもiOS、Android、デスクトップでプラグインなしに動作します。

関連項目

← content.back_to_index