A criptografia HLS usa AES-128 e é compatível com todos os players HLS. Combinada ao gerenciamento de chaves e a um service de token, atende a cenários de alta segurança, como educação online e streaming de conteúdo exclusivo.
Como funciona
O ApsaraVideo VOD usa criptografia de envelope. O provedor de services utiliza o Key Management Service (KMS) da Alibaba Cloud para gerar uma chave de dados (DK) e uma chave de dados envelopada (EDK). A DK criptografa o vídeo, e a EDK é armazenada junto a ele. Durante a reprodução, o cliente obtém a DK do service de descriptografia para descriptografar o vídeo.
Para proteger a URL de descriptografia, ative a criptografia e reescrita de M3U8. Isso adiciona uma camada extra de proteção ao processo de acesso aos dados HLS. O parâmetro reescrito padrão é MtsHlsUriToken. Para saber como ativar esse recurso e entender seu funcionamento, consulte Criptografia e reescrita de M3U8.
Pré-requisitos
A criptografia HLS é um service gratuito. No entanto, esse recurso exige transcodificação de vídeo, que gera custos. Para detalhes sobre preços, consulte Faturamento de transcodificação de mídia.
Ative o ApsaraVideo VOD. Para obter instruções, consulte Ativar o ApsaraVideo VOD.
Autorize o ApsaraVideo VOD a acessar o Key Management Service (KMS). Conceda as permissões necessárias na página Cloud Resource Access Authorization.
Adicione um nome de domínio acelerado no ApsaraVideo VOD. Para obter instruções, consulte Adicionar um nome de domínio acelerado.
-
Instale o SDK do lado do servidor necessário. Para mais informações, consulte SDKs do lado do servidor. Este tópico usa o SDK para Java como exemplo.
Conceitos principais
Fluxo de trabalho de criptografia e descriptografia
Fluxo de trabalho de upload e criptografia

Fluxo de trabalho de descriptografia e reprodução
Reescrita de M3U8 ativada (Recomendado)

Reescrita de M3U8 desativada

Criptografar um vídeo
-
Faça o upload do vídeo e receba um callback.
Para evitar que vídeos compatíveis com criptografia HLS sejam transcodificados automaticamente, use o grupo de modelos integrado No Transcoding ao fazer o upload para o ApsaraVideo VOD. Isso impede a transcodificação automática durante o upload.
Para fazer upload de um vídeo pelo console do ApsaraVideo VOD, consulte Fazer upload de arquivos no console do ApsaraVideo VOD. Para fazer upload via API do lado do servidor, consulte Upload de mídia.
Configure notificações de eventos para o ApsaraVideo VOD. Uma mensagem de callback do evento Upload de vídeo concluído indica que o vídeo foi carregado no ApsaraVideo VOD. Para saber como configurar notificações de eventos, consulte Notificações de eventos.
-
Configure um service de criptografia.
-
Crie uma chave de service.
A chave de service é a chave primária de criptografia no KMS e deve ser usada para gerar chaves para criptografia HLS. Se você não criar uma chave de service, a operação GenerateKMSDataKey retornará um erro.
-
No canto superior esquerdo da página, clique em no ID da região para alternar para a região onde deseja criar a chave de service.
NotaA chave de service deve estar na mesma região do servidor de origem do vídeo. Por exemplo, se o vídeo estiver armazenado em China (Shanghai), a chave de service também deve ser criada na região China (Shanghai).
As regiões disponíveis são China (Shanghai), China (Beijing), China (Shenzhen), Japan (Tokyo), Singapore, Indonesia (Jakarta), India (Mumbai) e Germany (Frankfurt).
Faça login no console do ApsaraVideo VOD. No painel de navegação à esquerda, escolha Configuration Management > Media Processing > HLS Standard Encryption.
-
Na página HLS Encryption, clique em Create Service Key.
Após a criação da chave de service, uma mensagem de confirmação será exibida. Em seguida, visualize a chave na seção Key Information.
NotaSe uma mensagem de sucesso aparecer, mas a chave não estiver visível, a causa pode ser a ausência de uma função vinculada ao service. Reautorize o ApsaraVideo VOD para restaurar a função e atualize a página para visualizar a chave de service.
-
-
Chame uma operação de API para gerar uma chave de dados (DK).
Chame a operação GenerateKMSDataKey para gerar uma chave de dados (DK) e uma chave de dados envelopada (EDK). Não é necessário passar nenhum parâmetro. Após uma chamada bem-sucedida, o campo
Plaintextna resposta contém a DK, e o campoCiphertextBlobcontém a EDK no formato AES-128. Armazene em cache o valor deCiphertextBlobpara o job de transcodificação com criptografia HLS.
-
-
Crie um grupo de modelos de transcodificação para criptografia HLS.
O processo de criptografia HLS requer dois grupos de modelos de transcodificação: o grupo integrado No Transcoding e um grupo personalizado para criptografia HLS. Para criar um grupo de modelos de transcodificação personalizado, siga estas etapas:
Faça login no console do ApsaraVideo VOD. No painel de navegação à esquerda, escolha Configuration Management > Media Processing > Transcoding Template Groups.
-
Na página Transcoding Template Groups, crie um grupo de modelos de transcodificação para criptografia HLS.
Defina Encapsulation Format como hls. Na seção Advanced Parameters, ative Video Encryption e selecione a opção Alibaba Cloud Encryption. Configure outros parâmetros conforme necessário. Para mais informações sobre os parâmetros, consulte Modelos de transcodificação.
Após criar o grupo de modelos, localize o novo grupo na lista da página Transcoding Template Groups e anote seu ID. Esse ID do grupo de modelos é obrigatório para a configuração de criptografia.
-
Envie um job de transcodificação com criptografia HLS.
-
Chame a operação SubmitTranscodeJobs para enviar um job de transcodificação com criptografia HLS.
Se você configurou notificações de eventos, uma mensagem de callback do evento Single Definition Transcoding Complete ou Transcode complete indica que o job de transcodificação foi concluído.
-
-
Verifique o resultado da criptografia HLS.
Após a conclusão do job de transcodificação, use um dos métodos a seguir para verificar a criptografia.
Método 1: Faça login no console do ApsaraVideo VOD. Acesse a página de detalhes do arquivo de Audio/Video e clique em na aba Video URL. Na lista de URLs de vídeo, verifique na coluna de formato se há uma tag HLS Encryption no arquivo de saída M3U8. A presença dessa tag confirma que a criptografia foi bem-sucedida.
Método 2: Copie a URL do arquivo M3U8 que possui a tag HLS Standard Encryption. Execute o comando curl -v "URL do arquivo M3U8" para recuperar o conteúdo do M3U8. Verifique no conteúdo as seguintes informações-chave:
URI="<the decryption URI that you provided as the DecryptKeyUri parameter value>". Se essa informação estiver presente, a criptografia foi bem-sucedida.Método 3: Chame a operação GetTranscodeTask e passe o valor do parâmetro
JobIdretornado na Etapa 4. A criptografia é considerada bem-sucedida se o valor deTranscodeTemplateIdna resposta corresponder ao ID do grupo de modelos de transcodificação criado na Etapa 3 eTranscodeJobStatusforTranscodeSuccess.
Criptografia e reescrita HLS (M3U8) (Recomendado)
Com a criptografia e reescrita de M3U8 ativadas, o sistema adiciona automaticamente parâmetros de criptografia, incluindo algoritmo, URI da chave e parâmetros de autenticação, à tag #EXT-X-KEY na Media Playlist HLS (arquivo M3U8). Quando um cliente analisa o arquivo M3U8 reescrito, ele usa a URI da chave com parâmetros de autenticação para solicitar a chave de descriptografia e, em seguida, descriptografa os segmentos de fluxo de transporte (TS) com o algoritmo especificado.
Etapa 1: Ativar passagem de parâmetros para criptografia HLS
No console do ApsaraVideo VOD, ative Parameter Pass-through for HLS Encryption.
Ao ativar Parameter Pass-through for HLS Encryption, o ApsaraVideo VOD reescreve o arquivo M3U8, modificando a URI na tag #EXT-X-KEY ao anexar parâmetros da solicitação do cliente. O nome do parâmetro padrão é MtsHlsUriToken.
Pré-requisitos
Configure o compartilhamento de recursos de origem cruzada (CORS). Para mais informações, consulte Configurar compartilhamento de recursos de origem cruzada.
Este recurso não está disponível na Alibaba Cloud Gov Cloud.
Procedimento
Faça login no console do ApsaraVideo VOD.
No painel de navegação à esquerda, clique em Configuration Management.
Clique em CDN Configuration > Domain Names para acessar a página Domain Names.
Localize o nome de domínio que deseja gerenciar e clique em configure na coluna Actions.
Na página de configuração do domínio, clique em Video Related no painel de navegação à esquerda.
Na seção encrypted playback, ative a chave Parameter Pass-through for HLS Encryption. Por padrão, essa chave está desativada e o nome do parâmetro é
MtsHlsUriToken.
Ao ativar este recurso, o ApsaraVideo VOD lida com a autenticação reescrevendo o parâmetro de token. O parâmetro reescrito é
MtsHlsUriTokene seu valor étest. Durante a reprodução descriptografada, o ponto de presença (POP) anexaMtsHlsUriToken=testà URI na tag#EXT-X-KEYdo arquivo M3U8.
Etapa 2: Enviar solicitação com MtsHlsUriToken
Para acessar o arquivo M3U8, o cliente envia uma solicitação que inclui o parâmetro MtsHlsUriToken a um ponto de presença (POP).
É necessário criar um service de token para gerar e emitir o MtsHlsUriToken para os usuários.
O código a seguir gera o MtsHlsUriToken. Modifique os parâmetros abaixo conforme os requisitos do seu negócio:
Etapa 3: Descriptografar e reproduzir o arquivo
Ao receber uma solicitação do cliente, o ponto de presença (POP) a autentica. Se a autenticação for bem-sucedida, o POP descriptografa e reproduz o arquivo.
Se o parâmetro MtsHlsUriToken gerado na Etapa 2 tiver o valor test, o POP anexará MtsHlsUriToken=test à URI na tag #EXT-X-KEY do arquivo M3U8 durante a reprodução descriptografada.
Implemente a lógica de autenticação. Para referência, consulte o código de exemplo do service de descriptografia para criptografia e reescrita de M3U8 em Reproduzir vídeos.
Reproduzir vídeo
Com reescrita de M3U8 (recomendado)
-
Configure um service de descriptografia.
Configure um service HTTP local para descriptografar vídeos.
Chame a operação DecryptKMSDataKey para descriptografar a chave de dados. A chave de dados na resposta,
PlainText, é a versão decodificada em Base64 do valorPlainTextretornado pela operação GenerateKMSDataKey.Para adicionar uma camada extra de segurança verificando as URLs de descriptografia, ative a criptografia e reescrita de M3U8. Esse recurso adiciona um token à URL de solicitação da chave. O nome do parâmetro padrão é
MtsHlsUriToken. A implementação do seu service de descriptografia depende da ativação desse recurso. -
Obtenha a URL ou credencial de reprodução do vídeo.
Chame a operação GetVideoPlayAuth para obter a credencial de reprodução ou chame a operação GetPlayInfo para obter a URL de reprodução.
-
Reproduza o vídeo criptografado.
A criptografia padrão HLS é compatível com todos os players HLS. Use um player desenvolvido internamente ou o ApsaraVideo Player para reproduzir o vídeo criptografado.
Se utilizar o ApsaraVideo Player, obtenha o token e as informações de autenticação necessários para reproduzir o vídeo. Para mais informações, consulte Reproduzir um vídeo criptografado. Caso utilize outro player, implemente a lógica de reprodução.
A seção a seguir descreve o processo interno de reprodução do ApsaraVideo Player:
Com reescrita de M3U8 (recomendado)
Sem reescrita de M3U8
-
Configure um service de descriptografia.
Configure um service HTTP local para descriptografar vídeos.
Chame a operação DecryptKMSDataKey para descriptografar a chave de dados. A chave de dados na resposta,
PlainText, é a versão decodificada em Base64 do valorPlainTextretornado pela operação GenerateKMSDataKey.Por exemplo:
-
Obtenha a URL ou credencial de reprodução do vídeo.
Chame a operação GetVideoPlayAuth para obter a credencial de reprodução ou chame a operação GetPlayInfo para obter a URL de reprodução.
-
Reproduza o vídeo criptografado.
A criptografia padrão HLS é compatível com todos os players HLS. Use um player desenvolvido internamente ou o ApsaraVideo Player para reproduzir o vídeo criptografado.
Se utilizar o ApsaraVideo Player, obtenha o token e as informações de autenticação necessários para reproduzir o vídeo. Para mais informações, consulte Reproduzir um vídeo criptografado. Caso utilize outro player, implemente a lógica de reprodução.
A seção a seguir descreve o processo interno de reprodução do ApsaraVideo Player:
Sem reescrita de M3U8