Pergunta

Gostaria de saber se é possível programar o TPM ( http://en.wikipedia.org/wiki/Trusted_Platform_Module ) presente na maioria dos chips Intel, de forma a:

- decide what to store in the persistent memory
- decide which cryptographic algorithms to implement.

Obviamente não deve ser reprogramável depois de começar a funcionar (você sabe se esta afirmação está correta?).

Foi útil?

Solução

O comportamento de um TPM é definido pelas especificações emitidas pelo Trusted Computing Group. Um TPM deve se comportar exatamente conforme especificado, portanto, você não pode alterar a funcionalidade de um TPM implementado de forma adequada. Os fabricantes de TPMs têm habilidades limitadas para atualizar seus produtos após o envio. Por exemplo, a Infineon fornece atualizações de firmware para seus dispositivos.

Os TPMs da Intel, entretanto, podem ser diferentes. Alguns chipsets incluíam um TPM emulado / software em vez de um TPM de hardware real. Esses TPMs podem ser atualizados com uma atualização do BIOS. Mas também neste caso a atualização deve ser fornecida pela Intel. Placas recentes como a DQ67SW têm TPMs de hardware independentes não fabricados pela Intel.

Portanto, a resposta à sua segunda pergunta é: Não, você não pode programar / definir os algoritmos criptográficos que um TPM usa.


Com relação à sua primeira pergunta: Sim, você pode definir o que armazenar no armazenamento persistente até certo ponto. Esta região de memória é chamada de Armazenamento não volátil ou NV . Você deve definir algum espaço primeiro usando o comando TPM_NV_DefineSpace . Depois, você pode ler e gravar de / para o local usando TPM_NV_ReadValue e TPM_NV_WriteValue . Definir reserva uma determinada quantidade de memória em NV e também configura os atributos de segurança deste local. Esses comandos são comandos TPM de baixo nível, é altamente recomendável usar uma Pilha de software confiável (TSS) para fazer a interface com o TPM. Você pode usar jTSS com jTpmTools ou TrouSerS .

Algumas notas sobre NV:

  • O espaço no NV é muito limitado, mas a quantidade exata é específica do fornecedor (geralmente menos de 5kb). A quantidade mínima para a plataforma PC é 2.048 bytes.
  • O TPM é um dispositivo passivo, ele não pode fazer nada sem um comando emitido para ele. Se você quiser armazenar algo no TPM, você deve ter alguma parte ativa (BIOS, Software, Chipset, CPU) que emita esses comandos.
  • Mesmo a maioria das chaves criptográficas não são armazenadas no TPM. Existe uma hierarquia de chaves e apenas a chave raiz (Storage Root Key - SRK) é armazenada no TPM. Todas as outras chaves são armazenadas externamente de forma criptografada.

Outras dicas

O TPM não se destina a ser programável.Possui um conjunto fixo de algoritmos suportados.O código é armazenado em ROM (ou, se não estiver, é armazenado em uma EEPROM que está dentro de um pacote à prova de violação e você não pode sobrescrevê-lo).

O TPM define várias funções administrativas.Ao usá-lo pela primeira vez, você configurará senhas administrativas (ou seu software fará isso por você; nesse caso, você deverá fazer backup dessas senhas com cuidado).Se não tiver certeza sobre o estado do TPM ao recebê-lo, você pode redefini-lo para os “padrões de fábrica” (limpando todas as chaves e credenciais existentes);isso é chamado de limpeza do TPM e normalmente é feito no BIOS.

Você encontrará uma visão geral das diversas credenciais armazenadas e usadas pelo TPM no perfis de credenciais.Além das chaves que fazem parte do ciclo de vida normal, você pode importar suas próprias chaves e criar chaves não exportáveis ​​com o RNG do TPM.

Existe um padrão Perfil de proteção TPM.Não sei se o TPM da Intel foi avaliado em relação a isso.A Figura 1 é um diagrama do ciclo de vida do TPM, que mostra quando as chaves podem ser geradas.

Na prática, você provavelmente irá interagir com o TPM através Calça (uma API TPM de código aberto) ou de forma limitada por meio do Bitlocker no Windows.

Sim, você pode usar o chip TPM exatamente para esse tipo de operação e muito mais.

A pilha TrouSerS é uma implementação de código aberto da pilha de software de computação confiável necessária para usar oChip TPM confiável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top