Parada Segura do PlayReady
Introduzido no PlayReady versão 3.0, o PlayReady Secure Stop é um recurso que fornece os meios para um dispositivo PlayReady afirmar com confiança a um serviço de streaming de mídia que a reprodução de mídia parou para qualquer conteúdo específico. Esse recurso garante que seus serviços de streaming de mídia forneçam relatórios e imposição precisos de limitações de uso em dispositivos diferentes para uma determinada conta.
Visão geral da Parada Segura
Um evento Secure Stop é relatado a um Servidor de Parada Segura pelo cliente quando a reprodução de mídia é interrompida, no final da mídia ou porque o usuário interrompeu a apresentação de mídia em algum lugar no meio. Quando um evento Secure Stop é relatado e, no momento em que o evento Secure Stop é gravado, o Cliente PlayReady garante que a chave de conteúdo seja apagada da memória. Uma Parada Segura também é relatada quando a sessão anterior termina inesperadamente (por exemplo, devido a uma falha de sistema ou aplicativo).
Observação
A Parada Segura aplica-se apenas a licenças não persistentes.
Há dois cenários principais para enviar um desafio de Parada Segura:
- Quando a reprodução de mídia é interrompida no final ou porque o usuário interrompeu a apresentação de mídia em algum lugar no meio.
- Quando a sessão anterior é encerrada inesperadamente (por exemplo, devido a uma falha no sistema ou no aplicativo). O aplicativo precisará consultar, na inicialização ou desligamento, se as sessões de Parada Segura pendentes e enviar desafios separados de qualquer outra reprodução de mídia.
Para obter informações sobre a Parada Segura em aplicativos UWP, consulte a seção Adicionar parada segura no artigo drm do PlayReady .
Parada segura 2
A partir do PlayReady versão 4.2, o PlayReady Secure Stop 2 fornece mais segurança aplicando a funcionalidade de Parada Segura no cliente no TEE (Ambiente de Execução Confiável) no Nível de Segurança 3000.
Um serviço pode usar o recurso SecureStop para impor a reprodução em vários clientes que pertencem a uma mesma conta de usuário. Dependendo da configuração de um cliente específico nessa conta de usuário, o serviço receberá mensagens ligeiramente diferentes do cliente.
A tabela a seguir mostra a lógica do Aplicativo de Servidor em diferentes versões de Nível de Segurança do Cliente e Parada Segura.
Versão do cliente | Lógica do servidor SecureStop | Robustez |
---|---|---|
PlayReady versão 2.0+ SL2000 |
O servidor não recebe nenhuma mensagem SecureStop do cliente. Use a lógica do aplicativo para fazer isso. | Baixo |
PlayReady versão 3.0+ SL3000 (exemplo: aplicativo Windows 10) |
O servidor recebe uma mensagem SecureStop1 do cliente. A robustez dessa mensagem contra ataques é maior do que a lógica de aplicativo simples. |
Médio |
PlayReady versão 4.2+ SL3000 |
O servidor recebe uma mensagem SecureStop2 do cliente. Uma mensagem secureStop2 mal-intencionada desse cliente exigiria um ataque no TEE (Ambiente de Execução Confiável) do cliente. A robustez dessa mensagem contra ataques é maior que SecureStop1. |
Alto |
Para aproveitar o recurso Parada Segura 2, o aplicativo Servidor deve habilitar o recurso da seguinte maneira:
- Defina a propriedade SecureStop2AESKey na classe MediaLicense ao emitir uma licença com o Secure Stop. (Isso pode ser feito independentemente de o cliente dar suporte ou não à Parada Segura 2.)
- Crie uma classe que implemente a interface ISecureStop2Handler (semelhante a qualquer outro manipulador), de modo que, para qualquer KID determinado, ela retorne a mesma chave que foi usada ao definir a propriedade SecureStop2AESKey em um MediaLicense com esse KID.
- Depois de chamar GetSecureStopData, consulte a propriedade SecureStop2VerifiedSession na classe SecureStopDataChallenge. Se ele estiver definido como Guid.Empty, o cliente enviará uma mensagem SecureStop1. Se ele estiver definido como qualquer outro Guid, o cliente enviará uma mensagem SecureStop2. O Guid retornado é a ID da sessão única dentro do desafio SecureStop2 que pode ser verificada como não mal-intencionada (supondo que o TEE (Ambiente de Execução Confiável) do cliente não tenha sido atacado com êxito).