BRPI0801772B1 - Método implementado por computador, sistema de tratamento de informação e meio de armazenamento legível por computador - Google Patents

Método implementado por computador, sistema de tratamento de informação e meio de armazenamento legível por computador Download PDF

Info

Publication number
BRPI0801772B1
BRPI0801772B1 BRPI0801772-7A BRPI0801772A BRPI0801772B1 BR PI0801772 B1 BRPI0801772 B1 BR PI0801772B1 BR PI0801772 A BRPI0801772 A BR PI0801772A BR PI0801772 B1 BRPI0801772 B1 BR PI0801772B1
Authority
BR
Brazil
Prior art keywords
rental
hypervisor
metric
response
limit
Prior art date
Application number
BRPI0801772-7A
Other languages
English (en)
Inventor
Daryl Carvis Cromer
Howard Locker
Randall S. Springfield
Original Assignee
Lenovo (Singapore) Pte. Ltd
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 Lenovo (Singapore) Pte. Ltd filed Critical Lenovo (Singapore) Pte. Ltd
Publication of BRPI0801772A2 publication Critical patent/BRPI0801772A2/pt
Publication of BRPI0801772B1 publication Critical patent/BRPI0801772B1/pt
Publication of BRPI0801772B8 publication Critical patent/BRPI0801772B8/pt

Links

Images

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

sistema e método para usar um hipervisor para controlar acesso a um computador de aluguel. um sistema, método, e produto de programa de computador que executa um hipervisor a fim de controlar o acesso a um sistema de computador de aluguel. o hipervisor realiza as etapas que incluem: a leitura de uma métrica aluguel de uma área de armazenamento não volátil, comparar a métrica de aluguel com um limite de aluguel, permitir a utilização de um ou mais sistemas operacionais convidados por um usuário do sistema de computador em resposta à métrica de aluguel estar dentro do limite de aluguel, e inibir o uso de sistemas operacionais convidados pelo usuário do sistema de computador em resposta à métrica de aluguel que excede o limite de aluguel.

Description

PEDIDOS RELACIONADOS
[001] Este pedido é uma continuação-em-parte (CIP) para o seguinte pedido de patente U.S. também pendente com pelo menos um inventor comum e atribuído ao mesmo cessionário: N.° serial 11/612.300 apresentado em 18 de dezembro de 2006 e intitulado "Sistema e Método para Atualizar de Forma Segura o Tempo Restante ou Dados de Subscrição para um Computador de Aluguel".
FUNDAMENTOS DA INVENÇÃO
[002] 1. Campo Técnico
[003] A presente invenção diz respeito a um sistema e método que atualiza o tempo restante ou dados de subscrição para um computador de aluguel. Mais particularmente, a presente invenção diz respeito a um sistema e método que atualiza o tempo restante ou dados de subscrição usando um hipervisor que controla o acesso aos sistemas operacionais hospedeiros.
[004] 2. Descrição da Técnica Relacionada
[005] Ao lidar com computadores, algumas empresas (ou usuários) preferem comprar a arrendar ou alugar. O termo de arrendamento de um arrendamento de computador normalmente dura de dois a quatro anos. Por outro lado, uma empresa pode alugar um computador numa base mensal ou em uma base por cada uso. Assim, a decisão de saber se a locação ou arrendamento de computadores tende a depender da duração do tempo de uma empresa para manter os seus planos de locação / arrendamento de computadores.
[006] A partir do ponto de vista de um usuário, um desafio associado com arrendamento de computador é para garantir que todos os computadores arrendados devem ser devolvidos no final de um arrendamento de computador; de outra forma, o usuário deve continuar a pagar a taxa de arrendamento para quaisquer computadores arrendados que não tenham sido devolvidos. Do ponto de vista de uma empresa de aluguel, um desafio associado com aluguel de computador é o de impedir locatários de realizar modificações não autorizadas a computadores de aluguel a fim de que os locatários ainda possam utilizar os seus computadores de aluguel sem ao menos pagar as taxas de aluguel exigidas.
[007] A atual divulgação fornece um método e aparelhos para prevenir modificações não autorizadas a computadores de aluguel de tal modo que não seria prático e / ou economicamente viável para modificar computadores de aluguel simplesmente para evitar pagar as taxas de aluguel exigidas.
SUMÁRIO
[008] Foi descoberto que os referidos desafios são resolvidos através de um sistema, método e produto de programa de computador que executa um hipervisor, a fim de controlar o acesso ao sistema de computador de aluguel. O hipervisor realiza etapas que incluem: ler uma métrica de aluguel de uma área de armazenamento não volátil, comparar a métrica de aluguel com um limite de aluguel, permitir o uso de um ou mais sistemas operacionais convidados por um usuário do sistema de computador em resposta à métrica de aluguel estar dentro do limite de aluguel, e inibir o uso dos sistemas operacionais convidados pelo usuário do sistema de computador em resposta à métrica de aluguel que excede o limite de aluguel.
[009] Em uma modalidade, um código de BIOS seguro é iniciado antes de executar o hipervisor. O código de BIOS seguro realiza etapas que incluem: validar um módulo executável de hipervisor, a validação resultando em um resultado de validação; carregar o módulo executável de hipervisor e executar o hipervisor em resposta ao resultado de validação que indica uma validação bem-sucedida, e inibir a utilização do sistema de computador em resposta ao resultado de validação que indica uma malsucedida. Em uma modalidade adicional, o código de hipervisor é validado ao descriptografar o código usando uma chave acessível ao código de BIOS ou através da comparação de uma hash do código de hipervisor com um resultado de hash esperado.
[0010] Em uma modalidade, a inibição inclui etapas que sinalizam a o usuário para comprar tempo de locação adicional e receber dados de compra do usuário. O hipervisor, então, envia os dados de compra recebidos para um servidor de aluguel que está ligado ao sistema de computador através de uma rede de computadores, tais como a Internet. Uma resposta é, então, recebida do servidor de aluguel através da rede de computadores. Se a resposta for um erro (por exemplo, falta de fundos), o hipervisor continua a inibição do sistema de computador. Por outro lado, em resposta à resposta indicando uma transação bem-sucedida, o hipervisor atualiza o limite de aluguel, armazena o limite de aluguel atualizado na área de armazenamento não volátil, compara a métrica de aluguel com um limite de aluguel atualizado, permite que o usuário use os sistemas operacionais convidados em resposta à métrica de aluguel que está dentro do limite de aluguel atualizado, e continua inibindo a utilização dos sistemas operacionais convidados em resposta à métrica de aluguel que excede o limite de aluguel atualizado.
[0011] Em uma modalidade, a permissão ainda inclui etapas que atualizam periodicamente as métricas de aluguel ao armazenar as métricas de aluguel atualizadas na área de armazenamento não volátil. O hipervisor, então, compara o limite de aluguel às métricas de aluguel atualizadas. O hipervisor continua a permitir a utilização dos sistemas operacionais convidados em resposta à métrica de aluguel atualizada que está dentro do limite de aluguel, no entanto, se a métrica de aluguel atualizada que excede o limite de aluguel, o hipervisor responde ao inibir o uso dos sistemas operacionais convidados pelo usuário.
[0012] Em uma modalidade, a permissão ainda inclui as etapas que aprisionam atividades solicitadas pelos sistemas operacionais convidados. As atividades que estão tentando modificar os dados de aluguel que são mantidos pelo hipervisor, são identificadas e rejeitadas pelo hipervisor.
[0013] Em uma modalidade adicional, o sistema de computador inclui um módulo de plataforma confiável (TPM) que inclui uma RAM não volátil. Nesta modalidade, o limite de aluguel e a métrica de aluguel são armazenados na RAM não volátil do TPM.
[0014] O exposto acima é um resumo e, portanto, contém, por necessidade, simplificações, generalizações e omissões de detalhes; por conseguinte, aqueles versados na técnica que irão apreciar que o resumo é apenas ilustrativo e não se destina a ser limitante de forma alguma. Outros aspectos, características inventivas e vantagens da presente invenção, tais como definidos exclusivamente pelas reivindicações, tornar-se-ão evidentes na descrição detalhada não limitante estabelecida abaixo.
BREVE DESCRIÇÃO DOS DESENHOS
[0015] A presente invenção pode ser melhor compreendida, e seus inúmeros objetos, características e vantagens tornados aparentes para aqueles versados na técnica ao referenciar os desenhos anexos, onde: A Figura 1 é um diagrama de blocos de um sistema de computador de aluguel em que uma modalidade preferencial da presente invenção é incorporada; A Figura 2 é um diagrama de blocos de um aparelho para prevenir modificações não autorizadas aos sistemas de computador de aluguel, em conformidade com uma modalidade preferencial da presente invenção; A Figura 3 é um fluxograma de lógica de alto nível de um método para fixar tempo seguro / dia para prevenir modificações não autorizadas aos sistemas de computador de aluguel, em conformidade com uma modalidade preferencial da presente invenção; A Figura 4 é um fluxograma de lógica de alto nível de um método para prevenir modificações não autorizadas aos sistemas de computador de aluguel, em conformidade com uma modalidade preferencial da presente invenção; A Figura 5 é um fluxograma mostrando as etapas realizadas pelo cartão de dia-hora na atualização de subscrição de aluguel; A Figura 6 é um fluxograma mostrando as etapas realizadas por uma rotina de BIOS segura para fazer cumprir as regras de subscrição; A Figura 7 é um fluxograma mostrando as etapas realizadas para comprar tempo de locação adicional; A Figura 8 é um fluxograma mostrando etapas adicionais realizadas durante a compra e atualização do tempo de locação adicional; A Figura 9 é um diagrama mostrando componentes utilizados no sistema de computador de aluguel; A Figura 10 é um diagrama que mostra um fluxograma de alto nível e componentes de sistema utilizados no controle do sistema de computador de aluguel utilizando um hipervisor; A Figura 11 é um fluxograma que mostra as etapas por um BIOS seguro para validar o código executável de hipervisor e executar o hipervisor após a validação; A Figura 12 é um fluxograma mostrando etapas realizadas pelo hipervisor para monitorar as atividades realizadas pelos sistemas operacionais convidados e atualizar as métricas de aluguel necessárias; A Figura 13 é um fluxograma que mostra etapas realizadas pelo hipervisor a fim de adquirir mais tempo e atualizar os limites de aluguel; e A Figura 14 é um diagrama de blocos de um sistema de processamento de dados em que os métodos descritos neste documento podem ser implementados.
DESCRIÇÃO DETALHADA
[0016] O que segue se destina a fornecer uma descrição detalhada de um exemplo da invenção e não deve ser tomado como sendo uma limitação da própria invenção. Em vez disso, qualquer número de variações pode cair no escopo da invenção, que é definido nas reivindicações na sequência da descrição.
[0017] Referindo-se agora aos desenhos e, em especial à Figura 1, é ilustrado um diagrama de blocos de um sistema de computador de aluguel em que uma modalidade preferencial da presente invenção está incorporada. Como se pode verificar, um sistema de computador de aluguel 100 inclui uma unidade de processamento 102 e uma memória 104. A memória 104 inclui uma memória volátil 105 (tal como uma memória de acesso aleatório) e uma memória não volátil 106 (tal como uma memória só de leitura). O sistema de computador de aluguel 100 também contém dispositivos de mídias de armazenamento removíveis 108, tais como discos compactos, discos ópticos, fitas magnéticas, etc., e dispositivos de armazenamento não removíveis 110, tais como discos rígidos. Além disso, o sistema de computador de aluguel 100 pode conter canais de comunicação 112 para fornecer comunicações com outros sistemas em uma rede de computadores 120. O sistema de computador de aluguel 100 pode também ter componentes de entrada 114, tais como um teclado, mouse etc., e componentes de saída 116, tais como monitores, alto-falantes, impressoras etc.
[0018] Um módulo de plataforma confiável (TPM) 117 está incluído no sistema de computador de aluguel 100 para fornecer gerações de chaves criptográficas seguras, e limita o uso dessas chaves para assinatura / verificação ou criptografia / descriptografia, como é conhecido por aqueles versados na técnica. TPM 117 pode ser utilizado para assegurar que os dados sejam usados para conceder o acesso ao sistema operacional do sistema de computador de aluguel 100 sejam mantidos de forma segura. Com referência, agora, à FIG. 2, é ilustrado um diagrama de blocos de um aparelho para prevenir modificações não autorizadas aos sistemas de computador de aluguel, em conformidade com uma modalidade preferencial da presente invenção. Como se pode verificar, um cartão de dia-hora 200 inclui um relógio em tempo real 210 e uma bateria 220. O cartão de tempo/dia 210 também inclui um registro 230 e um contador 240. O registro 230 é utilizado para indicar se a bateria 220 foi removida e / ou exaurida de sua energia ou não. Por exemplo, um bit dentro do registo 230 pode ser bloqueado em resposta a bateria 220 ser removida ou a energia da bateria 220 ter sido exaurida completamente. Preferencialmente, o cartão de dia- hora 210 deve ser inserido em um dos sockets de memória, tais como os sockets de memória SIM ou DIMM, em uma placa mãe de um sistema de computador de aluguel, tal como o sistema de computador de aluguel 100 da FIG. 1. O relógio em tempo real 210 pode, então, ser acessado através de um barramento ligado ao sistema de computador de aluguel. A hora e o dia do cartão de dia-hora 210 são inicialmente fixados durante a fabricação do sistema de computador de aluguel.
[0019] Referindo-se agora à FIG. 3, é ilustrado um fluxograma de lógica de alto nível de um método para fixar o valor de hora / dia seguro para evitar modificações não autorizadas aos sistemas de computador de aluguel, em conformidade com uma modalidade preferencial da presente invenção. Durante o autoteste de inicialização (POST), o sistema de entrada / saída básico (BIOS) determina se um cartão de dia-hora, tal como o cartão de dia- hora 210 da FIG. 2, está presente em um sistema de computador de aluguel, como mostrado no bloco 310. Isso é realizado ao verificar um chip de contador contendo registos de certos endereços com as informações corretas que estão vinculadas ao BIOS no momento da fabricação; assim, o cartão de dia-hora é válido apenas em um sistema de computador de aluguel. Em outras palavras, o cartão de dia-hora não pode ser transferido de um sistema de computador de aluguel para outro.
[0020] Se o cartão de dia-hora está presente, então, outra determinação é feita quanto ao cartão de dia-hora estar vinculado ao sistema de computador de aluguel ou não, como ilustrado no bloco 315. A ligação é uma chave privada / pública simples usando um TPM. Se o cartão de dia- hora for removido do sistema de computador de aluguel, o BIOS não irá inicializar, tornando assim o sistema de computador de aluguel inoperante. Se o cartão de dia-hora está vinculado ao sistema de computador de aluguel, outra determinação é feita quanto à questão de se uma bateria no cartão de dia-hora tenha sido removida, como mostrado no bloco 320. Se a bateria com o cartão de dia-hora não tenha sido removida, o BIOS lê a informação de hora / data a partir do relógio em tempo real do cartão de dia-hora, como ilustrado no bloco 325.
[0021 ] Se o cartão de dia-hora não está presente, ou se o cartão de dia-hora não está vinculada ao sistema de computador de aluguel, ou se a bateria no cartão de dia-hora foi removida ou exaurida de sua energia, o POST para de exibir uma mensagem de erro, o sistema de computador de aluguel não vai continuar a inicialização, como mostrado no bloco 330.
[0022] A informação de hora / data a partir do relógio em tempo real do cartão de dia-hora são comparados a um valor de hora / data seguro atual armazenado em um local de armazenamento seguro durante o último desligamento (ou valor de fabricação se primeiro inicializado). Uma determinação é feita quanto a se a informação de hora / data a partir do relógio em tempo real é menor do que o atual valor de hora / data seguro ou não, como ilustrado no bloco 335. Se a informação de hora / dia for menor do que o atual valor de hora / data segura, então, o BIOS obtém um novo valor de hora / data seguro de uma rede, e o novo valor de hora / data seguro a partir da rede torna-se o atual valor de hora / data seguro, como mostrado no bloco 340, e o processo prossegue para o bloco 345. Se a informação de hora / dia não for menor do que o atual valor de hora / data seguro, então, o fim do valor de hora / data seguro é lido de forma segura a partir de um local de armazenamento seguro, como ilustrado no bloco 345.
[0023] Em seguida, é feita uma determinação de se o atual valor de hora / data seguro é inferior ao valor de aluguel de hora / data final ou não, como mostrado no bloco 350. Se o atual valor de hora / data seguro não for inferior ao valor de aluguel de hora / data final, o locatário é solicitado a comprar mais tempo de aluguel sobre o computador de aluguel (através de uma rotina de comprar segura a partir do BIOS), como ilustrado no bloco 355. Depois que mais tempo de locação foi comprado pelo locatário, o valor de aluguel de hora / data final armazenado no local de armazenamento seguro é atualizado de forma segura, como mostrado no bloco 360, e o processo prossegue para o bloco 345.
[0024] Caso contrário, se o valor de hora / data seguro for inferior ao valor de aluguel de hora / data final, o sistema de computador de aluguel continua a inicialização, como mostrado no bloco 370.
[0025] Com referência agora à FIG. 4, é ilustrado um fluxograma de lógica de alto nível de um método de prevenção de modificações não autorizadas aos sistemas de computador de aluguel, em conformidade com uma modalidade preferencial da presente invenção. Uma vez que SMI BIOS está sempre em execução a cada x unidades de tempo, a SMI BIOS pode ser utilizada para determinar se o atual valor de hora / data seguro é inferior ao valor de aluguel de hora / data final em uma base regular, como mostrado no bloco 410. Se o atual valor de hora / data seguro não for inferior ao valor de aluguel de hora / data final, o locatário é solicitado a comprar mais tempo de aluguel sobre o computador de aluguel, como ilustrado no bloco 420. Depois que mais tempo de locação foi comprado pelo locatário, o valor de hora / data final é atualizado de forma segura, como mostrado no bloco 430, e o processo volta ao bloco 410.
[0026] Se o atual valor de hora / data seguro é inferior ao valor de aluguel de hora / data final 10, outra determinação é feita quanto à possibilidade de o atual valor de hora / data seguro cair dentro de uma janela do valor de hora / data final, como mostrado no bloco 440. O tamanho da janela é orientado à política. Por exemplo, a janela pode ser três dias do valor de hora / data final. Se o atual valor de hora / data seguro cair dentro da janela, o locatário é avisado que mais aluguel tem de ser comprado logo e é oferecida uma opção de compra de mais tempo de aluguel ao locatário, como ilustrado no bloco 450. Se o atual valor de hora / data seguro não cair dentro da janela, o processo volta ao bloco 410.
[0027] Como já foi descrito, a presente invenção fornece um método e aparelho para prevenir modificações não autorizadas aos sistemas de computador de aluguel. A presente invenção usa um cartão de dia-hora e um BIOS seguro para evitar qualquer manipulação não autorizada para um sistema de computador de aluguel. Com o cartão de hora-dia, é impossível para um locatário modificar a data em um sistema de computador de aluguel. Como tal, um locatário não pode simular a quantidade remanescente de tempo de uso em um sistema de computador de aluguel.
[0028] A FIG. 5 é um fluxograma mostrando as etapas executadas pelo cartão de hora-dia na atualização de dados de assinatura de aluguel. O processamento começa em 500 em que, na etapa 510, o processamento espera por um período de tempo (por exemplo, um minuto, etc.) antes de determinar se o período de tempo de locação expirou (decisão 520) ao comparar o atual valor de hora-dia ao valor de hora-dia final adquirido pelo usuário. Se o período de aluguel não expirou, então, a decisão 520 ramifica para a seção 522 "sim" que volta para a etapa 510 e este ciclo continua até que quantidade de tempo de aluguel comprado expirou. Em uma modalidade, utilizando uma rotina separada mostrada nas FIGS. 7 e 8, o usuário pode comprar periodicamente o tempo de locação adicional antes de expirar o tempo de locação.
[0029] Se a comparação entre o atual valor de dia-hora e o valor de hora-dia final revela que o período de aluguel comprado expirou, então, a decisão 520 ramifica para a seção 524 "sim". Na etapa 530, se for necessário, pode-se dar ao usuário um período de tempo, tal como 15 minutos, para comprar tempo de locação adicional antes de reiniciar o sistema usando o sistema operacional seguro. Além disso, um alerta pode ser exibido para o usuário que solicita ao usuário que compre tempo adicional ou o sistema de computador será reiniciado e carregará um sistema operacional seguro. Na etapa 540, um local de memória predefinido, tal como um caixa de correio segura, é verificado por uma resposta de um servidor de aluguel. Em uma modalidade, o local de memória predefinido é usado para armazenar uma resposta de aluguel criptografada para prevenir que o usuário viole (hacking) a resposta e adicione clandestinamente tempo de locação adicional sem pagar por isso. A resposta de servidor de aluguel pode ter sido armazenada no local de memória predefinido como resultado do alerta fornecido ao usuário na etapa 530.
[0030] Uma determinação é feita quanto à questão de se o usuário comprou tempo de locação adicional (decisão 550). Se o usuário comprou tempo de locação adicional, então a decisão 550 ramifica para a seção 555 "sim" em que, na etapa 560, a quantidade de tempo adicional criptografado que é armazenada no local de memória predeterminado é descodificada com uma ou mais chaves de criptografia armazenadas na memória não volátil do módulo de hora-dia. Em uma modalidade, as chaves de criptografia no cartão de hora-dia incluem uma chave privada atribuída ao cartão de hora-dia e uma chave pública atribuída ao servidor de aluguel. Os dados armazenados no local de memória predeterminado são criptografados tanto com a chave pública de do módulo de hora-dia, bem como com a chave privada do servidor de aluguel. Usando chaves assíncronas, o valor criptografado é então descriptografado usando a chave privada do módulo de hora-dia e a chave pública do servidor de aluguel. Na etapa 570, o valor de aluguel de hora-dia final é atualizado baseado na quantidade de tempo adicional comprado e o valor de hora-dia final atualizado é armazenado em um local de armazenamento seguro. Em uma modalidade, o valor de hora- dia final é armazenado em uma área de armazenamento não volátil do módulo de hora-dia. Em outra modalidade, o valor de hora-dia final é criptografado e armazenado na área de armazenamento não volátil principal do sistema de computador (por exemplo, o disco rígido do sistema de computador). Processamento então volta para determinar se tempo de locação adequado existe agora através da comparação do valor de hora -dia atualizado com o atual valor de hora-dia. Se tempo suficiente foi comprado, então, a decisão 520 continua para voltar para a etapa 510 até o tempo de locação comprado tem sido esgotado. Por outro lado, se o usuário não comprou tempo de locação suficiente, então, a decisão 520 mais uma vez ramificaria para a seção 524 "sim" e solicitaria que o usuário compre tempo de locação adicional.
[0031] Retornando à decisão 550, caso o utilizador não compre tempo de locação adicional, então, a decisão 550 ramifica para a seção 572 "não" em que, na etapa 572, um sinalizador de sistema operacional seguro é fixado na memória não volátil 580 (por exemplo, CMOS). No processo predefinido 590, uma reinicialização do sistema é forçada (vide FIG. 6 e texto correspondente para detalhes de processamento). Em função de o sinalizador de sistema operacional seguro ser definido, quando reiniciado, o sistema de computador irá carregar o sistema operacional seguro. O sistema operacional seguro fornece uma quantidade limitada de funcionalidade, essencialmente limitada às funções usadas para comprar tempo de locação adicional.
[0032] A FIG. 6 é um fluxograma mostrando as etapas realizadas por uma rotina BIOS segura para fazer cumprir as regras de assinatura. O processamento começa na etapa 600 quando o sistema de computador é reiniciado ou ligado. Na etapa 610, a rotina de BIOS lê o sinalizador de sistema operacional seguro a partir do armazenamento não volátil 580. Se for aplicável, o sinalizador de sistema operacional seguro foi definido quando a rotina de módulo de hora-dia detectou que o tempo de locação comprado tinha expirado (vide etapa 575 na FIG. 5). Retornando à FIG. 6, é feita uma determinação quanto a se o sinalizador de sistema operacional seguro foi fixado (decisão 620). Se o sinalizador de sistema operacional seguro não foi fixado (ou tenha sido apagado), então, a decisão 620 ramifica para a seção 625 "não" e, na etapa 630, a rotina de BIOS continua carregando um sistema operacional não seguro. Em um ambiente de computação pessoal, exemplos de sistemas operacionais não seguros incluem os sistemas operacionais Microsoft WindowsTM, sistemas operacionais LinuxTM, sistemas operacionais UNIX ou AIX, sistema operacional Apple Macintosh (por exemplo, o Mac OS X). Tal como utilizado neste documento, um sistema operacional não seguro não se refere a um sistema operacional que é resistente a códigos maliciosos, tais como vírus, mas em vez disso se refere a questão de se o usuário está autorizado a instalar, carregar e executar uma grande variedade de programas de software. Portanto, como utilizado neste documento, um "sistema operacional seguro" refere-se a um sistema operacional que restringe as ações que podem ser realizadas utilizando um sistema de computador, restringindo as aplicações de software que podem ser executadas quando o computador está executando o sistema operacional seguro. No ambiente de computador de aluguel, as ações que o usuário está autorizado a executar quando o sistema de computador está executando o sistema operacional seguro é / são aplicação (ões) que foram instaladas para permitir que o usuário compre tempo de locação adicional. Quando o tempo de locação adicional foi comprado, como será visto nas etapas 640 até 690 da FIG. 6, o sistema de computador é reiniciado, para que (se tempo de locação suficiente foi comprado), o sistema de computador reinicia e carrega um sistema operacional não seguro. Em uma aplicação de telefonia móvel de aluguel, o sistema operacional não seguro permite que o usuário utilize a telefonia móvel normalmente, enquanto o sistema operacional seguro iria restringir o usuário de telefone àquelas ações usadas para comprar tempo de locação adicional (por exemplo, chamar um número de telefone predefinido para comprar tempo, conectar o telefone móvel a uma rede de computador onde tempo adicional pode ser comprado, etc.). Em um ambiente de entretenimento, tal como um reprodutor de música móvel (por exemplo, um reprodutor de MP3, um iPodTm etc.), o sistema operacional seguro iria restringir o usuário a ações utilizadas para comprar tempo adicional e não permitir o funcionamento normal do dispositivo, enquanto o sistema operacional não seguro permite o funcionamento normal do dispositivo (por exemplo, reproduzir música etc.).
[0033] Retornando à decisão 620, se o sinalizador de sistema operacional seguro foi definido, então, a decisão 620 ramifica para a seção 635 "sim" em que, na etapa 640, o sistema operacional seguro é carregado pelo sistema de computador que restringe as ações do usuário àquelas ações pertinentes à compra de tempo de locação adicional para o sistema de computador. No processo predefinido 650, o usuário compra tempo de locação adicional, enquanto a execução do sistema operacional seguro (vide FIG. 7 e o texto correspondente para detalhes de processamento). Uma determinação é feita, então, quanto a se o usuário comprou tempo suficiente para continuar usando o sistema de computador de aluguel (decisão 660). Se tempo suficiente não foi comprado, então, a decisão 660 ramifica para a seção 665 "não" em que, na etapa 670, o sistema de computador de aluguel é desligado. Note que, se o usuário tenta religar o sistema, o sinalizador de sistema operacional seguro ainda é estabelecido de modo que o sistema executará as etapas indicadas na FIG. 6 e continuará a ramificar para a seção 635 "sim" â partir da decisão 620 até que tempo de locação suficiente tenha sido comprado. Retornando à decisão 660, se o usuário comprou tempo de locação suficiente para continuar usando o sistema de computador, então, a decisão 660 ramifica para a seção 675 "sim" em que, na etapa 680, o sinalizador de sistema operacional seguro é apagado na memória não volátil 580, e o sistema do computador é reiniciado na etapa 690. Note que, uma vez que o sinalizador de sistema operacional seguro foi apagado, quando o sinalizador de sistema de computador é reiniciado e as etapas mostradas na FIG. 6 são reexecutadas, a decisão 620 irá ramificar para a seção 625 "não" e funcionamento normal do sistema do computador começará quando o sistema operacional não seguro é carregado.
[0034] A FIG. 7 é um fluxograma mostrando as etapas realizadas para comprar tempo de locação adicional. As operações realizadas no sistema de computador de aluguel começarão em 700, enquanto as operações realizadas no servidor de rede de aluguel começam em 701. Na etapa 705, o sistema de computador de aluguel solicita uma conexão segura com o servidor de rede de aluguel usando um protocolo, tal como Camadas de Soquetes Seguras (SSL) ou outro protocolo de comunicação segura. Em 710, o servidor web de aluguel recebe a solicitação e estabelece uma ligação segura com o sistema de computador de aluguel. Retornando ao processamento realizado pelo sistema de computador de aluguel, na etapa 715, os dados de identidade do sistema de computador de aluguel são criptografados (por exemplo, dentro do protocolo de comunicação seguro, utilizando separadamente uma chave partilhada, utilizando uma chave pública correspondente ao servidor de rede de aluguel, etc.). Em uma modalidade, a informação de chave de criptografia utilizada para criptografar os dados é armazenada no módulo de hora-dia. Na etapa 720, os dados de identidade de sistema de computador são transmitidos para o servidor de rede de aluguel.
[0035] Voltando ao processamento de servidor de rede de aluguel, na etapa 725, o servidor de rede de aluguel recebe e descodifica os dados de identidade do sistema de computador de aluguel, na etapa 730, as informações da conta do locatário são recuperadas a partir do armazenamento de dados de informações de conta 740. Na etapa 745, o servidor de rede de aluguel usa as informações de conta para criar uma página de rede de atualização de conta que incluem detalhes sobre o sistema de computador de aluguel, incluindo a quantidade de tempo de locação restante, bem como o custo de compra de tempo de locação adicional. Esta página da internet é retornada para o sistema de computador de aluguel. Na etapa 750, a página da internet de atualização de conta é recebida no sistema de computador de aluguel e exibida para o usuário. Em processos 760 e 770 predefinidos, o sistema de computador de aluguel e o servidor da web de aluguel, respectivamente, realiza ações para processar o pagamento de tempo de locação adicional e as informações da conta do locatário da atualização de servidor da web de aluguel para refletir o tempo adicional que foi comprado. Vide a FIG. 8 e texto correspondente para detalhes relacionados às etapas utilizadas para processar o pagamento e atualizar as informações da conta do locatário. Nas etapas 775 e 785, o sistema de computador de aluguel e o servidor da web de aluguel, respectivamente, terminam a ligação segura, em 780 e 790, respectivamente, o processamento utilizado para comprar tempo de locação adicional termina.
[0036] A FIG. 8 é um fluxograma mostrando etapas adicionais realizadas durante a compra e atualização do tempo de locação adicional. As etapas realizadas pelo sistema de computador de aluguel são mostradas começando em 800, enquanto aquelas realizadas pelo servidor da web de aluguel são mostradas começando em 801. Na etapa 805, o usuário do sistema de computador de aluguel insere uma solicitação de tempo de locação adicional e fornece dados de pagamento (por exemplo, um número de cartão de crédito ou de débito e detalhes relacionados, etc.) e esta informação é enviada para o servidor web de aluguel.
[0037] Na etapa 810, o servidor web de aluguel recebe a solicitação de tempo de locação adicional e os dados de pagamento de dados. Na etapa 815, o servidor web de aluguel valida os dados de pagamento (por exemplo, verifica os dados de cartão de crédito / débito para crédito / fundos suficientes etc.) Uma determinação é feita quanto à questão de se as informações de pagamento tenham sido validadas (decisão 820). Se as informações de pagamento não são validadas, a decisão 820 ramifica para a seção 822 "não" em que, na etapa 825, uma mensagem de erro é devolvida ao sistema de computador de aluguel, e retorna para o processamento da rotina de chamada (vide FIG. 7) em 830. Por outro lado, se o pagamento for validado, então, a decisão 820 ramifica para a seção 832 "sim", na etapa 835, as informações da conta do locatário são atualizadas e armazenadas no armazenamento de dados de informações da conta 740. Na etapa 840, os dados de tempo que incluem a quantidade de tempo adicional comprada pelo locatário são criptografados usando tanto a chave privada do servidor web de aluguel e a chave pública do sistema de computador de aluguel. Na etapa 850, os dados de tempo criptografados são enviados de volta para o sistema de computador de aluguel. O processamento de servidor web de aluguel, então, volta para a rotina de chamada em 855 (vide FIG. 7).
[0038] Voltando ao processamento de sistema de computador de aluguel, na etapa 860, o sistema de computador de aluguel recebe uma resposta do servidor web de aluguel, em resposta à solicitação de tempo de locação adicional. Uma determinação é feita quanto à questão de se a resposta é uma resposta de erro (decisão 865). Se a resposta for um erro, então, a decisão 865 ramifica para a seção 866 "sim" que volta para o usuário repetir a solicitação de tempo de locação adicional (por exemplo, o usuário fornece um cartão de débito / crédito para o pagamento, etc.). Este ciclo continua até que o sistema de computador de aluguel receba uma resposta sem erro, em que a decisão de tempo 865 ramifica para a seção 868 "não" e é feita uma determinação quanto a questão de se o sistema de computador de aluguel está executando o sistema operacional seguro (decisão 870) no momento. Se o sistema de computador de aluguel está sendo executado o sistema operacional seguro no momento, então, a decisão 870 ramifica para a seção 872 "sim" em que, na etapa 875, o sistema operacional seguro descodifica os dados de aluguel responsivos usando a chave privada do sistema de computador de aluguel e a chave pública do servidor web de aluguel, e, na etapa 880, o sistema operacional seguro atualiza o valor de hora-dia final para refletir o tempo adicional comprado pelo usuário. Por outro lado, se o sistema de computador de aluguel não está executando o sistema operacional seguro no momento e está, em vez disso, executando um sistema operacional regular (por exemplo, Microsoft WindowsTM, LinuxTM, AIXTM etc), então, a decisão 870 ramifica para a seção 885 "não" em que, na etapa 890, a resposta recebida criptografada do servidor web de aluguel é armazenada em um local de armazenamento predeterminado, tal como uma caixa de correio. A próxima vez que o sistema reinicia ou verifica compras de tempo de locação adicionais (vide FIG. 5), o local de armazenamento predeterminado será verificado e o tempo de locação comprado adicional será utilizado para atualizar o valor de hora-dia final. Note que, na modalidade mostrada, chaves de criptografia não são fornecidas de dentro do sistema operacional não seguro, a fim de prevenir que um hacker use as chaves de criptografia para adicionar tempo de locação adicional sem pagar por isso. O processamento de sistema de computador de aluguel, então, volta para a rotina de chamada (vide FIG. 7) em 895.
[0039] A FIG. 9 é um diagrama mostrando componentes utilizados no sistema de computador de aluguel. O sistema de computador de aluguel 900 inclui o cartão de hora-dia 910. Em uma modalidade, o cartão de hora-dia 910 é instalado em uma abertura DIMM (Módulo de Memória em Linha Dupla) e anexado a um barramento hospedeiro do sistema de computador. Tal como descrito neste documento, o sistema de computador de aluguel se torna inoperável se o cartão de hora-dia não está presente no sistema de computador. Em uma modalidade, o cartão de hora-dia 910 inclui os dados de cartão de hora-dia seguro 920 que não é acessível pelo usuário do sistema de computador de aluguel 900. Esta informação inclui a chave pública do servidor web de aluguel, a chave privada do sistema de computador de aluguel, o atual valor de hora-dia que reflete a atual hora e data, e o valor de hora-dia final que reflete a hora e data em que expira o período de aluguel. Quando inicializado, o sistema de computador de aluguel 900 executa o BIOS 930, que inclui uma rotina de BIOS segura que não pode ser alterada pelo usuário do sistema de computador de aluguel. A rotina de BIOS segura garante que o cartão de hora-dia está instalado, lê um identificador do cartão de hora-dia a fim de garantir que o cartão de hora-dia não tenha sido trocado por um cartão de hora-dia diferente com valores de aluguel diferentes, e dados de utilização de aluguel pré-pago (por exemplo, o valor de hora-dia final, etc.) que indica quando o período de aluguel expirou. Como se pode verificar, o BIOS 930 carrega o sistema operacional seguro 940, se o período de aluguel expirou ou se o período de aluguel não expirou, então, o BIOS 930 carrega o sistema operacional não seguro 950, tal como o Microsoft WindowsTM, LinuxTM, AIX TM ou similares.
[0040] A Figura 10 é um diagrama que apresenta um fluxograma de alto nível e componentes de sistema utilizados no controle do sistema de computador de aluguel utilizando um hipervisor. Componentes de sistema de computador selecionados 1000 incluem o Módulo de Plataforma Confiável (TPM) 1050 que inclui RAM não volátil 1060 que é uma área de armazenamento segura que não é acessível a partir do sistema operacional convidado 1075 que executa sob o hipervisor 1020.
[0041] Quando o sistema de computador é iniciado, um BIOS seguro executa. Processamento do BIOS seguro é mostrado com início em 1005. O BIOS não é atualizável por um cliente de aluguel que aluga e usa o sistema de computador de aluguel. Em vez disso, o BIOS seguro só é atualizável por um usuário autorizado, tal como um funcionário da organização que está alugando o sistema de computador de aluguel. Em uma modalidade, chaves criptográficas armazenadas no TPM são usadas para autenticar um usuário autorizado e permitir que o usuário autorizado atualizar a BIOS quando necessário. Geralmente, no entanto, uma vez instalada no sistema de computador de aluguel, o BIOS seguro raramente, ou nunca, precisa de ser atualizada.
[0042] Na etapa 1010, o BIOS seguro carrega o hipervisor 1020 na memória (RAM) do sistema de computador de aluguel. Na etapa 1070, o BIOS seguro ou o hipervisor carrega um ou mais sistemas operacionais convidados que operam no hipervisor. Como se pode verificar, quando em execução, sistemas operacionais convidados 1075 geram ações (ou atividades) que são aprisionadas e monitoradas pelo hipervisor 1020. As ações que podem comprometer a integridade ou a segurança do sistema de computador de aluguel são recusadas pelo hipervisor. Ações que estão sendo realizadas pelo hipervisor incluem métricas de monitoramento 1025. Métricas incluem a quantidade de tempo que o sistema de computador de aluguel tem usado por um usuário do sistema. Quando as métricas ficarem abaixo do limite de aluguel, o hipervisor inibe a utilização dos sistemas operacionais convidados pelo usuário. Periodicamente, o hipervisor 1020 realiza atualizações de RAM não volátil (1030). Isso inclui atualizações das métricas de aluguel (por exemplo, o tempo utilizado), bem como atualizações para o limite de aluguel (por exemplo, tempo comprado) quando o usuário adquire tempo adicional. A função de tempo de compra 1040 é utilizada para comprar tempo adicional ao estabelecer a ligação com o servidor de aluguel 1001 através da rede de computadores 120, tal como a Internet. Tal como demonstrado, os dados de pagamento são fornecidos pelo usuário e, quando validados, tempo de aluguel adicional é retornado ao sistema de computador de aluguel e processados pelo hipervisor. Além disso, a função de monitorar e aprisionar 1045 opera para monitorar as atividades solicitadas pelos sistemas operacionais convidados. As atividades que podem comprometer os dados de segurança de aluguel, tal como o acesso à RAM não volátil 1060 ou alteração de código de hipervisor, é aprisionado e recusado pelo hipervisor.
[0043] A Figura 11 é um fluxograma que mostra as etapas por um BIOS seguro para validar o código executável de hipervisor e executar o hipervisor após a validação. O processamento de BIOS seguro começa em 1100 em que, na etapa 1110, a BIOS analisa a imagem executável do hipervisor. Em uma modalidade, a análise da imagem de hipervisor é realizada usando um algoritmo hash que resulta em um resultado de hash. Em outra modalidade, a análise da imagem de hipervisor é realizada ao descriptografar a imagem de hipervisor usando uma chave armazenada na RAM não volátil 1060 do TPM. Quando um algoritmo hash está sendo utilizado, na etapa 1125, o valor hash resultante 1120 é comparado a um valor de hash esperado armazenado na RAM não volátil do TPM para garantir que a imagem de hipervisor não tenha sido alterada ou substituída. Se um usuário tenta alterar ou substituir a imagem de hipervisor, a fim de contornar as características de sistema de computador de aluguel, o valor de hash resultante da imagem de hipervisor substituída / alterada não coincidirá com o valor de hash esperado e o BIOS não irá carregar a versão substituída / modificada do hipervisor. Da mesma forma, se o hipervisor for criptografado, então, apenas uma versão do hipervisor que é criptografada com a cripto- chave armazenada na RAM não volátil do TPM será bem-sucedida ao descriptografar a imagem de hipervisor. O BIOS seguro e o hipervisor operam para prevenir o acesso não autorizado ao TPM 1050 e a RAM não volátil 1060 do TPM, de modo que os usuários maléficos não possam obter a chave criptográfica. Em uma modalidade, chaves assimétricas são utilizadas com uma chave privada utilizada para criptografar a imagem de hipervisor e uma chave pública, armazenada na RAM não volátil do TPM, usada para descriptografar a imagem. Desta forma, a chave privada necessária para criptografar a imagem de hipervisor não é armazenada no sistema de computador de aluguel e só é armazenada e mantida pela organização que está alugando o sistema de computador. Em uma modalidade adicional, tanto criptografar a imagem de hipervisor (por exemplo, usando chaves assimétricas) quanto algoritmo de hashing são usados para ainda proteger a integridade da imagem de hipervisor.
[0044] A determinação é feita quanto à questão de se a imagem de hipervisor é inalterada e não foram adulteradas por um usuário malicioso (decisão 1130). Se a imagem de hipervisor foi alterada ou substituída, a decisão 1130 ramifica para a seção 1135 "não" em que, na etapa 1140, um relatório é gerado indicando que a imagem de hipervisor tenha sido alterada ou substituída, e, em 1150, o sistema de computador de aluguel é desligado. Se o usuário tenta reiniciar o sistema, o hipervisor será observado como sendo alterado / substituído e o sistema irá desligar repetidamente. Em uma modalidade, o usuário retorna o sistema de computador de aluguel para a organização de aluguel, a fim de reiniciar o sistema. A organização de aluguel pode reiniciar o sistema porque tem a senha (chave) necessária para alterar o BIOS e pode, portanto, iniciar o sistema com o hipervisor alterado e, então, reinstalar uma versão correta do hipervisor.
[0045] Retornando à decisão 1130, se a imagem de hipervisor for inalterada (por exemplo, uma boa imagem de hipervisor), então, a decisão 1130 ramifica para a seção 1155 "sim" em que, na etapa 1160, o hipervisor é carregado e realiza o processo predefinido 1170 (vide FIG. 12 e texto correspondente para detalhes de processamento). Além disso, na etapa 1180, o BIOS ou o hipervisor carrega um ou mais sistemas operacionais convidados que operam no âmbito do hipervisor e realizam o processo predefinido 1190 (vide FIG. 12 e o texto correspondente para detalhes de processamento). Como se pode verificar, atividades solicitadas pelos sistemas operacionais convidados são monitoradas pelo hipervisor. Além disso, se as métricas de aluguel excederem limites de aluguel (por exemplo, o usuário fica sem tempo de aluguel), o hipervisor inibe o uso dos sistemas operacionais convidados até que o usuário compre tempo de locação adicional. O processamento de início de BIOS, portanto, termina em 1195.
[0046] A Figura 12 é um fluxograma mostrando etapas realizadas pelo hipervisor para monitorar as atividades realizadas pelos sistemas operacionais convidados e de atualizar métricas de aluguel, conforme necessário. O processamento de hipervisor é mostrado iniciando em 1200, na etapa 1205, o hipervisor realiza uma leitura inicial das métricas de aluguel e dos limites de aluguel. Uma determinação é feita quanto à questão de se as métricas de aluguel excedem os limites de aluguel (decisão 1210). Por exemplo, se a quantidade de tempo de locação utilizada exceder a quantidade de tempo de locação comprado. Se a métricas de aluguel excedem os limites de aluguel, então, a decisão 1210 ramifica para a seção 1215 "sim" em que, na etapa 1220, o hipervisor inibe a utilização dos sistemas operacionais convidados. No processo predefinido 1225, o hipervisor executa uma função para permitir que o usuário compre tempo de locação adicional para o sistema de computador de aluguel (processo predefinido 1225, vide FIG. 13 e o texto correspondente para detalhes de processamento). Depois que o usuário compra tempo de locação adicional, o processamento volta para a decisão 1210 para determinar se o tempo suficiente foi comprado de forma bem-sucedida para continuar a utilizar o sistema. Se as métricas de aluguel não excederem os limites de aluguel, então, a decisão 1210 ramifica para a seção 1230 "não", contornando as etapas 1220 e 1225.
[0047] Na etapa 1235, o hipervisor monitora atividades solicitadas pelos sistemas operacionais convidados. Uma determinação é feita pelo hipervisor quanto a questão de se a atividade solicitada é uma atividade de interesse (decisão 1240). Atividades de interesse incluem atividades que podem ser utilizadas para contornar os aspectos de aluguel seguro do sistema de computador de aluguel. Estas atividades incluem os sistemas operacionais convidados tentando acessar as áreas de armazenamento não volátil (tais como RAM não volátil 1060) onde as cripto- chaves, valores de hash, limites de aluguel e métricas de aluguel são armazenados para prevenir um usuário malicioso de acessar e / ou alterar os dados utilizados pelo hipervisor para gerenciar os aspectos de aluguel do sistema de computador de aluguel. Se a atividade for uma atividade de interesse, a decisão 1240 ramifica para a seção 1245 e, na etapa 1250, o hipervisor decide se para permitir a atividade. Se a atividade não for permitida (tal como o acesso ou alteração de dados de aluguel), então, o hipervisor bloqueia a atividade e retorna um erro para os sistemas operacionais convidados solicitantes. Algumas atividades podem ser autorizadas até um certo ponto. Por exemplo, se relógio do sistema está sendo utilizado como uma métrica de aluguel para determinar um período de aluguel, pequenas mudanças (tais como mudar o fuso horário) podem ser autorizadas, mas maiores alterações ao relógio do sistema são identificadas pelo hipervisor como uma tentativa de contornar os aspectos de aluguel do sistema de computador de aluguel e bloqueadas. Retornando à decisão 1240, se a atividade não é de interesse pelo hipervisor, então, a decisão 1240 ramifica para a seção 1255 "não", contornando a etapa 1250.
[0048] Periodicamente, na etapa 1260, o hipervisor atualiza as métricas de aluguel e armazena as métricas de aluguel atualizadas na RAM não volátil 1060. O processamento de hipervisor então volta para determinar se o tempo de locação expirou e continuar a acompanhar as atividades realizadas pelos sistemas operacionais convidados. Este ciclo continua enquanto o sistema de computador de renda estiver em uso. Quando o sistema for desligado e reiniciado, os dados métricos de aluguel e os dados de limite de aluguel são extraídos da RAM não volátil 1060 e o processamento continua como descrito acima.
[0049] Passando ao processamento de sistema operacional convidado, operações de sistema operacional convidado são mostrados iniciando em 1270. Na etapa 1275, o usuário opera o sistema de computador usando o sistema operacional convidado. Na etapa 1280, durante a utilização do sistema operacional convidado, as atividades são solicitadas. Em função de o sistema operacional convidado estar operando no âmbito do hipervisor, o hipervisor aprisiona as atividades e decide se as atividades podem ser executadas. Uma determinação é feita quanto à questão de se o sistema operacional convidado foi desativado pelo hipervisor quando expirou o tempo de locação (decisão 1285). Quando o tempo de locação expirou, a decisão 1285 ramifica para a seção 1288 "sim" em que o uso do sistema operacional convidado é inibido até que o usuário compre tempo de locação adicional. Por outro lado, se o sistema operacional convidado não tenha sido desativado pelo hipervisor e, então, a decisão 1285 ramifica para a seção 1286 "não", e o usuário é livre para continuar a utilização do sistema de computador até que o tempo de locação tenha vencido.
[0050] A FIG. 13 é um fluxograma mostrando as etapas realizadas pelo hipervisor, a fim de adquirir mais tempo e atualizar os limites de aluguel. A FIG. 13 é semelhante à FIG. 8, no entanto, na FIG. 13, o hipervisor é usado para receber e armazenar a resposta do servidor de aluguel. As etapas realizadas pelo sistema de computador de aluguel são mostradas começando em 1300, enquanto aquelas realizadas pelo servidor web de aluguel são mostradas iniciando em 1301. Na etapa 1305, o usuário do sistema de computador de aluguel insere uma solicitação de tempo de locação adicional e fornece dados de pagamento (por exemplo, um número de cartão de crédito ou de débito e detalhes relacionados, etc.) e esta informação é enviada para o servidor web de aluguel.
[0051] Na etapa 1310, o servidor web de aluguel recebe a solicitação de tempo de locação adicional e de dados de pagamento. Na etapa 1315, o servidor web de aluguel valida os dados pagamento (por exemplo, verifica os dados de cartão de crédito / débito para crédito / fundos suficientes, etc.). Uma determinação é feita quanto à questão de se as informações de pagamento tenham sido validadas (decisão 1320). Se as informações de pagamento não são validadas, a decisão 1320 ramifica para a seção 1322 "não" em que, na etapa 1325, uma mensagem de erro é devolvida ao sistema de computador de aluguel, e o processamento retorna para a rotina de chamada (vide FIG. 12) em 1330. Por outro lado, se o pagamento for validado, então, a decisão 1320 ramifica para a seção 1332 "sim" em que, na etapa 1335, as informações da conta do locatário são atualizadas e armazenadas no armazenamento de dados de informações da conta 740. Na etapa 1340, os dados de tempo que incluem a quantidade de tempo adicional comprada pelo locatário são criptografados usando tanto a chave privada do servidor web de aluguel quanto a chave pública do sistema de computador de aluguel. Na etapa 1350, os dados de tempo criptografados são enviados de volta para o sistema de computador de aluguel. O processamento de servidor web de aluguel, então, volta para a rotina de chamada em 1355 (vide FIG. 12).
[0052] Voltando ao processamento de sistema de computador de aluguel, na etapa 1360, o sistema de computador de aluguel recebe uma resposta do servidor web de aluguel, em resposta à solicitação de tempo de locação adicional. Uma determinação é feita quanto à questão de se a resposta é uma resposta de erro (decisão 1365). Se a resposta é um erro, então, a decisão de 1365 ramifica para a seção 1366 "sim", que volta para o usuário repetir a solicitação de tempo de locação adicional (por exemplo, o usuário fornece um cartão de débito / crédito para o pagamento, etc.) Este ciclo continua até que o sistema de computador de aluguel recebe uma resposta sem erro, em que a decisão de tempo 1365 ramifica para a seção 1368 "não" em que, na etapa 1375, o hipervisor descriptografa a resposta. Em uma modalidade, o hipervisor descriptografa a resposta utilizando uma chave que é recuperada a partir da RAM não volátil 1060 dentro do Módulo de Plataforma Confiável (TPM) 1050. Em uma modalidade adicional, o hipervisor aprisiona atividades realizadas pelos sistemas operacionais convidados, tais como aquelas que tentam recuperar os dados de aluguel da RAM não volátil 1060 e previne a conclusão dessas atividades, a fim de proteger os dados de aluguel armazenados na RAM não volátil 1060. Na etapa 1380, o hipervisor atualiza o limite de aluguel, tal como a hora final ou a data final, na RAM não volátil em 1060. O processamento então volta para a rotina de chamada (vide FIG. 12) em 1395.
[0053] Figura 14 ilustra o sistema de tratamento de informações 1401 que é um exemplo simplificado de um sistema de computador capaz de executar as operações de computação descritas neste documento. O sistema de computador 1401 inclui processadores 1400 que são acoplados ao barramento principal 1402. O cartão de hora-dia 1499 e uma memória cache de nível dois (L2) 1404 também estão atrelados ao barramento hospedeiro 1402. A ponte hospedeiro para PCI 1406 é acoplada à memória principal 1408, inclui memória cache e funções de controle de memória principal, e fornece o controle de barramento para lidar com transferências entre o barramento PCI 1410, o processador 1400, a cache L2 1404, a memória principal 1408 e o barramento hospedeiro 1402. A memória principal 1408 é acoplada à ponte hospedeiro para PCI 1406, bem como ao barramento hospedeiro 1402. Os dispositivos utilizados exclusivamente pelo(s) processador(es) hospedeiro(s) 1400, tais como placas de rede 1430, são acoplados ao barramento PCI 1410. A Interface de Processador de Serviço e a Passagem de Acesso ISA 1412 proporcionam uma interface entre o barramento PCI 1410 e o barramento PCI 1414. Desta forma, barramento PCI 1414 é isolado do barramento PCI 1410. Os dispositivos, tais como a memória flash 1418, são acoplados ao barramento PCI 1414. Em uma implementação, a memória flash 1418 inclui código de BIOS que incorpora o código executável por processador necessário para uma variedade de funções de sistema de baixo nível e funções de inicialização de sistema. O Módulo de Plataforma Confiável (TPM 1050) está anexado a um barramento acessível por processadores 1400. Em uma modalidade, o TPM 1050 é anexado ao barramento hospedeiro 1402. O TPM 1050 inclui Memória de Acesso Aleatório não volátil (NV RAM) 1060 usada para armazenar dados seguros, tais como métricas de aluguel, limites de aluguel, códigos hash esperados e chaves de criptografia.
[0054] O barramento PCI 1414 proporciona uma interface para uma variedade de dispositivos que são compartilhados por processador(es) hospedeiro(s) 1400 e Processador de Serviço 1416, incluindo, por exemplo, a memória flash 1418. A ponte PCI para ISA 1435 fornece controle de barramento para lidar com as transferências entre o barramento PCI 1414 e o barramento ISA 1440, funcionalidade de barramento serial universal (USB) 1445, funcionalidade de gestão de energia 1455, e pode incluir outros elementos funcionais não mostrados, tais como um relógio em tempo real (RTC), um controle de DMA, um suporte de interrupção, e o suporte de barramento de gestão de sistema. A RAM não volátil 1420 é anexada ao Barramento ISA 1440. O Processador de Serviço 1416 inclui barramentos JTAG e I2C 1422 para a comunicação com processador(es) 1400 durante as etapas de inicialização. Barramentos JTAG/I2C 1422 também estão acoplados à cache L2 1404, à ponte hospedeiro para PCI 1406 e à memória principal 1408 fornecendo um caminho de comunicações entre o processador, o processador de serviço, a cache L2, a ponte hospedeiro para PCI e a memória principal. O Processador de Serviço 1416 também tem acesso aos recursos de energia de sistema para desligar o dispositivo de tratamento de informações 1401.
[0055] Dispositivo periféricos e dispositivos de entrada / saída (I / O) podem ser associados às diversas interfaces (por exemplo, interface paralela 1462, interface serial 1464, interface de teclado 1468 e interface de mouse 1470 acopladas ao barramento ISA 1440. Alternativamente, muitos dispositivos I / O podem ser acomodados em um supercontrolador I / O (não mostrado) anexado ao barramento ISA 1440.
[0056] A fim de anexar o sistema de computador 1401 a outro sistema de computador para copiar arquivos através de uma rede, a placa de rede 1430 é acoplado ao barramento PCI 1410. Do mesmo modo, para conectar o sistema de computador 1401 a um ISP para se conectar à Internet usando uma conexão de linha telefônica, o modem 1475 está ligado à porta serial 1464 e à porta de PCI para ISA 1435.
[0057] Embora a FIG. 14 mostre um sistema de tratamento de informações, um sistema de tratamento de informações pode assumir muitas formas. Por exemplo, um sistema de tratamento de informações pode assumir a forma de um desktop, servidor, portátil, laptop, notebook ou outro computador de fator de forma ou sistema de processamento de dados. Além disso, um sistema de tratamento de informações pode assumir outros fatores de forma, tais como um assistente pessoal digital (PDA), um dispositivo de jogos, máquina ATM, um dispositivo de telefone portátil, um dispositivo de comunicação ou outros dispositivos que incluem um processador e uma memória.
[0058] Uma das implementações preferenciais da invenção é um aplicativo cliente, ou seja, um conjunto de instruções (código de programa) ou outro material descritivo funcional em um módulo de código que pode, por exemplo, ser residente na memória de acesso aleatório do computador. Até exigidos pelo computador, o conjunto de instruções pode ser armazenado em outra memória do computador, por exemplo, em uma unidade de disco rígido, ou em uma memória removível, tal como um disco óptico (para eventual utilização em um CD-ROM) ou disquete (para eventual utilização em uma unidade de disquetes), ou descarregado através da Internet ou de outra rede de computadores. Assim, a presente invenção pode ser executada como um produto de programa de computador para uso em um computador. Além disso, embora os vários métodos descritos sejam convenientemente implementados em um computador de propósito geral seletivamente ativado ou reconfigurado por software, um versado na técnica também reconheceria que esses métodos podem ser realizados no hardware, no firmware, ou em aparelhos mais especializados construídos de forma a executar as etapas do método necessárias. O material descritivo funcional é a informação que transmite a funcionalidade a uma máquina. O material descritivo funcional inclui, mas não se limitando a, os programas de computador, instruções, regras, fatos, definições de funções computáveis, objetos e estruturas de dados.
[0059] Enquanto modalidades particulares da presente invenção foram apresentadas e descritas, será evidente para aqueles versados na técnica que, com base nos ensinamentos neste documento, que as mudanças e alterações podem ser feitas sem se afastar da presente invenção e seus aspectos mais amplos. Por conseguinte, as reivindicações anexas devem englobar no seu escopo todas essas mudanças e modificações que estão dentro do verdadeiro espírito e escopo desta invenção. Além disso, ser deve-se entender que a invenção é unicamente definida pelas reivindicações anexas. Vai ser entendido por aqueles versados na técnica que, se um número específico de um elemento de reivindicação introduzido for pretendido, tal intenção será recitada explicitamente na reivindicação e, na ausência de tal recitação, semelhante limitação não se encontra presente. Para o exemplo não limitante, como um auxílio para a compreensão, as seguintes reivindicações anexas contêm o uso de expressões introdutórias, "pelo menos um" e "um ou mais" para introduzir elementos da reivindicação. No entanto, a utilização de tais expressões não deve ser interpretada no sentido de implicar que a introdução de um elemento de reivindicação pelos artigos indefinidos "um" ou "uma" limite qualquer reivindicação em particular que contenham tal elemento de reivindicação introduzido a invenções contendo apenas um desses elementos, mesmo quando a mesma reivindicação inclui as expressões introdutórias "um ou mais" ou "pelo menos um" e artigos indefinidos, tais como "um" ou "uma"; o mesmo vale para o uso de artigos definidos nas reivindicações.

Claims (20)

1. Método implementado por computador, em que o hipervisor realiza etapas que incluem: permitir o uso de um ou mais sistemas operacionais convidados por um usuário do sistema de computador de aluguel em resposta à métrica de aluguel que está dentro do limite de aluguel; e inibir o uso de sistemas operacionais convidados pelo usuário do sistema de computador em resposta à métrica de aluguel que excede o limite de aluguel, caracterizado pelo fato de que compreende: executar um hipervisor em um sistema de computador de aluguel, em que o hipervisor realiza etapas que incluem: ler informações de hora/data de um relógio em tempo real de um cartão de hora-dia; ler uma métrica de aluguel de uma área de armazenamento não volátil; comparar a métrica de aluguel com um limite de aluguel com base nas informações de hora/data.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende: iniciar uma BIOS segura antes de executar o hipervisor, em que a BIOS segura realiza etapas que incluem: validação de um módulo executável de hipervisor, a validação resultando em um resultado de validação; carregar o módulo executável de hipervisor e executar o hipervisor em resposta ao resultado de validação, indicando uma validação bem-sucedida; e inibir a utilização do sistema de computador de aluguel em resposta ao resultado de validação indicando uma validação malsucedida.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a validação adicionalmente compreende, pelo menos, uma etapa selecionada do grupo constituído por descriptografar o código executável de hipervisor e comparar uma hash do código executável de hipervisor com um resultado hash esperado.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a inibição inclui, adicionalmente: sinalizar ao usuário para adquirir mais tempo de aluguel; receber dados de compra do usuário; enviar os dados de compra recebidos a um servidor de locação que é ligado ao sistema de computador de aluguel através de uma rede de computadores; receber uma resposta do servidor, através do servidor de aluguel por meio da rede de computadores; continuar a inibição, em resposta à resposta ser uma mensagem de erro; e em resposta à resposta indicando uma transação bem-sucedida: atualizar o limite de aluguel; armazenar o limite de aluguel atualizado na área de armazenamento não volátil; comparar a métrica de aluguel com um limite de aluguel atualizado; permitir o uso de sistemas operacionais convidados em resposta à métrica de aluguel estar dentro do limite de aluguel atualizado; e continuar a inibir em resposta à métrica de aluguel que excede o limite de aluguel atualizado.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a etapa de permitir compreende, adicionalmente: atualizar periodicamente a métrica de aluguel, a atualização incluindo: armazenar a métrica de aluguel atualizada na área de armazenamento não volátil; comparar o limite de aluguel para a métrica de aluguel atualizada; continuar a permitir a utilização de sistemas operacionais convidados, em resposta à métrica de aluguel ser atualizada dentro do limite de locação; e inibir o uso de sistemas operacionais convidados pelo usuário do sistema de computador de aluguel em resposta à métrica de aluguel atualizada que excede o limite de aluguel.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a etapa de permitir compreende, adicionalmente: aprisionar, pelo hipervisor, uma pluralidade de atividades solicitadas pelos sistemas operacionais convidados; identificar, pelo menos, uma das atividades que está tentando modificar dados de locação sendo mantidos pelo hipervisor, onde o aluguel de dados é selecionado do grupo que consiste do limite de aluguel e da métrica de aluguel; e rejeitar as atividades identificadas.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende, adicionalmente: armazenar o limite de aluguel e métrica de locação na área de armazenamento não volátil, onde a área de armazenamento não volátil é uma RAM não volátil incluída em um módulo de plataforma confiável (TPM) incluído no sistema de computador de aluguel.
8. Sistema de tratamento de informação, que compreende: um ou mais processadores; uma memória acessível por pelo menos um dos processadores; uma ou mais áreas de armazenamento não volátil, acessível por pelo menos um dos processadores, em que uma BIOS segura é armazenada em uma das áreas de armazenamento não volátil; um adaptador de interface de rede que conecta o sistema de tratamento de informação a uma rede de computadores; e em que um ou mais dos processadores realizam ações de: executar um hipervisor, em que o hipervisor realiza etapas que incluem: permitir que um usuário utilize um ou mais sistemas operacionais convidados que estão sendo executados no âmbito do hipervisor em resposta à métrica de aluguel estar dentro do limite de aluguel; e inibir o uso de sistemas operacionais convidados pelo usuário em resposta à métrica de aluguel que excede o limite de aluguel; caracterizado pelo fato do hipervisor realizar etapas que incluem: ler informações de hora/data de um relógio em tempo real de um cartão de hora-dia; ler uma métrica de aluguel e um limite de aluguel de uma ou mais das áreas de armazenamento não volátil; comparar a métrica de aluguel com o limite de aluguel com base nas informações de hora/data.
9. Sistema de tratamento de informação, de acordo com a reivindicação 8, caracterizado pelo fato de que compreende, adicionalmente: iniciar a BIOS segura antes de executar o hipervisor, em que a BIOS segura realiza as etapas que incluem: validação de um módulo executável de hipervisor, a validação resultando em um resultado de validação; carregar o módulo executável de hipervisor e executar a hipervisor em resposta ao resultado de validação indicando uma validação bem-sucedida; e inibir a utilização de sistemas operacionais convidados em resposta ao resultado de validação indicando uma validação malsucedida.
10. Sistema de tratamento de informação, de acordo com a reivindicação 9, caracterizado pelo fato de que a validação compreende, adicionalmente, pelo menos uma etapa selecionada do grupo constituído por descriptografar o código executável de hipervisor e comparar uma hash do código executável de hipervisor com um resultado de hash esperado.
11. Sistema de tratamento de informação, de acordo com a reivindicação 8, caracterizado pelo fato de que a etapa de inibir compreende, adicionalmente: sinalizar ao usuário para adquirir mais tempo de locação; receber dados de compra do usuário; enviar os dados de compra recebidos para um servidor de locação que é ligado ao sistema de tratamento de informação através de uma rede de computadores acessível por meio do adaptador de interface de rede; receber uma resposta do servidor de aluguel através da rede de computadores; continuar a inibição, em resposta à resposta ser uma mensagem de erro; e em resposta à resposta indicando uma transação bem sucedida: atualizar o limite de aluguel; armazenar o limite de aluguel atualizado na área de armazenamento não volátil; comparar a métrica de aluguel com um limite de aluguel atualizado; permitir o uso de sistemas operacionais convidados em resposta à métrica de aluguel estar dentro do limite de aluguel atualizado; e continuar a inibir em resposta à métrica de aluguel que excede o limite de aluguel atualizado.
12. Sistema de tratamento de informação, de acordo com a reivindicação 8, caracterizado pelo fato de que a etapa de permitir compreende, adicionalmente: atualizar periodicamente a métrica de aluguel, a atualização incluindo: armazenar a métrica de aluguel atualizada na área de armazenamento não volátil; comparar o limite de aluguel para a métrica de aluguel atualizada; continuar a permitir a utilização de sistemas operacionais convidados, em resposta à métrica de aluguel ser atualizada dentro do limite de locação; e inibir o uso de sistemas operacionais convidados pelo usuário do sistema de computador em resposta à métrica de aluguel atualizada que excede o limite de aluguel.
13. Sistema de tratamento de informação, de acordo com a reivindicação 8, caracterizado pelo fato de que a etapa de permitir compreende, adicionalmente: aprisionar, pelo hipervisor, uma pluralidade de atividades solicitadas pelos sistemas operacionais convidados; identificar, pelo menos, uma das atividades que está tentando modificar dados de locação sendo mantidos pelo hipervisor, em que o aluguel de dados é selecionado do grupo que consiste do limite de aluguel e da métrica de aluguel; e rejeitar as atividades identificadas.
14. Sistema de tratamento de informação, de acordo com a reivindicação 8, caracterizado pelo fato de que compreende, adicionalmente: um módulo de plataforma confiável (TPM) acessível por pelo menos um dos processadores, o TPM incluindo uma RAM não volátil, em que o hipervisor realiza, adicionalmente, a etapa de: armazenar o limite de aluguel e a métrica de locação na RAM não volátil da TPM.
15. Meio de armazenamento legível por computador, em que o hipervisor realiza etapas que incluem: permitir o uso de um ou mais sistemas operacionais convidados por um usuário do sistema de computador de aluguel em resposta à métrica de aluguel estar dentro do limite de aluguel; e inibir o uso de sistemas operacionais convidados pelo usuário do sistema de computador de aluguel em resposta à métrica de aluguel exceder o limite de aluguel, caracterizado pelo fato de que compreende material descritivo funcional que, quando executado por um sistema de tratamento de informação, faz com que o sistema de tratamento de informação execute as ações que incluem: executar um hipervisor em um sistema de computador de aluguel, em que o hipervisor realiza etapas que incluem: ler informações de hora/data de um relógio em tempo real de um cartão de hora-dia; ler uma métrica de aluguel de uma área de armazenamento não volátil; comparar a métrica de aluguel com um limite de aluguel com base nas informações de hora/data.
16. Meio de armazenamento legível por computador, de acordo com a reivindicação 15, caracterizado pelo fato de que as ações incluem, adicionalmente: iniciar uma BIOS segura antes de executar o hipervisor, em que a BIOS segura realiza etapas que incluem: validação de um módulo executável de hipervisor, a validação resultando em um resultado de validação; carregar o módulo executável de hipervisor e executar o hipervisor em resposta ao resultado de validação, indicando uma validação bem-sucedida; e inibir a utilização do sistema de computador de aluguel em resposta ao resultado de validação indicando uma validação malsucedida.
17. Meio de armazenamento legível por computador, de acordo com a reivindicação 16, caracterizado pelo fato de que a validação compreende, adicionalmente, pelo menos uma etapa selecionada do grupo constituído por descriptografar o código executável de hipervisor e comparar uma hash do código executável de hipervisor com um resultado hash esperado.
18. Meio de armazenamento legível por computador, de acordo com a reivindicação 15, caracterizado pelo fato de que a inibição inclui, adicionalmente: sinalizar ao usuário para adquirir mais tempo de locação; receber dados de compra do usuário; enviar os dados de compra recebidos para um servidor de locação que é ligado ao sistema de computador de aluguel através de uma rede de computadores; receber uma resposta do servidor, através do servidor de aluguel por meio da rede de computadores; continuar a inibição, em resposta à resposta ser uma mensagem de erro; e em resposta à resposta indicando uma transação bem-sucedida: atualizar o limite de aluguel; armazenar o limite de aluguel atualizado na área de armazenamento não volátil; comparar a métrica de aluguel com um limite de aluguel atualizado; permitir o uso de sistemas operacionais convidados em resposta à métrica de aluguel estar dentro do limite de aluguel atualizado; e continuar a inibir em resposta à métrica de aluguel que excede o limite de aluguel atualizado.
19. Meio de armazenamento legível por computador, de acordo com a reivindicação 15, caracterizado pelo fato de que a etapa de permitir compreende, adicionalmente: atualizar periodicamente a métrica de aluguel, a atualização incluindo: armazenar a métrica de aluguel atualizada na área de armazenamento não volátil; comparar o limite de aluguel para a métrica de aluguel atualizada; continuar a permitir a utilização de sistemas operacionais convidados, em resposta à métrica de aluguel ser atualizada dentro do limite de locação; e inibir o uso de sistemas operacionais convidados pelo usuário do sistema de computador de aluguel em resposta à métrica de aluguel atualizada que excede o limite de aluguel.
20. Meio de armazenamento legível por computador, de acordo com a reivindicação 15, caracterizado pelo fato de que a etapa de permitir inclui ações adicionais compreendendo: aprisionar, pelo hipervisor, uma pluralidade de atividades solicitadas pelos sistemas operacionais convidados; identificar, pelo menos, uma das atividades que está tentando modificar dados de locação sendo mantidos pelo hipervisor, em que o aluguel de dados é selecionado do grupo que consiste do limite de aluguel e do métrica de aluguel; e rejeitar as atividades identificadas.
BRPI0801772A 2007-03-28 2008-03-28 Método implementado por computador, sistema de tratamento de informação e meio de armazenamento legível por computador BRPI0801772B8 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/692,310 US20080147555A1 (en) 2006-12-18 2007-03-28 System and Method for Using a Hypervisor to Control Access to a Rental Computer
US11/692,310 2007-03-28

Publications (3)

Publication Number Publication Date
BRPI0801772A2 BRPI0801772A2 (pt) 2008-12-16
BRPI0801772B1 true BRPI0801772B1 (pt) 2021-04-13
BRPI0801772B8 BRPI0801772B8 (pt) 2021-09-14

Family

ID=39528728

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0801772A BRPI0801772B8 (pt) 2007-03-28 2008-03-28 Método implementado por computador, sistema de tratamento de informação e meio de armazenamento legível por computador

Country Status (6)

Country Link
US (1) US20080147555A1 (pt)
CN (1) CN101295338A (pt)
BR (1) BRPI0801772B8 (pt)
MX (1) MX2008000827A (pt)
RU (1) RU2385483C2 (pt)
TW (1) TWI525465B (pt)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793090B2 (en) * 2007-08-30 2010-09-07 Intel Corporation Dual non-volatile memories for a trusted hypervisor
US20100100718A1 (en) * 2008-10-20 2010-04-22 Novell, Inc. In-the-flow security services for guested virtual machines
CN101750998A (zh) * 2008-12-16 2010-06-23 鸿富锦精密工业(深圳)有限公司 数控加工设备的加密系统及方法
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
CN101872178A (zh) * 2009-04-24 2010-10-27 邓树培 洗手间器具租赁时间权限控制方法及装置
US20110258701A1 (en) * 2010-04-14 2011-10-20 Raytheon Company Protecting A Virtualization System Against Computer Attacks
US8539245B2 (en) 2010-08-06 2013-09-17 Intel Corporation Apparatus and method for accessing a secure partition in non-volatile storage by a host system enabled after the system exits a first instance of a secure mode
CN102693390B (zh) * 2011-03-24 2017-08-15 研祥智能科技股份有限公司 租赁式主板以及控制主板租赁的方法
US8782420B2 (en) 2011-07-22 2014-07-15 Netflix, Inc System and method for obfuscation initiation values of a cryptography protocol
US20130061293A1 (en) * 2011-09-02 2013-03-07 Wenbo Mao Method and apparatus for securing the full lifecycle of a virtual machine
GB2515621A (en) 2012-01-27 2014-12-31 Dunraven Finance Ltd Control method, system and device
US9396504B2 (en) * 2012-04-18 2016-07-19 Abb Research Ltd. Centralized control center for electrical network computational services
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
GB2525233A (en) * 2014-04-17 2015-10-21 Dunraven Finance Ltd Controlling user access in a mobile device
US10447757B2 (en) 2015-08-20 2019-10-15 International Business Machines Corporation Self-service server change management
WO2017125161A1 (en) 2016-01-21 2017-07-27 Hewlett Packard Enterprise Development Lp Resource allocation
CN106204016B (zh) * 2016-06-28 2019-08-06 深圳前海澔勉离网电器有限公司 一种预付费方法及系统、终端、服务器
CN106959661B (zh) * 2017-04-26 2019-04-09 西安诺瓦电子科技有限公司 显示屏智能计时控制系统及计时控制器
CN107451888B (zh) * 2017-07-26 2020-12-22 美的智慧家居科技有限公司 电子设备的租赁权限控制方法及服务端、可读存储介质
US10996969B1 (en) * 2017-11-28 2021-05-04 Amazon Technologies, Inc. Controlling access by a network interface
US11163887B2 (en) * 2018-02-14 2021-11-02 Microsoft Technology Licensing, Llc Clearance of bare metal resource to trusted state usable in cloud computing
CN112160490A (zh) * 2020-09-23 2021-01-01 张家港中环海陆高端装备股份有限公司 炉台耐火砖组合件
CN112859752B (zh) * 2021-01-06 2021-12-28 华南师范大学 一种激光绣花机远程监控管理系统
JP7212716B2 (ja) * 2021-05-25 2023-01-25 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、管理システム、及び管理方法
CN113628392B (zh) * 2021-08-19 2023-08-25 上海擎朗智能科技有限公司 时间管理方法、装置及存储介质
US11765142B1 (en) * 2022-08-08 2023-09-19 International Business Machines Corporation Distribution of private session key to network communication device for secured communications
US11924179B2 (en) * 2022-08-08 2024-03-05 International Business Machines Corporation API based distribution of private session key to network communication device for secured communications
US11916890B1 (en) * 2022-08-08 2024-02-27 International Business Machines Corporation Distribution of a cryptographic service provided private session key to network communication device for secured communications

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970143A (en) * 1995-11-22 1999-10-19 Walker Asset Management Lp Remote-auditing of computer generated outcomes, authenticated billing and access control, and software metering system using cryptographic and other protocols
US6618810B1 (en) * 1999-05-27 2003-09-09 Dell Usa, L.P. Bios based method to disable and re-enable computers
US7627506B2 (en) * 2003-07-10 2009-12-01 International Business Machines Corporation Method of providing metered capacity of temporary computer resources
US7085948B2 (en) * 2003-04-24 2006-08-01 International Business Machines Corporation Method, apparatus, and computer program product for implementing time synchronization correction in computer systems
US7620950B2 (en) * 2003-07-01 2009-11-17 International Business Machines Corporation System and method to monitor amount of usage of applications in logical partitions
JP2007510198A (ja) * 2003-10-08 2007-04-19 ユニシス コーポレーション ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化
US20050251806A1 (en) * 2004-05-10 2005-11-10 Auslander Marc A Enhancement of real-time operating system functionality using a hypervisor
US20060165005A1 (en) * 2004-11-15 2006-07-27 Microsoft Corporation Business method for pay-as-you-go computer and dynamic differential pricing
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system
US7360253B2 (en) * 2004-12-23 2008-04-15 Microsoft Corporation System and method to lock TPM always ‘on’ using a monitor
WO2006074284A2 (en) * 2005-01-06 2006-07-13 Double Trump International Inc. Software licensing method and system
US7359807B2 (en) * 2005-02-14 2008-04-15 Microsoft Corporation Maintaining and managing metering data for a subsidized computer
US7669048B2 (en) * 2005-12-09 2010-02-23 Microsoft Corporation Computing device limiting mechanism
US20080059726A1 (en) * 2006-08-31 2008-03-06 Carlos Rozas Dynamic measurement of an operating system in a virtualized system
US7689817B2 (en) * 2006-11-16 2010-03-30 Intel Corporation Methods and apparatus for defeating malware

Also Published As

Publication number Publication date
TW200844792A (en) 2008-11-16
TWI525465B (zh) 2016-03-11
US20080147555A1 (en) 2008-06-19
RU2007145497A (ru) 2009-06-20
BRPI0801772B8 (pt) 2021-09-14
MX2008000827A (es) 2009-02-23
BRPI0801772A2 (pt) 2008-12-16
CN101295338A (zh) 2008-10-29
RU2385483C2 (ru) 2010-03-27

Similar Documents

Publication Publication Date Title
BRPI0801772B1 (pt) Método implementado por computador, sistema de tratamento de informação e meio de armazenamento legível por computador
JP6137499B2 (ja) 方法および装置
US8255988B2 (en) Direct peripheral communication for restricted mode operation
US6609199B1 (en) Method and apparatus for authenticating an open system application to a portable IC device
US7139915B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
US9535712B2 (en) System and method to store data securely for firmware using read-protected storage
JP3689431B2 (ja) 暗号化キーの安全処理のための方法及び装置
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
JP4982825B2 (ja) コンピュータおよび共有パスワードの管理方法
TWI266989B (en) Method, apparatus and token device for protection against memory attacks following reset
TW200414052A (en) Providing a secure execution mode in a pre-boot environment
TW201145041A (en) Provisioning, upgrading and/or changing of hardware
BR112013009278B1 (pt) Terminal de usuário e método para impor uma política de uso de aplicativo gerado por servidor
US8850220B2 (en) Method and apparatus with chipset-based protection for local and remote authentication of booting from peripheral devices
US20080278285A1 (en) Recording device
US10776493B2 (en) Secure management and execution of computing code including firmware
US20080077420A1 (en) System and Method for Securely Updating Remaining Time or Subscription Data for a Rental Computer
BRPI0809218A2 (pt) Acesso à computação pré-paga que utiliza dispositvos de armazenamento portáteis
TW200834371A (en) Computerized apparatus and method for version control and management
Frazelle Securing the boot process
US20230010319A1 (en) Deriving independent symmetric encryption keys based upon a type of secure boot using a security processor
US20230015334A1 (en) Deriving dependent symmetric encryption keys based upon a type of secure boot using a security processor
Amato et al. Mobile Systems Secure State Management
Du et al. Trusted firmware services based on TPM

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B04C Request for examination: application reinstated [chapter 4.3 patent gazette]
B15K Others concerning applications: alteration of classification

Ipc: G06F 21/57 (2013.01), G06F 9/455 (2006.01), G06F 2

B06T Formal requirements before examination [chapter 6.20 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 28/03/2008, OBSERVADAS AS CONDICOES LEGAIS.

B16C Correction of notification of the grant [chapter 16.3 patent gazette]

Free format text: REF. RPI 2623 DE 13/04/2021 QUANTO AO PRAZO DE VALIDADE DE 10 (DEZ) ANOS CONTADOS A PARTIR DE 13/04/2021.