BR112014003389B1 - Sistema de computação, método para assegurar comunicações com um bios de tempo de execução confiável virtual em um sistema de computação e meio lido por computador - Google Patents

Sistema de computação, método para assegurar comunicações com um bios de tempo de execução confiável virtual em um sistema de computação e meio lido por computador Download PDF

Info

Publication number
BR112014003389B1
BR112014003389B1 BR112014003389-7A BR112014003389A BR112014003389B1 BR 112014003389 B1 BR112014003389 B1 BR 112014003389B1 BR 112014003389 A BR112014003389 A BR 112014003389A BR 112014003389 B1 BR112014003389 B1 BR 112014003389B1
Authority
BR
Brazil
Prior art keywords
virtual
input
output system
runtime
basic
Prior art date
Application number
BR112014003389-7A
Other languages
English (en)
Other versions
BR112014003389A2 (pt
Inventor
Valiuddin Y Ali
Jose Paulo Xavier Pires
James M Mann
Chris I. Dalton
Boris Balacheff
Original Assignee
Hewlett-Packard Development Company, L.P.
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
Priority claimed from PCT/US2011/049677 external-priority patent/WO2013032442A1/en
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Publication of BR112014003389A2 publication Critical patent/BR112014003389A2/pt
Publication of BR112014003389B1 publication Critical patent/BR112014003389B1/pt

Links

Images

Classifications

    • 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/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/4401Bootstrapping
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

sistema de computação, método para assegurar comunicações com um bios de tempo de execução confiável virtual em um sistema de computação e meio lido por computador. um sistema de computação e um método para se comunicar com um bios de tempo de execução confiável virtual. o sistema de computação pode incluir hardware e um monitor de máquina virtual. um bios de tempo de execução confiável virtual pode ser gerenciado pelo monitor de máquina virtual. um canal de comunicação pode se comunicar com o bios de tempo de execução confiável virtual. o canal de comunicação pode ser assegurado por uma camada de soquetes segura.

Description

Técnica anterior
[001] Um dispositivo eletrônico, tal como um computador ou outro tipo de dispositivo, pode incluir um Sistema Básico de Entrada/Saída (BIOS) que é responsável por partir o dispositivo eletrônico. Durante a partida, o BIOS inicializa e configura componentes do dispositivo eletrônico, e carrega um sistema operacional no dispositivo eletrônico. Em adição, o BIOS também pode prover outros serviços, tais como um serviço de gerenciamento de energia, um serviço de gerenciamento térmico, um serviço de atualização do BIOS, e assim por diante.
Descrição dos desenhos
[002] Algumas configurações são descritas com relação às figuras seguintes:
[003] A figura 1 é um diagrama de blocos de um sistema de computação de acordo com uma implementação exemplar de comunicação segura com um BIOS de tempo de execução confiável virtual;
[004] A figura 2 é um diagrama de blocos de um sistema de computação de acordo com uma implementação exemplar de comunicação segura com um BIOS de tempo de execução confiável virtual;
[005] A figura 3 é um diagrama de blocos de um método para garantir comunicações com um BIOS de tempo de execução confiável virtual de acordo com uma implementação;
[006] A figura 4 é um diagrama de um método para garantir comunicações com um BIOS de tempo de execução confiável virtual de acordo com uma implementação;
[007] A figura 5 é um diagrama de fluxo de um método para garantir comunicações com um BIOS de tempo de execução confiável virtual de açodo com uma implementação; e
[008] A figura 6 é um diagrama de blocos de um sistema de computação de acordo com uma implementação exemplar de um meio lido por computador.
Descrição detalhada
[009] Um Sistema Básico de Entrada/Saída (BIOS) é usualmente o primeiro código executado por um dispositivo eletrônico quando o dispositivo eletrônico parte. Exemplos do dispositivo eletrônico incluem um computador (p.ex., computador desktop, computador notebook, computador tablet, computador servidor, etc.), um dispositivo de mão (p.ex., um assistente pessoal digital, telefone inteligente [“smartphone”], etc.), um aparelho eletrônico, um console de jogos, ou qualquer outro tipo de dispositivo eletrônico. O BIOS inicializa e configura vários componentes de hardware do dispositivo eletrônico, e carrega e parte um sistema operacional (SO) do dispositivo eletrônico. O código para o BIOS é usualmente armazenado em uma memória não volátil, tal como um dispositivo de memória flash ou outro tipo de memória programável só de leitura.
[0010] Embora vários tipos de funções do BIOS estejam listados acima, é notado que outras funções alternativas do BIOS podem ser usadas em outras implementações.
[0011] De acordo com algumas implementações, para comportamento mais robusto do sistema, as funções do BIOS podem ser providas em um BIOS de tempo de execução confiável virtual do dispositivo eletrônico o qual pode estar no domínio privilegiado, onde o domínio privilegiado é um domínio do dispositivo eletrônico que é relativamente seguro e que tem certo(s) privilégio(s) pré-definido(s) não disponível(eis) para outras entidades no dispositivo eletrônico. Geralmente, um “domínio privilegiado” se refere a um domínio que tem privilégio(s) pré-definido(s) que permite(m) uma entidade no domínio executar funções no dispositivo eletrônico que outras entidades (p.ex., SO, programas de aplicações, etc.) não são permitidas a executar. Também, um domínio privilegiado também tem um mecanismo de segurança para proteger o domínio privilegiado de acesso não autorizado ou ataque. A comunicação com o BIOS de tempo de execução confiável virtual pode ser por um protocolo baseado na web. Um protocolo baseado na web pode não ser seguro e pode levar a vulnerabilidades de segurança. Em uma implementação, a comunicação pode ser garantida por uma criptografia de chave pública e chave privada tal como uma camada de soquetes segura. Assegurar a comunicação com o BIOS de tempo de execução confiável virtual pode ser usado para garantir que instruções de gerenciamento do sistema sejam manuseadas por um modo de gerenciamento de sistema (SMM).
[0012] Exemplos de um domínio privilegiado incluem qualquer ou alguma combinação do seguinte: domínio 0, o qual é frequentemente o primeiro domínio iniciado por um monitor de máquina virtual (também referido como um hipervisor) para executar tarefas de gerenciamento; uma porção do monitor de máquina virtual (ou hipervisor); uma máquina virtual hóspede que tenha configurações pré-definidas para prover a máquina virtual hóspede com privilégios e/ou segurança reforçados; ou um outro tipo de domínio no dispositivo eletrônico com um privilégio e/ou mecanismo de segurança especiais pré- definidos. O domínio privilegiado garantido pode incluir BIOS de tempo de execução confiável virtual o qual pode incluir um modo de alto privilégio virtual para lidar com instruções de gerenciamento do sistema seguramente sem ter que ter um componente em um nível emparelhado com o monitor de máquina virtual tal como um monitor de transferência de modo de gerenciamento de sistema para separar e garantir um modo de alto privilégio virtual dos outros domínios.
[0013] Uma “máquina virtual” (também referida como um “aparelho virtual” ou “partição virtual”) se refere a alguma partição ou segmento de uma máquina física (o dispositivo eletrônico) que é provida para virtualizar ou emular uma máquina física. A partir da perspectiva de um usuário ou aplicação, uma máquina virtual parece uma máquina física. Uma máquina virtual inclui um sistema operacional (referido como um sistema operacional hóspede) e pelo menos um programa de aplicação.
[0014] Um monitor de máquina virtual (VMM), também referido como um hipervisor, gerencia o compartilhamento, pelas máquinas virtuais, dos recursos físicos, incluindo os componentes de hardware, do dispositivo eletrônico. O VMM virtualiza os recursos físicos. Cada máquina virtual tem recursos físicos virtualizados associados gerenciados pelo VMM. O VMM processa pedidos por recursos físicos.
[0015] Em uma implementação, um sistema de computação inclui hardware e um monitor de máquina virtual. Um BIOS de tempo de execução confiável virtual pode ser gerado pelo monitor de máquina virtual. Um canal de comunicação pode se comunicar com o BIOS de tempo de execução confiável virtual. O canal de comunicação é garantido por uma camada de soquetes segura.
[0016] Em uma outra implementação, um método pode garantir comunicações com um BIOS de tempo de execução confiável virtual em um sistema de computação. O método pode incluir gerenciar um BIOS de tempo de execução confiável virtual e estabelecer um canal de comunicação seguro para o BIOS de tempo de execução confiável virtual. Após o canal de comunicação seguro ser estabelecido, comunicar-se com o BIOS de tempo de execução virtual através do canal de comunicação seguro usando camadas de soquetes seguras.
[0017] Com referência às figuras, a figura 1 é um diagrama de blocos de um sistema de computação de acordo com uma implementação exemplar de comunicação segura com um BIOS de tempo de execução confiável virtual. Um sistema de computação 100 pode incluir um processador 110. O processador 110 é parte do hardware 105 do sistema de computação 100. O processador pode ser um processador de propósito geral ou um processador específico para a aplicação. Como exemplos, o hardware 105 também pode incluir: dispositivos de I/O, memória volátil, armazenagem secundária, memória flash, um controlador de interface de rede, um adaptador gráfico, e assim por diante. O sistema pode incluir um monitor de máquina virtual 115 para gerenciar os recursos físicos dos componentes de hardware e virtualizar os recursos físicos. O sistema de computação inclui um sistema básico virtual de entrada saída (vBIOS) 135 ligado a um domínio hóspede 130. O domínio hóspede 130 é uma máquina virtual que pode executar um sistema operacional tal como Microsoft Windows, Linux, Unix, ou um outro sistema operacional.
[0018] Em alguns exemplos, o domínio privilegiado 120 é domínio 0, o qual é um domínio administrativo iniciado pelo VMM 102 com a partida do sistema, e o qual tem privilégios e mecanismos de segurança reforçados. Exemplos de tarefas executadas pelo domínio 0 incluem criar e configurar domínios hóspedes. Cada um de domínio 0 e domínios hóspedes é considerado uma máquina virtual correspondente. O domínio privilegiado 120 pode ser separado do VMM 115. Em implementações alternativas, o domínio privilegiado 120 pode ser parte do VMM 115. Em tais implementações alternativas, a função de BIOS de tempo de execução confiável virtual 125 é parte do VMM 115. O domínio privilegiado 120 pode ser um domínio confiável uma vez que ele é gerado ou gerenciado pelo VMM confiável 115.
[0019] O VMM 115 pode ser confiável porque uma chave pode ser gerada ou desselada por um módulo de plataforma confiável (TPM) ou outro dispositivo que pode incluir TPM virtual, o BIOS ou um outro dispositivo na inicialização. A chave também pode se usada para confiar no domínio privilegiado 120. A chave pode ser parte de um certificado que é usado para confiar no VMM e, portanto, no domínio privilegiado 120 e no BIOS de tempo de execução confiável virtual. A chave pode ser usada como parte do certificado para gerar uma comunicação SSL. A chave pode ser armazenada no sistema de computação no momento da fabricação ou a chave pode ser gerada em tempo de execução. A chave pode ser uma chave assimétrica tal como uma chave pública ou uma chave privada.
[0020] A provisão da função de BIOS 125 no domínio privilegiado 120 implementa um “BIOS em uma nuvem”, também referido como “BIOS de tempo de execução confiável virtual 125”ou BIOS.v. A “nuvem” pode se referir a um domínio privilegiado 120 (ou algum outro domínio privilegiado). A nuvem pode estar localizada no sistema de computação 100 ou externa ao sistema de computação 100. Por exemplo, a nuvem contendo uma função de BIOS de tempo de execução confiável virtual 125 pode ser acessível pelo sistema de computação 100 através de uma rede. A rede pode ser, por exemplo, uma rede local, ampla ou global.
[0021] Em algumas implementações, a interface baseada na web provida por uma função de comunicação de rede baseada na web é parte de um modelo de provedor de serviço-solicitante de serviço que permite o solicitante (p.ex., um domínio) pedir um serviço (p.ex., serviço de BIOS) a partir de um provedor (p.ex., computador servidor) através de uma rede. Como exemplos, a interface baseada na web pode ser uma interface de serviços da web. Um serviço da web se refere a um mecanismo projetado para suportar interação de máquina para máquina interoperável que pode ser de máquina virtual para máquina virtual através de uma rede. A interface de serviços da web pode ser de acordo com um formato descrito por uma Linguagem de Descrição de Serviços da Web (WSDL), como definida pelo Consórcio Mundial da Internet (W3C). Alternativamente, a interface de serviços da web pode ser de acordo com um Protocolo de Acesso a Objeto Simples (SOAP) (também definido pela W3C), que é um protocolo para trocar informações estruturadas na implementação de serviços da web através de redes.
[0022] Como ainda uma outra alternativa, a interface baseada na web pode ser de acordo com uma arquitetura de Transferência de Estado Representacional (REST), que inclui clientes e servidores, onde os clientes podem submeter pedidos para servidores, e servidores podem fornecer respostas a clientes. Pedidos e respostas são construídos ao redor da transferência de representações de recursos. Um recurso pode ser qualquer conceito coerente e significativo que possa ser endereçado. Uma representação de um recurso é tipicamente um documento que captura o estado corrente ou intencionado de um recurso. Na arquitetura REST, um pedido submetido por um cliente (p.ex., o dispositivo eletrônico) pode ser um pedido de Conseguir [“Get”] Protocolo de Transferência de Hipertexto (HTTP), em alguns exemplos. O servidor (p.ex., o computador servidor) pode fornecer uma resposta HTTP para o pedido de Conseguir HTTP. O HTTP pode incluir Protocolo de Transferência de Hipertexto seguro (HTTPs).
[0023] Na interface baseada na web, um recurso (p.ex., a função de BIOS de tempo de execução confiável virtual ou função de BIOS de tempo de execução confiável virtual externa) pode ser acessado emitindo um pedido de acesso de BIOS de tempo de execução confiável virtual que contenha um endereço do recurso solicitado. O endereço pode ser um endereço da web, tal como um Localizador de Recurso Uniforme (URL), um endereço de Protocolo Internet (IP), Protocolo de Transferência de Correspondência Simples (SMTP), ou algum outro endereço que possa identificar unicamente o recurso solicitado.
[0024] Em resposta ao pedido de acesso de BIOS de tempo de execução confiável virtual contendo o endereço que é recebido na interface baseada na web, a função de comunicação de rede baseada na web pode direcionar o pedido para uma apropriada uma das funções do BIOS de tempo de execução confiável virtual interna e externa. Em alguns casos, a função de comunicação de rede baseada na web pode direcionar o pedido para ambas as funções de BIOS de tempo de execução confiável virtual interna e externa.
[0025] A comunicação de rede baseada na web com o BIOS de tempo de execução confiável virtual é garantida por, por exemplo, A Camada de Soquetes Segura (SSL) que é um protocolo para gerenciar a segurança de uma transmissão de mensagem na Internet. Uma vez que a comunicação com o BIOS são comunicações baseadas na web tais como aquelas usadas na internet uma camada de soquetes segura pode ser usada para garantir a comunicação com o BIOS de tempo de execução confiável virtual criando um canal de comunicações seguro 185. A camada de soquetes segura (SSL) também pode significar Segurança de Camada de Transporte (TLS) ou qualquer outro protocolo de segurança para garantir comunicação baseada na web.
[0026] Um método de soquetes para passar dados reciprocamente entre um cliente e um programa servidor em uma rede ou entre camadas de programas no mesmo computador, portanto SSL pode ser usado para garantir as comunicações com o BIOS de tempo de execução confiável virtual se o BIOS de tempo de execução confiável virtual for hospedado por um domínio privilegiado, por exemplo, ou se hospedado em uma rede em algum outro lugar. A SSL usa o sistema de criptografia de chaves pública e privada, que também pode incluir o uso de um certificado digital.
[0027] Um exemplo para estabelecer o canal de comunicações seguro pode incluir um domínio, tal como o domínio hóspede 130, fazendo pedido para o BIOS de tempo de execução confiável virtual 125 se identificar. O BIOS de tempo de execução confiável virtual 125 pode então enviar uma cópia de um certificado SSL para o domínio. O domínio checa se ele confia no certificado SSL e se o domínio confiar no certificado o domínio hóspede envia uma mensagem para o BIOS de tempo de execução confiável virtual. A mensagem a partir do domínio hóspede para o BIOS de tempo de execução confiável virtual pode incluir uma semente de chave de sessão que é criptografada com uma chave pública SSL. O BIOS de tempo de execução confiável virtual 125 pode então enviar de volta uma confirmação assinada digitalmente para o domínio para iniciar uma sessão criptografada SSL. Os dados criptografados podem agora ser compartilhados entre o domínio e o BIOS de tempo de execução confiável virtual 125.
[0028] Em um outro exemplo de estabelecimento da comunicação segura, o domínio pode incluir um certificado SSL e o domínio pode ser questionado para se identificar e o domínio responder enviando uma cópia do certificado SSL e a qual o BIOS de tempo de execução confiável virtual determina se ele confia no certificado e envia uma mensagem para o domínio. A mensagem a partir do BIOS de tempo de execução confiável virtual 125 pode incluir uma chave de sessão que é criptografada com uma chave pública SSL. O domínio pode enviar de volta uma confirmação assinada digitalmente para o BIOS de tempo de execução confiável virtual para iniciar uma sessão criptografada SSL, também resultando em compartilhar dados criptografados entre o domínio e o BIOS de tempo de execução confiável virtual.
[0029] A figura 2 é um diagrama de blocos de um sistema de computação de acordo com uma implementação exemplar de um modo de alto privilégio virtual. Um sistema de computação 200 pode incluir um processador 210. O processador 210 é parte do hardware 205 do sistema de computação 200. O hardware pode incluir firmware [programa residente de inicialização] 245 o qual pode incluir o sistema básico de entrada/saída (BIOS) 250 e a interface de firmware extensível (EFI) 255. O BIOS 250 pode ser referido como um BIOS físico. Um “BIOS físico” se refere a código BIOS que reside em memória não volátil tal como memória flash ou outra memória programável só de leitura, e que deve ser executado com a partida do sistema de computação 200. Em algumas implementações o BIOS físico pode ser uma versão reduzida (simplificada) do BIOS uma vez que pelo menos parte do modo de gerenciamento de sistema é movida para o BIOS de tempo de execução confiável virtual 225. Se um BIOS de tempo de execução confiável virtual 225 for implementado o BIOS físico 250 pode permanecer destravado para permitir mudanças por causa da confiança ligada ao BIOS de tempo de execução confiável virtual 225. O processador 210 pode ser um processador de propósito geral ou um processador específico para aplicação. O sistema pode incluir um monitor de máquina virtual VMM 215 para gerenciar os recursos físicos dos componentes de hardware e virtualizar os recursos físicos. O sistema de computação 100 inclui um sistema básico de entrada e saída virtual (vBIOS) 235 ligado a um domínio hóspede 230. O domínio hóspede 230 é uma máquina virtual que pode executar um sistema operacional tal como Microsoft Windows, Linux, Unix, ou um outro sistema operacional.
[0030] Em alguns exemplos, o domínio privilegiado 220 é domínio 0, um domínio administrativo iniciado pelo VMM 215 com a partida do sistema, o qual tem privilégios e mecanismos de segurança reforçados. Exemplos de tarefas executadas pelo domínio 0 incluem criar e configurar domínios hóspedes. Cada domínio 0 e domínios hóspedes é considerado uma correspondente máquina virtual. O domínio privilegiado 220 pode ser separado do VMM 215. Em implementações alternativas, o domínio privilegiado 220 pode ser parte do VMM 215. Em tais implementações alternativas, o BIOS de tempo de execução confiável virtual 225 é parte do VMM 215.
[0031] Um canal de comunicação seguro 285 pode ser usado para garantir comunicações tais como um pedido de gerenciamento de sistema. Um pedido de gerenciamento de sistema pode ser enviado por uma interface de programação de aplicação (API) de serviço da web. Em uma outra implementação o pedido de gerenciamento de sistema pode ser empacotado em um empacotador de instrumentação de gerenciamento Windows (WMI). Uma outra implementação inclui usar um chamado de procedimento remoto (RPC) para transmitir o pedido de gerenciamento de sistema para o modo de gerenciamento de sistema virtual.
[0032] Em algumas implementações, o BIOS em uma nuvem é baseado nas seguintes premissas de uma arquitetura baseada em VMM: o BIOS físico conhece e confia na entidade de tempo de execução principal (VMM 215) que o BIOS físico está carregando, e o VMM confiável pelo BIOS tem a capacidade de capturar e desligar todos os pedidos de I/O (para acessar funcionalidade do BIOS) outros que aqueles vindo do domínio privilegiado. Em algumas implementações, um mecanismo de verificação do BIOS pode ser provido para autenticar a origem do VMM que deve ser carregado pelo sistema de computação. Tais mecanismos de verificação permitem um administrador ou outro usuário especificar que só um VMM autorizado pode ser carregado no sistema de computação. O mecanismo de verificação garante que a imagem VMM que está no sistema de computação não foi modificada maliciosamente, e que o VMM pode ser confiado. O BIOS físico pode verificar visualmente a imagem VMM, e garantir que o VMM seja carregado com um conjunto conhecido de configurações operacionais controladas que tinham sido especificadas anteriormente.
[0033] Após verificar que um VMM autorizado foi carregado, o BIOS físico pode então deferir ou omitir a execução de várias medidas de segurança que o BIOS físico normalmente executaria para impedir a corrupção por código não autorizado ou malicioso. Por exemplo, o BIOS físico pode escolher não travar registros flash de BIOS e/ou porções da memória flash.
[0034] Em implementações nas quais o BIOS de tempo de execução confiável virtual 225 é provido internamente em um sistema de computação 200. A partir da perspectiva de uma máquina virtual hóspede ou outra entidade do sistema de computação que deseja acessar serviços do BIOS, a nuvem incluindo os serviços do BIOS pode estar localizada em qualquer lugar, incluindo em um local que seja externo ao sistema de computação.
[0035] Em uma implementação com um BIOS de tempo de execução confiável virtual, nenhum outro domínio que o domínio privilegiado ou outro domínio confiável será capaz de se comunicar com o BIOS. Isto pode ser porque todas as comunicações a partir de um domínio hóspede para o BIOS são capturadas e roteadas para a porção de domínio privilegiado para o apropriado filtro receber e processar. O modo de alto privilégio virtual no domínio de privilégio pode então processar o pedido e pode fazer chamadas diretas ou indiretas para o flash ou o BIOS. Esta chamada para o domínio privilegiado para o BIOS que será então permitida pelo hipervisor passá-la uma vez que o hipervisor pode detectar uma chamada originando-se do domínio privilegiado ao invés de um domínio hóspede. Proporcionando acesso aberto mas exclusivo ao BIOS físico, a comunicação a partir do domínio privilegiado para o BIOS físico é garantida, o domínio privilegiado pode agora escrever ou ler todas as configurações do BIOS em tempo de execução eliminando uma situação onde o processador entraria em um modo de gerenciamento de sistema.
[0036] Apesar do BIOS de tempo de execução confiável virtual ser seguro, a comunicação com o BIOS de tempo de execução confiável virtual pode não ser. Para assegurar a comunicação baseada na web com o BIOS de tempo de execução confiável virtual uma troca de sinais SSL pode ocorrer entre o BIOS de tempo de execução confiável virtual e um domínio solicitante, por exemplo, tal como o domínio hóspede 230. Neste exemplo o BIOS de tempo de execução confiável virtual pode incluir um certificado SSL tal como um servidor da web teria e o domínio solicitante pode usar aquele certificado para assegurar a comunicação com o BIOS de tempo de execução confiável virtual tal que o domínio solicitante opere similar a um navegador da web em um sítio da web seguro.
[0037] A figura 3 é um diagrama de fluxo de um método para assegurar comunicações com um BIOS de tempo de execução confiável virtual de acordo com uma implementação. Para iniciar uma comunicação SSL entre o domínio hóspede 301 e o BIOS de tempo de execução confiável virtual 302 o domínio hóspede diz olá em 305. O BIOS de tempo de execução confiável virtual então diz olá em 310. O BIOS de tempo de execução confiável virtual envia seu certificado para o domínio hóspede em 315.
[0038] Em algumas implementações o BIOS de tempo de execução confiável virtual pode enviar uma chave pública para o domínio hóspede. O BIOS de tempo de execução confiável virtual pode solicitar o certificado de cliente.
[0039] O BIOS de tempo de execução confiável virtual sinaliza ao domínio hóspede que o Olá está feito em 320. O domínio hóspede então faz uma troca de chaves em 325 usando a chave pública do certificado provido pelo BIOS de tempo de execução confiável virtual para trocar uma chave de sessão. A chave de sessão será usada para preparar criptografia simétrica e será comunicada para o BIOS de tempo de execução confiável virtual usando criptografia assimétrica. O domínio hóspede pode prover um certificado se o BIOS de tempo de execução confiável virtual solicitá-lo e o domínio hóspede tiver um certificado.
[0040] O domínio hóspede pode sinalizar para o BIOS de tempo de execução confiável virtual que existe uma mudança na Cipher Spec [especificação de criptografia] e que a próxima comunicação a partir do domínio hóspede será criptografada em 330 usando a chave de sessão. O domínio hóspede sinaliza que ele terminou em 335 o qual está criptografado usando a chave de sessão. O BIOS de tempo de execução confiável virtual pode mudar a Cipher Spec em 340 indicando que a mensagem seguinte será criptografada usando a chave de sessão. Uma mensagem acabada que está criptografada é enviada pelo BIOS de tempo de execução confiável virtual em 345. Dados criptografados podem ser transferidos reciprocamente entre o domínio hóspede e o BIOS de tempo de execução confiável virtual em 350 e 355.
[0041] A figura 4 é um diagrama de fluxo de um método 400 para assegurar comunicações com um BIOS de tempo de execução confiável virtual de acordo com uma implementação. O método pode começar gerenciando um BIOS de tempo de execução confiável virtual em 405. O BIOS de tempo de execução confiável virtual 125 pode ser gerenciado pelo monitor de máquina virtual 115. Um canal de comunicação seguro pode ser estabelecido com o BIOS de tempo de execução confiável virtual em 410.
[0042] Um exemplo do estabelecimento do canal de comunicações seguro pode incluir um domínio, tal como um domínio hóspede 130, fazendo pedido para o BIOS de tempo de execução confiável virtual 125 se identificar. O BIOS de tempo de execução confiável virtual 125 pode então enviar uma cópia de um certificado SSL para o domínio. O domínio checa se ele confia no certificado SSL e se o domínio confiar no certificado o domínio hóspede envia uma mensagem para o BIOS de tempo de execução confiável virtual. A mensagem a partir do domínio hóspede para o BIOS de tempo de execução confiável virtual pode incluir uma semente de chave de sessão que é criptografada com uma chave pública SSL. O BIOS de tempo de execução confiável virtual 125 pode então enviar de volta uma confirmação assinada digitalmente para o domínio iniciar uma sessão criptografada SSL. Dados criptografados podem agora ser compartilhados entre o domínio e o BIOS de tempo de execução confiável virtual 125.
[0043] Em um outro exemplo de estabelecimento da comunicação segura, o domínio pode incluir um certificado SSL e o domínio pode ser questionado a se identificar e o domínio responder enviando uma cópia do certificado SSL e o qual o BIOS de tempo de execução confiável virtual determina se ele confia no certificado e envia uma mensagem para o domínio. A mensagem a partir do BIOS de tempo de execução confiável virtual 125 pode incluir uma chave de sessão que é criptografada com uma chave pública SSL. O domínio pode enviar de volta uma confirmação assinada digitalmente para o BIOS de tempo de execução confiável virtual para iniciar uma sessão criptografada SSL, também resultando em compartilhar dados criptografados entre o domínio e o BIOS de tempo de execução confiável virtual.
[0044] O canal de comunicação seguro pode ser, por exemplo, um protocolo de comunicação baseado na web. A comunicação com o BIOS de tempo de execução confiável virtual é através de um canal de comunicação seguro usando camadas de soquetes seguras em 415.
[0045] A figura 5 é um diagrama de fluxo de um método 500 para assegurar comunicações com um BIOS de tempo de execução confiável virtual de acordo com uma implementação. O método pode começar comunicando-se com o BIOS de tempo de execução confiável virtual usando um protocolo baseado na web em 502. O BIOS de tempo de execução confiável virtual pode ser gerenciado em 505 tal que o BIOS de tempo de execução confiável virtual seja um componente confiável do sistema de computação 100. O BIOS de tempo de execução confiável virtual 125 pode ser gerenciado pelo monitor de máquina virtual 115. Um canal de comunicação seguro pode ser estabelecido com o BIOS de tempo de execução confiável virtual em 510. O canal de comunicação seguro pode ser, por exemplo, um protocolo de comunicações baseado na web. Uma troca de sinais usando uma chave pública e uma chave privada pode ser usada para assegurar a comunicação em 512. Para assegurar a comunicação com o BIOS de tempo de execução confiável virtual um canal de comunicação seguro usando camadas de soquetes seguras é usado para a comunicação com o BIOS de tempo de execução confiável virtual em 515. O BIOS de tempo de execução confiável virtual pode se comunicar com um BIOS físico em 518 para mudar configurações do sistema, por exemplo. Em algumas implementações o BIOS de tempo de execução confiável virtual está localizado remotamente do sistema de computação e o monitor de máquina virtual pode rotear a comunicação para o BIOS de tempo de execução confiável virtual independente de onde o BIOS de tempo de execução confiável virtual está localizado.
[0046] A figura 6 é um diagrama de blocos de um sistema de computação 600 de acordo com uma implementação exemplar de uma mídia lida por computador 615-616. A mídia lida por computador 615-616 pode incluir código que se executado por um processador 605 pode fazer um sistema de computação gerenciar uma comunicação com um BIOS de tempo de execução confiável virtual. O sistema de computador pode incluir hardware tal como um nó de rede [“hub”] controlador 610, um controlador gráfico 620. O sistema de computador pode ser conectado a um display 630, teclado 635, mouse 640, sensor 645, e outros dispositivos. O código também pode estabelecer uma camada de comunicação segura com o BIOS de tempo de execução confiável virtual. A comunicação com o BIOS de tempo de execução confiável virtual pode ser através do canal de comunicação seguro usando camadas de soquetes seguras.
[0047] O sistema de computação também pode incluir código que se executado faz um sistema de computação se comunicar com um BIOS de tempo de execução virtual localizado remotamente do sistema de computação. Se o BIOS estiver localizado remotamente do sistema de computação o componente, tal como um domínio, fazer o pedido para o BIOS de tempo de execução virtual pode não estar ciente que o BIOS está localizado remotamente. O VMM pode rotear o pedido sem notificar o componente solicitante. A comunicação com o BIOS de tempo de execução virtual pode ser por um protocolo de comunicação da web caso o BIOS de tempo de execução virtual esteja localizado localmente ou remotamente. O componente pode estabelecer um canal de comunicação seguro incluindo uma troca de sinais usando uma chave pública e uma chave privada por exemplo.
[0048] Vários módulos, tais como aqueles representados em outras figuras, podem ser implementados como instruções lidas por máquina que podem ser executadas em um ou múltiplos processadores. Um processador pode incluir um microprocessador, microcontrolador, módulo processador ou subsistema, circuito integrado programável, arranjo de portas programável, ou outro controle ou dispositivo de computação.
[0049] As instruções lidas por máquina podem ser armazenadas em uma mídia de armazenagem lida por máquina ou lida por computador, que pode ser implementada como uma ou múltiplas mídias de armazenagem lidas por computador ou lidas por máquina. A mídia de armazenagem pode incluir diferentes formas de memória incluindo dispositivos de memória de semicondutor tais como memórias de acesso randômico dinâmico ou estático (DRAMs ou SRAMs), memórias só de leitura programáveis e apagáveis (EPROMs), memórias só de leitura eletricamente programáveis e apagáveis (EEPROMs) e memórias flash; discos magnéticos tais como discos fixos, flexíveis e removíveis; outra mídia magnética incluindo fita; mídia ótica tal como discos compactos (CDs) ou discos de vídeo digital (DVDs); ou outros tipos de dispositivos de armazenagem. Note que as instruções discutidas acima podem ser providas em um meio lido por computador ou lido por máquina, ou alternativamente, elas podem ser providas em múltiplas mídias de armazenagem lidas por computador ou lidas por máquina em um sistema grande tendo possivelmente vários nós. Tal meio ou mídia de armazenagem lida por computador ou lida por máquina é considerado a ser parte de um artigo (ou artigo fabricado). Um artigo ou artigo fabricado pode se referir a qualquer componente único fabricado ou múltiplos componentes. O meio ou mídia de armazenagem pode estar localizado quer na máquina executando as instruções lidas por máquina, ou localizado em um sítio remoto a partir do qual instruções lidas por máquina podem ser baixadas através de uma rede para execução.
[0050] Na descrição anterior, numerosos detalhes estão registrados para prover uma compreensão do assunto divulgado aqui. Entretanto, implementações podem ser praticadas sem alguns ou todos estes detalhes. Outras implementações podem incluir modificações e variações dos detalhes discutidos acima. É intencionado que as reivindicações anexas cubram tais modificações e variações.

Claims (15)

1. Sistema de computação, caracterizado pelo fato de compreender: - hardware hospedando um domínio hóspede; - um monitor de máquina virtual; - um sistema básico de entrada/saída de tempo de execução confiável virtual gerenciado pelo monitor de máquina virtual, em que o sistema básico de entrada/saída do tempo de execução confiável virtual está localizado remoto do hardware; e - um canal de comunicação para um sistema básico de entrada/saída virtual do domínio hóspede para se comunicar com o sistema básico de entrada/saída de tempo de execução confiável virtual, sendo que o canal de comunicação é assegurado por uma camada de soquetes segura, em que o canal de comunicação é para o sistema básico de entrada/saída virtual do domínio hóspede solicitar um serviço de entrada/saída básico do sistema básico de entrada/saída de tempo de execução confiável virtual.
2. Sistema de computação, de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente uma chave pública e uma chave privada para prover comunicações seguras com o sistema básico de entrada/saída de tempo de execução confiável virtual.
3. Sistema de computação, de acordo com a reivindicação 1, caracterizado pelo fato de o canal de comunicação ser baseado em um protocolo de comunicações da web.
4. Sistema de computação, de acordo com a reivindicação 3, caracterizado pelo fato de o canal de comunicação ser entre uma camada de Protocolo de Transferência de Hipertexto (HTTP) e uma camada de Protocolo de Controle de Transporte (TCP).
5. Sistema de computação, de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente um domínio privilegiado para hospedar o sistema básico de entrada/saída de tempo de execução confiável virtual.
6. Sistema de computação, de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente um transceptor para se comunicar com o sistema básico de entrada/saída de tempo de execução confiável virtual.
7. Método para assegurar comunicações com um sistema básico de entrada/saída de tempo de execução confiável virtual em um sistema de computação, caracterizado pelo fato de compreender: - gerenciar o sistema básico de entrada/saída de tempo de execução confiável virtual; - estabelecer um canal de comunicação seguro a partir de um sistema básico de entrada/saída virtual de um domínio hóspede com o sistema básico de entrada/saída de tempo de execução confiável virtual, em que o sistema básico de entrada/saída de tempo de execução confiável virtual está localizado remoto de um hardware hospedando o domínio hóspede; - comunicar-se com o sistema básico de entrada/saída de tempo de execução confiável virtual através do canal de comunicação seguro usando uma camada de soquete segura, em que a comunicação é para o sistema básico de entrada/saída virtual do domínio hóspede solicitar um sistema básico de entrada/saída do sistema básico de entrada/saída de tempo de execução confiável virtual.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de compreender adicionalmente se comunicar a partir do sistema básico de entrada/saída de tempo de execução confiável virtual com um sistema básico de entrada/saída físico.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que o sistema básico de entrada/saída de tempo de execução virtual está localizado de forma remota do sistema básico de entrada/saída físico.
10. Método, de acordo com a reivindicação 7, caracterizado pelo fato de a comunicação com o sistema básico de entrada/saída de tempo de execução virtual ser baseado em um protocolo de comunicação da web.
11. Método, de acordo com a reivindicação 7, caracterizado pelo fato de o estabelecimento do canal de comunicação seguro incluir uma troca de sinais usando uma chave pública e uma chave privada.
12. Meio legível por computador não transitório, caracterizado pelo fato de compreender instruções que, quando executadas por um processador de um sistema de computação, fazem o processador: - gerenciar uma comunicação com um sistema básico de entrada/saída de tempo de execução confiável virtual do sistema de computação; - estabelecer um canal de comunicação seguro a partir de um sistema básico de entrada/saída virtual de um domínio hóspede com o sistema básico de entrada/saída de tempo de execução confiável virtual, em que o sistema básico de entrada/saída de tempo de execução confiável virtual é localizado remoto de um hardware hospedando o domínio hóspede; e - comunicar-se com o sistema básico de entrada/saída de tempo de execução confiável virtual através do canal de comunicação seguro usando uma camada de soquete segura em que o canal de comunicação segura é para o sistema básico de entrada/saída virtual do domínio hóspede solicitar um serviço básico de entrada/saída do sistema básico de entrada/saída de tempo de execução confiável virtual.
13. Meio legível por computador não transitório, de acordo com a reivindicação 12, caracterizado pelo fato de que o sistema básico de entrada/saída de tempo de execução confiável virtual está localizado remoto de um sistema básico de entrada/saída físico do sistema de computação.
14. Meio legível por computador não transitório, de acordo com a reivindicação 12, caracterizado pelo fato de compreender adicionalmente instruções que, quando executadas pelo processador, fazem um dispositivo de computação processador: - comunicar-se com o sistema básico de entrada/saída de tempo de execução confiável virtual usando um protocolo de comunicação da web.
15. Meio legível por computador não transitório, de acordo com a reivindicação 12, caracterizado pelo fato de compreender adicionalmente instruções que, quando executadas pelo processador, fazem o processador: - estabelecer o canal de comunicação seguro através de uma troca de sinais usando uma chave pública e uma chave privada.
BR112014003389-7A 2011-08-30 2011-09-29 Sistema de computação, método para assegurar comunicações com um bios de tempo de execução confiável virtual em um sistema de computação e meio lido por computador BR112014003389B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
USPCT/US2011/049677 2011-08-30
PCT/US2011/049677 WO2013032442A1 (en) 2011-08-30 2011-08-30 Virtual high privilege mode for a system management request
PCT/US2011/054045 WO2013032495A1 (en) 2011-08-30 2011-09-29 Communication with a virtual trusted runtime bios

Publications (2)

Publication Number Publication Date
BR112014003389A2 BR112014003389A2 (pt) 2017-02-21
BR112014003389B1 true BR112014003389B1 (pt) 2021-09-28

Family

ID=54328041

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014003389-7A BR112014003389B1 (pt) 2011-08-30 2011-09-29 Sistema de computação, método para assegurar comunicações com um bios de tempo de execução confiável virtual em um sistema de computação e meio lido por computador

Country Status (9)

Country Link
US (4) US9275230B2 (pt)
EP (1) EP2771783B1 (pt)
JP (1) JP5809362B2 (pt)
CN (2) CN103748556B (pt)
BR (1) BR112014003389B1 (pt)
DE (1) DE112011105568T5 (pt)
GB (1) GB2507015B (pt)
TW (1) TWI464680B (pt)
WO (2) WO2013032495A1 (pt)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9148428B1 (en) * 2011-05-25 2015-09-29 Bromium, Inc. Seamless management of untrusted data using virtual machines
JP6063941B2 (ja) 2011-08-30 2017-01-18 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. システム管理要求のための仮想高特権モード
JP5809362B2 (ja) * 2011-08-30 2015-11-10 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 仮想トラステッドランタイムbiosとの通信
US9448810B2 (en) 2011-10-21 2016-09-20 Hewlett-Packard Development Company, L.P. Web-based interface to access a function of a basic input/output system
US9753738B2 (en) 2011-10-21 2017-09-05 Hewlett-Packard Development Company, L.P. Providing a function of a basic input/output system (BIOS) in a privileged domain
US9253185B2 (en) * 2012-12-12 2016-02-02 Nokia Technologies Oy Cloud centric application trust validation
US9497266B2 (en) * 2013-02-22 2016-11-15 International Business Machines Corporation Disk mirroring for personal storage
US9129113B2 (en) 2013-11-13 2015-09-08 Via Technologies, Inc. Partition-based apparatus and method for securing bios in a trusted computing system during execution
US9183394B2 (en) 2013-11-13 2015-11-10 Via Technologies, Inc. Secure BIOS tamper protection mechanism
US9779243B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
US9798880B2 (en) 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
US9779242B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US10095868B2 (en) 2013-11-13 2018-10-09 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9507942B2 (en) 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
US10049217B2 (en) 2013-11-13 2018-08-14 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US10055588B2 (en) 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US9367689B2 (en) 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
US9547767B2 (en) 2013-11-13 2017-01-17 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9767288B2 (en) 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based secure BIOS mechanism in a trusted computing system
CN105814834B (zh) 2013-12-20 2019-12-20 诺基亚技术有限公司 用于公共云应用的基于推送的信任模型
US20150304343A1 (en) 2014-04-18 2015-10-22 Intuit Inc. Method and system for providing self-monitoring, self-reporting, and self-repairing virtual assets in a cloud computing environment
US10121007B2 (en) 2014-02-21 2018-11-06 Intuit Inc. Method and system for providing a robust and efficient virtual asset vulnerability management and verification service
US10757133B2 (en) 2014-02-21 2020-08-25 Intuit Inc. Method and system for creating and deploying virtual assets
US20150271195A1 (en) * 2014-03-18 2015-09-24 Intuit Inc. Method and system for providing temporary secure access enabled virtual assets
US11294700B2 (en) 2014-04-18 2022-04-05 Intuit Inc. Method and system for enabling self-monitoring virtual assets to correlate external events with characteristic patterns associated with the virtual assets
US10102082B2 (en) 2014-07-31 2018-10-16 Intuit Inc. Method and system for providing automated self-healing virtual assets
CN105988830B (zh) * 2015-02-04 2019-07-26 联想(北京)有限公司 信息处理方法及电子设备
US10375088B2 (en) 2015-06-04 2019-08-06 Vm-Robot, Inc. Routing systems and methods
US9749294B1 (en) * 2015-09-08 2017-08-29 Sprint Communications Company L.P. System and method of establishing trusted operability between networks in a network functions virtualization environment
US10542115B1 (en) 2015-10-01 2020-01-21 Sprint Communications Company L.P. Securing communications in a network function virtualization (NFV) core network
US9781016B1 (en) 2015-11-02 2017-10-03 Sprint Communications Company L.P. Dynamic addition of network function services
US10740710B2 (en) 2016-03-25 2020-08-11 Nebbiolo Technologies, Inc. Fog computing facilitated flexible factory
US10250498B1 (en) 2016-10-03 2019-04-02 Sprint Communications Company L.P. Session aggregator brokering of data stream communication
US10798063B2 (en) * 2016-10-21 2020-10-06 Nebbiolo Technologies, Inc. Enterprise grade security for integrating multiple domains with a public cloud
US11231448B2 (en) 2017-07-20 2022-01-25 Targus International Llc Systems, methods and devices for remote power management and discovery
US10979368B2 (en) 2017-08-02 2021-04-13 Nebbiolo Technologies, Inc. Architecture for converged industrial control and real time applications
US10348488B1 (en) 2017-08-25 2019-07-09 Sprint Communications Company L.P. Tiered distributed ledger technology (DLT) in a network function virtualization (NFV) core network
US10838707B2 (en) 2018-07-20 2020-11-17 Dell Products L.P. Runtime update of intel server platform services' node manager settings in bios EEPROM
WO2020214174A1 (en) * 2019-04-18 2020-10-22 Hewlett-Packard Development Company, L.P. Service trust status
JP2022545157A (ja) 2019-08-22 2022-10-26 ターガス インターナショナル エルエルシー 参加者制御型ビデオ会議のためのシステム及び方法
US11960337B2 (en) 2020-01-22 2024-04-16 Hewlett-Packard Development Company, L.P. Customized thermal and power policies in computers
US20220156381A1 (en) * 2020-11-19 2022-05-19 Moxa Inc. Method of Handling Security of an Operating System
US20230237155A1 (en) * 2022-01-27 2023-07-27 Hewlett Packard Enterprise Development Lp Securing communications with security processors using platform keys
CN114244515B (zh) * 2022-02-25 2022-06-28 中瓴智行(成都)科技有限公司 基于Hypervisor的虚拟机通信方法、装置、可读存储介质及电子设备

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230052A (en) * 1990-10-01 1993-07-20 International Business Machines Corp. Apparatus and method for loading bios into a computer system from a remote storage location
US5574920A (en) * 1994-10-25 1996-11-12 Microsoft Corporation Method for controlling power down of a hard disk drive in a computer
US5701477A (en) * 1995-03-30 1997-12-23 Cirrus Logic, Inc. Method and apparatus for master boot record shadowing
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
KR20000062377A (ko) 1996-12-30 2000-10-25 사이러스 로직, 인크. 구 버젼과 호환가능한 운영 체계에서의 실시간 서비스
US6003065A (en) 1997-04-24 1999-12-14 Sun Microsystems, Inc. Method and system for distributed processing of applications on host and peripheral devices
US20030229794A1 (en) 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7024550B2 (en) * 2002-06-28 2006-04-04 Hewlett-Packard Development Company, L.P. Method and apparatus for recovering from corrupted system firmware in a computer system
US7337309B2 (en) 2003-03-24 2008-02-26 Intel Corporation Secure online BIOS update schemes
US7032108B2 (en) * 2003-05-02 2006-04-18 Egenera, Inc. System and method for virtualizing basic input/output system (BIOS) including BIOS run time services
US7380136B2 (en) * 2003-06-25 2008-05-27 Intel Corp. Methods and apparatus for secure collection and display of user interface information in a pre-boot environment
EP1530339B1 (en) 2003-11-07 2008-03-05 Harman Becker Automotive Systems GmbH Method and apparatuses for access control to encrypted data services for a vehicle entertainment and information processing device
US7707341B1 (en) 2004-05-11 2010-04-27 Advanced Micro Devices, Inc. Virtualizing an interrupt controller
US8271976B2 (en) * 2004-06-30 2012-09-18 Microsoft Corporation Systems and methods for initializing multiple virtual processors within a single virtual machine
US7757231B2 (en) 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US7334076B2 (en) * 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US7937701B2 (en) 2005-06-30 2011-05-03 Intel Corporation ACPI communication between virtual machine monitor and policy virtual machine via mailbox
US20070055968A1 (en) 2005-09-07 2007-03-08 Rader Shawn T Reliable BIOS updates
CN100437420C (zh) 2005-09-30 2008-11-26 联想(北京)有限公司 计算机系统及其安全加固方法
US7676666B2 (en) 2006-02-02 2010-03-09 Dell Products L.P. Virtual BIOS firmware hub
JP4542514B2 (ja) * 2006-02-13 2010-09-15 株式会社日立製作所 計算機の制御方法、プログラム及び仮想計算機システム
US7840398B2 (en) * 2006-03-28 2010-11-23 Intel Corporation Techniques for unified management communication for virtualization systems
KR101071790B1 (ko) 2006-05-21 2011-10-11 인터내셔널 비지네스 머신즈 코포레이션 어써션 메세지 시그너처
US20080082976A1 (en) * 2006-09-29 2008-04-03 Matthias Steinwagner Usage of virtualization software for shipment of software products
US9280659B2 (en) * 2006-12-29 2016-03-08 Intel Corporation Methods and apparatus for remeasuring a virtual machine monitor
CN101241445B (zh) 2007-02-08 2011-07-27 联想(北京)有限公司 虚拟机系统及其访问显卡的方法
US8060876B2 (en) * 2007-08-10 2011-11-15 Intel Corporation Methods and apparatus for creating an isolated partition for a virtual trusted platform module
US8064605B2 (en) * 2007-09-27 2011-11-22 Intel Corporation Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US20090125901A1 (en) * 2007-11-13 2009-05-14 Swanson Robert C Providing virtualization of a server management controller
US20110040812A1 (en) 2007-12-20 2011-02-17 Virtual Computer, Inc. Layered Virtual File System
US8584229B2 (en) * 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
JP2009176213A (ja) * 2008-01-28 2009-08-06 Hitachi Software Eng Co Ltd ネットワークブート方式
US20090198988A1 (en) * 2008-01-31 2009-08-06 Inventec Corporation Method for verifying refreshed bios content
JP2009230433A (ja) 2008-03-21 2009-10-08 Toshiba Corp ネットワークブート装置、プログラム及び方法
US8117435B2 (en) 2008-06-30 2012-02-14 Intel Corporation Method and system for secured dynamic bios update
TWI460657B (zh) 2008-09-05 2014-11-11 Asustek Comp Inc 更新與修復基本輸入輸出系統的方法
CN101409714A (zh) * 2008-11-18 2009-04-15 华南理工大学 一种基于虚拟机的防火墙系统
CN101739283B (zh) * 2008-11-20 2013-12-25 联想(北京)有限公司 一种计算机及虚拟系统直接访问计算机硬件的方法
US20110055299A1 (en) 2008-12-18 2011-03-03 Virtual Computer, Inc. Managing User Data in a Layered Virtual Workspace
US8799691B2 (en) 2009-01-07 2014-08-05 Hewlett-Packard Development Company, L.P. Hierarchical power management
US8166288B2 (en) 2009-01-30 2012-04-24 Hewlett-Packard Development Company, L.P. Managing requests of operating systems executing in virtual machines
US8918488B2 (en) 2009-02-04 2014-12-23 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
US8245086B2 (en) * 2009-06-26 2012-08-14 International Business Machines Corporation Visual feedback system for multiple partitions on a server
CN101599025B (zh) * 2009-07-07 2012-07-18 武汉大学 可信密码模块安全虚拟化方法
US8286164B2 (en) * 2009-08-07 2012-10-09 International Business Machines Corporation Secure recursive virtualization
US9069591B1 (en) * 2009-09-10 2015-06-30 Parallels IP Holding GmbH Patching host OS structures for hardware isolation of virtual machines
JP2011076505A (ja) 2009-09-30 2011-04-14 Brother Industries Ltd 情報処理システム及び情報処理方法
US20110126194A1 (en) * 2009-11-24 2011-05-26 International Business Machines Corporation Shared security device
WO2011081935A2 (en) * 2009-12-14 2011-07-07 Citrix Systems, Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
JP5458899B2 (ja) 2010-01-12 2014-04-02 富士通株式会社 仮想計算機、遠隔起動プログラム、遠隔起動方法及び仮想計算機システム
US8473947B2 (en) * 2010-01-18 2013-06-25 Vmware, Inc. Method for configuring a physical adapter with virtual function (VF) and physical function (PF) for controlling address translation between virtual disks and physical storage regions
US8977842B1 (en) * 2010-02-05 2015-03-10 Symantec Corporation Hypervisor enabled secure inter-container communications
US8719817B2 (en) * 2010-03-25 2014-05-06 Vmware, Inc. Virtualization intermediary/virtual machine guest operating system collaborative SCSI path management
EP2569698B1 (en) * 2010-05-10 2019-07-10 Citrix Systems, Inc. Redirection of information from secure virtual machines to unsecure virtual machines
CN102262557B (zh) * 2010-05-25 2015-01-21 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
US8429276B1 (en) * 2010-10-25 2013-04-23 Juniper Networks, Inc. Dynamic resource allocation in virtual environments
CN101957900B (zh) * 2010-10-26 2012-02-15 中国航天科工集团第二研究院七○六所 一种可信虚拟机平台
US8799997B2 (en) * 2011-04-18 2014-08-05 Bank Of America Corporation Secure network cloud architecture
EP2718785A4 (en) * 2011-06-13 2014-12-31 Lynux Works Inc SYSTEMS AND METHOD FOR SAFE DOMAIN INSULATION
JP5809362B2 (ja) * 2011-08-30 2015-11-10 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 仮想トラステッドランタイムbiosとの通信

Also Published As

Publication number Publication date
TWI464680B (zh) 2014-12-11
CN103748556A (zh) 2014-04-23
US9535710B2 (en) 2017-01-03
CN103748556B (zh) 2018-02-02
US20140359259A1 (en) 2014-12-04
CN103890715A (zh) 2014-06-25
EP2771783A4 (en) 2015-06-03
US20160162299A1 (en) 2016-06-09
WO2013032495A1 (en) 2013-03-07
EP2771783B1 (en) 2020-08-05
JP2014529130A (ja) 2014-10-30
GB2507015B (en) 2020-04-29
US10013559B2 (en) 2018-07-03
WO2013032508A1 (en) 2013-03-07
EP2771783A1 (en) 2014-09-03
CN103890715B (zh) 2017-09-12
DE112011105568T5 (de) 2014-05-28
GB2507015A (en) 2014-04-16
TW201322128A (zh) 2013-06-01
US20140250294A1 (en) 2014-09-04
US20170068817A1 (en) 2017-03-09
US9275230B2 (en) 2016-03-01
US9542197B2 (en) 2017-01-10
JP5809362B2 (ja) 2015-11-10
BR112014003389A2 (pt) 2017-02-21
GB201401956D0 (en) 2014-03-19

Similar Documents

Publication Publication Date Title
US10013559B2 (en) Communication with a virtual trusted runtime BIOS
US9753742B2 (en) Web-based interface to access a function of a basic input/output system
US8800009B1 (en) Virtual machine service access
US10205750B2 (en) Policy-based secure web boot
US9753738B2 (en) Providing a function of a basic input/output system (BIOS) in a privileged domain
US8677449B1 (en) Exposing data to virtual machines
US9639691B2 (en) Dynamic database and API-accessible credentials data store
JP6293133B2 (ja) 被保護データー集合のネットワーク・ベース管理
EP3736718B1 (en) A tpm-based secure multiparty computing system using a non-bypassable gateway
Pedone et al. Trusted computing technology and proposals for resolving cloud computing security problems
US20230195493A1 (en) Virtual device enrollment and management
Avaznejad Disk Encryption on Talos Operating System
TWI603221B (zh) 路由器及虛擬受信賴運作時間基本輸入輸出系統
CN118235125A (zh) 使用健康票据的安全包围区中的活性保证
Julian Cellar: Securing Data for Twister
Almantsri et al. Cellar: Securing Data for Twister

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.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 29/09/2011, OBSERVADAS AS CONDICOES LEGAIS.