BR112021017782B1 - Iniciando um convidado seguro usando um mecanismo de carga de programa inicial - Google Patents

Iniciando um convidado seguro usando um mecanismo de carga de programa inicial Download PDF

Info

Publication number
BR112021017782B1
BR112021017782B1 BR112021017782-5A BR112021017782A BR112021017782B1 BR 112021017782 B1 BR112021017782 B1 BR 112021017782B1 BR 112021017782 A BR112021017782 A BR 112021017782A BR 112021017782 B1 BR112021017782 B1 BR 112021017782B1
Authority
BR
Brazil
Prior art keywords
hypervisor
restart
host server
secure
encrypted
Prior art date
Application number
BR112021017782-5A
Other languages
English (en)
Other versions
BR112021017782A2 (pt
Inventor
Viktor Mihajlovski
Claudio Imbrenda
Original Assignee
International Business Machines Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corporation filed Critical International Business Machines Corporation
Publication of BR112021017782A2 publication Critical patent/BR112021017782A2/pt
Publication of BR112021017782B1 publication Critical patent/BR112021017782B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

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

Abstract

INICIANDO UM CONVIDADO SEGURO USANDO UM MECANISMO DE CARGA DE PROGRAMA INICIAL. Um método para iniciar um convidado seguro inclui receber, por um hipervisor que está executando em um servidor host, uma solicitação para despachar uma máquina virtual (VM) no servidor host. A VM é despachada no servidor host pelo hipervisor. A VM inclui uma instrução de reinicialização. A instrução de reinicialização é acionada pelo hipervisor para reiniciar a VM em um modo seguro.

Description

ANTECEDENTES
[0001] A presente invenção se refere geralmente a tecnologia de computador e, mais especificamente, a iniciar um convidado seguro usando um mecanismo de carregamento de programa inicial (IPL).
[0002] A computação em nuvem e o armazenamento fornecem aos usuários recursos para armazenar e processar seus dados em data centers de terceiros. A computação em nuvem facilita a capacidade de provisionar uma máquina virtual (VM) para um cliente de forma rápida e fácil, sem exigir que o cliente compre hardware ou forneça espaço para um servidor físico. O cliente pode expandir ou contrair a VM de acordo com a mudança de preferências ou requisitos do cliente. Normalmente, um provedor de computação em nuvem provisiona a VM, que está fisicamente residente em um servidor no data center do provedor. Os clientes muitas vezes se preocupam com a segurança dos dados na VM, especialmente porque a computação os provedores geralmente armazenam mais de um dado do cliente no mesmo servidor. O cliente pode desejar de segurança entre o seu código/dados e o provedor de nuvem de computação, como bem como entre o seu código/dados e que de outras VMs em execução no provedor site. Além disso, o cliente pode desejar a segurança dos administradores do provedor, como também contra potenciais falhas de segurança em outro código em execução na máquina.
[0003] Para lidar com tais situações sensíveis, os provedores de serviços em nuvem podem implementar controles de segurança para garantir o isolamento de dados adequado e segregação de armazenamento lógico. O uso extensivo de virtualização na implementação de infraestrutura em nuvem resulta em preocupações de segurança exclusivas para clientes de serviços em nuvem, pois a virtualização altera o relacionamento entre um sistema operacional (SO) e o hardware subjacente, seja computação, armazenamento ou mesmo rede. Isso apresenta a virtualização como uma camada adicional que deve ser configurada, gerenciada e protegida adequadamente .
SUMÁRIO
[0004] De acordo com uma ou mais concretizações da presente invenção, um método de exemplo não limitativo inclui receber, por um hipervisor que está executando em um servidor hospedeiro, uma solicitação para despachar uma máquina virtual (VM) no servidor hospedeiro. A VM é despachada no servidor hospedeiro pelo hipervisor. A VM inclui uma instrução de reinicialização. A instrução de reinicialização é acionada pelo hipervisor para reiniciar a VM em um modo seguro. Os efeitos e benefícios técnicos de uma ou mais concretizações podem incluir a capacidade de iniciar uma VM segura usando uma instrução de reinicialização executada por uma VM não segura.
[0005] De acordo com concretizações adicionais ou alternativas da presente invenção, a instrução de reinicialização utiliza um mecanismo de carregamento de programa inicial (IPL). Os efeitos e benefícios técnicos podem incluir a capacidade de usar um mecanismo de IPL padrão para iniciar uma VM segura.
[0006] De acordo com concretizações adicionais ou alternativas da presente invenção, o despacho inclui o carregamento de uma imagem criptografada da VM em uma memória do servidor hospedeiro e o carregamento de um componente de bootstrap não criptografado compreendendo a instrução de reinicialização na memória. Os efeitos e benefícios técnicos podem incluir a capacidade de um hipervisor iniciar a VM em um modo não seguro sem primeiro descriptografar uma imagem da VM.
[0007] De acordo com concretizações adicionais ou alternativas da presente invenção, o despacho inclui ainda a transferência de controle para o componente bootstrap não criptografado . Os efeitos e benefícios técnicos podem incluir a capacidade de um hipervisor iniciar a VM em um modo não seguro sem primeiro descriptografar uma imagem da VM e, em seguida, transferir o controle para um componente de bootstrap para reiniciar a VM em um modo seguro.
[0008] De acordo com concretizações adicionais ou alternativas da presente invenção, a VM inclui componentes criptografados subsequentes ao envio. Os efeitos e benefícios técnicos podem incluir a capacidade de um hipervisor iniciar a VM em um modo não seguro sem primeiro descriptografar uma imagem da VM.
[0009] De acordo com concretizações adicionais ou alternativas da presente invenção, a reinicialização inclui descriptografar os componentes criptografados da VM. Os efeitos e benefícios técnicos podem incluir a descriptografia de uma imagem de VM criptografada como parte de um processo de reinicialização.
[0010] De acordo com concretizações adicionais ou alternativas da presente invenção, o VM despachado pelo hipervisor está em um modo não seguro e os dados do VM são acessíveis pelo hipervisor. Os efeitos e benefícios técnicos podem incluir a capacidade de um hipervisor iniciar a VM em um modo não seguro sem primeiro descriptografar uma imagem da VM.
[0011] De acordo com concretizações adicionais ou alternativas da presente invenção, com base em uma determinação de que a VM está no modo seguro, evitando que o hipervisor acesse quaisquer dados da VM. Os efeitos e benefícios técnicos podem incluir a capacidade de fornecer um ambiente de VM seguro.
[0012] De acordo com concretizações adicionais ou alternativas da presente invenção, a VM no servidor hospedeiro inclui uma imagem criptografada da VM. Além disso, o acionamento da instrução de reinicialização inclui o hipervisor chamando um controle de interface seguro para executar a reinicialização em um modo seguro, o hipervisor especificando um local da imagem criptografada da VM no servidor hospedeiro e informações de descriptografia .
[0013] De acordo com concretizações adicionais ou alternativas da presente invenção, realizar a reinicialização inclui descriptografar, pelo controle de interface seguro, o VM com base nas informações de descriptografia. Também inclui reiniciar a VM com base na VM descriptografada, em que, após a reinicialização, o hipervisor é impedido de acessar quaisquer dados da VM.
[0014] Outras concretizações da presente invenção implementam as características dos métodos descritos acima em sistemas de computador e em produtos de programa de computador.
[0015] Características e vantagens adicionais são realizadas por meio das técnicas da presente divulgação. Outras concretizações e aspectos da invenção são descritos em detalhes neste documento e são considerados parte da invenção. Para um melhor entendimento da invenção com as vantagens e características, consulte a descrição e os desenhos.
BREVE DESCRIÇÃO DOS DESENHOS
[0014] As especificações dos direitos exclusivos descritos neste documento são particularmente apontados e distintamente reivindicados nas reivindicações na conclusão do relatório descritivo. As características anteriores e outras características e vantagens das concretizações da invenção são evidentes a partir da seguinte descrição detalhada tomada em conjunto com os desenhos anexos, nos quais:
[0015] Figura 1 representa um diagrama esquemático de um sistema para iniciar um convidado usando um mecanismo de carregamento de programa inicial (IPL) de acordo com uma ou mais concretizações da presente invenção;
[0016] Figura 2 representa um diagrama de fluxo de um processo para iniciar um convidado seguro usando um mecanismo de carregamento de programa inicial (IPL) de acordo com uma ou mais concretizações do presente invenção;
[0017] Figura 3 representa um diagrama esquemático de um sistema que inclui um convidado seguro carregado em um servidor hospedeiro de acordo com uma ou mais concretizações da presente invenção;
[0018] Figura 4 representa um bloco de informações de IPL para iniciar um convidado seguro de acordo com uma ou mais concretizações da presente invenção;
[0019] Figura 5 representa um fluxo de processo para iniciar um convidado seguro de acordo com uma ou mais concretizações da presente invenção;
[0020] Figura 6 representa um ambiente de computação em nuvem de acordo com uma ou mais concretizações da presente invenção;
[0021] Figura 7 representa camadas de modelo de abstração de acordo com uma ou mais concretizações da presente invenção;
[0022] Figura 8 representa um sistema de acordo com uma ou mais concretizações da presente invenção; e
[0023] Figura 9 representa um sistema de processamento de acordo com uma ou mais concretizações da presente invenção.Os diagramas descritos neste documento são ilustrativos. Pode haver muitas variações no diagrama ou nas operações nele descritas, sem se afastar do espírito da invenção. Por exemplo, as ações podem ser executadas em uma ordem diferente ou as ações podem ser adicionadas, excluídas ou modificadas. Além disso, o termo "acoplado " e variações do mesmo descreve ter um caminho de comunicação entre dois elementos e não implica uma conexão direta entre os elementos sem elementos/conexões intervenientes entre eles. Todas essas variações são consideradas parte da especificação.
DESCRIÇÃO DETALHADA
[0025] De acordo com uma ou mais concretizações da presente invenção, um novo mecanismo de carregamento de programa inicial (IPL) é fornecido para permitir que um convidado, ou máquina virtual (VM), em execução em um servidor hospedeiro para solicitar uma transferência para um local seguro modo. Quando no modo seguro, o hipervisor não tem acesso aos dados da VM. De acordo com uma ou mais concretizações da presente invenção, quando uma VM está executando em um modo seguro, um controle de interface seguro implementado em hardware e/ou firmware é usado para fornecer isolamento entre o convidado seguro e outros convidados em execução no servidor hospedeiro .
[0026] De acordo com uma ou mais concretizações da presente invenção, uma imagem criptografada de uma VM é carregada em uma memória VM de um servidor hospedeiro juntamente com um componente de bootstrap não criptografado. O componente bootstrap tem acesso a informações sobre todas as páginas da memória da imagem criptografada da VM, bem como uma estrutura de metadados para uso na descriptografia da imagem e reinicialização da VM em um modo seguro (ou seja, como um convidado seguro). De acordo com uma ou mais concretizações da presente invenção, a estrutura de meta-dados também inclui uma lista de regiões contíguas da imagem do sistema operacional que podem ser usadas. Como é conhecido na técnica, em vez de listar todas as páginas de memória de um sistema operacional individualmente, uma lista de regiões em que cada uma inclui uma página inicial e um número de páginas pode economizar espaço e acelerar o processamento. Por exemplo, se uma imagem hipotética do sistema operacional residir nas páginas 0, 1, 2, 3, 6 e 7, isso poderia ser especificado como (0, 4) e (6,2).
[0027] De acordo com uma ou mais concretizações da presente invenção, o componente de bootstrap desencadeia uma operação de reinicialização ou reinicialização, preparando um bloco de informações de IPL em um novo formato; definir o bloco de informação IPL usando, por exemplo, um “Diagnose 308 Subcode 5”; e realizar o IPL usando, por exemplo, um “Diagnose 308 Subcódigo 3” ou um novo código. O bloco de informações IPL pode incluir: um cabeçalho de execução segura (SE) com uma chave de imagem e valores de integridade; uma lista de regiões de memória que precisam ser descriptografadas; e vetores de inicialização (IVs), que foram usados para a criptografia de todas as páginas da imagem. Em um ambiente convencional, o bloco de informações IPL contém a identificação da fonte de inicialização, que pode ser o endereço do dispositivo de disco, uma denominação como CDROM e assim por diante. Para o ambiente seguro implementado por uma ou mais concretizações da presente invenção, a informação de identificação da fonte de inicialização inclui chaves de criptografia e regiões de memória que precisam ser descriptografadas. Dependendo do método de criptografia usado, uma ou mais concretizações da presente invenção implementam IVs para adicionar aleatoriedade à criptografia. Um IV exclusivo pode ser fornecido para cada uma das regiões de memória. Este tipo de método criptográfico que utiliza IVs pode ser usado para melhorar a qualidade da criptografia. Por exemplo, se duas páginas de memória idênticas forem criptografadas com a mesma chave secreta, mas com IVs diferentes, o conteúdo criptografado será diferente, o que torna impossível para um adversário saber que o conteúdo é idêntico.
[0028] "Diagnosticar" é um exemplo de uma instrução que permite que um sistema operacional convidado interaja com um hipervisor. A instrução Diagnose é usada pelo IBM z Systems ® e o Diagnose 308 é usado especificamente para operação IPL direcionada por programa (permite que o convidado solicite uma reinicialização). O subcódigo 5 é usado para definir os parâmetros de IPL (por exemplo, dispositivo de inicialização a ser usado) e o subcódigo 3 é usado para acionar a reinicialização do dispositivo de inicialização previamente especificado pelo subcódigo 5. O mecanismo para solicitar uma reinicialização de dentro de um sistema operacional é arquitetura dependente. Em algumas máquinas x86, é possível alterar o dispositivo de inicialização usando ferramentas de software disponíveis comercialmente.
[0029] De acordo com uma ou mais concretizações da presente invenção, o hipervisor usa as informações do bloco de informações de IPL, incluindo o cabeçalho SE para chamar o controle de interface seguro (também referido neste documento como um " ultravisor ") para criar um proteger a configuração do convidado e desempacotar ou descriptografar a imagem criptografada da VM. Se a descompactação for bem-sucedida, a VM descompactada ganhará o controle, executando em um modo seguro. Se a descompactação falhar, a VM entra em um estado de espera desabilitado no modo não seguro.
[0030] Uma VM, em execução como um convidado sob o controle de um hipervisor de hospedeiro, depende desse hipervisor para fornecer serviços de virtualização de forma transparente para esse convidado. Esses serviços podem se aplicar a qualquer interface entre uma entidade segura e outra entidade não confiável que tradicionalmente permite o acesso aos recursos seguros por essa outra entidade. Esses serviços podem incluir, mas não estão limitados a gerenciamento de memória, emulação de instrução e processamento de interrupção. Por exemplo, para injeção de interrupção e exceção, o hipervisor normalmente lê e/ou grava em uma área de prefixo (núcleo baixo) do convidado. O termo "máquina virtual" ou "VM", conforme usado neste documento, refere-se a uma representação lógica de uma máquina física (dispositivo de computação, processador, etc.) e seu ambiente de processamento (sistema operacional (SO), recursos de software, etc.) A VM é mantido como um software executado em uma máquina hospedeiro subjacente (processador físico ou conjunto de processadores). Da perspectiva de um usuário ou recurso de software, a VM parece ser sua própria máquina física independente. Os termos “hipervisor” e “Monitor de VM (VMM)”, conforme usados neste documento, referem-se a um ambiente de processamento ou serviço de plataforma que gerencia e permite que várias VMs sejam executadas usando vários (e às vezes diferentes) sistemas operacionais em uma mesma máquina hospedeiro. Deve ser apreciado que a implantação de uma VM inclui um processo de instalação da VM e um processo de ativação (ou inicialização) da VM. Em outro exemplo, a implantação de uma VM inclui um processo de ativação (ou inicialização) da VM (por exemplo, no caso de a VM estar instalada anteriormente ou já existir).
[0031] No entanto, para facilitar os convidados seguros, existe um desafio técnico onde segurança adicional é necessária entre o hipervisor e os convidados seguros, de modo que o hipervisor não possa acessar dados da VM e, portanto, não pode fornecer serviços como os descritos acima.
[0032] Em soluções técnicas atualmente disponíveis, o hipervisor (por exemplo, z/VM® da IBM® ou software de código aberto Kernel Based Virtual machine (KVM)) inicia uma nova VM em uma unidade de processamento físico, ou servidor hospedeiro, emitindo um Instrução Start-Interpretive-Execution (SIE) . Parte de um estado da VM e suas características são salvas em blocos de controle (como uma descrição de estado ou “SD”) apontados por um operando da instrução SIE (normalmente o segundo operando). O hipervisor, em tais casos, tem controle dos dados para a VM e, em alguns casos, esse controle é necessário para interpretar as instruções que estão sendo executadas na VM. Os hipervisores existentes dependem do uso de tal interface por meio da instrução SIE para iniciar as VMs.
[0033] A execução segura aqui descrita fornece um mecanismo de hardware para garantir o isolamento entre o armazenamento seguro e o não seguro, bem como entre o armazenamento seguro pertencente a diferentes usuários seguros. Para convidados seguros, segurança adicional é fornecida entre o hipervisor "não confiável" e os convidados seguros. Para fazer isso, muitas das funções que o hipervisor normalmente executa em nome dos convidados precisam ser incorporadas à máquina. O controle de interface segura fornece uma interface segura entre o hipervisor e os convidados seguros. O controle de interface segura funciona em colaboração com o hardware para fornecer essa segurança adicional. O termo ultravisor (UV) é usado neste documento para se referir a um exemplo de um controle de interface seguro que pode ser implementado por uma ou mais concretizações da presente invenção.
[0034] O controle de interface segura, em um exemplo, é implementado em hardware e/ou firmware interno, seguro e confiável. Para um convidado ou entidade segura, o controle de interface segura fornece a inicialização e manutenção do ambiente seguro, bem como a coordenação do envio dessas entidades seguras no hardware. Enquanto o seguro de convidado está usando ativamente de dados e que é residente no armazenamento hospedeiro, ele é mantido “em claro” em armazenamento seguro. O armazenamento seguro pode ser acessado por um único convidado seguro - sendo estritamente reforçado pelo hardware. Ou seja, o controle de interface segura impede que qualquer entidade não segura (incluindo o hipervisor ou outros convidados não seguros) ou outro convidado seguro acesse esses dados. Neste exemplo, o controle de interface segura é executado como uma parte confiável dos níveis mais baixos de firmware. O nível mais baixo, ou milicódigo, é realmente uma extensão do hardware e é usado para implementar as instruções e funções complexas definidas em z/architecture. Milicódigo tem acesso a todas as partes de armazenamento, que no contexto de execução segura, inclui seu próprio armazenamento UV seguro, armazenamento de hipervisor não seguro, armazenamento de convidado seguro e armazenamento compartilhado. Isso permite que ele forneça qualquer função necessária ao convidado seguro ou ao hipervisor para dar suporte a esse convidado. O controle de interface segura também tem acesso direto ao hardware, o que permite que o hardware forneça verificações de segurança de maneira eficiente sob o controle das condições estabelecidas pelo controle de interface segura.
[0035] Uma ou mais concretizações da presente invenção fornecem melhorias tecnológicas sobre os sistemas existentes que utilizam imagens VM criptografadas. Os sistemas existentes descriptografam a imagem criptografada da VM antes de iniciar a VM em uma máquina hospedeiro. Uma desvantagem dessa abordagem é que instruções de computador especializadas são necessárias no hipervisor para determinar se uma imagem de VM está criptografada e para realizar a descriptografia antes de despachar ou iniciar a VM na máquina hospedeiro. Uma ou mais concretizações da presente invenção não requerem atualizações para o código de envio do hipervisor ou exigem que o hipervisor esteja ciente de que uma imagem VM é criptografada antes de a VM ser iniciada em uma máquina hospedeiro. Além disso, o hipervisor pode ser utilizado para iniciar uma VM segura, embora, uma vez que a VM segura seja iniciada, o hipervisor não tenha acesso a nenhum dado da VM segura.
[0036] Uma ou mais concretizações da presente invenção fornecem melhorias tecnológicas sobre os sistemas existentes, fornecendo um ambiente seguro para a execução de uma VM em um servidor hospedeiro que hospeda uma pluralidade de VMs. As aplicações práticas de uma ou mais concretizações da presente invenção incluem a capacidade de impedir o acesso não autorizado (intencional ou não intencional) a quaisquer dados de um convidado seguro em execução em uma máquina hospedeiro.
[0037] Voltando agora para a Figura 1, um diagrama esquemático de um sistema 100 para iniciar um convidado seguro usando um mecanismo de IPL é geralmente mostrado de acordo com uma ou mais concretizações da presente invenção. O sistema 100 mostrado na Figura 1 inclui um espaço de endereço de convidado 102 de um servidor hospedeiro, um disco hospedeiro incluindo um sistema básico de entrada/saída (BIOS) 104 ou carregador e um disco convidado que armazena componentes do sistema operacional do convidado seguro. Os termos "convidado" e "máquina virtual" ou "VM" são usados de forma intercambiável neste documento. Os componentes do sistema operacional do convidado seguro mostrado na Figura 1 incluem um componente de bootstrap não criptografado 106 e uma imagem criptografada do convidado 108. De acordo com uma ou mais concretizações da presente invenção, um hipervisor que está em execução no servidor hospedeiro é instruído a carregar o convidado no espaço de endereço de convidado 102. O hipervisor recebe informações sobre onde a imagem do convidado está localizada, neste caso no disco do convidado, e inicia o BIOS 104 para carregar os componentes do sistema operacional no espaço de endereço do convidado 102.
[0038] Quando o BIOS 104 termina de carregar os componentes do sistema operacional no espaço de endereço do convidado 102, o convidado aparece para o hipervisor como um convidado não seguro. O hipervisor não está ciente de que a imagem do convidado está criptografada e não está operacional no momento . O hipervisor transfere o controle para o componente de bootstrap 106 cujo endereço é especificado, que dispara um carregamento de programa inicial (IPL), ou reinicialização, do convidado em um modo seguro pelo ultravisor . Em uma implementação IBM Z®, o disco com os componentes do sistema operacional contém um arquivo de bootmap oculto que descreve onde os componentes residem no disco, para quais locais da memória eles devem ser carregados e o endereço da primeira instância a ser executada após o carregamento inicial foi concluído (ou seja, o endereço inicial do componente bootstrap). Uma ou mais concretizações podem ser implementadas por outras arquiteturas que podem ter um endereço de memória fixo que é usado para iniciar a execução do sistema operacional.
[0039] Como mostrado na Figura 1, o componente de bootstrap 106 inclui o código de bootstrap executado pelo hipervisor para acionar a transição para um modo seguro, bem como um cabeçalho SE que inclui metadados usados pelo ultravisor para descriptografar a imagem criptografada do convidado 108.
[0040] Voltando agora para a Figura 2, um diagrama de fluxo de um processo 200 para iniciar um convidado seguro usando um mecanismo de carregamento de programa inicial (IPL) é geralmente mostrado de acordo com uma ou mais concretizações da presente invenção. O processamento mostrado na Figura 2 pode ser executado por uma combinação de um hipervisor e um ultravisor em execução em uma máquina hospedeiro. O processamento mostrado na Figura 2 é realizada após os componentes do sistema operacional, como a imagem criptografada do convidado 108 e o componente bootstrap 106 da Figura 1, foram carregados na memória de um servidor hospedeiro, como o espaço de endereço de convidado 102 da Figura 1 e o controle foi transferido para o componente de bootstrap.
[0041] No bloco 202, o convidado (por exemplo, o código de bootstrap em execução no convidado) chama o hipervisor para definir os parâmetros de IPL. Os parâmetros de IPL podem incluir, mas não estão limitados ao cabeçalho SE, uma região de memória e vetores de inicialização (IVs) usados para descriptografia. Conforme usado neste documento, o termo "cabeçalho SE" se refere a uma estrutura de dados contendo informações confidenciais sobre o sistema operacional, como a chave usada para descriptografar a imagem do sistema operacional . Como essas informações são confidenciais, partes do cabeçalho SE devem ser criptografadas, de modo que apenas a interface de controle segura seja capaz de descriptografar esses dados no cabeçalho SE . A região da memória especifica quais regiões da memória na imagem criptografada requerem descriptografia. De acordo com uma ou mais concretizações da presente invenção, pares de chave privada/pública são usados para realizar a criptografia e descriptografia. A imagem da VM pode ser criptografada usando uma chave pública conhecida pela pessoa ou entidade que executa a criptografia, e a imagem da VM pode ser descriptografada usando uma chave privada conhecida pelo ultravisor . Uma ou mais concretizações da presente invenção podem implementar qualquer esquema de criptografia/descriptografia conhecido na técnica, e os pares de chave privada/pública são apenas um exemplo de um esquema que pode ser implementado. Como a chave contida no cabeçalho SE está protegida, a chave de criptografia da imagem também pode ser uma chave simétrica (e também usada para a descriptografia).
[0042] No bloco 204 da Figura 2, o hipervisor determina se os parâmetros de IPL são válidos. A validação pode incluir verificar a presença de um cabeçalho SE, a presença de pelo menos uma região de memória e garantir que várias regiões de memória não se sobreponham. No bloco 204, o hipervisor está realizando as verificações de validade e armazenando os parâmetros em algum local de memória de propriedade do hipervisor e não acessível ao convidado. Portanto, a existência do parâmetro é uma indicação suficiente para sua validade.
[0043] Se for determinado, no bloco 206, que os parâmetros de IPL não são válidos, o processamento continua no bloco 206 e o convidado continua executando em um modo não seguro . Se for determinado, no bloco 206, que os parâmetros de IPL são válidos, o processamento continua no bloco 208 com o convidado chamando o hipervisor para realizar uma reinicialização. No bloco 210, o hipervisor verifica se os parâmetros de IPL foram fornecidos e verificados.
[0044] Se for determinado, no bloco 210 da Figura 2, que os parâmetros de IPL não foram fornecidos e verificados, então o processamento continua no bloco 206 e o convidado continua executando em um modo não seguro. Se for determinado, no bloco 210, que os parâmetros de IPL foram fornecidos e verificados, o processamento continua no bloco 212. No bloco 212, o hipervisor chama o ultravisor para criar uma configuração de convidado segura, para desempacotar (por exemplo, descriptografar) o imagem criptografada e para iniciar a execução segura do convidado.No bloco 214 é determinado se a imagem foi descriptografada com sucesso e opcionalmente verificada. De acordo com uma ou mais concretizações da presente invenção, a descriptografia é verificada comparando um checksum ou hash calculado sobre a imagem com um checksum armazenado no cabeçalho SE . Se a imagem foi descriptografada e verificada, o processamento continua no bloco 216 com o convidado em um modo seguro (isto é, como um convidado seguro) sob controle do ultravisor . Se a imagem não foi descriptografada e verificada, então o processamento continua no bloco 218 com o convidado entrando em um estado de espera desabilitado no modo não seguro.
[0045] Voltando agora para a Figura 3, um diagrama esquemático de um sistema 300 que inclui um convidado seguro carregado em um servidor hospedeiro é geralmente mostrado de acordo com uma ou mais concretizações da presente invenção. O sistema 300 mostrado na Figura 3 representa um estado do sistema 100 da Figura 1 após a imagem criptografada ser descriptografada e o sistema seguro ser iniciado na máquina hospedeiro usando um processo como o mostrado na Figura 2. Como mostrado na Figura 3, uma versão não criptografada da imagem 308 é carregada no espaço de endereço de convidado 102 e o controle foi dado ao kernel do convidado para iniciar o convidado seguro.
[0046] Voltando agora para a Figura 4, um diagrama esquemático de um bloco de informações de IPL 400 para iniciar um convidado seguro é geralmente mostrado de acordo com uma ou mais concretizações da presente invenção. O layout geral do bloco de informações de IPL mostrado no bloco 402 é um layout de bloco de IPL típico que inclui campos para especificar: um comprimento do bloco (por exemplo, em bytes); um número de versão; um bloco de parâmetro para carregar informações de dispositivo, como endereço de dispositivo de disco, uma denominação genérica de dispositivo de inicialização como “CDROM” ou um endereço de rede; e um bloco de parâmetros para dados adicionais de parâmetros de controle do sistema (SCP) que podem ser usados, se o método de inicialização exigir parâmetros que não se encaixem na primeira parte do bloco de informações. O bloco de parâmetros para carregar informações de dispositivo 404 também é um layout de bloco de IPL típico, com exceção do campo de tipo que, de acordo com uma ou mais concretizações da presente invenção, também inclui memória (junto com disco, rede, etc.) como um novo tipo de IPL sendo executado.Isso permite que o IPL carregue dados da memória do servidor hospedeiro, onde a imagem criptografada da VM está localizada. Além disso, o bloco de parâmetros específicos do dispositivo de carregamento inclui novos tipos de informações usadas pelo hipervisor para realizar a descriptografia: um cabeçalho SE 406 com informações usadas para executar a descriptografia; e informações de imagem 408 que podem incluir informações que descrevem a estrutura da imagem na memória.
[0047] Voltando agora para a Figura 5, um fluxo de processo 500 para iniciar um convidado seguro é geralmente mostrado de acordo com uma ou mais concretizações da presente invenção.O processamento mostrado na Figura 5 pode ser executado por um hipervisor em execução em um servidor hospedeiro . No bloco 502, um pedido para despachar uma VM em um servidor hospedeiro é recebido por um hipervisor que está em execução no servidor hospedeiro. No bloco 504, a VM é despachada no servidor hospedeiro em modo não seguro. Quando a VM está em modo não seguro, os dados da VM podem ser acessados pelo hipervisor. A VM inclui um componente de bootstrap contendo uma instrução de reinicialização usada para reiniciar a VM. De acordo com uma ou mais concretizações da presente invenção, o envio inclui o carregamento de uma imagem criptografada da VM em uma memória do servidor hospedeiro e o carregamento de um componente de bootstrap não criptografado que inclui a instrução de reinicialização na memória. O despacho também inclui a transferência de controle para o componente de bootstrap.
[0048] No bloco 506, de acordo com uma ou mais concretizações da presente invenção, uma reinicialização segura é iniciada pelo componente de bootstrap. O componente bootstrap (1) define as informações do IPL e (2) solicita a reinicialização. Ambos (1) e (2) são interceptados pelo hipervisor que, em resposta a (2), entrega o controle ao ultravisor para fazer a descriptografia. Quando a descriptografia é concluída, o ultravisor transfere o controle para o convidado agora seguro, ignorando o hipervisor. De acordo com uma ou mais concretizações da presente invenção, a reinicialização inclui descriptografar os componentes criptografados da VM. Quando a VM está em um modo seguro, o hipervisor é impedido de acessar quaisquer dados da VM.
[0049] Deve ser entendido que, embora esta divulgação inclua uma descrição detalhada sobre computação em nuvem, a implementação dos ensinamentos recitados neste documento não estão limitadas a um ambiente de computação em nuvem. Em vez disso, as concretizações da presente invenção são capazes de ser implementadas em conjunto com qualquer outro tipo de ambiente de computação agora conhecido ou desenvolvido posteriormente.
[0050] A computação em nuvem é um modelo de entrega de serviço para permitir acesso conveniente à rede sob demanda a um pool compartilhado de recursos de computação configuráveis (por exemplo, redes, largura de banda de rede, servidores, processamento, memória, armazenamento, aplicativos, máquinas virtuais e serviços) que pode ser provisionado e liberado rapidamente com o mínimo de esforço de gerenciamento ou interação com um provedor do serviço. Este modelo de nuvem pode incluir pelo menos cinco características, pelo menos três modelos de serviço e pelo menos quatro modelos de implantação.
[0051] As características são as seguintes:
[0052] Autoatendimento sob demanda: um consumidor de nuvem pode fornecer recursos de computação unilateralmente, como tempo de servidor e armazenamento de rede, conforme necessário automaticamente, sem a necessidade de interação humana com o provedor de serviço.
[0053] Amplo acesso à rede: os recursos estão disponíveis em uma rede e acessados por meio de mecanismos padrão que promovem o uso por plataformas heterogêneas de cliente fino ou grosso (por exemplo, telefones celulares, laptops e PDAs).Agrupamento de recursos: os recursos de computação do provedor são agrupados para atender a vários consumidores usando um modelo multilocatário, com diferentes recursos físicos e virtuais atribuídos e reatribuídos dinamicamente de acordo com a demanda. Há uma sensação de independência de localização em que o consumidor geralmente não tem controle ou conhecimento sobre a localização exata dos recursos fornecidos, mas pode ser capaz de especificar a localização em um nível mais alto de abstração (por exemplo, país, estado ou datacenter).
[0055] Elasticidade rápida: os recursos podem ser provisionados de forma rápida e elástica, em alguns casos automaticamente, para escalar rapidamente e rapidamente liberados para escalar rapidamente . Para o consumidor, os recursos disponíveis para provisionamento muitas vezes parecem ser ilimitados e podem ser adquiridos em qualquer quantidade a qualquer momento.
[0056] Serviço medido: os sistemas em nuvem controlam e otimizam automaticamente o uso de recursos, alavancando uma capacidade de medição em algum nível de abstração apropriado para o tipo de serviço (por exemplo, armazenamento, processamento, largura de banda e contas de usuário ativo).O uso de recursos pode ser monitorado, controlado e relatado, proporcionando transparência tanto para o provedor quanto para o consumidor do serviço utilizado.
[0057] Serviços Os modelos são como segue:
[0058] Software as a Service (SaaS): o recurso fornecido ao consumidor é usar os aplicativos do provedor em execução em uma infraestrutura em nuvem. Os aplicativos podem ser acessados de vários dispositivos cliente por meio de uma interface de cliente fino, como um navegador da web (por exemplo, e-mail baseado na web). O consumidor não gerencia nem controla o infraestrutura de nuvem subjacente, incluindo rede, servidores, sistemas operacionais, armazenamento, ou até mesmo recursos de aplicativos individuais, com a possível exceção de limitada definições específicas de usuário de configuração do aplicativo.
[0059] Plataforma como serviço (PaaS): o recurso fornecido ao consumidor é implantar na infraestrutura de nuvem aplicativos criados ou adquiridos pelo consumidor, criados usando linguagens de programação e ferramentas suportadas pelo provedor. O consumidor não gerencia ou controla a infraestrutura de nuvem subjacente, incluindo redes, servidores, sistemas operacionais ou armazenamento, mas tem controle sobre os aplicativos implantados e, possivelmente, as configurações do ambiente de hospedagem de aplicativos.
[0060] Infraestrutura como serviço (IaaS): a capacidade fornecida ao consumidor é fornecer processamento, armazenamento, redes e outros recursos de computação fundamentais onde o consumidor é capaz de implantar e executar software arbitrário, que pode incluir sistemas operacionais e aplicativos . O consumidor não gerencia ou controla a infraestrutura de nuvem subjacente, mas tem controle sobre os sistemas operacionais, armazenamento, aplicativos implantados e, possivelmente, controle limitado de componentes de rede selecionados (por exemplo, firewalls de hospedeiro).
[0061] Modelos de implantação são como se segue: Nuvem privada: a infraestrutura de nuvem é operada exclusivamente para uma organização. Ele pode ser gerenciado pela organização ou por terceiros e pode existir no local ou fora das instalações .Nuvem da comunidade: a infraestrutura da nuvem é compartilhada por várias organizações e oferece suporte a uma comunidade específica que compartilha preocupações (por exemplo, missão, requisitos de segurança, política e considerações de conformidade). Ele pode ser gerenciado pelas organizações ou por terceiros e pode existir no local ou fora dele.Nuvem pública: a infraestrutura de nuvem é disponibilizada ao público em geral ou a um grande grupo da indústria e é propriedade de uma organização que vende serviços em nuvem.
[0065] Nuvem híbrida: a infraestrutura de nuvem é uma composição de duas ou mais nuvens (privada, comunidade ou pública) que permanecem entidades únicas, mas são unidas por tecnologia padronizada ou proprietária que permite a portabilidade de dados e aplicativos (por exemplo, nuvem estourando para balanceamento de carga entre nuvens).
[0066] Um ambiente de computação em nuvem é orientado a serviços com foco em apatridia, baixo acoplamento, modularidade e interoperabilidade semântica. No centro da computação em nuvem está uma infraestrutura que inclui uma rede de nós interconectados.
[0067] Referindo-nos agora à Figura 6, nuvem ilustrativos ambiente de computação 50 está representado. Como mostrado, nuvem ambiente de computação 50 inclui um ou mais cloud nós de computação 10 com a qual os dispositivos de computação locais utilizados pelos consumidores nuvem, tais como, por exemplo, assistente pessoal digital (PDA) ou 54A telefone celular, computador desktop 54B, computador portátil 54C, e/ou 54N sistema de computador automóvel pode comunicar. Nodes 10 pode comunicar um com o outro. Eles podem ser agrupados (não mostrado) fisicamente ou virtualmente, em uma ou mais redes, tais como privada, Comunidade, Público, ou nuvens híbridos como aqui descrito acima, ou uma combinação dos mesmos. Isso permite que a computação em nuvem ambiente de 50 a infra-estrutura de oferta, plataformas e/ou software como serviços para os quais o consumidor nuvem não precisam manter recursos em um dispositivo de computação local. Entende-se que os tipos de computação dispositivos 54A-N mostrado na Figura 6 destinam-se a ser apenas ilustrativos e que de computação nodos 10 e nuvem ambiente de computação 50 pode comunicar com qualquer tipo de dispositivo computadorizado através de qualquer tipo de rede e/ou da rede de conexão endereçáveis (e g., Utilizando um navegador de Internet).
[0068] Referindo-nos agora à Figura 7, um conjunto de camadas de captação funcionais fornecidas por nuvem ambiente de computação 50 (Figura 6) é mostrada. Deve entender-se antecipadamente que os componentes, camadas e funções mostrado na Figura 7 têm a intenção de ser ilustrativos somente e formas de realização da invenção não estão limitados a estes. Como representado, as seguintes camadas e correspondentes funções são fornecidas: A camada de hardware e software 60 inclui componentes de hardware e software.Exemplos de componentes de hardware incluem: mainframes 61; Servidores 62 baseados na arquitetura RISC (Reduced Instruction Set Computer); servidores 63; servidores blade 64; dispositivos de armazenamento 65; e redes e componentes de rede 66. Em algumas concretizações, os componentes de software incluem software de servidor de aplicativos de rede 67 e software de banco de dados 68.
[0070] Camada de virtualização 70 fornece uma camada de abstração a partir do qual os seguintes podem ser proporcionados exemplos de entidades virtuais: servidores virtuais 71; armazenamento virtual 72; redes virtuais 73, incluindo redes privadas virtuais; aplicações virtuais e sistemas operacionais 74; e clientes virtuais 75.
[0071] Em um exemplo, a camada de gestão 80 podem proporcionar as funções descritas abaixo. Recursos de provisionamento 81 fornece aquisição dinâmica de computação recursos e outros recursos que são utilizados para executar tarefas dentro da nuvem ambiente de computação. Medição e preços 82 fornecer controle de custos como os recursos são utilizados dentro do ambiente de computação em nuvem, e faturamento ou faturação de consumo desses recursos. Em um exemplo, esses recursos podem incluir licenças de software de aplicação. Segurança fornece verificação de identidade para nuvem consumidores e tarefas, como bem como a proteção de dados e outros recursos. Portal do usuário 83 fornece acesso ao ambiente de computação em nuvem para consumidores e sistema administradores. Serviço de gerenciamento de nível 84 fornece recursos de computação em nuvem atribuição e gestão de tal forma que os níveis de serviço exigidos sejam cumpridos. Nível de Serviço Acordo (SLA) o planejamento e realização de 85 fornecer pré-acordo para, e aquisição de, recursos de nuvem de computação para que um requisito futuro é antecipado, de acordo com um SLA.
[0072] As cargas de trabalho camada 90 fornece exemplos de funcionalidade para que a nuvem ambiente de computação podem ser utilizados. Exemplos de cargas e as funções que podem ser fornecidas a partir de esta camada incluem: mapeamento e navegação 91; software desenvolvimento e gestão do ciclo de vida 92; entrega educação sala de aula virtual 93; processamento de análise de dados 94; processamento de transações 95; e despachar pessoas seguras 96. Entende-se que estes são apenas alguns exemplos e que em outras formas de realização, as camadas podem incluir diferentes serviços.
[0071] Passando agora para a Figura 8, um sistema 800 está representada de acordo com uma ou mais formas de realização da presente invenção. O sistema 800 inclui um exemplo nó 10 (por exemplo, um nó de hospedagem) que está em comunicação com um ou mais dispositivos clientes 20A- 20C através de uma rede 165. O nó 10 pode ser um servidor de datacenter ou hospedeiro, de uma nuvem provedor de computação. O nó 10 executa um hipervisor 12, o que facilita a implementação de uma ou mais máquinas virtuais 15 (15A-15N). O nó 10 inclui ainda um/firmware hardware camada 11 que facilita o hipervisor 12 em proporcionar um ou mais serviços para o VMs 15. Nas soluções técnicas já existentes, existem comunicações entre hipervisor 12 e o hardware/camada de firmware 1 1; o hardware/camada de firmware 11 e uma ou mais máquinas virtuais 15; o hipervisor 12 e uma ou mais VMs 15; e o hipervisor 12 para VMs 15 através da/camada de firmware de hardware 1 1. Para facilitar um ambiente seguro VM, o nó de hospedagem 10 de acordo com uma ou mais formas de realização da presente invenção, que não inclui quaisquer comunicações diretas entre o hipervisor 12 e uma ou mais máquinas virtuais 15.
[0072] Por exemplo, o nó 10 pode facilitar um dispositivo cliente 20A para implantar uma ou mais das VMs 15A-15N. As VMs 15A-15N podem ser implantadas em resposta às respectivas solicitações de dispositivos clientes distintos 20A-20C. Por exemplo, o VM 15A pode ser implantado pelo dispositivo cliente 20A, o VM 15B pode ser implantado pelo dispositivo cliente 20B e o VM 15C pode ser implantado pelo dispositivo cliente 20C. O nó 10 também pode facilitar um cliente para provisionar um servidor físico (sem rodar como VM).Os exemplos descritos neste documento incorporam o provisionamento de recursos no nó 10 como parte de uma VM, no entanto, as soluções técnicas descritas também podem ser aplicadas para provisionar os recursos como parte de um servidor físico.
[0073] Em um exemplo, a dispositivos clientes 20A-20C podem pertencer à mesma entidade, como uma pessoa, um negócio, uma agência governamental, um departamento dentro de uma empresa, ou qualquer outra entidade, e o nó 10 pode ser operado como uma nuvem privada da entidade. No presente caso, o nó 10 hospeda apenas VMs 15A-15N que são implantados pela dispositivos clientes 20A-20C que pertencem à entidade. Em outro exemplo, a dispositivos clientes 20A-20C pode pertencer a entidades distintas. Por exemplo, uma primeira entidade pode ser proprietária 20A dispositivo cliente, enquanto uma segunda entidade pode ser proprietária do dispositivo cliente 20B. Neste caso, o nó 10 pode ser operado como uma nuvem pública que hospeda VMs a partir de diferentes entidades. Por exemplo, o VMs 15A-15N podem ser implantados num envolta maneira em que a VM 15A não facilitar o acesso ao VM 15B. Por exemplo, o nó 10 podem mascarar o VMs 15a 15N utilizando um IBM z Systems® Processador de Recursos/Systems Manager (PR/SM) Lógico característica de partição (LPAR). Estas características, tais como PR/SM LPAR proporcionar isolamento entre as partições, facilitando, assim, o nó 10 a implantar duas ou mais máquinas virtuais 15A-15N para diferentes entidades no mesmo nó físico 10 em partições lógicas diferentes.A 20A dispositivo cliente do dispositivos clientes 20A- 20C é um aparelho de comunicação, como um computador, um smartphone, um tablet, um computador desktop, um laptop computador, um computador servidor, ou qualquer outro aparelho de comunicação que os pedidos de implantação de uma VM pelo hipervisor 12 do nó 10. o 20A dispositivo cliente pode enviar um pedido para a recepção pelo hipervisor através da rede 165. a VM 15 a, do VMs 15A-15N é uma imagem VM que o hipervisor 12 implanta em resposta a um pedido do 20A dispositivo cliente do dispositivos clientes 20A-20C. O hipervisor 12 é um monitor de máquina virtual (VMM), que pode ser software, firmware ou hardware que cria e executa VMs. O hipervisor 12 facilita a VM 15A usar os componentes de hardware do nó 10 para executar programas e/ou armazenar dados. Com as características e apropriadas modificações do hipervisor 12 pode ser IBM z Systems®, da Oracle VM Server, da Citrix XenServer, VMware ESX, Microsoft Hyper-V hipervisor, ou qualquer outro hipervisor. O hipervisor 12 pode ser um hipervisor nativo execução no nó 10 directamente, ou um hipervisor hospedado execução em outro hipervisor. Voltando agora à Figura 9, um nó 10 para implementar os ensinamentos aqui é mostrado de acordo com uma ou mais formas de realização da invenção. O nó 10 pode ser um electrónico, computador quadro que compreende e/ou empregando qualquer número e combinação de computação dispositivo e redes que utilizam várias tecnologias de comunicação, tal como aqui descrito.O nó 10 pode ser facilmente escalável, extensível e modular, com a capacidade de mudar para serviços diferentes ou reconfigurar alguns recursos independentemente de outros.
[0074] Nesta forma de realização, o nó 10 tem um processador 901, que pode incluir uma ou mais unidades de processamento central (CPUs) 901a, 901b, 901C, etc. O processador 901, também referida como um circuito de processamento, microprocessador, computação unidade, é acoplada através de um barramento de sistema 902 para uma memória de sistema 903 e outros componentes. O sistema de memória 903 inclui a memória só de leitura (ROM) 904 e a memória de acesso aleatório (RAM) 905. A ROM 904 é acoplado ao bus de sistema 902 e pode incluir uma base de sistema de entrada/saída (BIOS), que controla certas funções básicas o nó 10. a RAM é uma memória de leitura e escrita acoplado ao bus de sistema 902 para uso pelo processador 901.
[0075] O nó 10 da Figura 9 inclui um disco rígido 907, que é um exemplo de um meio de armazenamento tangível legível executável pelo processador 901. O disco rígido 907 armazena software 908 e dados 909. O software 908 é armazenado como instruções para execução no nó 10 pelo processador 901 (para realizar o processo, como os fluxos de processo das FIGs. 1-9. Os dados 909 incluem um conjunto de valores de variáveis qualitativas ou quantitativas organizadas em várias estruturas de dados para suportar e ser usado pelas operações do software 908.
[0076] O nó 10 da Figura 9 inclui um ou mais adaptadores (por exemplo, controladores de disco rígido, adaptadores de rede, adaptadores gráficos, etc.) que interconectam e suportam comunicações entre o processador 901, a memória do sistema 903, o disco rígido 907 e outros componentes do nó 10 (por exemplo, dispositivos periféricos e externos). Em uma ou mais concretizações da presente invenção, um ou mais adaptadores podem ser conectados a um ou mais barramentos E/S que estão conectados ao barramento de sistema 902 por meio de uma ponte de barramento intermediário, e um ou mais barramentos E/S podem utilizar protocolos comuns, como o Peripheral Component Interconnect (PCI).
[0077] Como mostrado, o nó 10 inclui um adaptador de interface 920 interconectando um teclado 921, um mouse 922, um alto-falante 923 e um microfone 924 para o barramento de sistema 902. O nó 10 inclui um adaptador de exibição 930 interconectando o barramento de sistema 902 a um monitor 931. O adaptador de vídeo 930 (e/ou o processador 901) pode incluir um controlador gráfico para fornecer desempenho gráfico, como um monitor e gerenciamento de uma GUI 932. Um adaptador de comunicação 941 interconecta o barramento de sistema 902 com uma rede 950 permitindo que o nó 10 se comunique com outros sistemas, dispositivos, dados e software, como um servidor 951 e um banco de dados 952. Em uma ou mais concretizações da presente invenção, as operações do software 908 e os dados 909 podem ser implementado na rede 950 pelo servidor 951 e o banco de dados 952. Por exemplo, a rede 950, o servidor 951 e o banco de dados 952 podem se combinar para fornecer iterações internas do software 908 e os dados 909 como uma plataforma como serviço, Um software como um serviço, e/ou infra-estrutura como um serviço (por exemplo, como uma aplicação web num distribuído sistema).
[0078] Assim, conforme configurado na Figura 10, as operações do software 908 e dos dados 909 (por exemplo, o nó 10) são necessariamente enraizadas na capacidade computacional do processador 901 e/ou do servidor 951 para superar e abordar as deficiências aqui descritas dos métodos convencionais de despachar VMs a partir de imagens criptografadas das VMs.
[0079] As concretizações aqui descritas são necessariamente enraizadas na tecnologia de computador e, particularmente, em servidores de computador que hospedam VMs. Além disso, uma ou mais concretizações da presente invenção facilitam uma melhoria na operação da própria tecnologia de computação, em servidores de computador que hospedam VMs, facilitando os servidores de computador que hospedam VMs para hospedar VMs seguras, em que até mesmo o hipervisor é proibido de acessar memória, registros e outros dados associados à VM segura. Além disso, uma ou mais concretizações da presente invenção fornecem etapas significativas para as melhorias dos servidores de computação de hospedagem VM usando um controle de interface seguro que inclui hardware, firmware (por exemplo, milicódigo) ou uma combinação dos mesmos para facilitar a separação do proteger a VM e o hipervisor e, assim, manter a segurança das VMs hospedadas pelo servidor de computação. O controle de interface segura fornece operações intermediárias leves para facilitar a segurança, sem adicionar sobrecarga substancial para proteger o estado da VM durante a inicialização/saída das VMs, conforme descrito neste documento.
[0080] As concretizações da invenção divulgadas neste documento podem incluir sistema, método e/ou produto de programa de computador (aqui um sistema) que inicia um convidado seguro usando um mecanismo de IPL. Observe que, para cada explicação, identificadores de elementos são reutilizados para outros elementos semelhantes de figuras diferentes.
[0081] Várias concretizações da invenção são descritas neste documento com referência aos desenhos relacionados. Concretizações alternativas da invenção podem ser concebidas sem se afastar do escopo desta invenção. Várias conexões e relações posicionais (por exemplo, acima, abaixo, adjacente, etc.) são estabelecidas entre os elementos na descrição a seguir e nos desenhos. Estas conexões e/ou relações posicionais, a menos que especificado de outra forma, podem ser diretas ou indiretas, e a presente invenção não se destina a ser limitante a este respeito. Por conseguinte, um acoplamento de entidades pode se referir a um acoplamento direto ou indireto e uma relação posicional entre entidades pode ser uma relação posicional direta ou indireta. Além disso, as várias tarefas e etapas do processo descritas neste documento podem ser incorporadas em um procedimento ou processo mais abrangente com etapas ou funcionalidades adicionais não descritas em detalhes neste documento.
[0082] As seguintes definições e abreviaturas são para ser utilizados para a interpretação das reivindicações e especificação. Tal como aqui utilizado, os termos “compreende”, “compreendendo”, “inclui”, “incluindo”, “tem”, “tendo”, “contém” ou “contendo”, ou qualquer outra variação dos mesmos, destinam-se a cobrir uma non -Exclusive inclusão. Por exemplo, uma composição, uma mistura, processo, modo, artigo ou aparelho que compreende uma lista de elementos não está necessariamente limitado a apenas esses elementos mas pode incluir outros elementos que não estejam expressamente listados ou inerentes a essa composição, mistura, processo, método, artigo, ou aparelho.
[0083] Além disso, o termo "exemplar" é usado neste documento para significar "servindo como um exemplo, instância ou ilustração." Qualquer modalidade ou projeto aqui descrito como "exemplar" não deve ser necessariamente interpretado como preferido ou vantajoso em relação a outras concretizações ou projetos. Os termos "pelo menos um" e "um ou mais" podem ser entendidos como incluindo qualquer número inteiro maior ou igual a um, ou seja, um, dois, três, quatro, etc. Os termos "uma pluralidade" podem ser entendidos como inclui qualquer número inteiro maior ou igual a dois, ou seja, dois, três, quatro, cinco, etc. O termo "conexão" pode incluir uma "conexão" indireta e uma "conexão" direta.
[0084] Os termos "cerca de", "substancialmente", "aproximadamente" e variações dos mesmos, destinam-se a incluir o grau de erro associado à medição da quantidade particular com base no equipamento disponível no momento do depósito do pedido. Por exemplo, “cerca de” pode incluir uma faixa de ± 8% ou 5% ou 2% de um determinado valor.
[0085] A presente invenção pode ser um sistema, um método e/ou um produto de programa de computador em qualquer nível de detalhe técnico possível de integração. O produto de programa de computador pode incluir um meio de armazenamento legível por computador (ou mídia) tendo instruções de programa legíveis por computador no mesmo para fazer com que um processador execute aspectos da presente invenção.
[0086] O meio de armazenamento legível por computador pode ser um dispositivo tangível que pode reter e armazenar instruções para uso por um dispositivo de execução de instruções. O meio de armazenamento legível por computador pode ser, por exemplo, mas não está limitado a, um dispositivo de armazenamento eletrônico, um dispositivo de armazenamento magnético, um dispositivo de armazenamento óptico, um dispositivo de armazenamento eletromagnético, um dispositivo de armazenamento semicondutor ou qualquer combinação adequada dos anteriores. A não exaustiva lista de mais exemplos específicos do meio de armazenamento legível por computador inclui o seguinte: a disquete de computador portátil, um disco rígido, um de acesso aleatório memória (RAM), um só de leitura de memória (ROM), uma apagável de somente leitura programável memória (EPROM ou memória Flash), uma memória de acesso aleatório estática (SRAM), uma memória de disco compacto portátil somente leitura (CD-ROM), um disco versátil digital (DVD), um cartão de memória, um disquete, um dispositivo codificado mecanicamente tais como cartões perfurados ou estruturas em relevo em uma ranhura tendo instruções gravadas nas mesmas, e qualquer combinação adequada dos anteriores. Um meio de armazenamento legível por computador, como aqui utilizado, é não devem ser entendidos como sendo os sinais transitórios por si, tais como ondas de rádio ou outras livremente ondas eletromagnéticas que se propagam, ondas eletromagnéticas que se propagam através de um guia de ondas ou outros meios de transmissão (por exemplo, impulsos de luz que passa através um cabo de fibra ótica) ou sinais elétricos transmitidos por meio de um fio.
[0087] As instruções do programa legível por computador descritas neste documento podem ser baixadas para os respectivos dispositivos de computação/processamento a partir de um meio de armazenamento legível por computador ou para um computador externo ou dispositivo de armazenamento externo através de uma rede, por exemplo, a Internet, uma rede local, uma ampla rede de área e/ou uma rede sem fio. A rede pode compreender cabos de transmissão de cobre, fibras ópticas de transmissão, transmissão sem fio, roteadores, firewalls, switches, computadores de gateway e/ou servidores de borda. Uma placa adaptadora de rede ou interface de rede em cada dispositivo de computação/processamento recebe instruções do programa legível por computador da rede e encaminha as instruções do programa legível por computador para armazenamento em um meio de armazenamento legível por computador dentro do respectivo dispositivo de computação/processamento.
[0088] As instruções do programa legível por computador para realizar as operações da presente invenção podem ser instruções de montador, instruções de arquitetura de conjunto de instruções (ISA), instruções de máquina, instruções dependentes de máquina, microcódigo, instruções de firmware, dados de configuração de estado, dados de configuração para circuitos integrados, ou seja código-fonte ou código de objeto escrito em qualquer combinação de uma ou mais linguagens de programação, incluindo uma linguagem de programação orientada objeto como Smalltalk, C ++, ou similares, e linguagens de programação processuais, como o "C" de programação linguagem ou linguagens de programação semelhantes. As instruções do programa legível por computador podem ser executadas inteiramente no computador do usuário, parcialmente no computador do usuário, como um pacote de software autônomo, parcialmente no computador do usuário e parcialmente em um computador remoto ou inteiramente no computador ou servidor remoto. No último cenário, o computador remoto pode ser conectado ao computador do usuário por meio de qualquer tipo de rede, incluindo uma rede de área local (LAN) ou uma rede de área ampla (WAN), ou a conexão pode ser feita a um computador externo (para exemplo, por meio da Internet usando um provedor de serviços de Internet). Em algumas concretizações, os circuitos eletrônicos incluindo, por exemplo, circuitos lógicos programáveis, matrizes de portas programáveis em campo (FPGA) ou matrizes lógicas programáveis (PLA) podem executar as instruções do programa legível por computador, utilizando informações de estado das instruções do programa legível por computador para personalizar o circuito eletrônico, a fim de realizar aspectos da presente invenção.
[0089] Aspectos da presente invenção são descritos neste documento com referência às ilustrações de fluxograma e/ou diagramas de blocos de métodos, aparelhos (sistemas) e produtos de programa de computador de acordo com concretizações da invenção. Será entendido que cada bloco das ilustrações do fluxograma e/ou diagramas de bloco e combinações de blocos nas ilustrações do fluxograma e/ou diagramas de bloco podem ser implementados por instruções de programa legíveis por computador.
[0090] Estas instruções de programa legíveis por computador podem ser fornecidas a um processador de um computador de uso geral, computador de uso especial ou outro aparelho de processamento de dados programável para produzir uma máquina, de modo que as instruções, que são executadas por meio do processador do computador ou outro aparelho de processamento de dados programável, criar meios para implementar as funções/atos especificados no fluxograma e/ou bloco ou blocos do diagrama de blocos. Essas instruções de programa legíveis por computador também podem ser armazenadas em um meio de armazenamento legível por computador que pode direcionar um computador, um aparelho de processamento de dados programável e/ou outros dispositivos para funcionar de uma maneira particular, de modo que o meio de armazenamento legível por computador tenha instruções armazenadas nele compreende um artigo de fabricação incluindo instruções que implementam aspectos da função/ato especificado no fluxograma e/ou bloco ou blocos do diagrama de blocos.
[0091] As instruções de programa de computador legível podem também ser carregadas num computador, outros dados programáveis processamento aparelho, ou outro dispositivo para fazer com que uma série de etapas operacionais para serem executadas no computador, outro programável um aparelho ou outro dispositivo para produzir um computador processo implementado, de modo que as instruções que executam no computador, outro aparelho programável ou outro dispositivo implementem as funções/atos especificados no fluxograma e/ou bloco ou blocos do diagrama de blocos.
[0092] O fluxograma e os diagramas de bloco nas Figuras ilustram a arquitetura, funcionalidade e operação de possíveis implementações de sistemas, métodos e produtos de programa de computador de acordo com várias concretizações da presente invenção.A este respeito, cada bloco no fluxograma ou diagramas de bloco pode representar um módulo, segmento ou parte das instruções, que compreende uma ou mais instruções executáveis para implementar a (s) função (ões) lógica (s) especificada (s). Em algumas implementações alternativas, as funções observadas nos blocos podem ocorrer fora da ordem observada nas Figuras. Por exemplo, dois blocos mostrados em sucessão podem, de fato, ser executados substancialmente simultaneamente, ou os blocos podem, às vezes, ser executados na ordem inversa, dependendo da funcionalidade envolvida. Também será notado que cada bloco dos diagramas de bloco e/ou ilustração do fluxograma e combinações de blocos nos diagramas de bloco e/ou ilustração do fluxograma podem ser implementados por sistemas baseados em hardware de propósito especial que executam as funções ou atos especificados ou realizar combinações de hardware para fins especiais e instruções de computador.
[0093] A terminologia usada neste documento tem a finalidade de descrever concretizações particulares apenas e não se destina a ser limitante. Tal como aqui utilizado, as formas singulares "um", "uma" e "o/a" destinam-se a incluir as formas plurais também, a menos que o contexto indique claramente o contrário. Será ainda compreendido que os termos "compreende" e/ou "compreendendo", quando usados neste relatório descritivo, especificam a presença de recursos, números inteiros, etapas, operações, elementos e/ou componentes declarados, mas não excluem a presença ou adição de mais um dos outros recursos, números inteiros, etapas, operações, componentes de elementos e/ou grupos dos mesmos.
[0094] As descrições das várias concretizações neste documento foram apresentadas para fins de ilustração, mas não se destinam a ser exaustivas ou limitadas às concretizações divulgadas. Muitas modificações e variações serão evidentes para os de vulgar perícia na arte sem se afastar do âmbito e espírito das descritas formas de realização. A terminologia usada neste documento foi escolhida para melhor explicar os princípios das concretizações, a aplicação prática ou aprimoramento técnico sobre as tecnologias encontradas no mercado, ou para permitir que outros versados na técnica entendam as concretizações divulgadas neste documento.

Claims (14)

1. Método caracterizado pelo fato de que compreende: receber, por um hipervisor (12) que está executando em um servidor host, uma solicitação para despachar uma máquina virtual (15) (VM) no servidor host; despachar, pelo hipervisor (12), a VM no servidor host, a VM em um modo não seguro e incluir uma imagem criptografada da VM e uma instrução de reinicialização que utiliza um mecanismo de carregamento de programa inicial (IPL); acionar, pelo hipervisor (12), a instrução de reinicialização para reiniciar a VM (15) no servidor host em um modo seguro, o acionamento compreendendo o hipervisor (12) chamando um controle de interface seguro para executar a reinicialização da VM (15) no modo seguro, o hipervisor (12) especificando um local de a imagem criptografada da VM (15) no servidor host e as informações de descriptografia; e executar a reinicialização em resposta ao acionamento, em que após a execução da reinicialização, o hipervisor (12) é impedido de acessar quaisquer dados da VM (15).
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o envio inclui: carregar a imagem criptografada da VM (15) em uma memória do servidor host; e carregar um componente de bootstrap não criptografado (106) que compreende a instrução de reinicialização na memória.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que o despacho inclui ainda a transferência de controle para o componente bootstrap não criptografado (106).
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a VM (15) inclui componentes criptografados subsequentes ao despacho.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a reinicialização inclui descriptografar os componentes criptografados da VM (15).
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que quando a VM (15) é despachada pelo hipervisor (12) no modo não seguro, os dados da VM (15) são acessíveis pelo hipervisor (12).
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que com base na determinação de que a VM (15) está no modo seguro, impedindo que o hipervisor (12) acesse quaisquer dados da VM (15).
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que realizar a reinicialização compreende: descriptografar, pelo controle de interface seguro, a VM (15) com base nas informações de descriptografia; e reiniciando a VM (15) com base na VM (15) descriptografada.
9. Sistema (100, 300, 800) caracterizado pelo fato de que compreende: uma memória; um controle de interface seguro; e uma unidade de processamento acoplada à memória e ao controle de interface segura, a unidade de processamento configurada para executar um hipervisor (12) que hospeda uma pluralidade de máquinas virtuais (15) (VMs), o hipervisor (12) proibido de acessar diretamente quaisquer dados de uma VM (15) quando a VM (15) estiver em um ambiente seguro modo, e em que o hipervisor (12) está configurado para executar: receber, por um hipervisor (12) que está executando em um servidor host, uma solicitação para despachar uma VM (15) no servidor host; despachar, pelo hipervisor(12), a VM (15) no servidor host, a VM (15) em um modo não seguro e incluir uma imagem criptografada da VM (15) e uma instrução de reinicialização que utiliza um mecanismo de carregamento de programa inicial (IPL); acionar, pelo hipervisor (12), a instrução de reinicialização para reiniciar a VM (15) no servidor host em um modo seguro, o acionamento compreendendo o hipervisor (12) chamando um controle de interface seguro para executar a reinicialização da VM (15) no modo seguro, o hipervisor (12) especificando um local de a imagem criptografada da VM (15) no servidor host e as informações de descriptografia; e executar a reinicialização em resposta ao acionamento, em que após a execução da reinicialização, o hipervisor (12) é impedido de acessar quaisquer dados da VM (15).
10. Sistema (100, 300, 800), de acordo com a reivindicação 9, caracterizado pelo fato de que o despacho inclui: carregar a imagem criptografada da VM (15) em uma memória do servidor host; e carregar um componente de bootstrap não criptografado (106) que compreende a instrução de reinicialização na memória.
11. Sistema (100, 300, 800), de acordo com a reivindicação 10, caracterizado pelo fato de que o despacho inclui ainda a transferência de controle para o componente bootstrap não criptografado (106).
12. Sistema (100, 300, 800), de acordo com a reivindicação 9, caracterizado pelo fato de que a VM (15) inclui componentes criptografados subsequentes ao despacho.
13. Sistema (100, 300, 800), de acordo com a reivindicação 12, caracterizado pelo fato de que a reinicialização inclui descriptografar os componentes criptografados da VM (15).
14. Sistema (100, 300, 800), de acordo com a reivindicação 9, caracterizado pelo fato de que quando a VM (15) é despachada pelo hipervisor (12) no modo não seguro, os dados da VM (15) são acessíveis pelo hipervisor (12).
BR112021017782-5A 2019-03-08 2020-03-06 Iniciando um convidado seguro usando um mecanismo de carga de programa inicial BR112021017782B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/296,304 2019-03-08
US16/296,304 US10970100B2 (en) 2019-03-08 2019-03-08 Starting a secure guest using an initial program load mechanism
PCT/EP2020/055971 WO2020182642A1 (en) 2019-03-08 2020-03-06 Starting a secure guest using an initial program load mechanism

Publications (2)

Publication Number Publication Date
BR112021017782A2 BR112021017782A2 (pt) 2021-11-23
BR112021017782B1 true BR112021017782B1 (pt) 2022-08-30

Family

ID=70189895

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021017782-5A BR112021017782B1 (pt) 2019-03-08 2020-03-06 Iniciando um convidado seguro usando um mecanismo de carga de programa inicial

Country Status (14)

Country Link
US (1) US10970100B2 (pt)
EP (1) EP3935498A1 (pt)
JP (1) JP7418093B2 (pt)
KR (1) KR102672577B1 (pt)
CN (1) CN113544643A (pt)
AU (1) AU2020235010B2 (pt)
BR (1) BR112021017782B1 (pt)
CA (1) CA3132756A1 (pt)
IL (1) IL285225B2 (pt)
MX (1) MX2021010584A (pt)
SG (1) SG11202105430SA (pt)
TW (1) TWI734379B (pt)
WO (1) WO2020182642A1 (pt)
ZA (1) ZA202106314B (pt)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11308215B2 (en) * 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement
US11205003B2 (en) * 2020-03-27 2021-12-21 Intel Corporation Platform security mechanism
CN113434372B (zh) * 2021-06-10 2023-07-18 浙江大华技术股份有限公司 一种定位指示的方法、设备、***及存储介质
US11874776B2 (en) 2021-06-25 2024-01-16 Intel Corporation Cryptographic protection of memory attached over interconnects
JP7412835B1 (ja) 2022-06-29 2024-01-15 セーラ・ネットワークス株式会社 演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4245302A (en) 1978-10-10 1981-01-13 Magnuson Computer Systems, Inc. Computer and method for executing target instructions
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US6138236A (en) 1996-07-01 2000-10-24 Sun Microsystems, Inc. Method and apparatus for firmware authentication
US6658562B1 (en) * 2000-08-25 2003-12-02 International Business Machines Corporation Method, system, and program for customizing a basic input/output system (“BIOS”) configuration according to the type of user
US7356677B1 (en) * 2001-10-19 2008-04-08 Flash Vos, Inc. Computer system capable of fast switching between multiple operating systems and applications
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
WO2005036367A2 (en) 2003-10-08 2005-04-21 Unisys Corporation Virtual data center that allocates and manages system resources across multiple nodes
US9086913B2 (en) 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US8387114B2 (en) 2009-01-02 2013-02-26 International Business Machines Corporation Secure workload partitioning in a server environment
JP2011048661A (ja) 2009-08-27 2011-03-10 Nomura Research Institute Ltd 仮想サーバ暗号化システム
US8639783B1 (en) 2009-08-28 2014-01-28 Cisco Technology, Inc. Policy based configuration of interfaces in a virtual machine environment
US8856504B2 (en) * 2010-06-07 2014-10-07 Cisco Technology, Inc. Secure virtual machine bootstrap in untrusted cloud infrastructures
GB2499963B (en) 2010-12-09 2014-03-26 Ibm Computer-readable storage mediums for encrypting and decrypting a virtual disc
US20120179904A1 (en) 2011-01-11 2012-07-12 Safenet, Inc. Remote Pre-Boot Authentication
TW201535145A (zh) * 2013-12-04 2015-09-16 Insyde Software Corp 使用保護讀取儲存器安全地儲存韌體數據之系統及方法
US9785801B2 (en) * 2014-06-27 2017-10-10 Intel Corporation Management of authenticated variables
US10599458B2 (en) 2015-01-23 2020-03-24 Unisys Corporation Fabric computing system having an embedded software defined network
US20190095357A1 (en) * 2017-09-28 2019-03-28 Intel Corporation Hardware support for static mode of protected memory management on flexibly-convertible enclave platform

Also Published As

Publication number Publication date
AU2020235010B2 (en) 2022-12-01
IL285225A (en) 2021-09-30
TW202101207A (zh) 2021-01-01
CN113544643A (zh) 2021-10-22
KR102672577B1 (ko) 2024-06-07
BR112021017782A2 (pt) 2021-11-23
JP2022522643A (ja) 2022-04-20
WO2020182642A1 (en) 2020-09-17
KR20210118130A (ko) 2021-09-29
IL285225B1 (en) 2023-11-01
MX2021010584A (es) 2022-03-31
US10970100B2 (en) 2021-04-06
SG11202105430SA (en) 2021-06-29
AU2020235010A1 (en) 2021-06-17
CA3132756A1 (en) 2020-09-17
JP7418093B2 (ja) 2024-01-19
EP3935498A1 (en) 2022-01-12
TWI734379B (zh) 2021-07-21
ZA202106314B (en) 2022-07-27
IL285225B2 (en) 2024-03-01
US20200285492A1 (en) 2020-09-10

Similar Documents

Publication Publication Date Title
BR112021017782B1 (pt) Iniciando um convidado seguro usando um mecanismo de carga de programa inicial
US11455398B2 (en) Testing storage protection hardware in a secure virtual machine environment
EP3935510B1 (en) Secure interface control secure storage hardware tagging
US11182192B2 (en) Controlling access to secure storage of a virtual machine
US11487906B2 (en) Storage sharing between a secure domain and a non-secure entity
US11403409B2 (en) Program interruptions for page importing/exporting
US20200285594A1 (en) Sharing secure memory across multiple security domains
AU2020238889B2 (en) Secure storage isolation
US11206128B2 (en) Secure paging with page change detection
JP2022523522A (ja) セキュア・インターフェイス制御の高レベルのページ管理
AU2020237597B2 (en) Secure interface control high-level instruction interception for interruption enablement

Legal Events

Date Code Title Description
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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