Alibaba Cloud独自の暗号化により、ライブストリームを暗号化できます。 このトピックでは、Alibaba Cloud独自の暗号化の利点、アーキテクチャ、および使用方法について説明します。
ビデオは、HTTPライブストリーミング (HLS) およびフラッシュビデオ (FLV) 形式でのみ生成できます。
Alibaba Cloud独自の暗号化を使用して暗号化されたビデオを再生するには、ApsaraVideo Playerのみを使用できます。
HTML5の互換性について詳しくは、「ブラウザでサポートされているHTML5プレーヤーの機能」の「Alibaba Cloud独自の暗号化を使用して暗号化されたビデオの再生」をご参照ください。
背景情報
ユーザーは、ライブストリームに1回限りの料金を支払い、ホットリンク保護が設定されている合法的なストリーミングURLからビデオファイルをダウンロードできます。 ビデオファイルがダウンロードされた後、ビデオファイルの再配布は制御不可能である。 したがって、ホットリンク保護はライブストリームの著作権を保護するのに十分ではありません。
メリット
Alibaba Cloud独自の暗号化により、ビデオデータが暗号化されます。 オンプレミスのデバイスにダウンロードされるビデオファイルは暗号化されます。 これは不正な再配布を防止する。 独自の暗号化は、ビデオの漏洩やホットリンクを防ぐことができ、オンライン教育、金融、業界トレーニング、プレミアムテレビ番組など、さまざまなオンライン著作権で保護されたビデオ分野に適用できます。
Alibaba Cloudは、独自の暗号化アルゴリズムを使用して高レベルのセキュリティを提供します。これにより、便利で効率的かつ安全な方法でビデオリソースを保護できます。
各メディアファイルは、専用の暗号化キーを有する。 これにより、1つのキーが漏洩した場合に多数のビデオファイルが公開されるのを防ぎます。
ApsaraVideo Liveは、包括的な権限管理システムを提供します。 RAMユーザーを作成し、再生資格情報を使用してアクセス権限を制御できます。
ApsaraVideo Liveは暗号文と平文キーを使用してエンベロープ暗号化システムを提供します。 平文キーは記憶されず、メモリ内のデータを処理するためにのみ使用される。
ApsaraVideo Liveは、安全なプレーヤーカーネルSDKを提供します。
全体的なアーキテクチャ
Alibaba Cloud独自の暗号化プロセスは、暗号化とトランスコード、および復号後の再生で構成されます。
暗号化とトランスコーディング: 次のフローチャートのステップ1〜3。
ストリーマーがライブセンターにライブストリームを取り込んだ後、ApsaraVideo liveはKMSを使用して平文キーと暗号文キーを生成します。 次に、ApsaraVideo Liveは、平文キーを使用してライブストリームのオーディオとビデオに対して対称暗号化を実行し、暗号文キーをビデオにカプセル化します。
復号及び再生: 以下のフローチャートのステップ4〜11。
ライブストリームを再生するために、再生クライアントは、ストリーミングURLを取得するために、再生要求をAppServerに送信する。 次に、再生クライアントはストリーミングURLを使用して、ApsaraVideo Liveからビデオストリームを要求します。 ApsaraVideo Liveは、トランスコードおよび暗号化されたビデオと暗号文キーをApsaraVideo Player SDKに送信します。
再生クライアントは暗号文キーを使用して、ApsaraVideo Liveから暗号化された平文キーを要求します。 次に、ApsaraVideo Liveは暗号文キーを使用してKMSに平文キーを要求します。 再生クライアントは、復号化された平文キーをApsaraVideo Player SDKに送信し、ApsaraVideo Player SDKがビデオを復号化して再生します。
使用方法
Alibaba Cloud独自の暗号化は、トランスコードテンプレートを使用して設定されます。 ApsaraVideo Liveコンソールを使用するか、API操作を呼び出してテンプレートを設定できます。
Alibaba Cloud独自の暗号化を使用するには、KMSキーIDを指定する必要があります。 キーがない場合は、KMSコンソールに移動してキーを作成します。 キーのリージョンがドメイン名が存在するリージョンと同じであることを確認します。 詳細については、「CMKの作成」をご参照ください。
方法1: ApsaraVideo Liveコンソールを使用して、Alibaba Cloud独自の暗号化を設定します。 詳細については、「デフォルトのトランスコードの設定」および「カスタムトランスコード」をご参照ください。
方法2: API操作を呼び出して、Alibaba Cloud独自の暗号化を設定します。
AddLiveStreamTranscode操作を呼び出してデフォルトのトランスコード設定を追加するか、AddCustomLiveStreamTranscode操作を呼び出してカスタムトランスコード設定を追加します。 操作で、暗号化パラメーター
EncryptParameters
を指定します。ここで、EncryptType
フィールドをaliyun
に設定する必要があります。 これにより、Alibaba Cloud独自の暗号化が有効になります。次のサンプルコードは、Java用サーバーSDKを使用してデフォルトのトランスコード設定を追加する方法の例を示しています。
// Replace the parameters in <> with actual values. DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>"); IAcsClient client = new DefaultAcsClient(profile); AddLiveStreamTranscodeRequest addLiveStreamTranscodeRequest = new AddLiveStreamTranscodeRequest(); addLiveStreamTranscodeRequest.setDomain("<DomainName>"); addLiveStreamTranscodeRequest.setApp("<AppName>"); The transcoding template. addLiveStreamTranscodeRequest.setTemplate("<Template>"); // The encryption settings. EncryptType: a fixed value (aliyun). KmsKeyID: the ID of the CMK in KMS. KmsKeyExpireInterval: the rotation period of the CMK, which ranges from 60 to 3600 seconds. addLiveStreamTranscodeRequest.setEncryptParameters("{\"EncryptType\": \"aliyun\", \"KmsKeyID\":\"<KmsKeyID>\",\"KmsKeyExpireInterval\":\"<60>\"}"); // // Other business code // try { AddLiveStreamTranscodeResponse addLiveStreamTranscodeResponse = client.getAcsResponse(addLiveStreamTranscodeRequest); System.out.println(new Gson().toJson(addLiveStreamTranscodeResponse)); // todo something. } catch (ServerException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClientException e) { // TODO Auto-generated catch block e.printStackTrace(); }
説明トランスコード設定に変更が加えられた場合は、設定を有効にするためにストリームを再取り込みする必要があります。
Java用サーバーSDKの詳細については、「Java用サーバーSDKの使用」をご参照ください。
その他の関連API操作:
API操作
説明
デフォルトのトランスコード設定を更新します。
カスタムトランスコード設定を更新します。
ストリーミングドメインのトランスコード設定を照会します。
トランスコード設定を削除します。
関連ドキュメント
ビデオ暗号化機能を使用すると、AliyunServiceRoleForLiveKesロールが自動的に作成され、KMSのアクセス許可が取得されます。 詳細については、「ApsaraVideo Liveのビデオ暗号化サービスのサービスにリンクされたロール」をご参照ください。