Conceitos básicos do TPM

Este artigo fornece uma descrição dos componentes do Módulo de Plataforma Confiável (TPM 1.2 e TPM 2.0) e explica como eles são usados para mitigar ataques de dicionário.

Um TPM é um microchip projetado para fornecer funções básicas relacionadas à segurança, principalmente envolvendo chaves de criptografia. O TPM é instalado na placa-mãe de um computador e se comunica com o restante do sistema usando um barramento de hardware.

Dispositivos que incorporam um TPM podem criar chaves criptográficas e criptografá-las para que as chaves só possam ser descriptografadas pelo TPM. Esse processo, muitas vezes chamado de "encapsulamento" ou "associação" de uma chave, pode ajudar a proteger a chave da divulgação. Cada TPM tem uma chave de encapsulamento primário, chamada chave raiz de armazenamento, que é armazenada dentro do próprio TPM. A parte privada de uma chave raiz de armazenamento ou chave de endosso criada em um TPM nunca é exposta a nenhum outro componente, software, processo ou usuário.

Você pode especificar se as chaves de criptografia que o TPM cria podem ser migradas ou não. Se você especificar que elas podem ser migradas, as partes públicas e privadas da chave poderão ser expostas a outros componentes, software, processos ou usuários. Se você especificar que as chaves de criptografia não podem ser migradas, a parte privada da chave nunca será exposta fora do TPM.

Dispositivos que incorporam um TPM também podem criar uma chave encapsulada e vinculada a determinadas medidas de plataforma. Esse tipo de chave só pode ser desembrulhado quando essas medidas de plataforma têm os mesmos valores que tinham quando a chave foi criada. Esse processo é chamado de selar a chave para o TPM. Descriptografar a chave é chamado de desmarcada. O TPM também pode selar e desmarque os dados gerados fora do TPM. Com a chave e o software selados, como o BitLocker Drive Encryption, os dados podem ser bloqueados até que as condições específicas de hardware ou software sejam atendidas.

Com um TPM, partes privadas de pares de chaves são mantidas separadas da memória controlada pelo sistema operacional. As chaves podem ser seladas ao TPM e certas garantias sobre o estado de um sistema (garantias que definem a confiabilidade de um sistema) podem ser feitas antes que as chaves sejam não seladas e liberadas para uso. O TPM usa seu próprio firmware interno e circuitos lógicos para processar instruções. Portanto, ele não depende do sistema operacional e não está exposto a vulnerabilidades que podem existir no sistema operacional ou no software de aplicativo.

Os recursos disponíveis nas versões são definidos em especificações pelo TCG (Grupo de Computação Confiável). Para obter mais informações, consulte a página Módulo de Plataforma Confiável no site do Grupo de Computação Confiável.

As seções a seguir fornecem uma visão geral das tecnologias que dão suporte ao TPM:

Inicialização medida com suporte para atestado

O recurso Inicialização Medida fornece um software anti-malware com um log confiável (resistente à falsificação e adulteração) de todos os componentes de inicialização. O software anti-malware pode usar o log para determinar se os componentes executados antes dele são confiáveis ou infectados com malware. Ele também pode enviar os logs de inicialização medidos para um servidor remoto para avaliação. O servidor remoto pode iniciar ações de correção interagindo com o software no cliente ou por meio de mecanismos fora de banda, conforme apropriado.

Cartão Inteligente Virtual baseado em TPM

Aviso

Windows Hello para Empresas e as chaves de segurança FIDO2 são métodos modernos de autenticação de dois fatores para Windows. Os clientes que usam cartões inteligentes virtuais são incentivados a migrar para Windows Hello para Empresas ou FIDO2. Para novas instalações do Windows, recomendamos Windows Hello para Empresas ou chaves de segurança FIDO2.

O Cartão Inteligente Virtual emula a funcionalidade dos cartões inteligentes tradicionais. Os Cartões Inteligentes Virtuais usam o chip TPM, em vez de usar um cartão físico inteligente e um leitor separados. Isso reduz consideravelmente o custo de gerenciamento e implantação de cartões inteligentes em uma empresa. Para o usuário final, o Cartão Inteligente Virtual está sempre disponível no dispositivo. Se um usuário precisar usar mais de um dispositivo, um Cartão Inteligente Virtual deve ser emitido ao usuário para cada dispositivo. Um computador compartilhado entre vários usuários pode hospedar vários Cartões Inteligentes Virtuais, um para cada usuário.

Armazenamento de certificados baseado em TPM

O TPM protege certificados e chaves RSA. O KSP (provedor de armazenamento de chaves) do TPM fornece um uso fácil e conveniente do TPM como uma forma de proteger fortemente as chaves privadas. O TPM KSP gera chaves quando uma organização se registra para certificados. O TPM também protege certificados importados de uma origem externa. Certificados baseados em TPM são certificados padrão. O certificado nunca pode deixar o TPM do qual as chaves são geradas. O TPM também pode ser usado para operações de criptografia por meio 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 exigem presença física (normalmente, pressionando uma chave) para ativar o TPM, desativar ou desmarcar. Normalmente, essas ações não podem ser automatizadas com scripts ou outras ferramentas de automação, a menos que o OEM individual as forneça.

TPM 1.2 estados e inicialização

O TPM 1.2 tem vários estados possíveis. O Windows inicializa automaticamente o TPM, o que o leva a um estado habilitado, ativado e de propriedade.

Chaves de endosso

Um aplicativo confiável só poderá usar o TPM se o TPM contiver uma chave de endosso, 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 é protegida por um TPM e que o TPM é aquele em que a autoridade de certificação confia. As chaves de endosso comprovadamente válidas são usadas para associar a identidade do usuário a um dispositivo. O certificado de usuário com uma chave atestada por TPM fornece maior garantia de segurança com backup por falta de capacidade, anti-martelada e isolamento de chaves fornecidas por um TPM.

Anti-martelada

Quando um TPM processa um comando, ele o faz em um ambiente protegido. Por exemplo, um micro controlador dedicado em um chip discreto ou um modo especial protegido por hardware na CPU main. Um TPM é usado para criar uma chave criptográfica que não é divulgada fora do TPM. Ele é usado no TPM depois que o valor de autorização correto é fornecido.

Os TPMs têm proteção anti-martelada projetada para evitar ataques de força bruta ou ataques de dicionário mais complexos, que tentam determinar valores de autorização para usar 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 usar chaves e bloqueios. Fornecer uma contagem de falhas para chaves individuais não é tecnicamente prático, portanto, os TPMs têm um bloqueio global quando ocorrem muitas falhas de autorização.

Como muitas entidades podem usar o TPM, um único sucesso de autorização não pode redefinir a proteção anti-martelada do TPM. Isso impede que um invasor crie uma chave com um valor de autorização conhecido e use-a para redefinir a proteção do TPM. Os TPMs são projetados para esquecer falhas de autorização após um período de tempo para que o TPM não insira um estado de bloqueio desnecessariamente. Uma senha do proprietário do TPM pode ser usada para redefinir a lógica de bloqueio do TPM.

TPM 2.0 anti-martelada

O TPM 2.0 tem um comportamento anti-martelada bem definido. Isso contrasta com o TPM 1.2 para o qual a proteção anti-martelada foi implementada pelo fabricante e a lógica variou amplamente em todo o setor.

Para sistemas com 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. Isso significa que um usuário pode tentar rapidamente usar uma chave com o valor de autorização errado 32 vezes. Para cada uma das 32 tentativas, o TPM registra se o valor da autorização estava correto ou não. Isso inadvertidamente faz com que o TPM insira um estado bloqueado após 32 tentativas com falha.

As tentativas de usar uma chave com um valor de autorização para os próximos 10 minutos não retornariam sucesso 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 lembradas pelo TPM cai para 31. O TPM deixa o estado bloqueado e retorna à operação normal. Com o valor de autorização correto, as chaves poderão ser usadas normalmente se não ocorrerem falhas de autorização durante os próximos 10 minutos. Se um período de 320 minutos ocorrer sem falhas de autorização, o TPM não se lembrará de nenhuma falha de autorização e 32 tentativas com falha poderão ocorrer novamente.

O Windows não exige que os sistemas TPM 2.0 esqueçam as falhas de autorização quando o sistema está totalmente desligado ou quando o sistema hiberna. O Windows exige que falhas de autorização sejam esquecidas quando o sistema está em execução normalmente, em um modo de sono ou em estados de baixa potência que não sejam desativados. Se um sistema Windows com TPM 2.0 estiver bloqueado, o TPM deixará o modo de bloqueio se o sistema ficar ligado por 10 minutos.

A proteção anti-martelada do TPM 2.0 pode ser totalmente redefinida imediatamente enviando um comando de bloqueio de redefinição para o TPM e fornecendo a senha do proprietário do TPM. Por padrão, o Windows provisiona automaticamente o TPM 2.0 e armazena a senha do proprietário do TPM para uso pelos administradores do 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 redefinir o tempo de bloqueio do TPM. Se a senha do proprietário do TPM for armazenada localmente, ela será usada para redefinir o tempo de bloqueio. Se a senha do proprietário do TPM não estiver disponível no sistema local, o administrador deverá for fornecido. Se um administrador tentar redefinir o estado de bloqueio do TPM com a senha de proprietário do TPM errada, o TPM não permitirá outra tentativa de redefinir o estado de bloqueio por 24 horas.

O TPM 2.0 permite que algumas chaves sejam criadas sem um valor de autorização associado a elas. Essas chaves podem ser usadas quando o TPM está bloqueado. Por exemplo, o BitLocker com uma configuração padrão somente TPM é capaz de usar uma chave no TPM para iniciar o Windows, mesmo quando o TPM está bloqueado.

Racionalizar por trás dos padrões

Originalmente, o BitLocker permitia de 4 a 20 caracteres para um PIN. Windows Hello tem seu próprio PIN para entrada, que pode ser de 4 a 127 caracteres. Tanto o BitLocker quanto o Windows Hello usam o TPM para evitar ataques de força bruta pin.

Windows 10, versão 1607 e parâmetros de prevenção de ataque de dicionário usados anteriormente. Os Parâmetros de Prevenção de Ataque do Dicionário fornecem uma maneira de equilibrar as necessidades de segurança com a usabilidade. Por exemplo, quando o BitLocker é usado com uma configuração TPM + PIN, o número de palpites de PIN é limitado ao longo do tempo. Um TPM 2.0 neste exemplo poderia ser configurado para permitir apenas 32 palpites pin imediatamente e, em seguida, apenas mais um palpite a cada duas horas. Isso totaliza um máximo de cerca de 4415 palpites por ano. Se o PIN for de quatro dígitos, todas as 9999 combinações de PIN possíveis poderão ser tentadas em pouco mais de dois anos.

A partir de Windows 10, versão 1703, o comprimento mínimo para o PIN do BitLocker foi aumentado para seis caracteres, para se alinhar melhor com outros recursos do Windows que usam o TPM 2.0, incluindo Windows Hello. Aumentar o comprimento do PIN requer um número maior de suposições para um invasor. Portanto, a duração do bloqueio entre cada palpite foi reduzida para permitir que usuários legítimos tentem novamente uma tentativa com falha mais cedo, mantendo um nível semelhante de proteção. Caso os parâmetros herdados para limite de bloqueio e tempo de recuperação precisem ser usados, verifique se o GPO está habilitado e configure o sistema para usar a configuração herdada de Parâmetros de Prevenção de Ataque do Dicionário para TPM 2.0.

Cartões inteligentes baseados em TPM

O cartão inteligente baseado em TPM do Windows, que é um cartão inteligente virtual, pode ser configurado para permitir a entrada no sistema. Em contraste com cartões inteligentes físicos, o processo de entrada usa uma chave baseada em TPM com um valor de autorização. A lista a seguir mostra as vantagens dos cartões inteligentes virtuais:

  • Os cartões inteligentes físicos podem impor o bloqueio apenas para o PIN de cartão inteligente físico e podem redefinir o bloqueio depois que o PIN correto for inserido. Com uma cartão inteligente virtual, a proteção anti-martelada do TPM não é redefinida após uma autenticação bem-sucedida. O número permitido de falhas de autorização antes do TPM entrar no bloqueio inclui muitos fatores.
  • Fabricantes de hardware e desenvolvedores de software podem usar os recursos de segurança do TPM para atender aos seus requisitos.
  • A intenção de selecionar 32 falhas como o limite de bloqueio é evitar que os usuários bloqueiem o TPM (mesmo quando aprenderem a digitar novas senhas ou se eles bloquearem e desbloquearem frequentemente seus computadores). Se os usuários bloquearem o TPM, eles devem aguardar 10 minutos ou usar outras credenciais para entrar, como nome de usuário e senha.