BR112014031586B1 - Sistema para emular um ambiente de execução confiável e midia de armazenamento de computador - Google Patents

Sistema para emular um ambiente de execução confiável e midia de armazenamento de computador Download PDF

Info

Publication number
BR112014031586B1
BR112014031586B1 BR112014031586-8A BR112014031586A BR112014031586B1 BR 112014031586 B1 BR112014031586 B1 BR 112014031586B1 BR 112014031586 A BR112014031586 A BR 112014031586A BR 112014031586 B1 BR112014031586 B1 BR 112014031586B1
Authority
BR
Brazil
Prior art keywords
account
specific
entity
protected
execution environment
Prior art date
Application number
BR112014031586-8A
Other languages
English (en)
Other versions
BR112014031586A2 (pt
BR112014031586A8 (pt
Inventor
Mark F. Novak
Andrew John Layman
Magnus Nystrom
Stefan Thom
Original Assignee
Microsoft Technology Licensing, Llc
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 Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112014031586A2 publication Critical patent/BR112014031586A2/pt
Publication of BR112014031586A8 publication Critical patent/BR112014031586A8/pt
Publication of BR112014031586B1 publication Critical patent/BR112014031586B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

sistema para emular um ambiente de execução confiável e produto de programa de computador. a presente invenção refere-se a um sistema que inclui um módulo de gerenciamento de conta configurado para manter as contas protegidas. por exemplo, uma conta protegida específica inclui um conjunto de dados protegidos que não é legível fora do sistema e, talvez, nem mesmo legível fora da conta. o conjunto de dados específicos corresponde a uma entidade específica atribuída à conta específica e que inclui as chaves que correspondem à entidade específica. um processador de segurança usa pelo menos parte da pluralidade de chaves para realizar os processos criptográficos em resposta a um ou mais comandos de ambiente de execução confiável recebidos a partir da entidade específica.

Description

ANTECEDENTES
[001] Os Módulos de Plataforma Confiável (ou "TPMs") sãoambientes de execução confiáveis que são isolados do ambiente de operação regular dos dispositivos de computação. Tipicamente, os TPMs são implantados na forma de um circuito integrado que é fisicamente ligado a um dispositivo de computação. O ambiente de computação de regular pode se comunicar com o TPM através uma interface, em que um exemplo do qual é os Serviços com Base em TPM (ou "TBS").
[002] Os TPMs fornecem uma gama de funções, maiscomumente usadas das quais estão geração de chave criptográfica, uso de chave impulsionado por política, armazenamento vedado e atestação. Os TPMs têm uma região de memória chamada de uma "área de proteção" que contêm os dados que não podem ser lidos, porém, todavia, as operações podem ser realizadas com o uso de e/ou em tais dados. Parte dos dados é imutável e, dessa forma, é ligado (mas não alterado) através da operação que está sendo realizada e parte dos dados é mutável e pode ser alterada através de tais operações. Observa-se que é a operação que está sendo realizada interna ao TPM que está lendo os dados. Os dados protegidos não são legíveis fora do TPM.
[003] Dessa forma, o TPM tem um componente operacional querealiza as operações e um componente de memória que retém os dados protegidos que não podem ser lidos fora do TPM. A velocidade de operação do TPM é limitada às capacidades do hardware dentro do TPM. Também, o tamanho da área de proteção é limitado ao espaço dentro do TPM.
BREVE SUMÁRIO
[004] Pelo menos uma modalidade descrita no presentedocumento se refere a um sistema que inclui um módulo de gerenciamento de conta configurado para manter as contas protegidas. Por exemplo, uma conta protegida específica inclui um conjunto de dados protegidos que não são acessíveis de fora do sistema e, talvez, nem mesmo acessíveis de fora da conta. O conjunto de dados específicos corresponde a uma entidade específica (por exemplo, um dispositivo, um sistema, um usuário, um componente ou uma combinação dos mesmos) atribuída à conta específica e inclui chaves que correspondem ao dispositivo específico. Um processador de segurança usa pelo menos parte das chaves para realizar os processos criptográficos e de segurança em resposta a um ou mais comandos de ambiente de execução confiável recebidos a partir da entidade específica. Em algumas modalidades, pode haver múltiplos conjuntos de dados para diferenciar as entidades que pertencem à mesma conta.
[005] Esse Sumário é fornecido para introduzir uma seleção deconceitos de uma forma simplificada que são descritos abaixo na Descrição Detalhada. Esse Sumário não é destinado a identificar atributos chaves ou atributos essenciais da matéria reivindicada, nem é destinado a ser usado para limitar o como auxilio na determinação do escopo da matéria reivindicada.
BREVE DESCRIÇÃO DOS DESENHOS
[006] A fim de descrever a maneira na qual o supracitado eoutras vantagens e recursos podem ser obtidos, uma descrição mais específica das várias modalidades serão apresentadas a título de referência aos desenhos anexos. Entendendo-se que esses desenhos retratam apenas modalidades de amostra e não devem, portanto, ser considerados como limitadores do escopo da invenção, as modalidades serão descritas e explicadas com especificidade e detalhes adicionais através do uso dos desenhos anexos nos quais:
[007] A Figura 1 ilustra um sistema de computação de exemploque pode ser usado para empregar as modalidades descritas no presente documento e que inclui um nível de administração e um nível de ambiente de execução confiável local;
[008] A Figura 2 ilustra um ambiente no qual múltiplos clientes,parte dos quais utilizam uma interface de Módulo de Plataforma Confiável (TPM) com um sistema através de uma rede, em que o sistema inclui múltiplas contas, cada uma tendo um ou mais conjuntos de dados protegidos que são submetidos aos processos criptográficos implantas em resposta aos comandos locais do ambiente de execução confiável recebido a partir dos clientes;
[009] A Figura 3 ilustra de maneira abstrata o conjunto de dadosprotegidos como incluindo os dados imutáveis e dados mutáveis; e
[0010] A Figura 4 ilustra um fluxograma de um método paragerenciar um comando de execução de ambiente confiável.
DESCRIÇÃO DETALHADA
[0011] De acordo com pelo menos uma modalidade descrita nopresente documento, um sistema é descrito no qual um módulo de gerenciamento de conta mantém as contas protegidas. Por exemplo, uma conta protegida específica inclui um conjunto de dados protegidos que não são acessíveis de fora do sistema e, talvez, nem mesmo acessíveis de fora da conta. O conjunto de dados específicos corresponde a uma entidade específica (por exemplo, um dispositivo, um sistema (como, por exemplo, um sistema de computação), um usuário, um componente ou uma combinação dos mesmos) atribuída à conta específica e inclui as chaves que correspondem à entidade específica. Um processador de segurança usa pelo menos parte da pluralidade de chaves para realizar os processos criptográficos e de segurança em resposta a um ou mais comandos de ambiente de execução confiável recebidos a partir da entidade específica. Em algumas modalidades, pode haver múltiplos conjuntos de dados, em que cada um corresponde a uma entidade diferente. Ademais, embora não requisitado, pode haver múltiplos conjuntos de dados protegidos dentro de uma única conta.
[0012] Agora, os sistemas de computação estão tomandoprogressivamente uma ampla variedade de formas. Os sistemas de computação podem, por exemplo, ser dispositivos de mão (como, por exemplo, telefones inteligentes), eletrodomésticos, computadores do tipo laptop, computadores do tipo desktop, mainframes, sistemas de computação distribuídos ou mesmo dispositivos que não tenham sido convencionalmente considerados um sistema de computação (como, por exemplo, relógios de pulso, eletrodomésticos de cozinha, automóveis, implantes médicos, e assim em diante). Nesta descrição e nas reivindicações, o termo "sistema de computação" é definido amplamente como incluindo qualquer dispositivo ou sistema (ou combinação dos mesmos) que inclua pelo menos um processador físico e tangível e uma memória física e tangível capaz de ter nas mesmas instruções executáveis por computador que possam ser executas pelo processador. A memória pode assumir qualquer forma e pode depender em sua natureza e forma do sistema de computação.
[0013] Conforme usado no presente documento, o termo "módulo"ou "componente" pode se referir aos objetos de software ou rotinas que executam no sistema de computação. Os diferentes componentes, módulos, motores e serviços descritos no presente documento podem ser implantados como objetos ou processos que executem no sistema de computação (por exemplo, como encadeamentos separados).
[0014] As modalidades descritas no presente documento podemcompreender ou utilizar um computador de propósito especial ou de propósito geral que inclui o hardware de computado, como, por exemplo, um ou mais processadores e memórias de sistema, conforme discutido em maiores detalhes abaixo. As modalidades descritas no presente documento também incluem mídias legíveis por computador físicas e outras para carregarem ou armazenarem as instruções executáveis por computador e/ou estruturas de dados. Tais mídias legíveis por computador podem ser qualquer mídia disponível que possa ser acessada por um sistema de computador de propósito geral ou propósito especial. As mídias legíveis por computador que armazenam as instruções executáveis por computador ou os dados são mídias de armazenamento físicas. As mídias legíveis por computador que carregam as instruções executáveis por computador ou os dados são mídias de transmissão. Dessa forma, por meio de exemplo, e não limitação, as modalidades da invenção podem compreender pelo menos dois tipos distintivamente diferentes de mídias legíveis por computador: a mídia de armazenamento de computador e a mídia de transmissão.
[0015] A mídia de armazenamento de computador inclui RAM,ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnéticos ou qualquer outro meio que possa ser usado para armazenar os meios de códigos de programa desejados sob a forma de instruções executáveis por computador ou estruturas de dados e que podem ser acessadas através de um computador de propósito geral ou de propósito especial.
[0016] Uma "rede" é definida como um ou mais enlaces de dadosque habilitam o transporte dos dados eletrônicos entre os sistemas computador e/ou módulos e/ou outros dispositivos eletrônicos. Quando as informações forem transferidas ou fornecidas através de uma rede ou outra conexão de comunicação (tanto com fio, sem fio ou uma combinação de com fio ou sem fio) a um computador, o computador visualiza apropriadamente a conexão como um meio de transmissão. As mídias de transmissões podem incluir uma rede e/ou enlaces de dados que podem ser usados para carregar os meios de código de programa desejados sob a forma de instruções executáveis por computador ou de estruturas de dados e que podem ser acessados através de um computador de propósito geral ou de propósito especial. As combinações do supracitado também devem estar incluídas dentro do escopo das mídias legíveis por computador.
[0017] Ademais, após chegar aos vários componentes de sistemade computador, os meios de códigos de programa sob a forma de instruções executáveis por computador ou de estruturas de dados podem ser transferidos automaticamente da mídia de transmissão para a mídia de armazenamento de computador (ou vice-versa). Por exemplo, as instruções executáveis por computador ou as estruturas de dados recebidas através de uma rede ou um enlace de dados podem ser tamponadas em RAM dentro de um módulo de interface de rede (por exemplo, um "NIC") e, então, eventualmente transferido para um RAM de sistema de computador e/ou para uma mídia de armazenamento de computador menos volátil em um sistema de computador. Dessa forma, deve-se compreender que a mídia de armazenamento de computador pode ser incluída nos componentes de sistema de computador que também (ou mesmo primariamente) utilizam a mídia de transmissão.
[0018] As instruções executáveis por computador compreendeminstruções e dados que, quando executados em um processador, fazem com que um computador de propósito geral, um computador de propósito especial ou um dispositivo de processamento propósito especial realizem uma certa função ou grupo de funções. As instruções executáveis por computador podem ser, por exemplo, instruções em formato intermediário e binárias como, por exemplo, linguagem assembly ou mesmo código fonte. Embora a matéria tenha sido descrita em linguagem específica aos recursos estruturais e/ou ações metológicas, deve ser entendido que a matéria definida nas reivindicações em anexo não é necessariamente limitada aos recursos descritos ou ações descritas acima. Em vez disso, os recursos e ações descritos são revelados como formas de exemplo da implantação das reivindicações.
[0019] Aqueles versados na técnica apreciarão que a invençãopode ser praticada em ambientes de computação de rede com muitos tipos de configurações de sistema de computador, que incluem, computadores pessoais, computadores do tipo desktop, computadores do tipo laptop, processadores de mensagem, dispositivos de mão, sistemas de multiprocessadores, componentes eletrônicos de consumidor com base em microprocessador ou programáveis, PCs de rede, minicomputadores, computadores do tipo mainframe, telefones móveis, PDAs, pagers, roteadores, comutadores e similares.
[0020] Nesta descrição e nas reivindicações, um "dispositivo" édefinido como qualquer sistema de computação que não seja distribuído. Entretanto, a invenção também pode ser praticada em ambientes de sistema distribuídos nos quais os sistemas de computadores de locais e remotos, que são enlaçados (tanto através de enlaces de dados com fio, enlaces de dados sem fio ou através de uma combinação de enlaces de dados com fio e sem fio) através de uma rede, ambos realizam tarefas. Em um ambiente de sistema distribuído, os módulos de programa podem estar localizados em ambos os dispositivos de armazenamento memória locais e remotos.
[0021] A Figura 1 ilustra um exemplo de um sistema decomputação 100. O sistema de computação 100 inclui um domínio de administração 110 (ou "nível de administração") e um domínio de ambiente de execução confiável local 120 (ou "nível de ambiente de execução confiável local"). O domínio de administração 110 inclui um processador 111 e uma memória principal 112. A memória principal 112 é acessível a um administrador do sistema de computação 100 através do uso do processador 111. A memória principal 112 pode ser a memória de sistema física, que pode ser volátil, não volátil ou alguma combinação das duas. O termo "memória" também pode ser usado no presente documento para se referir ao armazenamento em massa não volátil como, por exemplo, mídia de armazenamento físico.
[0022] O domínio de ambiente de execução confiável local 120não pode ser acessado diretamente mesmo através de umadministrador humano. O domínio de ambiente de execução confiável local 120 inclui um Módulo de Plataforma Confiável (TPM) 121 que inclui funções criptográficas 122 e área de proteção 123. Se houvesse qualquer maneira possível para acessar diretamente o teor do TPM, esse método envolveria de maneira realmente física retalhar ou, de outro modo, quebrar o TPM e usar equipamento complexo para examinar fisicamente os teores. Dessa forma, os teores do domínio de ambiente de execução confiável local 120 são seguros. A área de proteção 123 inclui pelo menos algum teor que é ilegível fora do TPM. As funções criptográficas 122 pode, entretanto, operar com o uso do teor da área de proteção 123. A área de proteção inclui dados imutáveis 123A e dados mutáveis 123B. Ambos os tipos de dados podem ser lidos pelas funções criptográficas 122. Entretanto, apenas os dados mutáveis 123B podem ser escritos pelas funções criptográficas 122.
[0023] Um exemplo de dados imutáveis é uma chave de endosso,que age como um passaporte para o TPM, fornecendo segurança de nível de fabricante na identidade do TPM. Ademais, visto que os TPMs convencionais são fisicamente anexados ao sistema de computação, a chave de endosso também identifica de maneira segura o sistema de computação 100 e, dessa forma, pode servir como uma fundação de confiança para o sistema de computação 100.
[0024] Os exemplos de dados mutáveis incluem outras chaves,contadores monotônicos e memória não volátil. As outras chaves podem ser construídas a pedido do processador 111. Um contador monotônico começa no zero e é incrementado quando requisitado pelo processador 111 ou em resposta a certos eventos (como, por exemplo, fornecimento de potência ao sistema). As chaves podem ser migráveis ou não migráveis. As chaves migráveis podem ser usadas em qualquer TPM com a autorização apropriada, enquanto que as chaves não migráveis podem ser usadas apenas no TPM 121.
[0025] O sistema de computação 100 inclui uma interface 130 paracomunicação entre o processador 111 ao TPM 121. Um exemplo de uma interface convencional 130 é um módulo de Serviços com Base em TPM (TBS) que fornece comandos de TPM do processador 111 para o TPM 121 e, caso adequado, fornece os resultados do processamento criptográfico (mas, naturalmente, não o teor do TPM 121) de volta para o processador 111.
[0026] Esse sistema de computação convencional 100 com o TPMconvencionalmente implantado descrito com relação à Figura 1 tem certas vantagens e desvantagens. Por exemplo, os TPMs convencionais são um tanto baratos para se fabricar e fornecem uma área de proteção no nível de ambiente de execução confiável local. Entretanto, as funções criptográficas do TPM são muitas vezes bastante devagar visto que o processamento é limitado à capacidade de um pequeno TPM. Ademais, o espaço de memória da área de proteção 122 também é com frequência bastante pequeno, muitas vezes muito abaixo de um megabyte. Além disso, caso o sistema de computação 100 ou o TPM 121 seja danificado, todas as chaves que foram ligadas ao TPM, ou construídas pelo TPM, se tornam inutilizáveis. Ademais, os sistemas de computação convencionais podem tomar vantagem da funcionalidade de TPM apenas ao serem fisicamente vinculados ao TPM.
[0027] Embora os sistemas de computação convencionais quecontêm os TPMs não sejam distribuídos, o termo "sistema de computação" conforme usado no presente documento também pode ser distribuído através do ambiente de rede, em que nesse caso, o processamento, a memória e/ou a capacidade armazenamento podem ser distribuídas também.
[0028] Na descrição a seguir, as modalidades são descritas comreferência às ações que são realizadas por um ou mais sistemas de computação. Caso tais ações sejam implantadas no software, um ou mais processadores do sistema de computação associado que realiza a ação direcionam a operação do sistema de computação em resposta a ter executado as instruções executáveis por computador. Um exemplo de tal uma operação envolve a manipulação de dados. As instruções executáveis por computador (e os dados manipulados) podem ser armazenadas na memória do sistema de computação.
[0029] A Figura 2 ilustra um ambiente 200 em que os princípiosdescritos no presente documento podem ser empregados. Especificamente, o ambiente 200 inclui múltiplos sistemas de computação de cliente 201 (doravante referido como "clientes 201"). Os princípios descritos no presente documento permitem pelo menos alguma funcionalidade de ambiente de execução confiável local a ser descarregado dos clientes através de uma rede 203 para o interior do sistema 210. Isso é contraintuitivo visto que módulos de TPM tradicionalmente operam no nível de ambiente de execução confiável local e, dessa forma, são fisicamente vinculados ao cliente. No caso da Figura 2, os múltiplos clientes são capazes de descarregar a funcionalidade de TPM para o sistema 210. Um exemplo da rede 203 é a Internet, embora os princípios descritos no presente documento também possam ser aplicados a outras redes, como, por exemplo, talvez, uma rede empresarial.
[0030] A funcionalidade do TPM é descarregada tendo-se osistema 210 emular a área de proteção e seu recurso de não legibilidade. Por exemplo, enquanto que um TPM tradicional tem uma área de proteção que inclui os dados que não podem ser lidos fora do TPM, o sistema 210 tem uma área de proteção para cada entidade e a área de proteção não é legível a partir do exterior do sistema ou do exterior da conta, exceto pelo um processador de segurança 213. Visto que o sistema 210 não é facilmente violado para permitir, desse modo, outra entidade para ler os dados protegidos, o sistema 210 fornece um equivalente de segurança de ambiente de execução confiável local na criação de uma barreira significativo para a descoberta do teor da área de proteção.
[0031] Ademais, um processador de segurança 213 poderesponder aos comandos de ambiente de execução confiável da mesma maneira que um TPM local normalmente responderia a tais comandos de ambiente de execução confiável. Por exemplo, o processador de segurança 213 pode realizar o processamento criptográfico e/ou de segurança nas chaves e/ou nos conjuntos de dados protegidos. Isso permite que muita da funcionalidade do TPM seja emulada. Caso um cliente seja destruído, o TPM ainda está disponível no sistema 210 e, dessa forma, as chaves e outros dados (como, por exemplo, contadores monotônicos, teores de RAM não volátil e assim por diante, associados ao TPM) que foram gerados a partir do TPM ainda podem ser usados.
[0032] Na Figura 2, há seis clientes 201A até 201F ilustrados.Entretanto, as elipses 201G representam que os princípios descritos no presente documento não são limitados à quantidade específica dos clientes 201 conectados ao sistema 210. Pode haver tanto quanto um, mas potencialmente mais, em especial caso a rede 203 seja a Internet e/ou o sistema 210 seja um ambiente de computação em nuvem. Ademais, a número de clientes 201 pode se alterar ao longo do tempo. Por exemplo, se o sistema 210 for um ambiente de computação em nuvem, a quantidade de clientes 201 pode variar a cada segundo ou minuto.
[0033] Nesta descrição e nas seguintes reivindicações,"computação em nuvem" é definida como um modelo para habilitar acesso de rede em demanda a um pool compartilhado de recursos de computação configuráveis (por exemplo, redes, servidores, armazenamento, aplicativos e serviços). A definição de "computação em nuvem" não é limitada a qualquer das outras numerosas vantagens que podem ser obtidas a partir de tal um modelo quando apropriadamente implantado.
[0034] Por exemplo, a computação em nuvem é atualmenteempregada no mercado de modo a oferecer acesso ubíquo e em demanda conveniente ao pool compartilhado de recursos de computação configuráveis. Ademais, o pool compartilhado de recursos de computação configuráveis pode ser rapidamente fornecido através de virtualização e liberado com pouco esforço de gerenciamento ou interação de fornecedor de serviços e, então, adequadamente escalonado.
[0035] Um modelo de computação em nuvem pode ser compostode várias características como, por exemplo, autosserviço em demanda, acesso amplo à rede, agrupamento de recurso, elasticidade rápida, serviço medido e assim em diante. Um modelo de computação em nuvem também pode vir sob a forma de vários modelos de serviço como, por exemplo, Software como um Serviço ("SaaS"), Plataforma como um Serviço ("PaaS") e Infraestrutura como um Serviço ("IaaS"). O modelo de computação em nuvem também pode ser implantado com uso de diferentes modelos de implantação como, por exemplo, nuvem privada, nuvem comunitária, nuvem pública, nuvem híbrido e assim por diante. Nesta descrição e nas reivindicações, um "ambiente de computação em nuvem" é um ambiente em que se emprega a computação em nuvem.
[0036] Alguns dos clientes 201 podem incluir um TPM e algunsnão. Por exemplo, no caso da Figura 2, o cliente 201A tem o TPM 202A, o cliente 201B tem o TPM 202B e o cliente 201E tem o cliente 202E. Outros dos clientes, que incluem os clientes 201C, 201D ou 201F, não têm um TPM. A presença de um TPM permite que parte da funcionalidade específica de máquina do TPM seja descarregada (como, por exemplo, a habilidade para fornecer uma história de evento confiável associado à máquina) conforme será explicado abaixo, mesmo embora o TPM cliente local possa não estar realizando completamente como um TPM. Entretanto, mesmo sem um TPM, parte da funcionalidade de TPM ainda pode ser descarregada conforme descrito abaixo.
[0037] Um sistema 210 inclui um módulo de recepção 211 querecebe comandos de ambiente de execução confiável emitidos pelos clientes 201. Os comandos de ambiente de execução confiável que seriam normalmente emitidos a um TPM que usa uma interface de software de TPM (como, por exemplo, TBS) são, em vez disso, interceptados e despachados para o sistema 210 para serem, desse modo, recebidos através do módulo de recepção 211. Por exemplo, os clientes 201A até 201F despacham tais comandos de ambiente de execução confiável como representado pelas setas correspondentes 205A até 205F. Cada comando de execução de ambiente confiável é um comando para operar em um contexto de segurança (por exemplo, uma chave ou dados) que corresponde a uma entidade que emitiu o comando. O sistema inclui um processador de segurança 213 que realiza funções criptográficas e de segurança em resposta aos comandos de ambiente de execução confiável recebidos através do módulo de recepção 211.
[0038] O sistema 210 também inclui um módulo de gerenciamentode conta 212 que inclui múltiplas contas protegidas 221. Na Figura 2, as contas incluem três contas 221A, 221B e 221C, embora as elipses 221D representem que pode haver qualquer quantidade de contas gerenciadas pelo sistema 210. Cada conta corresponde a um ou mais dos clientes 201 e inclui um conjunto de dados protegidos que corresponde a cada cliente. Cada conjunto de dados protegidos emula o que uma área de proteção de um TPM pareceria para cada cliente. Entretanto, visto que o conjunto de dados protegidos não é limitado à pequena área do TPM, o conjunto de dados protegidos pode ser muito maior, talvez, nas faixas de megabyte, gigabyte e terabyte.
[0039] Na Figura 2, a conta 221A tem um conjunto de dadosprotegidos 222A que corresponde ao cliente 201A. A conta 221B tem um conjunto de dados protegidos 222B que corresponde ao cliente 201B e um conjunto de dados protegidos 222C que corresponde ao cliente 201C. Os clientes respectivos para a conta 221B são circundados por uma caixa em linha tracejada. A conta 221C tem um conjunto de dados protegidos 222D que corresponde ao cliente 201D, um conjunto de dados protegidos 222E que corresponde ao cliente 201E e um conjunto de dados protegidos 222F que corresponde ao cliente 201F. Os clientes respectivos para a conta 221C são circundados por uma caixa em linha tracejada.
[0040] Os conjuntos de dados protegidos 222 são "protegidos" nosentido em que seus teores não são legíveis fora do contexto do sistema e, talvez, não legíveis fora da conta correspondente, exceto, talvez, pelo processador de segurança 213. Em uma modalidade, uma instância do processador de segurança 213 é executada no interior do contexto da conta. Nesse caso, haveria um processador de segurança 213 no interior da conta 221A, outro processador de segurança 213 no interior da conta 221B e outro processador de segurança 213 no interior da conta 221C.
[0041] Cada conjunto de dados emula um exemplo do que ocliente correspondente 201 tenha em seu TPM caso não houvesse nenhuma restrição de memória ao TPM. Por exemplo, a Figura 3 ilustra um conjunto de dados específicos 300 que inclui dados imutáveis 301 e dados mutáveis 302. Por exemplo, os dados imutáveis 301 incluem uma chave de endosso 311, que é não migrável. Os dados imutáveis 301 também incluem uma chave migrável 312 e outros dados imutáveis 313. Os dados mutáveis 302 incluem uma chave migrável 321, uma chave não migrável 322, um contador monotônico 323 e uma memória não volátil 324.
[0042] Todo o conjunto de dados 300 é protegido conformemencionado acima. Entretanto, os dados imutáveis 301 não podem ser alterados, mesmo pelo processador de segurança 213. Os dados mutáveis 302 podem ser alterados, mas apenas em resposta à execução do processador de segurança 213. Uma chave de endosso 311 é uma chave não migrável na qual a mesma apenas pode ser usada no interior da conta que corresponde ao conjunto de dados. Entretanto, a chave migrável 312 pode ser usada fora da conta, mas apenas sob circunstâncias protegidas (como, por exemplo, em outro TPM ou outra conta configurada de modo similar) que impedem a leitura da chave migrável totalmente. Os dados imutáveis 301 também podem incluir outros dados 313. Os dados mutáveis 302 também podem ter chaves migráveis e não migráveis como, por exemplo, a chave migrável 321 e a chave não migrável 322. Os dados mutáveis 302 também incluem um contador monotônico que irreversivelmente aumenta em resposta a um pedido para incrementar e/ou em resposta a outro evento (como, por exemplo, um fornecimento de potência à máquina). Os dados mutáveis 302 também podem incluir memória não volátil.
[0043] Opcionalmente, cada conta protegida 221A até 221C podeincluir, também, um conjunto de dados de nível de conta correspondente 223A até 223C. Por exemplo, a conta 221A tem conjunto de dados de nível de conta 223A, a conta 221B tem o conjunto de dados de nível de conta 223B e a conta 221C tem o conjunto de dados de nível de conta 223C. Cada conjunto de dados de nível de conta não é específico a qualquer uma das entidades associadas à conta, mas é geral para a própria conta. Como um exemplo, usando protocolos de comunicação de TPM existentes, pode-se usar PCRs de nível superior (como, por exemplo, PCR 24 e acima) para tal dados de nível de conta.
[0044] Como um exemplo, suponha que a conta 221Bcorresponde a um usuário específico, o conjunto de dados de nível de conta 223B pode listar as palavras-chave de usuário. O conjunto de dados de nível de conta 223B também pode ser usado para gravar eventos imutáveis associados à conta. Por exemplo, o conjunto de dados de nível de conta 223B pode armazenar um registro de funções de alta sensibilidade (como, por exemplo, gerenciamento de conta e sessão) no sistema operacional. Isso tornaria dificil elevar os privilégios ou roubar a conta. Ademais, sendo capaz de vincular uma conta a outras propriedades de módulo de plataforma confiável (TPM), como PCRs, por exemplo, permite a atestação implícita do sistema para um usuário a ser autenticado com sucesso e operacional. Como outro exemplo, o usuário pode armazenar uma sequência de licenças que o usuário tenha se inscrito. Novamente, essa sequência pode ser imutável e, talvez, feita com o uso de uma única entrada a partir da qual a sequência de licenças pode ser matematicamente entregue. Nesse caso, se a questão vier a surgir em relação se o usuário tem uma licença para um produto específico, o usuário pode concretamente saber a resposta.
[0045] Consequentemente, o que é descrito é uma maneira eficazpara descarregar imutavelmente garantida de um teor de uma área de proteção de um TPM local para um serviço através de uma rede, como, por exemplo, em um ambiente de computação em nuvem. Isso é alcançado interceptando-se comandos de ambiente de execução confiável que são emitidos de um cliente processador para um TPM e redirecionando-se os mesmos através de uma rede para um sistema que tem um processador de segurança que é capaz de interpretar os comandos de ambiente de execução confiável e um conjunto de dados para cada cliente que inclui os dados que devem ser protegidos.
[0046] Isso preserva a segurança de uma camada de ambiente deexecução confiável local visto que a área de proteção (por exemplo, o conjunto de dados) seria extremamente difícil ou impossível violar, o que essencialmente exige uma violação do sistema 210 a fim de acessar os dados protegidos. Visto que o sistema 210 pode ser bastante sofisticado e tem altos níveis de segurança, a violação do sistema 210 seria extremamente difícil ou impossível. Tal dificuldade ou impossibilidade pode mesmo exceder aquela de tentar violar um TPM cliente na própria máquina de cliente. Consequentemente, a segurança de ambiente de execução confiável local é preservada. Embora as informações possam ser comunicadas do cliente para o sistema, 210, tais informações são apenas os comandos de ambiente de execução confiável, não os dados reais que estão protegidos no conjunto de dados. Consequentemente, mesmo que alguém possa ler tal tráfego, os dados protegidos permanecem protegidos. Em alguma modalidade, mesmo o tráfego de rede pode ser criptografado caso uma relação de confiança exista entre o processador cliente e o sistema 210. Podendo ser útil no caso de haver problemas de segurança associados aos comandos de transmissão em evidência. Tal uma relação de confiança poderia ser, por exemplo, inicializada (bootstrap) no instante que o cliente for fornecido.
[0047] Como um benefício adicional, visto que o espaço dememória não é mais limitado a um pequeno circuito integrado, a quantidade de memória disponível pode ser significativamente aumentada. Ademais, visto que o poder de processamento não é mais limitado a um pequeno circuito integrado TPM, os processos criptográficos podem ser muito mais eficazmente executados e/ou tornados mais complexos. Também, visto que a área de proteção não é mais fisicamente acoplada ao cliente, caso o cliente seja destruído, as chaves que foram construídas com o uso dos dados da área de proteção ainda podem ser usadas.
[0048] Antes dos aspectos adicionais serem descritos, um fluxo deprocessamento geral associado ao processamento de um comando de execução de ambiente confiável será descrito adicionalmente no presente documento. Em particular, a Figura 4 ilustra um fluxograma de um método 400 para o processamento de um comando de execução de ambiente confiável. Como um exemplo, o comando de execução de ambiente confiável pode ser qualquer comando de TPM, seja de confirmação a qualquer protocolo existente (como, por exemplo, o TPM versão 1.2 e o TPM versão 2.0), ou seja, de confirmação de um futuro protocolo de TPM ou qualquer protocolo que facilite a comunicação com uma camada de ambiente de execução confiável local. Algumas das ações do método 400 são realizadas pelo cliente (por exemplo, cliente 201A) conforme lustrado na coluna direita da Figura 4 sob o cabeçalho "CLIENTE". Outros dos atos são realizados pelo sistema 210 conforme ilustrado na coluna do meio da Figura 4 sob o cabeçalho "SISTEMA". Outros atos são realizados pelo O processador de segurança 213 conforme ilustrado na coluna esquerda da Figura 4 sob o cabeçalho "OPERAÇÃO DE SEGURANÇA".
[0049] O processo começa quando o cliente emite um comando deexecução de ambiente confiável (ação 401). Em vez disso, ou em adição a, ser despachado para um TPM local no cliente, o comentário de ambiente de execução confiável é interceptado (ação 402) e despachado para o sistema (ação 403).
[0050] O sistema, então, recebe o comando de execução deambiente confiável (ação 411), identifica uma conta associada ao cliente que emitiu o comando de execução de ambiente confiável (ação 412), identifica um conjunto de dados associado ao cliente (ação 413) e identifica a operação a ser realizada (ação 414). O processador de segurança é, então, instruído para realizar a operação (ação 415) e o processador de segurança, então, realiza a operação (ação 421) no conjunto de dados identificada da conta identificada.
[0051] Uma das funções não mencionada de um TPM depende dahabilidade para detectar um ciclo de potência do cliente correspondente. Essa é uma das razões pelas quais o TPM é limitado dentro do cliente correspondente e fisicamente embutido às fontes de alimentação do cliente, de modo que o TPM possa detectar uma perda de potência e uma recuperação de potência. Uma das razões para detectar um ciclo de potência é que o TPM possa reinicializar parte dos dados dentro dos dados protegidos ao experimentar uma perda e uma recuperação de potência. Em alguns casos, a confiança de parte dos dados específicos de máquina dentro do TPM depende do conhecimento a cerda dos ciclos de potência.
[0052] Um exemplo de dados que deveriam ser reinicializados mediante um ciclo de potência é um log de evento de plataforma. Em um TPM típico, o log de evento é representado como uma única entrada. Sempre que um novo evento de interesse ocorrer (por exemplo, um carregamento de um pedaço de software ou um começo de execução de um pedaço de software), esse evento é concatenado com a entrada anterior, com hash, e, então, armazenado como um novo valor da entrada. Caso isso seja feito de uma maneira que as informações (isto é, os eventos anteriores) da entrada antiga sejam preservadas, então, a entrada poderá ser matematicamente avaliada para reprodução da sequência de eventos que ocorreram na plataforma. A partir disso, a integridade de plataforma pode ser provada.
[0053] Entretanto, visto que o sistema 210 não é fisicamenteligado a qualquer um dos clientes 201, mas, em vez disso, se comunica através de uma rede, é difícil para o sistema 210 determinar se qualquer um dos clientes respectivos 201 experimentou um ciclo de potência. Todavia, caso o cliente tenha um TPM, esse TPM pode rastear informações suficientes para ser capaz de inferir que um ciclo de potência tenha ocorrido. Isso é possível mesmo caso o TPM cliente local não esteja funcionando completamente dado que os comandos de ambiente de execução confiável podem não ser dados ao TPM local, mas, em vez disso, são interceptados e despachados para o sistema 210. Por exemplo, na Figura 2, o cliente 201A é ilustrado como incluindo o TPM 202A, o cliente 201B é ilustrado como incluindo o TPM 202B e o cliente 201E é ilustrado como incluindo o TPM 202E.
[0054] Nesse caso, o módulo de gerenciamento de conta 212 e/ouo sistema 210 como um todo podem detectar que um dado cliente foi reiniciado (reboot) comunicando-se com o TPM cliente local instalado naquele cliente (por exemplo, comunicando-se com o TPM 202A no caso do cliente 201A). Por exemplo, o sistema 210 pode receber uma declaração criptográfica do cliente 201A que indica que um ciclo de potência tenha ocorrido. Existem várias maneiras para isso poder ocorrer.
[0055] Em um primeiro exemplo, o sistema 210 e o TPM clientelocal podem se comunicar de modo que o sistema 210 recebe os valores de PCR associados aos registros que seriam reinicializados mediante um ciclo de potência. O sistema 210, então, compara o valor atual de PCR nos dados protegidos no sistema com o valor de PCR no TPM cliente local e pode inferir se um ciclo de potência ocorreu.
[0056] Em um segundo exemplo, o TPM cliente local podeestabelecer uma chave passageira mediante cada fornecimento de potência do cliente e, então, negociar com o processador cliente o uso dessa chave passageira a fim de se comunicar. O sistema 210 tem consciência dessa chave passageira visto que o mesmo está rastreando as comunicações. Caso o sistema 210 detecte que não é mais capaz de entender as comunicações, então, a chave passageira precisa ser alterada, o que implica que o cliente experimentou um ciclo de potência.
[0057] Em uma modalidade alternativa, um ciclo de potência dosistema 210 pode ser detectado mesmo sem um TPM no sistema 210. Por exemplo, isso poderia ser alcançado tendo-se um monitor de sistema que seja capaz de monitorar o ciclo de potência dos sistemas de cliente. Um exemplo não limitante de tal um monitor de sistema é o MICROSOFT® System Center Virtual Machine Monitor (ou SCVMM).
[0058] O sistema 210 pode adicionar os conjuntos de dadosprotegidos para uma dada conta sempre que um novo cliente for adicionado à conta. Por exemplo, quando uma comunicação é detectada associada a uma conta específica e que a comunicação de alguma forma indica que isso é de um cliente irreconhecido, então, um novo conjunto de dados pode ser adicionado àquela conta. Dessa forma, por exemplo, assumindo que o cliente use uma chave de criptografia para se comunicar com o sistema, caso uma comunicação chegue que use uma chave de criptografia irreconhecida, então, talvez, um novo cliente tenha sido adicionado. De modo semelhante, um conjunto de dados protegidos para uma conta pode ser apagado após um cliente correspondente não mais operar na conta. Por exemplo, pode haver uma ação de coleta de lixo em que os conjuntos de dados protegidos que não foram usados por algum período de tempo (talvez anos) são excluídos da conta.
[0059] Um módulo de política 214 pode servir para permitir açõespor um cliente que depende se os critérios foram satisfeitos com relação a um ou mais campos de dados do conjunto de dados protegidos que corresponde ao cliente. Alternativamente ou em adição, o módulo de política 214 pode servir para permitir ações por qualquer cliente associado a uma conta dependendo se os critérios foram satisfeitos com relação a um ou mais campos de dados dos conjuntos de dados de nível de conta. Combinado com o fato de que a memória associada a um conjunto de dados protegidos poderia ser significativamente aprimorada em comparação com um TPM local, isso habilita possibilidades significativas.
[0060] Por exemplo, supondo que o conjunto de dados protegidospara um dado cliente inclui toda uma imagem de um estado de restauração do cliente (por exemplo, o sistema operacional, quaisquer aplicativos padrões, definições de configuração padrões e assim por diante). Caso esse cliente tenha sido perdido ou danificado, outro cliente na conta pode acessar a imagem e instalar a imagem no novo cliente desde que certa política seja satisfeita, como a política destinada a ser protegida contra obtenção inapropriada do estado de restauração do cliente.
[0061] O sistema 210 também pode incluir um módulo de gerenciamento certificado 215 que usa uma chave não migrável (por exemplo, uma chave que não pode ser usada fora de uma conta) para gerar um certificado que é específico para aquela conta e que pode, dessa forma, ser usado por qualquer um dos clientes associados à conta. Dessa forma, cada cliente não necessita criar seu próprio certificado a fim de engatar na autenticação com base em certificado.
[0062] A presente invenção pode ser incorporada em outrasespecíficas sem que se afaste de seu espírito ou características essenciais. As modalidades descritas devem ser consideradas em todos os aspectos apenas como ilustrativas e não restritivas. O escopo da invenção é, portanto, indicado pelas reivindicações em anexo em vez de pela descrição supracitada. Todas as alterações que cabem dentro do significado e faixa de equivalência das reivindicações devem ser adotadas dentro de seu escopo.

Claims (20)

1. Sistema para emular um ambiente de execução confiável fisicamente ligado caracterizado pelo fato de que compreende:um módulo de recepção capaz de receber comandos de ambiente de execução confiável emitidos através de uma pluralidade de entidades através de uma rede, cada comando de execução de ambiente confiável sendo um comando para operar em um contexto de segurança que corresponde a uma entidade que emitiu o comando;uma instância de processador de segurança configurada para realizar uma pluralidade de processos criptográficos e de segurança em chaves e conjuntos de dados protegidos em resposta aos comandos de ambiente de execução confiável recebidos através do módulo de recepção, a instância do processador de segurança sendo vinculada a uma entidade específica e os conjuntos de dados protegidos correspondentes da entidade específica, a instância do processador de segurança sendo impedida de processar comandos do ambiente de execução a partir de outras entidades; eum módulo de gerenciamento de conta configurado para manter uma pluralidade de contas protegidas, em que uma conta protegida específica da pluralidade de contas compreende um conjunto de dados protegidos que corresponde a uma entidade específica atribuída à conta específica e que inclui uma pluralidade de chaves que corresponde à entidade específica, o conjunto de dados protegidos não sendo legível fora do sistema, a instância do processador de segurança usando pelo menos parte da pluralidade de chaves para realizar processos criptográficos em resposta a um ou mais comandos de ambiente de execução confiável recebidos a partir da entidade específica.
2. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que os comandos de ambiente de execução confiável se conformam a um protocolo de comunicação de Módulo de Plataforma Confiável (TPM).
3. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o conjunto de dados protegidos inclui pelo menos uma porção que não é legível exceto pela instância do processador de segurança.
4. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o módulo de gerenciamento de conta é ainda configurado para adicionar um novo conjunto de dados protegidos para a pluralidade de conjuntos de dados quando uma nova entidade é adicionada à conta.
5. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o módulo de gerenciamento de conta é ainda configurado para remover um conjunto de dados protegidos a partir da pluralidade de conjuntos de dados depois de uma entidade correspondente já não se encontrar em funcionamento.
6. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a pluralidade de chaves inclui uma chave de endosso.
7. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o conjunto de dados protegidos ainda compreende um contador monótono.
8. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o conjunto de dados protegidos ainda compreende uma memória não-volátil.
9. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende:um módulo de política configurado para permitir ações de entidade específica que depende se a política é satisfeita com relação ao conjunto de dados.
10. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a entidade específica é um dispositivo ou sistema específica, o módulo de gerenciamento de conta sendo ainda configurado para detectar que o dispositivo ou sistema específica tenha sido reinicializado e em resposta reinicializar uma porção do conjunto de dados protegidos.
11. Sistema, de acordo com a reivindicação 10, caracterizado pelo fato de que a entidade é um dispositivo ou sistema específica, em que o módulo de gerenciamento de conta detecta que o dispositivo ou sistema específica tenha sido reinicializado utilizando uma instrução criptográfica recebida a partir da entidade específica.
12. Sistema, de acordo com a reivindicação 10, caracterizado pelo fato de que a porção de reinicialização compreende um registo de registo de eventos de plataforma correspondente à entidade específica.
13. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a conta específica inclui uma pluralidade de conjuntos de dados, cada um correspondendo a uma entidade associada à conta específica, o conjunto de dados específicos sendo um primeiro conjunto de dados, a entidade específica sendo uma primeira entidade e a pluralidade de chaves sendo uma primeira pluralidade de chaves, a conta específica ainda compreendendo:uns segundos dados protegidos correspondendo a uma segunda entidade atribuída à conta específica e que inclui uma segunda pluralidade de chaves que corresponde à segunda entidade, o segundo conjunto de dados protegidos não sendo legível fora do sistema, a instância do processador de segurança usando pelo menos parte da segunda pluralidade de chaves para realizar os processos criptográficos em resposta a um ou mais comandos de ambiente de execução confiável recebidos a partir da segunda entidade.
14. Sistema, de acordo com a reivindicação 13, caracterizado pelo fato de que é ainda configurado para utilizar uma chave que não permite migração que não é migrável a partir da conta específica para gerar um certificado que pode ser usado por qualquer um da pluralidade de entidades associadas com a conta.
15. Sistema, de acordo com a reivindicação 13, caracterizado pelo fato de que a conta específica ainda compreende um conjunto de dados de nível de conta que não é específico para qualquer das entidades associadas à conta, mas é geral para a própria conta.
16. Sistema, de acordo com a reivindicação 15, caracterizado pelo fato de que o conjunto de dados em nível de conta imutavelmente armazena eventos associados a uma conta.
17. Sistema, de acordo com a reivindicação 15, caracterizado pelo fato de que ainda compreende um módulo de política configurado para permitir que ações por qualquer uma da pluralidade de entidades associadas com a conta dependendo se a política é satisfeita com relação ao conjunto de dados de nível de conta.
18. Mídia de armazenamento de computador caracterizada pelo fato de que tem um método que quando executado por um ou mais processadores do sistema de computação, fazem o sistema de computação instanciar o seguinte:um módulo de gerenciamento de conta configurado para manter uma pluralidade de contas protegidas, em que uma conta protegida específica da pluralidade de contas compreende um conjunto de dados protegidos que corresponde a uma entidade específica atribuída à conta específica e que inclui uma pluralidade de chaves que correspondem à entidade específica, o conjunto de dados protegidos não sendo legível fora da conta específica, a instância do processador de segurança usando pelo menos parte da pluralidade de chaves e dos conjuntos de dados protegidos para realizar os processos criptográficos e de segurança em resposta a um ou mais comandos de ambiente de execução confiável recebidos a partir da entidade específica, a instância do processador de segurança sendo vinculada à entidade específica e aos conjuntos de dados protegidos correspondentes da entidade específica, a instância do processador de segurança sendo impedida de executar o processamento de comandos de ambiente a partir de outras entidades.
19. Mídia de armazenamento de computador, de acordo com a reivindicação 18, caracterizada pelo fato de que quando executadas por um ou mais processadores, ainda fazem o sistema de computação instanciar o seguinte:a instância do processador de segurança configurada para realizar uma pluralidade de processos criptográficos e de segurança nas chaves em resposta aos comandos de ambiente de execução confiável emitidos através de uma pluralidade de entidades através de uma rede, cada comando de ambiente de execução confiável sendo um comando para operar em um contexto de segurança que corresponde a uma entidade que emitiu o comando.
20. Sistema para emular um ambiente de execução confiável fisicamente ligado caracterizado pelo fato de que compreende:um módulo de recepção capaz de receber comandos de ambiente de execução confiável emitidos através de uma pluralidade de entidades através de uma rede, cada comando de execução de ambiente confiável sendo um comando para operar em um contexto de segurança que corresponde a uma entidade que emitiu o comando, e cada comando de ambiente de execução confiável se conforma a um protocolo de comunicação de Módulo de Plataforma Confiável (TPM);uma instância de processador de segurança configurada para realizar uma pluralidade de processos criptográficos e de segurança em chaves e conjuntos de dados protegidos em resposta aos comandos de ambiente de execução confiável recebidos através do módulo de recepção, a instância do processador de segurança sendo vinculada à entidade e aos conjuntos de dados protegidos correspondentes da entidade, a instância do processador de segurança sendo impedida de processar comandos do ambiente de execução a partir de outras entidades; eum módulo de gerenciamento de conta configurado para manter uma pluralidade de contas protegidas, em que uma conta protegida específica da pluralidade de contas compreende uma pluralidade de conjuntos de dados compreendendo:um primeiro conjunto de dados protegido que corresponde a uma primeira entidade atribuída à conta específica e que inclui uma primeira pluralidade de chaves correspondendo à primeira entidade, eum segundo conjunto de dados protegido que corresponde a uma segunda entidade atribuída à conta específica e que inclui uma segunda pluralidade de chaves correspondendo à segunda entidade,a pluralidade de conjuntos de dados protegido não sendo legível fora do sistema, a instância do processador de segurança usando pelo menos parte da pluralidade de chaves para um dado conjunto de dados protegidos para executar processos criptográficos em resposta a um ou mais comandos de ambientes de execução confiáveis recebidos a partir de uma entidade correspondente ao dado conjunto de dados protegidos.
BR112014031586-8A 2012-06-19 2013-06-13 Sistema para emular um ambiente de execução confiável e midia de armazenamento de computador BR112014031586B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/527,439 2012-06-19
US13/527,439 US8782423B2 (en) 2012-06-19 2012-06-19 Network based management of protected data sets
PCT/US2013/045725 WO2013192016A1 (en) 2012-06-19 2013-06-13 Network based management of protected data sets

Publications (3)

Publication Number Publication Date
BR112014031586A2 BR112014031586A2 (pt) 2017-06-27
BR112014031586A8 BR112014031586A8 (pt) 2021-05-25
BR112014031586B1 true BR112014031586B1 (pt) 2022-02-15

Family

ID=48782597

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014031586-8A BR112014031586B1 (pt) 2012-06-19 2013-06-13 Sistema para emular um ambiente de execução confiável e midia de armazenamento de computador

Country Status (20)

Country Link
US (2) US8782423B2 (pt)
EP (1) EP2862119B1 (pt)
JP (1) JP6293133B2 (pt)
KR (1) KR102134491B1 (pt)
CN (1) CN104471584B (pt)
AU (2) AU2013277539B2 (pt)
BR (1) BR112014031586B1 (pt)
CA (1) CA2875664A1 (pt)
CL (1) CL2014003437A1 (pt)
CO (1) CO7160075A2 (pt)
HK (1) HK1206445A1 (pt)
IL (1) IL235816B (pt)
MX (1) MX356483B (pt)
MY (1) MY189174A (pt)
NZ (1) NZ702250A (pt)
PH (1) PH12014502633A1 (pt)
RU (1) RU2640653C2 (pt)
SG (1) SG11201407985WA (pt)
WO (1) WO2013192016A1 (pt)
ZA (1) ZA201408574B (pt)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782423B2 (en) * 2012-06-19 2014-07-15 Microsoft Corporation Network based management of protected data sets
KR102132218B1 (ko) * 2013-09-24 2020-07-09 삼성전자 주식회사 신뢰하는 실행 환경에서의 보안 도메인 관리 방법 및 장치
US9940234B2 (en) * 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US11438155B2 (en) * 2017-01-24 2022-09-06 Microsoft Technology Licensing, Llc Key vault enclave
US10819696B2 (en) 2017-07-13 2020-10-27 Microsoft Technology Licensing, Llc Key attestation statement generation providing device anonymity
US11316693B2 (en) * 2018-04-13 2022-04-26 Microsoft Technology Licensing, Llc Trusted platform module-based prepaid access token for commercial IoT online services
US11934540B2 (en) * 2018-05-28 2024-03-19 Royal Bank Of Canada System and method for multiparty secure computing platform
CN108924421B (zh) * 2018-07-16 2020-09-11 Oppo广东移动通信有限公司 图像处理方法、装置、计算机可读存储介质和电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965999B2 (en) * 1998-05-01 2005-11-15 Microsoft Corporation Intelligent trust management method and system
US20070079120A1 (en) * 2005-10-03 2007-04-05 Bade Steven A Dynamic creation and hierarchical organization of trusted platform modules
US8108668B2 (en) 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
US8272002B2 (en) 2006-08-18 2012-09-18 Fujitsu Limited Method and system for implementing an external trusted platform module
CN100566251C (zh) * 2007-08-01 2009-12-02 西安西电捷通无线网络通信有限公司 一种增强安全性的可信网络连接方法
JP5178341B2 (ja) * 2008-06-23 2013-04-10 パナソニック株式会社 オプショナルなコンポーネントを伴うセキュアブートの方法
WO2011137254A2 (en) * 2010-04-30 2011-11-03 Tobsc Inc. Methods and apparatus for a document clearinghouse and secure delivery network
US8959363B2 (en) * 2010-06-03 2015-02-17 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses
WO2012093924A1 (en) 2011-01-07 2012-07-12 Mimos Berhad System and method to provide trusted platform module (tpm) functionalities on a remote server for multiple users
US8782423B2 (en) * 2012-06-19 2014-07-15 Microsoft Corporation Network based management of protected data sets

Also Published As

Publication number Publication date
MX2014015685A (es) 2015-07-23
PH12014502633B1 (en) 2015-02-02
IL235816A0 (en) 2015-01-29
KR102134491B1 (ko) 2020-07-15
NZ702250A (en) 2017-10-27
WO2013192016A1 (en) 2013-12-27
EP2862119A1 (en) 2015-04-22
MY189174A (en) 2022-01-31
PH12014502633A1 (en) 2015-02-02
AU2013277539B2 (en) 2017-12-21
IL235816B (en) 2018-02-28
KR20150020221A (ko) 2015-02-25
AU2018201934B2 (en) 2020-01-16
JP6293133B2 (ja) 2018-03-14
US20130339729A1 (en) 2013-12-19
RU2640653C2 (ru) 2018-01-10
RU2014151557A (ru) 2016-07-10
US8782423B2 (en) 2014-07-15
HK1206445A1 (en) 2016-01-08
SG11201407985WA (en) 2015-01-29
US9268492B2 (en) 2016-02-23
CN104471584B (zh) 2017-06-13
CN104471584A (zh) 2015-03-25
CL2014003437A1 (es) 2015-05-08
AU2018201934A1 (en) 2018-04-12
BR112014031586A2 (pt) 2017-06-27
MX356483B (es) 2018-05-30
CA2875664A1 (en) 2013-12-27
JP2015524128A (ja) 2015-08-20
CO7160075A2 (es) 2015-01-15
US20140304506A1 (en) 2014-10-09
BR112014031586A8 (pt) 2021-05-25
ZA201408574B (en) 2016-09-28
EP2862119B1 (en) 2021-02-24
AU2013277539A1 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
US11675525B2 (en) Secure application acceleration system and apparatus
Brandenburger et al. Rollback and forking detection for trusted execution environments using lightweight collective memory
KR102376419B1 (ko) 암호화된 템플릿으로부터 암호화된 가상 머신의 안전한 생성 기법
Raj et al. {fTPM}: A {Software-Only} Implementation of a {TPM} Chip
BR112015002347B1 (pt) Método para clonar estado de máquina virtual fonte possuindo um ambiente de execução confiável associado para formular um estado de máquina virtual alvo e meio de armazenamento em computador
Ibrahim et al. Trusted cloud computing architectures for infrastructure as a service: Survey and systematic literature review
BR112014031586B1 (pt) Sistema para emular um ambiente de execução confiável e midia de armazenamento de computador
Butler et al. Kells: a protection framework for portable data
JP6769999B2 (ja) セキュア計算環境
Zou et al. Building Automated Trust Negotiation architecture in virtual computing environment
Pontes et al. Attesting AMD SEV-SNP Virtual Machines with SPIRE
Cabuk et al. Trusted Integrity Measurement and Reporting for Virtualized Platforms: (Work-in-Progress)
Yu et al. Security challenges on the clone, snapshot, migration and rollback of xen based computing environments
Vavala Secure large-scale outsourced services founded on trustworthy code executions
Kauer Authenticated booting for L4
Jayaram Masti On the security of virtual machine migration and related topics
Holoubková Rešerše a ukázka zabezpečení platformy (TPM)
Julian Cellar: Securing Data for Twister
Almantsri et al. Cellar: Securing Data for Twister
Butler Leveraging Emerging Disk Functionality for New Security Services

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

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]
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 13/06/2013, OBSERVADAS AS CONDICOES LEGAIS.