
Trusted Platform Module (TPM, também conhecido como ISO/IEC 11889111) é um padrão internacional para um processador criptográfico seguro, um microcontrolador dedicado projetado para proteger o hardware por meio de chaves criptográficas integradas. O termo também é usado como um nome genérico de implementações desta especificação, frequentemente denominados de "chip TPM" ou "TPM Security Device" (Dell). A especificação TPM é obra do Trusted Computing Group. A versão corrente da especificação TPM é a 1.2 Revision 116, publicada em 1 de março de 2011.
A primeira versão do TPM a ser implementada foi a 1.1b, em 2003.
O Trusted Platform Module (TPM) foi concebido por um consórcio da indústria de computadores chamado Trusted Computing Group (TCG). Ele evoluiu para a TPM Main Specification Version 1.2, que foi padronizada pela Organização Internacional de Padronização (ISO) e pela Comissão Eletrotécnica Internacional (IEC) em 2009 como ISO/IEC 11889:2009. A TPM Main Specification Version 1.2 teve sua revisão final concluída em 3 de março de 2011.
Em 9 de abril de 2014, o Trusted Computing Group anunciou uma grande atualização em sua especificação, intitulada TPM Library Specification 2.0. O grupo continua o trabalho no padrão incorporando erratas, adições algorítmicas e novos comandos, com sua edição mais recente publicada como 2.0 em novembro de 2019. Esta versão tornou-se a ISO/IEC 11889:2015.
Quando uma nova revisão é lançada, ela é dividida em várias partes pelo Trusted Computing Group. Cada parte consiste em um documento que compõe o conjunto da nova especificação TPM:
Embora o TPM 2.0 atenda a muitos dos mesmos casos de uso e possua recursos semelhantes, os detalhes são diferentes. O TPM 2.0 não é compatível com as versões anteriores do TPM 1.2.
| Especificação | TPM 1.2 | TPM 2.0 |
|---|---|---|
| Arquitetura | Uma especificação completa deve consistir em um perfil de proteção específico da plataforma que faz referência a uma biblioteca comum de três partes do TPM 1.2. Na prática, apenas um perfil de proteção para PC Client foi criado. Pretendia-se definir perfis para PDA e celulares, mas nunca foram publicados. | Uma especificação completa consiste em uma especificação específica da plataforma que faz referência a uma biblioteca comum de quatro partes do TPM 2.0. As especificações de plataforma definem quais partes da biblioteca são obrigatórias, opcionais ou proibidas, detalhando outros requisitos. Incluem PC Client, dispositivos móveis e Automotive-Thin. |
| Algoritmos | SHA-1 e RSA são obrigatórios. AES é opcional. O Triple DES chegou a ser opcional, mas foi removido na versão 103. A função de geração de máscara baseada em hash MGF1 definida no PKCS#1 é obrigatória. | A especificação PTP (PC Client Platform TPM Profile) exige SHA-1 e SHA-256 para hashes; RSA e ECC (curva NIST P-256) para criptografia de chave pública e assinaturas digitais; HMAC e 128-bit AES. Muitos outros algoritmos são definidos como opcionais. |
| Primitivas Criptográficas | Exige um gerador de números aleatórios, algoritmo de chave pública, função hash criptográfica, função de geração de máscara, geração/verificação de assinatura digital e atestação anônima direta (DAA). Algoritmos de chave simétrica e XOR são opcionais. | Exige um gerador de números aleatórios, algoritmos de chave pública, funções hash, algoritmos de chave simétrica, geração/verificação de assinatura digital, funções de geração de máscara e XOR. A DAA baseada em ECC é opcional no perfil PC Client. Exige também funções de derivação de chave. |
| Hierarquia | Uma (armazenamento/storage) | Três (plataforma, armazenamento e endosso/endorsement) |
| Chaves de Raiz | Uma (SRK RSA-2048) | Múltiplas chaves e algoritmos por hierarquia |
| Autorização | HMAC, PCR, localidade, presença física | Senha, HMAC e política (que abrange HMAC, PCR, localidade e presença física). |
| NVRAM | Dados não estruturados | Dados não estruturados, contador, mapa de bits, extensão, falha e sucesso de PIN |
A autorização por política do TPM 2.0 inclui os métodos do 1.2 e adiciona autorização baseada em assinatura digital assimétrica, segredos indiretos, contadores, limites de tempo e valores de NVRAM. Ela permite a combinação dessas primitivas via operações lógicas AND e OR para construir políticas complexas.

O Módulo de Plataforma Confiável (TPM) fornece:
Programas de computador podem usar um TPM para a autenticação de dispositivos de hardware, uma vez que cada chip TPM possui uma Chave de Endosso (EK) exclusiva e secreta gravada durante sua produção. A segurança incorporada ao hardware oferece mais proteção do que uma solução apenas de software. Seu uso é restrito em alguns países.

tpm2-software mostrando a leitura dos Registradores de Configuração de Plataforma (PCRs), o resultado getrandom obtido do dispositivo TPM e a versão do TPM (2.0).O escopo principal do TPM é garantir a integridade de uma plataforma durante o tempo de inicialização (boot). Nesse contexto, "integridade" significa "comportar-se conforme o esperado", e uma "plataforma" é qualquer dispositivo computacional, independentemente do seu sistema operacional. Isso serve para garantir que o processo de inicialização comece a partir de uma combinação confiável de hardware e software, continuando até que o sistema operacional tenha inicializado completamente e os aplicativos estejam em execução.
Quando o TPM é utilizado, o firmware e o sistema operacional são responsáveis por garantir a integridade.
Por exemplo, a Unified Extensible Firmware Interface (UEFI) pode usar o TPM para formar uma raiz de confiança (root of trust): o TPM contém vários Registradores de Configuração de Plataforma (PCRs) que permitem o armazenamento e o relato seguro de métricas relevantes para a segurança. Essas métricas podem ser usadas para detectar alterações em configurações anteriores e decidir como proceder. Exemplos de tal uso podem ser encontrados no Linux Unified Key Setup (LUKS), no BitLocker e na criptografia de memória vCage da PrivateCore. (Veja abaixo.)
Outro exemplo de integridade de plataforma via TPM é o uso no licenciamento do Microsoft Office 365 e no Outlook Exchange.
Mais um exemplo do uso de TPM para integridade de plataforma é a Trusted Execution Technology (TXT), que cria uma cadeia de confiança. Ela pode atestar remotamente que um computador está usando o hardware e software especificados.
Utilitários de criptografia de disco total, como o dm-crypt, podem usar esta tecnologia para proteger as chaves usadas para criptografar os dispositivos de armazenamento do computador e fornecer autenticação de integridade para um caminho de inicialização confiável que inclui o firmware e o setor de inicialização.

Em 2006, novos laptops começaram a ser comercializados com um chip TPM integrado. No futuro, esse conceito poderá ser localizado em um chip já existente na placa-mãe em computadores ou em qualquer outro dispositivo onde os recursos do TPM possam ser empregados, como em um telefone celular. Em um PC, o barramento Low Pin Count (LPC) ou o barramento Serial Peripheral Interface (SPI) é usado para conectar ao chip TPM.
Microcontroladores Trusted Platform Module são atualmente produzidos por:
O Trusted Computing Group (TCG) certificou chips TPM fabricados pela Infineon Technologies, Nuvoton e STMicroelectronics, tendo atribuído IDs de fornecedor de TPM à Advanced Micro Devices (AMD), Atmel, Broadcom, IBM, Infineon, Intel, Lenovo, National Semiconductor, Nationz Technologies, Nuvoton, Qualcomm, Rockchip, Standard Microsystems Corporation, STMicroelectronics, Samsung, Sinosun, Texas Instruments e Winbond.
Existem cinco tipos diferentes de implementações do TPM 2.0 (listados do mais seguro para o menos seguro):
| TPM 2.0 Reference Implementation | |
|---|---|
| Desenvolvedor | Microsoft |
| Repositório | github |
| Escrito em | C, C++ |
| Tipo | Implementação de TPM |
| Licença | Licença BSD |
| Website | trustedcomputinggroup |
A implementação oficial de referência do TCG para a especificação TPM 2.0 foi desenvolvida pela Microsoft. Está licenciada sob a Licença BSD e o código-fonte está disponível no GitHub.
Em 2018, a Intel abriu o código de sua pilha de software Trusted Platform Module 2.0 (TPM2) com suporte para Linux e Microsoft Windows. O código-fonte está hospedado no GitHub sob a Licença BSD.
A Infineon financiou o desenvolvimento de um middleware TPM de código aberto que cumpre a especificação Software Stack (TSS) Enhanced System API (ESAPI) do TCG. Foi desenvolvido pelo Fraunhofer Institute for Secure Information Technology (SIT).
O Software TPM 2.0 da IBM é uma implementação da especificação TCG TPM 2.0, baseada em código doado pela Microsoft. O código-fonte está no SourceForge e GitHub sob Licença BSD.
Em 2022, a AMD anunciou que, em certas circunstâncias, sua implementação fTPM causava problemas de desempenho (travamentos intermitentes). Uma correção foi disponibilizada por meio de atualização de BIOS.
Em 2010, Christopher Tarnovsky apresentou um ataque contra TPMs na conferência Black Hat Briefings, onde afirmou ser capaz de extrair segredos de um único TPM. Ele conseguiu realizar o feito após seis meses de trabalho, inserindo uma sonda e espionando um barramento interno do chip Infineon SLE 66 CL PC.
No caso de acesso físico, computadores com TPM 1.2 são vulneráveis a ataque de inicialização a frio (cold boot attacks), desde que o sistema esteja ligado ou possa ser iniciado sem uma frase secreta a partir do desligamento, suspensão ou hibernação, que é a configuração padrão para computadores Windows com criptografia de disco total BitLocker. Uma correção foi proposta e adotada nas especificações do TPM 2.0.
Em 2009, descobriu-se que o conceito de dados de autorização compartilhados no TPM 1.2 era falho. Um adversário com acesso aos dados poderia falsificar respostas do TPM. Uma correção foi proposta e adotada no TPM 2.0.
Em 2015, como parte das revelações de Snowden, foi divulgado que, em 2010, uma equipe da CIA dos EUA afirmou em uma conferência interna ter realizado um ataque de análise de potência diferencial contra TPMs, sendo capaz de extrair segredos.
As principais distribuições de Inicialização Confiável (tboot) anteriores a novembro de 2017 são afetadas por um ataque de raiz dinâmica de confiança para medição (DRTM) CVE-2017-16837, que atinge computadores executando a Intel Trusted Execution Technology (TXT) na rotina de inicialização.
Em outubro de 2017, foi relatado que uma biblioteca de código desenvolvida pela Infineon Technologies, amplamente utilizada em seus TPMs, continha uma vulnerabilidade conhecida como ROCA. Esta falha gerava pares de chaves RSA fracos que permitiam a dedução de chaves privadas a partir de chaves públicas. Como resultado, sistemas que dependem da privacidade dessas chaves estão vulneráveis a comprometimentos, como roubo de identidade. Sistemas que armazenam chaves diretamente no TPM sem ofuscação (blinding) correm riscos maiores. A Infineon lançou atualizações de firmware para os fabricantes.
Em 2018, foi relatada uma falha de design na especificação do TPM 2.0 para a raiz estática de confiança para medição (SRTM) (CVE-2018-6622). Ela permite que um adversário redefine e falsifique os registradores de configuração da plataforma (PCRs). A correção exige patches de firmware específicos para o hardware. O invasor abusa de interrupções de energia para enganar o TPM, fazendo-o acreditar que está operando em componentes não violados.
Em 2021, o Dolos Group demonstrou um ataque a um TPM discreto onde, embora o chip tivesse resistência a violações, os outros pontos terminais do seu barramento de comunicação não tinham. Eles leram uma chave de criptografia de disco total enquanto ela era transmitida pela placa-mãe e a usaram para descriptografar o SSD de um laptop.