Atestado de chave de TPM

Aplica-se a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012

Autor: Justin Turner, Engenheiro Sênior de Escalonamento de Suporte com o grupo Windows

Observação

Este documento foi criado por um engenheiro de atendimento ao cliente da Microsoft e é destinado a administradores e arquitetos de sistemas experientes que procuram explicações técnicas mais profundas para recursos e soluções no Windows Server 2012 R2 do que aquelas geralmente oferecidas em tópicos do TechNet. No entanto, ele não passou pelas mesmas etapas de edição que eles, por isso a linguagem pode parecer que menos refinada do que a geralmente encontrada no TechNet.

Visão geral

Embora o suporte para chaves protegidas por TPM exista desde Windows 8, não havia mecanismos para que os CAs atestem criptograficamente que a chave privada do solicitante de certificado está realmente protegida por um TPM (Trusted Platform Module). Essa atualização permite que uma AC execute esse atestado e reflita esse atestado no certificado emitido.

Observação

Este artigo pressupõe que o leitor esteja familiarizado com o conceito de modelo de certificado (para referência, consulte Modelos de Certificado). Ele também pressupõe que o leitor esteja familiarizado com como configurar CAs empresariais para emitir certificados com base em modelos de certificado (para referência, consulte Checklist: Configurar CAs para emitir e gerenciar certificados).

Terminologia

Termo Definição
EK Chave de endosso. Essa é uma chave assimétrica contida dentro do TPM (injetada no tempo de fabricação). O EK é exclusivo para cada TPM e pode identificá-lo. O EK não pode ser alterado ou removido.
EKpub Refere-se à chave pública do EK.
EKPriv Refere-se à chave privada do EK.
EKCert Certificado EK. Um certificado emitido pelo fabricante do TPM para EKPub. Nem todos os TPMs têm EKCert.
TPM Módulo plataforma confiável. Um TPM foi projetado para fornecer funções relacionadas à segurança baseadas em hardware. Um chip TPM é um processador de criptografia seguro projetado para desempenhar as operações de criptografia. O chip inclui vários mecanismos de segurança física para torná-lo resistente a adulterações nas funções de segurança do TPM por software mal-intencionado.

Segundo plano

A partir de Windows 8, um TPM (Trusted Platform Module) pode ser usado para proteger a chave privada de um certificado. O Provedor de Armazenamento de Chave do Provedor de Criptografia (KSP) da Microsoft Platform habilita esse recurso. Havia duas preocupações com a implementação:

  • Não havia garantia de que uma chave é realmente protegida por um TPM (alguém pode facilmente falsificar um KSP de software como um TPM KSP com credenciais de administrador local).

  • Não foi possível limitar a lista de TPMs que têm permissão para proteger certificados emitidos pela empresa (caso o Administrador de PKI queira controlar os tipos de dispositivos que podem ser usados para obter certificados no ambiente).

Atestado de chaves do TPM

Atestado de chave TPM é a capacidade da entidade que solicita um certificado para provar criptograficamente a uma AC que a chave RSA na solicitação de certificado está protegida por "a" ou "o" TPM em que a AC confia. O modelo de confiança do TPM é discutido mais na seção Visão geral da Implantação mais adiante neste tópico.

Por que o atestado de chave TPM é importante?

Um certificado de usuário com uma chave atestada por TPM fornece maior garantia de segurança, com backup por não exportabilidade, anti-martelada e isolamento de chaves fornecidas pelo TPM.

Com o atestado de chave do TPM, um novo paradigma de gerenciamento agora é possível: um administrador pode definir o conjunto de dispositivos que os usuários podem usar para acessar recursos corporativos (por exemplo, VPN ou ponto de acesso sem fio) e ter garantias fortes de que nenhum outro dispositivo pode ser usado para acessá-los. Esse novo paradigma de controle de acesso é forte porque está vinculado a uma identidade de usuário associada a hardware , que é mais forte do que uma credencial baseada em software.

Como funciona o atestado de chave TPM?

Em geral, o atestado de chave TPM é baseado nos seguintes pilares:

  1. Cada TPM é fornecido com uma chave assimétrica exclusiva, chamada EK ( Chave de Endosso ), queimada pelo fabricante. Nos referimos à parte pública dessa chave como EKPub e à chave privada associada como EKPriv. Alguns chips TPM também têm um certificado EK emitido pelo fabricante para o EKPub. Nós nos referimos a esse certificado como EKCert.

  2. Uma AC estabelece a confiança no TPM por meio de EKPub ou EKCert.

  3. Um usuário prova à AC que a chave RSA para a qual o certificado está sendo solicitado está relacionada criptograficamente ao EKPub e que o usuário possui o EKpriv.

  4. A AC emite um certificado com uma OID de política de emissão especial para indicar que a chave agora é atestada para ser protegida por um TPM.

Visão geral da implantação

Nessa implantação, supõe-se que uma AC corporativa do Windows Server 2012 R2 esteja configurada. Além disso, os clientes (Windows 8.1) são configurados para se registrarem na AC corporativa usando modelos de certificado.

Há três etapas para implantar o atestado de chave do TPM:

  1. Planeje o modelo de confiança do TPM: A primeira etapa é decidir qual modelo de confiança do TPM usar. Há 3 maneiras com suporte para fazer isso:

    • Confiar com base na credencial do usuário: A AC corporativa confia no EKPub fornecido pelo usuário como parte da solicitação de certificado e nenhuma validação é executada além das credenciais de domínio do usuário.

    • Confiança com base no EKCert: A AC corporativa valida a cadeia EKCert fornecida como parte da solicitação de certificado em relação a uma lista gerenciada pelo administrador de cadeias de certificados EK aceitáveis. As cadeias aceitáveis são definidas por fabricante e são expressas por meio de dois repositórios de certificados personalizados na AC emissora (um repositório para o intermediário e outro para certificados de AC raiz). Esse modo de confiança significa que todos os TPMs de um determinado fabricante são confiáveis. Observe que, nesse modo, os TPMs em uso no ambiente devem conter EKCerts.

    • Confiança com base no EKPub: A AC corporativa valida que o EKPub fornecido como parte da solicitação de certificado aparece em uma lista gerenciada pelo administrador de EKPubs permitidos. Essa lista é expressa como um diretório de arquivos em que o nome de cada arquivo neste diretório é o hash SHA-2 do EKPub permitido. Essa opção oferece o nível de garantia mais alto, mas requer mais esforço administrativo, pois cada dispositivo é identificado individualmente. Nesse modelo de confiança, somente os dispositivos que tiveram o EKPub do TPM adicionado à lista permitida de EKPubs têm permissão para se registrar em um certificado atestado do TPM.

    Dependendo do método usado, a AC aplicará uma OID de política de emissão diferente ao certificado emitido. Para obter mais detalhes sobre os OIDs de política de emissão, consulte a tabela OIDs da Política de Emissão na seção Configurar um modelo de certificado neste tópico.

    Observe que é possível escolher uma combinação de modelos de confiança do TPM. Nesse caso, a AC aceitará qualquer um dos métodos de atestado, e os OIDs da política de emissão refletirão todos os métodos de atestado bem-sucedidos.

  2. Configure o modelo de certificado: A configuração do modelo de certificado é descrita na seção Detalhes da implantação neste tópico. Este artigo não aborda como esse modelo de certificado é atribuído à AC corporativa ou como o acesso de registro é dado a um grupo de usuários. Para obter mais informações, consulte Checklist: Configurar CAs para emitir e gerenciar certificados.

  3. Configurar a AC para o modelo de confiança do TPM

    1. Confiar com base na credencial do usuário: Nenhuma configuração específica é necessária.

    2. Confiança com base no EKCert: O administrador deve obter os certificados da cadeia EKCert dos fabricantes do TPM e importá-los para dois novos repositórios de certificados, criados pelo administrador, na AC que executam o atestado de chave TPM. Para obter mais informações, consulte a seção de configuração da AC neste tópico.

    3. Confiança com base no EKPub: O administrador deve obter o EKPub para cada dispositivo que precisará de certificados atestados por TPM e adicioná-los à lista de EKPubs permitidos. Para obter mais informações, consulte a seção de configuração da AC neste tópico.

    Observação

    • Esse recurso requer Windows 8.1/Windows Server 2012 R2.
    • Não há suporte para atestado de chave TPM para KSPs de cartão inteligente de terceiros. O KSP do Provedor de Criptografia da Plataforma Microsoft deve ser usado.
    • O atestado de chave TPM só funciona para chaves RSA.
    • Não há suporte para atestado de chave TPM para uma AC autônoma.
    • O atestado de chave TPM não dá suporte ao processamento de certificado não persistente.

Detalhes de implantação

Configurar um modelo de certificado

Para configurar o modelo de certificado para o atestado de chave do TPM, execute as seguintes etapas de configuração:

  1. Guia Compatibilidade

    Na seção Configurações de Compatibilidade:

    • Verifique se Windows Server 2012 R2 está selecionado para a Autoridade de Certificação.

    • Verifique se Windows 8.1/Windows Server 2012 R2 está selecionado para o destinatário do Certificado.

    Screenshot that highlights the Certificate recipient list.

  2. Guia Criptografia

    Verifique se o provedor de Armazenamento chave está selecionado para a Categoria de Provedor e se o RSA está selecionado para o nome do algoritmo. Verifique se as solicitações devem usar um dos provedores a seguir e se a opção Provedor de Criptografia da Plataforma Microsoft está selecionada em Provedores.

    Screenshot that highlights the Provider Category and Algorithm name lists.

  3. Guia Atestado de chave

    Esta é uma nova guia para Windows Server 2012 R2:

    Screenshot that shows the Key Attestation tab.

    Escolha um modo de atestado entre as três opções possíveis.

    Screenshot that shows the attestation modes.

    • Nenhum: Implica que o atestado de chave não deve ser usado

    • Obrigatório, se o cliente for capaz: Permite que os usuários em um dispositivo que não dá suporte ao atestado de chave TPM continuem se registrando para esse certificado. Os usuários que podem executar o atestado serão diferenciados com uma OID de política de emissão especial. Alguns dispositivos podem não ser capazes de executar o atestado devido a um TPM antigo que não dá suporte a atestado de chave ou o dispositivo não tem um TPM.

    • Necessário: O cliente deve executar o atestado de chave TPM, caso contrário, a solicitação de certificado falhará.

    Em seguida, escolha o modelo de confiança do TPM. Há novamente três opções:

    Screenshot that shows the TPM trust models.

    • Credenciais do usuário: Permitir que um usuário de autenticação atesta um TPM válido especificando suas credenciais de domínio.

    • Certificado de endosso: O EKCert do dispositivo deve validar por meio de certificados de AUTORIDADE intermediária do TPM gerenciados pelo administrador para um certificado de AC raiz gerenciado pelo administrador. Se você escolher essa opção, deverá configurar repositórios de certificadoS EKCA e EKRoot na AC emissora, conforme descrito na seção de configuração da AC neste tópico.

    • Chave de endosso: O EKPub do dispositivo deve aparecer na lista gerenciada pelo administrador PKI. Essa opção oferece o nível de garantia mais alto, mas requer mais esforço administrativo. Se você escolher essa opção, deverá configurar uma lista EKPub na AC emissora, conforme descrito na seção de configuração da AC neste tópico.

    Por fim, decida qual política de emissão mostrar no certificado emitido. Por padrão, cada tipo de imposição tem um OID (identificador de objeto) associado que será inserido no certificado se ele passar esse tipo de imposição, conforme descrito na tabela a seguir. Observe que é possível escolher uma combinação de métodos de imposição. Nesse caso, a AC aceitará qualquer um dos métodos de atestado e o OID da política de emissão refletirá todos os métodos de atestado que foram bem-sucedidos.

    OIDs da Política de Emissão

    OID Tipo de atestado de chave Descrição Nível de garantia
    1.3.6.1.4.1.311.21.30 EK "EK Verificado": para a lista gerenciada pelo administrador do EK Alto
    1.3.6.1.4.1.311.21.31 Certificado de endosso "Certificado EK verificado": quando a cadeia de certificados EK é validada Médio
    1.3.6.1.4.1.311.21.32 Credenciais de usuário "EK Confiável em Uso": para eK atestado pelo usuário Baixo

    Os OIDs serão inseridos no certificado emitido se As Políticas de Emissão de Inclusão estiverem selecionadas (a configuração padrão).

    TPM Key attestation

    Dica

    Um uso potencial de ter a OID presente no certificado é limitar o acesso à REDE VPN ou sem fio a determinados dispositivos. Por exemplo, sua política de acesso poderá permitir conexão (ou acesso a uma VLAN diferente) se o OID 1.3.6.1.4.1.311.21.30 estiver presente no certificado. Isso permite limitar o acesso a dispositivos cujo TPM EK está presente na lista EKPUB.

Configuração da AC

  1. Configurar repositórios de certificadoS EKCA e EKROOT em uma AC emissora

    Se você escolheu o Certificado de Endosso para as configurações do modelo, execute as seguintes etapas de configuração:

    1. Use Windows PowerShell para criar dois novos repositórios de certificados no servidor de autoridade de certificação (AC) que executarão o atestado de chave TPM.

    2. Obtenha os certificados de AC intermediários e raiz dos fabricantes que você deseja permitir em seu ambiente corporativo. Esses certificados devem ser importados para os repositórios de certificados criados anteriormente (EKCA e EKROOT) conforme apropriado.

    O script de Windows PowerShell a seguir executa ambas as etapas. No exemplo a seguir, o fabricante do TPM Fabrikam forneceu um certificado raiz FabrikamRoot.cer e um certificado de autoridade de certificação fabrikamca.cer emitindo.

    PS C:>\cd cert:
    PS Cert:\>cd .\\LocalMachine
    PS Cert:\LocalMachine> new-item EKROOT
    PS Cert:\ LocalMachine> new-item EKCA
    PS Cert:\EKCA\copy FabrikamCa.cer .\EKCA
    PS Cert:\EKROOT\copy FabrikamRoot.cer .\EKROOT
    
  2. Configurar a lista EKPUB se estiver usando o tipo de atestado de EK

    Se você escolheu a Chave de Endosso nas configurações do modelo, as próximas etapas de configuração serão criar e configurar uma pasta na AC emissora, contendo arquivos de 0 bytes, cada um nomeado para o hash SHA-2 de um EK permitido. Essa pasta serve como uma "lista de permissões" de dispositivos que têm permissão para obter certificados com atestado de chave do TPM. Como você deve adicionar manualmente o EKPUB para cada dispositivo que requer um certificado atestado, ele fornece à empresa uma garantia dos dispositivos autorizados a obter certificados atestados de chave TPM. A configuração de uma AC para esse modo requer duas etapas:

    1. Crie a entrada do registro EndorsementKeyListDirectories: Use a ferramenta de linha de comando Certutil para configurar os locais de pasta em que os EKpubs confiáveis são definidos conforme descrito na tabela a seguir.

      Operação Sintaxe de comando
      Adicionar locais de pasta certutil.exe -setreg CA\EndorsementKeyListDirectories +"<folder>"
      Remover locais de pasta certutil.exe -setreg CA\EndorsementKeyListDirectories -"<folder>"

      O comando EndorsementKeyListDirectories no certutil é uma configuração do Registro, conforme descrito na tabela a seguir.

      Nome do valor Tipo Dados
      EndorsementKeyListDirectories REG_MULTI_SZ <Caminho local ou UNC para listas de permissões do EKPUB>

      Exemplo:

      \\blueCA.contoso.com\ekpub

      \\bluecluster1.contoso.com\ekpub

      D:\ekpub

      HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Nome sanitizado>

      EndorsementKeyListDirectories conterá uma lista de caminhos unc ou do sistema de arquivos local, cada um apontando para uma pasta à qual a AC tem acesso de leitura. Cada pasta pode conter zero ou mais entradas de lista de permissões, em que cada entrada é um arquivo com um nome que é o hash SHA-2 de um EKpub confiável, sem extensão de arquivo. Criar ou editar essa configuração de chave do Registro requer uma reinicialização da AC, assim como as configurações existentes do Registro de AUTORIDADE. No entanto, as edições na configuração entrarão em vigor imediatamente e não exigirão que a AC seja reiniciada.

      Importante

      Proteja as pastas na lista contra violação e acesso não autorizado configurando permissões para que apenas administradores autorizados tenham acesso de leitura e gravação. A conta de computador da AC requer somente acesso de leitura.

    2. Preencha a lista EKPUB: Use o cmdlet Windows PowerShell a seguir para obter o hash de chave pública do TPM EK usando Windows PowerShell em cada dispositivo e, em seguida, enviar esse hash de chave pública para a AC e armazená-lo na pasta EKPubList.

      PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256
      PS C:>$b=new-item $a.PublicKeyHash -ItemType file
      

Solução de problemas

Os campos de atestado de chave não estão disponíveis em um modelo de certificado

Os campos de atestado de chave não estarão disponíveis se as configurações do modelo não atenderem aos requisitos de atestado. Os motivos comuns são:

  1. As configurações de compatibilidade não estão configuradas corretamente. Verifique se eles estão configurados da seguinte maneira:

    1. Autoridade de Certificação: Windows Server 2012 R2

    2. Destinatário do certificado: Windows 8.1/Windows Server 2012 R2

  2. As configurações de criptografia não estão configuradas corretamente. Verifique se eles estão configurados da seguinte maneira:

    1. Categoria do provedor: provedor de Armazenamento chave

    2. Nome do algoritmo: RSA

    3. Provedores: Provedor de Criptografia da Plataforma Microsoft

  3. As configurações de tratamento de solicitação não estão configuradas corretamente. Verifique se eles estão configurados da seguinte maneira:

    1. A opção Permitir que a chave privada seja exportada não deve ser selecionada.

    2. A opção de chave privada de criptografia do assunto Arquivo não deve ser selecionada.

Verificação do dispositivo TPM para atestado

Use o cmdlet Windows PowerShell, Confirm-CAEndorsementKeyInfo, para verificar se um dispositivo TPM específico é confiável para atestado por CAs. Há duas opções: uma para verificar o EKCert e outra para verificar um EKPub. O cmdlet é executado localmente em uma AC ou em CAs remotas usando Windows PowerShell comunicação remota.

  1. Para verificar a confiança em um EKPub, execute as duas etapas a seguir:

    1. Extraia o EKPub do computador cliente: O EKPub pode ser extraído de um computador cliente por meio de Get-TpmEndorsementKeyInfo. Em um prompt de comando com privilégios elevados, execute o seguinte:

      PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256
      
    2. Verifique a confiança em um EKCert em um computador de autoridade de certificação: Copie a cadeia de caracteres extraída (o hash SHA-2 do EKPub) para o servidor (por exemplo, por email) e passe-a para o cmdlet Confirm-CAEndorsementKeyInfo. Observe que esse parâmetro deve ter 64 caracteres.

      Confirm-CAEndorsementKeyInfo [-PublicKeyHash] <string>
      
  2. Para verificar a confiança em um EKCert, execute as duas etapas a seguir:

    1. Extraia o EKCert do computador cliente: O EKCert pode ser extraído de um computador cliente por meio de Get-TpmEndorsementKeyInfo. Em um prompt de comando com privilégios elevados, execute o seguinte:

      PS C:>\$a=Get-TpmEndorsementKeyInfo
      PS C:>\$a.manufacturerCertificates|Export-Certificate -filepath c:\myEkcert.cer
      
    2. Verifique a confiança em um EKCert em um computador de autoridade de certificação: Copie o EKCert extraído (EkCert.cer) para a AC (por exemplo, por email ou xcopy). Por exemplo, se você copiar o arquivo de certificado da pasta "c:\diagnostic" no servidor de AC, execute o seguinte para concluir a verificação:

      PS C:>new-object System.Security.Cryptography.X509Certificates.X509Certificate2 "c:\diagnose\myEKcert.cer" | Confirm-CAEndorsementKeyInfo
      

Consulte Também

Recurso OverviewExternal de Tecnologia do Módulo de Plataforma Confiável: Módulo de Plataforma Confiável