SPEKEAPIv2 - Personalizações e restrições à especificação -IF DASH - Especificação do Secure Packager and Encoder Key Exchange API

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á.

SPEKEAPIv2 - Personalizações e restrições à especificação -IF DASH

A especificação DASH Industry Forum CPIX 2.3 suporta vários casos de uso e topologias. A especificação SPEKE API v2.0 define um CPIX perfil e um API forCPIX. Para atingir esses dois objetivos, ele segue a CPIX especificação com as seguintes personalizações e restrições:

CPIXPerfil
  • O SPEKE segue o fluxo de trabalho de criptografador e consumidor.

  • Para chaves de conteúdo criptografadas, SPEKE aplicam-se as seguintes restrições:

    • SPEKEnão oferece suporte à verificação de assinatura digital (XMLDSIG) para cargas úteis de solicitação ou resposta.

    • SPEKErequer certificados RSA baseados em 2048.

  • SPEKEaproveita somente um subconjunto de CPIX funcionalidades:

    • O SPEKE omite a funcionalidade UpdateHistoryItemList. Se a lista estiver presente na resposta, ela será SPEKE ignorada.

    • SPEKEomite a funcionalidade da chave raiz/folha. Se o ContentKey@dependsOnKey atributo estiver presente na resposta, ele será SPEKE ignorado.

    • SPEKEomite o BitrateFilter elemento e o VideoFilter@wcg atributo. Se esses elementos ou atributos estiverem presentes na CPIX carga, ela será SPEKE ignorada.

  • Somente os elementos ou atributos referenciados como “Suportados” na página Componentes de Carga Útil Padrão ou na página do contrato de criptografia podem ser usados em CPIX documentos trocados com a v2. SPEKE

  • Quando incluídos em uma CPIX solicitação do criptografador, todos os elementos e atributos devem ter um valor válido na CPIX resposta do provedor de chaves. Caso contrário, o criptografador deve parar e gerar um erro.

  • SPEKEsuporta a rotação de chaves com KeyPeriodFilter elementos. SPEKEusa somente o ContentKeyPeriod@index para rastrear o período chave.

  • Para HLS sinalização, vários DRMSystem.HLSSignalingData elementos devem ser usados: um com um valor de DRMSystem.HLSSignalingData@playlist atributo de 'media' e outro com um valor de DRMSystem.HLSSignalingData@playlist atributo de 'master'.

  • Ao solicitar chaves, o criptografador pode usar o atributo opcional @explicitIV no elemento ContentKey. 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 servidor KID na 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 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 retornará um erro com a descrição 'Missing CPIX @version '. Ao receber uma solicitação com uma versão não suportada, a descrição do erro retornada pelo provedor da chave deve ser 'Unsupported CPIX @version '.

    O valor CPIX@version não pode ser substituído pelo provedor da chave.

  • O criptografador deve incluir um valor para o atributo ContentKey@commonEncryptionScheme para cada chave solicitada. Ao receber um valor vazio para esse atributo, o provedor da chave retornará um erro com a descrição “Missing ContentKey @ commonEncryptionScheme for KIDid”.

    Um CPIX documento exclusivo não pode misturar vários valores para ContentKey@commonEncryptionScheme atributos diferentes. Ao receber essa combinação, o provedor da chave deve retornar um erro com a descrição “Não compatível ContentKey @ commonEncryptionScheme combinação”.

    Nem todos os ContentKey@commonEncryptionScheme valores são compatíveis com todas as DRM tecnologias. Ao receber essa combinação, o provedor da chave retornará um erro com a descrição 'ContentKey@ commonEncryptionScheme não compatível com DRMSystemid'.

    O valor ContentKey@commonEncryptionScheme não pode ser substituído pelo provedor da chave.

  • Ao receber valores diferentes para DRMSystem@PSSH XML <pssh> um elemento DRMSystem.ContentProtectionData interno no corpo da CPIX resposta, o criptografador deve parar e gerar um erro.

API para CPIX
  • O provedor da chave deve incluir um valor para o cabeçalho da X-Speke-User-Agent HTTP resposta.

  • Um SPEKE criptografador compatível atua como um cliente e envia as POST operações para o terminal do provedor principal.

  • O criptografador deve incluir um valor para o cabeçalho da X-Speke-Version HTTP solicitação, com a SPEKE versão usada com a solicitação, formulada como. MajorVersion MinorVersion, como '2.0' para SPEKE v2.0. Se o provedor da chave não suportar a SPEKE versão usada pelo criptografador para a solicitação atual, o provedor da chave retornará um erro com a descrição “SPEKEVersão não suportada” e não tentará processar o CPIX documento da melhor maneira possível.

    O valor do cabeçalho X-Speke-Version definido 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 controle de versão SPEKE v1.0.

    Se o provedor da chave não retornar um erro, mas não retornar um CPIX documento 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 HTTP resposta 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 aSPEKE/CPIX.

Caso de erro Mensagem de erro

CPIX@ não contentId está definido

Falta CPIX @ contentId

CPIX@version não está definido

Falta CPIX @version

CPIX@version não é suportado

@version não suportado CPIX

ContentKey@ não commonEncryptionScheme está definido

Falta ContentKey @ commonEncryptionScheme para KID id (onde id é igual ao valor ContentKey @kid)

Vários commonEncryptionScheme valores ContentKey @ usados em um único CPIX documento

Combinação ContentKey @ commonEncryptionScheme não compatível

ContentKey@ não commonEncryptionScheme é compatível com a DRM tecnologia

ContentKey@ commonEncryptionScheme não compatível com DRMSystem id (onde é id igual ao valor DRMSystem @) systemId

O valor do cabeçalho X-Speke-Version não é uma versão compatível SPEKE

Versão SPEKE sem suporte

O contrato de criptografia está malformado

Contrato de criptografia malformado

O contrato de criptografia contradiz as restrições dos níveis DRM de segurança

O contrato CPIX de criptografia solicitado não é suportado

O contrato de criptografia não inclui VideoFilter nenhum AudioFilter elemento

Contrato CPIX de criptografia ausente