Atestado de chave de TPM
Autor: Justin Turner, engenheiro sênior de escalonamento de suporte com o grupo do 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 o Windows 8, não havia mecanismos para as ACs atestarem criptograficamente que a chave privada do solicitante do certificado está realmente protegida por um TPM (Trusted Platform Module). Essa atualização permite que uma AC execute 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, confira Modelos de Certificado). Ele também pressupõe que o leitor esteja familiarizado com a forma de configuração das ACs corporativas para emitir certificados com base em modelos de certificado (para referência, confira Lista de verificação: configurar ACs para emitir e gerenciar certificados).
Terminologia
Termo | Definição |
---|---|
EK | Chave de Endosso. Essa é uma chave assimétrica encontrada no TPM (injetada no momento da fabricação). A EK é exclusiva para cada TPM e pode identificá-lo. A EK não pode ser alterada nem removida. |
EKpub | Refere-se à chave pública da EK. |
EKPriv | Refere-se à chave privada da EK. |
EKCert | Certificado da EK. Um certificado emitido pelo fabricante do TPM para EKPub. Nem todos os TPMs têm EKCert. |
TPM | Trusted Platform Module. Um TPM foi criado 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. |
Tela de fundo
A partir do Windows 8, um TPM (Trusted Platform Module) pode ser usado para proteger a chave privada de um certificado. O KSP (Provedor de Armazenamento de Chaves) do Microsoft Platform Crypto Provider habilita esse recurso. Há duas preocupações com a implementação:
Não há garantia de que uma chave esteja realmente protegida por um TPM (alguém pode facilmente falsificar um software de KSP 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 por empresas (caso o Administrador do PKI queira controlar os tipos de dispositivos que podem ser usados para obter certificados no ambiente).
Atestado de chaves do TPM
O atestado de chave do TPM é a capacidade da entidade que solicita um certificado de provar criptograficamente para uma AC que a chave RSA na solicitação de certificado é protegida "por um" ou "pelo" TPM em que a AC confia. O modelo de confiança do TPM também é discutido na seção Visão geral da implantação mais adiante neste artigo.
Por que o atestado de chave do TPM é importante?
Um certificado de usuário com uma chave atestada pelo TPM oferece maior garantia de segurança, respaldada pela falta de capacidade de exportação, anti-hammering e isolamento de chaves fornecidas pelo TPM.
Com o atestado de chave do TPM, agora um novo paradigma de gerenciamento é 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 sólidas de que nenhum outro dispositivo poderá ser usado para acessá-los. Esse novo paradigma de controle de acesso é sólido porque está vinculado a uma identidade de usuário associada ao hardware, que é mais forte do que uma credencial baseada em software.
Como funciona o atestado de chave do TPM?
Em geral, o atestado de chave do TPM se baseia nos seguintes pilares:
Cada TPM é fornecido com uma chave assimétrica exclusiva, chamada EK (Chave de Endosso), criada pelo fabricante. Nós 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.
Uma AC estabelece a confiança no TPM por meio do EKPub ou do EKCert.
Um usuário prova para a AC que a chave RSA para a qual o certificado está sendo solicitado está criptograficamente relacionada à EKPub e que o usuário detém a EKpriv.
A AC emite um certificado com o OID de uma política de emissão especial para indicar que a chave agora está 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 registrar nessa AC corporativa usando modelos de certificado.
Há três etapas para implantar o atestado de chave do TPM:
Planejar o modelo de confiança do TPM: a primeira etapa é decidir qual modelo de confiança do TPM deve ser usado. Há três maneiras compatíveis de fazer isso:
Confiança baseada na credencial do usuário: a AC corporativa confia na EKPub fornecida 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 baseada na EKCert: a AC corporativa valida a cadeia de EKCert fornecida como parte da solicitação de certificado em relação a uma lista gerenciada pelo administrador de cadeias de certificados de EK aceitáveis. As cadeias aceitáveis são definidas pelo fabricante e 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 determinado fabricante são confiáveis. Observe que, nesse modo, os TPMs em uso no ambiente devem conter EKCerts.
Confiança baseada na EKPub: a AC corporativa valida que a EKPub fornecida como parte da solicitação de certificado aparece em uma lista de EKPubs permitidas gerenciada pelo administrador. Essa lista é expressa como diretório de arquivos em que o nome de cada arquivo neste diretório é o hash SHA-2 da EKPub permitida. 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 a EKPub do TPM adicionada à lista de EKPubs permitidas podem se registrar em um certificado atestado pelo TPM.
Dependendo de qual método é usado, a AC aplicará o OID de uma política de emissão diferente ao certificado emitido. Para obter mais detalhes sobre os OIDs da política de emissão, confira a tabela de OIDs da Política de Emissão na seção Configurar um modelo de certificado neste artigo.
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.
Configurar o modelo de certificado: a configuração do modelo de certificado é descrita na seção Detalhes da implantação neste artigo. Este artigo não aborda como esse modelo de certificado é atribuído à AC corporativa nem como o acesso de registro é dado a um grupo de usuários. Para obter mais informações, confira Lista de verificação: configurar ACs para emitir e gerenciar certificados.
Configurar a AC para o modelo de confiança do TPM
Confiança baseada na credencial do usuário: nenhuma configuração específica é necessária.
Confiança baseada na EKCert: o administrador deve obter os certificados da cadeia de EKCert dos fabricantes do TPM e importá-los para dois novos repositórios de certificados, criados pelo administrador, na AC que executa o atestado de chave do TPM. Para obter mais informações, confira a seção Configuração de AC neste artigo.
Confiança baseada na EKPub: o administrador deve obter a EKPub para cada dispositivo que precisará de certificados atestados pelo TPM e adicioná-la à lista de EKPubs permitidas. Para obter mais informações, confira a seção Configuração de AC neste artigo.
Observação
- Este recurso requer o Windows 8.1/Windows Server 2012 R2.
- Não há suporte para atestado de chave do TPM para KSPs de cartão inteligente de terceiros. O KSP do Microsoft Platform Crypto Provider deve ser usado.
- O atestado de chave do TPM só funciona para chaves RSA.
- Não há suporte para atestado de chave do TPM para uma AC autônoma.
- O atestado de chave do TPM não é compatível com o 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:
Guia Compatibilidade
Na seção Configurações de Compatibilidade:
Verifique se Windows Server 2012 R2 está selecionado na Autoridade de Certificação.
Verifique se Windows 8.1/Windows Server 2012 R2 está selecionado no destinatário do certificado.
Guia Criptografia
Verifique se Provedor de Armazenamento de Chaves está selecionado na Categoria do Provedor e se RSA está selecionada no Nome do algoritmo. Verifique se o opção As solicitações devem usar um dos provedores a seguir está selecionada e se a opção Provedor de Criptografia da Plataforma Microsoft está selecionada em Provedores.
Guia Atestado de Chave
Esta é uma nova guia para Windows Server 2012 R2:
Escolha um modo de atestado entre as três opções possíveis.
Nenhum: implica que o atestado de chave não deve ser usado
Obrigatório, se o cliente for compatível: permite que os usuários em um dispositivo incompatível com o atestado de chave do TPM continuem se registrando para esse certificado. Os usuários que podem executar o atestado serão diferenciados com o OID de uma política de emissão especial. Alguns dispositivos podem não conseguir executar o atestado devido a um TPM antigo incompatível com o atestado de chave ou porque o dispositivo não tem um TPM.
Obrigatório: o cliente deve executar o atestado de chave do TPM. Caso contrário, a solicitação de certificado falhará.
Escolha o modelo de confiança do TPM. Novamente, há três opções:
Credenciais do usuário: permita que um usuário autenticado comprove um TPM válido especificando suas credenciais de domínio.
Certificado de endosso: a EKCert do dispositivo deve validar por meio de certificados de AC intermediários do TPM gerenciados pelo administrador para um certificado de AC raiz gerenciado pelo administrador. Se você escolher essa opção, deverá configurar os repositórios de certificados de EKCA e de EKRoot na AC emissora, conforme descrito na seção Configuração de AC neste artigo.
Chave de endosso: a EKPub do dispositivo deve aparecer na lista gerenciada pelo administrador de PKI. Essa opção oferece o maior nível de garantia, mas exige mais esforço administrativo. Se você escolher essa opção, deverá configurar uma lista de EKPub na AC emissora, conforme descrito na seção Configuração de AC neste artigo.
Por fim, decida qual política de emissão será mostrada no certificado emitido. Por padrão, cada tipo de imposição tem um OID (identificador de objeto) associado, que será inserido no certificado, se passar esse tipo de imposição, conforme descrito na tabela a seguir. Observe que é possível escolher uma combinação de modelos 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ão todos os métodos de atestado 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 Verificada": para a lista de EK gerenciada pelo administrador Alto 1.3.6.1.4.1.311.21.31 Certificado de endosso "Certificado de EK Verificada": quando a cadeia de certificados de EK é validada Médio 1.3.6.1.4.1.311.21.32 Credenciais de usuário "EK Confiável em Uso": para EK atestada pelo usuário Baixo Os OIDs serão inseridos no certificado emitido, se a opção Incluir Políticas de Emissão estiver selecionada (a configuração padrão).
Dica
Um possível uso de ter o OID presente no certificado é limitar o acesso à rede VPN ou sem fio a determinados dispositivos. Por exemplo, sua política de acesso pode permitir a 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 cuja EK do TPM está presente na lista de EKPUB.
Configuração da AC
Configurar repositórios de certificados de EKCA e EKROOT em uma AC emissora
Se você escolher Certificado de Endosso para as configurações de modelo, execute as seguintes etapas de configuração:
Use o Windows PowerShell para criar dois novos repositórios de certificados no servidor da AC (autoridade de certificação), os quais executarão o atestado de chave do TPM.
Obtenha os certificados de AC intermediária e raiz dos fabricantes que você deseja permitir no seu ambiente corporativo. Esses certificados devem ser importados para os repositórios de certificados criados anteriormente (EKCA e EKROOT), conforme apropriado.
O script do 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 AC emissora Fabrikamca.cer.
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
Configurar lista de EKPUB se estiver usando o tipo de atestado de EK
Se você escolher Chave de Endosso nas configurações de modelo, as próximas etapas de configuração serão criar e configurar uma pasta na AC emissora, contendo arquivos de 0 byte, cada um nomeado para o hash SHA-2 de uma EK permitida. Essa pasta serve como "lista de permissões" dos dispositivos que podem obter certificados atestados pela chave do TPM. Como você deve adicionar manualmente a EKPUB para cada dispositivo que exige um certificado atestado, ela fornece à empresa uma garantia dos dispositivos autorizados a obter certificados atestados pela chave do TPM. A configuração de uma AC para esse modo exige duas etapas:
Crie a entrada do registro EndorsementKeyListDirectories: use a ferramenta de linha de comando Certutil, para configurar os locais de pasta em que as EKpubs confiáveis são definidas, 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 de EKPUB> Exemplo:
\\blueCA.contoso.com\ekpub
\\bluecluster1.contoso.com\ekpub
D:\ekpub
HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Sanitized Name>
O EndorsementKeyListDirectories conterá uma lista de caminhos do sistema de arquivos UNC ou local, cada um apontando para uma pasta à qual a AC tem acesso de leitura. Cada pasta pode conter zero ou mais entradas da lista de permissões, em que cada entrada é um arquivo com um nome que é o hash SHA-2 de uma EKpub confiável, sem extensão de arquivo. Criar ou editar essa configuração de chave do registro exige uma reinicialização da AC, assim como as configurações de registro de AC existentes. No entanto, as edições para a 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 os administradores autorizados tenham acesso de Leitura e Gravação. A conta de computador da AC exige somente acesso de Leitura.
Preencher a lista de EKPUB: use o cmdlet do Windows PowerShell a seguir para obter o hash de chave pública da EK do TPM, usando o Windows PowerShell em cada dispositivo e, em seguida, envie esse hash de chave pública para a AC e armazene-o 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 de modelo não atenderem aos requisitos de atestado. Os motivos comuns são:
As configurações de compatibilidade não estão definidas corretamente. Verifique se estão configuradas da seguinte maneira:
Autoridade de Certificação: Windows Server 2012 R2
Destinatário do Certificado: Windows 8.1/Windows Server 2012 R2
As configurações de criptografia não estão definidas corretamente. Verifique se estão configuradas da seguinte maneira:
Categoria do Provedor: Provedor de Armazenamento de Chaves
Nome do Algoritmo: RSA
Provedores: Microsoft Platform Crypto Provider
As configurações de tratamento de solicitação não estão definidas corretamente. Verifique se estão configuradas da seguinte maneira:
A opção Permitir que a chave privada seja exportada não deve ser selecionada.
A opção Arquivar chave privada de criptografia do assunto não deve ser selecionada.
Verificação do dispositivo TPM para atestado
Use o cmdlet do Windows PowerShell, Confirm-CAEndorsementKeyInfo, para verificar se um dispositivo do TPM específico é confiável para ser atestado pelas ACs. Há duas opções: uma para verificar a EKCert e outra para verificar uma EKPub. O cmdlet é executado localmente em uma AC ou em ACs remotas usando a comunicação remota do Windows PowerShell.
Para verificar a confiança em uma EKPub, execute as duas etapas a seguir:
Extrair a EKPub do computador cliente: a EKPub pode ser extraída de um computador cliente por meio de Get-TpmEndorsementKeyInfo. Em um prompt de comando elevado, execute o seguinte:
PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256
Verificar a confiança em uma 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 para o cmdlet Confirm-CAEndorsementKeyInfo. Observe que esse parâmetro deve ter 64 caracteres.
Confirm-CAEndorsementKeyInfo [-PublicKeyHash] <string>
Para verificar a confiança em uma EKCert, execute as duas etapas a seguir:
Extrair a EKCert do computador cliente: a EKCert pode ser extraída de um computador cliente por meio de Get-TpmEndorsementKeyInfo. Em um prompt de comando elevado, execute o seguinte:
PS C:>\$a=Get-TpmEndorsementKeyInfo PS C:>\$a.manufacturerCertificates|Export-Certificate -filepath c:\myEkcert.cer
Verificar a confiança em uma EKCert em um computador de autoridade de certificação: copie a EKCert extraída (EkCert.cer) para a AC (por exemplo, por email ou xcopy). Por exemplo, se você copiar o arquivo de certificado da pasta "c:\diagnos" 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
Visão Geral da Tecnologia do Trusted Platform ModuleRecurso Externo: Trusted Platform Module