[go: up one dir, main page]

BRPI0612995A2 - mÉtodo de verificaÇço, dispositivo de processamento de informaÇço, circuito integrado implementado em um dispositivo de processamento de informaÇço, meio de armazenamento e programa de verificaÇço - Google Patents

mÉtodo de verificaÇço, dispositivo de processamento de informaÇço, circuito integrado implementado em um dispositivo de processamento de informaÇço, meio de armazenamento e programa de verificaÇço Download PDF

Info

Publication number
BRPI0612995A2
BRPI0612995A2 BRPI0612995-1A BRPI0612995A BRPI0612995A2 BR PI0612995 A2 BRPI0612995 A2 BR PI0612995A2 BR PI0612995 A BRPI0612995 A BR PI0612995A BR PI0612995 A2 BRPI0612995 A2 BR PI0612995A2
Authority
BR
Brazil
Prior art keywords
verification
information
virtual machine
processing device
stored
Prior art date
Application number
BRPI0612995-1A
Other languages
English (en)
Inventor
Senichi Onoda
Toshihisa Nakano
Masaya Yamamoto
Kaoru Murase
Tateo Oishi
Yoshikazu Takashima
Katsumi Muramatsu
Minehisa Nagata
Masayuki Kozuka
Yoshitomo Osawa
Jun Yonemitsu
Takashi Yamanishi
Original Assignee
Matsushita Electric Ind Co Ltd
Sony 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
Application filed by Matsushita Electric Ind Co Ltd, Sony Corp filed Critical Matsushita Electric Ind Co Ltd
Publication of BRPI0612995A2 publication Critical patent/BRPI0612995A2/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
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Patente de Invenção: MÉTODO DE VERIFICAÇçO, DISPOSITIVO DE PROCESSAMENTO DE INFORMAÇçO, CIRCUITO INTEGRADO IMPLEMENTADO EM UM DISPOSITIVO DE PROCESSAMENTO DE INFORMAÇçO, MEIO DE ARMAZENAMENTO E PROGRAMA DE VERIFICAÇçO. A presente invenção refere-se a uma máquina virtual que pode ser executada por qualquer pessoa devido à interface e outras informações necessárias para a execução se encontrarem publicamente disponíveis. Portanto, é possível que ao executar a máquina virtual, de forma ilegítima, os programas executados nesta sejam feitos para operarem, de forma ilegítima, em vez de legitimamente. De acordo com a presente invenção, um programa compara a informação secreta mantida pela máquina virtual com a informação de verificação mantida pelo próprio programa. Desse modo, o programa verifica se a máquina virtual que executa o programa é executada, de forma legítima, e é capaz de rejeitar uma máquina virtual ilegítima.

Description

Relatório Descritivo da Patente de Invenção para "MÉTODO DEVERIFICAÇÃO, DISPOSITIVO DE PROCESSAMENTO DE INFORMAÇÃO,CIRCUITO INTEGRADO IMPLEMENTADO EM UM DISPOSITIVO DEPROCESSAMENTO DE INFORMAÇÃO, MEIO DE ARMAZENAMENTO EPROGRAMA DE VERIFICAÇÃO".
CAMPO DA TÉCNICA
A presente invenção refere-se a um aparelho que utiliza umamáquina virtual para executar programa e, em particular, a uma técnica parajulgar a legitimidade de uma plataforma na qual a máquina virtual é executa-da e se a plataforma é ilegítima.
TÉCNICA ANTERIOR
Nos últimos anos, as máquinas virtuais começaram a ser usadaspara executar programas sem depender das plataformas, tais como OS eCPU. As máquinas virtuais, em geral, são executadas em software e, umavez que a interface e outras informações necessárias para executar as má-quinas virtuais se encontram publicamente disponíveis, as máquinas virtuaispodem ser executadas por qualquer pessoa.
DESCRIÇÃO DA INVENÇÃO
PROBLEMAS A SEREM SOLUCIONADOS PELA INVENÇÃO
Por esta razão, executando-se uma máquina virtual, de formamaliciosa, um programa que opera na mesma pode ser feito para operar, deforma ilegítima, em vez de legitimamente. Se o programa for, por exemplo,um que proteja o direito autoral de conteúdos, tais como filmes, este podelevar a uma reprodução não autorizada dos conteúdos.
Em vista do problema, a presente invenção visa proporcionar ummétodo de processamento de informações que permita que um programa verifi-que se uma máquina virtual que executa o programa e legitimamente executada.
MEIOS PARA SOLUCIONAR O PROBLEMA
A fim de solucionar o problema, a presente invenção proporcionaum método de verificação usado em um dispositivo de processamento deinformações que executa o processamento que se refere à reprodução deconteúdos ao usar uma máquina virtual incluída no mesmo, o método deverificação que compreende: uma etapa de leitura para ler um programa deverificação armazenado em um meio de armazenamento junto com os con-teúdos; e uma etapa de verificação para verificar, ao utilizar a máquina virtu-al que executa o programa de verificação, a legitimidade do dispositivo deprocessamento de informações que inclui a máquina virtual.
Com o uso do método de verificação acima, um programa deverificação pode verificar se uma máquina virtual que executa o programa deverificação é executada, de forma legítima.
Também, a etapa de verificação pode compreender: uma etapade aquisição para adquirir, como informação de verificação, um valor arma-zenado em um endereço de memória predeterminado no dispositivo de pro-cessamento de informações; e uma etapa de julgamento para julgar se odispositivo de processamento de informações é legítimo com base na infor-mação de verificação adquirida.
De acordo com o método de verificação acima, a verificação dodispositivo de processamento de informações é realizada usando o valorarmazenado no endereço de memória predeterminado.
Portanto, a máquina virtual não pode ser executada sem o co-nhecimento do endereço de memória que armazena o valor usado para averificação. Isto pode tornar difícil para terceiros ilegítimos executarem umamáquina virtual ilegítima.
Também, o meio de armazenamento pode ter adicionalmentearmazenado neste, um programa relacionado com reprodução que seja exe-cutado na máquina virtual e inclua um procedimento de processamento quese refere à reprodução dos conteúdos e o método de verificação pode com-preender adicionalmente uma unidade de supressão operável para, se odispositivo de processamento de informações for ilegítimo, suprimir a execu-ção do procedimento de processamento.
Isto pode tornar impossível reproduzir os conteúdos em umamáquina virtual ilegítima.
Também, os conteúdos podem ser transformados para seremrestaurados ao executarem um processamento de restauração predetermi-nado, o procedimento de processamento pode incluir um procedimento derestauração dos conteúdos transformados ao executar o processamento derestauração e a etapa de supressão pode suprimir a execução do proces-samento de restauração.
Isto pode tornar impossível a execução do processamento derestauração de conteúdos em uma máquina virtual ilegítima, no caso em queos conteúdos são transformados, a fim de proteger os direitos autorais dosmesmos, por exemplo.
Da mesma maneira, a informação de verificação pode ser a in-formação que altera de acordo com uma sincronização.
De acordo com o método de verificação acima, a informação quemuda de acordo com uma sincronização é usada como a informação de veri-ficação. Portanto, mesmo se um analista ilegítimo identificar o endereço dememória que armazena a informação de verificação, é difícil identificar umvalor mostrado pela informação de verificação legítima.
Portanto, é difícil para uma terceira parte executar, de forma ile-gítima, um ambiente de execução em que a verificação através do programade verificação pode ser passada.
Também, a informação de verificação pode ser a informação quese refere aos conteúdos que são reproduzidos.
De acordo com o método de verificação acima, o programa deverificação verifica a legitimidade do dispositivo de processamento de infor-mações com base na informação que se refere aos conteúdos que são re-produzidos.
Com este método de verificação, o programa de verificação po-de verificar se os conteúdos que são reproduzidos são conteúdos a seremusados com o programa de verificação.
Portanto, de acordo com o método de verificação acima, o se-guinte ato ilegítimo pode ser impedido, por exemplo: uma terceira parte co-pia um programa de verificação legítimo e quando outros conteúdos são re-produzidos, a verificação ilegítima é realizada ao carregar uma cópia do pro-grama de verificação legítimo.
Também, a informação de verificação pode ser a informação quedepende de um ambiente de execução que inclui a máquina virtual.
De acordo com isso, o programa de verificação pode verificar seo ambiente de execução onde o programa de verificação é executado é umambiente de execução executado por uma terceira parte ilegítima sem o co-nhecimento de informação de verificação legítima.
Também, o meio de armazenamento pode ainda ter armazenadoneste um ou mais valores de verificação e uma ou mais regras de verifica-ção, em correspondência, a etapa de julgamento pode compreender umaetapa de comparação para comparar a informação de verificação com umdos valores de verificação armazenados com base em uma das regras deverificação que correspondem ao valor de verificação e se um resultado dacomparação satisfaz a regra de verificação, a etapa de julgamento pode jul-gar se o dispositivo de processamento de informações é legítimo.
Isto pode tornar difícil para uma terceira parte ilegítima sem oconhecimento do valor de verificação e a regra de verificação executar umamáquina virtual ilegítima.
Também, a etapa de aquisição pode compreender uma etapa desolicitação para solicitar um valor armazenado no endereço de memória pre-determinado em uma sincronização de verificação, o método de verificaçãopode compreender adicionalmente uma etapa de retorno para ler o valor ar-mazenado em resposta à solicitação e retornar o valor lido como a informa-ção de verificação para o programa de verificação, a etapa de aquisição po-de adquirir o valor retornado como a informação de verificação e a etapa decomparação pode realizar a comparação usando a informação de verificaçãoadquirida.
Também, o meio de armazenamento pode ter os valores de veri-ficação adicionalmente armazenado neste, uma ou mais verificações de sin-cronização em correspondência, a etapa de comparação pode realizar acomparação usando a informação de verificação adquirida em uma das veri-ficações de sincronização, o valor de verificação que corresponde à sincro-nização de verificação e a regra de verificação que corresponde à sincroni-zação de verificação, a etapa de julgamento pode compreender adicional-mente: uma etapa de repetição para repetir a execução da etapa de compa-ração em cada uma das verificações de sincronização; e uma etapa de de-terminação para determinar o dispositivo de processamento de informaçõescomo ilegítimo se uma contagem dos resultados negativos da repetição nãofor maior do que um valor predeterminado.
De acordo com o método de verificação acima, se uma conta-gem dos resultados negativos da repetição não for maior do que o valor pre-determinado, o dispositivo de processamento de informações é determinadocomo ilegítimo. Portanto, a precisão da verificação pode ser aumentada.
Também, o meio de armazenamento pode ter os valores de veri-ficação adicionalmente armazenados neste, e a informação de identificaçãoque identifica, de forma única, a máquina virtual em correspondência e aetapa de comparação pode realizar a comparação usando um dos valoresde verificação que corresponde a uma informação de identificação que iden-tifica a máquina virtual incluída no dispositivo de processamento de informa-ções.
De acordo com isso, a verificação pode ser realizada usando umvalor de verificação diferente dependendo das máquinas virtuais.
Também, o meio de armazenamento pode ter adicionalmentearmazenado neste uma ou mais verificações de sincronização e uma oumais regras de verificação em correspondência, o dispositivo de processa-mento de informações pode compreender adicionalmente uma unidade dearmazenamento que armazena, como informação para comparação, um va-lor armazenado no endereço de memória predeterminado em uma sincroni-zação predeterminada, a etapa de aquisição pode adquirir um valor armaze-nado no endereço de memória predeterminado em uma das verificações desincronização, a etapa de julgamento pode compreender uma etapa decomparação para comparar a informação de verificação com a informaçãoarmazenada para comparação com base em uma das regras de verificaçãoque corresponde à sincronização de verificação e a etapa de julgamento po-de realizar o julgamento com base em um resultado da comparação.
Também, a etapa de aquisição pode compreender uma etapa desolicitação para fazer uma solicitação do valor armazenado na sincronizaçãode verificação, o método de verificação pode compreender adicionalmenteuma etapa de retorno para ler o valor armazenado em resposta à solicitaçãoe retornar o valor lido como a informação de verificação para o programa deverificação, a etapa de aquisição pode adquirir o valor retornado como a in-formação de verificação, e a etapa de comparação pode realizar a compara-ção usando uma informação de verificação adquirida.
Também, o dispositivo de processamento de informações podecompreender adicionalmente uma unidade de geração de número aleatóriooperável para gerar um número aleatório, o método de verificação podecompreender uma etapa de armazenamento de número aleatório para levara unidade de geração de número aleatório a gerar um número aleatório emcada uma das verificações de sincronização e armazenar o número aleatóriogerado no endereço predeterminado, a etapa de aquisição pode realizar aaquisição da informação de verificação ao ler o número aleatório armazena-do na sincronização de verificação e se a informação de verificação diferir dainformação de comparação na comparação, a etapa de julgamento podejulgar o dispositivo de processamento de informações como legítimo.
Isto pode tornar difícil, para uma terceira parte sem o conheci-mento da execução do uso de um número aleatório para verificação da legi-timidade do dispositivo de processamento de informações, executar umamáquina virtual ilegítima.
Também, a unidade de geração de número aleatório pode reali-zar a geração com base na informação que depende do ambiente de execu-ção que inclui a máquina virtual.
De acordo com isso, se existirem ambientes de execução dife-rentes, a unidade de geração de número aleatório possui uma baixa possibi-lidade de gerar o mesmo número aleatório em cada ambiente de execução.
Também, o dispositivo de processamento de informações podecompreender adicionalmente uma unidade de relógio operável para marcaruma hora e registrar a hora no endereço de memória predeterminado, a uni-dade de armazenamento pode armazenar o tempo registrado na sincroniza-ção predeterminada como a informação para comparação, a etapa de aqui-sição pode realizar a aquisição da informação de verificação ao ler o temporegistrado na sincronização de verificação e se o tempo mostrado pela in-formação de verificação for maior do que o tempo mostrado pela informaçãopara comparação na comparação, a etapa de julgamento pode julgar o dis-positivo de processamento de informações como legítimo.
Isto pode tornar difícil para uma terceira parte sem o conheci-mento de execução no qual um tempo é usado para a verificação de legiti-midade do dispositivo de processamento de informações executar uma má-quina virtual ilegítima.
Também, a presente invenção proporciona um dispositivo deprocessamento de informações que executa o processamento que se refereà reprodução de conteúdos armazenados em um meio de armazenamento einclui neste uma máquina virtual, onde o meio de armazenamento armaze-nou no mesmo um programa de verificação que verifica a legitimidade dodispositivo de processamento de informações ao ser executado na máquinavirtual e o dispositivo de processamento de informações compreende: umaunidade de leitura operável para ler o programa de verificação provenientedo meio de armazenamento; uma unidade de recepção operável para rece-ber do programa de verificação uma solicitação para um valor armazenadona sincronização de verificação em um endereço de memória predetermina-do no dispositivo de processamento de informações; e uma unidade de re-torno operável para, mediante o recebimento da solicitação, ler o valor ar-mazenado e retornar o valor lido para o programa de verificação.
Também, a presente invenção proporciona um circuito integradoexecutado em um dispositivo de processamento de informações que executao processamento que se refere à reprodução de conteúdos armazenadosem um meio de armazenamento e inclui neste uma máquina virtual, onde omeio de armazenamento armazenou no mesmo um programa de verificaçãoque verifica a legitimidade do dispositivo de processamento de informaçõesao ser executado na máquina virtual e o circuito integrado compreende: umaunidade de leitura operável para ler o programa de verificação provenientedo meio de armazenamento; uma unidade de recepção operável para rece-ber do programa de verificação uma solicitação para um valor armazenadoem um endereço de memória predeterminado no dispositivo de processa-mento de informações na sincronização de verificação; e uma unidade deretorno operável para, mediante o recebimento da solicitação, ler o valor ar-mazenado e retornar o valor lido para o programa de verificação.
Também, a presente invenção proporciona um meio de armaze-namento que armazenou neste um programa de verificação que executa oprocessamento que se refere à reprodução de conteúdos e verifica a Iegiti-midade de um dispositivo de processamento de informações que inclui nesteuma máquina virtual, onde o programa de verificação compreende: uma eta-pa de aquisição para adquirir, como informação de verificação, um valor ar-mazenado em um endereço de memória predeterminado no dispositivo deprocessamento de informações; e uma etapa de julgamento para julgar se odispositivo de processamento de informações é legítimo, com base na infor-mação de verificação adquirida.
Também, a presente invenção proporciona um programa de veri-ficação que leva a um dispositivo de processamento de informações queinclui no mesmo uma máquina virtual para verificar a legitimidade do disposi-tivo de processamento de informações, o dispositivo de processamento deinformações que executa o processamento que se refere à reprodução deconteúdos armazenados em um meio de armazenamento, o programa deverificação que compreende: uma etapa de aquisição para adquirir, comoinformação de verificação, um valor armazenado em um endereço de memó-ria predeterminado no dispositivo de processamento de informações; e umaetapa de julgamento para julgar se o dispositivo de processamento de infor-mações é legítimo com base na informação de verificação adquirida.
EFEITO DA INVENÇÃO
Como foi descrito, de acordo com a presente invenção, obtém-se um efeito de proporcionar um método de processamento de informaçõesatravés do qual um programa é capaz de verificar se uma máquina virtual,que executa o programa, é executada, de forma legítima.BREVE DESCRIÇÃO DOS DESENHOS
A Figura 1 mostra uma estrutura de um meio de armazenamentoe um dispositivo de processamento de informações em uma primeira moda-lidade;
A Figura 2 é um fluxograma do processamento de execução decódigo de máquina virtual na primeira modalidade;
A Figura 3 é um fluxograma de processamento para verificar alegitimidade de um ambiente de execução que inclui uma máquina virtual naprimeira modalidade;
A Figura 4 é um exemplo da estrutura de dados de uma regra deverificação na primeira modalidade;
A Figura 5 é um exemplo da estrutura de dados da tabela deregra de verificação no código de máquina virtual na primeira modalidade;
A Figura 6 mostra um exemplo da estrutura de um meio de ar-mazenamento e um dispositivo de processamento de informações na primei-ra modalidade;
A Figura 7 mostra um exemplo da estrutura de um meio de ar-mazenamento e um dispositivo de processamento de informações na primei-ra modalidade;
A Figura 8 mostra um modelo de sistema para um meio de ar-mazenamento e um dispositivo de processamento de informações em umasegunda modalidade;
A Figura 9 mostra as operações de processamento de verifica-ção e processamento de restauração na segunda modalidade;
A Figura 10 é um fluxograma do processamento para verificar alegitimidade de um ambiente de execução que inclui uma máquina virtual nasegunda modalidade;
A Figura 11 mostra um exemplo do modelo de sistema para omeio de armazenamento e o dispositivo de processamento de informaçõesna segunda modalidade; e
A Figura 12 mostra um modelo de sistema generalizado para omeio de armazenamento e o dispositivo de processamento de informaçõesna segunda modalidade.
MELHOR MODO PARA REALIZAR A INVENÇÃO
A seguir, se descreve uma modalidade preferida da presenteinvenção com referência aos desenhos.
(Primeira modalidade)
A seguir, se descreve um meio de armazenamento e um disposi-tivo de processamento de informações de uma modalidade da presente in-venção que usa a Figura 1.
Um código de máquina virtual 121, que é um programa que ope-ra em uma máquina virtual é gravado em um meio de armazenamento 102.Um exemplo de execução do meio de armazenamento 102 é um BD (DiscoBlu-Ray), embora o meio de armazenamento 102 não se limite a isto. Alémdisso, o código de máquina virtual 121 é composto de um módulo de verifi-cação de máquina virtual 1121, um módulo de armazenamento de informa-ção de verificação 1122 e a módulo de processamento dependente de códi-go 1123. Os módulos são posteriormente descritos em detalhes.
Um dispositivo de processamento de informações 101 é um dis-positivo que executa o código de máquina virtual 121 que usa uma máquinavirtual, e, como mostrado na Figura 1, é composto por uma unidade de Ieitu-ra de disco 111, uma unidade de recepção de operação de usuário 112, umaunidade de execução de máquina virtual 113, uma unidade de armazena-mento de informação 114 e a unidade de armazenamento de informação detrabalho 118. Uma máquina virtual é o software que executa um programaque é executado como o código de máquina virtual 121 ao convertê-lo nocódigo nativo de uma plataforma, a fim de que o programa opere sem de-pender de uma plataforma, tal como uma CPU ou um OS. Como um exem-plo específico, a máquina virtual é uma máquina virtual Java® e o código demáquina virtual 121 é um código de byte Java®, mas também não se limitama isto.
Um exemplo de um método para executar o dispositivo de pro-cessamento de informações 101 é um sistema de computador composto poruma CPU, uma memória de trabalho, uma memória flash, um drive BD e umcontrole remoto. Aqui, a unidade de leitura de disco 111 é o drive BD (DiscoBlu-Ray), a unidade de armazenamento de informação 114 é a memória fla-sh, a unidade de recepção de operação de usuário 112 é o controle remoto,a unidade de armazenamento de informação de trabalho 118 é a memóriade trabalho e a unidade de execução de máquina virtual 113 é o softwareque opera usando a CPU e a memória de trabalho. Entretanto, a unidade deexecução de máquina virtual 113 não se limita a ser estruturada pelo softwa-re e pode ser executada em hardware ou similar. Nenhuma das outras mo-dalidades se limita a esta disposição.
Além disso, a unidade de armazenamento de informação 114armazena um código de execução de máquina virtual 115 e uma informaçãode identificação de máquina virtual 117. O código de execução de máquinavirtual 115 é o software e é composto por um módulo de aquisição de valorde verificação 1151 e um módulo de execução de código de máquina virtual1154. Os módulos serão posteriormente descritos em detalhes.
A informação de identificação de máquina virtual 117 é a infor-mação para identificar a máquina virtual, e, por exemplo, pode ser uma partede oito bytes dos dados compostos por "uma ID de fabricante de dispositivode processamento de informações + um número de modelo do dispositivo deprocessamento de informações + um número de versão da máquina virtual".
Entretanto, não se limita a esta composição, contanto que a informação deidentificação de máquina virtual 117 possa especificar, de forma única, amáquina virtual.
Aqui, se descreve um método de criação da informação de veri-ficação. Os provedores do código de execução de máquina virtual legítimo115 submetem, cada máquina virtual, a uma tabela de regra de verificaçãoespecífica de máquina virtual do tipo mostrado na Figura 4 e uma informa-ção de identificação de máquina virtual 117 para uma organização de geren-ciamento de máquina virtual. Note que as tabelas de regra de verificaçãoacima podem ser as tabelas de regra de verificação e informação de identifi-cação para cada um dos dispositivos de reprodução nos quais as máquinasvirtuais são instaladas. A organização de gerenciamento de máquina virtualentão proporciona usuários legítimos que irão executar o código de máquinavirtual com tabelas de regra de verificação de máquina virtual e informaçãode identificação de máquina virtual legítimas 117. Com base nisso, os usuá-rios que irão executar o código de máquina virtual criam a informação deverificação. A Figura 4 é uma das tabelas de regra de verificação específicade máquina virtual (dispositivo de reprodução específico). A tabela de regrade verificação é composta, por exemplo, pelos seguintes itens: um endereço401 para uso na verificação; uma sincronização de verificação 402 que indi-ca quando a verificação será realizada; um valor de verificação 403 que indi-ca um valor que deve ser armazenado no endereço 401 na verificação; euma regra de verificação 404 que indica um estado do valor de verificaçãorequerida para que a verificação seja bem-sucedida. O endereço 401 podeser um endereço específico ou uma faixa de endereços específicos, confor-me mostrado na Figura 4. A composição da tabela de regra de verificaçãonão é limitada à composição da tabela da Figura 4.
Note que, na presente modalidade, presume-se que o meio dearmazenamento 102 seja BD e o código de máquina virtual 121 gravadoneste seja carregado dentro do dispositivo de processamento de informa-ções 101 pela unidade de leitura de disco 111. Entretanto, a presente inven-ção, não se limita a esta modalidade. O código de máquina virtual 121 podeser carregado dentro do dispositivo de processamento de informações 101usando outra modalidade. Por exemplo, a unidade de leitura de disco 111pode ser substituída por uma unidade de conexão de internet e o código demáquina virtual 121 pode ser carregado dentro do dispositivo de processa-mento de informações 101 através da internet.
Isto completa a descrição do meio de armazenamento e o dispo-sitivo de processamento de informações da primeira modalidade da presenteinvenção.
(Execução do Código de Máquina Virtual)
A seguir, descreve-se a execução do código de máquina virtualno dispositivo de processamento de informações 101 usando a Figura 2.
Em primeiro lugar, o processamento é iniciado pelo dispositivode processamento de informações 101 que recebe uma instrução para exe-cutar o código de máquina virtual 121 armazenado no meio de armazena-mento 102.
O ser instruída a executar o código de máquina virtual 121, aunidade de execução de máquina virtual 113 carrega o código de execuçãode máquina virtual 115 da unidade de armazenamento de informação 114 eativa a máquina virtual (S201).
A seguir, a unidade de execução de máquina virtual 113 lê o có-digo de máquina virtual 121 do meio de armazenamento 102 através da uni-dade de leitura de disco 111 e ativa o código de máquina virtual 121 na má-quina virtual (S202).
Usando o módulo de verificação de máquina virtual 1121 e omódulo de armazenamento de informação de verificação 1122, o código demáquina virtual 121 ativado na máquina virtual verifica quando o horário realé a sincronização de verificação 402 para verificar a legitimidade do ambien-te de execução incluindo a máquina virtual que executa o código de máquina(Etapa 203).
Então, o horário real é a sincronização de verificação 402, o có-digo de máquina virtual 121 realiza a verificação da legitimidade do ambientede execução que inclui a máquina virtual (S204). Os detalhes deste proces-samento serão posteriormente descritos.
O código de máquina virtual 121 determina um resultado de veri-ficação de S204 (S205). Quando este é negativo, o código de máquina virtu-al 121 verifica se a contagem dos resultados negativos atingiu ou não umvalor predeterminado (S208). Aqui, se a contagem de resultados negativosfor maior ou igual ao valor predeterminado a execução termina à medida queo código de máquina virtual tenha sido executado para terminar sua própriaexecução, em tal caso.
Se, em S208, a contagem de resultados negativos não atingiu ovalor predeterminado, o processamento reinicializa a partir de S203. O valorpredeterminado pode ser um ou pode ser uma pluralidade, sendo que umaumento na precisão de verificação é obtido se uma pluralidade for usada.Quando o resultado de verificação de S205 for positivo, o pro-cessamento dependente do código definido pelo módulo de processamentodependente de código 1123 no código de máquina virtual 121 é executado(S206). No módulo de processamento dependente de código 1123, o pro-cessamento diferente é definido para cada um dos códigos de máquina vir-tual 121. Por exemplo, o processamento dependente dê código pode serdefinido como o conteúdo de processamento de decriptografia 122, tal comoaquele de um filme gravado separadamente no meio de armazenamento 102e o módulo de processamento dependente de código 1123 pode realizar oprocessamento de decriptografia como o processamento de proteção de di-reito autoral para o conteúdo 122. Entretanto, o processamento dependentede código não se limita a isto.
Quando o processamento dependente de código chegou ao fim,a execução do código de máquina virtual 121 termina (S207: YES).
Isto completa a descrição da execução do código de máquinavirtual 121 no dispositivo de processamento de informações 101.(Verificação de Legitimidade de Ambiente de Execução que Inclui a MáquinaVirtual)
Os detalhes de verificação de legitimidade de um ambiente deexecução que inclui uma máquina virtual são descritos abaixo. Este proces-samento serve para verificar, usando o código de máquina virtual 121, se oambiente de execução que inclui a máquina virtual que serve para executaro código de máquina virtual 121 é legítimo ou não.
O código de execução de máquina virtual 115 pode ser executa-do por qualquer pessoa porque a informação requerida para a execução, talcomo a interface, o conteúdo de processamento, e similares, se encontrapublicamente disponível. Por esta razão, se um código de execução não foro código de execução de máquina virtual legítimo 115, existe a possibilidadede que operações ilegítimas ocorram quando o código de máquina virtual121 for executado, e que o processamento do código de máquina virtual 121seja realizado, de forma inapropriada. Se o código de máquina virtual 121for, por exemplo, um programa para proteger o direito autoral do conteúdo122 que consiste em um filme ou similar, gravado separadamente no meiode armazenamento 102, o conteúdo 122 pode ser reproduzido, de formailegítima, e a proteção do direito autoral não poderia ser possível. Portanto, oprocessamento de verificação para o ambiente de execução que inclui amáquina virtual é requerido.
Os módulos que constituem o código de máquina virtual 121 sãodescritos abaixo. O módulo de verificação de máquina virtual 1121 é um mó-dulo para verificar se o ambiente de execução que inclui a máquina virtualque executa o código de máquina virtual 121 é ou não legítimo. O módulo dearmazenamento de informação de verificação 1122 é a informação para veri-ficar a legitimidade do ambiente de execução que inclui a máquina virtual.Especificamente, esta verificação da legitimidade do ambiente de execuçãoque inclui a máquina virtual envolve o código de máquina virtual 121 queadquire a informação de identificação de máquina virtual 117 e um valor paraverificação da máquina virtual e, verificar a máquina virtual com base no fatode o valor satisfazer a regra de verificação armazenada no módulo de arma-zenamento de informação de verificação 1122. Como um resultado, mesmose um emulador que inclui dados copiados, tais como um número de modelode reprodução e um nome de fabricante, for criado para algum outro disposi-tivo de reprodução, e for, por exemplo, montado em um computador juntocom uma máquina virtual, a reprodução usando tal emulador ilegítimo podeser impedida. Isto ocorre porque é difícil criar um emulador que satisfaça orequerimento da tabela de regra de verificação 400 da Figura 4 para cadamáquina virtual e o emulador provavelmente não irá satisfazer o requerimen-to. Os detalhes do processamento de verificação serão posteriormente des-critos.
A Figura 5 é um exemplo da tabela de regra de verificação 500armazenada pelo módulo de armazenamento de informação de verificação1122. A tabela de regra de verificação 500 armazenada pelo módulo de ar-mazenamento de informação de verificação 1122 indica a correspondênciaentre parte ou toda a tabela de regra de verificação 400 para cada máquinavirtual, mostrada na Figura 4, e a informação de identificação de máquinavirtual 117. O criador do código de máquina 121 pode selecionar e aplicarlivremente as regras de verificação usadas na tabela de regra de verificação500 armazenada pelo módulo de armazenamento de informação de verifica-ção 1122 proveniente da tabela de regra de verificação 400, permitindo quea verificação seja realizada, de forma individual, para cada um dos códigosde máquina virtuais 121.
Os módulos que constituem o código de execução de máquinavirtual 115 serão descritos abaixo.
O módulo de aquisição de valor de verificação 1151 é um módu-Io para procurar a unidade de armazenamento de informação de trabalho118 para o endereço especificado pelo módulo de verificação de máquinavirtual 1121 no código de máquina virtual 121 e adquirir os valores armaze-nados neste endereço.
O módulo de execução de código de máquina virtual 1154 é ummódulo para converter o processamento definido pelo módulo de processa-mento dependente de código 1123 do código de máquina virtual 121 no có-digo nativo para a plataforma e executar o código que foi convertido.
A seguir, o fluxo do processamento para verificar a legitimidadedo ambiente de execução que inclui a máquina virtual é descrito na Figura 3.
Primeiro, na ativação do código de máquina virtual 121 em S202da Figura 2, o módulo de verificação de máquina virtual 1121 compara a in-formação de identificação de máquina virtual 117 armazenada na unidade dearmazenamento de informação 114 com a tabela de regra de verificação 500armazenada no módulo de armazenamento de informação de verificação1122 e detecta a sincronização de verificação 402 que será usada. Por e-xemplo, se a informação de identificação de máquina virtual 117 for0x0011ff0000011001, o processamento será como se segue. Em S203,quando o horário real é a sincronização de verificação detectada, o seguinteprocessamento de verificação é realizado.
Primeiro, o código de máquina virtual 121 especifica o endereço401 que corresponde à sincronização de verificação 402 e faz uma solicita-ção para a informação de verificação (S301). Por exemplo, quando o menu 1tiver sido exibido, o código de máquina virtual 121 especifica o endereço0x00ff0001, e faz uma solicitação para a informação de verificação.
A máquina virtual adquire o valor armazenado no endereço es-pecificado 0x00ff0001 da unidade de armazenamento de informação de tra-balho 118 (S302), e retorna este valor para o código de máquina virtual 121como a informação de verificação (S303).
O código de máquina virtual 121 adquire a informação de verifi-cação retornada (S304), verifica a informação de verificação e o valor deverificação 403 com base na regra de verificação 404 e passa um resultadoda verificação para S205 na Figura 2.
Neste exemplo, o resultado de verificação é positivo se a infor-mação de verificação for Oxed, e é, de outra forma, negativo.
Isto completa a descrição do processamento para verificar a legi-timidade do ambiente de execução que inclui a máquina virtual.
Note que, não importa se o endereço 402 é um endereço físicoou um endereço lógico e se o endereço 402 é um endereço real ou um en-dereço virtual, contanto que uma máquina virtual legítima que executa o có-digo de máquina virtual 121 seja capaz de adquirir informação no endereço402. Ademais, em vez de usar o endereço especificado como a forma origi-nal, a máquina virtual pode adquirir a informação de verificação após conver-ter o endereço especificado em um endereço adequado para a unidade dearmazenamento de informação de trabalho 118 com base na informação demapa de endereço. A informação de mapa de endereço pode ser capaz deindicar a área relevante da unidade de armazenamento de informação detrabalho 118 e pode ser composta para suportar transformações dinâmicas,assim como transformações estáticas.
Ademais, embora na presente modalidade um comprimento dedados de um byte seja usado como o comprimento do valor de verificação, ocomprimento de dados não se limita a isto.
Ademais, não é necessário que todas as regiões da unidade dearmazenamento de informação de trabalho 118 sejam acessíveis através domódulo de aquisição de valor de verificação 1151 e, a unidade de armaze-namento de informação de trabalho 118 pode ser executada, de modo queuma parte das regiões não seja acessível. Isto permite a resistência à análi-se maliciosa do ambiente de execução que inclui a máquina virtual que seráaumentada.
(Exemplo de Regra de Verificação)
Na presente modalidade, os valores na unidade de armazena-mento de informação de trabalho 118 são adquiridos e usados como infor-mação de verificação. Estes valores usados como informação de verificaçãoe as regras de verificação serão descritos abaixo. Entretanto, note que a in-formação de verificação não se limita a estes valores e que qualquer valorexistente na unidade de armazenamento de informação de trabalho 118 éum candidato para a informação de verificação.
(1) Informação que se Refere a Conteúdo
Por exemplo, de acordo com a tabela de regra de verificação500 da Figura 5 armazenada no módulo de armazenamento de informaçãode verificação 1122, a verificação positiva irá ocorrer se um valor que igualauma marca de tempo de um arquivo índice no conteúdo 122 for incluído nosdados entre os endereços 0x00110044 a 0x001100ff quando uma imagemem movimento inicial for reproduzida. Conforme descrito acima, nos ambien-tes de execução que contêm uma máquina virtual legítima, a informação quese refere a um conteúdo é armazenada em uma região específica da unida-de de armazenamento de informação de trabalho 118 em uma sincronizaçãoparticular. Quando o código de máquina virtual 121 é executado, a legitimi-dade dos ambientes de execução pode ser avaliada ao verificar se a infor-mação estipulada existe ou não na região especificada. Note que, em vez deuma faixa de endereços, um único endereço pode ser especificado. Tam-bém, os endereços e a sincronização de verificação irão depender do ambi-ente de execução que inclui a máquina virtual.
Além da informação acima, é possível usar um arquivo índice,um arquivo de navegação ou outros tamanhos de arquivo ou marcas detempo no meio de armazenamento 102 como a informação que se refere aoconteúdo. Além disso, qualquer informação pode ser usada contanto que amesma se refira ao conteúdo, incluindo números de lista de reprodução ouitem de reprodução armazenados no meio de armazenamento 102, parte outodos os valores em uma tabela de hash do conteúdo, parte ou todos os da-dos de som para quando um botão for pressionado, parte ou todos os valo-res de hash de uma tabela de índice ou similar.
(2) Informação Dependente do Ambiente de Execução que Inclui a MáquinaVirtual
Conforme mostrado na Figura 6, o dispositivo de processamentode informações 101 pode, por exemplo, ter a unidade de geração de númeroaleatório 601 adicionada ao mesmo e ser executada de tal modo que a uni-dade de geração de número aleatório 601 seja levada a operar de acordocom uma instrução através do código de máquina virtual 121. Então, con-forme mostrado na tabela de regra de verificação 500 da Figura 5 que é ar-mazenada no módulo de armazenamento de informação de verificação1122, quando um disco é inserido, o ambiente de execução que inclui a má-quina virtual é feito para gerar um número aleatório e armazenar o númeroaleatório no endereço 0x00aa0010. O código de máquina virtual 121 entãoarmazena este valor. Subseqüentemente, no início da reprodução ou medi-ante uma operação de usuário, o ambiente de execução é feito para gerar earmazenar um número aleatório novamente no endereço 0x00aa0010. Ocódigo de máquina virtual 121 adquire este mais recente número aleatóriogerado, compara-o com o número aleatório previamente armazenado e se onovo valor for diferente, fornece uma verificação positiva. Já que uma má-quina virtual ilegítima não possui a função de geração de número aleatórioou não sabe onde gravar o número aleatório, uma verificação positiva nãoserá fornecida. Note que a escolha de um valor, tal como um endereço ou ainformação de identificação de máquina virtual 117, que difere de cada am-biente de execução incluindo uma máquina virtual como uma semente parao número aleatório irá reduzir as chances de geração do mesmo númeroaleatório.
Note também que os recursos, tais como a memória usada pelamáquina virtual, variam de acordo com as condições de execução. Destemodo, é possível que uma verificação seja positiva se, por exemplo, umaregião de memória vazia na unidade de armazenamento de informação detrabalho 118 se encontra dentro de uma faixa especificada de valores duran-te a execução do código de máquina virtual 121. Neste caso, em um ambi-ente onde uma máquina virtual ilegítima está operando, se a região de me-mória vazia estiver fora desta faixa, uma verificação positiva não será fornecida.
Além do que foi dito acima, como a informação que depende doambiente de execução que inclui a máquina virtual, é possível usar a infor-mação, tal como os valores de cálculo de hash (por exemplo, os valores cal-culados que usam os valores mais recentes retornados pelo código de má-quina virtual) e informação passível de exibição que se refere ao conteúdo,porém, exibida, de maneira diferente, para cada dispositivo de processamen-to de informações 101 (por exemplo, um número de botões de um menu,diferenças nas capacidades de reprodução de áudio ou vídeo).
Deste modo, na verificação, é possível usar os valores depen-dentes em funções e estados característicos do ambiente de execução queinclui uma máquina virtual ou usar vários valores dependentes de outra in-formação.
(3) Informação Dependente de Tempo
Por exemplo, o dispositivo de processamento de informações101 possui uma unidade de relógio 701 adicionada ao mesmo, como na Fi-gura 7. A unidade de relógio 701 mantém o tempo atual e é executada, demodo que o tempo atual seja gravado em uma região específica da unidadede armazenamento de informação de trabalho 118. Então, conforme indica-do na tabela de regra de verificação 500 da Figura 5, que é armazenada nomódulo de armazenamento de informação de verificação 1122, quando umdisco é inserido, o código de máquina virtual 121 adquire um valor para otempo atual de 0x00eee002 e armazena o valor. Então, quando um arquivode clip é comutado, o código de máquina virtual adquire um valor para otempo atual proveniente do mesmo endereço, compara-o com o valor previ-amente armazenado, e se o valor para o tempo atual for maior do que o va-Ior armazenado, fornece uma verificação positiva. Aqui, como a regra de ve-rificação é que o valor que não deve ser somente diferente, mas deve seraumentado, será impossível criar um ambiente ilegítimo sem o conhecimen-to desta execução.
Ademais, existem títulos aos quais o avanço rápido é proibido.
Quando um destes títulos for reproduzido, a informação para proibir o avan-ço rápido é armazenada em uma região específica da unidade de armaze-namento de informação de trabalho 118. Em tais casos, quando o título forreproduzido, o código de máquina virtual 121 verifica o estado atual da regi-ão específica e fornece uma verificação positiva se a informação indicar queo avanço rápido é proibido.
Além do que foi dito acima, a informação que se refere ao dispo-sitivo de processamento de informações 101, tais como parâmetros de sis-tema e parâmetros de operação ou informação, tais como números de capí-tulo dos dados que são atualmente reproduzidos, a informação de sincroni-zação incluída no fluxo de dados que é atualmente reproduzida (tais comoATS, PTS e PCR), pode ser usada como informação dependente de tempo.
Deste modo, virtualmente, qualquer informação de variação po-de ser usada no processamento de verificação. Entretanto, deve ser notadoque se a informação de variação de tempo com uma taxa de transmissãomuito alta for usada, tal como a própria informação de conteúdo (indepen-dente se a mesma é criptografada, decriptografada, codificada ou decodifi-cada), é difícil prever, de forma precisa, qual informação será contida namemória em um endereço específico em uma sincronização predeterminadamesmo em dispositivos legítimos e, portanto, é preferível que a informaçãoque é substancialmente previsível pelo fabricante do reprodutor seja usada.
Em particular, quando a informação for um dado de variação de tempo, porexemplo, uma regra que estipula múltiplas verificações de memória paraconfirmar se o valor de variação é usado, é necessário verificar a informaçãoque usa sincronizações de ajuste e sincronizações de verificação mais rígi-das. Entretanto, a verificação precisamente cronometrada é difícil de realizare, portanto, é preferível não usar a informação cuja taxa de transmissão émuito alta ou relaxar a regra de verificação 404 que se refere qual é julgadacomo um dispositivo legítimo.
A tabela de regra de verificação 500 armazenada no módulo dearmazenamento de informação de verificação 1122 pode combinar a infor-mação descrita acima, de qualquer maneira e, é possível criar uma tabela deregra de verificação específica 500 para cada ambiente de execução queinclui uma máquina virtual.
(Segunda Modalidade)
A Figura 8 mostra o modelo de sistema de um meio de armaze-namento e um dispositivo de processamento de informações em uma se-gunda modalidade da presente invenção.
Conforme mostrado na Figura 8, o meio de armazenamento 802inclui: um programa de comando 811 para regular a ordem de reprodução eo comportamento mediante as operações dos usuários; a informação rela-cionada com arquivo de clip 812 que descreve os itens, tais como atributosde arquivo de clip, um mapa de marca de tempo, uma lista de reprodução,itens de reprodução e similares; um arquivo de clip 813 que inclui conteúdo,tal como dados de vídeo e áudio; um código de uso de verificação 814 que éusado para verificar a legitimidade de um ambiente de execução que incluiuma máquina virtual; um código de uso de informação secreta 815 que éusado no conteúdo processamento de restauração do conteúdo; e um arqui-vo de informação de restauração 816 que é combinado com a informaçãosecreta para gerar a informação de restauração quando o processamento derestauração for realizado.
O dispositivo de processamento de informações 801 inclui: umaunidade de processamento de comando 822 para processar o programa decomando 811; uma unidade de gerenciamento de módulo 824 para recebera entrada de usuário e transmiti-la para a unidade de controle de operaçãode usuário 823 e, adicionalmente, para gerenciar os títulos de reprodução noconteúdo; a unidade de controle de operação de usuário 823 para acessaras funções que correspondem às operações de usuários provenientes daunidade de controle de reprodução 827 e que controlam estas funções; umregistro 826 para armazenar as variáveis de estado de dispositivo e proces-samento; a unidade de controle de reprodução 827 para realizar o proces-samento para a lista de reprodução e itens de reprodução da informaçãorelacionada com o arquivo de clip 812, para realizar o processamento paraacessar as funções indicadas pela unidade de processamento de comando822 ou pela unidade de controle de operação de usuário 823 e para contro-lar a unidade de processamento de apresentação 831; uma unidade de pro-cessamento de verificação 829 para executar o código de uso de verificação814 para verificar a legitimidade do ambiente de execução que inclui a má-quina virtual; uma unidade de cálculo de informação secreta 830 para calcu-lar, proveniente do código de uso de informação secreta 815, a informaçãosecreta a ser usada no processamento de restauração do conteúdo; a uni-dade de processamento de apresentação 831 para controlar a reprodução eexibição do conteúdo; e a unidade de processamento de restauração 832para gerar a informação de restauração com base no arquivo de informaçãode restauração 816 e a informação secreta e para notificar um mecanismode apresentação da restauração do conteúdo. A seção que inclui a unidadede processamento de comando 822 e a unidade de controle de operação dousuário 823 é denominada como um módulo de operação 821, a seção queinclui o registro 826 e a unidade de controle de reprodução 827 é denomina-da como uma unidade de processamento de controle de operação 825 e, aseção que inclui a unidade de processamento de verificação 829 e a unidadede cálculo de informação secreta 830 é denominada como uma máquinavirtual 828. A composição acima é uma composição exemplar, sendo que oexemplo específico consiste em um dispositivo de processamento de infor-mação 801 que por sua vez consiste em um dispositivo de processamentoque inclui uma unidade BD, porém, o dispositivo que não é limitado nem auma implementação de hardware nem a uma composição que utiliza umsoftware. As operações do dispositivo de processamento de informação 801são descritas mais adiante utilizando os procedimentos das Figuras 8, 9 e 10.
A Figura 9 mostra as operações do processamento de verifica-ção e do processamento de restauração de conteúdo no dispositivo de pro-cessamento de informação 101.
Primeiramente, a unidade de processamento de verificação 829adquire a informação de identificação de máquina virtual 903 armazenada namáquina virtual 828 (S1001), carrega parte do código de uso de verificação814, ou todo ele, correspondente à informação de identificação de máquinavirtual 903 e, adquire e salva a informação de gerenciamento de interrupção904 (S1002). A informação de gerenciamento de interrupção 904 é a infor-mação que serve para decidir, de acordo com um local de reprodução, porexemplo, de cada título, um ou mais locais de iniciação de execução (PC:contadores de programa) no código de uso de verificação 814, e descrevecombinações de locais de iniciação de execução com locais de reprodução.Nota-se que a informação de identificação de máquina virtual 903 é a infor-mação que serve para identificar a máquina virtual, e, por exemplo, pode serum pedaço de oito bytes de dados composto por "uma identificação do fabri-cante do dispositivo de processamento de informação + um número do mo-delo do dispositivo de processamento de informação + um número da versãoda máquina virtual". No entanto, a mesma não se limita a ter esta composi-ção, desde que a informação de identificação de máquina virtual 903 possa,exclusivamente, especificar a máquina virtual. Além disso, a informação deidentificação de máquina virtual 903 pode ser dada por uma assinatura e aunidade de processamento de verificação 829 pode verificar a autenticidadedesta assinatura.
Depois, a unidade de gerenciamento de módulo 824 lança umainstrução, que inclui o número do título do conteúdo a ser reproduzido, coma finalidade de iniciar o processamento de verificação para a unidade de pro-cessamento de verificação 829 (S1003).
Com base no número do título incluso na instrução, a unidade deprocessamento de verificação 829 adquire o PC aplicável a partir da infor-mação de gerenciamento de interrupção 904, e executa o código de uso deverificação 814 a partir do PC adquirido (S1004).
Depois, o código de uso de verificação executado 814 acessa amemória de informação de verificação 902 que inclui uma região de memóriaacessada na verificação, é realiza a verificação do ambiente de execuçãoincluindo a máquina virtual (S1005). Nota-se que, desde que seja possívelusar os métodos de verificação descritos na primeira modalidade, uma des-crição detalhada do método de verificação é omitido no presente documento.
Quando o resultado da verificação for positivo, o processamentocontinua (S1006). Quando for negativo, o processamento continua desdeque a contagem dos resultados negativos não tenha alcançado o valor pre-determinado. No entanto, se a contagem dos resultados negativos tiver al-cançado o valor predeterminado (S1007), o dispositivo de processamento deinformação 101 pode ser impedido de operar normalmente sobrepondo-separte ou todo o conteúdo ou código de uso de informação secreta 815, ousobrepondo-se outros dados em locais específicos na memória 901 que ar-mazena outros dados de processamento (S1008). De forma específica, vistoque, durante a reprodução, a unidade de cálculo de informação secreta 830armazena na memória 901 o código de uso de informação secreta 815 ou ainformação secreta exigida para o processamento de restauração, sobre-pondo-se parte ou toda a informação, o processamento de restauração éimpedido de proceder normalmente, e a reprodução normal é efetivamentedada como impossível. O processamento de restauração será descrito maisadiante. Além disso, visto que é possível providenciar que uma parte do títu-lo sendo atualmente reproduzido seja adicionalmente armazenada na me-mória 901, é possível sobrepor uma parte deste título, ou todo ele, na memó-ria 901 se o resultado da verificação for negativo, para tornar, de forma efi-caz, qualquer ambiente de execução que inclua uma máquina virtual ilegíti-ma incapaz de reproduzir normalmente. A informação a ser sobreposta nãoé limitada à informação anterior. O mesmo efeito será obtido mesmo se ou-tra informação for sobreposta.
Nota-se que apesar de a informação na memória 901 ter sidodescrita como sendo sobreposta se o resultado da verificação fosse negati-vo, a presente invenção não se limita a isto, e a unidade de gerenciamentode módulo 824 pode ser notificada sobre o resultado negativo, e pode indicarque a reprodução deve ser interrompida. Além disso, a unidade de cálculode informação secreta 830 pode ser notificada sobre o resultado negativocom a finalidade de interromper o cálculo dos parâmetros secretos. Nova-mente, a presente invenção não se limita a isto, e outro elemento composi-cionál, capaz de tornar impossível a reprodução normal, pode ser notificadosobre o resultado negativo.
Além disso, já que uma instrução de iniciação de processamentode verificação na S1003 consiste em uma instrução que é lançada, por e-xemplo, toda vez que o título da reprodução for comutado por uma operaçãode usuário, a mesma é lançada de forma irregular. No entanto, durante asoperações especiais de reprodução de avanço rápido, retrocesso, ou simila-res, há um risco de que os dados armazenados na memória de informaçãode verificação 902 sejam alterados antes que um único ciclo de processa-mento de verificação esteja completo, e, portanto, é aceitável que nestescasos não lance a instrução de iniciação de processamento de verificação.Além disso, quando uma nova instrução de iniciação de processamento deverificação incluindo um número de título diferente for lançada enquanto oprocessamento de verificação (repetição de S1005 a S1007) está sendo e-xecutado, o processamento de verificação que está sendo executado é fina-lizado, e o código de uso de verificação 814 correspondente ao novo númerode título é executado (o processamento reinicia a partir da S1004).
Além disso, é possível, dependendo do número do título recebi-do na instrução de iniciação de verificação em S1003, fazer com o que ocódigo de uso de verificação 814 em S1004 não seja executado. De formaespecífica, há dois métodos para alcançar isto: ou os números de título, paraos quais a execução do código de uso de verificação 814 é desnecessária,são omitidos a partir da informação de gerenciamento de interrupção 904 porterceiros gerando o código de uso de verificação 814, ou certos PCs sãoespecificados na informação de gerenciamento de interrupção de uso deinformação secreta 905 pelos mesmos terceiros e, é estipulado que o códigode uso de verificação 814 não deve ser executado por nenhum dos PCs es-pecificados.Além disso, a memória de informação de verificação 902 e amemória 901 podem estar em diferentes regiões na memória física. Alémdisso, uma região onde o acesso é proibido e uma região onde a sobreposi-ção é proibida podem ser ajustadas a cada memória. Estes efeitos estrutu-rais, como a prevenção aprimorada de operações errôneas e resistênciaaumentada para análises maliciosas podem ser alcançados.
(Processamento de restauração)
O tipo de método a seguir pode ser usado no processamento derestauração anterior.
Conforme mostrado nas Figuras 8 e 9, a unidade de cálculo deinformação secreta 830 primeiro carrega o código de uso de informação se-creta 815, e adquire e salva a informação de gerenciamento de interrupçãode uso de informação secreta 905. A informação de gerenciamento de inter-rupção de uso de informação secreta 905 é, por exemplo, a informação quedetermina a posição de iniciação de execução (PC de uso de informaçãosecreta (contador de programa)) do código de uso de informação secreta805 para cada número de item de reprodução, e descreve as correspondên-cias entre os números de item de reprodução e os PCs de uso de informa-ção secreta.
A unidade de processamento de restauração 832 lê, e depoissalva, uma parte do arquivo de informação de restauração 816 ou todo ele.
A unidade de controle de reprodução 827 mantém a faixa dequal posição e qual item de reprodução está sendo atualmente reproduzido,e quando um item de reprodução específico está sendo reproduzido, notifi-cará, por exemplo, a cada dez segundos, a unidade de cálculo de informa-ção secreta 830 da informação periódica que indica o número de item dereprodução do item de reprodução e o número ordinário do período de re-produção atual. Note que, ao invés de o número ordinário do período de re-produção, vários segundos podem ser usados na notificação. Além disso, aoinvés de a cada 10 segundos, a sincronização da notificação pode ser ajus-tada para ter diferentes intervalos regulares a cada segundo, ou um intervaloirregular, como toda vez que um item de reprodução for comutado, ou simila-res. Além disso, esta informação de sincronização de notificação pode serinclusa no código de uso de informação secreta 815, e a unidade de controlede reprodução 827 pode adquirir a informação de sincronização a partir docódigo de uso de informação secreta 815.
Depois, com base no número do item de reprodução que foi noti-ficado, a unidade de cálculo de informação secreta 830 adquire o PC de usode informação secreta a partir da informação de gerenciamento de interrup-ção de uso de informação secreta 905, e executa o código de uso de infor-mação secreta 815 a partir do local correspondente.
O código de uso de informação secreta 815 executado calcula ainformação secreta apropriada para o período de reprodução com base nainformação periódica, e notifica a unidade de processamento de restauração832 sobre o resultado.
A unidade de processamento de restauração 832 adquire a in-formação de restauração apropriada para o local de reprodução a partir doarquivo de informação de restauração 816. E, a unidade de processamentode restauração 832 decodifica a informação de restauração ao realizar, u-sando a informação secreta, um cálculo XOR (OR Exclusivo) ou similares, enotifica a unidade de processamento de apresentação 831 da informação derestauração decodificada.
A unidade de processamento de apresentação 831 realiza oXOR dos dados nas posições de restauração, que são incluídas na informa-ção de restauração, e os dados de restauração incluídos na informação derestauração, e sobrepõe os dados nas posições de restauração com os da-dos resultantes. As posições de restauração podem ser qualquer informaçãocapaz de especificar, exclusivamente, as posições dos dados a serem res-taurados, incluindo os números ordinários do pacote de cabeçalho do arqui-vo de clip, tempo de leitura da informação associada ao pacote, informaçãode tempo de reprodução, ou similares.
Desta forma, é possível restaurar os dados de conteúdo trans-formados, e reproduzi-los normalmente. Conseqüentemente, quando resul-tado do processamento de verificação anterior for negativo, é possível, so-brepondo-se uma parte ou toda a região da memória 901, tornar a unidadede cálculo de informação secreta 830 incapaz de adquirir informação secretacorreta, tornando impossível a reprodução normal. Nota-se que os dadosque serão sobrepostos podem ser quaisquer dados para estes cálculos, in-cluindo o código de uso de informação secreta 815, parte ou toda a informa-ção secreta ou similares.
Nota-se que, apesar de o número de item de reprodução ter sidousado, é possível usar qualquer informação capaz de especificar, exclusi-vamente, o ponto de reprodução atual, incluindo o número de título, o núme-ro da lista de reprodução, o número do item de reprodução e alguma combi-nação destes.
Além disso, apesar de a unidade de processamento de apresen-tação 831 ter sido descrita como a que realiza o XOR dos dados nas posi-ções de restauração e os dados de restauração, e como a que sobrepõe osdados nas posições de restauração com o resultado, a unidade de proces-samento de apresentação 831 não precisa ser notificada sobre a informaçãode restauração pela unidade de processamento de restauração 832, e poderealizar o cálculo XOR e a sobreposição fazendo uma referência direta aoarquivo de clip armazenado na memória 901.
Nota-se que, apesar de o arquivo de informação de restauração816 ter sido descrito incluindo a informação de restauração, conforme mos-trado na Figura 11, também é possível que a informação de restauração sejamultiplexada no fluxo do arquivo de clip 1113. Se1 neste caso, a informaçãode restauração for armazenada no PMT ou nos pacotes originais, estes pa-cotes são multiplexados em um fluxo de dados, como fluxos de vídeo ou áu-dio. Neste caso, a unidade de processamento de restauração 1132 adquireos pacotes que incluem a informação de restauração a partir do fluxo de da-dos que está sendo reproduzido, e, desse modo, está apto a obter a infor-mação de restauração. De outro modo, a composição se assemelha àquelada Figura 8.
A informação de restauração inclui as posições de restauração,sendo que cada uma indica o número de pacotes relativos a partir do pacoteque inclui a informação de restauração e os números de byte dos dados aserem restaurados dentro do pacote indicado, e inclui, ainda, a restauraçãode dados para o XOR e de dados nas posições de restauração. A unidadede processamento de restauração 1132 usa a informação secreta recebida apartir da unidade de cálculo de informação secreta 830 de modo a decodifi-car a informação de restauração realizando-se um XOR ou similares, e reali-za o XOR dos dados nas posições de restauração e dos dados de restaura-ção com base na informação de restauração decodificada. E, depois, a uni-dade de processamento de restauração 1132 sobrepõe os dados resultantesnas posições de restauração, permitindo assim que o conteúdo seja subme-tido à transformação a ser restaurada.
Portanto, é possível realizar o processamento de restauraçãoquando a informação de restauração for multiplexada no fluxo de dados doarquivo de clip ao invés de ser armazenada em um arquivo. Neste caso, aunidade de cálculo de informação secreta 830 processa de forma idênticaconforme descrito anteriormente.
Note que a unidade de processamento de restauração 1132 po-de notificar a unidade de processamento de apresentação 1131 da informa-ção de restauração decodificada. Neste caso, o processamento pode serrealizado pela unidade de processamento de apresentação 1131 realizandoo XOR dos dados nas posições de restauração e dos dados de restauraçãoe sobrepondo os dados nas posições de restauração junto aos dados resul-tantes.
Além disso, apesar de o XOR ter sido usado no processamentode restauração e na decodificação da informação de restauração, o métodode codificação não é limitado ao XOR, e outros métodos de cálculo podemser usados, incluindo AES (Codificação Avançada Padrão) e DES (Codifica-ção Padrão de Dados).
Note que a Figura 12 é uma composição que generaliza ascomposições para o processamento de restauração e para o processamentode verificação mostrados nas Figuras 8 e 11. Na Figura 12, exceto pela má-quina virtual 1228 e pela unidade de processamento de restauração 1232,os elementos composicionais principais são aqueles de um modelo do sis-tema de reprodução de disco. Em outras palavras, uma característica destaimplementação que serve para realizar o processamento de verificação e oprocessamento de restauração da presente invenção é aquela que é possí-vel sem nenhuma alteração significante ao modelo do sistema de reprodu-ção de disco geral requerido.
Note que, apesar de na presente modalidade a unidade de pro-cessamento de verificação 829 ter sido descrita como o carregamento docódigo de uso de verificação 814 diretamente, e a unidade de cálculo de in-formação secreta 830 como o carregamento do código de uso de informaçãosecreta 815 diretamente, a presente invenção não é limitada a tal disposi-ção, e os dados podem ser adquiridos através de outros elementos compo-sicionais. Além disso, o código de uso de verificação 814 e o código de usode informação secreta 815 podem ser inclusos em outra informação no meiode armazenamento 802, como no programa de comando 811 ou no arquivode clip relacionado à informação 812.
Além disso, as notificações, como a informação de restauração ea informação interrompida podem ser realizadas através dos registros geraisde uso de operação não mostrados nos desenhos, através da memória 901,ou similares, apesar de a presente invenção não ser limitada a nenhum des-ses métodos.
Além disso, apesar de a informação de gerenciamento de inter-rupção 904 ter sido descrita como sendo adquirida a partir do código de usode verificação 814, esta pode ser gravada em um arquivo separado, ou emoutra informação no meio de armazenamento 802. Da mesma forma, a in-formação de gerenciamento de interrupção de uso de informação secreta905 pode ser gravada em um arquivo separado, ou em outra informação nomeio de armazenamento 802.
(Exemplos de Modificação)
A presente invenção foi descrita com base, porém não se limi-tando a, modalidades anteriores. Casos como os descritos a seguir estãoinclusos na presente invenção.(1) Cada dispositivo descrito, de forma específica, consiste emum sistema computacional composto por um microprocessador, uma ROM,uma RAM, uma unidade de disco rígido, uma unidade de monitor, um tecla-do, um mouse, e similares. Os programas computacionais são armazenadosna RAM ou na unidade de disco rígido. O dispositivo de processamento deinformação realiza suas funções através do uso do microprocessador queopera de acordo com os programas computacionais. Cada programa compu-tacional é composto por uma pluralidade de códigos de comando que apre-sentam instruções em relação ao computador, com a finalidade de realizarfunções predeterminadas.
(2) Uma parte, ou todos os elementos composicionais de cadadispositivo podem ser compostos pelo sistema LSI (Integração de Larga Es-cala). O sistema LSI é uma LSI supermultifuncional sobre a qual uma plurali-dade de unidades composicionais são fabricadas e integradas a um chip, e,de forma específica, consiste em um sistema computacional que inclui ummicroprocessador, uma ROM, uma RAM, ou similares. Os programas com-putacionais são armazenados na RAM. A LSI realiza suas funções atravésdo uso do microprocessador que opera de acordo com os programas com-putacionais.
Além disso, quando o sistema LSI for usado, pode ser o caso deo fabricante do LSI e o fabricante do dispositivo de processamento de infor-mação serem provenientes de companhias diferentes. Se este for o caso ese o fabricante da LSI fornecer funções que possam ser usadas na verifica-ção, como uma função de geração de números aleatórios, uma função derelógio, e similares, o fabricante do dispositivo de processamento de infor-mação pode estipular uma regra de verificação e um endereço de uso deverificação adequado para o dispositivo de processamento de informaçãoque está sendo fabricado. Portanto, obtém-se o efeito duplo do fabricante daLSI que é capaz de reduzir os custos de estipular e gerenciar as regras deverificação separadamente para cada LSI, e do fabricante do dispositivo deprocessamento de informação que é capaz de estipular livremente a regrade verificação em cada versão do dispositivo de processamento de informa-ção que ele fabrica.
(3) Parte, ou todos os elementos composicionais de cada dispo-sitivo, pode ser composta por um cartão IC removível ou por um único módu-lo. O cartão IC ou o módulo consistem em um sistema computacional com-posto por um microprocessador, uma ROM, uma RAM, ou similares. O car-tão IC ou o módulo podem incluir a LSI supermultifuncional anterior. O cartãoIC ou o módulo podem alcançar suas funções através do microprocessadorque opera de acordo com os programas computacionais. O cartão IC ou omódulo podem ser resistentes à intrusão.
(4) A presente invenção pode ser um dos métodos mostradosanteriormente. Além disso, os métodos podem ser um programa computa-cional realizado por um computador, e podem ser um sinal digital do pro-grama computacional.
Além disso, a presente invenção pode ser um meio de armaze-namento legível por computador, como um disco flexível, um disco rígido,um CD-ROM e um MO, um DVD, um DVD-ROM, um DVD-RAM, um BD(Blu-ray Disc) ou uma memória semicondutora, que armazena o programacomputacional ou o sinal digital. Ademais, a presente invenção pode ser oprograma computacional ou o sinal digital gravado em quaisquer dispositivosde meio de armazenamento anteriores.
Além disso, a presente invenção pode ser o programa computa-cional ou o sinal digital transmitido em uma rede de comunicação elétrica,em uma rede de comunicação com ou sem fio, ou em uma rede em que aInternet seja representativa.
Além disso, a presente invenção pode ser um sistema computa-cional que inclua um microprocessador e uma memória, sendo que a memó-ria armazena o programa computacional, e o microprocessador opera deacordo com o programa computacional.
Além disso, através da transferência do programa ou do sinaldigital para o meio de armazenamento, ou transferindo-se o programa ou osinal digital através de uma rede ou similares, o programa ou o sinal digitalpode ser executado por outro sistema computacional independente.(5) A presente invenção pode ser qualquer combinação das mo-dalidades e modificações descritas acima.
(6) A presente invenção consiste em um método de verificaçãousado em um dispositivo de processamento de informação que executa oprocessamento em relação à reprodução de conteúdos através da utilizaçãode uma máquina virtual inclusa no mesmo, sendo que o método de verifica-ção compreende: uma etapa de leitura que serve para ler um programa deverificação armazenado em um meio de armazenamento junto aos conteú-dos; e uma etapa de verificação que serve para verificar, através da utiliza-ção da máquina virtual que executa o programa de verificação, a autentici-dade do dispositivo de processamento de informação que inclui a máquinavirtual.
Aqui, o terno "etapa de leitura" corresponde ao processamentona S202 mostrado na Figura 2 descrito na primeira modalidade.
Da mesma forma, a "etapa de verificação" corresponde ao pro-cessamento na S204 mostrado na Figura 2 descrito na primeira modalidade.
(7) Da mesma forma, no exemplo de modificação (6), a etapa deverificação pode compreender: uma etapa de aquisição que serve para ad-quirir, como a informação de verificação, um valor armazenado em um ende-reço de memória predeterminado no dispositivo de processamento de infor-mação; e uma etapa de julgamento que serve para julgar se o dispositivo deprocessamento de informação é legítimo com base na informação de verifi-cação adquirida.
Aqui, a "etapa de aquisição" corresponde ao processamento naS301 e S304 mostrado na Figura 3 descrito na primeira modalidade.
Da mesma forma, a "etapa de julgamento" corresponde, por e-xemplo, ao processamento descrito na (Verificação de Autenticidade do Am-biente de Execução Incluindo a Máquina Virtual) da primeira modalidade, daseguinte forma: "O código da máquina virtual 121 adquire a informação deverificação de retorno (S304), verifica a informação de verificação e o valorde verificação 403 com base na regra de verificação 404, e passa um resul-tado da verificação para S205 da Figura 2. Neste exemplo, o resultado deverificação é positivo se a informação de verificação for Oxed, e, de outraforma, é negativo".
(8) Da mesma forma, no exemplo de modificação (7), o meio dearmazenamento pode, ainda, ter armazenado nele um programa relacionadoà reprodução que é executado na máquina virtual e inclui um procedimentode processamento que se refere à reprodução dos conteúdos, e o métodode verificação pode, ainda, compreender uma unidade de supressão operá-vel, se o dispositivo de processamento de informação for ilegítimo, para su-primir a execução do procedimento de processamento.
Aqui, o "programa relacionado à reprodução que é executado namáquina virtual e inclui um procedimento de processamento que se refere àreprodução dos conteúdos" corresponde ao programa de comando 811, oarquivo de clip relacionado à informação 812, o arquivo de clip 813, o códigode uso de verificação 814, o código de uso de informação secreta 815 e oarquivo de informação de restauração 816, que são descritos na segundamodalidade através da Figura 8.
Da mesma forma, a "etapa de supressão" corresponde ao casoonde o resultado de verificação é positivo na S1006 da Figura 10 e o pro-cessamento na S1008 é descrito na segunda modalidade.
(9) Da mesma forma, no exemplo de modificação (8), os conteú-dos podem ser transformados com a finalidade de serem restaurados execu-tando-se um processamento de restauração predeterminado, o procedimen-to de processamento pode incluir um procedimento de restauração dos con-teúdos transformados executando-se o processamento de restauração, e aetapa de supressão pode suprimir a execução do processamento de restau-ração.
Aqui, o "processamento de restauração predeterminado" e o"procedimento de restauração de conteúdos transformados executando-se oprocessamento de restauração" correspondem ao processamento descritono (Processamento de Restauração) da segunda modalidade. Por exemplo,o "processamento de restauração predeterminado" e o "procedimento derestauração de conteúdos transformados executando-se o processamentode restauração" correspondem ao processamento realizado pelo código deuso de informação secreta 815, pela unidade de processamento de apresen-tação 831 e pela unidade de processamento de restauração 832.
Da mesma forma, a descrição da "etapa de supressão que podesuprimir a execução do processamento de restauração" corresponde ao pro-cessamento descrito no (Processamento de Restauração) da segunda mo-dalidade, da seguinte forma: "Conforme descrito anteriormente, é possívelrestaurar os dados de conteúdo transformados, e reproduzi-los normalmen-te. Conseqüentemente, quando o resultado do processamento de verificaçãoanterior for, por exemplo, negativo, é possível, sobrepondo-se uma parte, outoda a região da memória 901, tornar a unidade de cálculo de informaçãosecreta 830 incapaz de adquirir a informação secreta correta, tornando im-possível a reprodução normal".
(10) Da mesma forma, no exemplo de modificação (7), a infor-mação de verificação pode ser a informação que se modifica de acordo comuma sincronização.
Aqui, a "informação que se altera de acordo com uma sincroni-zação" corresponde à seguinte descrição em (3) Informação que Dependedo Tempo no (Exemplo da Regra de Verificação) da primeira modalidade:20 "Virtualmente, qualquer informação que varia em relação ao tempo pode serusada no processamento de verificação desta forma".
(11) Da mesma forma, no exemplo de modificação (7), a infor-mação de verificação pode ser a informação que se refere aos conteúdosque são reproduzidos.
Aqui, a "informação que se refere aos conteúdos que são repro-duzidos" corresponde especialmente à descrição em (1) Informação relacio-nada ao Conteúdo no (Exemplo da Regra de Verificação) da primeira moda-lidade.
(12) Da mesma forma, no exemplo de modificação (7), a infor-mação de verificação pode ser a informação que depende de um ambientede execução incluindo a máquina virtual.
Aqui, a "informação que depende de um ambiente de execuçãoincluindo a máquina virtual" corresponde à descrição em (2) Informação quedepende do Ambiente de Execução Incluindo a Máquina Virtual no (Exemploda Regra de Verificação) da primeira modalidade.
(13) Da mesma forma, no exemplo de modificação (7), o meio dearmazenamento pode, ainda, ter armazenado nele um ou mais valores deverificação e em uma ou mais regras de verificação em correspondência, aetapa de julgamento pode compreender uma etapa de comparação que ser-ve para comparar a informação de verificação a um dos valores de verifica-ção com base em uma das regras de verificação que corresponde ao valorde verificação, e se um resultado da comparação satisfizer a regra de verifi-cação, a etapa de julgamento pode julgar se o dispositivo de processamentode informação é legítimo.
Aqui, o "valor de verificação" corresponde ao valor de verificação403 descrito na primeira modalidade através da Figura 5.
Da mesma forma, a "regra de verificação" corresponde à regrade verificação 404.
Da mesma forma, a "etapa de comparação" e a "etapa de julga-mento" correspondem ao processamento descrito na (Verificação de Auten-ticidade do Ambiente de Execução Incluindo a Máquina virtual) da primeiramodalidade, da seguinte forma: "O código da máquina virtual 121 adquire ainformação de verificação de retorno (S304), verifica a informação de verifi-cação e o valor de verificação 403 com base na regra de verificação 404, epassa um resultado da verificação para S205 da Figura 2. Neste exemplo, oresultado de verificação é positivo se a informação de verificação for Oxed, e,de outra forma, é negativo".
(14) Da mesma forma, no exemplo de modificação (13), a etapade aquisição pode compreender uma etapa de solicitação de realizar umasolicitação para um valor armazenado no endereço de memória predetermi-nado em uma sincronização de verificação, o método de verificação podecompreender, ainda, uma etapa de retorno de leitura do valor armazenadoem relação à solicitação, e retorna o valor lido como a informação de verifi-cação ao programa de verificação, a etapa de aquisição pode adquirir o valorde retorno como a informação de verificação e a etapa de comparação poderealizar a comparação usando a informação de verificação adquirida.
Aqui, a "etapa de solicitação" corresponde ao processamentoem S301 mostrado na Figura 3 descrita na primeira modalidade.
Da mesma forma, a "etapa de retorno" corresponde ao proces-samento em S303 mostrado na Figura 3 descrita na primeira modalidade.
(15) Da mesma forma, no exemplo de modificação (13), o meiode armazenamento pode, ainda, ter armazenado nele os valores de verifica-ção e uma ou mais sincronizações de verificação em correspondência, aetapa de comparação pode realizar a comparação usando a informação deverificação adquirida em uma ou mais sincronizações de verificação, o valorde verificação que corresponde à sincronização de verificação, e a regra deverificação que corresponde à sincronização de verificação, a etapa de jul-gamento pode compreender, ainda: uma etapa de repetição que serve pararepetir a execução da etapa de comparação em cada uma das sincroniza-ções de verificação; e uma etapa de determinação que serve para determi-nar o dispositivo de processamento de informação como ilegítimo se umacontagem de resultados negativos da repetição não for menor que um valorpredeterminado.
Aqui, a "sincronização de verificação" corresponde à sincroniza-ção de verificação 402 mostrada na Figura 5 descrita na primeira modalidade.
Da mesma forma, a "etapa de repetição" corresponde especial-mente ao processamento em S203: SIM, S204, S205: SIM, S207: NÃO eS208: NÃO descritas na primeira modalidade.
Da mesma forma, a "sincronização de determinação" correspon-de ao processamento no processamento em S208: SIM.
(16) Da mesma forma, no exemplo de modificação (13), o meiode armazenamento pode, ainda, ter armazenado nele os valores de verifica-ção e as informações de identificação que cada um identifica, exclusivamen-te, a máquina virtual em correspondência, e a etapa de comparação poderealizar a comparação usando um dos valores de verificação que correspon-dem a uma das informações de identificação que identificam a máquina vir-tual inclusa no dispositivo de processamento de informação.
Aqui, a "informação de identificação" corresponde à informaçãode identificação de máquina virtual 117 mostrada na Figura 5 descrita naprimeira modalidade.
(17) Da mesma forma, no exemplo de modificação (7), o meio dearmazenamento pode, ainda, ter armazenado nele uma oü mais sincroniza-ções de verificação e uma ou mais regras de verificação em correspondên-cia, o dispositivo de processamento de informação pode compreender, ain-da, uma unidade de armazenamento que armazena, como a informação porcomparação, um valor armazenado no endereço de memória predetermina-do em uma sincronização predeterminada, a etapa de aquisição pode adqui-rir um valor armazenado no endereço de memória predeterminado em umaou mais sincronizações de verificação, a etapa de julgamento pode compre-ender uma etapa de comparação que serve para comparar a informação deverificação à informação armazenada para comparação com base em umaou mais regras de verificação que correspondem à sincronização de verifica-ção, e a etapa de julgamento pode realizar o julgamento com base em umresultado da comparação.
(18) Da mesma forma, no exemplo de modificação (17), a etapade aquisição pode compreender uma etapa de solicitação de produzir umasolicitação por um valor armazenado na sincronização de verificação, o mé-todo de verificação pode compreender, ainda, uma etapa de retorno queserve para ler o valor armazenado em resposta à solicitação, e para retornaro valor lido como a informação de verificação para o programa de verifica-ção, a etapa de aquisição pode adquirir o valor de retorno como a informa-ção de verificação, e a etapa de comparação pode realizar a comparaçãoutilizando a informação de verificação adquirida.
Aqui, a "unidade de armazenamento" corresponde, por exemplo,com a seguinte descrição em (2) Informação que depende do Ambiente deExecução incluindo a Máquina Virtual no (Exemplo da Regra de Verificação)da primeira modalidade: "Depois, conforme mostrado na tabela da regra deverificação 500 da Figura 5 armazenada no módulo de armazenamento dainformação de verificação 1122, quando um disco é inserido, o ambiente deexecução incluindo a máquina virtual é produzido de modo a gerar um nú-mero aleatório e armazenar no endereço OxOOaaOOIO.".
Da mesma forma, a "etapa de aquisição", a "etapa de compara-ção" e a "etapa de julgamento" são baseadas na seguinte descrição em (2)Informação que depende do Ambiente de Execução incluindo a MáquinaVirtual no (Exemplo da Regra de verificação) da primeira modalidade: "Sub-seqüentemente, no início da reprodução ou mediante uma operação do usu-ário, o ambiente de execução é produzido de modo a gerar e armazenar umnúmero aleatório no endereço 0x00aa0010 novamente. O código da máqui-na virtual 121 adquire este número aleatório recentemente gerado, o compa-ra com o número aleatório previamente armazenado, e se o novo valor fordiferente, fornece uma verificação positiva".
Da mesma forma, a "etapa de solicitação" corresponde ao pro-cessamento em S301 mostrado na Figura 3 descrita na primeira modalidade.
Da mesma forma, a "etapa de retorno" corresponde ao proces-samento em S303 mostrado na Figura 3 descrita na primeira modalidade.
(19) Da mesma forma, no exemplo de modificação (17), o dispo-sitivo de processamento de informação pode compreender, ainda, uma uni-dade de geração de número aleatório operável com a finalidade de gerar umnúmero aleatório, o método de verificação pode compreender uma etapa degeração de número aleatório fazendo com que a unidade de geração denúmero aleatório gere um número aleatório em cada uma das sincroniza-ções de verificação e armazene o número aleatório gerado no endereço pre-determinado, a etapa de aquisição pode realizar a aquisição da informaçãode verificação através da leitura do número aleatório armazenado na sincro-nização de verificação, e se a informação de verificação for diferente da in-formação de comparação na comparação, a etapa de julgamento pode julgaro dispositivo de processamento de informação como legítimo.
Aqui, a "unidade de geração de número aleatório" corresponde àunidade de geração de número aleatório 601 mostrada na Figura 6 descritana primeira modalidade.
Da mesma forma, a "etapa de armazenamento de número alea-tório" e a "etapa de julgamento" correspondem às seguintes descrições em(2) Informação que depende do Ambiente de Execução incluindo a MáquinaVirtual no (Exemplo da Regra de verificação) da primeira modalidade: "De-pois, conforme mostrado na tabela da regra de verificação 500 da Figura 5armazenada no módulo de armazenamento da informação de verificação1122, quando um disco é inserido, o ambiente de execução incluindo a má-quina virtual é produzido de modo a gerar um número aleatório e armazenaro número aleatório no endereço OxOOaaOOI0". "Subseqüentemente, no inícioda reprodução ou mediante uma operação do usuário, o ambiente de execu-ção é produzido de modo a gerar e armazenar um número aleatório no en-dereço 0x00aa0010 novamente. O código da máquina virtual 121 adquireeste número aleatório recentemente gerado, o compara com o número alea-tório previamente armazenado, e se o novo valor for diferente, fornece umaverificação positiva".
(20) Da mesma forma, no exemplo de modificação (19), a unida-de de geração de número aleatório pode realizar a geração com base nainformação que depende do ambiente de execução incluindo a máquina vir-tual.
Aqui, a "unidade de geração de número aleatório" corresponde,por exemplo, à seguinte descrição em (2) Informação que depende do Am-biente de Execução incluindo a Máquina Virtual no (Exemplo da Regra deverificação) da primeira modalidade: "Note que a escolha de um valor, comoum endereço ou a informação de identificação de máquina virtual 117, quedifira do ambiente de execução incluindo uma máquina virtual como umasemente para o número aleatório reduzirá as chances de se gerar o mesmonúmero aleatório.".
(21) Da mesma forma, no exemplo de modificação (17), o dispo-sitivo de processamento de informação pode compreender, ainda, uma uni-dade de relógio operável em relação a um relógio e grava o tempo no ende-reço de memória predeterminado, a unidade de armazenamento pode arma-zenar o tempo gravado na sincronização predeterminada como a informaçãopara comparação, a etapa de aquisição pode realizar a aquisição da infor-mação de verificação através da leitura e do tempo gravado na sincroniza-ção de verificação, se o tempo mostrado pela informação de verificação formaior que o tempo mostrado pela informação por comparação, a etapa dejulgamento pode julgar o dispositivo de processamento de informação comolegítimo.
Aqui, a "unidade de relógio" corresponde à unidade de relógio701 mostrada na Figura 7 descrita na primeira modalidade.
Da mesma forma, a "unidade de armazenamento", a "etapa deaquisição" e a "etapa de julgamento" correspondem, por exemplo, à seguintedescrição em (3) Tempo que depende da Informação no (Exemplo da Regrade verificação) da primeira modalidade: "Depois, conforme indicado na tabe-la da regra de verificação 500 da Figura 5, que fica armazenada no módulode armazenamento da informação de verificação 1122, quando um disco forinserido, o código da máquina virtual 121 adquire um valor para o tempo a-tual a partir do 0x00eee002, e armazena o valor. Depois, quando um arquivode clip for comutado, o código da máquina virtual adquire um valor para otempo atual a partir do mesmo endereço, o compara ao valor previamentearmazenado, e se o valor para o tempo atual for maior que o valor armaze-nado fornece uma verificação positiva".
(22) Da mesma forma, a presente invenção é um dispositivo deprocessamento de informação que executa o processamento em relação àreprodução de conteúdos armazenados em um meio de armazenamento eincluem neles uma máquina virtual, onde o meio de armazenamento temarmazenado nele um programa de verificação que verifica a autenticidade dodispositivo de processamento de informação sendo executado na máquinavirtual, e o dispositivo de processamento de informação compreende: umaunidade de leitura operável para ler o programa de verificação a partir domeio de armazenamento; uma unidade de recebimento operável para rece-ber, a partir do programa de verificação, uma solicitação por um valor arma-zenado na sincronização de verificação em um endereço de memória prede-terminado no dispositivo de processamento de informação; e uma unidadede retorno operável, mediante o recebimento da solicitação, para ler o valore retornar o valor lido para o programa de verificação.
Da mesma forma, a presente invenção é um circuito integradoimplementado em um dispositivo de processamento de informação que exe-cuta o processamento em relação à reprodução de conteúdos armazenadosem um meio de armazenamento e inclui nele uma máquina virtual, onde omeio de armazenamento tem armazenado nele um programa de verificaçãoque verifica a autenticidade do dispositivo de processamento de informaçãosendo executado na máquina virtual, e o circuito integrado compreende: umaunidade de leitura operável para ler o programa de verificação a partir domeio de armazenamento; uma unidade de recebimento para receber, a partirdo programa de verificação, uma solicitação por um valor armazenado emum endereço de memória predeterminado no dispositivo de processamentode informação na sincronização de verificação; e uma unidade de retornooperável, mediante o recebimento da solicitação, para ler o valor armazena-do e retornar o valor lido para o programa de verificação.
Aqui, o "programa de verificação" corresponde ao módulo deverificação da máquina virtual 1121 mostrado na Figura 1.
Da mesma forma, a "unidade de leitura" corresponde à unidadede leitura do disco 111 mostrado na Figura 1.
Da mesma forma, a "unidade de recebimento" e a "unidade deretorno" são realizadas pela unidade de execução da máquina virtual 1113dos códigos de comando de leitura, decodificação e execução inclusos nocódigo de execução da máquina virtual 15.
Da mesma forma, a presente invenção é um meio de armaze-namento que tem armazenado nele um programa de verificação que executao processamento em relação à reprodução de conteúdos e verifica a autenti-cidade de um dispositivo de processamento de informação que inclui neleuma máquina virtual, onde o programa de verificação compreende: uma eta-pa de aquisição de adquirir, como a informação de verificação, um valor ar-mazenado em um endereço de memória predeterminado no dispositivo deprocessamento de informação; e uma etapa de julgamento para julgar se odispositivo de processamento de informação é legítimo com base na infor-mação de verificação adquirida.
Da mesma forma, a presente invenção é um programa de verifi-cação que faz com que um dispositivo de processamento de informação,que inclui nele uma máquina virtual, verifique a autenticidade do dispositivode processamento de informação, sendo que o dispositivo de processamen-to de informação executa o processamento em relação à reprodução de con-teúdos armazenados em um meio de armazenamento, sendo que o progra-ma de verificação compreende: uma etapa de aquisição para adquirir, comoa informação de verificação, um valor armazenado em um endereço de me-mória predeterminado no dispositivo de processamento de informação; euma etapa de julgamento para julgar se o dispositivo de processamento deinformação é legítimo com base na informação de verificação adquirida.
Aqui, a "etapa de aquisição" corresponde ao processamento emS301 e S304 mostradas na Figura 3 descrita na primeira modalidade.
Da mesma forma, a "etapa de julgamento" corresponde, por e-xemplo, à seguinte descrição na (Verificação de Autenticidade do Ambientede Execução Incluindo a Máquina Virtual) da primeira modalidade: "O códigoda máquina virtual 121 adquire a informação de verificação de retorno(S304), verifica a informação de verificação e o valor de verificação 403 combase na regra de verificação 404, e passa um resultado da verificação paraS205 da Figura 2. Neste exemplo, o resultado de verificação é positivo se ainformação de verificação for Oxed, e, de outra forma, negativo".
(23) Da mesma forma, a presente invenção pode ter a seguinteestrutura.
(23-1) A presente invenção é um método de processamento deinformação que serve para executar um código de máquina virtual utilizandouma máquina virtual, sendo que o método de processamento de informaçãocompreende etapas de verificação para verificar a autenticidade de um am-biente de execução incluindo a máquina virtual que utiliza o código de má-quina virtual; e uma etapa de suspensão para suspender o processamentoda máquina virtual se for julgado que o ambiente de execução é ilegítimo naetapa de verificação.
(23-2) No método de processamento da informação no exemplode modificação (23-1), a etapa de verificação pode compreender: uma etapade aquisição para adquirir a informação armazenada no ambiente de execu-ção; uma etapa de fornecimento que faz com que a máquina virtual forneçao código de máquina virtual junto à informação; e uma etapa de verificaçãoque faz com que o código de máquina virtual compare a informação à infor-mação de verificação armazenada na máquina virtual, e verifique a autenti-cidade da máquina virtual com base em uma regra estipulada na máquinavirtual.
(23-3) Da mesma forma, no exemplo de modificação (23-2), a"informação" pode ser a informação que se refere ao conteúdo processadono ambiente de execução incluindo a máquina virtual.
(23-4) Da mesma forma, no exemplo de modificação (23-2), a"informação" pode ser a informação que depende do ambiente de execuçãoincluindo a máquina virtual.
(23-5) Da mesma forma, no exemplo de modificação (23-2), a"informação" pode ser a informação que se transforma dinamicamente emum estado do ambiente de execução incluindo a máquina virtual ou um es-tado de conteúdos.
(23-6) Da mesma forma, a presente invenção é um programaque faz com que um computador execute um das etapas inclusas no métodode processamento de informação descrito em qualquer um dos exemplos demodificação (23-1) a (23-5).
(23-7) Da mesma forma, a presente invenção é um meio de ar-mazenamento legível por computador que tem armazenado nele um pro-grama que faz com que um computador execute uma das etapas inclusas nométodo de processamento de informação descrito em qualquer um dos e-xemplos de modificação (23-1) a (23-5).
APLICABILIDADE INDUSTRIAL
O dispositivo de processamento de informação da presente in-venção, que utiliza uma máquina virtual para executar programas sem de-pender de uma plataforma, é eficaz em casos que demandam segurançanos programas que operam na máquina virtual, como um programa paraproteção de direitos autorais.
DESCRIÇÃO DOS CARACTERES
101, 801, e 1201: dispositivo de processamento de informações
102, 802, e 1202: meio de armazenamento111: unidade de leitura de disco
112: unidade de recepção de operação de usuário
113: unidade de execução de máquina virtual
114: unidade de armazenamento de informação115: código de execução de máquina virtual117: informação de identificação de máquina virtual118: unidade de armazenamento de informação de trabalho121: código de máquina virtual
1151: módulo de aquisição de valor de verificação1154: módulo de execução de código de máquina virtual1121: módulo de verificação de máquina virtual1122: módulo de armazenamento de informação de verificação1123: módulo de processamento dependente de código
400: tabela de regra de verificação para cada máquina virtual401: endereço
402: sincronização de verificação403: valor de verificação404: regra de verificação
500: tabela de regra de verificação armazenada pelo módulo dearmazenamento de informação de verificação 1122813, 1113, e 1213: arquivo de clip814: código de uso de verificação815: código de uso de informação secreta
816: arquivo de informação de restauração824 e 1224: unidade de gerenciamento de módulo827 e 1227: unidade de controle de reprodução
829 e 1229: unidade de processamento de verificação
830 e 1230: unidade de cálculo de informação secreta
831, 1131, e 1231: unidade de processamento de apresentação
832, 1132, e 1232: unidade de processamento de restauração
901: memória
902: memória de informação de verificação
903: informação de identificação de máquina virtual
904: informação de gerenciamento de interrupção
905: informação de gerenciamento de interrupção de uso de in-formação secreta

Claims (25)

1. Método de verificação usado em um dispositivo de processa-mento de informações (101, 801, 1201) que executa o processamento quese refere à reprodução de conteúdos pelo uso de uma máquina virtual inclu-ida no mesmo, o método de verificação caracterizado pelo fato de quecompreende as etapas de:ler um programa de verificação armazenado em um meio de ar-mazenamento (102, 802, 1202) junto aos conteúdos; everificar, pelo uso de uma máquina virtual que executa o pro-grama de verificação, a legitimidade do dispositivo de processamento deinformações (101, 801, 1201) que inclui a máquina virtual.
2. Método de verificação, de acordo com a reivindicação 1, emcaracterizado pelo fato de que a etapa de verificar compreende as etapas de:adquirir, como informação de verificação, um valor armazenadoem um endereço (401) de memória (901) predeterminado no dispositivo deprocessamento de informações (101, 801, 1201); ejulgar se o dispositivo de processamento de informações (101,-801, 1201) é legítimo com base na informação de verificação adquirida.
3. Método de verificação, de acordo com a reivindicação 2, ca-racterizado pelo fato de que a informação de verificação é a informaçãoque se refere aos conteúdos que são reproduzidos.
4. Método de verificação, de acordo com a reivindicação 2, ca-racterizado pelo fato de que a informação de verificação é a informaçãoque depende de um ambiente de execução que inclui a máquina virtual.
5. Método de verificação, de acordo com a reivindicação 2, ca-racterizado pelo fato de que o meio de armazenamento (102, 802, 1202)adicionalmente tem armazenado nele um ou mais valores de verificação(403) e uma ou mais regras de verificação (404) em correspondência,a etapa de julgar compreende a etapa de comparar a informaçãode verificação com um dos valores de verificação (403) armazenados combase em uma das regras de verificação (404) que corresponde ao valor deverificação (403), ese um resultado da comparação satisfaz a regra de verificação(404), a etapa de julgar julga que o dispositivo de processamento de infor-mações (101, 801, 1201) é legítimo.
6. Método de verificação, de acordo com a reivindicação 2, ca-racterizado pelo fato de quea etapa de adquirir compreende a etapa de solicitar um valorarmazenado no endereço (401) de memória (901) predeterminado em umasincronização de verificação (402),o método de verificação adicionalmente còmpreendendo as eta-pas de ler o valor armazenado em resposta à solicitação, e retornar o valorlido como a informação de verificação para o programa de verificação,a etapa de adquirir adquire o valor retornado como a informaçãode verificação, ea etapa de comparação compara usando a informação de verifi-cação adquirida.
7. Método de verificação, de acordo com a reivindicação 5, ca-racterizado pelo fato de queo meio de armazenamento (102, 802, 1202) adicionalmente temarmazenado nele os valores de verificação (403) e uma ou mais sincroniza-ções de verificação em correspondência,a etapa de comparar compara usando a informação de verifica-ção adquirida em uma das sincronizações de verificação, o valor de verifica-ção (403) correspondendo à sincronização de verificação (402) e a regra deverificação (404) correspondendo à sincronização de verificação (402),a etapa de julgar adicionalmente compreende as etapas de:repetir a execução da etapa de comparar em cada uma das sin-cronizações de verificação; edeterminar o dispositivo de processamento da informação (101, 801, 1201) como ilegítimo se uma contagem dos resultados negativos darepetição não for menor do que um valor predeterminado.
8. Método de verificação, de acordo com a reivindicação 5, ca-racterizado pelo fato de que:o meio de armazenamento (102, 802, 1202) adicionalmente temarmazenado nele os valores de verificação (403) e parcelas das informaçõesde identificação, sendo que cada informação de identificação identifica ex-clusivamente a máquina virtual em correspondência; ea etapa de comparar compara usando um dos valores de verifi-cação (403) correspondentes a uma parcela da informação de identificaçãoque identifica a máquina virtual inclusa no dispositivo de processamento deinformação (101, 801, 1201).
9. Método de verificação, de acordo com a reivindicação 2, ca-racterizado pelo fato de que:o meio de armazenamento (102, 802, 1202) adicionalmente temarmazenado nele uma ou mais sincronizações de verificação e uma ou maisregras de verificação (404) em correspondência;o dispositivo de processamento de informação (101, 801, 1201)adicionalmente compreende uma unidade de armazenamento que armaze-na, como informação para comparação, um valor armazenado no endereço(401) de memória (901) predeterminado em uma sincronização predetermi-nada;a etapa de adquirir adquire o valor armazenado no endereço(401) de memória (901) predeterminado em uma das sincronizações de veri-ficação;a etapa de julgar compreende a etapa de comparar a informaçãode verificação com a informação armazenada para comparação com baseem uma das regras de verificação (404) que corresponde à sincronização deverificação (402); ea etapa de julgar julga com base em um resultado da comparação.
10. Método de verificação, de acordo com a reivindicação 9,caracterizado pelo fato de que:a etapa de adquirir compreende a etapa de solicitar um valorarmazenado na sincronização de verificação (402);o método de verificação ainda compreendendo as etapas de lero valor armazenado em resposta à solicitação, e retornar o valor lido como ainformação de verificação para o programa de verificação;a etapa de adquirir adquire o valor de retorno como a informaçãode verificação; ea etapa de comparar compara utilizando a informação de verifi-cação adquirida.
11. Método de verificação, de acordo com a reivindicação 9,caracterizado pelo fato de que:o dispositivo de processamento de informação (101, 801, 1201)ainda compreende uma unidade de geração de número aleatório operávelpara gerar um número aleatório;o método de verificação compreende uma etapa de armazenar onúmero aleatório que faz com que a unidade de geração de número aleató-rio gere um número aleatório em cada uma das sincronizações de verifica-ção, e armazene o número aleatório gerado no endereço (401) predetermi-nado;a etapa de adquirir adquire a informação de verificação atravésda leitura do número aleatório armazenado na sincronização de verificação(402); ese a informação de verificação for diferente da informação decomparação na comparação, a etapa de julgar julga o dispositivo de proces-samento de informação (101, 801,1201) como legítimo.
12. Método de verificação, de acordo com a reivindicação 11,caracterizado pelo fato de que:a unidade de geração de número aleatório realiza a geraçãocom base na informação que depende do ambiente de execução incluindo amáquina virtual.
13. Método de verificação, de acordo com a reivindicação 9,caracterizado pelo fato de que:o dispositivo de processamento de informação (101, 801, 1201)ainda compreende uma unidade de medição do tempo operável para marcaro tempo e gravar o tempo no endereço (401) de memória (901) predetermi-nado;a unidade de armazenamento armazena o tempo gravado nasincronização predeterminada como a informação para comparação;a etapa de adquirir adquire a informação de verificação atravésda leitura do tempo gravado na sincronização de verificação (402); ese o tempo mostrado pela informação de verificação for maiorque o tempo mostrado pela informação para comparação na comparação, aetapa de julgar julga o dispositivo de processamento de informação (101,-801, 1201) como legítimo.
14. Método de verificação, de acordo com a reivindicação 3, ca-racterizado pelo fato de que a informação relacionada com os conteúdosque são reproduzidos é um tamanho de arquivo de um arquivo armazenadono meio de armazenamento (102, 802, 1202).
15. Método de verificação, de acordo com a reivindicação 3, ca-racterizado pelo fato de que a informação relacionada com os conteúdosque são reproduzidos é uma medição de tempo de um arquivo armazenadono meio de armazenamento (102, 802, 1202).
16. Método de verificação, de acordo com a reivindicação 3, ca-racterizado pelo fato de que a informação relacionada com os conteúdosque são reproduzidos é parte ou todos os valores de uma tabela de disper-são de conteúdos armazenados em um meio de armazenamento (102, 802,-1202).
17. Método de verificação, de acordo com a reivindicação 3, ca-racterizado pelo fato de que a informação relacionada com os conteúdosque são reproduzidos é parte ou toda de uma informação sonora para quan-do um botão é clicado.
18. Método de verificação, de acordo com a reivindicação 4, ca-racterizado pelo fato de que a informação que depende do ambiente deexecução que inclui a máquina virtual é um número aleatório gerado peloambiente de execução.
19. Método de verificação, de acordo com a reivindicação 4, ca-racterizado pelo fato de que a informação que depende do ambiente deexecução que inclui a máquina virtual é informação relacionada aos recursosdo ambiente de execução.
20. Método de verificação, de acordo com a reivindicação 4, ca-racterizado pelo fato de que a informação que depende do ambiente deexecução que inclui a máquina virtual são valores dispersos calculados u-sando os valores mais recentes retornados pelo programa de verificaçãoexecutado pelo ambiente de execução.
21. Método de verificação, de acordo com a reivindicação 4, ca-racterizado pelo fato de que a informação que depende do ambiente deexecução que inclui a máquina virtual é a informação que se relaciona com oque é exibido pelo ambiente de execução.
22. Dispositivo de processamento de informação (101, 801, 1201) que executa o processamento em relação à reprodução de conteúdosarmazenados em um meio de armazenamento (102, 802, 1202) e inclui neleuma máquina virtual, caracterizado pelo fato de que:o meio de armazenamento (102, 802, 1202) tem armazenadonele um programa de verificação que verifica a autenticidade do dispositivode processamento de informação (101, 801, 1201) que está sendo executa-do na máquina virtual; eo dispositivo de processamento de informação (101, 801, 1201)compreendendo:uma unidade de leitura operável para ler o programa de verifica-ção a partir do meio de armazenamento (102, 802, 1202);uma unidade de recebimento operável para receber, a partir doprograma de verificação, uma solicitação por um valor armazenado na sin-cronização de verificação (402) em um endereço (401) de memória (901)predeterminado no dispositivo de processamento de informação (101, 801,1201); euma unidade de retorno operável, mediante o recebimento dasolicitação, para ler o valor armazenado e retornar o valor lido no programade verificação.
23. Circuito integrado implementado em um dispositivo de pro-cessamento de informação (101, 801, 1201) que executa o processamentoem relação à reprodução de conteúdos armazenados em um meio de arma-zenamento (102, 802, 1202) e inclui nele uma máquina virtual, caracteriza-do pelo fato de que:o meio de armazenamento (102, 802, 1202) tem armazenadonele um programa de verificação que verifica a autenticidade do dispositivode processamento de informação (101, 801, 1201) que está sendo executa-do na máquina virtual; eo circuito integrado compreendendo:uma unidade de leitura operável para ler o programa de verifica-ção a partir do meio de armazenamento (102, 802, 1202);uma unidade de recebimento operável para receber, a partir doprograma de verificação, uma solicitação por um valor armazenado em umendereço (401) de memória (901) predeterminado no dispositivo de proces-samento de informação (101, 801, 1201) na sincronização de verificação(402); euma unidade de retorno operável para, mediante o recebimentoda solicitação, ler o valor armazenado e retornar o valor lido para programade verificação.
24. Meio de armazenamento (102, 802, 1202) que tem armaze-nado nele um programa de verificação que executa o processamento emrelação à reprodução de conteúdos e verifica a autenticidade de um disposi-tivo de processamento de informação (101, 801, 1201) que tem incluso neleuma máquina virtual, o programa de verificação caracterizado pelo fato deque compreende as etapas de:adquirir, como informação de verificação, um valor armazenadoem um endereço (401) de memória (901) predeterminado no dispositivo deprocessamento de informação (101, 801,1201); ejulgar se o dispositivo de processamento de informação (101,-801, 1201) é legítimo com base na informação de verificação adquirida.
25. Programa de verificação que induz o dispositivo de proces-samento de informação (101, 801, 1201), que tem incluso nele uma máqui-na, a verificar a autenticidade do dispositivo de processamento de informa-ção (101, 801, 1201), o dispositivo de processamento de informação execu-tando o processamento em relação à reprodução de conteúdos armazena-dos em um meio de armazenamento (102, 802, 1202), o programa de verifi-cação caracterizado pelo fato de que compreende as etapas de:adquirir, como informação de verificação, um valor armazenadoem um endereço (401) de memória (901) predeterminado no dispositivo deprocessamento de informação (101, 801,1201); ejulgar se o dispositivo de processamento de informação é legíti-mo com base na informação de verificação adquirida.
BRPI0612995-1A 2005-07-14 2006-07-12 mÉtodo de verificaÇço, dispositivo de processamento de informaÇço, circuito integrado implementado em um dispositivo de processamento de informaÇço, meio de armazenamento e programa de verificaÇço BRPI0612995A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US69893105P 2005-07-14 2005-07-14
US60/698,931 2005-07-14
PCT/JP2006/313898 WO2007007805A1 (ja) 2005-07-14 2006-07-12 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路

Publications (1)

Publication Number Publication Date
BRPI0612995A2 true BRPI0612995A2 (pt) 2010-12-14

Family

ID=37637195

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0612995-1A BRPI0612995A2 (pt) 2005-07-14 2006-07-12 mÉtodo de verificaÇço, dispositivo de processamento de informaÇço, circuito integrado implementado em um dispositivo de processamento de informaÇço, meio de armazenamento e programa de verificaÇço

Country Status (5)

Country Link
US (1) US8281362B2 (pt)
JP (1) JP4889638B2 (pt)
CN (1) CN100589112C (pt)
BR (1) BRPI0612995A2 (pt)
WO (1) WO2007007805A1 (pt)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4083200B2 (ja) * 2005-06-28 2008-04-30 松下電器産業株式会社 検証方法、情報処理装置、記録媒体、検証システム、証明プログラム及び検証プログラム
EP2276027A3 (en) * 2005-07-19 2012-03-14 Samsung Electronics Co., Ltd. Method and apparatus for a scrambled part of content
JP4655951B2 (ja) 2006-02-06 2011-03-23 ソニー株式会社 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
US20080244753A1 (en) * 2007-03-30 2008-10-02 Motorola, Inc. Instruction Transform for the Prevention and Propagation of Unauthorized Code Injection
GB0721429D0 (en) 2007-10-31 2007-12-12 Icera Inc Processing signals in a wireless communications environment
US8675868B1 (en) * 2008-07-01 2014-03-18 Maxim Integrated Products, Inc. Encrypting an address-dependent value along with code to prevent execution or use of moved code
US8954897B2 (en) * 2008-08-28 2015-02-10 Microsoft Corporation Protecting a virtual guest machine from attacks by an infected host
US8595361B2 (en) * 2009-02-10 2013-11-26 Novell, Inc. Virtual machine software license management
US8966082B2 (en) * 2009-02-10 2015-02-24 Novell, Inc. Virtual machine address management
US9495190B2 (en) * 2009-08-24 2016-11-15 Microsoft Technology Licensing, Llc Entropy pools for virtual machines
KR100945476B1 (ko) * 2009-09-10 2010-03-05 주식회사 파수닷컴 가상화 기술을 이용한 디지털 저작권 관리 장치 및 방법
KR20130050696A (ko) * 2011-11-08 2013-05-16 삼성전자주식회사 메모리 시스템
CN102663290A (zh) * 2012-03-23 2012-09-12 中国科学院软件研究所 一种基于虚拟机的数字版权保护方法
JP5953867B2 (ja) * 2012-03-26 2016-07-20 富士ゼロックス株式会社 プログラム、及びプログラム保護装置
US10331883B2 (en) * 2016-09-28 2019-06-25 International Business Machines Corporation Malicious code avoidance using transparent containers
US10666443B2 (en) * 2016-10-18 2020-05-26 Red Hat, Inc. Continued verification and monitoring of application code in containerized execution environment
CN110023908B (zh) * 2017-03-31 2020-12-08 三菱电机株式会社 信息处理装置及信息处理方法
FR3065553B1 (fr) * 2017-04-20 2019-04-26 Idemia Identity And Security Procede d'execution d'un programme destine a etre interprete par une machine virtuelle protege contre des attaques par injection de faute
CN114897667A (zh) * 2022-05-27 2022-08-12 青岛信芯微电子科技股份有限公司 图像处理方法、装置、电子设备及可读存储介质
WO2024161649A1 (ja) * 2023-02-03 2024-08-08 日本電信電話株式会社 処理装置、処理方法およびプログラム

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526041B1 (en) 1998-09-14 2003-02-25 Siemens Information & Communication Networks, Inc. Apparatus and method for music-on-hold delivery on a communication system
US6883163B1 (en) * 2000-04-28 2005-04-19 Sun Microsystems, Inc. Populating resource-constrained devices with content verified using API definitions
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
US7308717B2 (en) * 2001-02-23 2007-12-11 International Business Machines Corporation System and method for supporting digital rights management in an enhanced Java™ 2 runtime environment
JP3565174B2 (ja) 2001-03-12 2004-09-15 株式会社三洋物産 制御装置
US7987510B2 (en) * 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
JP4390405B2 (ja) * 2001-05-31 2009-12-24 富士通株式会社 コンピュータシステム、サービス層、ポリシーキャッシュ機能部およびポリシー管理装置
GB2376764B (en) * 2001-06-19 2004-12-29 Hewlett Packard Co Multiple trusted computing environments
US7562232B2 (en) * 2001-12-12 2009-07-14 Patrick Zuili System and method for providing manageability to security information for secured items
US20030126590A1 (en) * 2001-12-28 2003-07-03 Michael Burrows System and method for dynamic data-type checking
US7719980B2 (en) * 2002-02-19 2010-05-18 Broadcom Corporation Method and apparatus for flexible frame processing and classification engine
JP3761505B2 (ja) * 2002-03-04 2006-03-29 株式会社東芝 通信システム、無線通信端末及び無線通信装置
CN1464688A (zh) 2002-06-25 2003-12-31 赖育成 一种网络资源管理系统
JP2004179877A (ja) * 2002-11-26 2004-06-24 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8121955B2 (en) * 2003-01-16 2012-02-21 Oracle America, Inc. Signing program data payload sequence in program loading
US8695019B2 (en) * 2003-02-14 2014-04-08 Actividentity (Australia) Pty Ltd System and method for delivering external data to a process running on a virtual machine
JP4093899B2 (ja) * 2003-04-03 2008-06-04 シャープ株式会社 データ送信装置及びデータ受信装置及びデータ通信システム及びデータ通信管理用サーバ
US20040225880A1 (en) * 2003-05-07 2004-11-11 Authenture, Inc. Strong authentication systems built on combinations of "what user knows" authentication factors
US7469346B2 (en) * 2003-06-27 2008-12-23 Disney Enterprises, Inc. Dual virtual machine architecture for media devices
AU2004252921B2 (en) 2003-06-27 2009-07-16 Disney Enterprises, Inc. Dual virtual machine and trusted platform module architecture for next generation media players
US20050049886A1 (en) * 2003-08-28 2005-03-03 Sbc Knowledge Ventures, L.P. System and method for managing digital rights and content assets
JP4649865B2 (ja) * 2003-11-06 2011-03-16 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP2005182712A (ja) 2003-12-24 2005-07-07 Meidensha Corp コンピュータ間のデータ処理方法
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US7370233B1 (en) * 2004-05-21 2008-05-06 Symantec Corporation Verification of desired end-state using a virtual machine environment
CA2569714A1 (en) * 2004-06-08 2005-12-22 Dartdevices Corporation Architecture, apparatus and method for device team recruitment and content renditioning for universal device interoperability platform
US20050283502A1 (en) * 2004-06-18 2005-12-22 Ami Heitner Methods and systems for reconciling data
JP4626221B2 (ja) * 2004-06-24 2011-02-02 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP4727342B2 (ja) * 2004-09-15 2011-07-20 ソニー株式会社 画像処理装置、画像処理方法、画像処理プログラム及びプログラム格納媒体
JP4376233B2 (ja) * 2005-02-04 2009-12-02 株式会社エヌ・ティ・ティ・ドコモ クライアント装置、デバイス検証装置及び検証方法
JP4671720B2 (ja) * 2005-03-11 2011-04-20 株式会社日立製作所 ストレージシステム及びデータ移動方法
JP4654806B2 (ja) * 2005-07-15 2011-03-23 ソニー株式会社 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
CN100589112C (zh) 2010-02-10
US8281362B2 (en) 2012-10-02
JPWO2007007805A1 (ja) 2009-01-29
US20080046680A1 (en) 2008-02-21
WO2007007805A1 (ja) 2007-01-18
CN101223535A (zh) 2008-07-16
JP4889638B2 (ja) 2012-03-07

Similar Documents

Publication Publication Date Title
BRPI0612995A2 (pt) mÉtodo de verificaÇço, dispositivo de processamento de informaÇço, circuito integrado implementado em um dispositivo de processamento de informaÇço, meio de armazenamento e programa de verificaÇço
US7237123B2 (en) Systems and methods for preventing unauthorized use of digital content
US8473739B2 (en) Advanced content authentication and authorization
TWI236594B (en) Multi-token seal and unseal
US7073059B2 (en) Secure machine platform that interfaces to operating systems and customized control programs
KR100458036B1 (ko) 오디오비쥬얼데이터를부정복사로부터보호하면서재생하는데적합한마이크로프로세서및그것을이용한영상정보처리시스템
JP4906913B2 (ja) 再生装置、システムlsi、初期化方法
JP4083200B2 (ja) 検証方法、情報処理装置、記録媒体、検証システム、証明プログラム及び検証プログラム
TWI470469B (zh) 使用虛擬化保護視訊內容之方法、物品和裝置
US20050204126A1 (en) Dual virtual machine architecture for media devices
US20050033972A1 (en) Dual virtual machine and trusted platform module architecture for next generation media players
US9197407B2 (en) Method and system for providing secret-less application framework
WO2025086710A1 (zh) 一种片上系统安全启动方法、装置、电子设备及存储介质
CN102982262B (zh) 用于开发的操作系统的安全机制
JP2002344441A (ja) ディジタルデータ暗号システム、ディジタルデータ再生装置、ディジタルデータ暗号方法、ディジタルデータ再生方法およびそれらの方法をコンピュータに実行させるプログラム
JP2006229597A (ja) 再生装置、プログラムおよび方法
AU2002219852B2 (en) Systems and methods for preventing unauthorized use of digital content
US20080040806A1 (en) Method and apparatus for securing unprotected content files from unauthorized use
WO2001008345A1 (en) A computer system and process for accessing an encrypted and self-decrypting digital information product
JPH10164511A (ja) マイクロプロセッサ及び映像情報処理システム
AU2002219852A1 (en) Systems and methods for preventing unauthorized use of digital content
AU2010202883B2 (en) Systems and Methods for Preventing Unauthorized Use of Digital Content
KR20080012724A (ko) 기록매체, 데이터 기록방법 및 기록장치와 데이터 재생방법및 재생장치
Diquet Digital Right Management on embedded systems; Protecting video content in players

Legal Events

Date Code Title Description
B25D Requested change of name of applicant approved

Owner name: SONY CORPORATION (JP) , PANASONIC CORPORATION (JP)

B15K Others concerning applications: alteration of classification

Ipc: G06F 21/51 (2013.01), G06F 21/53 (2013.01)

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B12B Appeal against refusal [chapter 12.2 patent gazette]