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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004891 communication Methods 0.000 claims abstract description 85
- 238000012546 transfer Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 14
- 230000015654 memory Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45541—Bare-metal, i.e. hypervisor runs directly on hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0435—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0442—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation 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
[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.
[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.
[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.
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)
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)
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との通信 |
-
2011
- 2011-09-29 JP JP2014527137A patent/JP5809362B2/ja not_active Expired - Fee Related
- 2011-09-29 DE DE112011105568.4T patent/DE112011105568T5/de not_active Withdrawn
- 2011-09-29 WO PCT/US2011/054045 patent/WO2013032495A1/en active Application Filing
- 2011-09-29 US US14/238,729 patent/US9275230B2/en not_active Expired - Fee Related
- 2011-09-29 GB GB1401956.6A patent/GB2507015B/en not_active Expired - Fee Related
- 2011-09-29 CN CN201180072962.2A patent/CN103748556B/zh active Active
- 2011-09-29 BR BR112014003389-7A patent/BR112014003389B1/pt active IP Right Grant
- 2011-10-19 WO PCT/US2011/056932 patent/WO2013032508A1/en active Application Filing
- 2011-10-19 CN CN201180074226.0A patent/CN103890715B/zh active Active
- 2011-10-19 US US14/347,086 patent/US9542197B2/en active Active
- 2011-10-19 EP EP11871598.6A patent/EP2771783B1/en active Active
-
2012
- 2012-10-01 TW TW101136225A patent/TWI464680B/zh not_active IP Right Cessation
-
2016
- 2016-02-16 US US15/044,758 patent/US9535710B2/en active Active
- 2016-11-21 US US15/357,805 patent/US10013559B2/en active Active
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. |