Desenvolvendo um Empacotador PlayReady
Há várias considerações que você deve examinar antes de começar a incorporar o PlayReady no empacotador para proteger o conteúdo. Observe que o desenvolvimento de um empacotador que fornece proteção do PlayReady para conteúdo que você deseja criptografar:
- Não exige um contrato de licenciamento da Microsoft.
- Não há taxas para a Microsoft associada à inserção do PlayReady em seu conteúdo.
- Não há pagamentos de royalties para a Microsoft aplicáveis a codificadores ou empacotadores do PlayReady.
Portanto, você não precisa alocar tempo ou orçamento para esses itens.
Observação
Alguns parceiros de Microsoft PlayReady podem desenvolver um empacotador PlayReady para sua empresa se você não quiser desenvolvê-lo por conta própria.
Visão geral do desenvolvimento
O tempo de desenvolvimento para incorporar a funcionalidade PlayReady no empacotador dependerá do desenvolvimento e teste dos seguintes componentes:
Gerador de chaves – gera o valor da chave usado para criptografar o conteúdo (juntamente com sua KeyID associada). Se você usar o mecanismo KeySeed, esse gerador precisará implementar a função conforme definido na especificação de Semente de Chave PlayReady .
Gerador de cabeçalho PlayReady — gera o objeto PlayReady (incluindo o cabeçalho PlayReady e/ou um Repositório de Licenças Incorporado). Esse Cabeçalho PlayReady inclui o KeyID ou a lista de KeyIDs, a URL padrão do servidor de licença playready e qualquer valor personalizado necessário para o conteúdo protegido. Essa função deve seguir os requisitos descritos na Especificação de Cabeçalho do PlayReady.
Empacotador – empacota o conteúdo usando o valor da chave fornecido pelo gerador de chaves e o objeto PlayReady criado pelo gerador de cabeçalho PlayReady.
Sistema de Gerenciamento de Chaves – armazena o valor da chave e sua KeyId associada (não necessária se estiver usando o mecanismo KeySeed).
Desenvolvendo um Empacotador PlayReady
Se você decidiu desenvolver seu próprio Pacote do PlayReady, precisará decidir como deseja que o empacotador funcione, com base em como deseja que seu conteúdo seja armazenado e entregue. A lista a seguir fornece as etapas necessárias para adicionar a funcionalidade PlayReady ao empacotador.
Escolha o formato de criptografia. Vários tipos diferentes de criptografia são usados para proteger o conteúdo. Microsoft PlayReady sistemas usam o algoritmo de chave simétrica, AES (Advanced Encryption Standard). A partir da versão 4.0, os sistemas PlayReady dão suporte a chaves AES 128 nos modos CBC (Encadeamento de Bloco de Criptografia) e CTR (Modo de Contador), conforme definido nos modos ISO padrão ISO/IEC 23001-7. Os mecanismos de criptografia usados para proteger o conteúdo são encapsulados em um contêiner, para que os arquivos possam ser navegados e descriptografados com eficiência em uma variedade de plataformas.
Qualquer formato de criptografia que use chaves AES-128 usadas no modo CTR ou cbc é permitido pelas Regras de Conformidade para Produtos PlayReady. Para obter mais informações, consulte Modos de Criptografia de Conteúdo do PlayReady.
Escolha como você vai criptografar seu conteúdo. Para obter mais informações, consulte Como usar chaves de criptografia.
Escolha se deseja descriptografar seu conteúdo usando apenas o PlayReady ou se deseja dar suporte a vários DRMs. Para obter mais informações, consulte Como usar ferramentas de criptografia.
Escolha como você vai gerar e armazenar chaves de conteúdo (Valor da Chave e ID da Chave).
O empacotador deve incluir algum tipo de gerador de chave que cria o Valor da Chave usado para criptografar e descriptografar seu conteúdo. O gerador de chaves deve associar uma ID de chave ao valor da chave. O Valor da Chave permanece um segredo e a ID da Chave é pública e é inserida no cabeçalho PlayReady no conteúdo. Se o empacotador não incluir um gerador de chaves, você precisará desenvolver ou gerar um separadamente.
Você precisará desenvolver um sistema de gerenciamento de chaves para armazenar vários valores de chave e suas IDs de chave associadas ou licenciar um de terceiros. O sistema de gerenciamento de chaves pode ser um banco de dados ou qualquer outro tipo de sistema de armazenamento, mas deve estar seguro para impedir que qualquer pessoa acesse os valores de chave sem autorização. A Microsoft não fornece um sistema de gerenciamento de chaves com o PlayReady. Como alternativa, você pode usar o mecanismo KeySeed fornecido com o PlayReady no lugar do sistema de gerenciamento de chaves (o mecanismo KeySeed deve ser incorporado no empacotador e no Servidor PlayReady que fornece as licenças para descriptografar o conteúdo).
Escolha como você vai inserir um objeto PlayReady (incluindo o cabeçalho PlayReady e/ou o repositório de licenças inserido) no conteúdo criptografado. Para obter mais informações, consulte Como gerar um cabeçalho PlayReady.
Escolha como você fornecerá os valores de chave e as IDs de chave para um Servidor PlayReady, que distribuirá os valores de chave para os clientes do PlayReady.
Você pode desenvolver seu próprio Servidor de Licença playready (requer uma licença do PlayReady — no entanto, nenhuma taxa ou royalties são coletados pela Microsoft para seu desenvolvimento ou uso de um Servidor PlayReady) ou você pode usar um Servidor PlayReady fornecido ou operado por terceiros. Se você desenvolver seu próprio Servidor PlayReady ou o Servidor PlayReady for fornecido ou operado por terceiros, você deve ser capaz de comunicar os valores principais e as IDs de chave para o servidor em tempo hábil para que o cliente possa reproduzir seu conteúdo com eficiência.
Escolha como os clientes entrarão em contato com o Servidor de Licença do PlayReady para adquirir as chaves de criptografia de conteúdo. Os aplicativos cliente devem estar cientes da URL do Servidor de Licença do PlayReady (também conhecida como URL de Aquisição de Licença ou URL de LA) quando precisarem adquirir uma licença. Os aplicativos cliente podem ser programados para que o valor da URL de LA seja codificado ou recuperá-lo dinamicamente do servidor. Se o aplicativo cliente não tiver esse valor de URL la, ele usará o valor da URL la encontrado no Cabeçalho PlayReady do conteúdo, que é a URL la padrão. Embora não seja necessário, é muito comum que os serviços incluam um valor de URL la padrão no Cabeçalho PlayReady do conteúdo no tempo de empacotamento.