As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
API SPEKE v2.1 - Personalizações e restrições à especificação DASH-IF
A especificação CPIX 2.4 do DASH Industry Forum
Perfil do CPIX
-
O SPEKE segue o fluxo de trabalho de criptografador e consumidor.
-
Para chaves de conteúdo criptografadas, o SPEKE aplica as seguintes restrições:
-
O SPEKE não oferece suporte à verificação de assinatura digital (XMLDSIG) para cargas de solicitação ou resposta.
-
O SPEKE exige 2048 certificados RSA-based .
-
-
O SPEKE usa somente um subconjunto de funcionalidades do CPIX:
-
O SPEKE omite a funcionalidade
UpdateHistoryItemList. Se a lista estiver presente na resposta, o SPEKE vai ignorá-la. -
O SPEKE omite a funcionalidade root/leaf principal. Se o atributo
ContentKey@dependsOnKeyestiver presente na resposta, o SPEKE vai ignorá-la. -
O SPEKE omite o elemento
BitrateFiltere o atributoVideoFilter@wcg. Se esses elementos ou atributos estiverem presentes na carga útil do CPIX, o SPEKE a ignorará.
-
-
Somente os elementos ou atributos referenciados como “Suportados” na página de componentes de carga útil padrão ou na página do contrato de criptografia podem ser usados em documentos CPIX trocados com o SPEKE v2.1.
-
Quando incluídos em uma solicitação CPIX pelo criptografador, todos os elementos e atributos devem conter um valor válido na resposta CPIX do provedor de chaves. Caso contrário, o criptografador deve parar e gerar um erro.
-
O SPEKE suporta a rotação de chaves com
KeyPeriodFilterelementos. O SPEKE usa oContentKeyPeriod@indexpara rastrear o período chave. No SPEKE v2.1, o criptografador também pode sinalizar o intervalo de tempo que um período chave cobre, além do.@indexPara conteúdo ao vivo, use osContentKeyPeriod@endatributosContentKeyPeriod@starte (horários de início e término do relógio de parede). Para conteúdo VOD, use osContentKeyPeriod@endOffsetatributosContentKeyPeriod@startOffsete. -
Para sinalização HLS, vários
DRMSystem.HLSSignalingDataelementos devem ser usados: um com um valor deDRMSystem.HLSSignalingData@playlistatributo de 'media' e outro com um valor deDRMSystem.HLSSignalingData@playlistatributo de 'master'. -
Ao solicitar chaves, o criptografador pode usar o atributo opcional
@explicitIVno elementoContentKey. O provedor de chaves pode responder com um IV usando@explicitIV, mesmo se o atributo não estiver incluído na solicitação. -
O criptografador cria o identificador de chaves (
KID), que permanece o mesmo para qualquer período de chave e ID de conteúdo. O provedor de chaves inclui o servidorKIDna resposta ao documento da solicitação. -
O criptografador deve incluir um valor para o atributo
CPIX@contentId. Ao receber um valor vazio para esse atributo, o provedor da chave deve retornar um erro com a descrição 'Missing CPIX @contentId '.CPIX@contentIdo valor não pode ser substituído pelo provedor da chave.O valor
CPIX@id, se não for nulo, deve ser ignorado pelo provedor da chave. -
O criptografador deve incluir um valor para o atributo
CPIX@version. Ao receber um valor vazio para esse atributo, o provedor da chave deve retornar um erro com a descrição “CPIX@version ausente”. Ao receber uma solicitação com uma versão não compatível, a descrição do erro retornada pelo provedor da chave deve ser “CPIX@version não compatível”.CPIX@versiono valor não pode ser substituído pelo provedor da chave. -
O criptografador deve incluir um valor para o atributo
ContentKey@commonEncryptionSchemepara cada chave solicitada. Ao receber um valor vazio para esse atributo, o provedor da chave deve retornar um erro com a descrição 'Missing ContentKey @common EncryptionScheme foridKID'.Um documento CPIX exclusivo não pode misturar vários valores para atributos
ContentKey@commonEncryptionSchemediferentes. Ao receber essa combinação, o provedor da chave deve retornar um erro com a descrição “Combinação ContentKey @common EncryptionScheme não compatível”.Nem todos os valores
ContentKey@commonEncryptionSchemesão compatíveis com todas as tecnologias DRM. Ao receber essa combinação, o provedor da chave deve retornar um erro com a descrição 'ContentKey@common EncryptionScheme não compatível com DRMSystemid'.ContentKey@commonEncryptionSchemeo valor não pode ser substituído pelo provedor da chave. -
Ao receber valores diferentes para
DRMSystem@PSSHe elementoDRMSystem.ContentProtectionDatainnerXML<pssh>no corpo da resposta CPIX, o criptografador deve parar e gerar um erro.
API para CPIX
-
O provedor da chave deve incluir um valor para o cabeçalho da resposta
X-Speke-User-AgentHTTP. -
Um SPEKE-compliant criptografador atua como um cliente e envia operações POST para o endpoint do provedor de chaves.
-
O criptografador deve incluir um valor para o cabeçalho da solicitação
X-Speke-VersionHTTP, com a versão SPEKE usada com a solicitação, formulada como, por exemplo MajorVersion.MinorVersion, '2.1' para SPEKE v2.1. Se o provedor da chave não for compatível com a versão SPEKE usada pelo criptografador para a solicitação atual, ele retornará um erro com a descrição “Versão SPEKE não compatível” e não tentará processar o documento CPIX da melhor maneira possível.O valor do cabeçalho
X-Speke-Versiondefinido pelo criptografador não pode ser modificado pelo provedor da chave na resposta à solicitação. -
Ao receber erros no corpo da resposta, o criptografador deve gerar um erro e não repetir a solicitação com um versionamento do SPEKE v1.0.
Se o provedor da chave não retornar um erro, mas falhar em retornar um documento CPIX que inclua as informações obrigatórias, o criptografador deverá parar e gerar um erro.
A tabela a seguir resume as mensagens padrão que devem ser retornadas pelo provedor da chave no corpo da mensagem. O código de resposta HTTP em casos de erro deve ser 4XX ou 5XX, nunca 200. O código de erro 422 pode ser usado para todos os erros relacionados a. SPEKE/CPIX
| Caso de erro | Mensagem de erro |
|---|---|
|
CPIX@contentId não está definido |
CPIX@contentId ausente |
|
CPIX@version não está definido |
CPIX@version ausente |
|
CPIX@version não é suportado |
CPIX@version não compatível |
|
ContentKey@common não EncryptionScheme está definido |
Falta ContentKey @common EncryptionScheme para KID |
|
Vários EncryptionScheme valores ContentKey @common usados em um único documento CPIX |
Combinação ContentKey @common EncryptionScheme não compatível |
|
ContentKey@common não EncryptionScheme é compatível com a tecnologia DRM |
ContentKey@common EncryptionScheme não compatível com DRMSystem |
|
X-Speke-Version o valor do cabeçalho não é uma versão SPEKE suportada |
Versão de SPEKE não compatível |
|
O contrato de criptografia está malformado |
Contrato de criptografia malformado |
|
O contrato de criptografia contradiz as restrições dos níveis de segurança do DRM |
O contrato de criptografia CPIX solicitado não é compatível |
|
O contrato de criptografia não inclui VideoFilter nenhum AudioFilter elemento |
Contrato de criptografia CPIX ausente |