"MÉTODOS PARA VERIFICAÇÃO E AUTENTICAÇÃO DE DADOS TRANSMITIDOS EM UM SISTEMA DE TRANSMISSÃO DIGITAL, RECEPTOR/DECODIFICADOR, APARELHO PARA AUTENTICAÇÃO DE DADOS TRANSMITIDOS EM UM SISTEMA DE TRANSMISSÃO DIGITAL E SINAL DIGITAL".
Divido de PI 0109815-2, apresentado na fase nacional brasileira em 3 de outubro de 2002, sob petição n- 010275, sendo baseado no pedido internacional PCT/IB01/00103, de 11 de janeiro de 2001.
Antecedentes da Invenção Campo da Técnica A presente invenção se refere a um método de autenticação de dados transmitidos de um sistema de transmissão digital. A transmissão por difusão de dados digitais é bem conhecida no campo de sistemas de televisão por assinatura, na qual informações audiovisuais embaralhadas são enviadas, usualmente por ligação via satélite ou satélite / cabo, a vários assinantes, cada um deles possuindo um decodificador capaz de desembaralhar o programa transmitido para visualização subseqüente. Sistemas de difusão digitais terrestres são também conhecidos. Sistemas recentes têm também usado ligação por difusão para transmitir outros dados, em adição, bem como, dados audiovisuais, tais como programas de computador ou aplicações interativas para o decodificador ou a um PC conectado.
Um problema particular com a transmissão de dados de aplicação reside na necessidade de verificar a integridade e origem de quaisquer desses dados. Uma vez que os dados desse tipo podem ser usados para reconfigurar o decodificador , bem como implementar qualquer número de aplicações interativas, é essencial que os dados recebidos sejam tanto completos quanto identificados como originários de uma fonte conhecida. De outro modo, problemas operacionais ligados ao download de dados incompletos podem surgir, bem como o risco que o decodificador fique aberto a ataques de terceiros ou assemelhados. A verificação da integridade desses dados pode ser conduzida pela verificação do fluxo do pacote de dados recebidos diretamente pelo decodificador. Antes da transmissão, os pacotes são tipicamente assinados por aplicação de um algoritmo de comprovação aleatória a pelo menos parte dos dados no pacote. O valor de comprovação resultante é armazenado no pacote. Após a recepção do pacote de dados, o decodificador aplica o mesmo algoritmo de comprovação aleatória aos dados e compara o valor de comprovação calculado pelo decodificador com o valor de comprovação armazenado no pacote recebido, de modo a verificar a integridade dos dados recebidos. Por exemplo, no caso de uma falha ou quebra da transmissão, o valor de comprovação calculado não vai ser o mesmo que o valor de comprovação recebido. O decodificador vai então ser alertado para a presença de possiveis erros no pacote de dados baixado e vai recarregar o pacote de dados defeituoso.
Um problema associado com o uso de um algoritmo de comprovação aleatória bem conhecido, tal como o algoritmo de Codificação de Mensagem MD5, é que o cálculo do valor de comprovação é conduzido de acordo com uma série publicamente conhecida de etapas de cálculo, com o resultado que qualquer um pode calcular o valor de comprovação de um pacote de dados. Portanto, não vai ser possível verificar a origem de um pacote de dados recebido pelo decodificador. Isso pode ser de importância particular quando os dados recebidos modificam os arquivos de dados operacionais do decodificador.
Para superar esse problema, em vez de usar um algoritmo de comprovação aleatória para calcular um valor de comprovação para pelo menos parte dos dados, um valor de assinatura de um pacote de dados pode ser calculado usando um valor de chave secreta conhecido apenas pelo difusor. Essa chave pode ser obtida usando um algoritmo de chave simétrica, tal como o algoritmo Padrão de Criptografação de Dados, ou DES, com o decodif icador armazenando uma chave equivalente. No entanto, pode-se proporcionar uma maior conveniência por uso de um algoritmo de chave pública / privada assimétrica, tal como o algoritmo RIVEST, SHAMIR e ADLEMAN, ou RSA, no qual as chaves pública e privada formam partes complementares de uma equação matemática. O difusor responsável pela produção dos pacotes de dados armazena a chave privada e calcula o valor de assinatura usando a chave privada. A chave pública é armazenada nos decodificadores, que vão receber os dados, por codificação no hardware da chave pública na memória do decodificador durante fabricação. Após recepção do pacote de dados, o decodificador verifica o valor de assinatura usando a chave pública armazenada, por comparação dos dados recebidos com o resultado da aplicação do algoritmo de chave pública ao valor de assinatura recebido.
Mesmo nesses sistemas seguros, é possivel que o valor da chave privada seja comprometido, por exemplo, por ser distribuído, em público, ilegalmente. Nesses casos, torna-se necessário que o difusor rapidamente anule o uso da chave pública equivalente, de modo a impedir a recepção desautorizada dos pacote de dados. Além disso, vai também tornar-se necessário que um novo par de chaves pública / privada seja usado. Portanto, o difusor vai precisar substituir a chave pública, armazenada nos decodificadores dos usuários legais, por uma nova chave pública. Dependendo da sensibilidade da chave pública, isso pode requerer que o difusor organize o retorno custoso e incômodo desses decodificadores para o fabricante, para codificação no hardware da nova chave pública nas memórias desses decodificadores.
Pelo menos nas suas modalidades preferidas, a presente invenção busca solucionar esses e outros problemas.
Um primeiro aspecto da presente invenção proporciona um método de autenticação de dados transmitidos em um sistema de transmissão digital, o dito método compreendendo as etapas, antes da transmissão, de: determinar pelo menos dois valores criptografados para pelo menos parte dos dados, cada valor criptografado sendo determinado para os mesmos dados usando uma chave de um respectivo algoritmo de criptografação; e transmitir os ditos pelo menos dois valores criptografados com os ditos dados. A presente invenção é particularmente aplicável, mas não é limitada, a situações nas quais é desejável atualizar com segurança dados sensíveis, tal como uma chave a ser usada em um novo algoritmo de criptografação, para garantir que os dados sejam recebidos "como expedidos". Para proporcionar essa segurança, pelo menos dois valores criptografados para pelo menos parte, de preferência a maior parte, particularmente todos, dos dados são determinados. Cada valor criptografado é determinado usando uma chave de um algoritmo de criptografação respectivo. Se uma das chaves tiver sido comprometida, pode ser possivel que um "hacker" intercepte os dados e altere o conteúdo dos dados e o valor criptografado calculado usando a chave comprometida. No entanto, não vai ser possivel que o hacker altere o valor criptografado usando a chave não comprometida. Portanto, após verificação dos valores criptografados, usando as chaves equivalentes às chaves usadas para calcular os valores criptografados, os dois valores usando as chaves equivalentes não vão ser os mesmos, indicando que os dados foram corrompidos.
Os dados e os valores criptografados são de preferência enviados para transmissão para um conjunto receptor / decodificador. De preferência, os ditos dados e os ditos valores criptografados são recebidos por um conjunto receptor / decodificador, em que cada valor criptografado é processado usando uma chave do dito respectivo algoritmo de criptografação, e cada valor resultante subseqüente é comparado com a dita pelo menos parte dos dados, para autenticar a dita pelo menos parte dos dados. Se esses dados tiverem sido corrompidos, o conjunto receptor / decodificador pode selecionar ignorar os dados e, desse modo, uma nova chave comprometida ou corrompida não vai ser armazenada na memória do decodificador. De preferência, os ditos dados recebidos são rejeitados pelo conjunto receptor / decodificador, se pelo menos um dos valores resultantes subseqüente for diferente da dita pelo menos parte dos dados.
Portanto, a presente invenção se estende a um método de autenticação de dados transmitidos em um sistema de transmissão digital, o dito método compreendendo as etapas de: receber os ditos dados e pelo menos dois valores criptografados determinados para pelo menos parte dos dados, cada valor criptografado sendo determinado usando uma chave de um respectivo algoritmo de criptografação; armazenar uma pluralidade de chaves; processar cada valor criptografado usando uma chave armazenada do dito respectivo algoritmo de criptografação; e comparar cada valor resultante subseqüente com a dita pelo menos parte dos dados, para a autenticar a dita pelo menos parte dos dados.
De preferência, cada algoritmo é assimétrico. Em uma modalidade preferida, cada valor criptografado corresponde a uma assinatura digital calculada usando uma chave privada de um respectivo algoritmo de criptografação, cada assinatura sendo processável usando uma chave pública do dito algoritmo de criptografação.
De preferência, o método compreende a etapa de transmissão, com cada assinatura, de um identificador da chave pública a ser usada para processar essa assinatura. Isso pode permitir que o conjunto receptor / decodificador identifique prontamente as chave a ser usada para verificar essa assinatura.
De preferência, os dados compreendem uma chave. Em uma modalidade preferida, os dados compreendem pelo menos um certificado digital, de preferência pelo menos um certificado principal digital, contendo uma chave pública de um algoritmo de criptografação para processar os dados. O pelo menos um certificado digital pode compreender uma assinatura digital, calculada usando uma chave privada do algoritmo de criptografação da chave pública contida nesse certificado. Desse modo, um certificado digital pode ser transmitido com segurança para o decodificador, sem que o decodificador tenha que ser retornado ao fabricante para a codificação no hardware de um novo certificado na memória do decodificador.
De preferência, os ditos dados compreendem um identificador de uma chave pública anulada. O identificador pode compreender um identificador de um certificado digital, de preferência, um certificado principal digital, contendo a dita chave pública anulada. Os dados podem compreender uma pluralidade dos ditos identificadores, cada identificador identificando uma respectiva chave pública anulada. Desse modo, uma lista de identificadores de chaves anuladas pode ser transmitida com segurança para um decodificador.
Por meio do método descrito acima, os dados podem ser atualizados com segurança, desde que o número de chaves comprometidas seja inferior ao número de valores criptografados armazenados com os dados. Portanto, os ditos dados e os ditos pelo menos dois valores criptografados podem ser organizados em um arquivo de dados, que pode compreender uma indicação do número mínimo de valores criptografados a serem armazenados no arquivo de dados gerado subseqüentemente. Isso permite que o número mínimo de valores criptografados seja alterado, por exemplo, incrementado, se uma chave se tornar comprometida, de modo que o número mínimo de valores criptografados se mantém superior ao número de chaves comprometidas.
De preferência, o arquivo de dados é recebido por um conjunto receptor / decodificador, que compara o número de valores criptografados armazenados no dito arquivo de dados com o dito número minimo e rejeita o dito arquivo de dados, se o número de valores criptografados armazenados no dito arquivo de dados for inferior ao dito número minimo. O arquivo de dados pode ser transmitido em um módulo de dados. O valor criptografado do módulo para pelo menos parte dos dados do dito módulo pode ser calculado usando uma chave de um algoritmo de criptografação do transmissor e armazenada no dito módulo de dados. O módulo de dados pode ser recebido por um conjunto receptor / decodificador, que processa o dito valor criptografado do módulo usando uma chave de um algoritmo de criptografação do transmissor e comparar o valor resultante subseqüente com a dita pelo menos parte dos dados no dito módulo, para autenticar a dita pelo menos parte dos dados no dito módulo. O valor criptografado para pelo menos parte dos dados no dito módulo pode corresponder a uma assinatura digital, calculada usando uma chave privada de um algoritmo de criptografação do transmissor, e processável usando uma chave pública do dito algoritmo de criptografação do transmissor. O sistema de transmissão digital pode ser um sistema de difusão digital, tal como um sistema de televisão ou de áudio. A presente invenção também proporciona um aparelho para autenticar dados a serem transmitidos em um sistema de transmissão digital, o dito aparelho compreendendo: meio para determinar pelo menos dois valores criptografados para pelo menos parte dos dados, cada valor criptografado sendo determinado para os mesmos dados, usando uma chave de um respectivo algoritmo de criptografação; e meio para transmitir os ditos pelo menos dois valores criptografados com os ditos dados. A presente invenção também proporciona um sistema para autenticar dados transmitidos de um sistema de transmissão digital, o dito sistema compreendendo um aparelho como mencionado acima. O sistema, de preferência, compreende ainda um conjunto receptor / decodificador, que compreende meio para receber os ditos dados e os ditos valores criptografados, meio para processar cada valor criptografado usando uma chave do dito respectivo algoritmo de criptograf ação e meio para comparar cada valor resultante subseqüente com a dita pelo menos parte dos dados, para autenticar a dita pelo menos parte dos dados. A pretende invenção se estende a um conjunto receptor / decodificador, que compreende: meio para receber um arquivo de dados, que compreende dados e pelo menos dois valores criptografados determinados para pelo menos parte dos dados, cada valor criptografado sendo determinado usando uma chave de um respectivo algoritmo de criptografação; meio para armazenar uma pluralidade de chaves; meio para processar cada valor criptografado usando uma chave armazenada do dito respectivo algoritmo de criptografação; e meio para comparar cada valor resultante subseqüente com a dita pelo menos parte dos dados, para autenticar a dita pelo menos parte dos dados. A presente invenção também se estende a um sistema para autenticar dados transmitidos em um sistema de transmissão digital, o dito sistema compreendendo um aparelho como mencionado acima e um conjunto receptor / decodificador como mencionado acima. A presente invenção se estende ainda a um sinal compreendendo dados e pelo menos dois valores criptografados determinados para pelo menos parte dos dados, cada valor criptografado sendo determinado usando uma chave de um respectivo algoritmo de criptografação. A presente invenção também se estende a um método de, ou um aparelho para, autenticar dados, um conjunto receptor / decodificador, ou um sinal substancialmente como aqui descrito com referência aos desenhos em anexo. O termo "conjunto receptor / decodificador" ou "decodificador" aqui usado pode conotar um receptor para receber sinais codificados ou não codificados, por exemplo, sinais de televisão e/ou rádio, que podem ser difundidos ou transmitidos por algum outro meio. O termo pode também conotar um decodificador para decodificar os sinais recebidos. As modalidades desses receptores / decodificadores podem incluir um decodificador integral com o receptor, para decodificar os sinais recebidos, por exemplo, em uma "caixa de posicionamento superior", tal como um decodificador funcionando em combinação com um receptor fisicamente separado, ou um decodificador incluindo funções adicionais, tal como um navegador na rede, ou integrado com outros dispositivos, tal como um gravador de video ou uma televisão.
Como aqui usado, o termo "sistema de transmissão digital" inclui qualquer sistema de transmissão para transmitir ou difundir, por exemplo, basicamente, dados digitais audiovisuais ou de multimídia. Ainda que a presente invenção seja particularmente aplicável a um sistema de televisão digital difundido, a invenção pode ser também aplicável a uma rede de telecomunicações fixa para aplicações de Internet multimídia, a uma televisão de circuito fechado e assim por diante.
Como aqui usado, o termo "sistema de televisão digital" inclui, por exemplo, qualquer sistema via satélite, terrestre, a cabo e outro.
Os algoritmos adequados para uso nesta invenção, para gerar chaves privadas / públicas, podem incluir RSA, Fiat-Shamir ou Diffie-Hellman, e os algoritmos de chaves simétricas adequadas podem incluir, por exemplo, os algoritmos do tipo DES. No entanto, a menos que obrigatório, em vista do contexto ou a menos que especificado de outro modo, nenhuma distinção geral é feita entre as chaves associadas com os algoritmos simétricos e aquelas associadas com os algoritmos públicos / privados.
Os termos "embaralhado" e "criptografado" e "palavra de controle" e "chave" também foram usados em várias partes no texto com a finalidade de clareza de linguagem. No entanto, deve-se entender que nenhuma distinção fundamental vai ser feita entre "dados embaralhados" e "dados criptografados" ou entre uma "palavra de controle" e uma "chave".
Adicionalmente, os termos "criptografado" e "assinado" e "descriptografado" e "verificado" foram usados em várias partes no texto com a finalidade de clareza de linguagem. No entanto, deve-se entender que nenhuma distinção fundamental vai ser feita entre "dados criptografados" e "dados assinados" e "dados descriptografados" e "dados verificados".
Similarmente, o termo "chave equivalente" é usado para se referir a uma chave adaptada para descriptografar dados criptografados por uma primeira chave mencionada, ou vice-versa .
As características descritas acima relativos aos aspectos do método da presente invenção também podem ser aplicadas aos aspectos do aparelho e vice-versa.
Vai-se descrever a seguir, apenas por meio de exemplo, uma modalidade preferida da invenção, com referência às figuras em anexo, em que: A figura 1 mostra o esboço esquemático de um sistema de televisão digital para uso com a presente invenção; A figura 2 mostra a estrutura de um decodificador do sistema da figura 1; A figura 3 mostra a estrutura de vários componentes dentro do fluxo de transporte difundido MPEG; A figura 4 mostra a divisão de uma aplicação de software em várias tabelas MPEG; A figura 5 mostra a relação entre os arquivos de dados DSM-CC e as tabelas MPEG produzidas eventualmente; A figura 6 mostra a relação do cliente, servidor, gerenciador da rede, como definida no contexto dos DSM-CC; A figura 7 mostra o diretório, subdiretório e objetos de arquivo autenticados; A figura 8 mostra os formatos de um certificado de difusor, um certificado de Autoridade de Certificação e um certificado de Autoridade de Certificação Principal; A figura 9 mostra o formato de uma Lista de Anulação de Certificados; A figura 10 mostra o formato de uma Mensagem de Gerenciamento de Certificado Principal (RCMM); e A figura 11 mostra as etapas envolvidas no processamento de um RCMM, após recebimento por um decodificador.
Uma visão geral de um sistema de televisão digital 1 é mostrada na figura 1. A invenção inclui um sistema de televisão digital 2 em grande parte convencional, que usa o sistema de compressão conhecido MPEG-2, para transmitir sinais digitais comprimidos. Em mais detalhes, o compressor MPEG-2 3 em um centro de difusão recebe um fluxo de sinais digitais (tipicamente, um fluxo de sinais de video). O compressor 3 é ligado a um multiplexador e embaralhador 4 pela ligação 5. O multiplexador 4 recebe uma pluralidade de outros sinais de entrada, monta o fluxo de transporte e transmite os sinais digitais comprimidos para um transmissor 6 do centro de difusão, via a ligação 7, que pode, naturalmente, assumir uma ampla variedade de formas, incluindo ligações de telecomunicações. O transmissor 6 transmite sinais eletromagnéticos, via a enlace ascendente 8, para um transponder de satélite 9, no qual são processados e difundidos eletronicamente, via uma enlace descendente nocional 10, para o receptor em terra 12, convencionalmente, na forma de uma antena parabólica de propriedade do, ou alugada pelo, usuário final. Os sinais recebidos pelo receptor 12 são transmitidos para um conjunto receptor / decodificador integrados 13, de propriedade do, ou alugado pelo, usuário final e conectado ao aparelho de televisão do usuário final 14. O conjunto receptor / decodificador 13 decodifica o sinal MPEG-2 comprimido em um sinal de televisão para o aparelho de televisão 14.
Outros canais de transporte para transmissão dos dados são, naturalmente, possíveis, tais como difusão terrestre, transmissão por cabo, ligações via satélite / por cabo combinadas, redes telefônicas, etc.
Em um sistema de canais múltiplos, o multiplexador 4 trata as informações de áudio e vídeo recebidas de várias fontes paralelas e interage com o transmissor 6 para difundir as informações ao longo de vários canais correspondentes. Além das informações audiovisuais, as mensagens ou aplicações ou qualquer outro tipo de dados digitais podem ser introduzidos em alguns ou todos esses canais entrelaçados com as informações de áudio e vídeo digitais transmitidas. Nesse caso, um fluxo de dados digitais na forma, por exemplo, de arquivos de software e mensagens de formato DSM-CC {Comando e Controle de Meios de Armazenamento Digitais), vai ser comprimido e empacotado no formato MPEG pelo compressor 3. A baixa dos módulos de software vai ser descrita em mais detalhes abaixo.
Um sistema de acesso condicional 15 é conectado ao multiplexador 4 e ao conjunto receptor / decodificador 13 e é localizado parcialmente no centro de difusão e parcialmente no decodificador. Isso Possibilita que o usuário final tenha acesso às difusões de televisão digital de um ou mais fornecedores de difusão. Um cartão inteligente, capaz de decodificar mensagens relativas às ofertas comerciais (isto é, um ou mais programas de televisão vendidos pelo fornecedor de difusão), pode ser inserido no conjunto receptor / decodificador 13. Usando o decodificador 13 e o cartão inteligente, o usuário final pode comprar eventos em um modo de assinatura ou em um modo pay-per-view. Na prática, o decodificador pode ser configurado para tratar múltiplos sistemas de controle de acesso, por exemplo, de designe Simulcrypt ou Multicrypt.
Como mencionado acima, os programas transmitidos pelo sistema são embaralhados no multiplexador 4, as condições e as chaves de criptografação aplicadas a uma dada transmissão sendo determinadas pelo sistema de controle de acesso 15. A transmissão de dados embaralhados desse modo é bem conhecida no campo dos sistemas de TV por assinatura. Tipicamente, os dados embaralhados são transmitidos juntamente com uma palavra de controle para desembaralhar os dados, a própria palavra de controle sendo criptografada por uma denominada chave de exploração e transmitida em uma forma criptografada.
Os dados embaralhados e a palavra de controle criptografada são depois recebidos pelo decodificador 13, tendo acesso a um equivalente da chave de exploração armazenada em um cartão inteligente inserido no decodificador, para descriptografar a palavra de controle criptografada e, depois, desembaralhar os dados transmitidos. Um assinante com pagamento em dia vai receber, por exemplo, em uma EMM (Mensagem de Gerenciamento de Habilitação) difundida mensalmente, a chave de exploração necessária para descriptografar a palavra de controle criptografada de modo a permitir a visualização da transmissão. Além do uso delas na descriptografação de programas de televisão audiovisuais, chaves de exploração similares podem ser geradas e transmitidas para uso na verificação de outros dados, tais como módulos de softwares, como vai ser descrito abaixo.
Um sistema interativo 16, também conectado ao multiplexador 4 e ao conjunto receptor / decodificador 13, e de novo localizado parcialmente no centro de difusão e parcialmente no decodificador, possibilita que o usuário final interaja com as várias aplicações, via um canal de retorno por modem 17. O canal de retorno por modem também pode ser usado para as comunicações usadas no sistema de acesso condicional 15. Um sistema interativo pode ser usado, por exemplo, para permitir que o espectador se comunique imediatamente com o centro de transmissão para demandar autorização para assistir um evento particular, baixar uma aplicação, etc.
ELEMENTOS FÍSICOS DO CONJUNTO RECEPTOR / DECODIFICADOR
Referindo-se à figura 2, os elementos fisicos do conjunto receptor / decodificador 13 ou da caixa de posicionamento superior adaptada para ser utilizada na presente serão agora brevemente descritos a seguir. Os elementos mostrados nessa figura vão ser descritos em termos de blocos funcionais. O decodificador 13 compreende um processador central 20, que inclui elementos de memória associados e adaptados para receber dados de entrada de uma interface serial 21, uma interface paralela 22 e um modem 23 (conectado ao canal de retorno por modem 17 da figura 1). O decodificador é adaptado, adicionalmente, para receber entradas de um controle remoto de infravermelho 25, via uma unidade de controle 2 6, e dos contatos das chaves 24 no painel frontal do decodificador. O decodificador também possui duas leitoras de cartões inteligentes 27, 28 adaptadas para ler cartões inteligentes bancários ou de assinatura 29, 30, respectivamente. Uma entrada também pode ser recebida via um teclado infravermelho (não mostrado). A leitora de cartões inteligentes de assinatura 28 é acoplada com um cartão de assinatura inserido 30 e com uma unidade de acesso condicional 29, para suprir a palavra de controle necessária para um demultiplexador / desembaralhador 30, para permitir que o sinal difundido criptografado seja desembaralhado. O decodificador também inclui um sintonizador 31 e um demodulador 32 convencionais, para receber e demodular a transmissão via satélite, antes que seja filtrada e demultiplexada pela unidade 30. O processamento dos dados dentro do decodificador é geralmente tratado pelo processador central 20. A arquitetura do software do processador central corresponde a uma máquina virtual que interage com um sistema operacional em nivel inferior implementado nos componentes de hardware do decodificador.
ESTRUTURA DO PACOTE DOS DADOS TRANSMITIDOS
Vai-se descrever a seguir, com referência às figuras 3 e 4, a estrutura de pacote dos dados dentro do fluxo de transporte MPEG difundido do transmissor para o decodificador. Como vai ser apreciado, ainda que a descrição vá focalizar o formato de tabulação usado no padrão MPEG, os mesmos princípios se aplicam igualmente a outros formatos de fluxo de dadas empacotados.
Com referência particular à figura 3, um fluxo de bits MPEG inclui uma tabela de acesso de programas ("PAT") 40, que tem uma identificação de pacote ("PID") de 0. A PAT contém referências às PIDs das tabelas de mapas de programas ("PMTs") 41 de vários programas. Cada PMT contém uma referência às PIDs dos fluxos das tabelas MPEG de áudio 42 e das tabelas MPEG de video 43 para aquele programa. Um pacote tendo uma PID de zero, ou seja, a tabela de acesso de programas 40, proporciona o ponto de entrada para todo o acesso MPEG.
Para baixar as aplicações e os dados para elas, são definidos dois novos tipos de fluxo e a PMT relevante também contém referências às PIDs dos fluxos das tabelas MPEG da aplicação 44 (ou seções delas) e as tabelas MPEG de dados 45 (ou seções delas). Na verdade, ainda que possa ser conveniente em alguns casos definir tipos de fluxo diferentes para software de aplicação executável e os dados para processamento por tal software, isso não é essencial. Em outras realizações, os dados e o código executável podem ser montados em um único fluxo acessado via a PMT, como descrito.
Com referência à figura 4, para baixar, por exemplo, uma aplicação dentro de um fluxo 44, a aplicação 4 6 é dividida em módulos 47, cada um dos quais é formado por uma tabela MPEG. Algumas dessas tabelas compreendem uma única seção, enquanto que outras podem ser constituídas por uma pluralidade de seções 48. Uma seção típica 48 tem um cabeçalho, que inclui uma identificação de tabela ("TID") de um byte 50, o número da seção 51 daquela seção na tabela, o número total 52 de seções naquela tabela e uma referência de extensão TID de dois bytes 53. Cada seção também inclui uma parte de dados 54 e um CRC 55. Para uma tabela particular 47, todas as seções 48 que constituem aquela tabela 47 têm a mesma TID 50 e a mesma extensão TID 53. Para uma aplicação particular 46, todas as tabelas 47 que constituem aquela aplicação 46 têm a mesma TID 50, mas diferentes respectivas extensões TID.
Para cada aplicação 46, uma única tabela MPEG é usada como uma tabela de diretórios 56. A tabela de diretórios 56 tem, no seu cabeçalho, a mesma TID como as outras tabelas 47 que constituem a aplicação. No entanto, a tabela de diretórios tem uma extensão TID predeterminada de zero para a finalidade de identificação e devido ao fato de que apenas uma única tabela é necessária para as informações no diretório. Todas as outras tabelas 47 vão ter normalmente extensões TID não zero e são compostas de várias seções associadas 48. O cabeçalho da tabela de diretórios também inclui um número de versão da aplicação a ser baixada.
Referindo-se de volta à figura 3, a PAT 40, as PMTs 41 e os componentes da aplicação e do fluxo de dados 44, 45 são transmitidos ciclicamente. Cada aplicação que é transmitida tem uma TID predeterminada respectiva. Para baixar uma aplicação, a tabela MPEG que tem a TID apropriada e uma extensão de TID de zero é baixada no conjunto receptor / decodificador. Essa é a tabela de diretórios para a aplicação requerida. Os dados no diretório são depois processados pelo decodificador para determinar as extensões TID das tabelas que constituem a aplicação requerida. Depois, qualquer tabela requerida tendo a mesma TID que a tabela de diretórios e uma extensão TID determinada do diretório pode ser baixada. O decodificador é disposto para checar a tabela de diretórios para qualquer atualização dela. Isso pode ser feito por baixa da tabela de diretórios novamente periodicamente, por exemplo, a cada 30 segundos, ou um ou cinco minutos, e comparação do número da versão ou da tabela de diretórios baixada previamente. Se o número da versão recém-baixado é aquele de uma versão mais recente, então as tabelas associadas com a tabela de diretórios anterior são apagadas, e as tabelas associadas com a nova versão, baixadas e montadas.
Em uma disposição alternativa, o fluxo de bit introduzido é filtrado usando uma máscara correspondente à TID, extensão TID e número de versão, com os valores ajustados para a TID da aplicação, uma extensão TID de zero e um número de versão maior do que o número de versão do diretório baixado atualmente. Conseqüentemente, um incremento do número de versão pode ser detectado, e uma vez detectado, o diretório é baixado e a aplicação é atualizada, como descrito acima. Se uma aplicação vai ser terminada, um diretório vazio com o número de versão seguinte é transmitido, mas sem quaisquer módulos listados no diretório. Em resposta ao recebimento desse diretório vazio, o decodificador 2020 é programado para deletar a aplicação.
Na prática, o software e os programas de computador para implementar as aplicações no decodificador podem ser introduzidos, via quaisquer das partes do decodificador, em particular no fluxo de dados recebidos via a ligação por satélite, como descrito, mas também via a porta serial, a ligação por cartão inteligente, etc. Esse software pode compreender aplicações de nivel alto usadas para implementar aplicações interativas dentro do decodificador, tais como pesquisadores de rede, aplicações de questionário, guias de programa, etc. O software também pode ser baixado para alterar a configuração operacional do software do decodificador, por exemplo, por meio de "remendos" ou assemelhados.
As aplicações também podem ser baixadas via o decodificador e enviadas para um PC ou assemelhados conectado ao decodificador. Nesse caso, o decodificador age como um roteador de comunicação para o software, que é eventualmente executado no dispositivo conectado. Além dessa função de roteamento, o decodificador também pode funcionar para converter os dados empacotados MPEG, antes do roteamento para o PC no software de arquivos do computador organizado, por exemplo, de acordo com o protocolo DSM-CC (consultar abaixo).
ORGANIZAÇÃO DE DADOS EM ARQUIVOS DE DADOS A figura 5 mostra a relação entre os dados organizados em um conjunto de arquivos de dados DSM-CC U-U (usuário para usuário) 60, em uma aplicação montada 4 6 e como encapsulado dentro de uma série de tabelas MPEG 47. Essa relação é descrita no pedido de patente internacional WO 99/49614, cujo conteúdo é aqui incorporado por referência.
Antes da transmissão, os arquivos de dados são montados na aplicação 46 e, depois, empacotados por um compressor MPEG em tabelas ou módulos MPEG 47, como descrito acima, incluindo um cabeçalho 49 especifico para o fluxo de pacote MPEG e incluindo uma ID de tabela, número de versão, etc. Como vai ser considerado, não pode haver qualquer relação fixa entre os dados organizados nos arquivos de dados 61 e nas tabelas MPEG eventuais 47. Após recepção e filtração pelo decodificador, os cabeçalhos dos pacotes 49 são descartados e a aplicação 46 reconstituída a partir da carga útil das tabelas 47. O formato DSM-CC para os arquivos de dados é um padrão adaptado, em particular, para uso em redes multimídia e que define uma série de formatos de mensagem e de comandos de sessão para comunicação entre um usuário cliente 70, um usuário servidor 71 e um gerenciador de recursos de rede 72, como mostrado na figura 6. O gerenciador de recursos de rede 72 pode ser considerado como uma entidade lógica, que age para gerenciar a atribuição de recursos dentro de uma rede. A comunicação entre um cliente e um servidor é preparada por uma série de sessões, uma primeira série de mensagens sendo intercambiada entre um usuário (cliente 70 ou servidor 71) e o gerenciador de rede 72, para configurar o cliente e/ou o servidor para comunicação. Essas mensagens são formatadas de acordo com o denominado protocolo DSM-CC U-N (usuário para rede). Um subconjunto desse protocolo foi definido em particular para difundir a baixa de dados.
Uma vez que a ligação de comunicação tenha sido estabelecida, as mensagens são intercambiadas subseqüentemente entre o cliente 70 e o servidor 71 de acordo com o protocolo DSM-CC U-U. Uma seqüência de mensagens desse tipo corresponde aos arquivos de dados 60 da figura 5. No caso de mensagens DSM-CC 0-0, os dados são organizados em uma série de mensagens 61 agrupadas de acordo com o protocolo BIOP ou Broadcast InterOrb.
Cada mensagem ou objeto 61 compreende um cabeçalho 62, um subcabeçalho 63 e uma carga útil 64 contendo os próprios dados. De acordo com o protocolo BIOP, o cabeçalho 62 contém, entre outros, uma indicação do tipo de mensagem e da versão BIOP, enquanto que o subcabeçalho indica o tipo de objeto e outras informações a serem definidas pelo arquiteto do sistema.
Os objetos de dados 64 dentro da carga útil dos arquivos DSM-CC U-U podem ser genericamente definidos como um dos três tipos: objetos de diretórios, objetos de arquivos e objetos de fluxo. Os objetos de diretórios definem os diretórios raiz ou os subdiretórios usados para indicar uma série de objetos de arquivos associados contendo os dados da aplicação efetiva.
Os objetos de fluxo podem ser usados para propiciar uma relação temporal, a ser estabelecida entre os dados contidos nos arquivos de dados e o próprio fluxo de pacotes MPEG. Isso pode ser usado, por exemplo, no caso de aplicações interativas contidas nos arquivos de dados e projetados para serem sincronizados com os fluxos elementares de video ou áudio e processados pelo decodificador. Como mencionado acima, não pode haver, de outro modo, nenhuma correlação direta entre os dados empacotados MPEG e os arquivos de dados.
Diferentemente das tabelas MPEG, nas quais a referência de um único diretório indica um conjunto de tabelas com apenas um único nivel de hierarquia, os arquivos de dados 60 podem ser organizados de uma maneira hierárquica ainda mais complexa. Como com os arquivos armazenados em um PC ou servidor, um diretório principal ou raiz pode referir-se a um ou mais subdiretórios, que se referem, por sua vez, a um segundo nivel de arquivos de dados. Pode-se ainda fazer referência a um segundo diretório raiz associado com um outro conjunto de dados de aplicação.
ESTRUTURA DE ARQUIVO PARA UM CONJUNTO DE ARQUIVOS DE DADOS
Com referência à figura 7, um exemplo de estrutura de arquivos para um conjunto de arquivos de dados é mostrado. Um diretório raiz DIR AO, indicado em 75, faz referência a um grupo de subdiretórios Al para os arquivos objeto 77. Com o propósito de clareza, apenas um único grupo de arquivos objeto Fl, F2, etc, associados com o subdiretório A4 é mostrado. Na prática, vários grupos de arquivos objeto podem ser indicados por cada um dos subdiretórios Al a A4.
Dentro de cada diretório e subdiretório, introduz-se um conjunto de etapas de autenticação para os arquivos ligados àquele diretório. Com referência ao diretório raiz 75, o subcabeçalho 63 compreende um valor de comprovação obtido por aplicação de um algoritmo de comprovação aleatória em parte ou todos os dados armazenados nos arquivos dos subdiretórios Al a A4 indicados em 76. O algoritmo de comprovação aleatória usado pode ser qualquer tipo conhecido, tal como, por exemplo, o algoritmo de Codificação de Mensagem MD5.
Em uma realização, o algoritmo pode ser aplicado, individualmente, a cada arquivo ou subdiretório associado e a uma lista dos valores de comprovação para cada subdiretório 76 armazenada no diretório raiz 75, antes da transmissão. No entanto, ainda que essa solução propicie um maior grau de resolução de checagem, em termos de verificação de cada sistema de transmissão digital, essa solução pode ser relativamente ineficiente, em termos do tempo de processamento necessário para que o decodificador calcule as assinaturas correspondentes. Conseqüentemente, o subcabeçalho 63 do diretório 79 compreende, de preferência, um valor de comprovação 79 cumulativo, calculado por aplicação do algoritmo de comprovação aleatória MD5 às seções do subcabeçalho e da carga útil 63, 64 combinadas dos subdiretórios 7 6, isto é, sem o cabeçalho 62. Em particular, os valores de comprovação 82 contidos dentro dos subdiretórios 76 e referentes à camada dos objetos de arquivos 77 são incluídos nesse cálculo de comprovação aleatória.
No caso do subdiretório A4 mostrado na figura 7, o próprio subdiretório se refere a um conjunto de arquivos objeto F1 - Fn indicados em 77. Nesse caso, um valor de comprovação 82 cumulativo é gerado para o conteúdo combinado dos arquivos objeto 77. Esse valor é incluído no processo de comprovação aleatória que origina o valor de comprovação 79. Portanto, não é possível alterar quaisquer dos arquivos objeto 77, sem alterar o valor de comprovação 82 do subdiretório 76, que, por sua vez, vai alterar o valor de comprovação 79 do diretório 75.
No presente caso, um valor de comprovação combinado é calculado para todos os subdiretórios Al - A4 referidos no diretório. Esse valor de comprovação é armazenado juntamente com um identificador do grupo de subdiretórios do qual os dados foram tomados. Em outras modalidades, uma série de valores de comprovação combinados ou individuais e os identificadores correspondentes podem ser armazenados no subcabeçalho do diretório.
Por exemplo, um segundo conjunto de subdiretórios, também associado com o diretório raiz, mas relativo a um conjunto de dados ou a um código executável diferente, também pode ser agrupado conjuntamente, e um valor de comprovação cumulativo para esses subdiretórios calculado e armazenado no diretório raiz de subcabeçalhos. Um único valor de comprovação associado com um único diretório pode ser igualmente armazenado no subcabeçalho do diretório raiz. A autorização de arquivos de dados em grupos ou individuais não evita, naturalmente, que o diretório raiz (ou, na verdade, qualquer outro arquivo) de também referir-se a arquivos de dados não validados ou não comprovados, mas a ausência de validação desse arquivo vai precisar ser considerada em quaisquer operações com esse arquivo. Nesse aspecto, pode não ser necessário, por exemplo, autenticar objetos de fluxo. O uso de uma função de comprovação aleatória nesse caso permite, basicamente, que o decodificador verifique a integridade ou a completeza dos arquivos de dados baixados. No caso, por exemplo, de uma falha ou interrupção na transmissão, a operação de um algoritmo de comprovação aleatória cumulativo nos arquivos dependentes recebidos não vai proporcionar o mesmo resultado que o valor de comprovação para esses arquivos armazenados no diretório raiz. O decodificador vai ser então alertado para a presença de possíveis erros nos dados baixados e vai recarregar os arquivos de dados defeituosos.
VALOR DE ASSINATURA PARA O DIRETÓRIO RAIZ
Para melhorar a segurança, um valor de assinatura para o diretório raiz 75 é calculado. Nesta modalidade, um algoritmos de chaves privada / pública, tal como o algoritmo Rivest, Shamir e Adleman ou RSA é usado, o difusor responsável pela produção dos arquivos de dados possuindo o valor da chave privada, os valores da chave pública sendo mantidos nos decodificadores. Alternativamente, a chave secreta pode corresponder a uma chave obtida por um algoritmo de chave simétrica, tal como o algoritmo Criptográfico Padrão de Dados ou DES.
Como mostrado na figura 7, o diretório raiz 75 compreende um identificador de difusor 80, que vai identificar para o decodificador a chave pública a ser usada no estágio de verificação, juntamente com o valor de assinatura calculado 81 gerado por meio do uso da chave privada do difusor. Nesse caso, o valor de assinatura 81 é gerado por aplicação da chave privada mantida pelo operador em uma parte ou em todos os dados dentro do diretório 75, incluindo, de preferência, os dados de carga útil 64 e/ou o valor ou os valores de comprovação cumulativos 79. O decodificador pode verificar depois esse valor de assinatura 81, usando a chave pública correspondente identificado pelo identificador de difusor 80.
Nesse exemplo, os dados no diretório 75 estão na forma não criptografada e a chave privada é simplesmente usada para proporcionar um valor de assinatura verificável pela chave pública. Nas modalidades alternativas, parte ou todo o conteúdo do diretório pode ser criptografado pela chave privada e depois descriptografado por uma chave correspondente.
Em qualquer um dos casos, a geração de um valor de assinatura ou um bloco de código criptografado, por uso de uma chave secreta, permite que um decodificador verifique a integridade e a origem do diretório 75 e, por implicação, a integridade e a origem dos arquivos referidos por esse diretório raiz. Uma vez que os valores de comprovação cumulativos para os arquivos referidos são incluídos no cálculo da assinatura 81, não é possível alterar esses valores sem que isso seja detectado no estágio de verificação. Uma vez que cada valor de comprovação é geralmente único para um dado conjunto de dados, não seria, portanto, possível alterar o teor de quaisquer dos arquivos comprovados dependentes, sem alterar o seu valor de comprovação característico e, desse modo, o valor de assinatura resultante de um diretório.
Como vai ser considerado, podem ser possíveis várias operações, notavelmente para reduzir a quantidade de dados comprovados ou sinalizados em cada estágio. Em particular, no caso de um valor de assinatura ou de comprovação em um diretório ou subdiretório usado para verificar um arquivo de dados de nível inferior, o valor de assinatura ou comprovação do diretório pode ser gerado, usando apenas o valor de comprovação de nível inferior e nenhum outro dado.
Por exemplo, o valor de comprovação combinado 7 9 no diretório AO pode ser gerado, usando os valores de comprovação combinados 82, 83 de cada um dos subdiretórios Al - A4 indicados em 76. Uma vez que esses valores são igualmente únicos como os dados nas cargas úteis do subdiretório, o valor de comprovação combinado 79 vai ser ainda único para os subdiretórios em questão. Além do mais, a integridade do nível inferior dos arquivos objeto e de diretório 77, 7 8 pode ser ainda assumida, uma vez que os valores de comprovação 82 são ainda usados no cálculo. CERTIFICADOS DIGITAIS DO DIFUSOR
Com referência à figura 8, a chave pública 91 e o identificador de difusão 80 são proporcionados ao usuário do decodificador em um certificado digital, de preferência, na forma de um padrão bem conhecido da Organização Internacional para Padronização (ISO) X.509, codificado no hardware na memória do decodificador durante fabricação. Esses certificados são distribuídos aos fabricantes de decodificadores por terceiras partes confiáveis, que são referidos usualmente como Autoridades de Certificação (CAs) . O uso desses certificados está ficando mais disseminado, basicamente devido ao protocolo de transporte seguro Camada de Soquete Segura (SSL), desenvolvido e padronizado pela Netscape Communications para proteger as transações de cartões de crédito pela rede mundial de computadores (WWW).
Bem como a chave pública 91 e o identificador de difusor 80, o certificado digital associado com o difusor, ou certificado de difusor 90, também inclui: • um número de versão 92 do certificado do difusor 90; • um número de série 93 do certificado do difusor 90; • uma identidade de CA 94 da CA que distribuiu o certificado do difusor 90; • o período de validade 95 do certificado do difusor 90, para indicar o início e o final do período de tempo, pelo qual se intenciona usar o certificado; e • um valor de assinatura 96 do certificado do difusor 90 .
Como vai ser considerado do que foi mencionado acima, o certificado do difusor inclui dois identificadores diferentes, um primeiro identificador de "nome do emissor", correspondente à identidade 94 do distribuidor do certificado, e um segundo identificador de "nome do objeto", correspondente ao identificador 80 que identifica a chave pública 91. A CA calcula o valor de assinatura 96 do certificado do difusor 90, por aplicação de uma chave privada da CA, ou chave privada CA, a pelo menos parte ou todos os dados dentro do certificado do difusor. O decodificador pode verificar depois esse valor de assinatura 96, por meio do processamento da assinatura usando uma chave pública CA 101 correspondente, identificada pela identidade CA 94, para determinar que o conteúdo do certificado não foi modificado subseqüente à assinatura pela CA. O decodificador pode armazenar uma pluralidade desses certificados para os diferentes respectivos difusores.
CERTIFICADOS DIGITAIS DAS AUTORIDADES DE CERTIFICAÇÃO
Ainda com referência à figura 8, a chave pública CA 101 e o identificador CA 94 correspondentes são proporcionados ao usuário do decodificador em um certificado CA 100, que é também codificado no hardware do decodificador durante a fabricação. O certificado CA 100 também inclui: • um número de versão 102 do certificado CA 100; • um número de série 103 do certificado CA 90; • uma identidade de RCA 104 da Autoridade de Certificado Principal (RCA), tal como o Instituto Europeu de Padronização de Telecomunicações (ETSI), que distribuiu o certificado CA 100; • o periodo de validade 105 do certificado CA 100; e • um valor de assinatura 106 do certificado CA 100.
Como vai ser considerado do que foi mencionado acima, um certificado CA inclui dois identificadores diferentes, um primeiro identificador de "nome do emissor", correspondente à identidade 104 do distribuidor do certificado, e um segundo identificador de "nome do objeto", correspondente ao identificador 94 que identifica a chave pública 101. A RCA calcula o valor de assinatura 106 do certificado CA 100, por aplicação de uma chave privada da RCA, ou chave privada RCA, a pelo menos parte ou todos os dados dentro do certificado CA. O decodificador pode verificar depois esse valor de assinatura 106, por meio do processamento da assinatura usando uma chave pública RCA 111 correspondente, identificada pela identidade RCA 104, para determinar que o conteúdo do certificado não foi modificado subseqüente à assinatura pela RCA.
O decodificador pode armazenar uma pluralidade desses certificados para as diferentes respectivas CAs. CERTIFICADOS DIGITAIS DAS AUTORIDADES DE CERTIFICAÇÃO PRINCIPAIS A chave pública RCA 111 e o identificador RCA 104 correspondentes são proporcionados ao usuário do decodificador em um certificado RCA ou principal 110, que é também codificado no hardware na memória do decodificador durante a fabricação. Cada decodificador inclui, tipicamente, um conjunto de dois ou mais certificados. Cada certificado principal 110 também inclui: • um número de versão 112 do certificado principal 110; • um número de série 113 do certificado principal 110; • periodo de validade 114 do certificado principal 110; e • um valor de assinatura 115 do certificado principal 110 .
Como vai ser considerado do que foi mencionado acima, o certificado principal inclui apenas um único identificador, isto é, a identidade 104 do distribuidor do certificado. Essa identidade 104 também identifica a chave pública 111. Desse modo, um certificado principal pode ser definido como um certificado no qual o nome do emissor é o mesmo que o nome do objeto.
Como o certificado principal é o certificado final na cadeia do certificado do difusor 90 - certificado CA 100 -certificado principal 100, o certificado principal é auto-alinhado, isto é, o valor de assinatura é calculado usando a chave privada equivalente à chave pública 111. Portanto, é uma preocupação de que o conteúdo de um certificado principal não se torne publicamente disponível. É, naturalmente, possível que a RCA proporcione diretamente os certificados do difusor 90 para o fabricante do decodificador, em cujo caso o certificado do difusor vai conter o identificador RCA 11 e ser assinado usando a chave privada RCA.
LISTA DE ANULAÇÃO DE CERTIFICADOS
Qualquer um dos certificados do difusor 90 e dos certificados CA 100 podem ser anulados por, por exemplo, supressão, antes da expiração do periodo de validade especificado nele, se, por exemplo, uma chave privada correspondente à chave pública armazenada no certificado tiver sido comprometida. Essa anulação pode ser feita pela transmissão para o decodificador de uma Lista de Anulação de Certificados <CRL) contendo uma lista dos números de série 92, 102 dos certificados a serem anulados. Após anulação, um certificado é tornado inoperante, de preferência, por supressão do certificado da memória do decodificador, impedindo, desse modo, a baixa de quaisquer pacotes de dados desautorizada, e possivelmente maldosa, assinados usando a chave pública comprometida.
As CRLs são distribuídas por uma CA ou uma RCA para o difusor, que transmite as CRLs aos decodificadores via o canal de retorno via modem 17 ou por difusão das CRLs via o fluxo de transporte MPEG. Não é essencial que o difusor insira as CRLs em todos os fluxos de transporte enviados do transmissor para o decodificador; é suficiente que o difusor insira as CRLs nos fluxos de transporte que são muito prováveis de serem sintonizados pelos decodificadores. Por exemplo, uma CRL pode ser inserida como um arquivo de dados em um diretório raiz 76 ou subdiretório 76 de um conjunto de arquivos de dados difundidos do transmissor para o decodificador.
Com referência à figura 9, uma CRL 120 inclui tipicamente: • a identidade 94 ou 104 da CA ou RCA que distribuiu a CRL 120; • a data 122 na qual a CRL 120 foi emitida; • a data 124 na qual a CRL seguinte é prevista de ser emitida; • uma lista 125 dos números de série dos certificados a serem anulados, incluindo, para cada certificado anulado, a hora e a data da anulação daquele certificado; e • um valor de assinatura 126 da CRL, calculado usando a chave privada da CA ou RCA que distribuiu a CRL 120 .
Após recebimento de uma CRL, o decodificador compara a data 122 na qual a CRL 120 foi emitida com a data 124 na qual essa CRL 120 estava prevista, como recomendado pela CRL recebida previamente. Se a data 122 da CRL recém-recebida não é posterior à data 124 na qual a CRL foi expedida, a CRL é ignorada.
Se a data 122 da CRL recém-recebida é posterior à data 124, na qual essa CRL estava prevista, a assinatura da CRL é verificada, usando a chave pública do emissor da CA, como identificada usando a identidade 94 ou 104 contida na CRL.
Se a integridade da CRL é assim verificada, a CRL é processada para adicionar a data 124, para armazenar na memória permanente a data 12 4 na qual a próxima CRL é esperada ser emitida e armazenar a lista 125 dos números de série dos certificados anulados. A lista recebida 125 dos certificados anulados é também armazenada na memória permanente do decodificador. Por razões de desempenho, prefere-se que a CRL seja armazenada temporariamente na memória do decodificador. Também se prefere que a memória cache do decodificador armazene CRLs de uma maneira arborescente, com a CRL da RCA localizada na parte de topo da "árvore" e as CRLs das CAs, para as quais a RCA distribui os certificados, localizadas na parte inferior da árvore.
No caso de anulação de um certificado de difusor 90, por exemplo, se a chave privada do difusor ficar comprometida, a Autoridade de Certificação para o difusor vai acrescentar o número de série 93 do certificado do difusor 90 à sua CRL 120. A Autoridade de Certificação distribui a nova CRL 120 para todos os difusores, para os quais distribui os certificados de difusor 90 para difusão. Assim que o decodificador tenha baixado a nova CRL 120, por exemplo, após apagar em um canal do difusor, o cache CRL é atualizado e a anulação de quaisquer certificados assim identificados na lista 125 da CRL 120 ocorre.
Os certificados do difusor substituintes 90 são gerados pela Autoridade de Certificação 100 e difundidos para o usuário em um diretório 7 5 ou 7 6 de um arquivo. O certificado do difusor substituinte vai incluir, entre outras coisas, uma nova chave pública 91, um número de versão atualizado 92, um período de validade atualizado 95 e um novo valor de assinatura 96 calculado usando a chave privada da CA. O identificador de difusor 80 e o identificador de CA 94 vão se manter inalterados. Após recebimento do certificado de difusor substituinte 90, o decodificador verifica o certificado, por processamento do certificado usando a chave pública CA correspondente contida no certificado CA identificado pela identidade CA 94 .
Após anulação de um certificado CA 100, a CRL daquela CA é removida da memória do decodificador. Portanto, pode ser desejável anular, voluntariamente, um certificado CA 100, se, por exemplo, o tamanho da CRL daquela CA ficar muito grande para armazenamento na memória cache do decodificador. Nesse caso, a RCA, que distribui o certificado CA 100 para aquela CA, vai adicionar o número de série 103 daquele certificado CA 100 à sua CRL. A Autoridade de Certificação Principal distribui subseqüentemente a nova CRL para todos os difusores, aos quais as CAs, para as quais aquela RCA distribui certificados CA que, por sua vez, distribuem os certificados do difusor para difusão. Logo que o decodificador tiver baixado a nova CRL, por exemplo, após eliminação em um canal do difusor, o cache da CRL é atualizado e a anulação dos certificados CA assim identificados na lista 125 da CRL 120 ocorre.
Após anulação de um certificado CA 100 de uma Autoridade de Certificação, além do armazenamento de um novo certificado CA para aquela Autoridade de Certificação no decodificador, é necessário substituir os certificados do difusor 90, em todos os difusores para os quais aquela Autoridade de Certificação distribui certificados, pois o par de chaves privadas para aquela Autoridade de Certificação não é mais válido, novos certificados de difusor 90, assinados usando uma chave privada diferente ou atualizada da Autoridade de Certificação, vão ser necessários. Um certificado CA substituinte 100 é gerado pela Autoridade de Certificação Principal 110 e difundido para o usuário em um diretório 7 5 ou 7 6 de um arquivo. Similarmente a um certificado do difusor substituinte, o certificado CA substituinte vai incluir, entre outras coisas, uma nova chave pública CA 101, um número de versão atualizado 102, um periodo de validade atualizado 105 e um novo valor de assinatura 106 calculado usando a chave privada da RCA. O identificador CA 94 e o identificador RCA 104 vão se manter inalterados. Após recebimento do certificado CA substituinte 100, o decodificador verifica o certificado por processamento do certificado usando a chave pública RCA correspondente contida no certificado RCA 110, identificado pela identidade RCA 104.
MENSAGEM DE GERENCIAMENTO DE CERTIFICADOS PRINCIPAIS
Após anulação de um certificado RCA 110 de uma Autoridade de Certificação Principal, é necessário substituir o certificado RCA anulado por uma nova RCA. Como descrito acima, os certificados RCA são auto-alinhados e, portanto, a inclusão de um certificado RCA em uma CRL não é desejável, pois é possível que um hacker venha a possuir o certificado, se estiver ciente da chave privada usada para assinar a CRL. Portanto, era até agora necessário retornar o decodificador para o fabricante, cada vez que um certificado RCA fosse atualizado, por exemplo, quando ficava desatualizado ou era anulado.
Para superar esse problema, uma Mensagem de Gerenciamento de Certificado Principal (RCMM) é gerada pela Autoridade de Certificação Principal para difundir pelos difusores para os decodificadores. Como explicado em mais detalhes abaixo, uma RCMM contém, similarmente a uma CRL, uma lista 125 dos números de série de certificados principais a serem anulados, incluindo, para cada certificado principal anulado, a hora e a data para a anulação desse certificado, juntamente com um ou mais certificados principais substituintes para aqueles certificados que tenham ficado desatualizados ou são identificados na lista 125.
Como vai ser considerado, em vista do conteúdo sensível (novos certificados principais) da RCMM, é importante garantir que uma RCMM seja recebida pelo decodificador "como emitida" para o difusor, isto é, para garantir que o conteúdo da RCMM não tenha sido alterado entre a distribuição e a recepção. É também importante garantir que a RCMM possa ser apenas acessada pelos decodificadores aos quais a RCMM é endereçada.
Para melhorar a segurança, uma RCMM, diferentemente de uma CRL, contém pelo menos dois valores de assinatura para pelo menos parte, preferivelmente todos, dos dados incluídos nela. Cada valor de assinatura é calculado usando uma chave de um respectivo algoritmo de criptografação, tal como uma chave privada de um par de chaves pública / privada.
Quando uma RCMM é emitida por uma Autoridade de Certificação Principal (RCA) e inclui um novo certificado principal 110, a RCMM inclui pelo menos dois valores de assinatura. Cada valor de assinatura é calculado usando uma respectiva chave privada de, por exemplo, uma Autoridade de Certificação, para a qual aquela RCA fornece certificados (embora qualquer chave para a qual o decodificador armazena uma chave equivalente possa ser selecionada). Se, ignorado por uma daquelas Autoridades de Certificação, a sua chave privada tiver sido comprometida, pode ser possível que um "hacker" intercepte a difusão do difusor e, se conhece as chaves privadas de ambos o difusor e a Autoridade de Certificação, mude o conteúdo da RCMM e o valor de assinatura da RCMM, calculado usando a chave privada da Autoridade de Certificação. No entanto, não vai ser possível que o hacker mude o valor de assinatura, calculado usando a chave privada da outra Autoridade de Certificação, porque essa chave não foi comprometida. Portanto, após verificação das assinaturas pelo decodificador, usando as chaves públicas das duas Autoridades de Certificação, os dois valores calculados pelo decodificador, usando as respectivas chaves públicas, não vão ser os mesmos. Portanto, o decodificador vai ser alertado para a falta de integridade do conteúdo da RCMM e vai rejeitar a, ou de outro modo não continuar com o processamento da, RCMM.
Conseqüentemente, os certificados principais podem ser atualizados com segurança, desde que o número de certificados comprometidos seja inferior ao número de assinaturas contidas na RCMM. Portanto, o número de assinaturas da RCMM é uma variável determinada pela Autoridade de Certificação Principal que distribui as RCMMs. O formato de uma RCMM vai ser descrito a seguir em mais detalhes, com referência à figura 10. A RCMM 130 inclui: • a identidade 132 da RCA que distribuiu a RCMM 130; • a data 134 na qual a RCMM 130 foi emitida; • número 136 de valores de assinatura que a RCMM subseqüente vai conter; • um campo 138 contendo um ou mais certificados principais atualizados ou substituintes, a serem armazenados no decodificador; • uma lista 140 dos números de série dos certificados principais a serem anulados, incluindo, para cada certificado principal anulado, a hora e a data da anulação daquele certificado; • pelo menos dois campos de assinatura 142, cada um deles contendo: um identificador 144 do certificado armazenado no decodificador que contém a chave pública a ser usada, para verificar o valor de assinatura contido nesse campo de assinatura; e um valor de assinatura 14 6 da RCMM, calculado usando a chave privada equivalente à chave pública contida no certificado identificado pelo identificador 144. O número de campos de assinatura 142 deve ser igual ou superior ao número 136 de campos de assinatura, como recomendado na RCMM recebida anteriormente.
Prefere-se que as RCMMs sejam transmitidas, via o fluxo de transporte MPEG, pois o canal de retorno via modem pode ser facilmente desconectado, ou pode simplesmente estar ausente. Prefere-se também que as RCMMs sejam inseridas pelo difusor como um arquivo de dados em um diretório raiz 75, para garantir que a RCMM seja baixada pelo decodificador.
PROCESSAMENTO E GERAÇÃO DE MENSAGENS DE GERENCIAMENTO DE CERTIFICADOS PRINCIPAIS O recebimento e o processamento de uma RCMM por um decodificador vão ser descritos a seguir, com referência à figura 11.
Após recebimento de uma RCMM, na etapa 2 00, o decodif icador compara a data 134 na qual aquela RCMM 130 foi emitida com a da RCMM emitida previamente. Se a data 134 da RCMM recém-recebida não é posterior à data na qual a RCMM anterior foi emitida, a RCMM é rejeitada.
Se a data 134 da RCMM recém-recebida é posterior à data de recebimento da RCMM prévia, o número 136 de valores de assinaturas que a RCMM recém-recebida contém, como recomendado pela RCMM recebida previamente, é comparado, na etapa 202, com o número de valores de assinatura que estão contidas efetivamente na RCMM recém-recebida. Se o número de assinaturas contidas na RCMM recém-recebida é inferior ao esperado, a RCMM é rejeitada. Isso pode impedir que uma RCMM seja, sob outras circunstâncias, processada em conseqüência de um hacker removendo assinaturas associadas com os pares de chaves privada / pública não comprometidos.
Se o número de assinaturas contidas na RCMM recém-recebida é igual ou superior ao número esperado de assinaturas, na etapa 204, cada valor de assinatura 146 contido na RCMM é verificado, usando a chave pública identificada pelo identificador 144 contido no mesmo campo de assinatura 142, como aquele valor de assinatura. Na etapa 206, o decodificador determina se pelo menos um dos valores calculados, usando uma chave pública, é diferente de qualquer um dos outros valores calculados usando uma chave pública diferente. Se pelo menos um valor calculado for diferente de pelo menos um dos outros valores calculados, a RCMM é rejeitada.
Se a integridade da RCMM é provada na etapa 2 0 6, a RCMM é processada na etapa 208, para armazenar a lista 140 dos números de série dos certificados principais anulados na memória permanente do decodif icador, de modo que esses certificados podem ser eliminados da memória do decodif icador, na etapa 212, para armazenar o ou cada certificado principal contido no campo 138 na memória permanente do decodificador, e na etapa 212, para armazenar na memória permanente a data 134 da RCMM. Se um certificado de uma Autoridade de Certificação Principal é apagada, quaisquer CRLs emitidas por essa Autoridade são também eliminadas.
Prefere-se que a integridade do armazenamento permanente dos dados contidos na RCMM sejam mantidos, se o decodificador é desligado durante o processamento da mensagem RCMM. Portanto, se a energia é efetivamente desligada durante o processamento da RCMM, a lista 140 associada com a RCMM processada previamente, que está armazenada no decodificador, é mantida como se a mensagem RCMM recém-recebida não tivesse sido processada completamente.
Como mencionado acima, uma Autoridade de Certificação Principal (RCA) tem, tipicamente, pelo menos dois certificados RCA, RCO e RC1, armazenados em cada decodificador. No caso em que um desses certificados, isto é, RCO, fica comprometido, vai ser necessário substituir todos os certificados CA armazenados no decodificador, que tenham sido assinados usando a chave privada equivalente à chave pública armazenada no RCO e gerar um novo certificado RCA RC2, para substituir o RCO.
Com referência à figura 12, para substituir esses certificados CA, primeiramente na etapa 300 uma mensagem CRL apropriada, identificando os números de série dos certificados CA a serem eliminados, é emitida pela RCA. Em segundo lugar, na etapa 302, certificados CA substituintes, assinados usando a chave privada do certificado não comprometido RC1, são emitidos para o difusor, para difusão para o decodificador.
Resta então eliminar o certificado RCA comprometido, RCO, e substituir esse certificado por um novo certificado RCA, RC2 . Na etapa 304, a RCA gera um novo par de chaves pública / privada, insere a nova chave pública no certificado RC2 e assina o certificado usando a nova chave privada.
Na etapa 30 6, a RCA gera uma RCMM contendo, no campo 138, o certificado RC2 e, na lista 140, o número de série do RCO. A RCMM é distribuída para os difusores por transmissão, na etapa 308, para os decodificadores para apagar o certificado comprometido RCO e substitui-lo por um novo certificado RC2.
Os certificados RCA RC1 e RC2 vão ser proporcionados subsegüentemente para o fabricante do decodificador para codificação em hardware na memória dos novos decodificadores.
Deve-se entender que a presente invenção foi descrita acima puramente por meio de exemplo e que modificações de detalhes podem ser feitas dentro do âmbito dela.
Por exemplo, a RCMM pode incluir, além dos novos certificados RCA 110, novos certificados CA 100 e/ou novos certificados do difusor 90, e a lista 140 pode incluir identificadores de certificados CA e/ou certificados de difusores que vão ser anulados. Isso pode propiciar que se impeça a geração de mensagens CRL separadas por uma RCA.
Cada característica exposta na descrição e (quando apropriado) nas reivindicações e nos desenhos pode ser proporcionada independentemente ou em qualquer combinação apropriada.