miniaturadaimagem|Imagem ilustrativa 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.

História 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:

Parte 1: Arquitetura (renomeada de Design Principles) Parte 2: Estruturas do TPM Parte 3: Comandos Parte 4: Rotinas de Suporte (adicionada no TPM 2.0)

Diferenças de versão 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.

Visão geral miniaturadaimagem|direita|1.5|Componentes de um Módulo de Plataforma Confiável em conformidade com o padrão TPM versão 1.2. O Módulo de Plataforma Confiável (TPM) fornece: Um gerador de números aleatórios de hardware; Recursos para a geração segura de chaves criptográficas para usos limitados; Atestação remota: cria um resumo de chave de hash quase infalsificável da configuração de hardware e software. Pode-se usar o hash para verificar se o hardware e o software não foram alterados. O software encarregado de realizar o hash da configuração determina a extensão do resumo; Vinculação (Binding): os dados são criptografados usando a chave de vinculação do TPM, uma chave RSA exclusiva derivada de uma chave de armazenamento. Computadores que incorporam um TPM podem criar chaves criptográficas e criptografá-las de forma que só possam ser descriptografadas pelo TPM. Esse processo, frequentemente chamado de wrapping (envolvimento) ou vinculação de uma chave, ajuda a protegê-la contra divulgação. Cada TPM possui uma chave de envolvimento mestra, chamada chave de raiz de armazenamento (SRK), que é armazenada dentro do próprio TPM. Contêineres de chaves RSA de nível de usuário são armazenados com o perfil de usuário do Windows para um usuário específico e podem ser usados para criptografar e descriptografar informações para aplicativos executados sob essa identidade de usuário específica; Armazenamento selado (Sealed storage): especifica o estado do TPM para que os dados sejam descriptografados (unsealed); Outras funções de Trusted Computing para que os dados sejam descriptografados (unsealed).

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.

Usos

Integridade da plataforma miniaturadaimagem|direita|1.1|Captura de tela do mostrando a leitura dos Registradores de Configuração de Plataforma (PCRs), o resultado 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.

Criptografia de disco 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.

Implementações miniaturadaimagem|direita|Módulo de Plataforma Confiável (TPM) instalado em uma placa-mãe.

Laptops e notebooks 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:

Atmel Broadcom Infineon Intel (via Intel Management Engine como iTPM) STMicroelectronics Winbond

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.

TPM 2.0 Existem cinco tipos diferentes de implementações do TPM 2.0 (listados do mais seguro para o menos seguro):

**TPMs discretos (dTPMs):** são chips dedicados que implementam a funcionalidade TPM em seu próprio encapsulamento de semicondutor resistente a violações. São os mais seguros, certificados conforme FIPS-140 com segurança física de nível 3 contra ataques, e seus encapsulamentos devem implementar resistência física a adulteração. Por exemplo, o TPM para o controlador de freio em um carro é protegido contra hacking por métodos sofisticados. **TPMs integrados (iTPMs):** fazem parte de outro chip. Embora utilizem hardware que resiste a bugs de software, não são obrigados a implementar resistência física a violações. A Intel integrou TPMs em alguns de seus chipsets. **TPMs de firmware (fTPMs):** são soluções baseadas em firmware (ex: UEFI) que rodam em um ambiente de execução confiável (TEE) da CPU. Intel, AMD e Qualcomm implementaram TPMs de firmware. **TPMs virtuais (vTPMs):** são fornecidos e dependem de hipervisores em ambientes de execução isolados, ocultos do software que roda dentro de máquinas virtuais. Podem oferecer um nível de segurança comparável a um TPM de firmware. O Google Cloud Platform implementou vTPM. **TPMs de software:** são emuladores de software que rodam sem mais proteção do que um programa comum recebe em um sistema operacional. Dependem inteiramente do ambiente em que são executados, sendo úteis apenas para fins de desenvolvimento.

Código aberto 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).