BRPI0612865A2 - atualização automática de componentes legìveis por computador para suportar um ambiente de confiança - Google Patents

atualização automática de componentes legìveis por computador para suportar um ambiente de confiança Download PDF

Info

Publication number
BRPI0612865A2
BRPI0612865A2 BRPI0612865-3A BRPI0612865A BRPI0612865A2 BR PI0612865 A2 BRPI0612865 A2 BR PI0612865A2 BR PI0612865 A BRPI0612865 A BR PI0612865A BR PI0612865 A2 BRPI0612865 A2 BR PI0612865A2
Authority
BR
Brazil
Prior art keywords
revocation list
computer
component
update
new
Prior art date
Application number
BRPI0612865-3A
Other languages
English (en)
Inventor
Adil A Sherwani
Pranavakumar Punniamoorthy
Rajesh A Deshpande
Avni H Rambhia
Reid J Kuhn
Dyke Clifford P Van
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37669367&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI0612865(A2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0612865A2 publication Critical patent/BRPI0612865A2/pt
Publication of BRPI0612865B1 publication Critical patent/BRPI0612865B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

ATUALIZAçAO AUTOMATICA DE COMPONENTES LEGìVEIS POR COMPUTADOR PARA SUPORTAR UM AMBIENTE DE CONFIANçA. O mecanismo de atualização automática da presente invenção provê um método para periodicamente verificar atualizações para dar suporte a um ambiente confiável. Durante a verificação periódica, é recebida uma indicação a partir de um serviço de atualização se houver uma atualização recomendada. Ao receber a indicação, a nova lista de revogação é transferida a partir do serviço de atualização e salva como uma lista de revogação pendente. A lista de revogação pendente então está disponível para atualização sob demanda quando conteúdo protegido solicita um nível de proteção superior, em um dispositivo de computação, à proteção provida por um nível de proteção atual no dispositivo de computação.

Description

"ATUALIZAÇÃO AUTOMÁTICA DE COMPONENTES LEGÍVEISPOR COMPUTADOR PARA SUPORTAR UM AMBIENTE DE CONFIANÇA"
ANTECEDENTES
No passado, diferentes tipos de conteúdo eram dis-tribuídos utilizando-se diferentes tipos de meios. Por exem-plo, música era distribuída em discos a laser (CDs) e repro-duzida utilizando-se um tocador de CD. Filmes eram distribu-ídos em fitas VHS (Sistema de Vídeo Doméstico) ou DVDs (Dis-cos Versáteis Digitais) e reproduzidos utilizando-se um to-cador de VCR (Gravador de Videocassete) ou DVD, respectiva-mente. O tocador de CD, o VCR, e o tocador de DVD, foramdispostos na categoria de dispositivos eletrônicos de consu-midor que foram projetados para um tipo específico de meios.
Esses dispositivos eletrônicos de consumidor eram sistemasfechados onde software adicional poderia ser carregado. Por-tanto, esses sistemas fechados não permitiam cópia não-autorizada do conteúdo.
Hoje em dia, contudo, os dispositivos de computa-ção têm tipicamente tocadores de CD/DVD (isto é, unidades) eoutros tocadores de meios integrados dentro deles. Desse mo-do, os dispositivos de computação podem reproduzir o mesmoCD ou DVD que os dispositivos eletrônicos de consumidor po-dem reproduzir. Além disso, como os dispositivos de computa-ção podem projetados como plataformas abertas, software adi-cional pode ser carregado nos dispositivos de computação.Esse software adicional pode permitir a cópia de conteúdocom direitos autorais e/ou compartilhar o conteúdo com ou-tros por intermédio da Internet. Portanto, os proprietáriosde conteúdo hesitam em permitir que dispositivos de computa-ção reproduzam seus conteúdos.
Para acalmar as inquietações dos proprietários deconteúdo, existem alguns esquemas de proteção projetados pa-ra proteger conteúdo processado em dispositivos de computa-ção (em seguida referidos como meios digitais) e para promo-ver dispositivos de computação como tocadores seguros demeios digitais. Um esquema de proteção foi determinado pelaMotion Picture Association of America (MPAA). Esse esquemade proteção usava um algoritmo de criptografia denominadoSistema de Embaralhamento de Conteúdo (CSS) para proteger adistribuição de DVDs. Os tocadores de DVD eram equipados pa-ra decriptografar o conteúdo de filme, mas não poderiam co-piar ou armazenar o conteúdo decriptografado. Contudo, umhacker de computador desenvolveu um programa de computadorque decriptograf ava o CSS. O programa de computador foi en-tão publicado na Internet. Com esse programa de computador,os usuários finais que tinham unidades de DVD em seus dispo-sitivos de computação poderiam decriptografar e armazenar oconteúdo de filme em um formato de arquivo padrão. 0 arquivopoderia então ser facilmente compartilhado com outros usuá-rios em outros dispositivos de computação, desse modo con-tornando a proteção de direitos autorais.
Como os dispositivos de computação são sistemasabertos, alguns indivíduos continuamente tentam "quebrar" osesquemas de proteção que são projetados para proteger osmeios digitais. Para continuamente proteger os meios digi-tais, esses esquemas de proteção precisam ser atualizadoscontinuamente. Caso contrário, existe o risco de que os pro-prietários de conteúdo não permitirão que certo conteúdo se-ja processado nos dispositivos de computação. As atualiza-ções continuas e o risco de não terem acesso a certos conte-údos afetam os usuários finais, mesmo os usuários finais quenão estão realizando qualquer ação ilegal. Portanto, existea necessidade de um mecanismo que não afete desnecessaria-mente os usuários finais inocentes quando o esquema de pro-teção é violado de alguma maneira.
SUMÁRIO
O presente mecanismo de atualização automáticoprovê um método para verificar periodicamente as atualiza-ções para suportar um ambiente de confiança. Durante a veri-ficação periódica, uma indicação de um serviço de atualiza-ção é recebida se houver uma atualização recomendada. Ao re-ceber a indicação, uma nova lista de revocação é transferidaa partir do serviço de atualização e salva como uma lista derevocação pendente. A lista de revocação pendente está entãodisponível para atualização sob demanda quando conteúdo pro-tegido solicita um nível de proteção superior em um disposi-tivo de computação do que a proteção provida por um nível deproteção atual no dispositivo de computação.
Esse sumário é provido para introduzir uma seleçãode conceitos em uma forma simplificada que é descrita adi-cionalmente abaixo na Descrição Detalhada. Esse Sumário nãopretende identificar aspectos essenciais ou característicasfundamentais da matéria reivindicada, nem pretende ser usadocomo um meio auxiliar na determinação do escopo da matériareivindicada.
DESCRIÇÃO RESUMIDA DOS DESENHOS
Modalidades não-limitadoras e não-exaustivas sãodescritas com referência às figuras a seguir, em que nume-rais de referência semelhantes se referem às partes seme-lhantes ao longo das várias vistas a menos que de outro modoespecificado.
A Figura 1 é um dispositivo de computação ilustra-tivo que pode ser usado para implementar as técnicas de atu-alização automática e mecanismos aqui descritos;
A Figura 2 ilustra um esquema de proteção de con-teúdo exemplar com o qual o presente mecanismo de atualiza-ção automática interage para proteger o conteúdo processadodentro do dispositivo de computação mostrado na Figura 1;
A Figura 3 é uma representação gráfica de um for-mato exemplar para uma lista de revocação global usada pelopresente mecanismo de atualização automática;
A Figura 4 é uma representação gráfica de outramodalidade da lista de revocação global;
A Figura 5 é uma interface exemplar que pode serusada dentro do presente mecanismo de atualização automáticapara prover um conjunto unificado de interfaces de programa-ção de aplicação para as aplicações de meios que pretendemprocessar conteúdo protegido;
A Figura 6 é um fluxograma ilustrando um processode atualização automática sob demanda exemplar para obter umambiente de confiança;
A Figura 7 é um fluxograma ilustrando um processoexemplar para atualização de uma lista de revocação globalnova que é adequada para uso no processo sob demanda mostra-do na Figura 6;
A Figura 8 é um fluxograma ilustrado um processoexemplar para renovar um componente legível por computadorque é adequado para uso no processo sob demanda mostrado naFigura 6;
A Figura 9 é um fluxograma ilustrando um processoexemplar para realizar um processo periódico que atualiza oambiente de confiança no dispositivo de computação mostradona Figura 1;
A Figura 10 é um mecanismo exemplar para localizarcomponentes de renovação e de atualização de lista de revo-cação global; e
A Figura 11 é um diagrama de blocos de uma arqui-tetura exemplar implementando o processo periódico.
DESCRIÇÃO DETALHADA
A descrição a seguir se refere a um mecanismo deatualização automática para atualizar componentes legíveispor computador em suporte a um esquema de proteção de conte-údo. 0 mecanismo de atualização automática equilibra as ne-cessidades de facilidade de uso dos usuários finais com asnecessidades de proteção de conteúdo dos provedores de con-teúdo. O mecanismo de atualização automática opera em con-junto com um esquema de proteção de conteúdo com base naconfiança. A confiança é estabelecida mediante os componen-tes aderindo às políticas de conteúdo para garantir que elesnão realizem qualquer ação além das ações permitidas peloprovedor de conteúdo e mediante criação de um ambiente queprotege contra acesso malicioso ao conteúdo protegido doproprietário de conteúdo. 0 mecanismo de atualização automá-tica então revoga a confiança de um componente legível porcomputador quando concedida e tenta automaticamente restabe-lecer a confiabilidade do componente legível por computadorrevogado. As formas nas quais o mecanismo de atualização au-tomática realiza sua funcionalidade impede que os usuáriosfinais continuem a explorar as vulnerabilidades do esquemade proteção por um período de tempo prolongado, particular-mente o conteúdo liberado após a exploração ser descoberta ea vulnerabilidade fixada. Isso é obtido com impacto mínimopara os usuários finais que utilizam seus meios digitais deuma maneira legítima. Implementações específicas do conceitode atualização automática que operam em vários ambientes decomputação serão descritas agora.
A Figura 1 é um dispositivo de computação ilustra-tivo que pode ser usado para implementar as técnicas de atu-alização automática e os mecanismos aqui descritos. O siste-ma inclui um dispositivo de computação, tal como um disposi-tivo de computação 100. Em uma configuração muito básica, odispositivo de computação 100 inclui tipicamente pelo menosuma unidade de processamento 102 e memória de sistema 104.
Dependendo da configuração e tipos exatos do dispositivo decomputação, a memória de sistema 104 pode ser volátil (talcomo RAM), não-volátil (tal como ROM, memória flash, etc.)ou alguma combinação das duas. A memória de sistema 104 in-clui tipicamente um sistema operacional 106, um ou mais mó-dulos de programa 108, e pode incluir dados de programa 110.Para o mecanismo de atualização automática da presente in-venção, o sistema operacional 106 inclui um ou mais compo-nentes 140 para implementar o esquema de proteção de conteú-do e um ou mais componentes 142 para implementar o mecanismode atualização automática. Como será descrito abaixo, o me-canismo de atualização automática interage com o esquema deproteção de conteúdo ao realizar sua funcionalidade. Essaconfiguração básica é ilustrada na Figura 1 por aqueles cora-ponentes dentro da linha tracejada 112.
O dispositivo de computação 100 pode ter caracte-rísticas ou funcionalidade, adicionais. Por exemplo, o dis-positivo de computação 100 também pode incluir dispositivosde armazenamento de dados adicionais (removíveis e/ou não-removíveis) tais como, por exemplo, discos magnéticos, dis-cos óticos, ou fita. Tal dispositivo de armazenamento adi-cional é ilustrado na Figura 1 pelo dispositivo de armazena-mento removível 120 e dispositivo de armazenamento não-removível 122. Os meios de armazenamento de computador podemincluir meios voláteis e não-voláteis, removíveis e não-removíveis implementados em qualquer método ou tecnologiapara armazenamento de informação, tal como instruções legí-veis por computador, estruturas de dados, módulos de progra-ma, ou outros dados. Memória de sistema 104, dispositivo dearmazenamento removível 120 e dispositivo de armazenamentonão-removível 122 são todos exemplos de meios de armazena-mento de computador. Desse modo, os meios de armazenamentode computador incluem, mas não são limitados a: RAM, ROM,EEPROM, memória flash ou outra tecnologia de memória, discosversáteis digitais CD-ROMs, discos digitais versáteis (DVD)ou outro dispositivo de armazenamento ótico, cassetes magné-ticos, fita magnética, dispositivo de armazenamento de discomagnético ou outros dispositivos de armazenamento magnético,ou qualquer outro meio que possa ser usado para armazenar ainformação desejada e que possa ser acessado pelo dispositi-vo de computação 100. Quaisquer dos tais meios de armazena-mento de computador podem constituir parte do dispositivo100. O dispositivo de computação 100 também pode ter dispo-sitivo (s) de entrada 124, tal como teclado, mouse, caneta,dispositivo de entrada de voz, dispositivo de entrada de to-que, etc. O dispositivo (s) de saida 126 tal como um video,alto-falantes, impressora, etc. também podem ser incluídos.
Esses dispositivos são conhecidos na técnica e não precisamser detalhadamente discutidos aqui.
O dispositivo de computação 100 também pode conterconexões de comunicação 128 que permitem que o dispositivose comunique com outros dispositivos de computação 130, talcomo através de uma rede. A conexão (ões) de comunicação 128é um exemplo de meios de comunicação. Os meios de comunica-ção podem ser incorporados tipicamente por instruções legí-veis por computador, estruturas de dados, módulos de progra-ma, ou outros dados em um sinal modulado de dados, tal comouma onda portadora ou outro mecanismo de transporte, e in-clui quaisquer meios de entrega de informação. 0 termo "si-nal modulado de dados" significa um sinal que tem uma oumais de suas características definidas ou alteradas de talmaneira a codificar informação no sinal. Como exemplo, e nãocomo limitação, os meios de comunicação incluem meios cabea-dos tal como uma rede cabeada, ou conexão cabeada, direta, emeios sem fio, tais como meios acústicos, de RF, de infra-vermelho e outros meios sem fio. Os meios legíveis por com-putador podem ser quaisquer meios que possam ser acessadospor um computador. Como exemplo, e não como limitação, meioslegíveis por computador podem compreender "meios de armaze-namento de computador" e "meios de comunicação".
Vários módulos e técnicas podem ser descritos aquino contexto geral de instruções executáveis por computador,tais como módulos de programa, executados por um ou maiscomputadores ou outros dispositivos. Geralmente, módulos deprograma incluem rotinas, programas, objetos, componentes,estruturas de dados, etc. para realizar tarefas específicasou implementar tipos de dados abstratos específicos. Essesmódulos de programa e semelhantes podem ser executados comocódigo nativo ou podem ser transferidos e executados, talcomo em uma máquina virtual ou outro ambiente de execução decompilação "na hora certa". Tipicamente, a funcionalidadedos módulos de programa pode ser combinada ou distribuídaconforme desejado em várias modalidades. Uma implementaçãodesses módulos e técnicas pode ser armazenada ou transmitidaatravés de alguma forma de meios legíveis por computador.
A Figura 2 ilustra uma modalidade de um esquema deproteção de conteúdo com o qual o presente mecanismo de atu-alização automática pode interar para proteger o conteúdoprocessado dentro do dispositivo de computação mostrado naFigura 1. Em visão geral, o mecanismo de atualização automá-tica da presente invenção interage com qualquer esquema deproteção de conteúdo que impõe a sua segurança para o conte-údo com base na integridade dos componentes legíveis porcomputador que tem acesso ao conteúdo. Diferentes modalida-des do esquema de proteção de conteúdo podem estabelecer aconfiança para os componentes legíveis por computador de ma-neiras diferentes. Em uma modalidade, a confiança pode sebasear em uma técnica de assinatura-código onde um binário"de confiança" é assinado por uma autoridade "de confiança".Quando a confiança é estabelecida, o mecanismo de atualiza-ção automática da presente invenção opera para revogar aconfiança para os componentes legíveis por computador quenão garante tem a confiança. Além disso, o mecanismo de atu-alização automática tenta restabelecer a confiança do compo-nente legível por computador revogado. Ao fazer isso, o me-canismo de atualização automática da presente invenção inte-rage com o esquema de proteção de conteúdo. A descrição aseguir descreve uma modalidade para o esquema de proteção deconteúdo e então descreve as interações entre esse esquemade proteção de conteúdo e o mecanismo de atualização automática.
Como mencionado acima, a Figura 2 ilustra uma mo-dalidade para um esquema de proteção de conteúdo. O esquemade proteção de conteúdo provê um ambiente protegido no qualos meios digitais podem ser processados sujeitos a seu acor-do de licenciamento associado. O ambiente protegido tentaimpedir ataques que tentam violar o acordo de licenciamentomediante limitação da capacidade dos componentes de softwareexecutando no sistema em acessar o conteúdo protegido quandoele está sendo processado, mediante limitação de acesso àmemória e espaço de execução, e semelhante. Desse modo, osacordos de licenciamento que limitam o número de dispositi-vos de computação nos quais o conteúdo pode ser processado,restringem o número e vezes que o conteúdo pode ser reprodu-zido, restringem o número de vezes que o conteúdo pode sercopiado e semelhante, podem ser impostos. Devido ao fato doesquema de proteção de conteúdo tentar prover um ambienteprotegido para os meios digitais, o termo ambiente protegidotambém é usado para se referir ao esquema de proteção.
Em visão geral, o ambiente protegido provê uma"parede" contra ataques externos que estão tentando violaros acordos de licença. 0 ambiente protegido inclui componen-tes de midia em ambos, um espaço de memória de modo-usuário200 e um espaço de memória de modo-núcleo 202 da memória desistema 104 mostrado na Figura 1. Os componentes de midiasão configurados para processar conteúdo que precisa serprotegido (por exemplo, conteúdo protegido). Desse modo, umaaplicação de meios precisa apenas prover funcionalidade decontrole remoto (por exemplo, Reproduzir, Rebobinar, Pausar,Gravar para CD-ROM) em vez de lidar diretamente com o conte-údo protegido. 0 ambiente protegido também provê suporte pa-ra componentes de terceiros, assinados, que podem acessar oconteúdo protegido.
Para conseguir isso, o ambiente protegido provêuma canalização de meios 222 que executa dentro de um pro-cesso protegido de modo-usuário 220. O processo protegido220 é separado de um processo de sistema 210 no qual uma a-plicação de meios 212 executa. Mais especificamente, softwa-re executando nesses processos (por exemplo, processo desistema 210 e outros processos 230) não pode acessar o pro-cesso protegido 220. A aplicação de meios 212 pode processarconteúdo que não precisa ser protegido. Contudo, se a apli-cação de meios 212 tentar processar conteúdo protegido, aaplicação de meios interage com a canalização de meios 222para processar o conteúdo protegido. Se o ambiente protegidofica ciente de que um componente legível por computador pre-cisa ser atualizado, uma interface de habilitação de conteú-do 228 é utilizada. Resumidamente, descrita em detalhe abai-xo em conjunto com a Figura 5, a interface de habilitação deconteúdo encapsula a informação necessária para realizar umadas ações (por exemplo, atualizar lista de revogação, adqui-rir licença, e semelhante) para processar o conteúdo prote-gido. A canalização de meios 222 realiza o processamento doconteúdo protegido.
Além disso, o ambiente protegido inclui um compo-nente de modo-núcleo PEAuth 242. Em visão geral, PEAuth 242é responsável para verificação de se cada um dos componentescarregados (por exemplo, bad.exe 232, outro plugin.dll 214,e badDriver.sys 24 4) são componentes de confiança. Se um doscomponentes no modo-núcleo 202 não for de confiança (por e-xemplo, badDriver.sys 244), PEAuth 242 não permitirá que oconteúdo protegido seja processado.
PEAuth 242 pode determinar se os componentes legí-veis por computador são de confiança com base em seus biná-rios assinados associados, certificados nos binários assina-dos, em uma lista de revogação global (não mostrada) , e se-melhante. Se o componente legível por computador passa nessaverificação, PEAuth permite que o componente legível porcomputador carregue. Se, contudo, o componente legível porcomputador não passar nessa verificação, PEAuth provê statuspara aplicação de meios. 0 status é provido por intermédioda interface 228. A aplicação é então configurada para pro-ver uma interface de usuário ao usuário final com relação aostatus. A aplicação de meios também requer uma atualizaçãopor intermédio da interface 228. PEAuth 242 é notificadosempre que um processo protegido for criado e sempre que umcomponente for carregado em um processo protegido. QuandoPEAuth está no processo de carregar um componente legívelpor computador, PEAuth verifica um arquivo associado ao com-ponente legível por computador para ver se o arquivo estárelacionado na lista de revogação global como revogado.
Além disso, o próprio componente pode ser verifi-cado para ver se ele está relacionado na lista de revogaçãoglobal. Se o componente estiver revogado dentro da lista derevogação global, o processo para renovar aquele componenteé realizado, conforme descrito abaixo em conjunto com a Fi-gura 8. Resumidamente, descrito em detalhe abaixo em conjun-to com a Figura 3, a lista de revogação global identificaitens (por exemplo, componentes, certificados) que não sãode confiança. A determinação sobre quais itens incluem alista de revogação global pode ser realizada por uma equipede indivíduos. Essa equipe é responsável por analisar a in-formação recebida a partir dos proprietários de conteúdoprotegido, a Internet, e/ou outras fontes. Com base nessainformação, a equipe determina se o item suspeito viola oambiente protegido e determina como ele viola o ambienteprotegido. Os resultados dessa análise são então refletidosna lista e revogação global que será descrito abaixo em con-junto com a Figura 3.
A Figura 3 é uma representação gráfica de um for-mato exemplar 300 para uma lista de revogação global usadapelo mecanismo de atualização automática da presente inven-ção. Em geral, a lista de revogação global permite que in-formação confiável seja armazenada em um formato facilmenteatualizável à prova de violação. Em uma modalidade, o forma-to 300 inclui várias seções: uma seção de núcleo 302, umaseção extensível 304, uma seção de renovação 306, e uma se-ção de assinatura 308. O arranjo das seções 302, 308 podeser otimizado para prover consulta eficiente. Por exemplo, aseção de núcleo 302 pode ser organizada de modo que não o-corram rupturas na informação e possa ser classificada. Issopermite que um componente de núcleo carregue a seção de nú-cleo 302 diretamente na memória. Desse modo, o componente denúcleo não precisa analisar a informação antes de poder usara informação. A lista de revogação global pode ser assinadadigitalmente por uma autoridade de certificado para garantira sua autenticidade. O formato 300 é um formato exemplar pa-ra a lista de revogação global. Outros formatos podem ter umnúmero maior ou menor de seções com outras subseções corres-pondentes. Além disso, outros formatos podem ser arranjadosdiferentemente.
A seção de núcleo 302 indica várias subseções: umcabeçalho 310, uma lista de revogação de componentes de nú-cleo 320, uma lista de revogação de componentes de modo-usuário 322, uma lista de revogação de certificados 324, euma lista de raízes de confiança 326. Cada uma dessas subse-ções será descrita agora em maior detalhe.
O cabeçalho 310 pode incluir um número de versão312, um parâmetro de reinicialização forçada 314, um parâme-tro de reinicio de processo 316, e um parâmetro de tempo318. O parâmetro de tempo 318 armazena um tempo no qual alista de revogação global foi criada. 0 número de versão 312especifica um número para a versão da lista de revogaçãoglobal (GRL) . Cada vez que uma nova lista de revogação glo-bal é publicada, o número de versão 312 é modificado. O nú-mero de versão 312 é usado para garantir que os sistemas decomputação que processam o conteúdo protegido obedeçam àsrestrições impostas para o conteúdo protegido. Por exemplo,o sistema de computação pode estar vendo fotografias utili-zando a versão n°5 da lista de revogação global. Contudo, seo mesmo sistema de computação desejar agora reproduzir umfilme Pay-Per-View, o filme Pay-Per-View (isto é, conteúdoprotegido) pode especificar que o dispositivo de computaçãoutilize pelo menos a versão n°8 da lista de revogação glo-bal. O processo para atualizar o dispositivo de computação eobter o dispositivo de computação de confiança na versão n°8é descrita abaixo em conjunto com as Figuras 6-10.Parâmetro de reinicialização forçada 314 é usadopelo mecanismo de atualização automática para minimizar oimpacto de uma atualização de versão em um usuário final nodispositivo de computação. Isso é conseguido mediante indi-cação com o parâmetro de reinicialização forçada 314 sequaisquer das adições às listas de revogação 320-324 paraessa versão revogam um componente que se esconde após sercarregado. Por exemplo, um componente pode se esconder ao seremover de uma lista de "módulos carregados" ou mediante in-serção de código em outro módulo e então descarregando a sipróprio. Desse modo, "ocultando" se refere à incapacidadedas técnicas de varredura em detectar o componente quandocarregado. Se a nova lista de revogação global não revogarqualquer componente que tenta se esconder, o mecanismo deatualização automática pode atualizar a lista de revogaçãosem reinicializar o dispositivo de computação. Após atuali-zar a lista de revogação, o mecanismo de atualização automá-tica pode ser certificado de que o status de confiança dodispositivo de computação está agora na nova versão. Nessecenário, se um dos componentes relacionados em uma das lis-tas de revogação 320-324 não for detectado (isto é, não-oculto), o mecanismo de atualização automática pode ser cer-tificado de que o componente não foi carregado.
Contudo, se a lista de revogação global nova nãorevogar um componente que tenta se esconder quando carrega-do, o mecanismo de atualização automática pode não está se-guro de que o componente oculto ainda não está carregado,mesmo após a renovação. Portanto, uma reinicialização é ne-cessária para detectar o componente oculto. Se o componenteque se oculta é um componente do modo-usuário, o componenteserá impedido de carregamento após a reinicialização. Contu-do, se o componente for um componente do modo-núcleo, o com-ponente será carregado, mas o ambiente protegido não permi-tirá que o conteúdo protegido seja processado.
Como muitas das revogações relacionados nas listase revogação 320-324 revogam os componentes que acidentalmen-te causam uma violação por não implementar um recurso corre-tamente, o parâmetro de reinicialização forçada 314 minimizao número de vezes em que o dispositivo de computação precisaser reinicializado. Isso minimiza muito o impacto negativopara os usuários finais no dispositivo de computação.
Em uma modalidade, o parâmetro de reinicializaçãoforçada 314 é implementado como um contador. O contador éatualizado sempre que uma lista de revogação global revogarum componente que tenta se esconder. Utilizar o contador co-mo o parâmetro de reinicialização forçada é útil na situaçãoonde um dispositivo de computação pulou várias versões dalista de revogação global. Por exemplo, um dispositivo decomputação pode estar atualmente utilizando a versão n°3 dalista de revogação global. Contudo, quando ele tenta proces-sar um conteúdo protegido especifico, o acordo de confiançaassociado ao conteúdo protegido pode especificar que o dis-positivo de computação pode processar apenas o conteúdo pro-tegido se ele estiver usando o n°10 da lista de revogaçãoglobal. Se o parâmetro de reinicialização forçada 314 foiimplementado utilizando um indicador de sim/não, o disposi-tivo de computação pode falhar em estabelecer confiança nonível de versão n°10. Isso pode ocorrer se uma ou mais dasversões (versões n°4-n°9) especificou "sim" para o parâmetrode reinicialização formada 314, mas a versão n°10 especifi-cou "não". Sem conhecer o parâmetro de reinicialização for-çada 314, nas outras listas de revogação global, o mecanismode atualização automática não teria conhecimento de que umareinicialização é necessária. Sem reinicialização, o ambien-te protegido ainda teria o componente revogado carregado.
Mediante uso de um contador, o valor do contador na lista derevogação global nova pode ser facilmente comparado com ovalor do contador na lista de revogação global anterior. 0mecanismo de atualização automática pode então forçar umareinicialização se os contadores diferirem.
0 parâmetro reiniciar 316 pode ser usado pelo me-canismo de atualização automática de componente para minimi-zar adicionalmente o impacto de uma atualização de versão emum usuário final no dispositivo de computação. Os componen-tes identificados nas listas de revogação 320-324 podem sercategorizados em três classes: 1) Componentes não-maliciosos; 2) Componentes de modo-usuário maliciosos; e 3)Componentes de modo-usuário maliciosos. A primeira classe,componentes não-maliciosos, ocorre tipicamente acidentalmen-te mediante falha em implementar seguramente um recurso den-tro do componente. Portanto, esses tipos de componente nãotentam tipicamente se ocupar a eles próprios.
A segunda classe e a terceira classe são especifi-camente gravadas para violar o acordo de confiança associadoa certo tipo de conteúdo protegido. Como esses tipos de com-ponentes são maliciosos, eles tipicamente tentam se ocultarapós serem carregados.
O parâmetro reiniciar 316 pode ser usado em con-junto com o parâmetro de reinicialização forçada 314 paraidentificar se uma reinicialização é necessária, se um rei-nicio dos processos protegidos é necessário, ou se uma reno-vação do componente é necessária para estabelecer a confian-ça no nivel da lista de revogação global nova. Para os com-ponentes dentro da primeira classe, o mecanismo de atualiza-ção automática pode atender às exigências da lista de revo-gação global nova mediante renovação de quaisquer dos compo-nentes revogados que estão atualmente carregados. Para oscomponentes dentro da segunda classe, o mecanismo de atuali-zação automática pode satisfazer à exigência da lista de re-vogação global nova mediante reinicio de cada processo pro-tegido. Como o componente de modo-usuário malicioso revogadoestá dentro do processo protegido, quando o processo prote-gido é exterminado, o componente de modo-usuário maliciosotambém é efetivamente exterminado. Quando o processo prote-gido é reiniciado, o componente de modo-usuário maliciosorelacionado na lista de revogação global atualizada será im-pedido de carregamento. Para os componentes dentro da ter-ceira classe, o mecanismo de atualização automática pode sa-tisfazer à exigência da nova lista de revogação global medi-ante reinicialização do dispositivo de computação conformeexplicado acima para o parâmetro de reinicialização forçada 14.Em uma modalidade, o parâmetro reiniciar 316 podeser implementado como um contador e ser usado em conjuntocom o parâmetro de reinicialização forçada 316. Por exemplo,se o parâmetro de reinicialização forçada indicar que não énecessário reinicializar o dispositivo de computação, o pa-râmetro reiniciar 316 pode ser comparado com o parâmetro re-iniciar antigo para determinar se é necessário reiniciar osprocessos protegidos. Isso permite que os usuários finaiscontinuem a executar outras aplicações (por exemplo, proces-sador de texto, jogos) que não precisam de processos prote-gidos, enquanto os processos protegidos são reiniciados. Is-so efetivamente minimiza o impacto para os usuários finaisenquanto ainda mantendo um nivel de confiança para o conteú-do protegido funcionando no dispositivo de computação.
A lista de revogação para os componentes de modo-núcleo 320, os componentes de modo-usuário 322, e os certi-ficados 324, são similares. A lista de revogação inclui umaentrada que identifica um item que deve ser revogado. 0 itempode ser um arquivo, um componente legível por computadorindividual, ou um certificado. O arquivo pode ser um arquivode biblioteca de link dinâmico (DLL) ou executável (.EXE) noqual vários componentes legíveis por computador são armaze^nados. O item é identificado utilizando um identificadorsingular, tal como um valor numérico de um binário de modo-usuário ou de modo-núcleo para revogar, ou um valor numéricode uma chave pública de um certificado para revogar. De for-ma interessante, os itens que são especificados como revoga-dos na lista de revogação global podem ainda ser usados forado ambiente protegido. A identificação de um componente den-tro da lista de revogação global afeta apenas o seu statuscomo um componente de confiança no ambiente protegido.
Se o item identifica um certificado, qualquer com-ponente legível por computador certificado por aquela auto-ridade de certificação é revogado. Além disso, qualquer com-ponente legível por computador que foi certificado com umcertificado na cadeia de confiança até o certificado identi-ficado também é revogado. A cadeia de confiança continua atéparar em uma autoridade raiz. Isso impede que um hacker uti-lize uma autoridade de certificação que foi comprometida pa-ra assinar componentes maliciosos legíveis por computador.
A seção raízes de confiança 326 identifica as au-toridades-raiz a partir da qual uma cadeia de confiança podeser iniciada. Portanto, se um componente legível por compu-tador for certificado por uma autoridade-raiz que não estárelacionada como uma das raízes de confiança, o PEAuth nãocarregará o componente. Isso impede que um hacker crie umaautoridade-raiz para assinar componentes maliciosos legíveispor computador.
Entradas para os itens que foram revogados nas se-ções 320-322, normalmente têm uma entrada de renovação naseção de renovação correspondente 330-332. A entrada de re-novação inclui um identificador globalmente singular de re-novação (GUID). Em uma modalidade, o GUID de renovação podeespecificar um identificador de categoria. As entradas derenovação em cada subseção podem ser classificadas pelo valor dovalor numérico. Um processo exemplar para renovar componentes édescrito abaixo em conjunto com a Figura 8.
A seção extensível 304 pode conter informação derevogação extensível que é usada no estabelecimento de con-fiança com os componentes a jusante. Uma extensão GÜID iden-tifica cada entrada extensível. A seção extensível 304 podeser classificada pela extensão GUID.
A assinatura 340 armazena uma assinatura para ocabeçalho 310 e para as seções de dados de núcleo 320-326. Aassinatura 342 armazena uma assinatura para o cabeçalho 310e para a seção extensível 304. As assinaturas 342 são usadaspara verificar se ninguém violou as seções correspondentesdentro da lista de revogação global. A assinatura é assinadapor uma entidade de confiança. O certificado assinando alista de revogação global deriva ascendentemente até uma ra-iz de confiança predefinida que está disponível durante averificação. A raiz de confiança predefinida pode ser codi-ficada permanentemente dentro da lógica de verificação. Asentradas de renovação não precisam ser assinadas. Se alguémviolar a seção de renovação 306, o dispositivo de computaçãofalhará em obter as renovações. Contudo, essa falha não cau-sará quaisquer problemas de segurança para o ambiente prote-gido ou para o dispositivo de computação. Se isso ocorrer,uma lista de revogação global nova será obtida conforme des-crito abaixo em conjunto com a Figura 7.
O que vem a seguir é sintaxe exemplar para a listade revogação global (GRL_HEADER), cada entrada na lista derenovação global (GRL_ENTRY), cada entrada na seção extensí-vel (GRL_EXTENSIBLE_ENTRY), cada entrada na seção de renova-ção (GRL_RENEWAL_ENTRY), e as assinaturas (BIN_SIGN):typedef struct_GRL_HEADER {WCHARwszldentifier[6];WORDwFormatMaj or ;WORDwFormatMinor;
FILETIMECreationTime;DWORDdwSequenceNumber;DWORDdwForceRebootVersion ;DWORDdwForceProcessRestartVersion;DWORDcbRevocationsSectionOffset;
DWORDcRevokedKernelBinaries;DWORDcRevokedUserBinaries;DWORDcRevokedCertificates;DWORDcTrustedRoots;DWORDcbExtensibleSectionOffset;
DWORDcRevokedKernelBinaryRenewals;DWORDcRevokedUserBinaryRenewals;DWORDcRevokedCertificateRenewals;DWORDcbSignatureCoreOffset;DWORDcbSignatureExtOffset;} GRL_HEADER;
typedef struct_GRL_ENTRY {BYTErgbGRLEntry[GRL_HASH_SIZE] ;} GRL_ENTRY;
typedef struct_GRL_EXTENSIBLE_ENTRY {GUIDguidExtensionID;
BYTErgbExtensibleEntry[GRL_EXT_ENTRY_SIZE] ;} GRL EXTENSIBLE ENTRY;typedef struct_GRL_RENEWAL_ENTRY {
GRL_ENTRYGRLEntry;
GUIDguidRenewalID;
} GRL_RENEWAL_ENTRY;
typedef strucn_BIN_SIGN {
DWORDdwSignFormat;
DWORDdwSignSize;
BYTErgbSignature[1];
} BIN_SIGN;.
Será considerado que o formato exemplar descritopara a lista de revogação global muda gradualmente. Quandoisso ocorre, componentes existentes reconhecerão se existeum novo formato e falham dignamente. Um leitor de formatoatualizado será então obtido pelo ambiente protegido que se-rá configurado para ler o novo formato de lista de revogaçãoglobal.
A Figura 4 é uma representação gráfica de outramodalidade da lista de revogação global. Conforme descritoacima, para manter o nivel de segurança para todos os dispo-sitivos de computação, quando um componente legível por com-putador ou certificado é relacionado na lista de revogaçãoglobal, o componente ou certificado tipicamente permanece nalista de revogação global. Desse modo, o único arquivo podese tornar muito grande e de difícil manejo. Portanto, consi-dera-se que um arquivo pode ser separado em múltiplos arquivos.
A Figura 4 é uma ilustração gráfica de uma modali-dade para uma lista de revogação global de múltiplos arqui-vos. Cada arquivo 402, 404 e 406 mantém o formato exemplardescrito acima na Figura 3. Além disso, cada arquivo 402,4 04 e 406 contém um indicador para o próximo arquivo (istoé, NextGRL) e um indicador para o arquivo anterior (isto é,PrevGRL) em uma implementação de lista vinculada. Arquivosde múltiplas partes adicionais podem ser adicionados quandoo último arquivo 406 atinge certo tamanho. Nessa modalidade,quando o dispositivo de computação tiver transferido arqui-vos de múltiplas partes 402, 404 e 406, é necessário apenastransferir o último arquivo (isto é, arquivo de múltiplaspartes 406) quando houver uma nova versão da lista de revo-gação global. Dependendo do número de revogações e renova-ções, isso pode aumentar substancialmente o desempenho paratransferência da lista de revogação global. Contudo, terlistas de revogação global de múltiplos arquivos pode fazercom que o processo de renovação seja menos eficiente, espe-cificamente o processo de carregar a lista de revogação glo-bal.
O processo de atualização automática da presenteinvenção pode ser realizado em dois cenários diferentes. Oprimeiro cenário é um processo sob demanda enquanto uma a-plicação de meios está tentando processar o conteúdo prote-gido. O segundo cenário é um processo de atualização perió-dica que é programada em intervalos predeterminados. Antesde descrever os processos de atualização automática sob de-manda e periódica, uma interface exemplar usada dentro domecanismo de atualização automática da presente invenção édescrita. A Figura 5 é uma interface exemplar 500 que podeser usada dentro do mecanismo de atualização automática dapresente invenção para prover um conjunto unificado de in-terfaces de programação de aplicação para aplicações de mei-os que desejem processar conteúdo protegido. 0 conjunto uni-ficado das APIs ajuda no desenvolvimento das aplicações demeios. Por exemplo, o conjunto unificado das APIs permiteque a interface de usuário das aplicações de meios permaneçauniforme para cenários diferentes, tal como atualização dalista de revogação global, renovação de um componente, Ian-çar uma página da Rede de ajuda, e semelhante. Cada uma dasAPIs será descrita agora.
Um método GetEnableType 502 é ativado pela aplica-ção de meios e retorna um tipo especifico para o cenário pa-ra o qual o dispositivo de habilitação de conteúdo 500 foicriado. Os dispositivos de habilitação de conteúdo são cria-dos pela canalização de meios 222 mostrada na Figura 2 apósPeAuth 242 verificar se o ambiente protegido pode ser confi-ável. Se o ambiente não pode ser confiável, o dispositivo dehabilitação de conteúdo 500 é criado e o tipo é definido pe-Ia canalização de meios 222 que indica o que é necessáriopara permitir acesso ao conteúdo protegido. Aplicação demeios pode então exibir seqüências na interface de usuáriocom base no tipo retornado.
Um método GetEnableURL 504 é chamado pela aplica-ção de meios para obter um localizador de recursos uniformes(URL). A aplicação de meios pode então lançar um navegadorda Rede para navegar para o localizador de recursos unifor-mes especificado. A aplicação de meios pode realizar uma so-licitação HTTP POST para o localizador de recursos unifor-mes. 0 método GetEnableURL 504 inclui três parâmetros: pws-zURL 510, pcchURL 522, pTrustStatus 524, O parâmetro pwszURL510 é um indicador para um arranjo localizado pela pessoaque chama. O parâmetro pcchURL 522 especifica uma extensãopara o arranjo. A pessoa que chama inicializa o parâmetropcchURL 522 para o tamanho do arranjo indicado pelo parâme-tro pwszURL 510. O parâmetro pTrustStatus 524 informa à a-plicação de meios se o URL é de uma fonte confiável. A apli-cação de meios chama o método GetEnableURL 504 duas vezes. Aprimeira vez para obter o comprimento do arranjo para alocare a segunda vez com o arranjo alocado e o tamanho. 0 métodoGetEnableURL 505 pode ser usado quando o habilitador de con-teúdo não pode realizar automaticamente as ações necessáriascom base no tipo especificado.
Um método GetEnableData 506 é chamado pela aplica-ção de meios para retornar os dados que acompanham a solici-tação HTTP POST realizada no método GetEnableURL 504. 0 mé-todo GetEnableData 506 inclui dois parâmetros: um parâmetropbData 530 e um parâmetro pcbData 532. O parâmetro PbData530 aponta para um arranjo alocado pelo chamador. 0 objetode habilitador de conteúdo povoa o arranjo com os dados POSTse o tamanho do arranjo, indicado pelo parâmetro pcbData 532for insuficiente. A aplicação de meios chama o método GetE-nableData 506 duas vezes. A primeira vez com o parâmetro pb-Data ajustado para NULL para obter o tamanho do arranjo paraalocar. A segunda vez com o arranjo alocado e seu tamanho.Isso permite que a aplicação de meios obtenha dados adicio-nais, tal como um publicador do componente revogado, umaversão para o componente revogado, e semelhante.
Um método IsAutomaticSupported 508 é chamado pelaaplicação de meios para determinar se o objeto habilitadorde conteúdo pode realizar as ações necessárias para o tipoespecificado automaticamente. 0 habilitador de conteúdo a-justa o parâmetro pfAutomatic 540 em TRUE se o habilitadorde conteúdo puder realizar as operações exigidas sozinho.
Alternativamente, o habilitador de conteúdo ajusta o parâme-tro pfAutomatic 540 em FALSE se ele precisar que a aplicaçãode meios realize qualquer porção da operação exigida. Porexemplo, se o habilitador de conteúdo for inicializado paraobter atualizações através de um serviço de atualização, a-justar pfAutomatic 540 em TRUE indica que o habilitador deconteúdo deve lidar com as interações com o serviço de atua-lização internamente de modo que o usuário final não tem queser desnecessariamente incomodado durante as interações. Seo habilitador de conteúdo for inicializado para obter atua-lizações por intermédio de uma página da Rede, ajustar pfAu-tomatic 540 em FALSE indica que o habilitador de conteúdoirá expor o URL da página da Rede à aplicação de modo que aaplicação de meios pode abrir uma janela de navegador e na-vegar para o URL especificado.
Um método Habilitar 510 é chamado pela aplicaçãode meios para automaticamente realizar as operações especi-ficas para o tipo de objeto habilitador de conteúdo. 0 méto-do Habilitar 508 é chamado pela aplicação de meios quando ousuário final autorizar a aplicação de meios a realizar asoperações apresentadas na interface de usuário.
Um método MonitorEnable 512 é chamado pela aplica-ção de meios se a aplicação de meios desejar ser notificadaquando a operação for concluída e/ou esperar para receber ostatus em progresso. O habilitador de conteúdo enfileira umevento MEEnablerCompleted em sua interface IMFMediaEventGe-nerator.
Um método Cancelar 514 é chamado pela aplicação demeios para cancelar uma operação pendente.
Mediante abstração das operações através dessasinterfaces, uma aplicação de meios pode gravar código comumpara lidar com diversas etapas para obtenção de um ambienteconfiável. Além disso, conteúdo futuro pode ser automatica-mente conectado sob a aplicação de meios desde que as exi-gências para o conteúdo futuro possam ser abstraídas dentrodessa interface. Uma seqüência de chamada exemplar para umhabilitador de conteúdo é descrita agora utilizando as APIsdisponíveis através do software MICROSOFT® WINDOWS® Update.
Uma seção de instalação é criada ativando-se IUpdateSession.
Um objeto buscador de atualização é criado chamando-se IUp-dateSession::CreateUpdateSearcher. 0 objeto buscador de atu-alização é então usado para procurar a atualização identifi-cada pelo GUID mediante ação de chamar IUpdateSear-cher::Search. Um objeto transferir é então criado medianteação de chamar
IUpdateSession::CreateUpdateDownloader. Atualiza-ções específicas podem ser transferidas mediante passagemdos resultados de busca para o IUpdateDownloader. As atuali-zações podem ser transferidas para o dispositivo de computa-ção mediante ação de chamar IUpdateDownloader::Download. Umobjeto instalar é criado mediante ação de chamar IUpdateSes-sion::CreateUpdateInstaller. A compilação de atualizaçõestransferidas a serem instaladas pode ser passada ao chamarIUpdateInstaller::Install. 0 método Instalar então instalaas atualizações no dispositivo de computação.
A Figura 6 é um fluxograma ilustrando um progressode atualização automática sob demanda exemplar para obtençãode um ambiente confiável. Em visão geral, o ambiente prote-gido garante que o ambiente é confiável antes de permitirque o conteúdo protegido seja processado. 0 processador sobdemanda 600 começa no bloco 602, onde uma aplicação de meiosestá tentando processar o conteúdo protegido. 0 processamen-to continua no bloco de decisão 604.
No bloco de decisão 604, é feita uma determinaçãono sentido de se existe um componente de núcleo não-confiável carregado. Isso pode ocorrer se um componente demodo-núcleo não-assinado for instalado no dispositivo decomputação. Como o componente de núcleo não-confiável pode-ria potencialmente acessar qualquer coisa no dispositivo decomputação, incluindo o conteúdo protegido, o componente denúcleo não-confiável é manejado antes de o conteúdo protegi-do ser processado. Se existir um componente de núcleo não-confiável carregado, o processamento continua no bloco dedecisão 605. Caso contrário, o processamento continua nobloco de decisão 610.
No bloco de decisão 605, uma interface de usuárioé apresentada ao usuário final pela aplicação de meios. Se ousuário final não autorizar o processo 600 a lidar com ocomponente não-confiável, o processamento continua no bloco624. Caso contrário, o processamento continua no bloco 606.
No bloco 606, o componente de núcleo não-confiávelé processado. O componente de núcleo não-confiável pode serdesinstalado ou atualizado com uma versão assinada. Instru-ções de desinstalar podem ser obtidas através de uma páginade ajuda em um sitio da Rede. Uma versão assinada atualizadapode ser obtida utilizando-se um serviço de atualização, umcentro de transferência, um sitio de terceiros pertencendoao publicador do componente. Se o componente de núcleo não-confiável tiver sido revogado, a entrada de lista de revoga-ção global que revoga o núcleo não-confiável identificará umidentificador de pacote. Esse identificador de pacote é en-tão solicitado a partir do serviço de atualização. Contudo,se a lista de revogação global não identificar um identifi-cador de pacote para o componente de núcleo não-confiável ouo componente de núcleo não-confiável não é identificado nalista de revogação global, um mecanismo de link pode ser u-sado para determinar como lidar com o componente de núcleonão-confiável. Uma modalidade para um mecanismo de link édescrito abaixo em conjunto com a Figura 10. O mecanismo delink pode então especificar um identificador de pacote, umapágina da Rede onde uma nova versão pode ser transferida,uma página da Rede que descreve instruções de desinstalar, esemelhante. O processo para lidar com o componente de núcleonão-confiável utiliza o conjunto uniforme de APIs descritoacima na Figura 5.
Após isso ocorrer, o processo continua para o blo-co de decisão 608, onde é feita uma verificação para deter-minar se o componente de núcleo não-confiável foi processadode forma bem-sucedida.
Se o componente de núcleo não-confiável foi pro-cessado de forma bem-sucedida, o processamento continua nobloco de decisão 610. Caso contrário, o processamento conti-nua no bloco 624.
No bloco de decisão 610, é feita uma determinaçãono sentido de se a lista de revogação global atual não éconfiável. Isso pode ocorrer se a lista de revogação globalfor mais antiga do que a versão especificada para o conteúdoprotegido, se violação ocorreu na lista de revogação global,e semelhante. Se a lista de revogação global não for confiá-vel, o processamento continua no bloco 611. Caso contrário,o processamento continua no bloco de decisão 616.
No bloco de decisão 611, uma interface de usuárioé apresentada ao usuário final pela aplicação de meios. Se ousuário final não autorizar que o processo 600 atualize alista de revogação global, o processamento continua no bloco624. Caso contrário, o processamento continua no bloco 612.
No bloco 612, a lista de revogação global é atua-lizada. Resumidamente, descrita em detalhe em conjunto comas Figuras 5 e 7, a lista de revogação global atual é subs-tituída com a versão especificada ou uma versão superior àversão especificada, se disponível. Após tentar atualizar alista de revogação global, é feita uma verificação (bloco dedecisão 614) para determinar se a atualização da lista derevogação global foi bem-sucedida. Se ela foi bem sucedida,o processamento continua no bloco de decisão 616. Caso con-trário, o processamento continua no bloco 624.
No bloco de decisão 616, é feita uma determinaçãono sentido de se um componente é revogado. Resumidamente,descrito em detalhe abaixo em conjunto com as Figuras 5 e 8,quando o usuário final autoriza a aplicação de meios a obteros novos componentes (isto é, atualizados), a aplicação demeios por intermédio das APIs uniformes pode automaticamenterenovar os componentes sem intervenção adicional pelo usuá-rio final. Os componentes atualizados também são, em segui-da, referidos como componentes de renovação. No passado, eraenviada ao usuário final uma notificação de que os componen-tes precisavam de atualização e para tentar outra vez maistarde. Isso ocorreria para cada componente que precisasseser atualizado. Ao contrário, de acordo com o mecanismo deatualização automática da presente invenção, quando o usuá-rio final autoriza a aplicação de meios a processar o conte-údo, cada um dos componentes necessários é automaticamenteatualizado sem qualquer intervenção de usuário adicional. Sehouver um componente que é revogado, o processamento conti-nua no bloco 618. Caso contrário, o processamento continuano bloco 622. Embora não seja mostrado, o processo 600 podeter um Ioop ou outra lógica para atualizar cada componentenecessário que foi identificado como revogado na lista derevogação global.
No bloco 618, o componente, ou os componentes quesão identificados como revogados são renovados. Resumidamen-te, descrito em detalhe abaixo em conjunto com as Figuras 5e 8, a renovação do componente(s) ocorre com interação míni-ma com o usuário final. 0 usuário final experimentará umbreve retardo antes de o conteúdo protegido começar o pro-cessamento continuamente desde que as renovações sejam bem-sucedidas. Após tenta renovar o componente(s), é feita umaverificação (bloco de decisão 620) para determinar se o com-ponente (s) revogado foi renovado de forma bem-sucedida. Seeles foram renovados de forma bem-sucedida, o processamentocontinua no bloco 622 para permitir que a aplicação de meiosprocesse o conteúdo protegido. Caso contrário, o processa-mento continua no bloco 624.
No bloco 624, um alerta é enviado para a aplicaçãode meios para que a aplicação de meios tome conhecimento doporque que o conteúdo protegido não pôde ser processado. 0processamento então prossegue para o fim.
A Figura 7 é um fluxograma ilustrando um processoexemplar 700 para atualizar uma nova lista de revogação glo-bal no dispositivo de computação mostrado na Figura 1. 0processo 700 começa no bloco 702, onde o ambiente protegidoverifica se a versão solicitada ou se uma versão superior dalista de revogação global foi previamente transferida. Comoserá descrito abaixo em conjunto com a Figura 9, um processode atualização automática, periódica pode ser configuradopara transferir periodicamente novas listas de revogaçãoglobal. A lista (s) de revogação global recentemente transfe-rida pode ser salva no dispositivo de computação como umadas listas de revogação global, pendentes. Essas listas derevogação global pendentes são verificadas no sentido de sea nova versão da lista de revogação global já foi transferi-da. 0 processamento então prossegue para o bloco de decisão 704.
No bloco de decisão 704, é feita uma determinaçãono sentido de se a lista de revogação global solicitada ouuma versão superior da lista de revogação global já estádisponível no dispositivo de computação. Além disso, para alista (s) de revogação global pendente, é feita uma verifica-ção no sentido de se uma lista de revogação global está em-pacotada com o conteúdo protegido. Se a lista de revogaçãoglobal desejada não estiver disponível, o processamento con-tinua no bloco 706. Caso contrário, o processamento continuano bloco de decisão 708. No bloco 706, a lista de revogaçãoglobal solicitada ou uma lista de revogação global superioré obtida. Um objeto habilitador de conteúdo é criado e ini-cializado com um identificador para uma lista de revogaçãoglobal. Uma opção dentro do ambiente protegido especifica sea lista de revogação global está atualizada para a versãosolicitada ou atualizada para a versão mais alta da lista derevogação global. Atualização utilizando a versão solicitadaé vantajosa porque o conteúdo protegido quase que certamentepoderá ser processado após ocorrer a atualização. Atualiza-ção utilizando uma versão superior da lista de revogaçãoglobal pode fazer com que o conteúdo protegido não funcione,mas proporciona a mais elevada segurança para os proprietá-rios de conteúdo. Ela também minimiza o número de vezes emque a lista de revogação global precisa ser atualizada. Aaplicação de meios pode chamar uma ou mais das APIs unifica-das descritas acima em conjunto com a Figura 5. Por exemplo,se "AUTOMATIC" for habilitada, chamar o método de habilita-ção 510 automaticamente instala a lista de revogação globalidentificada pelo identificador dentro da lista de revogaçãoglobal. Se o identificador especifica um identificador depacote, o identificador é enviado para um serviço de atuali-zação para obter a lista de revogação global. Se o identifi-cador especifica um URL singular, o URL pode navegar para umcentro de transferência, uma página da Rede de ajuda, ou se-melhante. Em uma modalidade, a instalação automática podeser conseguia por intermédio do software MICROSOFT®WINDOWS®. Para essa modalidade, quando uma nova lista de re-vogação global é publicada, a lista de revogação global étransferida para o serviço de atualização dentro de uma ca-tegoria especificada, tal como renovações de meios. A cate-goria especificada pode selecionar as diferentes versões dalista de revogação global com base no identificador. Dessemodo, quando a opção é selecionada para obter a versão maisalta da lista de revogação global, o serviço de atualizaçãotransfere a última lista de revogação global que foi trans-ferida. Em uma modalidade, o pacote de lista de revogaçãoglobal transferido para o serviço de atualização conterá alista de revogação global mais recente. Em outra modalidade,um pacote de configuração de lista de revogação global podeser hospedado em um centro de transferência. O centro detransferência aceita os parâmetros de linhas de comando eutiliza os parâmetros de linhas de comando para instalar umaversão correspondente da lista de revogação global. Embora opacote de configuração de lista de revogação global possaconter múltiplas listas de revogação global, uma lista derevogação global é selecionada para instalação com base naopção(ões) de linhas de comando. O processamento continua nobloco de decisão 708.
No bloco de decisão 708, o parâmetro de reinicia-lização forçada é analisado para determinar se uma reinicia-lização é necessária. Em uma modalidade, a reinicializaçãoforçada da lista de revogação global nova é analisada com oparâmetro de reinicialização forçada na lista de revogaçãoglobal atual. Se a comparação diferir, o processamento con-tinua no bloco 710. Caso contrário, o processamento continuano bloco de decisão 714.
No bloco 710, os componentes que são necessitadospela aplicação de meios, e que foram revogados, são renova-dos. 0 processo de renovação é descrito abaixo em conjuntocom a Figura 8. Após os componentes serem renovados, o pro-cessamento continua no bloco 712.
No bloco 712, a nova lista de revogação global ésalva como lista de revogação global atual e o dispositivode computação passa por uma reinicialização. Após a reinici-alização, o PEAuth utiliza a nova lista de revogação globalao carregar os componentes. 0 processamento está completo.
No bloco de decisão 714, é feita uma determinaçãono sentido de se a nova lista de revogação global especificaa reinicialização do processo protegido. Essa determinaçãopode se basear no parâmetro reiniciar processo na nova listade revogação global e na lista de revogação global atual. Seos parâmetros reiniciar processo diferirem, o processamentocontinua no bloco 716. Caso contrário, o processamento estácompleto.
No bloco 716, os componentes que são necessitadospela aplicação de meios, e que foram revogados, são renova-dos. O processo de renovação é descrito abaixo em conjuntocom a Figura 8. Após os componentes serem renovados, o pro-cessamento continua no bloco 718.
No bloco 718, os processos protegidos são reinici-ados. Como explicado acima, reiniciar os processos protegi-dos extermina o componente de modo-usuário malicioso dentrodo processo protegido. Então, quando o processo protegido éreiniciado, o componente de modo-usuário relacionado na lis-ta de revogação global nova é impedido de carregar. O pro-cesso 700 para atualizar a lista de revogação global é entãoconcluído.
A Figura 8 é um fluxograma ilustrando um processoexemplar 800 para renovar o componente(s) legível por compu-tador que é adequado para uso no processo de atualização au-tomática sob demanda, mostrado na Figura 6. 0 processo 800 érealizado para cada um dos componentes necessitados pela a-plicação de meios que foram identificados como sendo revoga-dos na lista de revogação global. Contudo, ao usuário finalpode ser apresentada apenas uma vez com a interface de usuá-rio perguntando se o usuário pretende realizar uma atualiza-ção automática. O processo 800 começa no bloco 802, ondecomponentes renovados pendentes são verificados para deter-minar se os componentes renovados necessários já foramtransferidos e instalados. Resumidamente, descritos abaixoem conjunto com a Figura 9, os componentes renovados penden-tes podem ter sido previamente transferidos por um processoperiódico de atualização automática. 0 processamento conti-nua no bloco de decisão 804.
No bloco de decisão 804, é feita uma determinaçãono sentido de que o componente revogado já está disponível.
Se o componente revogado tiver sido previamente transferido,o processamento continua no bloco 814. Caso contrário, oprocessamento continua no bloco 806.
No bloco 806, um objeto habilitador de conteúdo écriado para o componente revogado. 0 objeto habilitador deconteúdo é criado pelo componente de canalização de meios222. 0 objetivo habilitador de conteúdo é inicializado comum identificador para o componente revogado. 0 identificadorpode ser um valor numérico associado ao componente revogadoou um certificado do componente revogado. Para um certifica-do revogado, o habilitador de conteúdo é inicializado com ovalor numérico da chave pública do certificado e um nome dearquivo do componente que está sendo revogado. 0 mecanismode link pode então redirecionar com base em ambos, o valornumérico e/ou o certificado. 0 mecanismo de link pode teruma entrada separada para cada componente assinado pelo cer-tificado revogado. 0 processamento continua no bloco 808.
No bloco 808, o método de habilitação do objetohabilitador de conteúdo é chamado. Esse método é realizadopela aplicação de meios 212 após o componente de canalizaçãode meios 222 passar o objeto habilitador de conteúdo para aaplicação de meios. A aplicação de meios também pode usaroutras APIs uniformes, discutidas acima em conjunto com aFigura 5, para obter informação adicional se desejado. 0 i-dentificador no objeto habilitador de conteúdo identifica umpacote de renovação disponível no servido de atualização. 0processamento continua no bloco 810.
No bloco 810, um objeto de atualização é criado eenviado para o serviço de atualização. 0 método de habilita-ção do objeto habilitador de conteúdo é responsável pelacriação do objeto de atualização. 0 objeto de atualizaçãoinclui o identificador para o componente revogado. Quando oserviço de atualização recebe o objeto de atualização, eleprocura seus pacotes no sentido do pacote que tem o identi-ficador especificado. Uma seqüência de chamada exemplar édescrita acima em conjunto com a Figura 5. 0 processamentocontinua no bloco 812.
No bloco 812, a aplicação de meios recebe o compo-nente renovado por intermédio do método de habilitação. 0processamento continua no bloco 814.
No bloco 814, o componente revogado armazenado nodispositivo de computação é substituído com o componente re-novado. Isso pode requerer a sobrescrição do componente re-vogado com o componente renovado. 0 processamento continuano bloco 816.
No bloco 816, o componente renovado é carregado demodo que a aplicação de meios pode usar o componente paraseu processamento. 0 processo 800 para renovar um componenteestá então completo. Como mencionado acima, o processo 800 érealizado para cada componente que é necessitado pela apli-cação de meios e que foi revogado.
A Figura 9 é um diagrama de fluxo ilustrando umprocesso periódico exemplar 900 para atualização do ambienteconfiável. Em uma modalidade, o processo periódico 900 podeutilizar um mecanismo de atualização de software existente,tal como o software MICROSOFT® WINDOWS® Update fabricado pe-Ia MICROSOFT Corp. de Redmond, WA. O processo 900 começa nobloco 902, onde um evento predeterminado é recebido para si-nalizar que uma verificação deve ser realizada no sentido deatualizações para o ambiente confiável. O evento predetermi-nado pode ser especificado como um tempo especifico, uma a-ção especifica (por exemplo, na inicialização), ou semelhan-te. Antes do evento predeterminado, uma opção em um serviçode cliente associado ao mecanismo de atualização de softwareé configurada para controlar o comportamento de atualizaçãoautomática para o processo periódico. Por exemplo, a opçãopode especificar para: 1) automaticamente transferir e ins-talar a lista e revogação global mais recente e todos oscomponentes renovados identificados dentro da lista; 2)transferir a lista de revogação global mais recente e oscomponentes renovados identificados, mas esperar para insta-lar; 3) enviar uma notificação de que uma nova lista de re-vogação global e/ou componentes renovados estão disponíveispara a transferência, mas não para transferir ou instalar osmesmos; ou 4) desligar a renovação periódica. Outras opçõespodem ser adicionadas àquelas identificadas acima. Como ex-plicado acima, os pacotes de renovação para componentes re-novados são transferidos para um servidor que é configuradopara prover o mecanismo de atualização de software. Em ge-ral, os pacotes de renovação para a atualização periódicasão idênticos àqueles para a atualização sob demanda. Contu-do, os dois pacotes podem diferir no caso da lista de revo-gação global. O pacote de atualização periódica instala anova lista de revogação global em um local temporário, aopasso que o pacote de atualização sob demanda substitui alista de revogação global atual com a lista de revogação a-tualizada. 0 processamento continua no bloco 904.
No bloco 904, um serviço de cliente no dispositivode computação se conecta a um servidor de atualização confi-gurado para implementar o serviço de atualização de softwa-re. Tipicamente, essa conexão é feita através da Internet. 0serviço de cliente e o serviço de atualização se comunicamentre si de acordo com a opção especificada. 0 processamentocontinua no bloco de decisão 906.
No bloco de decisão 906, o servidor de cliente en-via uma solicitação ao servidor para verificar se o servidortem disponível uma nova lista de revogação global. Na moda-lidade utilizando software MICROSOFT® WINDOWS® Update, alista de revogação global mais recente pode ser publicadacomo uma Atualização Recomendada. Se a lista de revogaçãoglobal mais recente foi previamente transferida, o processa-mento continua no bloco de decisão 912. Caso contrário, oprocessamento continua no bloco 908.No bloco 908, com base nas opções especificadas, oserviço de cliente realiza as ações desejadas. Por exemplo,se for selecionada a opção 4 (enviar notificação) , o serviçode cliente envia uma notificação que é exibida no dispositi-vo de computação. A notificação permite que o usuário finalespecifique se ignora a atualização, transfere e instala, ouapenas transfere. A opção de transferir requer copiar o pa-cote e renovação como arquivo para um dispositivo de armaze-namento. A opção instalar requer desempacotar o pacote derenovação em itens individuais (isto é, GRL especificado,componentes especificados). Tipicamente, o serviço de clien-te é instalado com uma opção padrão de 1 a qual é a opçãomenos intrusiva para o usuário final. Supondo, que a opção 1foi selecionada, a lista de revogação global mais recente éempurrada para o dispositivo de computação. 0 serviço decliente então invoca um instalador confiável no dispositivode computação para instalar a lista de revogação global maisrecente. 0 processamento continua no bloco 910.
No bloco 910, a lista de revogação global mais re-cente é salva como uma lista de revogação global pendente.
Como pode ser necessário reinicializar o dispositivo de com-putação quando uma nova lista e revogação global é atualiza-da, a nova lista de revogação global é salva sem atualizaçãodo dispositivo de computação com a nova lista de revogaçãoglobal. A lista de revogação global nova não é ativada atéque o usuário final tente processar algum conteúdo protegidoque solicita uma lista de revogação global mais recente doque a lista de revogação global ativa atual. 0 dispositivode computação pode ser configurado para ter uma lista de re-vogação global pendente e uma lista de revogação ativa. Comessa configuração, a revogação global pendente atual é subs-tituída com a lista de revogação global mais recente que éempurrada para o dispositivo de computação. Em outra modali-dade, o dispositivo de computação pode ser configurado paramanter um número predefinido de listas de revogação globalpendentes. Com essa configuração, a lista de revogação glo-bal mais recente que é empurrada para o dispositivo de com-putação é adicionada como outra lista de revogação globalpendente. É desejável armazenar a lista(s) de revogação glo-bal pendente em um local no dispositivo de computação queleu e gravou acesso para todos os usuários do dispositivo decomputação. Isso permite aos não-administradores a capacida-de de atualizar a lista de revogação global se necessário.
Ao salvar a lista de revogação global recentemente transfe-rida como uma lista de revogação pendente em vez de automa-ticamente atualizar a versão da lista de revogação global,um usuário não terá a experiência infeliz de ser incapaz deprocessar o conteúdo protegido que era previamente processá-vel. Portanto, o usuário final não tem que ser desnecessari-amente incomodado. 0 processamento continua no bloco de de-cisão 912.
No bloco de decisão 912, é feita uma determinaçãono sentido de se os componentes renovados devem ser transfe-ridos. Se a opção for selecionada para não transferir o com-ponente renovado, o processamento está completo. Caso con-trário, o processamento continua no bloco 914.No bloco 914, o serviço de cliente envia uma soli-citação para o pacote mais recente com os componentes reno-vados associados à lista de revogação global mais recente. 0processamento continua no bloco 916.
No bloco 916, o dispositivo de computação recebe opacote identificado. O processamento continua no bloco 918.
No bloco 918, os componentes renovados, transferi-dos, são salvos como componentes pendentes em dispositivo dearmazenamento que pode ser acessado pelo dispositivo de com-putação. PEAuth pode então carregar esses componentes legí-veis por computador renovados ao realizar o processo sob de-manda mostrado na Figura 7 sem precisar transferir os compo-nentes legíveis por computador. 0 processamento está entãoconcluído.
A Figura 11 é um diagrama de blocos de uma arqui-tetura exemplar implementando o processo periódico. A arqui-tetura exemplar inclui um servidor 1102 e o dispositivo decomputador 100 conectado através da Internet 1104. 0 servi-dor 1102 inclui um serviço de atualização de servidor 1110 edispositivo de armazenamento 1112 para as versões atualiza-das dos componentes revogados e listas de revogação global,recentemente publicadas. 0 dispositivo de computação 100 in-clui um serviço de atualização automática 1120 e um instala-dor 1122. O serviço de atualização automática se comunicacom o serviço de atualização de servidor para obter os com-ponentes identificados. Os componentes identificados são en-tão instalados no dispositivo de computação com o instalador1122 como componentes pendentes 1124.O processamento realizado nas Figuras 6-9 utilizaa lista de revogação global descrita na Figura 3. Contudo, oprocessamento também pode ser realizado utilizando outrosformatos de lista de revogação. Por exemplo, aplicações deMeios de Direitos Digitais (DRM) utilizam uma lista de revo-gação de componente de estilo Cardea e uma lista de revoga-ção de componente App. Para esses outros formatos, o meca-nismo de atualização automática da presente invenção podeincorporar um mecanismo de link. 0 mecanismo de link sendoconfigurado para associar um identificador a um localizadorde recursos uniformes (URL) onde um componente atualizadopode ser transferido, ou uma lista de revogação nova podeser transferida. A Figura 10 ilustra um mecanismo de linkexemplar para associar um identificador a um URL. Nessas ou-tras aplicações de meios, seus sistemas de consulta não su-portam o tipo de informação necessitada pelo mecanismo deatualização automática da presente invenção. Portanto, asAPIs de habilitador de conteúdo são configuradas para rece-ber qualquer tipo de identificador e distinguir se ele estáassociado a um serviço de atualização, um sitio da Rede deterceiros, ou uma página de ajuda. As aplicações de meiosque utilizam essas outras listas de revogação incluem códigoque invoca o mecanismo de atualização automática da presenteinvenção. Então, em vez de passar um GUID, a aplicação demeios passa seu próprio tipo de identificador, tal como umvalor numérico ou uma chave pública. A canalização de meiosconstrói um FWLINK utilizando o identificador. O processoentão consulta o identificador singular por intermédio do mecanismode link para obter o URL associado. A tabela 1000 ilustrauma modalidade para um mecanismo de link. A tabela 1000 in-clui duas colunas: uma coluna de identificador 1002 e umacoluna de URL 1004. Em geral, o identificador identificasingularmente um componente ou lista de revogação. O identi-ficador inclui uma porção de URL de sitio da Rede 1006 quesuporta um mecanismo FWLINK 1008. 0 identificador incluitambém um ID de link 1012 ou valor numérico 1010 para asso-ciar com o componente singular ou lista de revogação. A co-luna de URL 1004 armazena um URL para um sitio da Rede ondeo componente identificado pode ser instalado, instruções deajuda podem ser obtidas, e semelhantes. Se o URL incluiGUID={someguid} como um parâmetro de seqüência de consulta,o mecanismo de atualização automática tenta localizar o com-ponente por intermédio do serviço de atualização usando oGUID especificado. Se o componente não estiver localizado noserviço de atualização, o mecanismo de atualização automáti-ca exibe o URL ao usuário final. O banco de dados FWLINK en-tão certifica que os URLs para os componentes disponíveispor intermédio do serviço de atualização sejam configuradoscom um GUID como parâmetro opcional. Em uma modalidade, umalista de revogação global específica pode ser especificadautilizando um parâmetro de seqüência de consulta. 0 mecanis-mo de link é então povoado de modo que o FWLINK aponta paraum GUID que representa um pacote de configuração para a ver-são especificada da lista de revogação global utilizando o segundoparâmetro de seqüência de consulta. Em operação, quando o objeto ha-bilitador de conteúdo é inicializado com o valor numérico de listade revogação global (isto é, uma seqüência fixa), a versãoda lista de revogação global é especificada utilizando parâ-metros de seqüência de consulta. Quando o habilitador deconteúdo realiza a operação FWLINK, ele detecta o link espe-cificando um GUID. Então, o habilitador de conteúdo transfe-re e instala o componente com aquele GUID utilizando o ser-viço de atualização.
Embora modalidades e aplicações exemplares tenhamsido ilustradas e descritas, deve ser entendido que a inven-ção não é limitada à configuração e recursos, precisos, aquidescritos. Diversas modificações, alterações e variações e-videntes para aqueles versados na técnica podem ser feitasno arranjo, operação, e detalhes das modalidades aqui reve-ladas sem se afastar do escopo da invenção reivindicada.

Claims (18)

1. Método implementado por computador,CARACTERIZADO por compreender:verificar periodicamente se uma lista de revogaçãonova foi publicada em um serviço de atualização;durante a verificação periódica, ao receber umaindicação a partir do serviço de atualização de que existeuma atualização recomendada para a nova lista de revogação,transferir a nova lista de revogação e salvar a nova listade revogação como uma lista de revogação pendente, a listade revogação pendente estando disponível para atualizaçãosob demanda quando conteúdo protegido solicita um nível deproteção superior no dispositivo de computação do que a pro-teção provida por um nível atual de proteção no dispositivode computação.
2. Método implementado por computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que a ve-rificação periódica ocorre quando o dispositivo de computa-ção é reinicializado.
3. Método implementado por computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que a novalista de revogação substitui uma lista de revogação pendenteatual.
4. Método implementado por computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que a lis-ta de revogação pendente é salva como uma de uma pluralidadede listas de revogação pendentes que foram previamentetransferidas.
5. Método implementado por computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que o ser-viço de atualização compreende serviço de atualização doMICROSOFT® WINDOWS®.
6. Método implementado por computador, de acordocom a reivindicação 1, CARACTERIZADO por compreender aindatransferir uma versão atualizada de cada componente relacio-nado como um componente revogado dentro da nova lista de re-vogação no recebimento da indicação.
7. Método implementado por computador, de acordocom a reivindicação 6, CARACTERIZADO pelo fato de que a lis-ta de revogação compreende uma lista de revogação de certi-ficação de estilo Cardea (CRL) e cada componente revogado éidentificado com um valor numérico de certificado, o valornumérico de certificado sendo usado para identificar um lo-cal no serviço de atualização a partir de onde se devetransferir a versão atualizada.
8. Método implementado por computador, de acordocom a reivindicação 6, CARACTERIZADO pelo fato de que a Iis-ta de revogação compreende uma lista de revogação de certi-ficação App (CRL), e cada componente revogado é identificadocom uma chave pública, a chave pública sendo usada para i-dentificar um local no serviço de atualização a partir deonde se deve transferir a versão atualizada.
9. Método implementado por computador, de acordocom a reivindicação 6, CARACTERIZADO pelo fato de que o com-ponente revogado é identificado por um GUID, o GUID sendousado para identificar um local no serviço de atualização apartir de onde se deve instalar a versão de atualização.
10. Método implementado por computador, de acordocom a reivindicação 6, CARACTERIZADO pelo fato de que o com-ponente revogado é identificado por um valor numérico docomponente revogado.
11. Método implementado por computador, de acordocom a reivindicação 6, CARACTERIZADO pelo fato de que o com-ponente revogado é identificado por um certificado do compo-nente revogado.
12. Método implementado por computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que o ser-viço de atualização provê uma categoria associada às aplica-ções de meios e novas listas de revogação são publicadasdentro da categoria.
13. Método implementado por computador, de acordocom a reivindicação 12, CARACTERIZADO pelo fato de que vá-rios pacotes são publicados dentro da categoria, cada pacotesendo associado a uma das novas listas de revogação e inclu-indo versões atualizadas de componentes que são relacionadoscomo revogados na lista de revogação associada.
14. Meio de armazenamento legível por computadortendo componentes executáveis por computador, CARACTERIZADOpor compreender:um serviço de atualização automática configuradopara periodicamente verificar se uma nova lista de revogaçãofoi publicada em um serviço de atualização por intermédio deuma rede;um componente de instalador configurado para ins-talar a nova lista de revogação em um dispositivo de compu-tação após transferir a nova lista de revogação a partir doserviço de atualização; eum componente de armazenamento configurado paraarmazenar a nova lista de revogação instalada como uma listade revogação pendente que está disponível para atualizaçãode um dispositivo de computação até um nível de proteção es-pecificado pela nova lista de revogação se o processamentodo conteúdo protegido demandar o nível de proteção.
15. Meio de armazenamento legível por computador,de acordo com a reivindicação 14, CARACTERIZADO pelo fato deque o serviço de atualização automática é configurado parase comunicar com um serviço de atualização de servidor atra-vés da Internet.
16. Meio de armazenamento legível por computador,de acordo com a reivindicação 15, CARACTERIZADO pelo fato deque o serviço de atualização de servidor compreende serviçode atualização MICROSOFT® WINDOWS®.
17. Meio de armazenamento legível por computador,de acordo com a reivindicação 14, CARACTERIZADO pelo fato deque o componente de armazenamento é configurado adicional-mente para armazenar a nova lista de revogação instalada co-mo uma de uma pluralidade de listas de revogação pendentesque estão disponíveis para atualizar o dispositivo de compu-tação para um nível de proteção correspondente.
18. Dispositivo de computação, CARACTERIZADO porcompreender:um processador;uma memória para a qual vários componentes execu-táveis por computador são carregados, a pluralidade de com-ponentes compreendendo:um serviço de atualização automática configuradopara periodicamente verificar se uma nova lista de revogaçãofoi publicada em um serviço de atualização por intermédio deuma rede;um componente de instalador configurado para ins-talar a nova lista de revogação em um dispositivo de compu-tação após transferir a nova lista de revogação a partir doserviço de atualização; eum componente de armazenamento configurado paraarmazenar a nova lista de revogação instalada como uma listade revogação pendente que está disponível para atualizar umdispositivo de computação para um nível de proteção especi-ficado pela nova lista de revogação se o processamento doconteúdo protegido demandar o nível de proteção.
BRPI0612865-3A 2005-07-19 2006-07-14 Método implementado por computador, meio de armazenamento legível por computador edispositivo de computação BRPI0612865B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/184,555 US7590841B2 (en) 2005-07-19 2005-07-19 Automatic update of computer-readable components to support a trusted environment
US11/184.555 2005-07-19
PCT/US2006/027251 WO2007011667A2 (en) 2005-07-19 2006-07-14 Automatic update of computer-readable components to support a trusted environment

Publications (2)

Publication Number Publication Date
BRPI0612865A2 true BRPI0612865A2 (pt) 2010-11-30
BRPI0612865B1 BRPI0612865B1 (pt) 2019-10-01

Family

ID=37669367

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0612865-3A BRPI0612865B1 (pt) 2005-07-19 2006-07-14 Método implementado por computador, meio de armazenamento legível por computador edispositivo de computação

Country Status (10)

Country Link
US (1) US7590841B2 (pt)
EP (1) EP1905184B1 (pt)
JP (1) JP5027807B2 (pt)
KR (1) KR101238572B1 (pt)
CN (1) CN101310472B (pt)
AU (1) AU2006270273B2 (pt)
BR (1) BRPI0612865B1 (pt)
CA (1) CA2612631C (pt)
NO (1) NO20076576L (pt)
WO (1) WO2007011667A2 (pt)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US8074287B2 (en) * 2004-04-30 2011-12-06 Microsoft Corporation Renewable and individualizable elements of a protected environment
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
WO2008042243A2 (en) * 2006-09-29 2008-04-10 Audible Methods and apparatus for customized content delivery
US8584212B1 (en) 2007-11-15 2013-11-12 Salesforce.Com, Inc. On-demand service security system and method for managing a risk of access as a condition of permitting access to the on-demand service
US8875259B2 (en) * 2007-11-15 2014-10-28 Salesforce.Com, Inc. On-demand service security system and method for managing a risk of access as a condition of permitting access to the on-demand service
US9253536B2 (en) * 2009-03-18 2016-02-02 Microsoft Technology Licensing, Llc Updating data-consuming entities
US9135091B2 (en) 2009-04-03 2015-09-15 Microsoft Technology Licensing, Llc Communicating events or data between application components
US8205257B1 (en) * 2009-07-28 2012-06-19 Symantec Corporation Systems and methods for preventing threats originating from a non-process based component hosted by a trusted process
US20110185179A1 (en) * 2009-08-26 2011-07-28 Viswanathan Swaminathan System And Method For Digital Rights Management With A Lightweight Digital Watermarking Component
EP2360581A1 (en) 2010-01-18 2011-08-24 Thomson Licensing Method, system and device for execution of a software application
KR20130114672A (ko) 2011-01-19 2013-10-17 인터내셔널 비지네스 머신즈 코포레이션 소프트웨어를 업데이트하는 장치 및 방법
US10282221B2 (en) 2011-12-09 2019-05-07 International Business Machines Corporation Controlling usage of virtual disks before their attachment to virtual machines
US9727326B2 (en) * 2013-03-15 2017-08-08 Apple Inc. Providing customized notifications for security software updates
US9143565B2 (en) 2013-05-30 2015-09-22 Opentv, Inc. Synchronizing an application on a companion device
US9298923B2 (en) * 2013-09-04 2016-03-29 Cisco Technology, Inc. Software revocation infrastructure
WO2016105969A1 (en) * 2014-12-26 2016-06-30 Mcafee, Inc. Trusted updates
CN106843922B (zh) * 2016-12-13 2020-08-04 青岛海信移动通信技术股份有限公司 一种程序的更新方法和装置
US10445503B2 (en) 2017-07-14 2019-10-15 Google Llc Secure persistent software updates

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5373561A (en) * 1992-12-21 1994-12-13 Bell Communications Research, Inc. Method of extending the validity of a cryptographic certificate
US6367013B1 (en) * 1995-01-17 2002-04-02 Eoriginal Inc. System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents
US5615268A (en) * 1995-01-17 1997-03-25 Document Authentication Systems, Inc. System and method for electronic transmission storage and retrieval of authenticated documents
US6128740A (en) 1997-12-08 2000-10-03 Entrust Technologies Limited Computer security system and method with on demand publishing of certificate revocation lists
EP1096446A3 (en) * 1999-11-01 2004-02-11 Citicorp Development Center, Inc. Method and system for secure communication between a self-service financial transaction terminal and a remote operator interface
FR2834406A1 (fr) * 2001-12-28 2003-07-04 Thomson Licensing Sa Procede de mise a jour d'une liste de revocation de cles, d'appareils ou de modules non-conformes dans un systeme de diffusion securise de contenu
JP4474845B2 (ja) 2002-06-12 2010-06-09 株式会社日立製作所 Crl発行通知機能付き認証基盤システム
JP2004056635A (ja) * 2002-07-23 2004-02-19 Hitachi Ltd 証明書失効リストの更新装置、システム及び方法
US20040205345A1 (en) * 2003-04-11 2004-10-14 Ripley Michael S. System for identification and revocation of audiovisual titles and replicators

Also Published As

Publication number Publication date
EP1905184A4 (en) 2016-03-30
NO20076576L (no) 2008-02-18
US7590841B2 (en) 2009-09-15
EP1905184B1 (en) 2018-02-14
CA2612631A1 (en) 2007-01-25
CN101310472B (zh) 2011-12-07
WO2007011667A2 (en) 2007-01-25
JP5027807B2 (ja) 2012-09-19
CA2612631C (en) 2014-03-04
BRPI0612865B1 (pt) 2019-10-01
KR101238572B1 (ko) 2013-03-04
EP1905184A2 (en) 2008-04-02
WO2007011667A3 (en) 2007-08-23
AU2006270273B2 (en) 2010-05-06
JP2009503648A (ja) 2009-01-29
KR20080026132A (ko) 2008-03-24
AU2006270273A1 (en) 2007-01-25
CN101310472A (zh) 2008-11-19
US20070033652A1 (en) 2007-02-08

Similar Documents

Publication Publication Date Title
BRPI0612865A2 (pt) atualização automática de componentes legìveis por computador para suportar um ambiente de confiança
US7650492B2 (en) Automatic update of computer-readable components to support a trusted environment
US7434263B2 (en) System and method for secure storage data using a key
US7552326B2 (en) Use of kernel authorization data to maintain security in a digital processing system
JP5403771B2 (ja) ファームウェアに安全なアップデートを提供するシステム及び方法
US6735696B1 (en) Digital content protection using a secure booting method and apparatus
US6330670B1 (en) Digital rights management operating system
US7356682B2 (en) Attesting to a value of a register and/or memory region
US8291480B2 (en) Trusting an unverified code image in a computing device
KR101453225B1 (ko) 애플리케이션 배포 시스템, 애플리케이션 배포 방법, 단말 및 프로그램
US20080168275A1 (en) Securely Recovering a Computing Device
JP2010073193A (ja) モバイルインターネットデバイス(mid)でuefiファームウェア及びuefiアウェアなオペレーティングシステムのセキュアなブートのためのシステム及び方法
JP2010073193A5 (pt)
JP2010182196A (ja) 情報処理装置およびファイル検証システム
JP2003122588A (ja) ソフトウェア処理装置及びソフトウェア・インストール方法
JP2009169868A (ja) 記憶領域アクセス装置及び記憶領域のアクセス方法
KR101265887B1 (ko) 보호 컴퓨팅 환경을 제공하는 방법 및 장치 내에 보호 환경을 설정하는 방법
US20080208756A1 (en) Apparatus and method for providing security domain
US8856949B2 (en) Systems and methods for detecting authorized players

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B06T Formal requirements before examination [chapter 6.20 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04L 9/00 , G06F 11/30

Ipc: G11B 20/00 (1985.01), G06F 8/65 (2018.01), G06F 21

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 01/10/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 01/10/2019, OBSERVADAS AS CONDICOES LEGAIS