Partilhar via


Conceitos básicos do TPM

Este artigo fornece uma descrição dos componentes Trusted Platform Module (TPM 1.2 e TPM 2.0) e explica como são utilizados para mitigar ataques de dicionário.

Um TPM é um microchip concebido para fornecer funções básicas relacionadas com a segurança, principalmente envolvendo chaves de encriptação. O TPM é instalado na placa principal de um computador e comunica com o resto do sistema através de um barramento de hardware.

Os dispositivos que incorporam um TPM podem criar chaves criptográficas e encriptá-las, para que as chaves só possam ser desencriptadas pelo TPM. Este processo, muitas vezes denominado "encapsulamento" ou "enlace" uma chave, pode ajudar a proteger a chave da divulgação. Cada TPM tem uma chave de encapsulamento primária, denominada chave de raiz de armazenamento, que é armazenada no próprio TPM. A parte privada de uma chave de raiz de armazenamento ou chave de endossamento que é criada num TPM nunca é exposta a qualquer outro componente, software, processo ou utilizador.

Pode especificar se as chaves de encriptação criadas pelo TPM podem ou não ser migradas. Se especificar que podem ser migradas, as partes públicas e privadas da chave podem ser expostas a outros componentes, software, processos ou utilizadores. Se especificar que as chaves de encriptação não podem ser migradas, a parte privada da chave nunca será exposta fora do TPM.

Os dispositivos que incorporam um TPM também podem criar uma chave encapsulada e associada a determinadas medidas da plataforma. Este tipo de chave só pode ser desembrulhado quando essas medições de plataforma têm os mesmos valores que tinham quando a chave foi criada. Este processo é referido como selagem da chave para o TPM. Desencriptar a chave chama-se anular a linha. O TPM também pode selar e anular dados não selados que são gerados fora do TPM. Com a chave selada e o software, como a Encriptação de Unidade BitLocker, os dados podem ser bloqueados até que sejam cumpridas condições específicas de hardware ou software.

Com um TPM, partes privadas de pares de chaves são mantidas separadas da memória que é controlada pelo sistema operativo. As chaves podem ser seladas ao TPM e determinadas garantias sobre o estado de um sistema (garantias que definem a fiabilidade de um sistema) podem ser feitas antes de as chaves serem não seladas e libertadas para utilização. O TPM utiliza o seu próprio firmware interno e circuitos lógicos para processar instruções. Por conseguinte, não depende do sistema operativo e não está exposto a vulnerabilidades que possam existir no sistema operativo ou no software de aplicação.

As funcionalidades disponíveis nas versões são definidas em especificações pelo Grupo de Computação Fidedigno (TCG). Para obter mais informações, veja a página Trusted Platform Module (Módulo de Plataforma Fidedigna ) no site Trusted Computing Group (Grupo de Computação Fidedigno).

As secções seguintes fornecem uma descrição geral das tecnologias que suportam o TPM:

Arranque Medido com suporte para atestado

A funcionalidade Arranque Medido fornece software antimalware com um registo fidedigno (resistente ao spoofing e adulteração) de todos os componentes de arranque. O software antimalware pode utilizar o registo para determinar se os componentes executados antes do mesmo são fidedignos ou infetados com software maligno. Também pode enviar os registos de Arranque Medido para um servidor remoto para avaliação. O servidor remoto pode iniciar ações de remediação ao interagir com o software no cliente ou através de mecanismos fora de banda, conforme adequado.

Smart Card Virtual baseado em TPM

Aviso

As chaves de segurança do Windows Hello para Empresas e FIDO2 são métodos de autenticação de dois fatores modernos para o Windows. Os clientes que utilizam smart cards virtuais são incentivados a mudar para o Windows Hello para Empresas ou FIDO2. Para novas instalações do Windows, recomendamos chaves de segurança do Windows Hello para Empresas ou FIDO2.

O Smart Card Virtual emula a funcionalidade dos smart cards tradicionais. Os Smart Cards Virtuais utilizam o chip TPM, em vez de utilizarem um smart card e leitor físicos separados. Isto reduz consideravelmente o custo de gestão e implementação de smart cards numa empresa. Para o utilizador final, o Smart Card Virtual está sempre disponível no dispositivo. Se um utilizador precisar de utilizar mais do que um dispositivo, tem de ser emitido um Smart Card Virtual para cada dispositivo. Um computador partilhado entre vários utilizadores pode alojar vários Smart Cards Virtuais, um para cada utilizador.

Armazenamento de certificados baseado em TPM

O TPM protege certificados e chaves RSA. O fornecedor de armazenamento de chaves TPM (KSP) proporciona uma utilização fácil e conveniente do TPM como forma de proteger fortemente as chaves privadas. O KSP do TPM gera chaves quando uma organização se inscreve para certificados. O TPM também protege os certificados importados de uma origem externa. Os certificados baseados em TPM são certificados padrão. O certificado nunca poderá sair do TPM a partir do qual as chaves são geradas. O TPM também pode ser utilizado para operações criptográficas através da API de Criptografia: Próxima Geração (CNG).

TPM Cmdlets

Você pode gerenciar o TPM usando Windows PowerShell. Para obter detalhes, consulte Cmdlets do TPM no Windows PowerShell.

Interface de presença física

Para o TPM 1.2, as especificações de TCG para TPMs requerem presença física (normalmente, premir uma tecla) para ativar o TPM, desativá-lo ou limpá-lo. Normalmente, estas ações não podem ser automatizadas com scripts ou outras ferramentas de automatização, a menos que o OEM individual as forneça.

Estados e inicialização do TPM 1.2

O TPM 1.2 tem vários estados possíveis. O Windows inicializa automaticamente o TPM, o que o coloca num estado ativado, ativado e propriedade.

Chaves de endossamento

Uma aplicação fidedigna só pode utilizar o TPM se o TPM contiver uma chave de endossamento, que é um par de chaves RSA. A metade privada do par de chaves é mantida dentro do TPM e nunca é revelada ou acessível fora do TPM.

Atestado de chave

O atestado de chave TPM permite que uma autoridade de certificação verifique se uma chave privada está protegida por um TPM e que o TPM é aquele em que a autoridade de certificação confia. As chaves de endossamento comprovadas são utilizadas para vincular a identidade do utilizador a um dispositivo. O certificado de utilizador com uma chave com atestado de TPM fornece uma maior garantia de segurança suportada pela não acessibilidade, anti-martelar e isolamento de chaves fornecidas por um TPM.

Anti-martelação

Quando um TPM processa um comando, fá-lo num ambiente protegido. Por exemplo, um microcontrolador dedicado num chip discreto ou um modo especial protegido por hardware na CPU principal. Um TPM é utilizado para criar uma chave criptográfica que não é divulgada fora do TPM. É utilizado no TPM depois de ser fornecido o valor de autorização correto.

Os TPMs têm proteção anti-martelada concebida para impedir ataques de força bruta ou ataques de dicionário mais complexos, que tentam determinar valores de autorização para utilizar uma chave. A abordagem básica é que o TPM permita apenas um número limitado de falhas de autorização antes de impedir mais tentativas de utilização de chaves e bloqueios. Fornecer uma contagem de falhas para chaves individuais não é tecnicamente prático, pelo que os TPMs têm um bloqueio global quando ocorrem demasiadas falhas de autorização.

Uma vez que muitas entidades podem utilizar o TPM, um único êxito de autorização não pode repor a proteção anti-martelada do TPM. Isto impede um atacante de criar uma chave com um valor de autorização conhecido e, em seguida, utilizá-la para repor a proteção do TPM. Os TPMs foram concebidos para esquecer falhas de autorização após um período de tempo, para que o TPM não introduza um estado de bloqueio desnecessariamente. Uma palavra-passe de proprietário do TPM pode ser utilizada para repor a lógica de bloqueio do TPM.

TPM 2.0 anti-martelar

O TPM 2.0 tem um comportamento anti-martelada bem definido. Isto contrasta com o TPM 1.2 para o qual a protecção anti-martelar foi implementada pelo fabricante e a lógica variou bastante em toda a indústria.

Para sistemas com o TPM 2.0, o TPM é configurado pelo Windows para bloquear após 32 falhas de autorização e esquecer uma falha de autorização a cada 10 minutos. Isto significa que um utilizador pode tentar utilizar rapidamente uma chave com o valor de autorização incorreto 32 vezes. Para cada uma das 32 tentativas, o TPM regista se o valor de autorização estava correto ou não. Isto faz com que o TPM entre num estado bloqueado após 32 tentativas falhadas.

As tentativas de utilização de uma chave com um valor de autorização para os próximos 10 minutos não devolveriam êxito ou falha. Em vez disso, a resposta indica que o TPM está bloqueado. Após 10 minutos, uma falha de autorização é esquecida e o número de falhas de autorização memorizadas pelo TPM cai para 31. O TPM deixa o estado bloqueado e regressa ao funcionamento normal. Com o valor de autorização correto, as chaves podem ser utilizadas normalmente se não ocorrerem falhas de autorização durante os próximos 10 minutos. Se decorridos 320 minutos sem falhas de autorização, o TPM não se lembra de falhas de autorização e poderão ocorrer 32 tentativas falhadas novamente.

O Windows não necessita que os sistemas TPM 2.0 se esqueçam de falhas de autorização quando o sistema está totalmente desligado ou quando o sistema está em hibernação. O Windows requer que as falhas de autorização sejam esquecidas quando o sistema está em execução normalmente, num modo de suspensão ou em estados de baixa potência que não estejam desligados. Se um sistema Windows com o TPM 2.0 estiver bloqueado, o TPM deixa o modo de bloqueio se o sistema ficar ativado durante 10 minutos.

A proteção anti-martelada para o TPM 2.0 pode ser totalmente reposta imediatamente ao enviar um comando de reposição de bloqueio para o TPM e ao fornecer a palavra-passe do proprietário do TPM. Por predefinição, o Windows aprovisiona automaticamente o TPM 2.0 e armazena a palavra-passe do proprietário do TPM para utilização pelos administradores de sistema.

Em algumas implementações, o valor de autorização do proprietário do TPM é armazenado centralmente no Active Directory e não no sistema local. Um administrador pode executar tpm.msc e optar por repor o tempo de bloqueio do TPM. Se a palavra-passe do proprietário do TPM estiver armazenada localmente, será utilizada para repor o tempo de bloqueio. Se a palavra-passe do proprietário do TPM não estiver disponível no sistema local, o administrador tem de a indicar. Se um administrador tentar repor o estado de bloqueio do TPM com a palavra-passe do proprietário do TPM errada, o TPM não permite outra tentativa de repor o estado de bloqueio durante 24 horas.

O TPM 2.0 permite a criação de algumas chaves sem um valor de autorização associado às mesmas. Estas chaves podem ser utilizadas quando o TPM está bloqueado. Por exemplo, o BitLocker com uma configuração apenas TPM predefinida consegue utilizar uma chave no TPM para iniciar o Windows, mesmo quando o TPM está bloqueado.

Lógica por trás das predefinições

Originalmente, o BitLocker permitia entre 4 e 20 carateres para um PIN. O Windows Hello tem o seu próprio PIN para início de sessão, que pode ter entre 4 e 127 carateres. Tanto o BitLocker como o Windows Hello utilizam o TPM para impedir ataques de força bruta de PIN.

O Windows 10, versão 1607 e os parâmetros de Prevenção de Ataques de Dicionário utilizados anteriormente. Os Parâmetros de Prevenção de Ataques do Dicionário fornecem uma forma de equilibrar as necessidades de segurança com a usabilidade. Por exemplo, quando o BitLocker é utilizado com uma configuração TPM + PIN, o número de estimativas de PIN é limitado ao longo do tempo. Um TPM 2.0 neste exemplo poderia ser configurado para permitir apenas 32 estimativas de PIN imediatamente e, em seguida, apenas mais uma estimativa a cada duas horas. Isto totaliza um máximo de cerca de 4.415 palpites por ano. Se o PIN for de quatro dígitos, todas as combinações de PIN 9999 possíveis podem ser tentadas em pouco mais de dois anos.

A partir do Windows 10, versão 1703, o comprimento mínimo do PIN do BitLocker foi aumentado para seis carateres, para melhor se alinhar com outras funcionalidades do Windows que utilizam o TPM 2.0, incluindo o Windows Hello. Aumentar o comprimento do PIN requer um maior número de estimativas para um atacante. Por conseguinte, a duração do bloqueio entre cada estimativa foi abreviada para permitir que os utilizadores legítimos repetissem uma tentativa falhada mais cedo, mantendo um nível de proteção semelhante. Caso os parâmetros legados para o limiar de bloqueio e o tempo de recuperação precisem de ser utilizados, confirme que o GPO está ativado e configure o sistema para utilizar a definição Parâmetros de Prevenção de Ataques de Dicionário legados para o TPM 2.0.

Smart cards baseados em TPM

O smart card baseado no Windows TPM, que é um smart card virtual, pode ser configurado para permitir o início de sessão no sistema. Ao contrário dos smart cards físicos, o processo de início de sessão utiliza uma chave baseada em TPM com um valor de autorização. A lista seguinte mostra as vantagens dos smart cards virtuais:

  • Os smart cards físicos podem impor o bloqueio apenas para o PIN do smart card físico e podem repor o bloqueio após a introdução do PIN correto. Com um smart card virtual, a proteção anti-martelada do TPM não é reposta após uma autenticação bem-sucedida. O número permitido de falhas de autorização antes de o TPM entrar no bloqueio inclui muitos fatores.
  • Os fabricantes de hardware e os programadores de software podem utilizar as funcionalidades de segurança do TPM para cumprir os seus requisitos.
  • A intenção de selecionar 32 falhas como limiar de bloqueio é evitar que os utilizadores bloqueiem o TPM (mesmo quando aprendem a escrever novas palavras-passe ou se bloquearem e desbloquearem frequentemente os respetivos computadores). Se os utilizadores bloquearem o TPM, têm de aguardar 10 minutos ou utilizar outras credenciais para iniciar sessão, como um nome de utilizador e palavra-passe.